Kami memiliki lusinan perangkat tertanam yang dipasang di pelanggan, semuanya menelepon ke rumah ke layanan OpenVPN kami. Itu bekerja dengan baik secara umum, tetapi beberapa pelanggan kami memiliki masalah jalur MTU yang parah. Pengaruh kami pada pelanggan untuk memperbaiki jaringan mereka terbatas, jadi kami membutuhkan OpenVPN untuk menghadapinya. Singkatnya, pertanyaan saya adalah:
Bagaimana saya bisa mengurangi MTU jalur rendah dari beberapa klien pada basis per-klien, yang tanpa menggunakan pengaturan global mengakomodasi kasus terburuk untuk semua klien
Perhatikan bahwa kasus terburuk kami sangat buruk: jalur MTU 576, menjatuhkan semua fragmen, tidak memecah fragmen itu sendiri, tidak menghormati DF-bit. Anda mengerti mengapa saya memilih untuk tidak memecahkan masalah ini secara global.
The OpenVPN manualnya menawarkan sejumlah MTU terkait pilihan, terutama --link-mtu, --tun-mtu, --fragment and --mssfix
. Tetapi dikatakan juga
--link-mtu [...] Lebih baik tidak mengatur parameter ini kecuali Anda tahu apa yang Anda lakukan.
--tun-mtu [...] Yang terbaik adalah menggunakan opsi --fragment dan / atau --mssfix untuk menangani masalah ukuran MTU.
Jadi saya mulai bereksperimen dengan --fragment
dan --mssfix
tetapi segera harus menyadari bahwa setidaknya yang pertama harus ditetapkan tidak hanya sisi klien, tetapi juga sisi server . Saya kemudian melihat ke konfigurasi server-side per-client melalui --client-config-dir
tetapi katanya
Opsi berikut ini legal dalam konteks spesifik klien: --push, --push-reset, --iroute, --ifconfig-push, dan --config.
Tidak disebutkan opsi MTU!
Jadi, inilah pertanyaan saya yang lebih spesifik:
- Mengapa sebenarnya
link-mtu
dantun-mtu
kecil hati? Apa potensi masalah dengan opsi ini? Perhatikan bahwa saya cukup nyaman dengan munging header IP tingkat rendah. - Manakah dari opsi yang
link-mtu tun-mtu fragment mssfix
harus dicerminkan di sisi server agar dapat berfungsi? - Opsi mana yang
link-mtu tun-mtu fragment mssfix
bisa digunakanclient-config-dir
? - Jika keempat opsi harus dicerminkan sisi server, dan tidak dapat digunakan di dalam
client-config-dir
: Apakah ada alternatif untuk memerangi MTU jalur rendah per klien?
Catatan:
- Sebagian dari pertanyaan saya sudah ditanyakan 5 tahun yang lalu di sini , tetapi belum benar-benar dijawab saat itu, maka saya berani menggandakannya.
- Server OpenVPN saat ini 2.2.1 di Ubuntu 12.04. Kami sedang mempersiapkan peningkatan ke 2.3.2 pada Ubuntu 14.04
- Klien OpenVPN 2.2.1 pada Debian 7.6
- Saya senang menentukan jalur pelanggan-MTU sendiri secara manual
- Saat ini kami tidak dapat menguji banyak sisi server. Tapi kami sedang membangun test bed terpisah yang lengkap, harus siap segera.
Saya berterima kasih atas saran yang membantu.
iptables
aturan untuk mengurangi MSS pada semua paket SYN ke atau dari alamat IP klien itu.