Sesi SSH melalui OpenVPN terputus / terkunci setelah beberapa baris

12

Saya memiliki sejumlah besar PC tanpa kipas identik yang menjalankan debian 6 (ARM). Sebagian besar terhubung melalui comcast dan berfungsi dengan baik. Ada beberapa yang terhubung ke modem 'WiMax' dan mengalami masalah komunikasi.

Khususnya: jika saya ssh ke salah satu dari ini dan mencoba perintah seperti 'ps -ax' saya akan mendapatkan sekitar 3 baris kembali dan kemudian sesi dikunci. Jika saya membiarkannya, akhirnya akan ditutup dengan 'sesi ditutup oleh rekan'.

Apa yang saya coba:

  • ssh -vvv → tidak ada pesan kesalahan
  • ssh <user@host> 'command'→ ini terkadang akan mengembalikan output penuh dari perintah. Terkadang tidak terhubung sama sekali.

Saran tentang hal lain untuk dicoba?

Saya telah menemukan bahwa saya dapat menjalankan beberapa perintah dengan sukses: misalnya memukul balik selusin kali atau lebih tidak apa-apa. cd ~dan kemudian lfberfungsi seperti halnya df -h. Saya dapat menjalankan dfberkali-kali dengan sukses tetapi segera setelah saya mencoba sesuatu dengan lebih banyak output (misalnya ls /etc) terkunci.

Apakah ada perbedaan yang saya coba komunikasikan antara dua host ini menggunakan OpenVPN?

ethrbunny
sumber
Pastikan jalur MTU Anda tidak lebih rendah dari MTU antarmuka yang dikonfigurasi. SSH tidak terpecah jadi, dengan set bit DF, paket-paket dijatuhkan sebagai gantinya. Baca ini untuk penjelasan yang lebih detail.
Aaron Copley
1
Mencoba mengatur MTU pada semua antarmuka hingga 1400 tanpa efek yang jelas. Diuji dengan ping -c 1 -s $((5000-28)) -M do machine-ipyang mengembalikan 1500 - sama dengan mesin
ethrbunny
1
tracepath -n <ip>mengkonfirmasi ini: 1500 diijinkan sepanjang jalan.
ethrbunny
1
Maafkan ketidaktahuan saya, tetapi bagaimana -Tmembantu dalam hal ini?
Aaron Copley
2
<Membaca paragraf kedua> Ini masalah MTU. <Baca lebih lanjut> Yap, masalah MTU. Lihat utas ini untuk penjelasan. Saya tidak memilih untuk menutup sebagai duplikat karena ada satu titik yang tidak dibahas oleh utas lainnya: apa yang perlu Anda ubah dalam konfigurasi VPN Anda untuk memperbaiki masalah.
Gilles 'SO- berhenti bersikap jahat'

Jawaban:

11

Anda memiliki gejala masalah MTU : beberapa koneksi TCP membeku, lebih atau kurang dapat direproduksi untuk perintah atau URL yang diberikan tetapi tanpa pola keseluruhan yang mudah terlihat. Gejala yang muncul adalah bahwa sesi ssh interaktif berfungsi dengan baik selama Anda tidak menjalankan perintah dengan output besar. Lihat Tidak dapat mengakses situs https tertentu di Linux melalui PPPoE untuk penjelasan.

OpenVPN memiliki beberapa opsi terkait MTU - cari “mtu” di manual. Saya tidak punya cukup pengalaman untuk percaya diri tentang opsi mana yang perlu Anda ubah. (Bahkan mungkin Anda dapat mengubah sesuatu dalam konfigurasi modem Wimax.) Opsi yang paling mungkin untuk diubah adalah mssfix: coba turunkan nilainya sampai memperbaiki masalah. Standarnya adalah 1450; sesuatu seperti sekitar 1400 dapat memperbaiki masalah Anda. Coba openvpn --fragment 1200 -mssfix; jika ini membantu, tambah nilainya sampai mulai rusak.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Saya memulai dengan mengatur mssfix 1200pada server dan memulai kembali. Sejauh ini baik. Jika ini berhasil saya akan naik ke 1300 atau 1400 dan lihat apa yang terjadi. Terlalu banyak klien untuk mengubah semua konfigurasi jarak jauh, jadi sisi server harus melakukannya.
ethrbunny
Saya tahu itu MTU!
Aaron Copley
3

Jawaban Gilles sepenuhnya benar, tetapi ada juga kemungkinan penyebab lain untuk ini.

Ada bug dalam versi 2.3.0 dari OpenVPN yang akan memutuskan klien ketika mengirim potongan besar data: https://community.openvpn.net/openvpn/ticket/263

Masalah ini hanya terjadi ketika menggunakan TCP. UDP sama sekali tidak terpengaruh.

Patrick
sumber
3

Kami memiliki masalah yang sama, dan itu memang masalah MTU. Namun bagi kami masalahnya bukan pada konfigurasi openVPN tetapi pada antarmuka tun0.

Bagaimana kami menyelesaikannya: pertama temukan ukuran paket maksimum yang dilaluinya, dengan

ping <host> -s 1500 -M do

dan mengurangi nilai 1500 hingga nilai melewati (untuk kami, 1350).

Setelah nilai yang tepat ditemukan, ubah antarmuka tun0 dengan

sudo ip link set dev tun0 mtu 1350

seperti yang diusulkan oleh Sebastian di sini . Setelah itu VPN berjalan dengan lancar.

Eino Gourdin
sumber