Den bærbare maskinen kobler til kontor-VPN-et og alt følger det, inkludert nettsiden til en skriver og ett intranett som bare svarer på det lokale nettet. En håndlaget rute ordner det i en time, så faller forbindelsen, kommer tilbake, og unntaket er borte. Det er ikke noe galt med tunnelen: Windows holder én rutetabell, og VPN-adapteren skriver om sin del av den tabellen ved hver tilkobling. Det som overlever, er alt som ligger utenfor adapterens egne oppføringer.

Hvilken oppføring tunnelen overtar

Skriv ned tabellen to ganger, én gang med tunnelen nede og én gang med den oppe, og sammenlign standardlinjene. Når profilen krever standardprefikset, er oppføringen til adapteren den bredeste raden i tabellen, så ethvert unntak må være smalere enn den. Det er aritmetikk om prefikslengde og ikke en uttalelse om tillit eller policy. Det fastsetter også hvilket grensesnitt unntaket må navngi.

Skriv ned grensesnittindeksen og den lokale gatewayen før du går videre, for begge endres når maskinen blir med i et annet nettverk. Kommandoene nedenfor leser dem fra maskinen og ikke fra minnet.

route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.30

Den andre kommandoen rapporterer grensesnittet og neste hopp som den ene adressen ville bruke nå, noe som er bedre enn å lese førti linjer og gjette. Kjør den før og etter tilkobling, og du har paret som er verdt å legge ved en endringslogg. Begge utdataene gir tallene som brukes i resten av denne siden.

En vertsrute vinner på spesifisitet

Den lengste prefiksmatchingen avgjør vinneren, så /32 gjennom den fysiske gatewayen slår standardruten gjennom tunnelen uten at tunnelen blir rørt. Trafikk til den adressen går ut gjennom det lokale grensesnittet mens alt annet beholder sin nåværende vei. Tunnelen bærer fortsatt standardruten og slutter bare å være den eneste kandidaten for den destinasjonen. Prefikslengden er den eneste spaken tabellen tilbyr, og for denne jobben er det nok.

Spesifisiteten utelukker også den åpenbare snarveien å utelate et domenenavn, fordi tabellen sammenligner adresser og ett navn kan løses til flere. Løs verten først, og avgjør deretter hvilken av adressene dens som fortjener unntaket.

For alt nedenfor, antatt en tilkobling som heter Office, en lokal gateway 10.0.0.1 på grensesnitt 7, og en destinasjon på 198.51.100.30. Dette er plassholdere og ikke standardverdier, og kommandoene ovenfor gir verdiene som maskinen din faktisk bruker. Hold den erstatningsnoten sammen med endringen så neste leser ikke kopierer tallene.

Gjør at ruten overlever neste gjenoppkobling

Windows tilbyr ingen utelatelsesinstruks på en VPN-tilkobling, så unntaket må leve på det fysiske grensesnittet der adapteren ikke skriver det om. Kommandoen som ser ut som svaret gjør det motsatte: Add-VpnConnectionRoute flytter et prefiks inn i tunnelen, og det er speiltilfellet der en delt profil skal bære én destinasjon og la resten være lokal. Å gripe til den her garanterer at trafikken du ville holde utenfor går inn.

Den manuelle formen er én kommando. Svakheten er nettverksbyttet og ikke gjenoppkoblingen.

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

Det overlever omstart takket være -p og sender én adresse ut gjennom grensesnitt 7 mens tunnelen bærer alt annet. Flytt den bærbare maskinen til et annet nettverk, og både gatewayen og indeksen blir utdaterte, så oppføringen feiler stille. Skriv ned hvem som eier den og når den skal fjernes.

Et tilkoblingsskript er den robuste versjonen, fordi det legger unntaket til på nytt etter hver tilkobling i stedet for å håpe at oppføringen overlevde. De to linjene nedenfor hører til det som starter tunnelen, ikke til et innloggingsskript.

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

Det som enn løfter tunnelen, er rett sted for den andre linjen, og rasdial kommer først tilbake etter at forbindelsen er opprettet, så ruten lander bak adapterens egne oppføringer. Kjør den på nytt etter en oppvåkning, fordi dvale kan slippe ruten og la tunnelen stå oppe. Hvis oppgaven er den motsatte, å presse ett prefiks inn i tunnelen mens resten blir værende lokalt, da er Add-VpnConnectionRoute rett verktøy.

Ruting kan ikke velge en prosess

Noen ganger er kravet smalere enn en destinasjon: ett program skal ta den lokale veien mens alt annet blir værende inne i tunnelen. Ruting kan ikke uttrykke det, fordi det sammenligner adresser og ikke prosesser. Det fungerende mønsteret skyver problemet inn i oppstarteren.

Hold profilen borte fra standardruten og start det ene programmet bundet til adressen til det lokale grensesnittet, da blir unntaket startkommandoen og tunnelen beholder det den allerede håndterte. Ingenting i rutetabellen endres, og derfor overlever dette gjenoppkoblinger. Det betyr også at tunnelen ikke må eie standardruten fra begynnelsen, så dette er et annet design og ikke en lapp på det forrige.

Svakheten er operativ og ikke teknisk. Programmet må alltid starte gjennom innpakningen, og hvis bindingen mangler etter en oppvåkning, tar det stille hvilken vei tabellen enn tilbyr. Det er tålelig for en nettleser du åpner med vilje og uakseptabelt for noe som aldri må forlate tunnelen.

Tilkoblinger per bruker løser heller ikke dette. Windows kan begrense en tilkobling til en konto mens rutetabellen forblir for hele maskinen, så en kontobundet tilkobling med standardrute omdirigerer fortsatt hver prosess på maskinen, også andre økter. Omfanget blir reelt først når omfanget til ruten passer med kontoen. To personer som deler én bærbar maskin deler derfor én tabell, og den andre arver hvilken tunnel den første enn startet.

Bekreft at unntaket overlevde en gjenoppkobling

Test endringen slik den vil feile: koble fra, koble til på nytt, åpne et nytt program, og be deretter om én adresse som må holde seg lokal og én som må bruke tunnelen. Sammenlign begge med Find-NetRoute i tilkoblet tilstand.

Hvis prefikset mangler i tabellen etter en gjenoppkobling, lever det i feil objekt og ikke i feil format. Flytt det til det fysiske grensesnittet og gjenta testen. Hold begge kommandoens utdata sammen med endringsloggen, fordi et øyeblikksbilde av den fungerende tilstanden svarer senere på flere spørsmål enn et avsnitt med forklaring. Den neste personen vil vite hva tilkoblingen produserte, ikke hva du mente den skulle produsere.

Relaterte artikler