Dosiahnuť súkromný prefix cez VPN je požiadavka s trvaním: platí, kým je to spojenie použiteľné, a končí sa, keď sa spojenie skončí. Prihlasovací skript to nevie vyjadriť, pretože prihlásenie a zdvihnutie tunela sú rôzne okamihy a tunel, ktorý existuje pri prihlásení, nemusí byť ten, ktorý o minútu nesie prevádzku. Prvé rozhodnutie nie je, ktorý príkaz spustiť. Je to, ktorý komponent prefix vlastní.

Prefix potrebuje vlastníka, nie okamih

Začnite tým, že požiadavku napíšete ako vetu s podmetom: dosiahnite 10.77.0.0/24 cez Office VPN, kým je to spojenie zdvihnuté. Tá veta pomenúva prefix, spojenie aj podmienku a hneď vylučuje dve obľúbené náhrady: prihlasovací hook a názov rozhrania, ako je ppp0 alebo utun2.

Názvy rozhraní sa prideľujú za behu a nie sú stabilné medzi opätovnými pripojeniami. Hook, ktorý zodpovedá názvu videnému minulý týždeň, buď nezaberie, alebo zaberie proti cudziemu rozhraniu. Oba výsledky vyzerajú ako chyba smerovania, nie ako zastaraný predpoklad, ktorým sú. Rovnaká námietka platí pre každý skript naviazaný na názov, ktorý existuje len dovtedy, kým je zdvihnutý jeden konkrétny tunel.

Použite podporovaný zdroj zámeru trasy

Brána, spravovaný profil alebo dokumentovaný mechanizmus trás vlastníckeho klienta je správne miesto, kedykoľvek ten mechanizmus dokáže požiadavku vyjadriť. Ktorý platí, závisí od protokolu a poskytovateľa a kľúče medzi nimi necestujú, takže hodnota, ktorá konfiguruje profil OpenVPN nič nehovorí o natívnom klientovi L2TP alebo IKEv2.

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

Pre vývojárov paketových tunelov nastavenia tunela IPv4 od Apple výslovne sprístupňujú zahrnuté a vylúčené trasy a IPv6 má svoj pendant. To sú API, ktoré poskytovateľ používa, nie dôkaz, že každý natívny panel VPN ponúka správcovi ľubovoľný zoznam trás. Ak súčasná kombinácia nevie vyjadriť potrebné prefixy, ďalším krokom je podporovaná cesta konfigurácie od operátora, nie iná aplikácia nainštalovaná v nádeji, že sa bude správať lepšie.

Životnosť zahŕňa čistenie

Niekedy je externý pomocník naozaj potrebný, a vtedy je „pridaj trasu“ najmenšou časťou jeho práce. Musí vedieť, ktorému spojeniu slúži a ktoré rozhranie toto spojenie používa, počkať, kým sa príslušný stav siete ustáli, zostať idempotentný pri dvoch spusteniach za sebou, a neupratať nič, čo sám nenainštaloval.

Posledná klauzula je tá, ktorá bolí. Pomocník, ktorý vymaže každú trasu zodpovedajúcu kancelárskemu prefixu, skôr či neskôr vymaže trasu, ktorú nepridal. Výsledný výpadok sa zvalí na klienta VPN, pretože klient je časť, ktorú používateľ vidí. Rozhodnúť, čo pomocník vlastní, predtým ako ho napíšete, je lacnejšie než potom vysvetľovať, prečo miestna podsiet prestala odpovedať.

Pretek pri opätovnom pripojení

Predstavte si rýchle opätovné pripojenie. Relácia A padne, relácia B naskočí a nainštaluje svoju trasu, a potom sa konečne spustí oneskorené čistenie A. Ak to čistenie odstraňuje trasy podľa prefixu, vezme so sebou platný stav B, a spojenie, ktoré pred sekundou fungovalo, teraz smeruje do prázdna.

Toto je pretek o vlastníctvo a pridanie spánku do skriptu len mení, ktorá strana ho vyhrá. Riešením je podmieniť čistenie identitou: porovnajte rozhranie a reláciu, ktoré pomocník nainštaloval, s tými, ktoré sú stále aktuálne, a odstraňujte len pri zhode.

Čo testovať a čo trasa nevie

Prijatie musí pokryť štyri prechody: prvé spojenie, opätovné pripojenie na iné rozhranie, neúspešný pokus o pripojenie a záverečné odpojenie. Po každom z nich si prečítajte trasu, ktorú systém skutočne zvolil pre adresu na vzdialenej strane, nie tú, ktorú ste očakávali.

route -n get 10.77.0.5
netstat -rn -f inet

Zahrňte aj nepríjemné prípady v tom istom prechode: IPv6 tam, kde je potrebný, miestny prefix, ktorý sa prekrýva so vzdialeným, a trasu k samotnému verejnému koncovému bodu VPN, ktorá musí fungovať, kým je tunel zdvihnutý. Potom si zapíšte, čo trasa nie je. Vyberá pakety; neudeľuje povolenie na vzdialenej strane a nevytvára spiatočnú cestu, a to zostávajú oddelené požiadavky s oddelenými vlastníkmi.

Výsledok, ktorý chcete, je prefix, ktorý nasleduje svojho podporovaného vlastníka spojenia cez každý prechod, a nie príkaz, ktorý raz náhodou uspel na stroji, kde bol napísaný.

Súvisiace články