Zwee Client-Poolen, eng Gateway, an de Plang gesäit trivial aus: eng Regel schéckt deen éischten Pool iwwer de schnellen Uplink, eng aner schéckt deen zweete Pool duerch en Partner-Tunnel. Duerno sinn d'Reegelen drop an deen zweete Pool geet ëmmer nach iwwer d'Standardroute eraus. D'Regel ass net futti. D'Quell vum Paket ass net dat, wat den Auteur am Moment vum Lookup erwaart huet, well Iwwersetzung a Lookup op verschiddene Punkten an der Rees vum selwechte Paket geschéien, an d'Reiefolleg ass ëmgedréit zu deem mentale Bild, wat déi meescht Leit zeechnen.

De Lookup geschitt, ier d'Quell ëmgeschriwwe gëtt

Fir e Paket, dee vun engem VPN-Client virugeschéckt gëtt, féiert de Kernel eng fix Sequenz aus. Et kënnt um Tunnelinterface un, geet duerch prerouting, wou conntrack an DNAT wunnen, duerno gëtt d'Routingentscheedung getraff, duerno d'Viruleedung, duerno postrouting, wou SNAT als lescht ugewannt gëtt. Eng Regel vun der Form from gëtt wärend där Routingentscheedung consultéiert, dat heescht si gesäit déi original Adress vum Client, net déi iwwersat.

Dofir ännert d'Abbauen vun enger masquerade-Regel net, wéi eng Politik op de erausgoende Floss passt. Et ännert, wat de wäiten Enn gesäit, an domat, wéi ee Réckwee existéiert. Dat sinn zwou verschidde Konsequenzen, an Ännerungsreviewen verwiesselen se stänneg. Trennt se a mam Design gëtt et meeschtens bannent enger Minutt kloer.

An der Äntwertrichtung erschéngt déi iwwersat Adress an de Reegelen. E Paket, dat op d'Gateway zréckkënnt, ass un déi iwwersat Adress adresséiert, an wann Dir Politikregelen op d'Zil oder op den Interface hutt, iwwer deen et erakoum, ass dat de Wäert, deen Dir passt. Déiselwecht Verbindung, an all Richtung eng aner Quell vun der Wourecht.

StageSource the kernel seesWhat it means for your rule
PreroutingClient address, 172.31.7.42Where marks and DNAT are applied
Routing decisionStill 172.31.7.42This is where from rules match
PostroutingBecomes 198.51.100.9What the far end and its return route see

Zwee Poolen mat verschiddene Quelle brauchen also wierklech verschidden Tabellen, an d'Design ass gesond. Wat den Table uewen ausschléisst, ass den Ofkierzung, ze debuggen andeems ee kuckt, wat déi wäit Säit kritt huet, an doraus d'Regel ofzeleeden.

En Test vun der Gateway ass keen Test vum Pool

Den Trafic, deen d'Gateway selwer generéiert, geet ni duerch prerouting, well en net op engem Interface ukomm ass. En gëtt am Output-Pfad geroutet, mat der eegener Adress vun der Gateway als Quell, an eng from-Regel, déi op e Clientberäich baséiert, passt net. All Ticket an dësem Beräich, dee seet, et géif vun der Këscht funktionéieren awer net vum Client, ass déi selwecht Tatsaach an anere Wierder.

Simuléiert de Client, amplaz en ze approximéieren. De Routing-Lookup kann een direkt froen, mat enger Quell an engem Input-Interface:

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

Féiert en eng Kéier pro Pool aus. Wann déi zwou Kommandoen deeselwechten Interface zréckginn, trennen d'Reegelen d'Poolen net, an den Urspronk ass entweder eng feelend Regel oder eng Regel mat méi héijer Prioritéit, déi op béid passt. Wann se verschidden Interface zréckginn, den Client awer nach ëmmer feelt, läit de Feeler hannert dem Lookup an Dir kënnt ophale mat de Reegelen ze kucken.

Prioritéit, net Positioun an der Datei

Reegelen ginn an opsteigender Prioritéitsuerdnung bewäert, an d'Zuel zielt, net d'Uerdnung, an där Dir se getippt hutt. Den Table local läit op Prioritéit 0, den Table main op 32766 an d'Standardregel op 32767, dofir lant eng Regel, déi mat der Standardprioritéit bäigefüügt gouf, no beim Enn vun der Lëscht a verléiert géint bal alles.

ip rule show
ip rule add from 172.31.8.0/24 lookup 201 priority 1000
ip -4 route show table 201

Eng explizit Prioritéit mécht déi gewollt Uerdnung an der Datei an am Review sichtbar. Se verhënnert och, datt eng méi spéit Ergänzung roueg virun eng bestoend Regel spréngt, wat déi heefegst Ursaach ass, datt eng funktionéierend Politik no enger onofhängeger Ännerung ophält ze funktionéieren.

Eng passend Regel, déi op en onkompletten Table weist, ass déi aner Fal. Wann den Table 201 eng Standardroute enthält awer keng Route zum Zil, gëtt de Paket verworf oder op déi falsch Plaz geschéckt, an d'Regel gesäit isoléiert komplett korrekt aus. Liest den Table, net nëmmen d'Regel. Eng Regel ass en Zeiger, an en eidelen Table ass en Zeiger an d'Näischt.

De Réckwee muss nach ëmmer existéieren

Quellpolitik wielt en Ausgang. Se erstellt kee Réckwee. Wann den zweete Pool duerch en Partner-Tunnel erausgeet, muss de Partner wëssen, wéi en 172.31.8.0/24 erreecht, entweder iwwer eng Route zréck op d'Gateway oder andeems en iwwersat Adressen kritt, déi en scho kennt.

Tëscht deenen zwee ze wielen ass eng Designentscheedung mat sichtbare Konsequenzen. De Clientberäich zréck ze route behält d'Identitéit vun all Client beim Partner a verlaangt, datt en Äre Prefix akzeptéiert. Iwwersetzung verstoppt de Pool hannert enger Adress a verlaangt, datt de Partner nëmmen déi Adress akzeptéiert, op d'Käschte, datt Är a seng Loggen sech net méi eens sinn, wien sech verbonnen huet.

Wat Dir och wielt, schreift et nieft d'Pooldefinitioun. En Réckwee, deen nëmmen an engem sengem Gediechtnes existéiert, ass genee déi Zort Saach, déi iwwerlieft bis de Partner eng Firewall ännert, an duerno en Dag brauch fir se ze rekonstruéieren.

Fänkt den eegenen Tunnel vun der Gateway net an der Politik

D'Reegelen, déi Dir fir Clienten schreift, gëllen och fir den Trafic, deen d'Gateway generéiert, ausser Dir schléisst en aus. Eng breet Regel op enger Mark oder op dem Output-Interface kann dem Gateway seng eege Verbindung zum Partner fänken, an dann gëtt den Tunnel, deen d'Politik dréit, vun der Politik geroutet. Dat produzéiert eng Schlauf oder en Ausfall, deen wéi e Providerfeeler ausgesäit.

Begrenzt all Regel esou enk wéi d'Design et erlaabt: Quellprefix, Input-Interface an, wou ënnerstëtzt, eng Mark, déi nëmme Clientpakete droen. Test duerno d'Konnektivitéit vun der Gateway selwer no all Regelännerung, well de Feeler selbstreferenziell ass an an engem Clienttest net optrëtt.

D'Manpage vun ip-rule dokumentéiert d'Semantik vum Selekter an der Prioritéit. Kombinéiert se mat engem Lookup-Test pro Pool an d'Design gëtt iwwerpréifbar, wat den Ënnerscheed ass tëscht Politik-Routing, dat e Joer hält, an deem, deen all Angscht huet unzefänken.

Ähnlech Artikelen