Mengapa satu subnet masih memintas laluan lalai VPN anda
Satu subnet yang pergi terus di bawah terowong penuh biasanya bermakna awalan yang lebih panjang menang, bukan kebocoran. Semak separuh-lalai, peraturan polisi dan pengecualian profil.
Anda tukar VPN kepada terowong penuh, kebanyakan trafik mematuhi, dan kemudian satu alamat menjawab terus — pencetak, NAS, hos lompat pada 10.x. Bacaan jelas ialah terowong bocor, jadi anda turunkan metrik pada laluan lalai dan tiada apa berubah. Percubaan gagal itu ialah petunjuk: laluan lalai ialah sandaran, bukan keputusan. Carian laluan mengambil awalan sepadan terpanjang sebelum ia membandingkan metrik, jadi /24 terus menang terhadap /0 tidak kira nombor yang anda lampirkan pada mana-mana satu. Setelah susunan itu jelas, kebocoran biasanya ialah laluan yang dipasang seseorang dengan sengaja, atau awalan yang klien tidak pernah berniat untuk tutup.
Apa yang sebenarnya dijanjikan laluan lalai
0.0.0.0/0 sepadan dengan setiap destinasi IPv4 dengan sifar bit kekhususan. Ia wujud supaya hos boleh mencapai apa sahaja yang jadualnya tidak huraikan dengan lebih baik. Laluan ke 192.168.1.0/24 membawa 24 bit sepadan, jadi untuk 192.168.1.40 ia menang sebelum sesiapa membandingkan metrik, jarak pentadbiran atau apa sahaja yang klien panggil medan keutamaannya. Peraturan yang sama terpakai dalam FIB Linux, jadual penghalaan Windows dan tindanan BSD di belakang macOS.
Pada LAN biasa tingkah laku itu ialah ciri. Subnet tempatan disambung terus, pencetak terus berfungsi sementara terowong membawa pelayaran anda, dan tiada apa yang salah dikonfigurasikan. Soalan yang wajar ditanya bukanlah mengapa alamat itu pergi terus, tetapi awalan mana dalam jadual mana yang sepadan dengannya, dan siapa yang meletakkannya di sana.
Separuh-lalai, atau mengapa entri lalai boleh kelihatan tidak terusik
Contoh paling bersih ialah redirect-gateway def1 dalam OpenVPN. Daripada memadam laluan lalai anda dan menggantikannya, ia menambah 0.0.0.0/1 dan 128.0.0.0/1. Bersama-sama pasangan itu meliputi seluruh IPv4, setiap awalan lebih panjang daripada /0, dan kedua-duanya mengalahkan laluan lalai penghala sambil membiarkannya di tempatnya. Jalankan senarai laluan selepas itu dan laluan lalai asal masih ada, masih menunjuk ke gateway anda; ia cuma tidak pernah dipilih untuk destinasi internet.
wg-quick WireGuard mencapai hasil yang sama melalui penghalaan berasaskan polisi. Apabila AllowedIPs meliputi 0.0.0.0/0 ia mencipta jadualnya sendiri, menghantar paket bertanda ke sana, dan menambah peraturan yang mengabaikan awalan panjang sifar jadual utama. Jadual utama mengekalkan entri lalainya, dan peraturan menentukan bahawa jadual terowong dirujuk dahulu untuk trafik yang dimiliki antara muka.
Kedua-dua reka bentuk memerlukan tepat satu laluan di luar terowong: laluan hos ke alamat pelayan VPN itu sendiri melalui gateway asal. Tanpanya klien akan cuba membawa paket yang membina terowong di dalam terowong, dan sambungan tidak akan pernah selesai. Jadi laluan bukan terowong dalam jadual anda adalah normal walaupun pada profil terowong penuh yang ketat. Laluan yang wajar dipersoalkan ialah yang meliputi destinasi yang anda benar-benar ambil berat.
Metrik menentukan seri, awalan menentukan pemenang
Metrik hanya dibandingkan antara calon yang sepadan dengan destinasi sama baiknya. Pada Linux ip route get 10.20.5.9 mencetak pemenang bersama jadualnya, dan ip route show table all menyenaraikan calon, termasuk mana-mana separuh-lalai dan mana-mana jadual yang ditunjuk peraturan. Pada Windows Find-NetRoute -RemoteIPAddress 10.20.5.9 mengembalikan laluan terpilih dan alamat sumber, manakala Get-NetRoute menunjukkan jadual mentah — tetapi kos berkesan ialah metrik laluan tambah metrik antara muka, jadi penyesuai lambat boleh kalah seri yang kelihatan dimenanginya.
Tiga kes meliputi sebahagian besar daripada apa yang akan anda lihat:
- Destinasi sama, /24 lawan /0: /24 menang pada panjang awalan, apa pun kata metrik.
- Destinasi sama, dua /24 dengan metrik berbeza: metrik berkesan lebih rendah menang.
- Destinasi sama, dua jadual, satu dipilih oleh peraturan polisi: peraturan memilih jadual dahulu, dan perbandingan awalan berlaku di dalamnya.
Kes ketiga ialah tempat kebanyakan laporan ini berakhir. ip rule Linux atau penapis trafik VPN Windows boleh menghantar trafik ke jadual yang tidak pernah memegang laluan lalai terowong, dan jadual utama kelihatan sempurna sepanjang masa.
Siapa biasanya memiliki pemintasan itu
Mulakan dengan profil, bukan jadual. Konfigurasi split-tunnel dan tetapan VPN setiap aplikasi sengaja meninggalkan awalan bernama di luar terowong; profil kerja yang melindungi satu subnet peribadi dan membiarkan pelayaran umum pergi terus berkelakuan seperti direka, dan mengatasinya memecahkan polisi yang ia dibina untuk kuatkuasakan. Panduan penghalaan VPN Microsoft menarik garis yang sama antara trafik yang dipaksa masuk terowong dan pengecualian jelas, yang menjadikannya semakan silang berguna sebelum anda mengubah apa-apa.
Seterusnya, cari sisa. Laluan yang menunjuk ke antara muka yang tidak lagi wujud, atau ke alamat dari rangkaian sebelumnya, muncul selepas stesen dok, penyesuai USB dan jambatan kontena datang dan pergi. Memadamnya sekali bukanlah penghujungnya: profil sambungan NetworkManager, fail netplan dan laluan berterusan Windows memasangnya semula pada sambungan atau but seterusnya, jadi cari fail atau profil yang memilikinya sebelum mengubah apa-apa.
Kemudian semak IPv6 secara berasingan. ip -6 route dan Get-NetRoute -AddressFamily IPv6 menyimpan keadaan berasingan, lalai berasingan dan tingkah laku klien berasingan. Audit hanya-IPv4 tidak berkata apa-apa tentang hos tindanan dua yang senyap memilih laluan IPv6 asli, dan itu sahaja boleh membuat klien kelihatan split-tunnel.
Sahkan dengan aliran aplikasi itu sendiri
Catat destinasi yang benar-benar digunakan aplikasi, kemudian tanya sistem laluan yang akan diambilnya dari alamat sumber yang diikat aplikasi itu. ip route get 10.20.5.9 from 192.168.1.40 menjawabnya pada Linux; Find-NetRoute -RemoteIPAddress 10.20.5.9 tambah alamat tempatan melakukannya pada Windows. Bandingkan hasilnya dengan apa yang didakwa profil. Halaman IP awam pelayar menguji satu destinasi pada satu protokol dan tidak berkata apa-apa tentang alamat peribadi yang memulakan aduan.
Betulkan objek tersempit yang menjelaskan perbezaan itu. Jika pengecualian diluluskan, catat awalannya dan biarkan; jika tidak, buang laluan atau tambah laluan lebih sempit yang jelas melalui terowong daripada menurunkan metrik lalai. Menurunkan metrik tidak boleh mengalahkan awalan lebih panjang, dan mengedit lalai semasa dua laluan /1 memiliki laluan internet juga tidak mengubah apa-apa.
Kemudian sambung semula terowong dan ulang pertanyaan yang sama. Klien memasang semula laluan pada setiap sambungan, jadi perubahan yang hanya bertahan sehingga jabat tangan seterusnya belum diuji. Jika laluan masih menyimpang, suspek yang tinggal ialah peraturan polisi, jadual kedua atau penapis sebelah klien — bukan laluan lalai.
- Namakan destinasi dan alamat sumber yang benar-benar digunakan aplikasi.
- Cetak laluan pemenang dengan
ip route getatauFind-NetRoute. - Semak sama ada pasangan /1 atau jadual polisi memiliki laluan internet.
- Senaraikan setiap awalan lebih panjang daripada /0 yang sepadan dengan destinasi.
- Ulang pemeriksaan IPv6 secara berasingan.
- Jejaki laluan yang tinggal kembali ke fail, profil atau penapis yang memasangnya.
- Sambung semula dan jalankan semula pertanyaan sebelum menyebutnya selesai.
Jika ketujuh-tujuhnya bersetuju dengan profil, terowong melakukan tepat apa yang dikonfigurasikan, dan pembetulan itu tergolong dalam profil, bukan dalam metrik.