Upprunaleiðbeining fyrir tvo VPN-hópa: hvað reglan þín sleppir
Regla af forminu from passar við vistfang biðilsins áður en SNAT endurskrifar það, og prófun frá gáttinni passar við hvorugt. Keyrðu leitina fyrir hvern hóp og lestu forgangana í staðinn.
Tveir biðlahópar, ein gátt, og áætlunin virðist hversdagsleg: ein regla sendir fyrsta hópinn út um hraða uppstrenginn, önnur sendir seinni hópinn í gegnum samstarfstunnel. Svo eru reglurnar komnar og seinni hópurinn fer samt út um sjálfgefnu leiðina. Reglan er ekki brotin. Uppruni pakkans er ekki það sem höfundurinn bjóst við þegar leitin fer fram, því þýðing og leit eiga sér stað á mismunandi stöðum í ferð sama pakka, og röðin er andstæða þeirrar huglægu skýringarmyndar sem flestir teikna.
Leitin fer fram áður en uppruninn er endurskrifaður
Fyrir pakka sem er sendur áfram frá VPN-biðli keyrir kjarninn fasta röð. Hann kemur á tunnelviðmótið, fer í gegnum prerouting þar sem conntrack og DNAT búa, þá er ákvörðun um leiðbeiningu tekin, þá sending áfram, þá postrouting þar sem SNAT er beitt síðast. Regla af forminu from er skoðuð við þá leiðarákvörðun, sem þýðir að hún sér upprunalegt vistfang biðilsins, ekki þýdda.
Þannig að að bæta við masquerade-reglu breytir ekki hvaða stefna passar við útgöngustreymið. Það sem breytist er það sem fjarlægi endinn sér, og þar af leiðandi hvaða afturleið er til. Þetta eru tvær mismunandi afleiðingar, og breytingaumsagnir rugla þeim stöðugt saman. Aðskiljið þær og hönnunin verður yfirleitt augljós innan mínútu.
Það er í svaráttinni sem þýtt vistfang birtist í reglunum. Pakki sem kemur aftur að gáttinni er stílaður á þýdda vistfangið, og ef þú hefur stefnureglur byggðar á áfangastað eða viðmótinu sem hann kom inn á, er það gildið sem þú passar við. Sama tenging, mismunandi sannleiksuppsprettur í hvora átt.
| Stage | Source the kernel sees | What it means for your rule |
|---|---|---|
| Prerouting | Client address, 172.31.7.42 | Where marks and DNAT are applied |
| Routing decision | Still 172.31.7.42 | This is where from rules match |
| Postrouting | Becomes 198.51.100.9 | What the far end and its return route see |
Tveir hópar með mismunandi uppruna þurfa því sannarlega mismunandi töflur, og hönnunin er heilbrigð. Það sem taflan hér að ofan útilokar er flýtileiðin að villuleita með því að skoða hvað fjarlægi staðurinn fékk og álykta regluna út frá því.
Prófun frá gáttinni er ekki prófun á hópnum
Umferð sem gáttin býr sjálf til fer aldrei í gegnum prerouting, því hún kom ekki inn á viðmót. Hún er leiðbeind í úttaksleiðinni, með eigið vistfang gáttarinnar sem uppsprettu, og regla from byggð á sviði biðla mun ekki passa. Sérhver miði á þessu sviði sem segir að það virki frá kassanum en ekki frá biðlinum er endurtekning á þeirri staðreynd.
Hermið biðilinn í stað þess að nálgast hann. Hægt er að spyrja leiðarleitarinnar beint, með uppsprettu og inngangsviðmóti gefnu:
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
Keyrðu það einu sinni fyrir hvern hóp. Ef báðar skipanirnar skila sama viðmótinu skilja reglurnar ekki hópana að, og ástæðan er annaðhvort regla sem vantar eða regla með hærri forgangi sem passar við báða. Ef þær skila mismunandi viðmótum en biðillinn mistekst samt, er bilunin handan leitarinnar og þú getur hætt að skoða reglur.
Forgangur, ekki staða í skránni
Reglur eru metnar í hækkandi forgangsröð, og talan skiptir máli, ekki röðin sem þú slóst þær inn. Taflan local er á forgangi 0, taflan main á 32766 og sjálfgefna reglan á 32767, þess vegna lendir regla sem bætt er við með sjálfgefnum forgangi nálægt enda listans og tapar fyrir næstum öllu.
ip rule show
ip rule add from 172.31.8.0/24 lookup 201 priority 1000
ip -4 route show table 201
Skýr forgangur gerir fyrirhugaða röð sýnilega í skránni og við yfirferð. Hann kemur einnig í veg fyrir að síðari viðbót stökkvi hljóðlaust fram fyrir fyrirliggjandi reglu, sem er algengasta orsök þess að virk stefna hættir að virka eftir ótengda breytingu.
Passandi regla sem bendir á ófullkomna töflu er hin gildran. Ef tafla 201 inniheldur sjálfgefna leið en enga leið að áfangastað, er pakkanum fleygt eða sendur á rangann stað, og reglan virðist fullkomlega rétt ein og sér. Lestu töfluna, ekki bara regluna. Regla er bendir, og tóm tafla er bendir í ekkert.
Afturleiðin verður samt að vera til
Upprunastefna velur útgöngu. Hún býr ekki til afturleið. Ef seinni hópurinn fer út um samstarfstunnel verður samstarfsaðilinn að vita hvernig á að ná 172.31.8.0/24, annaðhvort með leið aftur að gáttinni eða með því að fá þýdd vistföng sem hann þekkir þegar.
Valið á milli þess er hönnunarákvörðun með sýnilegar afleiðingar. Að leiðbeina biðlasviðinu til baka varðveitir auðkenni hvers biðils hjá samstarfsaðilanum og krefst þess að hann samþykki forskeytið þitt. Þýðing felur hópinn bak við eitt vistfang og krefst þess að samstarfsaðilinn samþykki aðeins það vistfang, á kostnað þess að annálar þínir og hans eru ekki lengur sammála um hver tengdist.
Hvað sem þú velur, skrifaðu það við hlið skilgreiningar hópsins. Afturleið sem er aðeins til í minni einhvers er einmitt sú tegund hlutar sem lifir þar til samstarfsaðilinn skiptir um eldvegg, og tekur svo dag að endurbyggja.
Ekki grípa eigin tunnel gáttarinnar í stefnunni
Reglurnar sem þú skrifar fyrir biðla gilda líka um umferð sem gáttin býr til, nema þú útilokir hana. Breið regla byggð á merki eða úttaksviðmóti getur gripið eigin tengingu gáttarinnar við samstarfsaðilann, og þá er tunnelinn sem ber stefnuna leiðbeindur af stefnunni. Það framleiðir lykkju eða bilun sem lítur út eins og bilun hjá þjónustuveitanda.
Takmarkaðu hverja reglu eins þröngt og hönnunin leyfir: upprunaforskeyti, inngangsviðmót og þar sem það er stutt merki sem aðeins biðlapakkar bera. Prófaðu síðan eigin tengingu gáttarinnar eftir hverja reglubreytingu, því bilunin er sjálfvísandi og kemur ekki fram í prófun frá biðli.
Handbókarsíða ip-rule skjalfestir merkingu valsins og forgangsins. Tenging við leitarprófun fyrir hvern hóp gerir hönnunina prófanlega, og það er munurinn á stefnuleiðbeiningu sem endist í eitt ár og þeirri sem allir óttast að snerta.