Privaatse eesliidese jõudmine VPN-i kaudu on nõue, millel on kestus: see kehtib seni, kuni ühendus on kasutatav, ja lõpeb siis, kui ühendus lõpeb. Sisselogimisskript ei suuda seda väljendada, sest sisselogimine ja tunneli ülesehitamine on erinevad hetked ning sisselogimisel olemas olev tunnel ei pruugi olla see, mis kannab liiklust minut hiljem. Esimene otsus ei ole see, millist käsku käivitada. See on see, milline komponent eesliidest omab.

Eesliides vajab omanikku, mitte hetke

Alusta nõude kirjutamist subjektiga lausena: jõua 10.77.0.0/24 läbi kontori VPN-i, kuni see ühendus on üleval. See lause nimetab eesliidese, ühenduse ja tingimuse ning välistab kohe kaks populaarset asendajat: sisselogimiskonksu ja liidese nime nagu ppp0 või utun2.

Liidesenimed määratakse käitusajal ja ei ole ühenduste vahel stabiilsed. Konks, mis vastab eelmisel nädalal nähtud nimele, kas ei käivitu või käivitub kellegi teise liidese vastu. Mõlemad tulemused näivad marsruutimisveana, mitte aegunud eeldusena, millega on tegu. Sama vastuväide kehtib iga skripti kohta, mis on seotud nimega, mis eksisteerib ainult ühe konkreetse tunneli ülevaloleku ajal.

Kasuta toetatud marsruudikavatsuse allikat

Lüüs, hallatav profiil või omava kliendi dokumenteeritud marsruudimehhanism on õige koht, kui see mehhanism suudab nõuet väljendada. Milline neist kehtib, sõltub protokollist ja teenusepakkujast ning võtmed ei liigu nende vahel, seega väärtus, mis seadistab profiili OpenVPN ei ütle midagi native L2TP või IKEv2 kliendi kohta.

MechanismCan carry extra prefixesWho owns the lifetime
Gateway-pushed routesOften, if the gateway is configured for itThe connection
Managed profile settingsDepends on the client and profile formatThe profile
Provider tunnel settingsYes, as included and excluded routesThe provider process
Manual commandYes, onceNobody

Pakettunnelite arendajatele toovad Apple'i IPv4 tunneli seaded kaasatud ja välistatud marsruudid selgesõnaliselt välja ning IPv6-l on oma vaste. Need on API-d, mida teenusepakkuja kasutab, mitte tõestus, et iga native VPN-paneel pakub administraatorile suvalist marsruudinimekirja. Kui praegune kombinatsioon ei suuda vajalikke eesliideseid väljendada, on järgmine samm operaatori toetatud konfiguratsioonitee, mitte teine rakendus, mis paigaldatakse lootuses, et see käitub paremini.

Eluiga hõlmab puhastamist

Mõnikord on väline abiline tõesti vajalik, ja siis on «lisa marsruut» selle töö väikseim osa. See peab teadma, millist ühendust see teenindab ja millist liidest see ühendus kasutab, ootama, kuni asjakohane võrguseisund rahuneb, jääma idempotentseks, kui see käivitub kaks korda järjest, ja mitte puhastama midagi, mida see ise ei paigaldanud.

Viimane klausel on see, mis teeb haiget. Abiline, mis kustutab iga kontori eesliidesele vastava marsruudi, kustutab varem või hiljem marsruudi, mida see ei lisanud. Sellest tulenev katkestus pannakse VPN-kliendi süüks, sest klient on osa, mida kasutaja näeb. Enne kirjutamist otsustada, mida abiline omab, on odavam kui hiljem selgitada, miks kohalik alamvõrk enam ei vastanud.

Taasühenduse võidujooks

Kujuta ette kiiret taasühendust. Seanss A langeb, seanss B tõuseb ja paigaldab oma marsruudi, seejärel käivitub lõpuks A viivitatud puhastus. Kui see puhastus eemaldab marsruute eesliidese järgi, võtab see kaasa B kehtiva oleku ja ühendus, mis töötas sekund tagasi, marsruudib nüüd mitte kuhugi.

See on omandi võidujooks ja skripti une lisamine muudab ainult seda, kumb pool selle võidab. Lahendus on teha puhastamine identiteedist sõltuvaks: võrdle liidest ja seanssi, mille abiline paigaldas, nendega, mis on veel kehtivad, ja eemalda ainult kokkulangemisel.

Mida testida ja mida marsruut teha ei saa

Vastuvõtt peab katma neli üleminekut: esimene ühendus, taasühendus teisele liidesele, ebaõnnestunud ühenduskatse ja lõplik katkestus. Pärast igaüht loe marsruut, mille süsteem tegelikult valis kaugpoolse aadressi jaoks, mitte see, mida sa ootasid.

route -n get 10.77.0.5
netstat -rn -f inet

Lisa samasse ringi ka ebamugavad juhtumid: IPv6 seal, kus seda nõutakse, kohalik eesliides, mis kattub kaugse eesliidesega, ja marsruut avaliku VPN-lõpp-punkti enda juurde, mis peab tunneli ülevaloleku ajal edasi töötama. Seejärel kirjuta üles, mis marsruut ei ole. See valib pakette; see ei anna kaugpoolel luba ega loo tagasiteed, ja need jäävad eraldi nõueteks eraldi omanikega.

Tulemus, mida soovid, on eesliides, mis järgib oma toetatud ühenduse omanikku igas üleminekus, mitte käsk, mis juhuslikult üks kord õnnestus masinas, kuhu see kirjutati.

Seotud artiklid