Þú getur náð í undirnet bak við endapunkt gangs á þrjá vegu, og mínúta af staðreyndasöfnun útilokar venjulega tvær. Staðreyndirnar eru hvort netþjónarnir þar úti verði að greina notendur, hvort einhver þar úti hringi einhvern tíma í bilið þitt, og hver má breyta beininum á fjarlæga endanum. Svaraðu þessum þremur og hönnunin velur sig sjálf. Afgangurinn gerir ráð fyrir að þú rekir endapunktinn og megir breyta eldveggnum hans.

Þrír valkostir, og hvað hver um sig breytir í raun

Kortlagning forskeyta, DNAT á hvern hýsil og beint forskeyti flytja öll pakka milli sömu tveggja bila, en breyta mismunandi hlutum. Kortlagning finnur upp alias-bil og endurskrifar vistföng reikningslega á ferðinni. Reglur á hvern hýsil endurskrifa líka, nema hver áfangastaður er nefndur í höndunum. Beint forskeyti endurskrifar ekkert: pakkar halda raunverulegu vistföngunum og báðir endar eru sammála um hvar þau vistföng búa.

What the far side needsPrefix mappingPer-host DNATRouted prefix
Users visible to its logsOnly without source NATSame conditionYes, unchanged
To start a connection toward youNo, alias is localNo, same reasonYes, both ends route
To absorb a new hostYes, arithmetic onlyNo, one rule per addressYes, it simply routes
To require no config changeYes, with source NATYes, same conditionNo, it needs a route back

Byrjaðu útilokunina á fjarlægu hliðinni, þar sem erfiðast er að breyta takmörkununum. Ef netþjónn þar úti skrifar biðlaravistföng í annála, ber þau saman við heimiluðu listann eða afhendir þau öðru kerfi, þá eyðileggur þýðing upprunans eina auðkenni þeirra. Ef fjarlæga hliðin verður líka að hringja, fellur þýðing alveg út, því enginn þar veit að alias-ið er til. Aðeins þegar fjarlæga hliðin svarar bara fyrirspurnum verða ódýrari valkostirnir öruggir.

Forskeytapör, og hvers vegna stærðirnar verða að passa

NETMAP er skotmark í nat-töflunni sem vinnur á pari forskeyta af sömu lengd. Það hefur enga töflu á hvert vistfang inni: það fjarlægir forskeytið, heldur hýsilbítunum og festir þau aftur við nýja forskeytið, þess vegna kortleggst /24 á /24 og aldrei á /25. Staðan ræður stefnunni: samsvörun áfangastaðar í PREROUTING endurskrifar hvert pakki er að fara, og samsvörun uppruna í POSTROUTING endurskrifar hvaðan hann kom.

Hýsil á 192.168.2.17 birtist biðlarunum þínum sem 10.50.1.17, og síðasta oktettan er ekki skraut — það er sama talan á báðum hliðum. Bættu hýsli á 192.168.2.40 við á morgun og alias-ið hans er 10.50.1.40, án nokkurrar reglu til að breyta.

Biðlarar þurfa enn leið fyrir alias-bilið sem bendir á kassann þinn, nema alias-ið falli innan undirnets sem þeir ná þegar í. Gáttin þarf enga leið fyrir alias-ið, því þýðing áfangastaðar keyrir í PREROUTING, á undan leiðarleitinni. Framleiðsla verður líka að vera kveikt, annars hendir kjarninn pakkanum eftir endurskriftina. Þrjár skipanirnar hér fyrir neðan eru öll uppsetningin á gátt í Debian-stíl með biðlara á br0, alias-ið á 10.50.1.0/24 og göngin á tun0.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i br0 -d 10.50.1.0/24 -j NETMAP --to 192.168.2.0/24
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Svarið verður að finna sjálft leiðina til baka

Endurskrift áfangastaðar ræður bara hvar pakki er afhentur. Netþjónninn á fjarlægu hliðinni verður enn að svara vistfangi sem hann nær í, og það er hægt að útbúa á tvo vegu. Þýddu upprunann svo svör fari aftur í kassann þinn, eða láttu upprunann ósnortinn og gefðu fjarlægu hliðinni leið fyrir biðlarabilið.

Masquerade á útleiðinni er styttri leiðin: ein regla í POSTROUTING og fjarlæga hliðin sér gönguvistfangið þitt, svo hún þarf enga eigin leið. Kostnaðurinn er að allir notendur renna saman í eitt vistfang, og annálar á hvern notanda hætta að þýða eitthvað. Að láta upprunann ósnortinn varðveitir þær upplýsingar, en þá verður fjarlægi staðurinn að senda svörin fyrir biðlarabilið til baka um göngin. Á OpenVPN netþjóni er það push "route 10.50.9.0 255.255.255.0", auk línu route 192.168.2.0 255.255.255.0.

Dýra mistökið er að gera helminginn af hvoru. Ef þú masqueradar hluta umferðarinnar á meðan fjarlæga hliðin ber líka bakleið fyrir aðra umferð, koma svörin inn á tengi þar sem tengingarakningarfærslan sást aldrei. Biðlarinn tilkynnir tíman út fyrir beiðni sem netþjónninn skráði sem afgreidda. Báðar áttir streymis verða að fara um sama netfilter-tilvikið: ein gátt sem þýðir, ekki tveir eldveggir í röð.

conntrack -L -d 10.50.1.17
iptables -t nat -L PREROUTING -v -n

Lestu færsluna í báðar áttir: upprunalega tvenndin heldur alias-inu þínu á áfangastaðnum, en svar-tvenndin ber raunverulega vistfangið. Ef svar-tvenndin vantar er bakleiðin vandamálið en ekki reglan. Ef teljarar PREROUTING hreyfðust aldrei náði pakkinn aldrei þeim krók.

Árekstrar og leitin sem keyrir fyrst

Tvö mismunandi bil geta rekist á og bæði bilunin líta út eins og brotin göng en ekki slæm regla. Aliðið sem þú finnur upp verður að vera ónotað alla leiðina, og raunverulega bilið á fjarlægu hliðinni má ekki þegar vera til í netinu þínu. Tvírit skapar slitrótta umferð til rangs hýsils, sem er erfiðara að greina en synjaða tengingu. Spurðu leiðartöfluna áður en þú bætir við reglu.

Á gáttinni ætti ip route get 192.168.2.17 að nefna gangtækið; staðbundin brú þýðir að fjarlæga bilið er skyggt og engin nat-regla lagar það. Ef netið þitt notar nú þegar 192.168.2.0/24 skaltu endurnúmera fjarlæga staðinn í stað þess að stafla kortlagningu ofan á áreksturinn.

Prófa frá raunverulegum biðlara, og halda því svo

Prófaðu frá vél sem mun raunverulega nota alias-ið, ekki frá gáttinni, því umferð sem mynduð er staðbundið fer aldrei um PREROUTING á sama hátt. Opnaðu tengingu við einn alias-hýsil og fylgstu með teljarunum og conntrack-færslunni birtast saman, lokaðu henni svo og staðfestu að færslan fari. Úrelt færsla bendir á hálfopna tengingu, sem venjulega þýðir að svarið kom aldrei til baka.

curl -sv http://10.50.1.17/ -o /dev/null
ss -tn dst 10.50.1.17
conntrack -L -d 10.50.1.17

Tvær eða þrjár farsælar tengingar sanna reikninginn, en segja ekkert um endingu eða um næsta verkfræðing. Geymdu reglurnar þar sem ræsingarferlið les þær, sem á Debian og Ubuntu þýðir iptables-save > /etc/iptables/rules.v4 með netfilter-persistent virkt. Kortlagning sem hverfur við endurræsingu er verri en engin, því bilunin kemur án nýlegrar breytingar til að kenna um.

Skildu eftir athugasemd við reglurnar: alias-bilið, raunverulega bilið, ástæðu parsins og hvaða hlið má hefja. Sú athugasemd aðgreinir hönnun frá hrúgu af reglum sem enginn þorir að eyða. Hún leysir líka síðari spurninguna, þegar fjarlægi staðurinn bætir við hýsli og vistfang sem enginn stillti svarar þegar. Ef athugasemdin segir að fjarlæga hliðin þurfi bakleið viti næsta manneskja að fjarlægja masquerade-regluna rýfur tengingu. Skjöl eru ódýr hér; að enduruppgötva NAT-háðleika klukkan þrjú á nóttunni er það ekki.

Tengdir greinar