En zweete VPN-Client zu installéieren, fir eng Client-Netzwierk z'erreechen, ass de gewéinleche Wee wéi dat ufänkt, an den éischten Tunnel gëtt däischter, während béid Clienten Erfolleg mellen. All Client huet eng Standardroute installéiert, déi zweet war méi spezifesch, an de Kernel follegt hire elo fir alles ausser der eege baussenzeger Verbindung vum éischten Tunnel. Näischt ass ofgestierzt an kee Profil ass falsch. Eng Route huet eng aner ersat, an d'Léisung ass ze entscheeden, wéi en Tunnel d'Standardroute besëtze soll.

D'Symptom: den zweete Client gewënnt roueg

OpenVPN: d'Optioun redirect-gateway def1 iwwerschreift 0.0.0.0/0 net. Si füügt 0.0.0.0/1 an 128.0.0.0/1 derbäi: zesummen decken si all IPv4-Adress of, an all Prefix schléit eng einfach Standardroute an der Längt. D'originell Standardroute bleift an der Tabell a gëtt net méi fir normalen Trafik benotzt, an eng Host-Route zum VPN-Server verhënnert, datt den Tunnel seng eegen baussenzeg Pakete fänkt. Béid Clienten maachen dat, an den zweete installéiert einfach säi Paar méi spéit.

Dofir gesäit den éischten Tunnel dout aus anstatt getrennt. Seng Interface ass uewen, säi Kontrollkanal lieft, an keen Applikatiounstrafic erreecht en nach. Déi ëmgedréint Plainte kënnt vum selwechte fehlenden Push: en Telefon, dee sech verbënnt awer näischt schéckt, schwätzt meeschtens mat engem Server, deen ni redirect-gateway annoncéiert huet, also hält den Apparat säin eegene Standard a erreecht just de Pool.

Maacht en Routing-Schnappschoss virun a nodeems den zweete Client sech verbënnt. Déi zwee hallef Routen, déi an der Tabell erschéngen, sinn déi ganz Ännerung, an si erklären déi zwou Plainten. Näischt anescht an der Tabell muss sech beweegen, fir datt d'Symptom erschéngt. Dofir restauréiert d'Ewechhuele vum zweete Client deen éischten direkt.

Liest wéi en Tunnel tatsächlech gewënnt

Leet de Gewënner net aus der Reiefolleg of, an där d'Clienten ugefaangen hunn, nach aus dem Ikon an der Taskbar. Frot de Kernel wéi eng Route en fir en Zil baussent béiden private Netzwierker géif benotzen, a liest d'Interface, déi zréckkënnt.

ip route show
ip route get 198.51.100.24
route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.24

Déi éischt zwou sinn d'Linux-Antwert an déi lescht zwou de Windows-Äquivalent. Féiert se aus, während béid Tunnele uewe sinn, trennt dann een an féiert se nach eng Kéier aus. Den Ënnerscheed tëscht den zwou Ausgaben ass de Fait, deen Dir braucht ier Dir eng Léisung wielt, an et dauert manner laang wéi de Log vun engem vun de Clienten ze liesen.

Schreift d'Resultat op, inklusiv den Interface-Numm an de Prefix, deen iwwerenee gestëmmt huet. En Ticket, deen seet, den zweete VPN hätt den éischte kaputt gemaach, ass eng Beschreiwung vum Symptom, keng Routing-Aussag, op déi een handle kënnt. D'Sich mécht doraus e Fait, deen den nächsten Ingenieur mat engem Befehl ka reproduzéieren.

Windows: verhënnert, datt ee Profil de Standard besëtzt

Windows hält gespäichert Profiler, an den agebaute Client erlaabt, datt een vun engem aneren ofhänkt, sou datt den éischten automatesch eropkënnt, wann den zweete wielt. De Profil, deen am leschten verbonnen huet, hält dacks de Standard, also ass de prakteschen Eegentemer de leschte Wielen an net den éischten. Gitt all Profil seng eegen Push-Routen a schalt Split Tunneling un fir deen, deen den Standard net soll besëtzen.

Set-VpnConnection -Name "Contoso" -SplitTunneling $true
rasdial Contoso

Split Tunneling ännert dat: just Prefixe vum Server landen an der Tabell, wat den Standard beim éischten Tunnel léisst. D'Design feelt nach ëmmer, wann béid Server eng Standardroute pushen, well dann déi lescht Verbindung gewënnt an keng Astellung op Client-Säit dat ännert. Maacht de Push op Server-Säit richteg oder akzeptéiert een Eegentemer.

App-ausgeléist Profiler sinn eng aner Funktioun a wäert et ze wëssen: e Windows-Profil kann ufänken, wann eng benannt ausféierbar Datei start, woubäi Trafikfilter entscheeden, wat en dréit. Dat ass eng Profil-Astellung an net eng Firewall-Reegel, an et léist en anert Problem wéi de Standardroute-Konflikt.

Linux: hält den zweeten Tunnel aus der Haapttabell

Zwee openvpn --config-Instanzen op enger Maschinn ze lafen setzt béid Clienten an déi selwecht Tabell, an dräi Optiounen trenne se mat wuessender Isolatioun. Déi liichtst ass, den zweete Client komplett d'Tabell net editéieren ze loossen: route-nopull mat explizite Routen, oder e route-up-Skript, dat just dat installéiert, wat Dir wëllt. Dann dréit den zweeten Tunnel genee déi Prefixen, déi Dir nennt, an näischt anescht. Dann entscheet Dir, wéi eng Prefixe wouhi ginn, anstatt et duerno z'entdecken.

Policy-Routing ass déi mëttel Optioun. Eng Reegel wielt eng separat Tabell fir eng Quelladress oder eng Firewall-Mark, an déi Tabell dréit d'Routen vum zweeten Tunnel. Reverse-Path-Filtering ass hei d'Falle, well eng Äntwert, déi op enger anerer Interface ukommt wéi déi, déi d'Tabell géif wielen, verworf gëtt, also kontrolléiert d'Astellung rp_filter ier Dir schléisst, datt den Tunnel kaputt ass.

ip rule add from 10.44.7.0/24 table 100
ip route add default dev tun1 table 100
sysctl net.ipv4.conf.all.rp_filter

Netzwierk-Nummerräim sinn déi schwéierst an déi propperst Optioun. Start den zweete Client an ip netns, gitt him e veth-Paar, a gitt an deen Nummraum eran, fir en ze benotzen. Interferenz verschwënnt, well all Nummraum seng eegen Tabellen huet anstatt eng ze deelen, wat den zousätzlechen Opbau wäert ass, wann béid Tunnele Woche laang uewe musse bleiwen.

Pro Applikatioun, an d'Verkettung als eegene Problem

Heiansdo soll just ee Programm den zweeten Tunnel benotzen. Op Linux erreecht Policy-Routing no Benotzer, cgroup oder Port dee Resultat, an eng eenzeg Destinatioun kann un eng Interface gepinnt ginn, ouni de Standard iwwerhaapt unzeréieren. Eng Applikatioun, déi hire Socket un eng Interface pinnt, consultéiert d'Routingtabell guer net, also kann e Launcher de physeschen Adapter weider benotzen, bis eng Adress a sengen eegene Astellungen ausgewielt gëtt.

Verkettung ass eng aner Operatioun wéi zwee Tunnele niewenteneen ze lafen. A iwwer B ze verketten heescht, datt d'Adress vum bannenzege Server vun bannen aus dem baussenzege Tunnel aus erreechbar muss sinn. Den baussenzege Client däerf och d'verschlësselte Pakete vum bannenzege Client net fir eng Lek halen. Een Client an enger virtueller Maschinn ass déi gro awer zouverlässeg Versioun; béid op engem Host brauchen d'Routing-Aarbecht uewendriwwer plus e baussenzege Wee zum bannenzege Server, deen ni an den bannenzegen Tunnel erakënnt.

Schreift den Eegentemer vum Standard op, d'Prefixlëscht, déi all Tunnel dréit, an de DNS-Wee. Déi dräi Fakten maachen den nächsten Tëschefall zu enger Nofro anstatt enger Enquête.

Ähnlech Artikelen