NAT-regla sem átti að gefa einum VPN-biðlaraflokki sitt eigið opinbera vistfang stendur á núlli í pakkatalningu, á meðan sami flokkur heldur áfram að fara út með röngu upprunann. Reglan er yfirleitt ekki röng hvað vistfangið varðar; hún er röng hvað tengið varðar. -o eth0:0 vísar á tæki sem er ekki til, því eth0:0 er merki sem er fest á vistfang á eth0. Að skoða teljarana er fljótlegasta leiðin til að staðfesta það, og lagfæringin er minni en rannsóknin gefur til kynna.

Athugaðu hvað kjarninn kallar tækið

Lestu báðar yfirsýnirnar aðskildar áður en þú breytir nokkru:

ip link show
ip address show dev eth0
ip route get 203.0.113.20

Hlekkjalistinn sýnir tengi. Vistfangalistinn getur sýnt annað IPv4-vistfang sem ber merkið eth0:0, og tækið fyrir það vistfang er ennþá eth0. Handbók iproute2 um vistföng meðhöndlar merkið sem nafn á vistfanginu, ekki sem annan hlekk, og það er einmitt sú aðgreining sem allt vandamálið snýst um.

Sagan skýrir ruglið. Gamla ifconfig eth0:0 setningagerðin leit sannarlega út eins og nýtt tengi, og skriftur frá þeim tíma vísa enn í eitt. Á nútímakerfi er samheitið merki á vistfangi, og ekkert á leið beiningar eða netfilters meðhöndlar það sem sérstakan útgang.

Athugaðu við hvað reglan passaði í raun

Lestu teljarana með reglulistanum í stað þess að treysta minninu:

iptables -t nat -L POSTROUTING -v -n --line-numbers

Regla þar sem pakkateljarinn stendur á núlli á meðan samsvarandi umferð streymir er ekki metin, og skilyrði á útgangstengi sem nefnir eth0:0 er algeng orsök. Úttakstækið sem leiðin valdi er eth0, svo skilyrði sem leitar annars nafns verður aldrei satt, hvaða upprunavistfang sem kjarninn valdi.

Breyttu skilyrðinu í raunverulega tækið og hafðu merkið utan þess. Ef þú þarft að greina tvo biðlaraflokka sem deila því tæki skaltu greina þá eftir upprunaforskeyti, ekki eftir tengisnafni sem getur ekki verið til. Tvær reglur með -s samsvörunum sem skarast ekki eru læsilegar og prófanlegar; ein regla með skálduðu tæki er hvorugt. Gakktu hverri reglu athugasemd sem nefnir flokkinn, því eftir hálft ár mun forskeytið eitt ekki segja neinum hvers vegna hún er þar.

Athugaðu leiðina sem valdi tækið

Postrouting NAT keyrir eftir að leiðin hefur þegar valið útgangstengi, þannig að tengið í reglunni verður að vera það sem leiðin valdi. Spurðu kjarnann beint með ip route get fyrir dæmigert biðlaravistfang og lestu bæði tækið og upprunann sem hann greinir frá.

Ef svarið nefnir eth0, er tengishluti reglunnar á hreinu. Ef það nefnir göngutæki nær pakkinn aldrei reglunni sem þú ert að breyta, og leitin flyst yfir í beiningartöfluna og forgangsröðun hennar. Regla sem passar aldrei vegna þess að pakkinn fór út annars staðar lítur eins út í teljaraframleiðslunni og regla með rangt stafsettu tæki. Staðfestu hvort tilvikanna þú hefur áður en þú breytir nokkru, því hið síðara þarf breytingu á beiningum en ekki texta.

Veldu þýdda upprunann af ásettu ráði

Þegar tækið er rétt er upprunavistfangið sérstök ákvörðun. Þetta er aðeins sýnishorn af IPv4-flokki og dæmivístfang:

iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 \
  -j SNAT --to-source 203.0.113.20

Að skrifa vistfang inn í --to-source gerir engan að því að beina því til baka til þín. Uppstreymisveitan eða eigandi vistfangsins verður að afhenda svör fyrir það vistfang á þennan vél, og vistfangið verður að vera eitt sem þú hefur heimild til að nota. Ef það er ekki mun reglan passa og þýða og svörin fara samt annað.

Að breyta upprunavistfanginu er ekki það sama og að breyta uppstreymisleiðinni. Þegar raunverulega krafan er önnur líkamleg leið verður beiningastefnan fyrst að velja þá leið; SNAT endurskrifar þá upprunann á því tæki sem stefnan valdi. Fleiri merki á eth0 gefa hvorki leiðina né heimildina.

Staðfestu með tengingu sem þú opnaðir rétt í þessu

Opnaðu nýja biðlaratengingu í stað þess að endurnýta þá sem fyrir er. Tengslarakning geymir þýðinguna sem hún skráði þegar flæðið hófst, svo gömul lota getur haldið áfram að nota fyrra upprunavistfang og látið rétta nýja reglu líta út fyrir að vera biluð. Fylgstu með teljaranum hækka og skoðaðu síðan þýdda upprunann á vírnum eða í fjærendanum.

Þegar margir flokkar deila einu tengi skaltu gefa hverjum skýra upprunasamsvörun og sitt eigið þýðingarvistfang, halda þeim í stýrðri stillingu eldveggjarins og skrá röðina sem þeir eru metnir í. Skráðu síðan hvað þú staðfestir: tækið úr ip route get, teljarann sem hreyfðist og upprunann sem fjærri hliðin sá. Sú skrá svarar næstu skýrslu án þess að endurtaka samheitsruglið.

Tengdir greinar