Kami menjalankan OpenVPN VPN melalui tautan satelit BGAN di mana waktu ping sekitar 3 detik. Kami menggunakannya dalam konfigurasi tun , dan kami berjalan di Linux (CentOS). Ini terutama email yang akan dikirim melalui tautan, tetapi begitu email berisi lampiran besar, VPN tampaknya terhenti.
The "Aku bisa ping melalui terowongan, tapi pekerjaan nyata menyebabkan ia mengunci. Apakah ini masalah MTU?" pertanyaan dalam FAQ OpenVPN tampaknya menggambarkan masalah saya dengan tepat, tetapi menggunakan mssfix
dan fragment
masih tampaknya tidak berbuat banyak untuk memperbaiki situasi.
Tes utama saya adalah menyalin file 2MB melalui VPN dengan scp . Ini akan menyalin sekitar 192 kbytes, dan kemudian melaporkan negara - macet - . Jika saya menunggu beberapa detik, itu akan mulai menyalin lagi, dan kemudian berhenti lagi setelah beberapa kbytes.
Kemacetan ini terjadi terlepas dari apakah saya telah mengatur opsi fragment
atau tidak mssfix
dalam konfigurasi OpenVPN saya (walaupun pengaturan fragment 1000
tampaknya mengurangi penghentian, tetapi tidak menghilangkannya). OpenVPN mtu-test
melaporkan 1542 sebagai ukuran MTU.
Saya telah mencari di internet untuk saran lebih lanjut tentang bagaimana dan kapan untuk menggunakan mssfix
dan fragment
, tetapi saya hanya menemukan halaman yang mengatakan hal yang sama dengan FAQ, dan tidak memberikan rincian tentang bagaimana dan kapan menggunakan parameter mana.
Maka pertanyaan saya adalah:
- Kapan saya menggunakan
mssfix
danfragment
? - Apakah saya menggunakan
mssfix
danfragment
dalam kombinasi? - Jika
mssfix
danfragment
apakah solusinya, untuk apatun-mtu
,link-mtu
danmtu-disc
parameternya?
Selanjutnya, saya telah menggunakan alat iperf untuk mengukur bandwidth. Tanpa VPN, itu terus-menerus mengukur dalam urutan 210Kbits / detik.
Saat menggunakan iperf melalui VPN ( $ iperf -c remoteserver -t60 -i5
), itu akan mulai dari 10Kbits / detik, kemudian naik dengan stabil sampai melaporkan 1.2Mbits / detik, dan kemudian akan macet, di mana ia melaporkan 0kbits / detik untuk sejumlah iterasi (I pikir 1.2Mbit / detik mungkin karena beberapa penyangga OpenVPN atau sebagainya)
Apakah iperf cara terbaik untuk mengukur bandwidth?
Bantuan apa pun dengan situasi ini akan sangat dihargai.
Jawaban:
1542 sebagai MTU? Belum pernah mendengar hal itu untuk tautan WAN. Biasanya, MTU adalah payload maks, ukuran paket ip minus header untuk IP (20 byte) dan ICMP (8 byte). Itu berarti MTU = 1500 untuk LAN Ethernet tradisional. Selain itu, sebagian besar VPN memperkenalkan overhead untuk enkapsulasi paket mereka. MTU VPN pada umumnya adalah 1400.
Dalam jaringan modern, sulit untuk menyimpulkan MTU apa yang akan terjadi kapan saja, karena jalur masuk dan keluar mungkin berbeda, dan mereka juga dapat berubah karena rute-ulang jalur otomatis. Untuk jaringan seperti ini, mungkin lebih efektif untuk menetapkan MTU rendah pada host Anda yang berada di kedua sisi tautan VPN, seperti 576.
MSS (ukuran segmen maksimum) adalah MTU minus tajuk IP + TCP (40 byte). Ini biasanya dinegosiasikan oleh tumpukan jaringan, dan biasanya tidak memiliki masalah negosiasi yang sama dengan MTU, kecuali MTU salah. (Negosiasi MTU biasanya terganggu oleh ICMP yang diblokir atau router lubang hitam).
Hal pertama yang akan saya lakukan adalah melakukan capture paket jaringan pada akhir pengiriman Anda, dan mengurutkan tampilan berdasarkan ukuran frame (Anda mungkin perlu menambahkan kolom ini di Wireshark). Anda harus memverifikasi bahwa Anda tidak mengirim bingkai yang terlalu besar, seperti yang Anda harapkan. Bukan hal yang aneh bagi kartu jaringan modern untuk mengirim frame yang terlalu besar jika opsi seperti Large Send Offload atau Jumbo Frames diaktifkan. Saya telah melihat 30.000+ frame byte ketika opsi ini diaktifkan.
sumber
Hanya ingin tahu, apakah Anda mencoba menurunkan MTU antarmuka jaringan? Mungkin tautan satelit merusak fragmentasi dengan buruk. Sebagai catatan kontra-intuitif, Anda mungkin ingin mencoba openvpn melalui TCP untuk perubahan. Saya tahu itu harus mengurangi kinerja, tetapi jika Anda tidak memiliki kontrol atas fragmentasi di sepanjang garis itu mungkin membantu Anda.
sumber
Saat Anda menggunakan TCP, tambah ukuran jendela TCP; ini akan membantu dengan "jumlah paket di udara".
Sudah lama sejak saya harus bermain dengan hal ini, tetapi di sini ada satu tautan yang ditemukan google untuk saya.
Setelah saya membaca kembali pertanyaan Anda, saya melihat Anda menjalankan BGAN - Saya akan senang melihat ini (atau hanya google untuk: "BGAN spoofing").
Adapun pengukuran bandwidth, saya telah menemukan iperf cukup baik selama Anda menggunakan ukuran paket yang masuk akal.
sumber
Saya pikir Anda mungkin menggonggong di pohon yang salah. Setiap kali saya memiliki masalah MTU yang salah, lalu lintas berhenti jauh sebelum 192KB. Saya pikir ini lebih terkait dengan beberapa di "paket penerbangan" jendela, baik jendela TCP, atau mungkin beberapa buffer di satelit uplink itu sendiri.
Pasti melakukan beberapa menangkap paket lama (baik 'di dalam' dan 'luar' dari VPN) dan melihat apakah Anda mendapatkan semua
ACK
'ssumber