Pravilo politike šalje označene pakete u namjensku tabelu, a uobičajeno očekivanje je da će ih gubitak VPN rute blokirati. Mehanizam radi nešto drugo. Kada tabela nema odgovarajuću rutu, pretraga se nastavlja na sljedeće pravilo umjesto da se zaustavi, a tabela main i dalje drži običnu zadanu rutu za uplink. Rezultat je konfiguracija koja izgleda fail-closed, a ponaša se fail-open.

Ništa nije pokvareno; tako je političko usmjeravanje specificirano.

Pretraga se nastavlja kada tabela nema ništa

100:   from all fwmark 0x36 lookup 42
110:   from all fwmark 0x36 lookup default
32766: from all lookup main

Uzmite taj skup pravila: označena pretraga ide u tabelu 42, a kasnije pravilo šalje istu oznaku u tabelu po imenu default. Dok tabela 42 drži upotrebljivu zadanu rutu, prva pretraga daje put. Kada ta ruta nestane i ništa drugo u tabeli 42 ne odgovara, pretraga ne postaje odbacivanje; obrada prelazi na sljedeće pravilo, a kada i ono ništa ne nađe, dolazi do tabele main. Ništa u tom nizu ne izvještava koje je pravilo dalo konačan odgovor, pa radna veza izgleda kao radna politika.

Tabela 253, koja se konvencionalno zove default, obična je tabela usmjeravanja i normalno je prazna. Njeno ime nije nalog da se paketi odbace i nije isto što i zadana odredišna ruta unutar tabele.

Terminalne radnje završavaju pretragu

100:   from all fwmark 0x36 lookup 42
110:   from all fwmark 0x36 prohibit
32766: from all lookup main

Terminalno pravilo može slijediti VPN pretragu umjesto pretrage prazne tabele. S istom oznakom, radnja prohibit postavljena nakon pravila tabele 42 završava pretragu kada ta tabela ništa ne da, vraćajući administrativno odbijanje umjesto da tabeli main pruži još jednu priliku. Unreachable i blackhole su takođe terminalni, s drugačijim ponašanjem greške za pošiljaoca.

Ruta tipa throw je drugačija: unutar te tabele ponaša se kao da ništa nije odgovaralo, pa kasnija pravila ipak dobijaju svoj red. To throw čini korisnim za namjerno vraćanje unazad i pogrešnim kao konačni blok.

Provjerite sa stvarnom oznakom i interfejsom

ip -4 rule show
ip -4 route show table 42
ip -4 route get 198.51.100.20 from 10.44.0.2 iif lan0 mark 0x36

Pregledajte stvarna pravila i tabelu, a ne dijagram, pa upitajte tok s izvorom, oznakom i ulaznim kontekstom koji zaista ima. Pretraga samo za čitanje usmjerena na odredište, kojoj se kaže izvorna adresa, interfejs i oznaka, izvještava rutu koju bi kernel izabrao bez da paket izađe. Davanje oznake u upitu ne dokazuje da firewall označava stvarni saobraćaj; to je odvojena provjera pravila označavanja. Potvrdite vrijednost brojačem ili zapisom prije nego što iz upita izvučete zaključke.

Lokalno generisani zahtjevi trebaju vlastiti kontekst, jer se njihov put označavanja često razlikuje od puta proslijeđenog saobraćaja. Provjerite ih izlaznim interfejsom koji bi aplikacija zaista koristila.

Dva stanja kvara, ne jedno

Jedno stanje kvara je nestanak VPN rute i pad saobraćaja na uplink. Mrtav tunel čija ruta ostaje instalirana je drugo: paketi ostaju usmjereni u neupotrebljiv put umjesto da padnu, a simptom je tihi gubitak, a ne vidljiva direktna veza. Testirajte oba, kao i ponašanje pri pokretanju, ponovnom povezivanju i zaustavljanju servisa.

Takvo pravilo pomaže samo dok postoji i dok paketi još nose oznaku koja ga bira. Skripta za gašenje koja briše pravilo, ili put koji skida oznaku, vraća otvoreno ponašanje. Te prelaze vrijedi uvježbati.

Primijenite politiku na IPv6 odvojeno i držite odobrene izuzetke za krajnje tačke eksplicitnim, a ne podrazumijevanim.

Povezani članci