Iga ühenduse järel sisestatud marsruut lahendab hetke, mitte nädalat. Macis on püsiv valik tavaliselt VPN-teenuse juurde salvestatud eesliide, sest teenus paigaldab selle igal ühendusel uuesti ja eemaldab, kui teenus on maas. Alternatiivid on ajutine route add testimiseks ja ühenduse hook aadresside jaoks, mis selguvad alles pärast läbirääkimist.

Otsustage, kas marsruut kuulub teenusele või sessioonile

Küsige, millest eesliide sõltub. Kui see on kohaliku VPN-teenuse taga olev fikseeritud privaatvõrk, kuulub marsruut sellele teenusele. Kui see sõltub partneri aadressist, mis muutub igal ühendusel, võib hook või olekust juhitav töö olla parem omanik. Kui kontrollite ainult rada järgmise viie minuti jooksul, piisab ajutisest marsruudist.

Teenusega seotud marsruudil on puhtaim elutsükkel. See ilmub koos teenusega ja kaob, kui teenus ei ole ühendatud, seega ei saa see üle elada tunnelit, millele see osutab. See omadus on väärt rohkem kui üherealise käsu mugavus.

Sessioga seotud marsruut kuulub liidesele ja see number muutub ilma teatamata. Taasühendus võib anda tunnelile teistsuguse utun-nime kui eelmine sessioon, mis muudab kõvakodeeritud käsu marsruudiks, mis ei osuta millelegi või, hullem, teisele tunnelile.

Lugege praegust marsruudi ja teenuse olekut

Alustage nimedest, mida süsteem tegelikult kasutab. Võrguseadete teenuse nimi on allolevate käskude identifikaator ja praegune marsruuditabel näitab, mida ühendatud klient paigaldas. Lugege mõlemat, kui tunnel on üleval.

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

See otsing näitab, millise lüüsi ja liidese tuum sellele aadressile praegu valiks. Kui see valib juba tunneli, on eesliide kaetud ja uus marsruut oleks üleliigne. Kui see valib kohaliku ruuteri, puudub tunnelil see eesliide.

Pange ühendatud olles tähele partneri aadressi. Sellest saab lüüsi väärtus teenusega seotud marsruudil ja tavaliselt on see sihtkoht, mida näidatakse tunneli vaikemarsruudil käsus netstat -rn.

Salvestage eesliide networksetupiga

Tööriist networksetup kinnitab võrguteenusele täiendavaid marsruute. Teenuse OfficeVPN ja tunnelipartneri kaudu saavutatava privaatse eesliite jaoks on vorm:

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

Iga kolmik teenuse nime järel annab sihtkoha, selle võrgumaski ja tunnelipartneri lüüsina. Üks kutse võib kanda mitut eesliidet ja tühi kutse kustutab salvestatud loendi. Lugeja on kontrollisamm; kui loend on tühi, ei rakendunud komplekt teenusele, mida te arvate.

Lüüs peab olema tunnelipartner, mitte füüsiline ruuter. Marsruut, mis nimetab kohalikku lüüsi, saadab privaatse eesliite füüsilisest liidesest välja, mis on algne viga lisasammudega. Vananenud partner on kõige tavalisem põhjus, miks õigelt näiv marsruut ei kanna kunagi liiklust. Lugege partner uuesti ühendatud olekust, selle asemel et kopeerida aadressi vanast märkmest.

Kasutage route add ainult testiks

Otsene marsruut on kasulik tõestamaks, et eesliide töötab, enne kui teete selle püsivaks. Liidesevorm väldib lüüsiotsingut:

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

Marsruut kaob järgmisel taasühendusel ja sõltub liidese numbrist, mis täna olemas on. See teeb sellest diagnostika, mitte juurutuse. Kui test töötab ja teenusega seotud marsruut mitte, võrrelge esmalt lüüsi väärtust; see on väli, mis on kõige sagedamini vale.

Olge ettevaatlik nõuannetega, mis asendavad VPN-i vaikemarsruudi, et sundida poolitamist. Klient, mis rakendab täistunnelit, võib taasühenduse või poliitika värskendamise järel oma marsruudid uuesti paigaldada, nii et käsitsi tehtud muudatus tühistatakse vaikselt. Üksikud privaatsed eesliited on marsruutimise probleem; kogu internetiliikluse lokaalsena hoidmine täistunneli poliitika vastu on serveripoolne otsus.

Valige hook ainult siis, kui aadress on läbi räägitud

PPP-põhiste linkide puhul, näiteks L2TP, käivitab macOS /etc/ppp/ip-up, kui link on loodud. Skript saab liidese nime ning läbiräägitud kohaliku ja kaugema aadressi, seega saab lisada marsruudi, mis sõltub serveri määratud partnerist. See on täpselt juhtum, mida fikseeritud teenusemarsruut ei suuda väljendada.

IKEv2 ja tootjate kliendid ei pruugi seda PPP-teed üldse kasutada, mis tähendab, et skript võib kogu sessiooni vaikida. Kui nii juhtub, on samaväärne mehhanism launchd-töö, mis küsib scutil --nc status ja reageerib oleku muutusele, väikese viivitusega.

Ükskõik millist hooki kasutate, muutke see idempotentseks ja laske sellel eemaldada ainult marsruudid, mille see ise lõi. Skript, mis kustutab iga marsruudi, mis mainib tunnelit, kustutab lõpuks marsruudi, mis hoiab VPN-serveri kättesaadavana, ja ühendus katkeb niipea, kui see õnnestub.

Lõpetage privaatse sihtkoha, tavapärase sirvimise ning taasühenduse või une tsükli kontrollimisega. Seejärel uurige scutil --dns, sest nimede lahendamine on eraldi poliitika ja töötav marsruut ei tõesta, et privaatsed nimed lahenevad.

Seotud artiklid