Noturīgi maršruti Mac VPN: networksetup vai savienojuma hook?
Maršruts, kas tiek ievadīts pēc katras atkārtotas pievienošanās, nav politika. Izlemiet, vai prefikss pieder VPN pakalpojumam, pagaidu testam vai hook atkarībā no adresēm, kas zināmas tikai pēc sarunām.
Maršruts, kas tiek ievadīts pēc katras savienojuma reizes, atrisina mirklis, nevis nedēļu. macOS gadījumā noturīgā izvēle parasti ir prefikss, kas saglabāts kopā ar VPN pakalpojumu, jo pakalpojums to atkārtoti instalē katrā savienojumā un noņem, kad pakalpojums ir izslēgts. Alternatīvas ir pagaidu route add testēšanai un savienojuma hook adresēm, kas zināmas tikai pēc sarunām.
Izlemiet, vai maršruts pieder pakalpojumam vai sesijai
Jautājiet, no kā atkarīgs prefikss. Ja tas ir fiksēts privāts tīkls aiz vietējā VPN pakalpojuma, maršruts pieder šim pakalpojumam. Ja tas atkarīgs no partnera adreses, kas mainās katrā savienojumā, hook vai stāvokļa vadīts darbs var būt labāks īpašnieks. Ja jūs tikai pārbaudāt ceļu nākamās piecas minūtes, pagaidu maršruts ir pietiekams.
Pakalpojumam piesaistītajam maršrutam ir vistīrākais dzīves cikls. Tas parādās kopā ar pakalpojumu un pazūd, kad pakalpojums nav savienots, tāpēc tas nevar pārdzīvot tuneli, uz kuru norāda. Šī īpašība ir vērtīgāka par vienas rindas komandas ērtību.
Sesijai piesaistītais maršruts pieder saskarnei, un šis numurs mainās bez brīdinājuma. Atkārtota pievienošanās var piešķirt tunelim citu utun nosaukumu nekā iepriekšējā sesija, kas cieti kodētu komandu pārvērš maršrutā, kas nenorāda nekur vai, sliktāk, uz citu tuneli.
Izlasiet pašreizējo maršruta un pakalpojuma stāvokli
Sāciet ar nosaukumiem, ko sistēma faktiski izmanto. Pakalpojuma nosaukums tīkla iestatījumos ir tālāk minēto komandu identifikators, un pašreizējā maršrutu tabula rāda, ko instalējis pievienotais klients. Lasiet abus, kamēr tunelis ir aktīvs.
scutil --nc list
networksetup -listnetworkserviceorder
netstat -rn | head -30
route get 10.20.5.5
Šī meklēšana parāda, kuru vārteju un saskarni kodols izvēlētos šai adresei šajā mirklī. Ja tas jau izvēlas tuneli, prefikss ir pārklāts un jauns maršruts būtu lieks. Ja tas izvēlas vietējo maršrutētāju, tunelim trūkst šī prefiksa.
Pievienošanās laikā pierakstiet partnera adresi. Tā kļūst par vārtejas vērtību pakalpojumam piesaistītajā maršrutā, un parasti tā ir galamērķis, kas parādīts tuneļa noklusējuma maršrutam komandā netstat -rn.
Saglabājiet prefiksu ar networksetup
Rīks networksetup pievieno papildu maršrutus tīkla pakalpojumam. Pakalpojumam ar nosaukumu OfficeVPN un privātam prefiksam, kas sasniedzams caur tuneļa partneri, forma ir:
sudo networksetup -setadditionalroutes OfficeVPN 10.20.0.0 255.255.0.0 10.8.0.6
networksetup -getadditionalroutes OfficeVPN
Katrs trijnieks pēc pakalpojuma nosaukuma dod galamērķi, tā tīkla masku un tuneļa partneri kā vārteju. Viens izsaukums var nest vairākus prefiksus, un tukšs izsaukums notīra saglabāto sarakstu. Lasītājs ir pārbaudes solis; ja saraksts ir tukšs, iestatījums netika piemērots pakalpojumam, ar ko jūs domājat.
Vārtejai jābūt tuneļa partnerim, nevis fiziskajam maršrutētājam. Maršruts, kas nosauc vietējo vārteju, sūta privāto prefiksu pa fizisko saskarni uz āru, un tā ir sākotnējā kļūme ar papildu soļiem. Novecojis partneris ir visbiežākais iemesls, kāpēc pareizi izskatāms maršruts nekad nepārvadā trafiku. Lasi partneri vēlreiz no pievienotā stāvokļa, nevis kopē adresi no vecas piezīmes.
Izmantojiet route add tikai testam
Tiešs maršruts ir noderīgs, lai pierādītu, ka prefikss darbojas, pirms padarāt to pastāvīgu. Saskarnes forma izvairās no vārtejas meklēšanas:
sudo route -n add -net 10.20.0.0/16 -interface utun4
Maršruts pazūd nākamajā atkārtotajā pievienošanās reizē un ir atkarīgs no saskarnes numura, kas šodien pastāv. Tas padara to par diagnostiku, nevis ieviešanu. Ja tests darbojas un pakalpojumam piesaistītais maršruts ne, vispirms salīdziniet vārtejas vērtību; tas ir lauks, kas visbiežāk ir nepareizs.
Esiet uzmanīgi ar padomiem, kas aizstāj VPN noklusējuma maršrutu, lai uzspiestu sadalīšanu. Klients, kas uzspiež pilnu tuneli, var atkārtoti instalēt savus maršrutus pēc atkārtotas pievienošanās vai politikas atjaunināšanas, tāpēc manuālā izmaiņa tiek klusi atcelta. Daži privāti prefiksi ir maršrutēšanas problēma; turēt visu interneta trafiku lokāli pret pilna tuneļa politiku ir lēmums servera pusē.
Izvēlieties hook tikai tad, kad adrese tiek apspriesta
PPP balstītiem savienojumiem, piemēram, L2TP, macOS izpilda /etc/ppp/ip-up, tiklīdz savienojums ir izveidots. Skripts saņem saskarnes nosaukumu un apspriestās vietējo un attālo adreses, tāpēc tas var pievienot maršrutu, kas atkarīgs no servera piešķirtā partnera. Tas ir tieši tas gadījums, ko fiksēts pakalpojuma maršruts nevar izteikt.
IKEv2 un ražotāju klienti var vispār neizmantot šo PPP ceļu, kas nozīmē, ka skripts var klusēt visu sesiju. Kad tas notiek, launchd uzdevums, kas vaicā scutil --nc status un reaģē uz stāvokļa maiņu, ir līdzvērtīgs mehānisms ar nelielu aizkavi.
Lai kādu hook jūs izmantotu, padariet to idempotentu un ļaujiet tam noņemt tikai paša izveidotos maršrutus. Skripts, kas dzēš katru maršrutu, kurā minēts tunelis, galu galā dzēsīs maršrutu, kas uztur VPN serveri sasniedzamu, un savienojums kritīs, tiklīdz tas izdosies.
Pabeidziet, pārbaudot privāto galamērķi, parasto pārlūkošanu un atkārtotas pievienošanās vai miega ciklu. Pēc tam pārbaudiet scutil --dns, jo nosaukumu atrisināšana ir atsevišķa politika, un strādājošs maršruts nepierāda, ka privātie nosaukumi tiek atrisināti.