Eftir IP-breytingu netþjónsins nefnir SNAT-reglan enn þá gömlu
Göng geta tengst á meðan hver áframsendur pakki stöðvast, því þýðingarreglan skrifar enn til vistfangs sem hýsillinn á ekki lengur.
Netþjónninn flutti á nýtt vistfang, biðlararnir tengjast enn, og ekkert af því sem þeir senda nær internetinu. Þessi skipting er vísbendingin: hlustandi sambandið og gáttarvörpunin lifðu flutninginn af, svo göngin rísa, á meðan upprunaaðlögunin sem beitt er á áframsenda pakka nefnir enn vistfang sem hýsillinn á ekki lengur. Svör við þessum endurskrifuðu pökkum fara til vélar sem er ekki þar lengur.
Tenging og áframsending mistakast á ólíkum stöðum
Uppbyggingin fer eftir endapunktinum sem biðlararnir þekkja þegar: opinbera vistfanginu, gáttarvörpuninni fyrir framan það og hlustandanum inni. Áframsend umferð fer eftir annarri ákvörðun sem tekin er eftir að pakkinn fer inn í göngin, þegar hýsillinn endurskrifar uppruna sinn svo svörin finni leiðina til baka.
Vistfangsbreyting brýtur aðeins aðra ákvörðunina, og þess vegna er einkennið lesið sem "tengt en ekkert internet". Það útskýrir líka hvers vegna venjulegu prófin á biðlarahlið líta heilbrigð út: handabandið klárast, biðlarinn fær vistfang, og jafnvel ping á gönguvistfang netþjónsins getur svarað. Klukkustundum er eytt á biðlaranum vegna bilunar sem býr hinum megin, og þess vegna er reglutaflan fyrsti staðurinn til að skoða.
Lestu regluna og teljarana hennar áður en þú breytir
Listaðu þýðingarreglurnar með teljurum og berðu saman stillta upprunann við vistfangin sem hýsillinn hefur í raun. Regla sem hefur verið endurskrifuð á dautt vistfang sýnir venjulega umferð á leið inn, því pakkar ná henni og eru þýddir, og ekkert á leið til baka.
sudo iptables -t nat -L POSTROUTING -n -v --line-numbers
ip -4 addr show
Athugaðu þrjá reiti á meðan þú ert þar: safnið í upprunasamsvöruninni, útgangsviðmótið ef reglan nefnir eitt, og undantekninguna sem kemur í veg fyrir að umferð milli ganga sé endurskrifuð. Þessa undantekningu er auðvelt að týna við breytingu, og að týna henni lætur umferð milli jafningja líta út fyrir að virka á meðan svör hennar fara undarlega leið.
Ef teljararnir sitja á núlli nær umferðin aldrei þessari reglu og vistfangið er ekki vandamálið núna. Leitaðu að keppinautarreglu fyrr í keðjunni, sem gerist þegar einhver bætir við staðgengli í stað þess að breyta upprunalegu reglunni. Berðu reglunúmerin saman við úttakið sem þú skráðir fyrir mínútu. Röð er hluti af stillingunni, ekki snyrtiatriði.
Skiptu upprunanum út, eða hættu að nefna einn
Þegar hýsillinn hefur stöðugt vistfang skaltu skipta reglunni út á staðnum í stað þess að bæta annarri við. Útskipting eftir reglunúmeri varðveitir röðina sem restin af keðjunni byggir á.
sudo iptables -t nat -R POSTROUTING 1 -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source 10.151.0.40
Þegar vistfanginu er úthlutað kvikt skaltu ekki nefna neinn uppruna og láta kjarnann velja það núverandi úr útgangsviðmótinu. Þetta afbrigði lifir næsta flutning af án breytingar, á kostnað þess að fela hvaða vistfang var notað.
sudo iptables -t nat -R POSTROUTING 1 -s 10.8.0.0/24 ! -d 10.8.0.0/24 -o eth0 -j MASQUERADE
Staðfestu að áframsending IPv4 sé enn virk í gegnum stýrða stillingu, og gerðu regluna þá varanlega með eigin kerfi dreifingarinnar. Breyting sem gerð er aðeins í keyrandi kjarnanum kemur aftur við næstu endurræsingu, venjulega á viðhaldsglugga sem enginn tengir breytingunni.
Tvær leiðir til að gera útskiptinguna rangt
Að þýða safnið á gönguvistfang netþjónsins í stað LAN-vistfangs hans sendir svörin beint aftur inn í göngin, þar sem þau eru leiðbeint til biðlara sem bað aldrei um þau. Tengingin stöðvast á þann hátt að hún líkist leiðarlykkju, því hún er það.
Að stafla annarri þýðingu ofan á þá gömlu er hin mistökin. Fyrsta reglan sem passar vinnur, svo úrelta færslan heldur áfram að meðhöndla pakka þar til henni er eytt, og teljarar nýju reglunnar sitja á núlli á meðan allir kenna útskiptingunni um. Eyddu tvíritinu áður en þú bætir einhverju nýju við. Lestu listann svo einu sinni enn og staðfestu að nákvæmlega ein þýðing passi við safnið.
Ef göngin bera líka IPv6 skaltu endurtaka alla yfirferðina á hinum staflanum. Sjálfgefin IPv6-leið án þýðingar og án leiðbeinds forskeytis mistekst jafn hljóðlega, og það er auðvelt að gleyma því þar sem allt fyrir ofan lítur eins út.
Innkomandi þjónustur þurfa gagnstæðu þýðinguna
Þjónusta á VPN-biðlara sem verður að vera aðgengileg að utan þarf áfangastaðarþýðingu, ekki upprunaaðlögun: opinbera gáttin er endurskrifuð á gönguvistfang biðlarans áður en hún fer inn. Áframsendingarleiðin þarf svo skýra reglu sem leyfir þessa umferð.
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.9.8.2:8080
Þýddu aldrei gáttina sem ber göngin sjálf, því sú endurskrifun rýfur sambandið sem heldur þjónustunni aðgengilegri. Haltu göngugáttinni algjörlega utan áfangastaðarreglnanna. Staðfestu svo frá báðum endum: teljarar á nýju reglunni, stutt upptaka á gagnatækinu og ein beiðni á vistfang inni í göngunum áður en þú prófar það opinbera.