Štyri kontroly oddeľujú funkčné pravidlo značky od funkčnej trasy: ktorú značku pravidlo číta, či ju paket pri vyhľadaní ešte nesie, či bola značka spojenia obnovená na neskoršie pakety a či či maska a priorita zodpovedajúceho pravidla umožňujú, aby sa uplatnilo. Rastúce počítadlo dokazuje len to, že nejaké pravidlo niečomu zodpovedalo. Nehovorí nič o tom, čo paket niesol, keď jadro vyberalo jeho cestu.

Dve značky žijú na rôznych miestach a vypršia podľa rôznych plánov.

Dve značky, dva životy

Značka paketu patrí jednému skb, cestuje s ním cez háčiky a spotrebúva ju selektor fwmark smerovania podľa zásad. Značka spojenia patrí záznamu conntrack, pretrváva cez pakety tohto toku a je pre pravidlo smerovania neviditeľná, kým ju niečo nezkopíruje späť. Uloženie značky paketu do spojenia je zápis; obnovenie je samostatná akcia. Ani jedno sa nedeje implicitne.

Preto môže sada pravidiel vyzerať konzistentne, zatiaľ čo rozhodnutie o trase vidí nulu: hodnota bola uložená a nič ju neobnovilo.

Kopírovanie medzi nimi je krok, ktorý píšete vy

Dve podstatné tvrdenia idú opačnými smermi: jedno ukladá značku paketu do spojenia, druhé nahráva značku spojenia na paket. Ktoré potrebujete, závisí od toho, kedy klasifikácia prebieha voči toku. Návrh môže potrebovať len značku paketu, a pridanie značenia cez conntrack preto, že nejaké obchádzkové riešenie používalo oboje, je spôsob, akým jednoduchá zásada získa druhý režim zlyhania.

ct mark set meta mark
meta mark set ct mark

Zapíšte smer vedľa pravidla, pretože zo syntaxe na prvý pohľad nie je zrejmý. Prvý riadok ukladá, druhý obnovuje a ani jeden neimplikuje ten druhý.

Klasifikujte skôr, než vyhľadanie, ktoré to spotrebúva

Lokálne generovaná prevádzka a prevádzka preposielaná z LAN prechádzajú rôznymi háčikmi a k rozhodnutiam o trase sa dostávajú v rôznych okamihoch. Výstupné pravidlo, ktoré funguje pre vlastné spojenia routera, nedokazuje, že paket preposielaného klienta bol označený pred svojím vyhľadaním. Umiestnite klasifikáciu tam, kde vyhľadanie, ktoré ju spotrebúva, ešte nenastalo, a skontrolujte, či neskoršie pravidlá v tom istom reťazci neprepisujú hodnotu. Poradie v reťazci je súčasťou konfigurácie, nie implementačný detail.

Trvalosť stavu spojenia tiež vyžaduje výslovný plán. Ak sa klasifikuje len prvý paket toku, neskoršie pakety potrebujú obnovenie uloženej značky, inak pôjdu po neoznačenej ceste. To je rozdiel medzi značkou, ktorá opisuje spojenie, a značkou, ktorá opisuje paket.

Opýtajte sa trasy označenou otázkou

ip route get 10.77.0.10 mark 0x2

Preskúmajte pravidlá a tabuľku, potom sa opýtajte trasy so zahrnutou značkou, plus zdroj alebo vstupné rozhranie, keď ovplyvňujú zásadu. Obyčajné vyhľadanie bez značky odpovedá na inú otázku a ochotne nahlási cestu, ktorú ste nechceli. Skontrolujte masku a prioritu pravidla, ako aj jeho hodnotu, a potvrďte, že zvolená tabuľka obsahuje použiteľnú trasu.

Rastúce počítadlo je dôkaz, že nejaké pravidlo zodpovedalo nejakému paketu. Nie je to dôkaz, že konečný paket niesol zamýšľanú značku v správnom bode rozhodnutia.

Čítajte značku, smer, časovanie a masku. Štyri kontroly a trasa prestáva byť záhadou.

Súvisiace články