Kaj usmerjanje po politikah spremeni pri prometu VPN in kaj ne
Pravila izbirajo, katera tabela se pregleda, zato privzeta pot v glavni tabeli pogosto ne pojasni ničesar. Preden dodate pravilo, preberite prioritete, oznake in vire skupaj.
Usmerjanje po politikah odgovarja na drugo vprašanje kot večina zapiskov za odpravljanje težav. Glavna tabela pove, kam gre cilj; pravila politike povedo, katera tabela se sploh pregleda, in to lahko odločijo po naslovu vira, po oznaki paketa, ali po vmesniku, na katerega je prispel paket. Ko se tunel obnaša nedosledno, je nabor pravil pogosto vzrok, usmerjevalna tabela pa pogosto ne.
Pravila izberejo tabelo, nato tabela izbere pot
Vsako pravilo nosi prioriteto, pogoj ujemanja in ciljno tabelo. Jedro prehodi pravila v vrstnem redu prioritete in se ustavi pri prvem ujemanju, nato izvede običajno iskanje najdaljše predpone v tej tabeli. Pravilo, ki kaže na prazno tabelo, pade na to, kar izbere naslednje pravilo, in tako je lahko skrbno napisano pravilo videti, kot da ne počne ničesar.
Zato izpis glavne tabele redko pojasni delujočega odjemalca VPN. Odjemalci običajno vstavljajo pravila z nizkimi prioritetnimi številkami, veliko preden pride privzeto pravilo glavne tabele, zato paket nikoli ne doseže poti, v katero ste strmeli. Znižanje metrike v glavni tabeli ne spremeni ničesar za promet, ki je bil že preusmerjen.
Pravilo lahko tudi namerno spremeni predpono v črno luknjo ali jo naredi nedosegljivo. Nekateri odjemalci dodajo takšno pravilo kot varnostno stikalo, in takrat je zavrnitev videti kot pokvarjen tunel, ne kot nastavljen.
Nabor pravil berite kot zaporedje, ne kot seznam
Izpišite pravila z njihovimi prioritetami in tabelami, na katere se sklicujejo, nato izpišite vsako tabelo, ki nosi privzeto ali tunelsko pot. Vrstni red je tisti del, ki je pomemben, in to je del, ki ga posnetek zaslona običajno izpusti:
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
Zadnja dva ukaza sta tista, ki teorijo spremenita v opazovanje, ker sprašujeta kaj bi jedro naredilo za ta vir in to oznako. Če se odgovor spremeni, ko se oznaka spremeni, je v igri pravilo na podlagi oznake in vsak test, ki oznako izpusti, testira drug paket. Zunanja povezava si zasluži svoje pravilo. Tunel, ki usmerja ves promet skozi sebe, mora izključiti naslov končne točke, s katero se povezuje, sicer se šifrirani paketi pošljejo nazaj v tunel, ki so ga pravkar zapustili. Večina odjemalcev to izključitev vstavi samodejno, ročno urejen nabor pravil pa je mesto, kjer je ni.
Oznake in vtiči: dva načina, kako odjemalci delijo promet
Nekateri odjemalci označijo pakete v požarnem zidu in dodajo pravilo, ki ustreza oznaki. Drugi uporabljajo usmerjanje na ravni vtiča in nastavijo pot na vtiču, preden se poveže. Prvo je vidno v ip rule; drugo ni, in ne bo se pojavilo v splošnem iskanju.
Če se preskusni program obnaša drugače kot aplikacija, ki naj bi jo predstavljal, preverite, ali aplikacija nastavi oznako ali se veže na napravo. Ta razlika ni uganka, ko je mehanizem poimenovan, in pojasni, zakaj lahko curl iz lupine in zavihek brskalnika na istem stroju ubereta različni poti. Obe tehniki sta usmerjanje po politikah v širšem smislu: pot izbereta z nečim, kar ni cilj. Nobena od njiju ne dovoljuje prometa in nobena ne nadomesti pravil požarnega zidu ali poverilnic, ki jih pričakuje partner.
Sledite lastništvu, preden dodate še eno pravilo
Pravila namesti nekaj. Odjemalec VPN, upravitelj omrežja in ročno napisana skripta lahko vsak ob zagonu doda pravila, logika ponovnega povezovanja pa lahko pusti prejšnji nabor. Dve zastareli pravili iz prejšnjega profila bosta še dolgo usmerjali promet, potem ko je bil profil izbrisan.
Ugotovite, kateri proces ima pravilo, po njegovi prioriteti in obliki, in preverite, ali lastnik nabor prepiše ob vsaki povezavi. Če ga, ročno pravilo, dodano danes, jutri izgine, popravek pa sodi v konfiguracijo odjemalca in ne v datoteko zgodovine lupine. Čiščenje celotnega nabora pravil za preizkus je vabljiva bližnjica s predvidljivo ceno: odstrani tudi pravila, ki jih odjemalec potrebuje, da njegov tunel deluje. Brišite po eno pravilo naenkrat ali preizkusite na stroju, ki ga lahko znova zaženete.
Dokažite obseg z dvema tokovoma, ne z enim
Popravek preveri le tok, ki bi moral biti prizadet, in tok, ki ne bi smel biti. Izberite cilj, ki ga politika usmeri v tunel, in enega, ki mora ostati zunaj, nato primerjajte iskanja in zajeme 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
Ko dva iskanja vrneta različna vmesnika, pravilo nekaj počne. Ko vrneta isti vmesnik, se pravilo ujema širše od predvidenega, in to je okvara, ki tiho pošlje celotno podomrežje skozi tunel, namenjen eni aplikaciji.
Zapišite prioritete pravil in storitev lastnika v zahtevek skupaj z dvema preskusnima naslovoma. Naslednja oseba ima potem ponovljiv par namesto opisa simptoma in lahko v minuti pove, ali usmerjanje po politikah še deluje.