Blijvende rûtes foar in Mac-VPN: networksetup of in ferbiningshook?
In rûte dy’t nei elke werferbining yntypd wurdt, is gjin belied. Beslis oft it foarheaksel by de VPN-tsjinst, by in tydlike test of by in hook foar adressen heart dy’t pas nei de ûnderhanneling bekend binne.
In rûte dy’t nei elke ferbining yntypd wurdt, lost it momint op en net de wike. Op macOS is de duorsume kar meastentiids in foarheaksel dat by de VPN-tsjinst bewarre wurdt, om’t de tsjinst it by elke ferbining op ’e nij ynstallearret en it fuorthellet as de tsjinst del is. De alternativen binne in tydlike route add foar testen en in ferbiningshook foar adressen dy’t pas nei de ûnderhanneling bekend binne.
Beslis oft de rûte by de tsjinst of by de sesje heart
Freegje wêr’t it foarheaksel fan ôfhinklik is. As it in fêst privee netwurk efter in native VPN-tsjinst is, heart de rûte by dy tsjinst. As it ôfhinklik is fan in peer-adres dat by elke ferbining feroaret, kin in hook of in taak dy’t troch de status oanstjoerd wurdt de bettere eigner wêze. As jo allinnich in paad foar de folgjende fiif minuten kontrolearje, is in tydlike rûte genôch.
De tsjinstbûne rûte hat de skjinste libbenssyklus. It ferskynt mei de tsjinst en ferdwynt as de tsjinst net ferbûn is, sadat it de tunnel net oerlibje kin dêr’t it nei wiist. Dy eigenskip is mear wurdich as it gemak fan in ienrigelich kommando.
In sesjebûne rûte heart by de ynterface, en dat nûmer feroaret sûnder warskôging. In werferbining kin de tunnel in oare utun-namme jaan as de foarige sesje brûkte, wat in hardkodearre kommando feroaret yn in rûte dy’t nei neat wiist of, slimmer, nei in oare tunnel.
Lês de hjoeddeiske rûte- en tsjinststatus
Begjin mei de nammen dy’t it systeem eins brûkt. De tsjinstnamme yn Netwurkynstellingen is de identifier foar de kommando’s hjirûnder, en de hjoeddeiske rûtetabel lit sjen wat de ferbûne klant ynstallearre hat. Lês beide wylst de tunnel oan is.
scutil --nc list
networksetup -listnetworkserviceorder
netstat -rn | head -30
route get 10.20.5.5
Dy syktocht lit sjen hokker gateway en ynterface de kernel op dit stuit foar dit adres kieze soe. As er al de tunnel kiest, is it foarheaksel dekt en soe in nije rûte oerstallich wêze. As er de lokale router kiest, mist de tunnel dat foarheaksel.
Notearje it peer-adres wylst jo ferbûn binne. It wurdt de gatewaywearde yn de tsjinstbûne rûte, en it is meastentiids de bestimming dy’t foar de standertrûte fan de tunnel yn netstat -rn sjen litten wurdt.
Bewarje it foarheaksel mei networksetup
It ark networksetup heakket ekstra rûtes oan in netwurktsjinst. Foar in tsjinst mei de namme OfficeVPN en in privee foarheaksel dat troch de tunnelpeer berikt wurdt, is de foarm:
sudo networksetup -setadditionalroutes OfficeVPN 10.20.0.0 255.255.0.0 10.8.0.6
networksetup -getadditionalroutes OfficeVPN
Elke trijeheid nei de tsjinstnamme jout in bestimming, syn netmasker en de tunnelpeer as gateway. Ien oprop kin ferskate foarheaksels drage, en in lege oprop wisket de bewarre list. De lêzer is de ferifikaasjestap; as de list leech is, is de set net tapast op de tsjinst dy’t jo tinke.
De gateway moat de tunnelpeer wêze, net de fysike router. In rûte dy’t de lokale gateway neamt, stjoert it privee foarheaksel troch de fysike ynterface, wat de oarspronklike flater mei ekstra stappen is. In ferâldere peer is de meast foarkommende reden wêrom’t in korrekt útsjende rûte nea ferkear draacht. Lês de peer op ’e nij út de ferbûne status ynstee fan in adres út in âlde notysje te kopiearjen.
Brûk route add allinnich foar in test
In direkte rûte is nuttich om te bewizen dat in foarheaksel wurket foardat jo it permanint meitsje. De ynterfacefoarm foarkomt in gateway-syktocht:
sudo route -n add -net 10.20.0.0/16 -interface utun4
De rûte ferdwynt by de folgjende werferbining en hinget ôf fan it ynterfacenûmer dat hjoed bestiet. Dat makket it in diagnostyk, gjin útrulling. As de test wurket en de tsjinstbûne rûte net, fergelykje dan earst de gatewaywearde; dat is it fjild dat it meast ferkeard is.
Wês foarsichtich mei advizen dy’t de standertrûte fan de VPN ferfange om splitsgedrach ôf te twingen. In klant dy’t in folsleine tunnel ôftwingt, kin syn rûtes nei in werferbining of in beliedsferfarsking op ’e nij ynstallearje, sadat de hânmjittige feroaring stil tebekdraaid wurdt. In hantsjefol privee foarheaksels is in routingprobleem; alle ynternetferkear lokaal hâlde tsjin in folsleine-tunnelbelied is in beslút oan de serverside.
Kies in hook allinnich as it adres ûnderhannele wurdt
Foar PPP-basearre keppelings lykas L2TP, fiert macOS /etc/ppp/ip-up út sadree’t de keppeling fêstige is. It skript krijt de ynterfacenamme en de ûnderhannele lokale en fiere adressen, sadat it in rûte tafoegje kin dy’t ôfhinklik is fan de peer dy’t de server tawiisd hat. Dat is krekt it gefal dat in fêste tsjinst-rûte net útdrukke kin.
IKEv2 en leveransiersklanten brûke dy PPP-paad miskien hielendal net, wat betsjut dat it skript de hiele sesje stil bliuwe kin. As dat bart, is in launchd-taak dy’t scutil --nc status befreget en op in statusferoaring reagearret it ekwivalinte meganisme, mei in lytse fertraging.
Hokker hook jo ek brûke, meitsje it idempotint en lit it allinnich rûtes fuorthelje dy’t it sels oanmakke hat. In skript dat elke rûte wiske dy’t de tunnel neamt, sil úteinlik de rûte wiskje dy’t de VPN-server berikber hâldt, en de ferbining sil falle sadree’t it slagget.
Einigje mei it kontrolearjen fan de privee bestimming, gewoan surfen en in werferbinings- of sliepsyklus. Besjoch dan scutil --dns, om’t nammerissing in apart belied is en in wurkjende rûte net bewist dat de privee nammen oplost wurde.