Laptoppen forbinder til kontorets VPN, og alt følger den, inklusive en printers webside og ét intranet, der kun svarer på det lokale netværk. En håndlavet rute retter det i en time, så falder forbindelsen, kommer tilbage, og undtagelsen er væk. Der er intet galt med tunnelen: Windows holder én routingtabel, og VPN-adapteren skriver sin del af den tabel om ved hver forbindelse. Det, der overlever, er alt det, der ligger uden for adapterens egne poster.

Hvilken post tunnelen overtager

Skriv tabellen ned to gange, én gang med tunnelen nede og én gang med den oppe, og sammenlign standardlinjerne. Når profilen gør krav på standardpræfikset, er adapterens post den bredeste række i tabellen, så enhver undtagelse skal være smallere end den. Det er aritmetik om præfikslængde og ikke en erklæring om tillid eller politik. Det fastlægger også, hvilket interface undtagelsen skal navngive.

Notér interfaceindekset og den lokale gateway, før du går videre, for begge ændrer sig, når maskinen tilslutter sig et andet netværk. Kommandoerne nedenfor læser dem fra maskinen og ikke fra hukommelsen.

route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.30

Den anden kommando rapporterer det interface og det næste hop, som netop den adresse ville bruge lige nu, hvilket er bedre end at læse fyrre rækker og gætte. Kør den før og efter forbindelsen, og du har det par, der er værd at vedhæfte en ændringsrecord. Begge output leverer de tal, der bruges i resten af denne side.

En værtsrute vinder på specificitet

Det længste præfiks afgør vinderen, så en /32 gennem den fysiske gateway slår standardruten gennem tunnelen, uden at tunnelen røres. Trafik til den adresse forlader det lokale interface, mens alt andet beholder sin nuværende vej. Tunnelen bærer stadig standarden og holder blot op med at være den eneste kandidat til den destination. Præfikslængden er det eneste håndtag, tabellen udstiller, og til denne opgave er det nok.

Specificitet udelukker også den oplagte genvej at udelukke et domænenavn, fordi tabellen matcher adresser, og ét navn kan opløses til flere. Opløs værten først, og beslut derefter, hvilken af dens adresser der fortjener undtagelsen.

For alt nedenfor antages en forbindelse ved navn Office, en lokal gateway på 10.0.0.1 på interface 7 og en destination på 198.51.100.30. Det er pladsholdere og ikke standarder, og kommandoerne ovenfor giver de værdier, din maskine faktisk bruger. Gem den substitutionsnote sammen med ændringen, så den næste læser ikke kopierer tallene.

Få ruten til at overleve den næste genforbindelse

Windows tilbyder ingen udelukkelsesinstruks på en VPN-forbindelse, så undtagelsen skal ligge på det fysiske interface, hvor adapteren ikke skriver den om. Den cmdlet, der ligner svaret, gør det modsatte: Add-VpnConnectionRoute flytter et præfiks ind i tunnelen, og det er spejltilfældet, hvor en delt profil skal bære én destination og lade resten være lokal. At gribe efter den her garanterer, at den trafik, du ville holde ude, kommer ind.

Den manuelle form er én kommando. Dens svaghed er netværksskiftet og ikke genforbindelsen.

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

Det overlever en genstart takket være -p og sender én adresse ud gennem interface 7, mens tunnelen bærer alt andet. Flyt laptoppen til et andet netværk, og både gateway og indeks bliver forældede, så posten fejler stille. Notér, hvem der ejer den, og hvornår den skal fjernes.

Et forbindelsesscript er den mere robuste version, fordi det tilføjer undtagelsen igen efter hver forbindelse i stedet for at håbe på, at posten overlevede. De to linjer nedenfor hører til det, der starter tunnelen, ikke til et logon-script.

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

Uanset hvad der rejser tunnelen, er det det rigtige sted til den anden linje, og rasdial vender først tilbage, når forbindelsen er etableret, så ruten lander bag adapterens egne poster. Kør den igen efter en genoptagelse, fordi en suspend kan tabe ruten og efterlade tunnelen oppe. Hvis opgaven er den omvendte, at skubbe ét præfiks ind i tunnelen, mens resten forbliver lokal, så er Add-VpnConnectionRoute det rigtige værktøj.

Routing kan ikke vælge en proces

Nogle gange er kravet smallere end en destination: ét program skal tage den lokale vej, mens alt andet bliver inde i tunnelen. Routing kan ikke udtrykke det, fordi det matcher adresser og ikke processer. Det brugbare mønster skubber problemet ud i launcheren.

Hold profilen væk fra standardruten, og start det ene program bundet til den lokale interfaceadresse, så bliver undtagelsen startkommandoen, og tunnelen beholder det, den allerede håndterede. Intet i routingtabellen ændres, og derfor overlever det genforbindelser. Det betyder også, at tunnelen ikke må eje standardruten fra begyndelsen, så det er et andet design og ikke en lap på det forrige.

Dens svaghed er driftsmæssig og ikke teknisk. Programmet skal altid starte gennem indpakningen, og hvis bindingen mangler efter en genoptagelse, tager det stille den vej, tabellen tilbyder. Det er acceptabelt for en browser, du åbner bevidst, og uacceptabelt for noget, der aldrig må forlade tunnelen.

Forbindelser pr. bruger løser heller ikke dette. Windows kan afgrænse en forbindelse til en konto, mens routingtabellen forbliver for hele maskinen, så en kontobestemt forbindelse med en standardrute stadig omdirigerer hver proces på maskinen, inklusive andre sessioner. Omfanget bliver først reelt, når rutens omfang matcher kontoen. To personer, der deler en laptop, deler derfor én tabel, og den anden arver den tunnel, den første startede.

Bekræft, at undtagelsen overlevede en genforbindelse

Test ændringen på den måde, den vil fejle: afbryd, genopret forbindelsen, åbn et nyt program, og bed derefter om én adresse, der skal blive lokal, og én, der skal bruge tunnelen. Sammenlign begge med Find-NetRoute i tilsluttet tilstand.

Hvis præfikset mangler i tabellen efter en genforbindelse, ligger det i det forkerte objekt og ikke i det forkerte format. Flyt det til det fysiske interface, og gentag testen. Gem begge kommandooutput sammen med ændringsrecordsen, fordi et øjebliksbillede af den fungerende tilstand senere besvarer flere spørgsmål end et afsnit forklaring. Den næste person vil vide, hvad forbindelsen producerede, ikke hvad du havde tænkt dig, den skulle producere.

Relaterede artikler