Pravilo usmjeravanja čita marku paketa, a ne conntrack
Usmjeravanje po politici čita marku paketa; conntrack čuva drugu vrijednost s dužim životom. Kopiranje između njih je korak koji neko mora napisati.
Četiri provjere razdvajaju ispravno pravilo marke od ispravne rute: koju marku pravilo čita, da li je paket još nosi u trenutku pretrage, da li je marka veze vraćena na kasnije pakete i da li maska i prioritet odgovarajućeg pravila mu dozvoljavaju da se aktivira. Brojač koji raste dokazuje samo da je neko pravilo odgovaralo nečemu. Ne govori ništa o tome šta je paket nosio kad je jezgro biralo njegov put.
Dvije marke žive na različitim mjestima i istječu po različitim rasporedima.
Dvije marke, dva života
Marka paketa pripada jednom skb-u, putuje s njim kroz kuke i troši je fwmark birač usmjeravanja po politici. Marka veze pripada conntrack unosu, ostaje kroz pakete tog toka i nevidljiva je pravilu usmjeravanja dok je nešto ne kopira natrag. Čuvanje marke paketa u vezi je upis; vraćanje je odvojeno djelovanje. Ni jedno se ne događa samo po sebi.
Zato skup pravila može izgledati dosljedno dok odluka o ruti vidi nulu: vrijednost je upisana, a ništa je nije vratilo.
Kopiranje između njih je korak koji pišete sami
Dvije važne naredbe idu u suprotnim smjerovima: jedna upisuje marku paketa u vezu, druga učitava marku veze na paket. Koja vam treba zavisi od toga kada se klasifikacija događa u odnosu na tok. Dizajn može zahtijevati samo marku paketa, a dodavanje označavanja kroz conntrack zato što je neki obilazni postupak koristio oboje jeste način na koji jednostavna politika stiče drugi način kvara.
ct mark set meta mark meta mark set ct mark
Zapišite smjer pored pravila, jer iz sintakse na prvi pogled nije očigledno. Prvi red upisuje, drugi vraća, i ni jedan ne podrazumijeva onaj drugi.
Klasificirajte prije pretrage koja to troši
Lokalno generisan saobraćaj i saobraćaj proslijeđen s LAN-a prolaze kroz različite kuke i do odluka o ruti dolaze u različitim trenucima. Izlazno pravilo koje radi za vlastite veze rutera ne dokazuje da je paket proslijeđenog klijenta označen prije svoje pretrage. Postavite klasifikaciju tamo gdje se pretraga koja je troši još nije dogodila i provjerite da li kasnija pravila u istom lancu prepisuju vrijednost. Redoslijed unutar lanca dio je konfiguracije, a ne detalj implementacije.
Trajnost stanja veze takođe traži jasan plan. Ako se klasificira samo prvi paket toka, kasniji paketi trebaju vraćenu sačuvanu marku, inače će krenuti putem bez marke. To je razlika između marke koja opisuje vezu i one koja opisuje paket.
Pitajte rutu označeno pitanje
ip route get 10.77.0.10 mark 0x2
Pregledajte pravila i tabelu, pa pitajte rutu s uključenom markom, uz izvor ili ulazni interfejs kada oni utiču na politiku. Obična pretraga bez marke odgovara na drugo pitanje i rado će prijaviti put koji niste htjeli. Provjerite masku i prioritet pravila, kao i njegovu vrijednost, i potvrdite da odabrana tabela sadrži upotrebljivu rutu.
Brojač koji raste dokaz je da je neko pravilo odgovaralo nekom paketu. Nije dokaz da je konačni paket nosio namjeravanu marku na pravom mjestu odluke.
Pročitajte marku, smjer, vrijeme i masku. Četiri provjere, i ruta prestaje biti misterija.