OpenVPN-Server a Client op engem Host: firwat d'Cliente fortbriechen
En Host, deen OpenVPN servéiert an en och selwer benotzt, kann säin Tunnel uewen halen, während lokal Clienten d'Äntwerten verléieren. Zwee Saachen erklären dat: e gemeinsame Pool an eng nei Standardroute.
Füügt e Clientprofil op eng Maschinn derbäi, op där schonn e VPN-Server leeft, an den ursprénglechen Déngscht ass dat éischt Affer. Den neien Tunnel kënnt vläicht ni op, oder en kënnt erop, während d'Bestandsclienten vum Server stëll ophalen, Äntwerten ze kréien. Zwee Kollisiounen erginn béid Resultater: en Tunnelpool, deen schonns a Gebrauch ass, an eng Standardroute, déi déi nei Client-Halschent installéiert an déi ganzt Tabell deckt. Keng vun deenen zwee gëtt eng OpenVPN-Feëlermeldung aus, dofir gëtt de Feeler als Serverproblem gelies.
Eng Maschinn, zwou Rollen, an zwou onvereinbar Äntwerten drop, wou d'Äntwerten higo sollten.
Dee selwechte Pool, zwee Serveren: wien gewënnt
All Serverinstanz brauch hir eege Tunnelsubnetz. Eng Zeil wéi server 10.8.0.0 255.255.255.0 an déi zweet Konfiguratioun ze kopéieren gëtt zwou Instanzen deeselwechte Prefix, an d'Resultat ass entweder eng Verweigerung ze starten oder eng stëll Konkurrenz, an där d'Clienten vun engem Server Adressen kréien, déi deen aneren och als seng eege betruecht. Verschidde UDP-Porten a verschidde Gerätenimmere hëllefen net, well keng vun deenen zwee den Adressraum beréiert. Ännert den zweeten Pool, an ännert en iwwerall, wou d'Routen en ernimmen.
Lëscht op, wat lieweg ass, ier dir ännert: ip -4 addr show lëscht d'Tunnelgeräter op, ss -lunp lëscht d'Lauschterer op, an systemctl list-units nennt d'Unitéiten. E Bléck op d'Tunneladressen entscheet, ob d'Poule kollidéieren.
Wat de Clientprofil der Tabell bäisetzt
D'Client-Halschent schreift Routen, soubal se sech verbënnt. redirect-gateway def1 deelt d'Standardroute an 0.0.0.0/1 plus 128.0.0.0/1, béid iwwer dat neit Gerät geroutet, zesumme mat enger Hostroute zum wäite Server, déi bewosst un d'physikalesch Interface gepinnt ass. Dee Pin existéiert, damit den Tunnel e Wee fir säin eegenen Transport behält. Alles anescht, och d'Äntwerten, déi de lokale Server senge eigenen Clienten schëlleg ass, follegt elo der neier Standardroute a verléisst iwwer de wäite Link.
Also ass déi zweet Kollisioun keen dorëchen Tunnel. Et ass en funktionéierenden Tunnel op der falscher Plaz an der Tabell.
Dräi Weeër, fir d'Rollen auserneen ze halen
Déi mannst invasiv Korrektur hält d'Standardroute aus dem Clientprofil eraus: route-nopull plus explizit route-Zeilen fir déi wäit Prefixen, sou datt sech déi lokal Tabell nëmmen do ännert, wou dir et gefrot hutt. Den nächste Schrëtt ass eng Politikregel, déi dat lokal Tunnelsubnetz aushëlt, sou datt Äntwerten un lokal Clienten iwwer dat Interface erausgoen, op deem se ukomm sinn, och wann eng Standardroute existéiert. Déi grëndlechst ass en eegene Netzwierknammraum fir d'Clientroll, deen d'gedeelt Tabell komplett ewech hëlt an en zweeten Routingkontext kascht, dee missen ënnerhalen gëtt.
Wéi ee Wee dir och hëlt, d'Ausnam muss dat lokal Tunnelsubnetz nennen an net de LAN. D'Äntwert, déi de lokale Server schéckt, huet eng Tunneladress als Destinatioun, dofir passt eng Ausnam a Form vun engem LAN ni drop.
Wien vun den zwou Instanzen ass schëlleg
Stoppt d'Clientinstanz a testt d'ursprénglech Clienten nach eng Kéier. Eng direkter Erhuelung heescht Routing, net Server. Bréngt de Client zréck a verfollegt eng eenzeg Äntwert mat ip route get, deem souwuel eng Quell- wéi och eng Destinatiounsadress ginn ass, wat de Wee weist, deen de Kernel géif wielen, a kuckt dann d'Interface, déi d'Pakete wierklech benotzen, mat tcpdump -ni any port 1194. D'Statusdatei vum Server, déi all puer Sekonnen iwwer d'Direktiv status geschriwwe gëtt, enthält d'Lëscht vun de verbonnenen Clienten an d'Byte-Zieler a béid Richtungen.
Liest déi Zieler géinteneen. Verkehr, deen erausgeet an ni zréckkënnt, ass eng Routing-Antwert an net e Problem mam Handschlag.