OpenVPN mssfix: mengapa satu klien terhenti semasa pemindahan besar
mssfix menulis semula saiz segmen TCP yang diumumkan di dalam terowong. Ia tidak mengubah saiz UDP, dan nilai itu hanya bermaksud apa yang dikatakan versi anda.
Satu komputer riba terhenti semasa muat naik melalui terowong manakala setiap peranti lain pada pelayan yang sama terus berfungsi. Corak itu menunjuk kepada satu laluan, bukan konfigurasi pelayan, dan itulah pintu masuk biasa kepada persoalan mssfix. Pilihan ini boleh membantu, tetapi hanya untuk sambungan TCP yang benar-benar ditulis semulanya. Mengetahui jangkauannya menghalang anda daripada menukar pelayan yang berfungsi untuk menyelamatkan satu klien.
Apa yang ditulis semula oleh pilihan ini
mssfix menyunting saiz segmen maksimum yang diumumkan dalam jabat tangan TCP yang melalui terowong, supaya pihak penghantar memilih segmen yang muat dalam bajet terkapsul. Ia bertindak pada jabat tangan, bermakna sambungan yang dibuka sebelum perubahan mengekalkan nilai yang dirundingkan.
Ia tidak mengecilkan datagram UDP dan tidak menetapkan MTU terowong. Dua masalah berbeza menghasilkan gejala yang sama: penghantar TCP yang mengabaikan had laluan, dan laluan yang membuang paket besar secara senyap pada sebarang saiz. mssfix menangani yang pertama dan tidak melakukan apa-apa untuk yang kedua.
Perbezaan itu menjelaskan eksperimen yang mengecewakan. Menetapkan nilai lebih kecil pada laluan berlubang hitam mengubah saiz segmen tetapi bukan pembuangan yang menyusul, jadi pemindahan gagal di titik lain.
Skopnya ialah TCP di dalam terowong
Hanya trafik TCP ditulis semula. Sesi QUIC, permainan atau aplikasi yang menghantar datagram UDP besar akan mengekalkan saiz paketnya sendiri, dan jika pemindahan itulah yang terhenti, pembaikan lebih wajar berada pada MTU terowong atau laluan. Baca protokol mana yang digunakan oleh pemindahan yang gagal sebelum mencapai pilihan TCP, kerana lapisan yang salah mempunyai pembaikannya sendiri.
Arah juga penting. Tetapan klien mempengaruhi trafik yang dihantar klien itu ke dalam terowong, manakala pelayan meliputi aliran yang diteruskannya ke arah klien. Jika hanya muat turun masuk yang terhenti, nilai di pihak klien bukan keseluruhan cerita.
Nombor dan kata kunci tidak mudah alih
Versi komuniti OpenVPN 2.6 menerima kata kunci pilihan selepas nilai. Dengan mtu, nombor itu menerangkan saiz paket luar termasuk pengepala IP dan UDP; tanpanya, argumen mengikut konvensyen perakaunan yang berbeza. Oleh itu, baris yang disalin antara versi tidak menerangkan bajet paket yang sama. Semak halaman manual yang disertakan dengan binaan yang benar-benar anda jalankan, bukan tutorial untuk keluaran lain.
Sintaksnya kelihatan seperti ini:
mssfix 1400 mtu
Anggap 1400 sebagai pemegang tempat, bukan cadangan untuk laluan anda. Terbitkan nilai daripada laluan yang diukur dan kapsul yang benar-benar digunakan, dan ingat bahawa klien pada versi lama atau pelaksanaan lain mungkin menolak atau mentafsir semula kata kunci itu.
Sahkan dahulu pada klien tunggal itu
Ukur laluan dari mesin yang gagal sebelum mengubah apa-apa. Muatan yang boleh dibawa laluan tanpa pemecahan ialah nombor yang anda cari:
ping -M do -s 1472 10.8.0.1
ping -M do -s 1400 10.8.0.1
Probe pertama muat dalam paket 1500 bait setelah 28 bait pengepala ditambah. Jika ia gagal dengan ralat pemecahan dan yang lebih kecil berjaya, saiz yang boleh digunakan berada di suatu tempat antaranya, dan overhed terowong ditolak dari atas.
Kemudian ulangi pemindahan yang terhenti, pada sambungan baharu, dan bandingkan. Jika klien tunggal bertambah baik manakala yang lain tidak terganggu, anda telah menemui skop masalah. Jika semua klien terhenti, nilai di pihak pelayan yang perlu disemak. Kedua-dua hasil itu tidak membenarkan perubahan pada perkakasan yang tidak pernah berada di laluan yang gagal.