Eng Route, déi no all Verbindung agetippt gëtt, léist de Moment an net d’Woch. Op macOS ass déi dauerhaft Wal normalerweis e Prefix, dee beim VPN-Service gespäichert gëtt, well de Service en bei all Verbindung nei installéiert an e läscht, wann de Service erof ass. D’Alternativen sinn en temporären route add fir Tester an en Verbindungs-Hook fir Adressen, déi eréischt no der Verhandlung bekannt sinn.

Entscheet, ob d’Route zum Service oder zur Sëtzung gehéiert

Frot, vu wat de Prefix ofhänkt. Wann et en fixe private Netz hannert engem nativen VPN-Service ass, gehéiert d’Route zu deem Service. Wann et vun enger Peer-Adress ofhänkt, déi sech bei all Verbindung ännert, kann en Hook oder eng zoustänneg Aufgabe den Eegentemer besser sinn. Wann dir nëmmen e Wee fir déi nächst fënnef Minutten iwwerpréift, ass eng temporär Route genuch.

Déi servicegebonne Route huet dee propperste Liewenszyklus. Si erschéngt mam Service a verschwënnt, wann de Service net verbonnen ass, sou datt si den Tunnel net iwwerliewen kann, op dee si weist. Déi Eegenschaft ass méi wäert wéi d’Bequemlechkeet vun engem Eenzele-Kommando.

Eng sëtzungsgebonne Route gehéiert zur Interface, an déi Zuel ännert sech ouni Ukënnegung. Eng nei Verbindung kann dem Tunnel en aneren utun-Numm ginn wéi déi vireg Sëtzung, wat e fest codéierte Kommando an eng Route ëmwandelt, déi op näischt oder, méi schlëmm, op en aneren Tunnel weist.

Liest de aktuellen Zoustand vun der Route an dem Service

Fänkt mat den Nimm un, déi de System tatsächlech benotzt. Den Numm vum Service an den Netzwierkastellungen ass den Identifiant fir d’Kommandos hei drënner, an déi aktuell Routetabelle weist, wat de verbonnenen Client installéiert huet. Liest béides, wärend den Tunnel un ass.

scutil --nc list
networksetup -listnetworkserviceorder
netstat -rn | head -30
route get 10.20.5.5

Déi Sich weist, wéi ee Gateway an wéi eng Interface de Kernel fir dës Adress an dësem Moment wielen géif. Wann en schonn den Tunnel wielt, ass de Prefix ofgedeckt an eng nei Route wier iwwerflësseg. Wann en de lokale Router wielt, feelt dem Tunnel dee Prefix.

Notéiert d’Peer-Adress, wärend dir verbonnen sidd. Si gëtt de Gateway-Wäert an der servicegebonnener Route, an et ass meeschtens den Zil, deen fir d’Standardroute vum Tunnel an netstat -rn gewise gëtt.

Späichert de Prefix mat networksetup

D’Wierkzeug networksetup hänkt zousätzlech Routen un en Netzservice. Fir e Service mam Numm OfficeVPN an e private Prefix, deen iwwer de Peer vum Tunnel erreecht gëtt, ass d’Form:

sudo networksetup -setadditionalroutes OfficeVPN 10.20.0.0 255.255.0.0 10.8.0.6
networksetup -getadditionalroutes OfficeVPN

All Dräier nom Service-Numm gëtt en Zil, seng Netmask an de Peer vum Tunnel als Gateway. En Opruff kann e puer Prefixe droen, an en eidelen Opruff läscht déi gespäichert Lëscht. De Lieser ass de Verifikatiounsschrëtt; wann d’Lëscht eidel ass, gouf de Set net op de Service ugewand, un deen dir denkt.

De Gateway muss de Peer vum Tunnel sinn, net de physesche Router. Eng Route, déi de lokale Gateway nennt, schéckt de private Prefix iwwer d’physesch Interface eraus, wat de urspréngleche Feeler mat zousätzleche Schrëtt ass. En ale Peer ass dee meeschte Grond, firwat eng richteg ausgesinn Route ni Verkéier dréit. Liest de Peer aus dem verbonnenen Zoustand nei, amplaz eng Adress aus enger aler Notiz ze kopéieren.

Benotzt route add nëmme fir en Test

Eng direkt Route ass nëtzlech, fir ze beweisen, datt e Prefix funktionéiert, ier dir en permanent maacht. D’Interfaceform vermeit eng Gateway-Sich:

sudo route -n add -net 10.20.0.0/16 -interface utun4

D’Route verschwënnt bei der nächster neier Verbindung a hänkt vun der Interface-Nummer of, déi haut existéiert. Dat mécht se zu enger Diagnos, net zu enger Ausrollung. Wann den Test funktionéiert an d’servicegebonne Route net, vergläicht als éischt de Gateway-Wäert; dat ass d’Feld, dat am dackste falsch ass.

Sidd virsiichteg mat Rot, deen d’Standardroute vun der VPN ersetzt, fir Split-Verhalen ze forcéieren. En Client, deen en vollt Tunnel forcéiert, kann seng Routen no enger neier Verbindung oder enger Politik-Aktualiséierung nei installéieren, sou datt d’manuell Ännerung roueg réckgängeg gemaach gëtt. E puer privat Prefixe sinn e Routingproblem; de ganze Internetverkéier lokal ze halen géint eng Volltunnel-Politik ass eng Entscheedung op der Serversäit.

Wielt en Hook nëmmen, wann d’Adress verhandelt gëtt

Fir PPP-baséiert Verbindungen wéi L2TP, féiert macOS /etc/ppp/ip-up aus, soubal d’Verbindung steet. D’Skript kritt den Interface-Numm an déi verhandelt lokal an entfernt Adressen, sou datt et eng Route ka bäisetzen, déi vum Peer ofhänkt, deen de Server zougewisen huet. Dat ass genee de Fall, deen eng fest Service-Route net ausdrécke kann.

IKEv2 an Hiersteller-Clients benotzen deen PPP-Wee vläicht guer net, wat bedeit, datt d’Skript déi ganz Sëtzung ka schweigen. Wann dat geschitt, ass eng launchd-Aufgab, déi scutil --nc status frot an op eng Zoustandsännerung reagéiert, dee gläichwäertege Mechanismus, mat enger klenger Verspéidung.

Wéi ee Hook dir och benotzt, maacht en idempotent a loosst en nëmmen d’Routen ewechhuelen, déi en selwer erstallt huet. En Skript, dat all Route läscht, déi den Tunnel ernimmt, wäert um Enn déi Route läschen, déi de VPN-Server erreechbar hält, an d’Verbindung fällt, soubal et geléngt.

Schléisst of, andeems dir d’privat Zil, normal Browsen an en Neiverbindungs- oder Schlofzyklus préift. Duerno ënnersicht scutil --dns, well d’Nimm-Aufléisung eng separat Politik ass an eng funktionéierend Route net beweist, datt déi privat Nimm opgeléist ginn.

Ähnlech Artikelen