Neljä tarkistusta erottavat toimivan merkisäännön toimivasta reitistä: mitä merkkiä sääntö lukee, kuljettaako paketti sitä yhä hakuvaiheessa, palautettiinko yhteyden merkki myöhempiin paketteihin ja sallivatko vastaavan säännön maski ja prioriteetti sen laukeamisen. Kasvava laskuri todistaa vain, että jokin sääntö täsmäsi johonkin. Se ei kerro mitään siitä, mitä paketti kuljetti, kun ydin valitsi sen polun.

Kaksi merkkiä elävät eri paikoissa ja vanhenevat eri aikatauluilla.

Kaksi merkkiä, kaksi elinikää

Paketin merkki kuuluu yhdelle skb:lle, kulkee sen mukana koukkujen läpi ja käytäntöperusteisen reitityksen fwmark-valitsin kuluttaa sen. Yhteyden merkki kuuluu conntrack-tietueeseen, säilyy kyseisen vuon pakettien yli ja on reitityssäännölle näkymätön, kunnes jokin kopioi sen takaisin. Paketin merkin tallentaminen yhteyteen on tallennus; sen palauttaminen on erillinen toimenpide. Kumpikaan ei tapahdu itsestään.

Siksi sääntöjoukko voi näyttää johdonmukaiselta, vaikka reitityspäätös näkee nollan: arvo tallennettiin, eikä mikään palauttanut sitä.

Niiden välillä kopioiminen on vaihe, jonka kirjoitat itse

Kaksi olennaista lausetta kulkee vastakkaisiin suuntiin: toinen tallentaa paketin merkin yhteyteen, toinen lataa yhteyden merkin pakettiin. Kumpaa tarvitset, riippuu siitä, milloin luokittelu tapahtuu suhteessa vuohon. Suunnittelu voi tarvita vain paketin merkin, ja conntrack-merkinnän lisääminen siksi, että jokin kierto ratkaisi asian molemmilla, on tapa, jolla yksinkertainen käytäntö saa toisen vikatilan.

ct mark set meta mark
meta mark set ct mark

Kirjoita suunta säännön viereen, koska se ei ole syntaksista ensisilmäyksellä ilmeinen. Ensimmäinen rivi tallentaa, toinen palauttaa, eikä kumpikaan edellytä toista.

Luokittele ennen sitä hakua, joka sen kuluttaa

Paikallisesti tuotettu liikenne ja lähiverkosta välitetty liikenne kulkevat eri koukkujen läpi ja saavuttavat reitityspäätökset eri hetkinä. Reitittimen omille yhteyksille toimiva lähtösääntö ei todista, että välitetyn asiakkaan paketti merkittiin ennen sen hakua. Sijoita luokittelu sinne, missä sen kuluttava haku ei ole vielä tapahtunut, ja tarkista, kirjoittavatko saman ketjun myöhemmät säännöt arvon yli. Järjestys ketjun sisällä on osa kokoonpanoa, ei toteutuksen yksityiskohta.

Yhteyden tilan pysyvyys tarvitsee myös selvän suunnitelman. Jos vain vuon ensimmäinen paketti luokitellaan, myöhemmät paketit tarvitsevat tallennetun merkin palautuksen, tai ne kulkevat merkitsemättömälle polulle. Se on ero yhteyttä kuvaavan merkin ja pakettia kuvaavan merkin välillä.

Kysy reitiltä merkitty kysymys

ip route get 10.77.0.10 mark 0x2

Tarkastele säännöt ja taulu, kysy sitten reittiä merkki mukaan lukien, sekä lähde tai saapuva liitäntä, kun ne vaikuttavat käytäntöön. Tavallinen merkitsemätön haku vastaa toiseen kysymykseen ja kertoo mielellään polun, jota et halunnut. Tarkista säännön maski ja prioriteetti sekä sen arvo ja varmista, että valittu taulu sisältää käyttökelpoisen reitin.

Kasvava laskuri on todiste siitä, että jokin sääntö täsmäsi johonkin pakettiin. Se ei ole todiste siitä, että lopullinen paketti kuljetti aiottua merkkiä oikeassa päätöspisteessä.

Lue merkki, suunta, ajoitus ja maski. Neljä tarkistusta, ja reitti lakkaa olemasta arvoitus.

Aiheeseen liittyvät artikkelit