Jadual VPN kosong tidak menyekat apa-apa dengan sendirinya
Jadual dasar tanpa laluan yang sepadan tidak membuang paket; carian diteruskan. Tambah tindakan terminal, kemudian uji kedua-dua keadaan kegagalan.
Peraturan dasar menghantar paket bertanda ke jadual khusus, dan jangkaan biasa ialah kehilangan laluan VPN menyekatnya. Mekanisme itu melakukan sesuatu yang lain. Apabila jadual tidak mengandungi laluan yang sepadan, carian diteruskan ke peraturan seterusnya dan bukan berhenti, dan jadual main masih menyimpan laluan lalai biasa untuk uplink. Hasilnya ialah konfigurasi yang kelihatan fail-closed tetapi berkelakuan fail-open.
Tiada apa yang rosak; begitulah penghalaan berasaskan dasar ditentukan.
Carian diteruskan apabila jadual tiada apa-apa
100: from all fwmark 0x36 lookup 42 110: from all fwmark 0x36 lookup default 32766: from all lookup main
Ambil set peraturan itu: carian bertanda pergi ke jadual 42, dan peraturan kemudian menghantar tanda yang sama ke jadual bernama default. Selagi jadual 42 menyimpan laluan lalai yang boleh digunakan, carian pertama menyediakan laluan. Apabila laluan itu hilang dan tiada apa-apa lagi dalam jadual 42 yang sepadan, carian tidak menjadi pembuangan; pemprosesan bergerak ke peraturan seterusnya, dan apabila ia juga tidak menemui apa-apa, ia sampai ke jadual main. Tiada apa-apa dalam urutan itu melaporkan peraturan mana yang menghasilkan jawapan akhir, jadi sambungan yang berfungsi kelihatan seperti dasar yang berfungsi.
Jadual 253, yang biasanya dipanggil default, ialah jadual penghalaan biasa dan biasanya kosong. Namanya bukan arahan untuk membuang paket, dan ia bukan perkara yang sama dengan laluan destinasi lalai di dalam jadual.
Tindakan terminal menamatkan carian
100: from all fwmark 0x36 lookup 42 110: from all fwmark 0x36 prohibit 32766: from all lookup main
Peraturan terminal boleh menyusuli carian VPN sebagai ganti carian jadual kosong. Dengan tanda yang sama, tindakan prohibit yang diletakkan selepas peraturan jadual 42 menamatkan carian apabila jadual itu tidak memberikan apa-apa, dan memulangkan penolakan pentadbiran dan bukannya memberi jadual main peluang lain. Unreachable dan blackhole juga terminal, dengan tingkah laku ralat berbeza untuk penghantar.
Laluan jenis throw berbeza: dalam jadual itu ia berkelakuan seolah-olah tiada apa yang sepadan, jadi peraturan kemudian masih mendapat giliran. Itu menjadikan throw berguna untuk pengunduran yang disengajakan dan salah sebagai blok akhir.
Sahkan dengan tanda dan antara muka sebenar
ip -4 rule show ip -4 route show table 42 ip -4 route get 198.51.100.20 from 10.44.0.2 iif lan0 mark 0x36
Periksa peraturan dan jadual sebenar dan bukan gambar rajah, kemudian tanyakan aliran itu dengan konteks sumber, tanda dan masuk yang benar-benar dimilikinya. Carian baca sahaja yang ditujukan kepada destinasi, yang diberi alamat sumber, antara muka dan tanda, melaporkan laluan yang akan dipilih kernel tanpa paket keluar. Memberi tanda dalam pertanyaan tidak membuktikan bahawa firewall menanda trafik sebenar; itu pemeriksaan berasingan bagi peraturan penandaan. Sahkan nilai itu dengan pembilang atau log sebelum membuat kesimpulan daripada pertanyaan.
Permintaan yang dijana secara setempat memerlukan konteksnya sendiri, kerana laluan penandaannya sering berbeza daripada trafik yang diteruskan. Periksa dengan antara muka keluaran yang benar-benar akan digunakan oleh aplikasi.
Dua keadaan kegagalan, bukan satu
Satu keadaan kegagalan ialah laluan VPN hilang dan trafik jatuh ke uplink. Terowong mati yang laluannya kekal dipasang ialah keadaan lain: paket kekal dihalakan ke laluan yang tidak boleh digunakan dan bukannya jatuh, dan gejalanya ialah kehilangan senyap dan bukan sambungan langsung yang kelihatan. Uji kedua-duanya, dan uji juga tingkah laku semasa permulaan, sambungan semula dan penghentian perkhidmatan.
Peraturan sedemikian hanya membantu selagi ia wujud dan selagi paket masih membawa tanda yang memilihnya. Skrip tutup yang memadam peraturan itu, atau laluan yang menanggalkan tanda, memulihkan tingkah laku terbuka. Peralihan itu wajar dilatih.
Gunakan dasar itu pada IPv6 secara berasingan, dan kekalkan pengecualian titik akhir yang diluluskan secara eksplisit dan bukan tersirat.