Dy pishina klientësh, një gateway dhe plani duket i parëndësishëm: një rregull e nxjerr pishinën e parë në lidhjen e shpejtë, një tjetër e dërgon pishinën e dytë përmes një tuneli partneri. Pastaj rregullat janë në vend dhe pishina e dytë vazhdon të dalë përmes rrugës së parazgjedhur. Rregulli nuk është prishur. Burimi i paketës nuk është ai që autori priste në momentin e kërkimit, sepse përkthimi dhe kërkimi ndodhin në pika të ndryshme të udhëtimit të së njëjtës paketë, dhe rendi është i kundërt me diagramin mendor që vizatojnë shumica.

Kërkimi ndodh para se burimi të rishkruhet

Për një paketë që përçohet nga një klient VPN, kernel-i ekzekuton një sekuencë fikse. Ajo arrin në ndërfaqen e tunelit, kalon përmes prerouting ku banojnë conntrack dhe DNAT, pastaj merret vendimi i rrugëtimit, pastaj përçimi, pastaj postrouting ku SNAT aplikohet i fundit. Një rregull i formës from konsultohet gjatë atij vendimi rrugëtimi, që do të thotë se sheh adresën origjinale të klientit, jo atë të përkthyer.

Prandaj shtimi i një rregulli masquerade nuk ndryshon cila politikë përputhet me rrjedhën dalëse. Ndryshon ajo që sheh skaji i largët, dhe rrjedhimisht cila rrugë kthimi ekziston. Këto janë dy pasoja të ndryshme, dhe rishikimet e ndryshimeve i ngatërrojnë vazhdimisht. Ndajini ato dhe dizajni zakonisht bëhet i qartë brenda një minute.

Është në drejtimin e përgjigjes që adresa e përkthyer shfaqet në rregulla. Një paketë që kthehet te gateway adresohet drejt adresës së përkthyer, dhe nëse keni rregulla politike të bazuara në destinacion ose në ndërfaqen nga e cila hyri, është pikërisht ai vlerë që do të përputhni. E njëjta lidhje, burim i ndryshëm i së vërtetës në çdo drejtim.

StageSource the kernel seesWhat it means for your rule
PreroutingClient address, 172.31.7.42Where marks and DNAT are applied
Routing decisionStill 172.31.7.42This is where from rules match
PostroutingBecomes 198.51.100.9What the far end and its return route see

Pra dy pishina me burime të ndryshme kanë vërtet nevojë për tabela të ndryshme, dhe dizajni është i shëndoshë. Ajo që tabela më sipër përjashton është shkurtesa e korrigjimit duke shikuar çfarë mori faqja e largët dhe duke nxjerrë rregullin prej saj.

Një test nga gateway nuk është test i pishinës

Trafiku që gjeneron vetë gateway nuk kalon kurrë përmes prerouting, sepse nuk ka ardhur në asnjë ndërfaqe. Ai rrugëtohet në rrugën e daljes, me adresën e vetë gateway si burim, dhe një rregull from i bazuar në një interval klientësh nuk do të përputhet. Çdo tiketë në këtë fushë që thotë se funksionon nga kutia por jo nga klienti është përsëritja e të njëjtit fakt.

Simuloni klientin në vend që ta përafroni. Kërkimi i rrugëtimit mund të pyetet drejtpërdrejt, duke dhënë një burim dhe një ndërfaqe hyrëse:

ip route get 198.51.100.9 from 172.31.7.42 iif tun0
ip route get 198.51.100.9 from 172.31.8.42 iif tun0
ip route show table 201

Ekzekutojeni një herë për çdo pishinë. Nëse të dy komandat kthejnë të njëjtën ndërfaqe, rregullat nuk i ndajnë pishinat, dhe arsyeja është ose një rregull që mungon ose një rregull me prioritet më të lartë që përputhet me të dyja. Nëse kthejnë ndërfaqe të ndryshme por klienti vazhdon të dështojë, defekti është pas kërkimit dhe mund të ndaloni së shikuari rregullat.

Prioritet, jo pozicion në skedar

Rregullat vlerësohen në rend rritës të prioritetit, dhe numri është ai që ka rëndësi, jo rendi në të cilin i shkruat. Tabela local është në prioritetin 0, tabela main në 32766 dhe rregulli i parazgjedhur në 32767, prandaj një rregull i shtuar me prioritetin e parazgjedhur përfundon afër fundit të listës dhe humbet ndaj pothuajse gjithçkaje.

ip rule show
ip rule add from 172.31.8.0/24 lookup 201 priority 1000
ip -4 route show table 201

Një prioritet i shprehur e bën rendin e synuar të dukshëm në skedar dhe në rishikim. Gjithashtu parandalon që një shtesë e mëvonshme të kalojë në heshtje përpara një rregulli ekzistues, që është shkaku më i zakonshëm që një politikë funksionuese të ndalojë së funksionuari pas një ndryshimi të palidhur.

Një rregull përputhës që tregon një tabelë të paplotë është kurthi tjetër. Nëse tabela 201 përmban një rrugë të parazgjedhur por asnjë rrugë drejt destinacionit, paketa hidhet ose dërgohet në vendin e gabuar, dhe rregulli duket plotësisht i saktë i izoluar. Lexoni tabelën, jo vetëm rregullin. Rregulli është një tregues, dhe tabela bosh është një tregues drejt asgjëje.

Rruga e kthimit duhet të ekzistojë gjithsesi

Politika e burimit zgjedh një dalje. Ajo nuk krijon një rrugë kthimi. Nëse pishina e dytë del përmes një tuneli partneri, partneri duhet të dijë si të arrijë 172.31.8.0/24, ose me një rrugë kthimi te gateway ose duke marrë adresa të përkthyera që i njeh tashmë.

Zgjedhja midis tyre është një vendim dizajni me pasoja të dukshme. Rrugëtimi i intervalit të klientëve mbrapa ruan identitetin e secilit klient te partneri dhe kërkon që ai të pranojë prefiksin tuaj. Përkthimi e fsheh pishinën pas një adrese të vetme dhe kërkon që partneri të pranojë vetëm atë adresë, me koston që regjistrat tuaj dhe të tij nuk bien më dakord për kë u lidh.

Çfarëdo që të zgjidhni, shkruajeni pranë përkufizimit të pishinës. Një rrugë kthimi që ekziston vetëm në kujtesën e dikujt është pikërisht lloji i gjësë që mbijeton derisa partneri të ndryshojë një firewall, dhe pastaj merr një ditë për t'u rindërtuar.

Mos e kapni tunelin e vetë gateway në politikë

Rregullat që shkruani për klientët zbatohen edhe për trafikun që gjeneron gateway, përveç nëse e përjashtoni atë. Një rregull i gjerë i bazuar në një shenjë ose në ndërfaqen e daljes mund të kapë lidhjen e vetë gateway me partnerin, dhe atëherë tuneli që mban politikën rrugëtohet nga politika. Kjo prodhon një cikël ose një ndërprerje që duket si defekt i ofruesit.

Kufizoni çdo rregull aq ngushtë sa e lejon dizajni: prefiks burimi, ndërfaqe hyrëse dhe, ku mbështetet, një shenjë që e mbajnë vetëm paketat e klientëve. Pastaj testoni lidhshmërinë e vetë gateway pas çdo ndryshimi rregullash, sepse defekti është vetë-referues dhe nuk shfaqet në një test nga klienti.

Faqja e manualit të ip-rule dokumenton semantikën e përzgjedhësit dhe të prioritetit. Kombinojeni me një test kërkimi për çdo pishinë dhe dizajni bëhet i verifikueshëm, që është dallimi midis rrugëtimit politik që zgjat një vit dhe atij që të gjithë kanë frikë ta prekin.

Artikuj të ngjashëm