Dodatne Mac VPN rute trebaju vlasnika, a ne login skriptu
Ruta dodana jednom pri prijavi nije politika ponovnog povezivanja. Dajte udaljenim prefiksima vlasnika i odlučite kako se pojavljuju, mijenjaju i nestaju s tom vezom.
Dostizanje privatnog prefiksa kroz VPN je zahtjev s trajanjem: vrijedi dok je ta veza upotrebljiva, a prestaje kada i veza prestane. Login skripta to ne može izraziti, jer su prijava i podizanje tunela različiti trenuci, a tunel koji postoji pri prijavi možda nije onaj koji nosi promet minutu kasnije. Prva odluka nije koju naredbu pokrenuti, nego koji komponent posjeduje prefiks.
Prefiksu treba vlasnik, a ne trenutak
Počnite tako što ćete zahtjev napisati kao rečenicu sa subjektom: dosegnite 10.77.0.0/24 kroz Office VPN dok je ta veza podignuta. Ta rečenica imenuje prefiks, vezu i uvjet, i odmah isključuje dvije popularne zamjene: login hook i naziv sučelja kao što je ppp0 ili utun2.
Nazivi sučelja dodjeljuju se u vrijeme izvršavanja i nisu stabilni između ponovnih povezivanja. Hook koji odgovara nazivu viđenom prošli tjedan ili neće opaliti, ili će opaliti na tuđe sučelje. Oba ishoda izgledaju kao greška usmjeravanja, a ne kao zastarjela pretpostavka koja jesu. Isti prigovor vrijedi za svaku skriptu vezanu za naziv koji postoji samo dok je podignut jedan određeni tunel.
Koristite podržani izvor namjere rute
Pristupnik, upravljani profil ili dokumentirani mehanizam ruta vlasničkog klijenta pravo je mjesto za to, kad taj mehanizam može izraziti zahtjev. Koji se primjenjuje ovisi o protokolu i pružatelju, a ključevi ne putuju između njih, pa vrijednost koja konfigurira profil OpenVPN ne govori ništa o izvornom L2TP ili IKEv2 klijentu.
| Mechanism | Can carry extra prefixes | Who owns the lifetime |
|---|---|---|
| Gateway-pushed routes | Often, if the gateway is configured for it | The connection |
| Managed profile settings | Depends on the client and profile format | The profile |
| Provider tunnel settings | Yes, as included and excluded routes | The provider process |
| Manual command | Yes, once | Nobody |
Za developere paketnih tunela, Appleove IPv4 postavke tunela izričito izlažu uključene i isključene rute, a IPv6 ima svoj pandan. To su API-ji koje pružatelj koristi, a ne dokaz da svaki izvorni VPN panel administratoru nudi proizvoljan popis ruta. Ako trenutna kombinacija ne može izraziti potrebne prefikse, sljedeći je korak podržani put konfiguracije od operatora, a ne druga aplikacija instalirana u nadi da će se ponašati bolje.
Životni vijek uključuje čišćenje
Vanjski pomoćnik ponekad je doista potreban, i tada je „dodaj rutu“ najmanji dio njegova posla. Mora znati kojoj vezi služi i koje sučelje ta veza koristi, čekati da se relevantno mrežno stanje smiri, ostati idempotentan kad se pokrene dvaput zaredom, i ne počistiti ništa što nije sam instalirao.
Ta posljednja klauzula je ona koja boli. Pomoćnik koji briše svaku rutu koja odgovara uredskom prefiksu prije ili kasnije će obrisati rutu koju nije dodao. Nastali prekid pripisuje se VPN klijentu, jer je klijent dio koji korisnik vidi. Odlučiti što pomoćnik posjeduje prije nego ga napišete jeftinije je od naknadnog objašnjavanja zašto je lokalna podmreža prestala odgovarati.
Utrka pri ponovnom povezivanju
Zamislite brzo ponovno povezivanje. Sesija A pada, sesija B se diže i instalira svoju rutu, a zatim se konačno izvrši A-ino odgođeno čišćenje. Ako to čišćenje uklanja rute po prefiksu, odnosi sa sobom B-ino valjano stanje, i veza koja je radila prije sekunde sada usmjerava u ništa.
To je utrka vlasništva, a dodavanje pauze u skriptu samo mijenja koja strana pobjeđuje. Rješenje je uvjetovati čišćenje identitetom: usporedite sučelje i sesiju koje je pomoćnik instalirao s onima koje su još aktualne, i uklanjajte samo pri podudaranju.
Što testirati i što ruta ne može
Prihvaćanje mora pokriti četiri prijelaza: prvu vezu, ponovno povezivanje na drugo sučelje, neuspjeli pokušaj povezivanja i konačno odspajanje. Nakon svakog pročitajte rutu koju je sustav stvarno odabrao za adresu na udaljenoj strani, a ne onu koju ste očekivali.
route -n get 10.77.0.5
netstat -rn -f inet
Uključite i nezgodne slučajeve u isti prolaz: IPv6 gdje je potreban, lokalni prefiks koji se preklapa s udaljenim, i rutu prema samoj javnoj VPN krajnjoj točki, koja mora nastaviti raditi dok je tunel podignut. Zatim zapišite što ruta nije. Ona odabire pakete; ne daje dopuštenje na udaljenoj strani i ne stvara povratni put, i to ostaju odvojeni zahtjevi s odvojenim vlasnicima.
Ishod koji želite je prefiks koji slijedi svog podržanog vlasnika veze kroz svaki prijelaz, a ne naredba koja je slučajno jednom uspjela na stroju na kojem je napisana.