SSH Macet lewat OpenVPN? Ukur MTU Jalur Lebih Dulu
Gema berfungsi, lalu daftar direktori membekukan sesi selamanya. Ukur batas atas dari kedua sisi sebelum mengubah mssfix, fragment, atau MTU antarmuka.
SSH tersambung, prompt muncul, dan sesi mati begitu sebuah perintah mengembalikan sesuatu yang besar. Gema masih bekerja sebentar, lalu koneksi habis waktu sementara klien tetap menampilkan terowongan sebagai aktif. Sesi yang sehat sampai data datang biasanya menabrak batas ukuran, bukan cacat SSH. Pemeriksaan di bawah ini disusun agar penjelasan termurah disingkirkan lebih dulu.
Baca bentuk kegagalannya sebelum menyentuh profil
Paket kecil lolos dan paket penuh tidak. Prompt, spanduk, atau satu tekanan tombol mudah masuk; daftar direktori, unduhan, atau blok yang ditempel tidak. Ukuran tempat perilakunya berubah adalah petunjuknya, bukan fakta bahwa SSH adalah program yang terlibat.
Mekanismenya adalah penemuan MTU jalur, yang bergantung pada umpan balik. TCP memilih ukuran segmen, dan ketika router di sepanjang jalur tidak dapat meneruskan paket yang dihasilkan, ia semestinya memberi tahu dengan pesan ICMP. Enkapsulasi membuat paket luar lebih besar daripada paket dalam, jadi ukuran yang dapat dipakai di dalam terowongan selalu di bawah tautan fisik. Saring pesan ICMP itu di mana pun dan pengirim tidak pernah menerima koreksinya, terus mengirim segmen penuh, dan paket luar dibuang tanpa pemberitahuan.
Ukur batas atas dari kedua sisi
Bandingkan MTU terowongan dengan tautan fisik sebelum mengubah salah satunya. Terowongan yang menyalin nilai fisik sudah memberi tahu Anda di mana ketidakcocokannya.
Uji dari dalam terowongan dengan permintaan yang melarang fragmentasi, turunkan muatan sampai balasan kembali. Argumen ukuran hanya menghitung muatan, jadi angka yang berhasil selalu di bawah MTU antarmuka. Tambahkan kembali ukuran tajuk jika Anda memerlukan angka antarmuka.
ip link show tun0
ping -M do -s 1380 10.9.0.1Ulangi uji terhadap alamat publik server dari luar terowongan. Jika uji besar juga gagal di sana, batasnya ada di jalur menuju server dan tidak ada opsi terowongan yang akan menggesernya. Perbandingan itu menyelamatkan Anda dari menyetel klien yang tidak pernah menjadi masalah. Catat kedua hasil sebelum membuka berkas konfigurasi.
mssfix dan fragment melakukan tugas berbeda
mssfix membatasi ukuran segmen yang diumumkan koneksi TCP di dalam terowongan saat jabat tangan. Itu tuas yang tepat untuk SSH, HTTPS, dan salinan berkas, karena itulah kemacetan sering hilang begitu diatur. Ia sama sekali tidak menyentuh muatan UDP.
Terowongan yang juga membawa layanan UDP bisa tetap gagal setelah SSH diperbaiki, dan hasil itu membingungkan siapa pun yang menganggap satu opsi mencakup semuanya.
fragment adalah mekanisme lain dan alat yang berbeda. Ia membelah paket yang kelebihan ukuran sebelum enkapsulasi, hanya berlaku untuk transport UDP, menambah beban per datagram, dan didokumentasikan sebagai upaya terakhir untuk penemuan yang rusak. Kedua pengaturan harus sama pada peer yang mengakhiri terowongan. Satu ujung membatasi sementara ujung lain memecah menghasilkan peringatan log dan perilaku yang tidak dapat diperkirakan siapa pun dari berkasnya.
Menurunkan MTU antarmuka adalah opsi kasar
Menurunkan MTU antarmuka di kedua ujung adalah alat kasar. Ia memberi tahu setiap pengirim dalam angka yang lebih kecil, yang berhasil, dan membebankan biaya itu pada semua lalu lintas alih-alih pada aliran TCP yang membutuhkannya.
Pilih ini ketika terowongan membawa lalu lintas yang tidak dapat Anda batasi, atau ketika klien adalah perangkat yang profilnya tidak Anda kendalikan. Terapkan secara simetris dan catat nilainya di samping profil. Perubahan yang diterapkan separuh lebih buruk daripada tidak sama sekali, karena tampak seperti perbaikan.
Uji ulang dengan transfer yang macet
Sambungkan ulang agar pengaturan dimuat, buka koneksi baru, dan ulangi perintah yang membeku. Ukuran segmen dinegosiasikan saat jabat tangan, jadi sesi yang bertahan melewati penyambungan ulang masih membawa nilai lama. Ping adalah uji yang buruk di sini, karena seluruh kegagalannya adalah paket kecil lolos. Gunakan daftar, unduhan, atau tempelan yang rusak.
Jika kemacetan berlanjut pada ukuran yang lebih kecil, lihat ke tempat lain: tembok api stateful yang menghabisi aliran, alamat ganda, atau rute yang bergeser saat menyambung ulang. Catat ukuran uji yang gagal dan pengaturan yang Anda ubah, karena pasangan itulah yang membuat laporan berikutnya berguna.