Terowong penuh berbanding laluan titik akhir: memastikan pelayan VPN boleh dicapai
Terowong bergerak melalui rangkaian yang digantikannya. Bandingkan pengecualian laluan hos dengan tanda soket peringkat aplikasi dan ketahui bila setiap satu gagal.
Tambahkan laluan lalai melalui terowong, dan paket terowong itu sendiri akan mengikutinya. Jadual kemudiannya mengandungi peraturan yang mengalahkan dirinya sendiri. Sambungan tersulit ke pelayan cuba bergerak di dalam sambungan yang sedang cuba diwujudkannya.
Dua mekanisme menghalang gelung itu. Satu kelihatan dalam jadual penghalaan, satu lagi hidup di dalam aplikasi.
Trafik dalaman dan luaran ialah keputusan yang berbeza
Paket aplikasi masuk ke antara muka maya dan dikapsulkan. Hasilnya paket baharu yang dialamatkan ke alamat awam pelayan. Paket itu memerlukan laluan pada rangkaian fizikal, kerana tiada apa-apa daripadanya boleh masuk ke terowong.
Kedua-duanya keputusan penghalaan, dan hanya yang pertama milik terowong. Apabila klien memasang laluan lalai yang turut meliputi pelayan, paket luaran juga ditangkap.
Gejalanya serta-merta dan menyeluruh. Handshake selesai dan kemudian tiada apa mengalir, atau sambungan terputus pada saat laluan dipasang. Dalam kedua-dua kes keepalive tidak boleh keluar lagi.
Pilihan satu: laluan hos untuk titik akhir
Pendekatan langsung menambah laluan untuk alamat pelayan melalui gateway asal. Ia mengambil satu baris. Ia kelihatan kepada sesiapa yang membaca jadual. Ia juga mudah dijelaskan dalam rekod perubahan.
Kelemahannya muncul apabila laluan asas berubah. Laluan yang disimpan menamakan gateway dan antara muka daripada rangkaian lama. Selepas pertukaran Wi-Fi gateway itu mungkin tidak wujud, dan laluan kekal di belakang, kelihatan betul dan tidak melakukan apa-apa.
# before the tunnel: which path reaches the endpoint?
ip route get 198.51.100.7
# pin it through the current gateway
ip route add 198.51.100.7/32 via 192.168.1.1 dev wlan0
# after the tunnel is up, confirm the pin survived
ip route get 198.51.100.7
Nama hos menjadikan ini lebih sukar. Jika titik akhir ialah nama yang diselesaikan kepada beberapa alamat, pengecualian mesti meliputi alamat yang benar-benar digunakan. Pencarian kemudian mungkin memulangkan sesuatu yang tidak pernah diliputi oleh laluan.
Pilihan dua: lindungi soket
Pendekatan lain tidak pernah menyentuh jadual penghalaan. Klien menanda atau melindungi soket yang membawa terowong, jadi sistem pengendalian menghantar trafik soket itu ke luar terowong mengikut dasar. Android mendedahkan mekanisme itu terus kepada aplikasi VPN. Klien desktop melaksanakan setara dengan tanda firewall atau panggilan ikat-ke-peranti.
Kelebihannya ialah pengecualian mengikut sambungan dan bukannya gateway yang disimpan. Perubahan rangkaian menulis semula laluan asas, dan soket yang dilindungi bergerak bersamanya kerana ia tidak pernah dipasak pada alamat. Jadual laluan kekal bersih.
Kosnya ialah keterlihatan. Tiada apa dalam jadual penghalaan menunjukkan pengecualian, jadi penyemak yang mencari laluan hos tidak menemui apa-apa dan mungkin menyimpulkan reka bentuk itu tidak selamat. Perlindungan hidup dalam kod klien dan dalam peraturan dasar yang dipasang oleh kod itu.
Memilih antara keduanya
Pilih mekanisme peringkat soket apabila klien menyokongnya, kerana ia bertahan menghadapi perubahan rangkaian yang memecahkan laluan yang dipasak. Pilih laluan hos apabila pengecualian mesti kelihatan kepada alat lain, atau apabila klien tidak menawarkan apa-apa yang lebih baik.
Tiada satu pun mekanisme menghapuskan keperluan alamat pelayan boleh dicapai sama sekali. Gateway persendirian mempunyai alamat pendengar awam, dan alamat itulah yang mesti kekal di luar terowong. Rangkaian dalaman di belakangnya hanya boleh dicapai selepas terowong wujud.
Apa pun yang anda pilih, simpan ia bersama komponen yang memiliki terowong. Laluan hos sesat yang ditambah dengan tangan berfungsi sehingga rangkaian seterusnya, dan kemudian ia menjadi gangguan misteri esok.