eth0:0 ass eng Etikett, keen Apparat: korrigéier d'SNAT-Regel
En Zähler op null heescht, datt d'Regel eng Interface nennt, déi et net ka ginn. Liest den echte Apparat, korrigéier d'Match -o an dann wielt déi iwwersat Adress bewosst.
Eng NAT-Regel, déi engem VPN-Clientpool seng eege ëffentlech Adress sollt ginn, steet op null Paketen, während dee selwechte Pool weider mat der falscher Quell erausgeet. D'Regel ass meeschtens net bei der Adress falsch, si ass beim Interface falsch. -o eth0:0 verweist op en Apparat, deen et net gëtt, well eth0:0 eng Etikett ass, déi un enger Adress op eth0 hänkt. D'Zähler kucken ass de séierste Wee, dat ze bestätegen, an d'Korrektur ass méi kleng, wéi d'Enquête et wëlle mécht.
Kuckt, wéi de Kernel den Apparat nennt
Liest déi zwou Siichten getrennt, ier Dir eppes ännert:
ip link show
ip address show dev eth0
ip route get 203.0.113.20
D'Linklëscht weist Interfaces. D'Adresslëscht kann eng zweet IPv4-Adress weisen, déi d'Etikett eth0:0 dréit, an den Apparat fir déi Adress ass nach ëmmer eth0. D'Adresshandbuch vum iproute2 behandelt d'Etikett als Numm vun der Adress, net als zweeten Link, an dat ass genee den Ënnerscheed, ëm deen et geet.
D'Geschicht erkläert d'Verwirrung. Déi al ifconfig eth0:0 Syntax huet wierklech wéi en neien Interface ausgesinn, an d'Skripte vun där Zäit weisen nach ëmmer drop hin. Op engem aktuelle System ass den Alias eng Etikett op enger Adress, an näischt am Routing- oder Netfilterwee behandelt en als eegene Ausgangspunkt.
Kuckt, wourop d'Regel tatsächlech gepasst huet
Liest d'Zähler mat der Regellëscht amplaz aus dem Gedächtnis:
iptables -t nat -L POSTROUTING -v -n --line-numbers
Eng Regel, deenen hir Pakzähler op null bleift, während passenden Traffic fléisst, gëtt net evaluéiert, an eng Bedingung fir den Ausgangsinterface, déi eth0:0 nennt, ass eng heefeg Ursaach. Den Ausgangsapparat, deen de Wee gewielt huet, ass eth0, also eng Bedingung, déi en aneren Numm sicht, gëtt ni wouer, egal wéi eng Quelladress de Kernel gewielt huet.
Ännert d'Bedingung op den echten Apparat an loosst d'Etikett dobaussen. Wann Dir zwéi Clientpools musst ënnerscheeden, déi sech deen Apparat deelen, ënnerscheet se um Quellpräfix, net un engem Interfacenumm, deen et net ka ginn. Zwou Regele mat net iwwerlappenden -s -Matche sinn liesbar an testbar; eng Regel mat engem erfonnenen Apparat ass weder dat engt nach dat anert. Gitt all Regel en Kommentar, deen de Pool nennt, well an engem hallwe Joer wäert de Präfix eleng keen soen, firwat se do steet.
Kuckt de Wee, deen den Apparat gewielt huet
Postrouting-NAT leeft, nodeems de Wee schonn en Ausgangsinterface gewielt huet, also muss den Interface an der Regel dee sinn, deen de Wee gewielt huet. Froft de Kernel direkt mat ip route get fir eng representativ Clientadress a liest souwuel den Apparat wéi och d'Quell, déi en ugëtt.
Wann d'Äntwert eth0 nennt, ass den Interface-Deel vun der Regel gekläert. Wann se en Tunnelapparat nennt, erreecht de Pak d'Regel, déi Dir ännert, ni, an d'Sich geet op d'Routingtabell an hir Prioritéiten. Eng Regel, déi ni passt, well de Pak sossdo erausgaang ass, gesäit an der Zählerausgab genee sou aus wéi eng Regel mat engem falsch geschriwwenen Apparat. Bestätegt, wat vun deenen zwee Dir hutt, ier Dir eppes ännert, well déi zweet eng Ännerung um Routing brauch an net um Text.
Wielt déi iwwersat Quell bewosst
Wann den Apparat richteg ass, ass d'Quelladress eng eege Entscheedung. Dëst ass just en illustrative IPv4-Pool an eng Beispilladress:
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 \
-j SNAT --to-source 203.0.113.20
Eng Adress an --to-source ze schreiwen heescht net, datt een se Iech zréck routet. Den Upstream-Provider oder den Adressbesëtzer muss d'Äntwerten fir déi Adress un dësen Host liwweren, an d'Adress muss eng sinn, déi Dir däerft benotzen. Wann net, passt d'Regel a iwwersetzt, an d'Äntwerten ginn nach ëmmer sossdo.
D'Quelladress änneren ass net datselwecht wéi den Uplink änneren. Wann déi richteg Fuerderung en anere physesche Wee ass, muss d'Routingpolitik fir d'éischt dee Wee wielen; SNAT schreift duerno d'Quell op deem Apparat ëm, deen d'Politik gewielt huet. Méi Etiketten op eth0 liwweren entweeder de Wee nach d'Autorisatioun.
Verifizéiert mat enger Verbindung, déi Dir just opgemaach hutt
Maacht eng nei Clientverbindung op, amplaz eng bestoend weiderzebenotzen. D'Connection-Tracking behält d'Iwwersetzung, déi et beim Start vum Flow opgeholl huet, sou datt eng al Sitzung weider déi virdrun Quelladress benotze kann an eng korrekt nei Regel futti ausgesinn léisst. Kuckt den Zähler klommen an dann observéiert déi iwwersat Quell um Kabel oder um wäiten Enn.
Fir méi Pools, déi sech en Interface deelen, gitt jidweder eng explizit Quellmatch an seng eege Iwwersetzungsadress, haalt se an der geréierter Konfiguratioun vun der Firewall a notéiert d'Reiefolleg, an där se evaluéiert ginn. Duerno schreift op, wat Dir verifizéiert hutt: den Apparat aus ip route get, den Zähler dee sech beweegt huet an d'Quell, déi déi wäit Säit gesinn huet. Dee Rekord beäntwert den nächsten Rapport, ouni d'Alias-Verwirrung ze widderhuelen.