Rrugëtimi sipas politikave i përgjigjet një pyetjeje tjetër nga ajo që bëjnë shumica e shënimeve të zgjidhjes së problemeve. Tabela kryesore thotë ku shkon një destinacion; rregullat e politikës thonë cila tabelë konsultohet fare, dhe mund ta vendosin këtë nga adresa e burimit, nga një shenjë pakete, ose nga ndërfaqja në të cilën mbërriti një paketë. Kur një tunel sillet në mënyrë jokonsistente, grupi i rregullave është shpesh shkaku dhe tabela e rrugëtimit shpesh jo.

Rregullat zgjedhin tabelën, pastaj tabela zgjedh rrugën

Çdo rregull mban një përparësi, një kusht përputhjeje dhe një tabelë destinacioni. Bërthama kalon nëpër rregullat sipas rendit të përparësisë dhe ndalon në përputhjen e parë, pastaj kryen një kërkim të zakonshëm të prefiksit më të gjatë në atë tabelë. Një rregull që tregon një tabelë bosh bie te ajo që zgjedh rregulli tjetër, dhe kështu një rregull i shkruar me kujdes mund të duket sikur nuk bën asgjë.

Prandaj nxjerrja e tabelës kryesore rrallë shpjegon një klient VPN që funksionon. Klientët zakonisht fusin rregulla me numra të ulët përparësie, shumë përpara rregullit të parazgjedhur të tabelës kryesore, kështu që paketa nuk arrin kurrë rrugën që po shihnit. Ulja e një metrike në tabelën kryesore nuk ndryshon asgjë për trafikun që është devijuar tashmë.

Një rregull gjithashtu mund ta bëjë me qëllim një prefiks vrimë të zezë ose të paarritshëm. Disa klientë shtojnë një rregull të tillë si çelës sigurie, dhe atëherë rënia duket si tunel i thyer dhe jo si i konfiguruar.

Lexoni grupin e rregullave si sekuencë, jo si listë

Shtypni rregullat me përparësitë e tyre dhe tabelat të cilave u referohen, pastaj shtypni çdo tabelë që mban një rrugë të parazgjedhur ose një rrugë tuneli. Rendi është pjesa që ka rëndësi, dhe është pjesa që një pamje ekrani zakonisht e lë jashtë:

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

Dy komandat e fundit janë ato që e kthejnë një teori në vëzhgim, sepse pyesin çfarë do të bënte bërthama për atë burim dhe atë shenjë. Nëse përgjigjja ndryshon kur ndryshon shenja, një rregull i bazuar në shenjë është në lojë dhe çdo provë që e lë shenjën jashtë po provon një paketë tjetër. Lidhja e jashtme meriton një rregull të vetin. Një tunel që rrugëton të gjithë trafikun përmes vetvetes duhet të përjashtojë adresën e pikës fundore me të cilën lidhet, përndryshe paketat e kriptuara dërgohen përsëri në tunelin që sapo lanë. Shumica e klientëve e fusin atë përjashtim automatikisht, dhe një grup rregullash i redaktuar me dorë është vendi ku ai mungon.

Shenjat dhe soketat: dy mënyra si klientët e ndajnë trafikun

Disa klientë shënojnë paketat në firewall dhe shtojnë një rregull që përputhet me shenjën. Të tjerë përdorin rrugëtim në nivel soketi, duke vendosur një rrugë në soket përpara se ai të lidhet. E para është e dukshme në ip rule; e dyta jo, dhe nuk do të shfaqet në një kërkim të përgjithshëm.

Nëse një program prove sillet ndryshe nga aplikacioni që supozohet të përfaqësojë, kontrolloni nëse aplikacioni vendos një shenjë ose lidhet me një pajisje. Ai ndryshim nuk është mister pasi mekanizmi emërtohet, dhe shpjegon pse një curl nga një shell dhe një skedë shfletuesi mund të marrin shtigje të ndryshme në të njëjtën makinë. Të dyja teknikat janë rrugëtim sipas politikave në kuptimin e gjerë: zgjedhin një shteg me diçka tjetër përveç destinacionit. Asnjëra prej tyre nuk e autorizon trafikun, dhe asnjëra nuk i zëvendëson rregullat e firewall ose kredencialet që pret pala tjetër.

Gjurmoni pronësinë përpara se të shtoni një rregull tjetër

Rregullat i instalon diçka. Një klient VPN, një menaxher rrjeti dhe një skript i shkruar me dorë mund të shtojnë secili rregulla në nisje, dhe logjika e rilidhjes mund të lërë pas grupin e mëparshëm. Dy rregulla të vjetruara nga një profil i mëparshëm do të vazhdojnë të drejtojnë trafikun shumë kohë pasi profili është fshirë.

Zbuloni cili proces zotëron rregullin sipas përparësisë dhe formës së tij, dhe kontrolloni nëse ai pronar e rishkruan grupin në çdo lidhje. Nëse e bën, një rregull manual i shtuar sot zhduket nesër, dhe korrigjimi i takon konfigurimit të klientit dhe jo një skedari historiku të shell. Pastrimi i të gjithë grupit të rregullave për provë është një rrugë e shkurtër joshëse me një kosto të parashikueshme: heq edhe rregullat që klienti ka nevojë për të mbajtur tunelin e vet në punë. Fshini një rregull në një kohë, ose provoni në një makinë që mund ta rinisni.

Provoni shtrirjen me dy flukse, jo me një

Një korrigjim verifikohet vetëm nga një fluks që duhet të preket dhe një fluks që nuk duhet. Zgjidhni një destinacion që politika e drejton në tunel, dhe një që duhet të mbetet jashtë, pastaj krahasoni kërkimet dhe kapjet për të dyja:

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

Kur dy kërkimet kthejnë ndërfaqe të ndryshme, rregulli po bën diçka. Kur kthejnë të njëjtën ndërfaqe, rregulli përputhet më gjerësisht se sa synohej, dhe ky është dështimi që dërgon në heshtje një nënrrjet të tërë përmes një tuneli të menduar për një aplikacion të vetëm.

Shënoni përparësitë e rregullave dhe shërbimin pronar në biletë, bashkë me dy adresat e provës. Personi tjetër ka atëherë një çift të riprodhueshëm në vend të një përshkrimi simptome, dhe mund të thotë brenda një minute nëse rrugëtimi sipas politikave është ende në lojë.

Artikuj të ngjashëm