PPP-Peer-Adress géint VPN-Endpunkt: wat gehéiert an via
Vergläicht, eng PPP-Schnittstell als Subnetz ze liesen, mam Lies vun hirem inet an peer als zwee Link-Endpunkter, a gesitt, wéi en nächsten Hop eng Policetabell akzeptéiere kann.
Eng eenzeg Zeil op enger PPP-Schnittstell entscheet de gréissten Deel vun der Routing-Diskussioun op enger VPN-Box: déi bannenzeg Adress an de Peer, dee niewendrun steet. Liest een d'Paar als klengt Subnetz, sicht een no enger Gateway, déi et net gëtt. Liest een et als déi zwou Enner vun enger eenzeger Verbindung, gëtt den nächsten Hop selbstverständlech. De Verglach hei ass tëschent deenen zwou Liesearten, well all Tabell, déi een duerno baut, déi ierft, déi een ausgesicht huet. Iwwer den äusseren VPN-Endpunkt entscheet keng vun deenen zwou eppes.
Zwou Liesearten vun enger Schnittstellzeil
Huelt eng Sessioun, an där d'Schnittstell inet 10.64.3.9 peer 10.64.3.1/32 mellt. D'Subnetz-Lieseart behandelt 10.64.3.9 als eenzelen Host op enger /32-Insel an sicht duerno en Router, fir eppes baussent där z'erreechen. Well déi eenzeg aner Adress op der Zeil de Peer ass, proposéiert déi Lieseart am Schluss 10.64.3.9 selwer als Gateway, wat zirkulär ass.
D'Endpunkt-Lieseart ass déi dokumentéiert. Op enger Punkt-zu-Punkt-Schnittstell nennt peer dat wäit Enn vun där eenzeger Verbindung, also ass 10.64.3.1 den notzbaren nächsten Hop an 10.64.3.9 ass ëmmer just eng Quelladress.
Dee Verschidd bestëmmt, wat an via dierf stoen. Schreift een do déi lokal Adress, entsteet eng Route, déi de Kernel net engem Noper zouuerdne kann, sou datt den Aschreiwung an der Validéierung feelt oder Verkéier schléckt, wärend en an enger Lëscht komplett gesond ausgesäit. De Peer funktionéiert, well en eng richtege Destinatioun op der Verbindung ass. Béid Liesearte stëmmen iwwer den äusseren VPN-Endpunkt iwweren, deen eng komplett eegestänneg Identitéit ass: en ass iwwer den Underlay z'erreechen, net iwwer den Tunnel, deen en terminéiert.
Wat d'Sessioun schonn installéiert huet
Ier een eng eege Tabell schreift, dréckt een aus, wat mat der Verbindung komm ass. Eng ënnerstëtzt PPP-Integratioun installéiert normalerweis eng Geräteroute an eng Peerroute beim Sessiounsopbau, an déi zwou Aschreiwunge kodéieren déi richteg Lieseart schonn.
ip -4 addr show dev ppp0
ip route show dev ppp0
ip route show table main | head -n 5
Eng Geräteroute wéi 10.64.3.1 dev ppp0 proto kernel scope link src 10.64.3.9 dréit keng Gateway, well d'Schnittstell selwer de Wee ass. Eng Route, déi de Peer mat via nennt, ass en aneren Objet mat enger anerer Liewensdauer, an se verschwënnt, wann d'Sessioun fält. Eng vun deenen zwou Formen an eng persistent Tabell ze kopéieren, ouni ze préiwen, wéi se nei installéiert gëtt, ass de gewéinleche Grond, firwat en funktionéierenden Tunnel no enger Reconnect seng Route verléiert.
Vergläicht déi zwou Lëschten, amplaz dem Gediechtnes ze vertrauen. Wann d'Peerroute an main existéiert, awer deng zousätzlech Tabell eidel ass, hues du eppes geléiert, wat d'Adresszeil dir ni gesot huet.
Eng Regel an eng Tabell sinn getrennten Entscheedungen
Eng Tabell auszesichen an se ze fëllen sinn onofhängeg Schrëtt, an de Verglach zielt hei, well béid beim Debugge dacks verwiesselt ginn. Eng Regel, déi markéierte Verkéier an d'Tabell 100 schéckt, bewierkt näischt, wann d'Tabell 100 keng passend Route huet, an eng gutt gefëllte Tabell ass onerreechbar, wann keng Regel drop weist.
Eng hallef Defaultroute ass keng Defaultroute. Eng eenzeg 0.0.0.0/1 deckt déi ënnescht Hallschent vum IPv4-Raum of, also brauch eng Policy, déi alles wëll fänken, zousätzlech déi passend 128.0.0.0/1 oder eng richteg default. Eng funktionéierend Konfiguratioun ze liesen an eng vun den zwou Halscheide ze kopéieren ass de Wee, op deem Leit eng Routingsschlaaf kréien, déi nëmmen bei bestëmmten Destinatiounen brécht.
Fir Adressen, déi am LAN musse bleiwen, loosse mer bewosst Ausnamen stoen, an entscheede mer, wat geschitt, wann d'Sich an der ausgesichter Tabell näischt fënnt. Eng ausdrécklech Fallbackroute ass méi einfach nozevollzéien wéi eng eidel Tabell, déi en Onreachable-Resultat zréckgëtt an d'Applikatioun éischter futti wéi falsch geroutet ausgesinn léisst.
D'Sich d'Fro stellen, déi deng Applikatioun stellt
ip route get léist en Wee op; ip route show lëscht gespäichert Aschreiwungen, an déi zwou kënnen sech widerspriechen, ouni datt eng falsch ass. Den Quellkontext matginn, well quellbaséiert Regele gräifen nëmmen, wann d'Sich eng Quell matféiert.
ip route get 198.51.100.23 from 10.64.3.9
ip route get 198.51.100.23 from 10.64.3.9 iif ppp0
ip -4 rule show
Den éischte Befehl stellt d'Fro vum Host aus. Den zweeten füügt eng Agangsschnittstell bäi, wat méi no un dat kënnt, wat weidergeléite Verkéier erlieft, an d'Äntwert weist dacks op eng aner Tabell. Keng vun den Destinatiounen ass en Live-Testdéngscht; 198.51.100.23 ass eng Dokumentatiounsadress, also ersetzt se duerch en Host, deen s du dierfst ënnersichen.
Och eng korrekt Sich beweist just, datt en Wee ausgesicht gouf. Se seet näischt doriwwer, ob déi aner Säit de Verkéier unhëlt oder ob d'Äntwert iwwer déi selwecht Iwwerleeung zréckkomme kann.
Wou de Verglach kippt
Hostverkéier a weidergeléite Verkéier huelen net just aner Sichen; se begéinen op dem Réckwee och aner Filter. Linux aplikéiert Reverse-Path-Validéierung mat der strengerer vun den Astellunge fir all Schnittstellen an déi empfangend Schnittstell, sou datt eng Ännerung um Wäert vun enger Schnittstell méiglecherweis keng siichtbar Wierkung huet. Mark-baséiert Routing füügt d'Bezéiung src_valid_mark bäi, bei där d'Mark muss passen, fir datt eng Quell als gülteg gëllt.
Wann Äntwerten verschwannen, wärend d'ausgäng Routing richteg ausgesäit, liest een déi effektiv Wäerter, ier een se beréiert, an ännert se nëmmen mat engem genannten Policy-Grond.
sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.ppp0.rp_filter
sysctl net.ipv4.conf.all.src_valid_mark
Tëschent den zwou Designe entscheet ee sech op Basis vu Beweiser: wann d'Applikatioun sech un d'PPP-Adress bindt, duergen eng Quellregel an eng Tabell mat der Peerroute. Wann d'Box fir e LAN hannendrun weiderleitet, mussen zousätzlech den Agangskontext an de Réckwee iwwerenee stëmmen. Wann se sech widerspriechen, korrigéiert een d'Eegentum vun der Route, amplaz d'Validéierung fir déi ganz Maschinn ze lockeren.