Usmerjanje na podlagi računa ustreza, ko mora vsaka vtičnica IPv4 enega uporabnika Linuxa oditi skozi obstoječi tunel, in ne ustreza, ko potrebujete izolacijo na ravni programa. Izbere po UID, zato je v obsegu vse, kar teče pod tem računom, vključno s paketnim opravilom, ki ste ga pozabili. To vprašanje razrešite, preden se dotaknete ene same ip rule.

Spodnji primer predpostavlja namenski račun brskalnika na UID 1500, tunelsko napravo tun-office z lokalnim naslovom 10.80.0.11 in VPN, ki dovoljuje zadevne cilje. Sam demon teče zunaj tega UID.

Trije pogoji, ki izberejo mehanizem

Pravilo UID izberite, ko je identiteta, ki opravlja delo, račun, ko je premik vsega njegovega prometa sprejemljiv in ko bi bil namespace težji, kot si naloga zasluži. Omrežni namespace izberite, ko delovna obremenitev potrebuje lastne vmesnike, razreševalnik in usmerjevalno tabelo. Posrednik ali vezavo na proces izberite ko je treba premakniti natanko eno aplikacijo, medtem ko preostanek seje ostane na lokalni poti. Zapis teh treh prepreči pravilo, ki tiho pokriva več, kot je bilo mišljeno.

Napaki, ki se ji je treba izogniti, je domneva, da lastnika določi zaganjalnik. Brskalnik, ki mu je seja drugega uporabnika predala URL, ni ustvaril vtičnic pod UID 1500 in nobeno pravilo ne bo premaknilo prometa, ki ga ustvarja.

Tabela, pravilo in varovalo

Po pregledu obstoječih pravil in izbiri neuporabljenih številk tabele in prioritete je ureditev kratka: privzeta pot v namenski tabeli, ki nosi izvorni naslov tunela, pravilo, ki pošilja poizvedbe računa v to tabelo, in zaključno pravilo, ki blokira rezervno pot. Zapisano je to idempotentna zamenjava poti, ip -4 route replace default dev tun-office src 10.80.0.11 table 51820, ki ji sledi ip -4 rule add priority 12100 uidrange 1500-1500 lookup 51820.

Varovalo je ip -4 rule add priority 12101 uidrange 1500-1500 unreachable in šteje več, kot nakazuje njegova dolžina. Brez njega manjkajoča pot v tabeli 51820 pade na običajno nadrejeno povezavo in račun tiho izpušča promet, ki naj bi ga politika ujela. Z njim ista napaka postane časovna omejitev, torej blokiranje namesto rezerve.

Običajno pravilo lokalnega naslova imejte pred temi in zavestno odločite, ali izjeme za LAN ali upravljanje spadajo pred izbrano tabelo. Privzeta pot, najdena tam, pozneje ne vpraša main za bolj specifično pot LAN, kar preseneti tiste, ki pričakujejo, da ujemanje najdaljše predpone velja med tabelami. Načrtovani seznam izjem zapišite v opombo o spremembi, dokler je utemeljitev še sveža.

Kaj usmerjanje UID izpusti: DNS

Demon razreševalnika odpre svoje nadrejene vtičnice pod lastnim UID, zato izbira 1500 teh poizvedb ne premakne v tabelo 51820. Integracija DNS je ločena odločitev: račun usmerite na razreševalnik, dosegljiv skozi tunel, ali sprejmite, da razreševanje imen sledi poti gostitelja, promet pa ne.

Poizvedba prek loopbacka na lokalni stub ni dokaz, da je nadrejena poizvedba uporabila pot brskalnika, in uspešno nalaganje strani iz predpomnilnika tudi ne.

IPv6 v zasnovi potrebuje svoj stavek

Zgornja pravila pokrivajo samo IPv4. Če je zahteva tunel IPv4 brez neposrednega IPv6 s tega računa, dodajte pregledano zaključno pravilo, na primer ip -6 rule add priority 12101 uidrange 1500-1500 unreachable, nato preverite prejšnja pravila IPv6 in izjeme loopback, ki jih želite obdržati.

Blokiranje neposrednega IPv6 ni tuneliranje z dvojnim skladom; to je meja. Če to imenujete tuneliranje, boste zmedli naslednjo osebo, ki bo prebrala politiko, in zmeda se bo pojavila kot zahtevek za pomoč glede pokvarjene strani IPv6.

Preverite z resničnim računom in nato prevzemite življenjski cikel

Primerjajte poizvedbe: ip -4 route get 198.51.100.25 uid 1500 proti istemu cilju z običajnim UID. Nato izvedite dovoljeno zahtevo pod namenskim računom in preverite izvorni naslov, ki ga vidi oddaljeni konec. Prednostni izvorni naslov ni source NAT in ne bo premagal aplikacije, ki veže nekaj drugega. Če obe poizvedbi vrneta isto pot, pravilo ne dela tega, kar mislite.

Tabelo, pravila in življenjsko dobo tunelske poti imejte pri enem lastniku, preizkusite ponovno povezavo in izgubo tunela, ob umiku politike pa odstranite le njene natančne vnose. Namespace je še vedno na voljo, če resnično potrebujete ločene vmesnike in ločeno stanje.

Sorodni članki