Što političko usmjeravanje mijenja u VPN prometu, a što ne
Pravila biraju koja se tablica konzultira, pa zadana ruta u glavnoj tablici često ne objašnjava ništa. Čitajte prioritete, oznake i izvore zajedno prije nego što dodate pravilo.
Političko usmjeravanje odgovara na drugo pitanje od onog koje postavlja većina bilješki za rješavanje problema. Glavna tabela kaže kuda ide odredište; pravila politike kažu koja se tabela uopšte konsultuje, i ona to mogu odlučiti na osnovu izvorne adrese, oznake paketa, ili interfejsa na koji je paket stigao. Kada se tunel ponaša nedosljedno, skup pravila je često razlog, a tabela rutiranja često nije.
Pravila biraju tabelu, zatim tabela bira rutu
Svako pravilo nosi prioritet, uslov podudaranja i ciljnu tabelu. Kernel prolazi kroz pravila po redu prioriteta i zaustavlja se na prvom podudaranju, a zatim obavlja običnu pretragu najdužeg prefiksa u toj tabeli. Pravilo koje pokazuje na praznu tabelu propada na ono što odabere sljedeće pravilo, i tako pažljivo napisano pravilo može izgledati kao da ne radi ništa.
Zato ispis glavne tabele rijetko objašnjava VPN klijent koji radi. Klijenti obično ubacuju pravila na niskim brojevima prioriteta, mnogo prije zadanog pravila glavne tabele, pa paket nikada ne stigne do rute u koju ste zurili. Spuštanje metrike u glavnoj tabeli ne mijenja ništa za saobraćaj koji je već preusmjeren.
Pravilo također može namjerno pretvoriti prefiks u crnu rupu ili učiniti ga nedostupnim. Neki klijenti dodaju takvo pravilo kao prekidač, i tada odbacivanje izgleda kao pokvaren tunel, a ne kao konfigurisan.
Čitajte skup pravila kao niz, a ne kao spisak
Ispišite pravila s njihovim prioritetima i tabelama na koje upućuju, zatim ispišite svaku tabelu koja nosi zadanu rutu ili rutu tunela. Redoslijed je dio koji je važan, i to je dio koji snimak ekrana obično izostavlja:
ip rule show ip route show table all | sed -n '1,60p' ip route get 198.51.100.20 from 10.8.0.2 ip route get 198.51.100.20 from 10.8.0.2 mark 0x1
Posljednje dvije komande su one koje teoriju pretvaraju u zapažanje, jer pitaju šta bi kernel uradio za taj izvor i tu oznaku. Ako se odgovor promijeni kada se oznaka promijeni, na djelu je pravilo zasnovano na oznaci i svaki test koji izostavi oznaku testira drugi paket. Vanjska veza zaslužuje vlastito pravilo. Tunel koji usmjerava sav saobraćaj kroz sebe mora isključiti adresu krajnje tačke na koju se povezuje, inače se šifrovani paketi vraćaju u tunel koji su upravo napustili. Većina klijenata to isključenje ubacuje automatski, a ručno uređen skup pravila je mjesto gdje ono nedostaje.
Oznake i soketi: dva načina na koja klijenti dijele saobraćaj
Neki klijenti označavaju pakete u firewallu i dodaju pravilo koje odgovara oznaci. Drugi koriste rutiranje na nivou soketa, postavljajući rutu na soket prije nego što se poveže. Prvo je vidljivo u ip rule; drugo nije, i neće se pojaviti u opštoj pretrazi.
Ako se testni program ponaša drugačije od aplikacije koju treba predstavljati, provjerite postavlja li aplikacija oznaku ili se veže na uređaj. Ta razlika nije misterija kada se mehanizam imenuje, i objašnjava zašto curl iz ljuske i kartica preglednika mogu ići različitim putevima na istom računaru. Obje tehnike su političko usmjeravanje u širem smislu: biraju put pomoću nečega što nije odredište. Nijedna od njih ne autorizuje saobraćaj, i nijedna ne zamjenjuje firewall pravila ili kredencijale koje partner očekuje.
Pratite vlasništvo prije nego što dodate još jedno pravilo
Pravila instalira nešto. VPN klijent, mrežni menadžer i ručno napisana skripta mogu svaki dodati pravila pri pokretanju, a logika ponovnog povezivanja može ostaviti prethodni skup. Dva zastarjela pravila iz ranijeg profila nastavit će usmjeravati saobraćaj dugo nakon što je profil izbrisan.
Pronađite koji proces posjeduje pravilo po njegovom prioritetu i obliku, i provjerite prepisuje li taj vlasnik skup pri svakoj vezi. Ako prepisuje, ručno pravilo dodano danas nestaje sutra, a popravka pripada konfiguraciji klijenta, a ne datoteci historije ljuske. Brisanje cijelog skupa pravila radi testa primamljiv je prečac s predvidivom cijenom: uklanja i pravila koja klijent treba da bi njegov vlastiti tunel radio. Brišite jedno pravilo po jedno, ili testirajte na računaru koji možete ponovo pokrenuti.
Dokažite obim s dva toka, ne s jednim
Ispravka se provjerava samo tokom koji treba biti pogođen i tokom koji ne treba. Odaberite odredište koje politika usmjerava u tunel, i ono koje mora ostati izvan, zatim uporedite pretrage i snimke za oba:
ip route get 198.51.100.20 from 192.0.2.44 ip route get 198.51.100.21 from 192.0.2.44 tcpdump -ni any host 198.51.100.21 and port 443
Kada dvije pretrage vrate različite interfejse, pravilo nešto radi. Kada vrate isti interfejs, pravilo se podudara šire nego što je namjeravano, i to je kvar koji tiho šalje cijelu podmrežu kroz tunel namijenjen jednoj aplikaciji.
Zabilježite prioritete pravila i uslugu koja ih posjeduje u tiket, zajedno s dvije testne adrese. Sljedeća osoba tada ima par koji se može reproducirati umjesto opisa simptoma, i može u minuti reći je li političko usmjeravanje još na djelu.