Empat pemeriksaan memisahkan peraturan tanda yang berfungsi daripada laluan yang berfungsi: tanda mana yang dibaca peraturan, sama ada paket masih membawanya semasa carian, sama ada tanda sambungan dipulihkan pada paket kemudian, dan sama ada sama ada topeng dan keutamaan peraturan yang sepadan membenarkannya bertindak. Pembilang yang meningkat hanya membuktikan bahawa sesuatu peraturan sepadan dengan sesuatu. Ia tidak berkata apa-apa tentang apa yang dibawa paket apabila kernel memilih laluannya.

Kedua-dua tanda hidup di tempat berbeza dan tamat mengikut jadual berbeza.

Dua tanda, dua hayat

Tanda paket milik satu skb, bergerak bersamanya melalui cangkuk dan dimakan oleh pemilih fwmark penghalaan berasaskan dasar. Tanda sambungan milik entri conntrack, kekal merentasi paket aliran itu dan tidak kelihatan kepada peraturan penghalaan sehingga sesuatu menyalinnya kembali. Menyimpan tanda paket ke dalam sambungan ialah penyimpanan; memulihkannya ialah tindakan berasingan. Kedua-duanya tidak berlaku secara tersirat.

Itulah sebabnya satu set peraturan boleh kelihatan konsisten sementara keputusan penghalaan melihat sifar: nilainya disimpan, dan tiada apa yang memulihkannya.

Menyalin antara keduanya ialah langkah yang anda tulis

Dua pernyataan yang penting bergerak ke arah bertentangan: satu menyimpan tanda paket ke dalam sambungan, satu lagi memuatkan tanda sambungan ke atas paket. Yang mana anda perlukan bergantung pada bila pengelasan berlaku berbanding aliran. Sesuatu reka bentuk mungkin hanya memerlukan tanda paket, dan menambah penandaan conntrack kerana sesuatu jalan pintas menggunakan kedua-duanya ialah cara dasar mudah memperoleh mod kegagalan kedua.

ct mark set meta mark
meta mark set ct mark

Tuliskan arah di sebelah peraturan, kerana ia tidak jelas daripada sintaks pada pandangan pertama. Baris pertama menyimpan, baris kedua memulihkan, dan tidak satu pun membayangkan yang lain.

Kelaskan sebelum carian yang memakannya

Trafik yang dijana secara setempat dan trafik yang diteruskan dari LAN melalui cangkuk berbeza dan sampai kepada keputusan penghalaan pada saat berbeza. Peraturan keluaran yang berfungsi untuk sambungan penghala itu sendiri tidak membuktikan bahawa paket klien yang diteruskan ditanda sebelum cariannya. Letakkan pengelasan di tempat carian yang memakannya belum berlaku, dan periksa sama ada peraturan kemudian dalam rantai yang sama menimpa nilainya. Susunan dalam rantai ialah sebahagian daripada konfigurasi, bukan butiran pelaksanaan.

Kegigihan keadaan sambungan juga memerlukan pelan yang jelas. Jika hanya paket pertama sesuatu aliran dikelaskan, paket kemudian memerlukan pemulihan tanda yang disimpan, jika tidak ia akan mengambil laluan tanpa tanda. Itulah perbezaan antara tanda yang menerangkan sambungan dan tanda yang menerangkan paket.

Tanyakan soalan bertanda kepada laluan

ip route get 10.77.0.10 mark 0x2

Periksa peraturan dan jadual, kemudian tanyakan laluan dengan tanda disertakan, serta sumber atau antara muka masuk apabila ia mempengaruhi dasar. Carian biasa tanpa tanda menjawab soalan lain dan akan dengan senang hati melaporkan laluan yang anda tidak mahu. Periksa topeng dan keutamaan peraturan serta nilainya, dan pastikan jadual yang dipilih mengandungi laluan yang boleh digunakan.

Pembilang yang meningkat ialah bukti bahawa sesuatu peraturan sepadan dengan sesuatu paket. Ia bukan bukti bahawa paket akhir membawa tanda yang dimaksudkan pada titik keputusan yang betul.

Baca tanda, arah, masa dan topeng. Empat pemeriksaan, dan laluan berhenti menjadi misteri.

Artikel berkaitan