A további Mac VPN-útvonalakhoz tulajdonos kell, nem bejelentkezési szkript
A bejelentkezéskor egyszer hozzáadott útvonal nem újracsatlakozási szabály. Adjon tulajdonost a távoli előtagoknak, és döntse el, hogyan jelennek meg, változnak és tűnnek el azzal a kapcsolattal.
Egy privát előtag elérése VPN-en keresztül időtartammal bíró követelmény: addig áll fenn, amíg az a kapcsolat használható, és akkor szűnik meg, amikor a kapcsolat megszűnik. Egy bejelentkezési szkript ezt nem tudja kifejezni, mert a bejelentkezés és az alagút felépülése különböző pillanatok, és a bejelentkezéskor létező alagút nem feltétlenül az, amely egy perccel később a forgalmat viszi. Az első döntés nem az, melyik parancsot kell futtatni. Hanem az, melyik komponens birtokolja az előtagot.
Az előtagnak tulajdonos kell, nem pillanat
Kezdje azzal, hogy a követelményt alanyos mondatként írja le: érje el 10.77.0.0/24 az Office VPN-en keresztül, amíg az a kapcsolat fennáll. Ez a mondat megnevezi az előtagot, a kapcsolatot és a feltételt, és azonnal kizár két népszerű helyettesítőt: egy bejelentkezési hookot és egy interfésznevet, például ppp0 vagy utun2.
Az interfészneveket futásidőben osztják ki, és nem stabilak az újracsatlakozások között. Egy hook, amely a múlt héten látott névre illeszkedik, vagy nem fut le, vagy valaki más interfészére fut le. Mindkét eredmény útválasztási hibának látszik, nem annak az elavult feltevésnek, ami valójában. Ugyanez a kifogás vonatkozik minden olyan szkriptre, amely olyan névhez kötődik, amely csak egy adott alagút fennállása alatt létezik.
Használjon támogatott útvonal-szándék forrást
Az átjáró, egy felügyelt profil vagy a birtokló kliens dokumentált útvonalmechanizmusa a helyes hely, amikor az a mechanizmus ki tudja fejezni a követelményt. Melyik érvényes, a protokolltól és a szolgáltatótól függ, és a kulcsok nem utaznak közöttük, ezért egy profilt konfiguráló érték OpenVPN semmit nem mond a natív L2TP vagy IKEv2 kliensről.
| 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 |
A csomagalagutak fejlesztőinek az Apple IPv4-es alagútbeállításai kifejezetten feltárják a belefoglalt és kizárt útvonalakat, és az IPv6-nak is megvan a maga megfelelője. Ezek olyan API-k, amelyeket a szolgáltató használ, nem bizonyíték arra, hogy minden natív VPN-panel tetszőleges útvonallistát kínál a rendszergazdának. Ha a jelenlegi kombináció nem tudja kifejezni a szükséges előtagokat, a következő lépés az üzemeltető által támogatott konfigurációs útvonal, nem egy másik alkalmazás, amelyet abban a reményben telepítenek, hogy jobban viselkedik.
Az élettartam magában foglalja a tisztítást
Néha egy külső segéd valóban szükséges, és ilyenkor az «add hozzá az útvonalat» a munkájának legkisebb része. Tudnia kell, melyik kapcsolatot szolgálja ki, és az a kapcsolat melyik interfészt használja, meg kell várnia, amíg a releváns hálózati állapot megnyugszik, idempotensnek kell maradnia, ha kétszer egymás után fut, és semmit nem szabad eltakarítania, amit nem ő telepített.
Az utolsó kikötés az, amelyik fáj. Egy segéd, amely minden, az irodai előtaghoz illeszkedő útvonalat töröl, előbb vagy utóbb törölni fog egy olyan útvonalat, amelyet nem ő adott hozzá. Az ebből eredő kiesést a VPN-kliensre fogják, mert a kliens az a rész, amelyet a felhasználó lát. Eldönteni, mit birtokol egy segéd, mielőtt megírja, olcsóbb, mint utólag elmagyarázni, miért hagyott fel a válaszadással egy helyi alhálózat.
Az újracsatlakozási verseny
Képzeljen el egy gyors újracsatlakozást. Az A munkamenet leesik, a B munkamenet feljön és telepíti az útvonalát, majd az A késleltetett tisztítása végre lefut. Ha ez a tisztítás előtag szerint távolít el útvonalakat, magával viszi a B érvényes állapotát, és a kapcsolat, amely egy másodperccel ezelőtt működött, most a semmibe irányít.
Ez egy tulajdonosi verseny, és az alvás hozzáadása a szkripthez csak azt változtatja meg, melyik fél nyeri meg. A megoldás az, hogy a tisztítást identitáshoz kössük: hasonlítsa össze az interfészt és a munkamenetet, amelyet a segéd telepített, a még érvényesekkel, és csak egyezés esetén távolítson el.
Mit kell tesztelni, és mit nem tud egy útvonal
Az átvételnek négy átmenetet kell lefednie: az első kapcsolatot, az újracsatlakozást egy másik interfészre, egy sikertelen kapcsolódási kísérletet és a végső bontást. Mindegyik után olvassa le azt az útvonalat, amelyet a rendszer ténylegesen választott egy távoli oldali címhez, ne azt, amelyet várt.
route -n get 10.77.0.5
netstat -rn -f inet
Vegye bele a kellemetlen eseteket is ugyanabba a körbe: IPv6 ott, ahol szükséges, egy helyi előtag, amely átfed a távolival, és magának a nyilvános VPN-végpontnak az útvonala, amelynek működnie kell, amíg az alagút fennáll. Aztán írja le, mi nem egy útvonal. Csomagokat választ ki; nem ad engedélyt a távoli oldalon, és nem hoz létre visszautat, és ezek külön követelmények maradnak külön tulajdonosokkal.
A kívánt eredmény egy előtag, amely minden átmenetben követi a támogatott kapcsolattulajdonosát, nem pedig egy parancs, amely véletlenül egyszer sikerült azon a gépen, ahol megírták.