Empat pemeriksaan memisahkan aturan markah yang bekerja dari rute yang bekerja: markah mana yang dibaca aturan, apakah paket masih membawanya saat pencarian, apakah markah koneksi dipulihkan ke paket berikutnya, dan apakah apakah mask dan prioritas aturan yang cocok mengizinkannya berjalan. Penghitung yang bertambah hanya membuktikan bahwa suatu aturan cocok dengan sesuatu. Ia tidak mengatakan apa pun tentang apa yang dibawa paket ketika kernel memilih jalurnya.

Kedua markah hidup di tempat berbeda dan kedaluwarsa menurut jadwal berbeda.

Dua markah, dua masa hidup

Markah paket milik satu skb, ikut berjalan dengannya melewati hook dan dikonsumsi oleh pemilih fwmark perutean berbasis kebijakan. Markah koneksi milik entri conntrack, bertahan di seluruh paket aliran itu dan tidak terlihat oleh aturan perutean sampai sesuatu menyalinnya kembali. Menyimpan markah paket ke dalam koneksi adalah penyimpanan; memulihkannya adalah tindakan terpisah. Keduanya tidak terjadi secara implisit.

Itulah sebabnya sekumpulan aturan bisa tampak konsisten sementara keputusan perutean melihat nol: nilainya disimpan, dan tidak ada yang memulihkannya.

Menyalin di antara keduanya adalah langkah yang Anda tulis

Dua pernyataan yang penting berjalan ke arah berlawanan: yang satu menyimpan markah paket ke dalam koneksi, yang lain memuat markah koneksi ke paket. Mana yang Anda butuhkan bergantung pada kapan klasifikasi terjadi terhadap aliran. Sebuah rancangan mungkin hanya membutuhkan markah paket, dan menambahkan penandaan conntrack karena suatu akal-akalan memakai keduanya adalah cara sebuah kebijakan sederhana memperoleh mode kegagalan kedua.

ct mark set meta mark
meta mark set ct mark

Tuliskan arahnya di samping aturan, karena tidak jelas dari sintaksisnya pada pandangan pertama. Baris pertama menyimpan, baris kedua memulihkan, dan tidak satu pun menyiratkan yang lain.

Klasifikasikan sebelum pencarian yang mengonsumsinya

Lalu lintas yang dihasilkan secara lokal dan lalu lintas yang diteruskan dari LAN melewati hook berbeda dan mencapai keputusan perutean pada saat berbeda. Aturan keluaran yang bekerja bagi koneksi router sendiri tidak membuktikan bahwa paket klien yang diteruskan telah ditandai sebelum pencariannya. Letakkan klasifikasi di tempat pencarian yang mengonsumsinya belum terjadi, dan periksa apakah aturan berikutnya dalam rantai yang sama menimpa nilainya. Urutan di dalam rantai adalah bagian dari konfigurasi, bukan detail implementasi.

Ketahanan status koneksi juga memerlukan rencana yang jelas. Jika hanya paket pertama suatu aliran yang diklasifikasikan, paket berikutnya perlu dipulihkan markah tersimpannya, atau mereka akan menempuh jalur tanpa markah. Itulah perbedaan antara markah yang menggambarkan koneksi dan yang menggambarkan paket.

Tanyakan pertanyaan bertanda kepada rute

ip route get 10.77.0.10 mark 0x2

Periksa aturan dan tabel, lalu tanyakan rute dengan markah disertakan, ditambah sumber atau antarmuka masuk bila keduanya memengaruhi kebijakan. Pencarian biasa tanpa markah menjawab pertanyaan lain dan akan dengan senang hati melaporkan jalur yang tidak Anda inginkan. Periksa mask dan prioritas aturan serta nilainya, dan pastikan tabel yang dipilih berisi rute yang bisa dipakai.

Penghitung yang bertambah adalah bukti bahwa suatu aturan cocok dengan suatu paket. Itu bukan bukti bahwa paket akhir membawa markah yang dimaksud pada titik keputusan yang tepat.

Baca markah, arah, waktu, dan mask. Empat pemeriksaan, dan rute berhenti menjadi misteri.

Artikel terkait