OpenVPN fällt no enger DHCP-Erneierung aus: hal d’Endpunkt-Route
Eng DHCP-Erneierung kann den Endpunkt vum Tunnel op engem iwwerholten Gateway loossen, an déi hallef Standardrouten schloen den Tunnel. Fléck, wien déi Route besëtzt, net d’Metrik.
Den Tunnel verbënnt sech, duerno bréngt eng Lease-Erneierung um Zougangsverbindung en ëm, an de Log beschëllegt en Timeout amplaz vun enger Route. An der VPN-Konfiguratioun huet sech näischt geännert, an dat ass den Hiwäis: eppes dobaussen huet sech geännert. En DHCP-Evenement huet d’Adress oder den Gateway nei geschriwwen, an d’Host-Route, déi den Endpunkt vum Tunnel erreechbar gehal huet, weist elo op en nächsten Hop, deen et net méi gëtt. Dëst ass en Eegentumsproblem, ier et en Routingproblem ass.
Vergläicht de Symptom mat deenen hallef Standardrouten
Mat redirect-gateway def1 installéiert OpenVPN 0.0.0.0/1 an 128.0.0.0/1, amplaz d’Standardroute z’ersetzen. Zesummen decken déi zwee de ganzen Adressraum of, an si schloen 0.0.0.0/0 just duerch d’Längt vum Präfix. Dofir geet all Destinatioun ouni eng méi spezifesch Iwwereneestëmmung an den Tunnel.
Den Endpunkt brauch eng Ausnam. OpenVPN setzt eng Host-Route op d’Serveradress duerch den ursprénglechen Zougangs-Gateway derbäi, ier déi hallef Standardrouten erakommen, sou datt encapsuléiert Pakete kënnen eraus. Wann déi Ausnam verschwënnt, oder en nächsten Hop behält, deen et net méi gëtt, da passen d’Baussepakete vum Tunnel selwer op eng hallef Standardroute a ginn zréck an den Tunnel geschéckt. D’Resultat ass eng Verbindung, déi beim nächsten Keepalive oder Handshake stierft, ouni eppes am Log, wat wéi e Routingfeeler ausgesäit.
Bestätegt d’Form vun der Tabell, ier Dir eppes anescht ufänkt. ip route show soll béid Hälften plus eng Host-Route fir d’Serveradress oplëschten; wann d’Host-Route feelt, huet de Rescht vun der Enquête en offensichtlechen Ausgangspunkt.
Firwat déi hallef Standardrouten ouni Metrikännerung gewannen
Eng méi niddreg Metrik schléit keen méi laange Präfix. D’Routen /1 gewannen, well de Kernel fir d’éischt déi spezifeschst Route vergläicht, dofir ännert eng méi héich Metrik op der Standardroute näischt do driwwer, wou den Traffic an den Tunnel geet. Metriken ze joen ass deen heefegste falschen Tour an dëser Diagnos.
Kuckt d’Auswiel mat ip route get 203.0.113.10 no, andeems Dir déi richteg Serveradress asetzt. D’Äntwert nennt d’Interface an den nächsten Hop, déi de Kernel wierklech benotze géif, wat méi informativ ass wéi eng Tabell ze liesen an driwwer nozedenken.
Fëllt dësen Kommando aus, ier den Tunnel ufänkt, während en leeft, an no dem Lease-Evenement. Dräi Äntwerten aus engem Kommando, an de Punkt vun der Divergenz gëtt sichtbar.
Huelt dräi Momentopnamen, net eng
Sammelt d’Zougangsadress, den Zougangs-Gateway, d’Destinatioun vum Endpunkt, déi gewielte Route an all Politikregel zu dräi Momenten: nodeems d’Zougangsverbindung konfiguréiert ass, nodeems de VPN sech verbonnen huet, an no dem Lease- oder Bedreiwer-Evenement. All Momentopnam ass eng Handvoll Kommandos, an si hunn nëmme zesummen e Sënn. Eng eenzeg Momentopnam no dem Feeler hält den Zoustand fest, net den Iwwergank. Schreift d’Kommandos an e klengt Skript, sou datt all Momentopnam op déi selwecht Manéier geholl gëtt.
Halt d’Momentopnamen an enger Datei mat Zäitstempel, well déi interessant Fro spéider d’Reiefolleg ass. Koum den DHCP-Evenement, ier oder nodeems OpenVPN seng Route erneiert huet? D’Äntwert entscheet, wien et flécke muss. En Zäitstempel vun enger falscher Auer ass schlëmmer wéi keen, dofir hëlt en vum Host, deen d’Routingtabell besëtzt.
Wann den Endpunkt als Numm amplaz als Adress konfiguréiert ass, léist en och an all Momentopnam op. Eng DNS-Ännerung um Zougangsverbindung kann den Endpunkt verréckelen, ouni datt eng Route ugepaakt gëtt.
Entscheet, wéi eng Komponent d’Ausnam erneiert
Op engem dhcpcd-System lafen Hooks aus dem Hook-Verzeechnis an aus dem Exit-Hook, an de Manager-Modus ënnerscheet sech am Ëmfang vum Modus pro Interface. Wat den Hook och mécht, et muss idempotent sinn, well Erneierungen a Schëtter kënne kommen.
Den zouverlässegen Eegentümer ass d’Integratioun, déi béid Säiten schonn kennt: en Netzwierkmanager, deen d’VPN-Verbindung geréiert, oder eng Unit, déi no dem Opgoe vun der Zougangsverbindung geuerdnet ass. Eng statesch Route, déi en Hook setzt, funktionéiert bis zur nächster Gateway-Ännerung, an duerno fällt se op genau déiselwecht Manéier aus. Wann Dir awer en Hook benotzt, loosst en dee momentane Gateway zur Lafzäit liesen, amplaz deen ze hardcodéieren, deen Dir haut gesinn hutt.
Notéiert den Eegentümer an der Konfiguratioun. Déi nächst Persoun, déi eng Reconnectioun debugt, muss wëssen, datt en Hook, net de VPN, fir d’Ausnam-Route verantwortlech ass.
Test de Liewenszyklus, net just d’Reconnectioun
Erzwéngt eng Erneierung mat dhcpcd -n eth0 oder andeems Dir de Lease fräigitt an nei hëlt, an iwwerpréift duerno nach eng Kéier ip route get fir den Endpunkt. Maacht et zweemol, well den zweete Laf Hooks erwëscht, déi duebel Routen derbäisetzen. Startt duerno nei, well Persistenz eng aner Eegeschaft ass wéi Korrektheet.
En Tunnel, deen eng Erneierung an en Neistart iwwerlieft, huet en Eegentümer an eng funktionéierend Ausnam. Deejéinegen, deen nëmmen en manuellen Neistart iwwerlieft, huet keent vun deenen zwee, an hie wäert beim nächsten Evenement ausfalen, dat Dir net kënnt plangen.