Notebook sa pripojí k firemnej VPN a všetko ho nasleduje, vrátane webovej stránky tlačiarne a jednej intranetovej siete, ktorá odpovedá len v miestnej sieti. Ručne vytvorená trasa to napraví na hodinu, potom spojenie padne, vráti sa a výnimka je preč. S tunelom nie je nič zlé: Windows drží jedinú smerovaciu tabuľku a adaptér VPN pri každom pripojení prepisuje svoj podiel v tejto tabuľke. Prežije len to, čo žije mimo vlastných záznamov adaptéra.

Ktorý záznam tunel prevezme

Zaznamenajte tabuľku dvakrát, raz s vypnutým tunelom a raz so zapnutým, a porovnajte predvolené riadky. Keď profil nárokuje predvolený prefix, záznam adaptéra je najširší riadok v tabuľke, takže každá výnimka musí byť užšia než on. Je to aritmetika o dĺžke prefixu, nie tvrdenie o dôvere alebo politike. Určuje tiež, ktoré rozhranie musí výnimka uviesť.

Zapíšte index rozhrania a miestnu bránu, kým budete pokračovať, pretože obe sa menia, keď sa stroj pripojí k inej sieti. Príkazy nižšie ich čítajú zo stroja, nie z pamäte.

route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.30

Druhý príkaz hlási rozhranie a ďalší skok, ktoré by táto jedna adresa použila teraz, čo je lepšie ako čítať štyridsať riadkov a hádať. Spustite ho pred pripojením a po ňom a máte dvojicu, ktorú stojí za to priložiť k záznamu o zmene. Oba výstupy dodávajú čísla používané vo zvyšku tejto stránky.

Trasa k hostiteľovi vyhráva špecifickosťou

Zhoda najdlhšieho prefixu rozhoduje o víťazovi, takže /32 cez fyzickú bránu poráža predvolenú trasu cez tunel bez toho, aby sa tunel dotkol. Prevádzka na tú adresu vychádza cez miestne rozhranie, zatiaľ čo všetko ostatné si drží svoju cestu. Tunel naďalej nesie predvolenú trasu a jednoducho prestáva byť jediným kandidátom pre ten cieľ. Dĺžka prefixu je jediná páka, ktorú tabuľka ponúka, a na túto úlohu stačí.

Špecifickosť tiež vylučuje zjavnú skratku vylúčenia názvu domény, pretože tabuľka páruje adresy a jeden názov sa môže preložiť na niekoľko. Najprv preložte hostiteľa, potom rozhodnite, ktorá z jeho adries si výnimku zaslúži.

Pre všetko nižšie predpokladajme pripojenie s názvom Office, miestnu bránu 10.0.0.1 na rozhraní 7 a cieľ 198.51.100.30. Sú to zástupné, nie predvolené hodnoty, a príkazy vyššie dávajú hodnoty, ktoré váš stroj skutočne používa. Uchovajte túto poznámku o nahradení pri zmene, aby ďalší čitateľ neopísal čísla.

Zaistite, aby trasa prežila ďalšie opätovné pripojenie

Windows neponúka na pripojení VPN žiadnu inštrukciu na vylúčenie, takže výnimka musí žiť na fyzickom rozhraní, kde ju adaptér neprepíše. Príkaz, ktorý vyzerá ako odpoveď, robí opak: Add-VpnConnectionRoute presúva prefix do tunela, a to je zrkadlový prípad, keď rozdelený profil má niesť jeden cieľ a zvyšok nechať miestne. Siahnuť po ňom tu zaručuje, že prevádzka, ktorú ste chceli držať vonku, pôjde dnu.

Ručná podoba je jediný príkaz. Jej slabosťou je zmena siete, nie opätovné pripojenie.

route -p add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7

To prežije reštart vďaka -p a posiela jednu adresu cez rozhranie 7, zatiaľ čo tunel nesie všetko ostatné. Presuňte notebook do inej siete a brána aj index zastarajú, takže záznam ticho zlyhá. Zapíšte, kto ho vlastní a kedy sa má odstrániť.

Skript pripojenia je pevnejšia verzia, pretože pridáva výnimku znova po každom pripojení namiesto toho, aby dúfal, že záznam prežil. Dva riadky nižšie patria tomu, čo spúšťa tunel, nie prihlasovaciemu skriptu.

rasdial Office
route add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7

Čokoľvek tunel zdvihne, je správne miesto pre druhý riadok, a rasdial sa vracia až po nadviazaní spojenia, takže trasa pristane za vlastnými záznamami adaptéra. Spustite ho znova po prebudení, pretože pozastavenie môže zraziť trasu a nechať tunel hore. Ak je úloha opačná, pretlačiť jeden prefix do tunela a zvyšok nechať miestne, potom Add-VpnConnectionRoute je správny nástroj.

Smerovanie nedokáže vybrať proces

Niekedy je požiadavka užšia než cieľ: jeden program má ísť miestnou cestou, zatiaľ čo všetko ostatné zostáva v tuneli. Smerovanie to nedokáže vyjadriť, pretože páruje adresy, nie procesy. Fungujúci vzor tlačí problém do spúšťača.

Držte profil mimo predvolenej trasy a spustite ten jeden program zviazaný s adresou miestneho rozhrania, takže výnimkou sa stane príkaz na spustenie a tunel si ponechá, čo už spracúval. V smerovacej tabuľke sa nič nemení, a preto to prežíva opätovné pripojenia. Znamená to tiež, že tunel nesmie predvolenú trasu vlastniť od začiatku, takže je to iný návrh a nie záplata na predchádzajúci.

Jeho slabosť je prevádzková, nie technická. Program musí vždy štartovať cez obal, a ak po prebudení väzba chýba, ticho si vezme akúkoľvek cestu, ktorú tabuľka ponúkne. To je znesiteľné pri prehliadači, ktorý otvárate zámerne, a neprijateľné pri čomkoľvek, čo nesmie nikdy opustiť tunel.

Pripojenia pre jednotlivých používateľov to tiež neriešia. Windows dokáže obmedziť pripojenie na účet, zatiaľ čo smerovacia tabuľka zostáva strojová, takže pripojenie viazané na účet, ktoré drží predvolenú trasu, stále presmerúva každý proces na stroji, vrátane iných relácií. Rozsah sa stane skutočným, len keď rozsah trasy zodpovedá účtu. Dvaja ľudia zdieľajúci jeden notebook preto zdieľajú jednu tabuľku a druhý zdedí tunel, ktorý spustil prvý.

Potvrďte, že výnimka prežila opätovné pripojenie

Otestujte zmenu tak, ako zlyhá: odpojte sa, pripojte sa znova, otvorte novú aplikáciu a potom požiadajte o jednu adresu, ktorá musí zostať miestna, a jednu, ktorá musí ísť cez tunel. Obe porovnajte s Find-NetRoute v pripojenom stave.

Ak prefix po opätovnom pripojení v tabuľke chýba, žije v nesprávnom objekte, nie v nesprávnom formáte. Presuňte ho na fyzické rozhranie a test zopakujte. Uchovajte oba výstupy príkazov pri zázname o zmene, pretože snímka funkčného stavu neskôr odpovie na viac otázok ako odsek vysvetlenia. Ďalší človek bude chcieť vedieť, čo pripojenie vytvorilo, nie čo ste zamýšľali, aby vytvorilo.

Súvisiace články