Aplikasi terikat pada antara muka? Laluan VPN-nya bukan lalai
Mengikat soket pada peranti, alamat sumber atau ruang nama mengubah laluan mana yang digunakan. Uji sambungan aplikasi itu sendiri, bukan pemeriksaan IP pelayar.
Satu aplikasi pada mesin keluar melalui VPN dan satu lagi tidak, dan kedua-dua pengguna bersumpah tidak mengubah apa-apa. Perbezaannya selalunya keputusan pengikatan yang dibuat oleh aplikasi itu sendiri: soket yang diikat pada peranti, alamat sumber yang dipilih sebelum sambungan, atau ruang nama dengan jadual penghalaan sendiri. Setiap satu mengubah laluan mana yang digunakan, dan tiada satu pun muncul dalam pemeriksaan IP umum di pelayar.
Tiga pengikatan berbeza, tiga kesan berbeza
Mengikat pada peranti dan mengikat pada alamat sumber ialah operasi berkaitan dengan kesan berbeza. Pengikatan peranti boleh memaksa trafik keluar melalui satu antara muka dan memintas carian laluan biasa untuk soket itu. Pengikatan alamat sumber masih melalui pemilihan laluan, tetapi sumber yang dipilih boleh sepadan dengan peraturan dasar dan menghantar paket ke tempat lain. Perbezaannya kedengaran akademik sehingga sesuatu peraturan menghala berdasarkan sumber. Ketika itu ia menentukan segala-galanya.
Ruang nama rangkaian ialah kes ketiga. Ia mempunyai antara muka dan jadual penghalaan sendiri, jadi aplikasi di dalamnya sama sekali tidak terjejas oleh nilai lalai hos. Menganggap ketiga-tiganya sebagai perkara yang sama menghasilkan penjelasan yakin yang tidak bertahan pada ujian pertama.
Tentukan apa yang sebenarnya ditetapkan aplikasi
Baca konfigurasi rangkaian aplikasi atau tingkah laku terdokumentasinya sebelum menyentuh laluan. Jika ia menawarkan pilihan antara muka, medan alamat sumber atau pilihan ruang nama, tetapan itulah yang pertama perlu diperiksa. Jika tidak, pengikatan mungkin dalaman dan hanya kelihatan melalui penjejakan atau diagnostiknya sendiri.
Di Linux, pilihan soket seperti SO_BINDTODEVICE mempunyai skop dan keperluan kebenaran yang didokumenkan, dan proses tanpa keistimewaan mungkin tidak dapat menetapkannya langsung. Kekangan itu ialah petunjuk berguna: jika pilihan tidak dapat digunakan, aplikasi mungkin bukan punca perbezaan.
Penghalaan dasar membaca sumber
Apabila penghalaan dasar dikonfigurasikan, peraturan boleh memilih jadual berdasarkan sumber paket. Oleh itu soket yang mengikat alamat sumber boleh mengikut peraturan yang tidak pernah disentuh laluan lalai, walaupun tiada antara muka dinamakan secara jelas.
Hasilkan semula carian dengan keluarga alamat, sumber dan ruang nama yang sama seperti yang digunakan aplikasi. Carian laluan umum dari shell dalam ruang nama hos menjawab soalan berbeza, dan ketidakpadanan itulah sebab paling biasa laluan yang berfungsi kelihatan rosak.
Tunnel berpecah dan proses pembantu
Tunnel berpecah bagi setiap aplikasi menambah satu lagi lapisan. Klien boleh memadankan pakej atau proses aplikasi, dan pembantu yang membuka soket sendiri ialah subjek berasingan. Pelancar dan perkhidmatan latarnya boleh menghasilkan sambungan berbeza di bawah nama yang sama kelihatan.
Semak sama ada peraturan tunnel berpecah meliputi proses yang benar-benar bersambung. Jika aplikasi mengikat pada antara muka tertentu dan klien VPN memadankan mengikut pakej, kedua-dua keputusan boleh bercanggah tanpa mana-mana satu pun salah.
Uji laluan aplikasi itu sendiri
Jalankan permintaan baharu daripada aplikasi selepas setiap perubahan. Pelayar yang menunjukkan jalan keluar yang anda mahukan bukan bukti setara bagi program lain yang terikat pada antara muka lain, dan sambungan yang dicache boleh terus menggunakan laluan lama lama selepas tetapan berubah. Tutup sesi lama sebelum menilai peraturan baharu. Jika tidak, ujian mengukur masa lalu.
Rujukan soket Linux mendokumenkan SO_BINDTODEVICE dan keperluannya. Baca dahulu konfigurasi aplikasi itu sendiri, hasilkan semula carian dalam konteks yang sama, dan hanya selepas itu tentukan sama ada laluan atau pengikatan perlu diubah.