Wat OpenVPN route-nopull tatsächlech verhënnert, datt de Server et dréckt
route-nopull verwerft gedréckten Trassen an DHCP-Optiounen, net den Handshake. Wielt tëschent et, pull-filter oder näischt, an da füügt d’Trassen selwer bäi.
Dir hutt route-nopull an eng Client-Profil gesat, fir ze verhënneren, datt den Tunnel Är Standardtrass schléckt, an elo ass d’Büro-Subnetz net erreechbar, während de Client nach ëmmer seet, hie wier verbonnen. Béid Observatiounen si richteg, an et ass näischt feelgefall. De Fändel seet dem Client, d’Trassen an d’DHCP-Anträg ze iwwersprangen, déi de Server dréckt, wat eng méi enk Uweisung ass wéi déi meescht Leit erwaarden, wann se se derbäisetzen. Wat bleift, ass en funktionéierenden Tunnel ouni Meenung dozou, wéi eng Destinatiounen en benotze sollen.
Dës Lück ass déi ganz Entscheidung, ëm déi et an dësem Artikel geet. Entweder de Server beschreift d’Netz, oder de Client mécht et, an de Fändel gëtt dës Aarbecht dem Client, ouni eppes dovun fir Iech ze maachen.
Wat de Fändel beim Verbannen ausschalt
En zéienden OpenVPN-Client hëlt normalerweis nom Authentifizéieren e Pak vum Server un: Trassen, eng Ëmleedung vum Standard-Gateway, DNS-Serveren an e puer Ofstëmmungsdirektiven. Mat route-nopull a Kraaft akzeptéiert de Client nach ëmmer d’Sessioun, verifizéiert nach ëmmer Zertifikater, verhandelt nach ëmmer Chifferen a Keepalives, an hieft nach ëmmer d’Interface erop. Wat en ewechwerft, ass d’Uwendung vun den gedréckten route-Zeilen an den gedréckten dhcp-option-Zeilen, DNS abegraff.
D’Verwirrung kënnt vun engem grénge Indikator nieft enger dout Applikatioun. Den Tunnel existéiert; d’Zouuerdnung vun den Destinatiounen op dësen Tunnel net. Näischt am Statuspanel vum Client ënnerscheet „verbonnen a rout“ vun „verbonnen an inaktiv“, well aus der Siicht vum Tunnel sinn déi zwee dee selwechte Zustand.
Firwat en liewegen Tunnel nach ëmmer näischt kann route
D’Interface erschéngt mat hirer eegener Adress a beim Punkt-zu-Punkt-Link ass dacks näischt méi spezifescht wéi eng Host-Trass op de Partner. En private Subnetz gëtt nëmmen erreechbar, wa sech eng Trass mam richtegen Prefix op dës Interface weist, a mat ausgeschaltetem Drécken kënnt déi Trass ni. Déi erofgeluede Profil kann och meeschtens net hëllefen, well se ënner der Unhuel geschriwwe gouf, de Server géif genee dës Informatioun liwweren. Dofir kann d’Interface gesond ausgesinn, während de Subnetz däischter bleift.
De Profil ze liesen beweist also ganz wéineg. Liest amplaz den Zoustand dee leeft, op der verbonnener Maschinn:
ip addr show tun0
ip route show dev tun0
ip route get 10.20.5.10
Eng Adress ouni Subnetz-Trass an der zweeter Kommando ass d’Signatur vun dësem Problem. Déi drëtt Kommando äntwert dann op d’Fro, déi d’Benotzer wierklech intresséiert, well se d’Interface mellt, déi de Kernel fir eng bestëmmten Destinatioun wielt, amplaz vun der Lëscht, vun där Dir gehofft hutt, se géif se benotzen. Wann se iwwer Ären physikalesche Link äntwert, ass den Tunnel iwwerhaapt net um Wee.
D’Nimm-Opléisung feelt aus engem verwandten Grond, net aus engem getrennten. Gedréckten dhcp-option DNS-Anträg ginn vum selwechte Fändel iwwersprong, dofir ginn Ufroe fir intern Hosts op dee Resolver, deen d’lokalt Netz geliwwert huet. Dee Resolver huet keng Zone fir de Büro, dofir feelt d’Ufro oder gëtt eng ëffentlech Äntwert zréck, an de Feeler gesäit aus wéi e Serverproblem, während et e Client-Konfiguratiounsproblem ass. Eng Adress virun engem Numm ze testen ass dat, wat déi zwee trennt.
Wielt tëschent dem Fändel an engem Prefixfilter
Déi zwou Optiounen léisen ënnerschiddlech Formen vun der selwechter Plainte, an déi falsch Wiel ass et, déi de verbonnen-awer-onnëtzen Zoustand mécht. Déi eng ersetzt déi gedréckten Politik komplett, déi aner ännert se pro Prefix. D’Tabell gëtt déi kuerz Versioun, an de Paragraph duerno deckt deen Deel of, deen d’Leit iwwerrascht.
| Setting | What the client keeps | Reasonable when |
|---|---|---|
| no option | every pushed route and DHCP entry | the server's view of the network is correct |
route-nopull | the session, none of the pushed routing or DNS | you will write the full local policy yourself |
pull-filter | everything except lines matching your prefixes | the push is nearly right and one or two lines are wrong |
pull-filter ass e Prefix-Matcher mat dräi Verben, dofir kann en eng Famill vu Zeilen akzeptéieren, se stëll ignoréieren oder d’Verbindung komplett ofleenen, wann e Prefix erschéngt. Genee déi lescht Verhalen ass et wäert ze wëssen: eng Oflehnungsregel mécht aus engem Politik-Disaccord e fehlgeschlagenen Handshake amplaz vun enger stëller Ausloossung. Den OpenVPN-2.6-Handbuch lëscht déi akzeptéiert Prefixen an déi genee Bedeitung vun all Verb op.
En heefege Mëttelwee ass, just redirect-gateway ofzeleenen an d’Büro-Trassen an DNS wéi virgesi kommen ze loossen. Dat hält d’Drécken fir déi Deeler funktionéierend, déi de Server besser versteet wéi Dir, a verhënnert gläichzäiteg déi eng Zeil, déi Är Standardtrass géif iwwerhuelen.
Trassen an e Resolver vun Hand dobäisetzen
Wann Dir de Fändel behält, muss de Profil soen, wat de Server gesot hätt. Client-säiteg route-Direktive ginn ugewannt, nodeems d’Verbindung opgebaut ass, dofir schaffe se nieft dem Fändel amplaz vun him blockéiert ze ginn. Setzt se an de Profil, net an eng interaktiv Kommandozeil, soss reproduzéiert déi nächst Reconnectioun den funktionéierenden Zoustand net.
route-nopull
route 10.20.0.0 255.255.0.0
dhcp-option DNS 10.20.0.53
D’DNS-Zeil steet an enger onbequemer Positioun: et ass eng Client-säiteg Direktiv, awer e puer Clienten uwenden se nëmmen iwwer d’DNS-Integratioun vun der Plattform, déi se iwwerschreiwe kann, wann de Link sech ännert. Op engem systemd-Host ass et viraussobar, de Resolver direkt op der Tunnel-Interface ze setzen, wéi ze hoffen, de Client géif de Prioritéitsconcours gewannen:
resolvectl dns tun0 10.20.0.53
resolvectl domain tun0 ~corp.example.com
D’Routingsdomän zielt esou vill wéi d’Adress. Ouni se kënnen Ufroe fir ëffentlech Nimm och un den internen Resolver geschéckt ginn, an all internen Resolver, deen d’Rekursioun verweigert, brécht d’Surfen, während d’privat Zone weider schafft. Mat hir ginn nëmmen Nimm ënner dësem Suffix un den Tunnel-Resolver geroutet an alles anescht follegt dem physikalesche Link.
D’Resultat kontrolléieren: Adress, Numm an de baussenzege Wee
Dräi Tester trennen déi méiglech Feeler. Huelt d’privat Adress iwwer IP, dann dee selwechten Host iwwer den Numm, dann eng gewéinlech ëffentlech Säit. Eng IP déi funktionéiert mat engem Numm deen feelt weist op de Resolver; eng IP déi feelt mat engem Numm deen funktionéiert weist op d’Routing; Béides feelt bedeit meeschtens, datt den Tunnel net um Wee ass.
Kuckt duerno no baussen amplaz no bannen. D’eegen Trass vum Tunnel-Endpunkt muss d’Ännerung iwwerliewe, an all blockéierend Feeler muss op den Tunnel begrenzt sinn, ouni den Endpunkt ze fänken. E Client, deen no dem Ausfall vum Tunnel weider surft, ass e Politikproblem, kee Routingproblem, an et wäert an keinem vun den dräi Tester uewen optrieden.
Schreift d’Schlusslëscht an d’Dokumentatioun vum Profil: d’Trassen, de Resolver, d’Domenen an de Grond, firwat jiddwereen existéiert. Eng Reconnectioun, déi déi selwecht Tabell reproduzéiert, ass deen eenzegen Beweis, datt d’lokal Politik komplett ass. Wann d’Applikatiounen nach ëmmer feelen, wärend den Tunnel uewen ass an all dräi Tester bestanen, ass déi nächst Plaz fir ze kucken d’Klass vun de verbonnen-awer-offline Problemer an net Zertifikater, déi schonn verifizéiert goufen.