Komputer riba berpindah dari Wi-Fi pejabat ke hotspot telefon, terowong bertahan beberapa saat lagi, kemudian trafik berhenti sementara antara muka masih mendakwa ia bersambung. Di pelayan, senarai status terus memaparkan alamat awam lama. Inilah keadaan yang menjadi sebab float wujud, dan juga keadaan apabila orang mengharapkan jauh lebih banyak daripada yang dilakukannya. Memahami sempadannya dengan tepat menukar tersekat yang mengelirukan kepada perubahan konfigurasi satu baris atau penyiasatan yang sama sekali berbeza.

Apa yang dilonggarkan float, dan apa yang tidak pernah dilonggarkannya

Biasanya sesi terus bercakap dengan alamat luar dan port tempat ia bermula, dan paket yang tiba dari mana-mana tempat lain diabaikan. Pilihan float membuang ikatan ketat itu setelah rakan sebaya telah membuktikan dirinya, jadi pemetaan sumber yang berubah boleh meneruskan sesi yang sama dan bukannya dibuang. Tiada apa-apa pada pemeriksaan kriptografi berubah: kunci, sijil dan sebarang perlindungan HMAC kekal tepat seperti yang dikonfigurasikan.

Ini keputusan bagi setiap paket, bukan dasar tentang siapa yang boleh bersambung. Mesin tidak dikenali yang menghantar paket dari alamat baharu belum membuktikan apa-apa, dan paketnya dibuang seperti mana-mana trafik tidak disahkan yang lain. Hanya trafik yang melepasi pengesahan sesi itu sendiri boleh menggerakkan alamat rakan sebaya yang direkodkan, dan itulah sebabnya float selamat dibiarkan hidup dalam persekitaran tempat klien berpindah randah.

Ia juga tidak berkata apa-apa tentang terowong dalaman. Alamat luar yang bergerak tidak memperuntukkan semula alamat terowong, tidak menukar kumpulan dan tidak memberi rakan sebaya akses kepada sesuatu yang baharu. Di dalam terowong, identiti yang sama dan laluan yang ditolak sama terpakai sebelum dan selepas pergerakan. Perpindahan juga tidak berunding semula saluran data, jadi sifer dan kunci yang dirundingkan berterusan.

Paket yang menggerakkan sesi mesti disahkan

Mulakan sesi dengan cara biasa terhadap jauh yang dikonfigurasikan, dan float mengendalikan apa yang berlaku apabila pemetaan berubah. Pengendali mudah alih yang menomborkan semula di tengah aliran, get laluan NAT yang menulis semula pemetaan portnya, atau komputer riba yang menukar pautan atas semuanya menghasilkan bentuk yang sama: paket disahkan dari tuple baharu, yang tiba pada sesi yang masih percaya pada yang lama.

Apabila ditanya sama ada float berfungsi, bukti yang berguna ialah jabat tangan yang selesai diikuti perubahan sumber yang diterima, bukan baris log tentang alamat sahaja. Kaitkan alamat luar lama dan baharu dengan sesi yang kekal hidup, kemudian sahkan bahawa trafik benar-benar berterusan melalui terowong.

Jika sesi mati dan bukannya bergerak, paket yang tiba dari alamat baharu mungkin gagal pengesahan atau tidak pernah tiba langsung. Kedua-dua kes kelihatan sama dari pihak klien. Di pelayan, tangkapan pada antara muka awam memberitahu anda yang mana satu anda hadapi sebelum anda menyentuh sebarang konfigurasi.

Penemuan ialah mekanisme yang sama sekali berasingan

float tidak menyelesaikan nama mengikut pemasa dan tidak menjejaki rekod DNS dinamik. Jika nama hos pelayan mula diselesaikan ke alamat baharu, klien yang melahu tiada sebab untuk menyedarinya dan tiada paket dari titik akhir baharu untuk disahkan. Masalah itu milik logik penyambungan semula, tingkah laku cubaan semula klien itu sendiri dan DNS, bukan float.

Menambah pilihan itu sekali lagi tidak dapat mengimbangi ketiadaan laluan ke alamat baharu. Ia juga tidak membantu apabila rakan sebaya berdiam diri, kerana rakan sebaya yang senyap tidak pernah menghantar paket disahkan yang akan menggerakkan apa-apa.

Tembok api di bawahnya juga ada suara. Peraturan yang hanya membenarkan titik akhir luar lama menyekat alamat yang berubah sebelum OpenVPN sempat melihatnya, dan tiada konfigurasi sebelah klien yang membaikinya. Semak kitaran hayat alamat yang dibenarkan sebagai tugas tersendiri; meluaskan peraturan kepada mana-mana sumber menukar masalah kecil dengan masalah besar.

Apabila NetworkManager memiliki profil

Profil baris arahan dan sambungan yang diimport ialah konfigurasi berasingan, dan menyunting satu tidak menyentuh yang lain. Sebelum menganggap pilihan itu tidak disokong, tentukan jenis pemalam yang benar-benar digunakan oleh profil tersimpan dan di mana nilainya berada. UUID profil ialah pengecam yang penting apabila anda memeriksa atau mengubah apa-apa.

Periksa sambungan tersimpan dan bukan fail import asal. Baris yang kekal dalam fail .ovpn tidak membuktikan apa-apa jika pengurus aktif tidak pernah menggunakannya, dan editor tanpa kotak semak untuk pilihan tertentu juga tidak membuktikan apa-apa tentang keupayaan protokol.

Jangan tampal pemalam yang dipakej untuk menambah tingkah laku itu, apatah lagi dengan diff yang ditulis untuk versi sejarah komponen yang tidak berkaitan. Jika integrasi yang dipasang benar-benar tidak dapat menyatakan tetapan itu, langkah yang betul ialah profil yang disokong atau laluan klien lain yang diluluskan oleh pemilik penggunaan.

Buktikan peralihan dan bukannya menganggapnya

Jalankan ujian seperti kegagalan berlaku. Sambung, sahkan trafik melalui terowong, paksa alamat luar berubah, kemudian periksa tiga perkara: sesi masih wujud, alamat rakan sebaya yang direkodkan telah bergerak, dan permintaan sebenar masih sampai ke destinasinya. Apa-apa yang kurang daripada ketiga-tiganya ialah jawapan separa.

Pastikan akses pemulihan tersedia semasa menguji, kerana eksperimen perpindahan mempunyai tabiat meninggalkan mesin yang anda gunakan terkandas. Konsol bersiri atau laluan di luar jalur menukar ujian yang gagal kepada pemulihan lima minit dan bukannya lawatan ke tapak.

Akhir sekali, huraikan hanya kes yang anda uji. Perubahan alamat yang berjaya semasa sesi bukan bukti bahawa penghijrahan DNS, pelaksanaan klien lain atau profil yang dibina semula akan berkelakuan sama. Dokumentasi link-options menyatakan skop pilihan itu dengan tepat; log ujian anda harus menyatakan bahagian mana skop itu yang benar-benar anda liputi.

Artikel berkaitan