Eén host uitsluiten van de standaardroute van een Windows-VPN
Een full-tunnelprofiel bezit de standaardroute. Eén host heeft een smaller prefix op de fysieke interface nodig, dat na elke verbinding opnieuw wordt toegevoegd.
De laptop maakt verbinding met de kantoortunnel en alles volgt die, inclusief de webpagina van een printer en één intranet dat alleen op het lokale netwerk antwoordt. Een handmatige route lost dat een uur op, dan valt de verbinding weg, komt terug, en de uitzondering is verdwenen. Er is niets mis met de tunnel: Windows houdt één routingtabel bij, en de VPN-adapter herschrijft zijn deel van die tabel bij elke verbinding. Wat overleeft, is alles wat buiten de eigen vermeldingen van de adapter valt.
Welke vermelding de tunnel overneemt
Leg de tabel twee keer vast, één keer met de tunnel neer en één keer met de tunnel op, en vergelijk de standaardregels. Wanneer het profiel het standaardprefix opeist, is de vermelding van de adapter de breedste regel in de tabel, dus elke uitzondering moet smaller zijn dan die. Dat is rekenwerk over prefixlengte en geen uitspraak over vertrouwen of beleid. Het legt ook vast welke interface de uitzondering moet noemen.
Noteer de interface-index en de lokale gateway voordat u verdergaat, want beide veranderen wanneer de machine lid wordt van een ander netwerk. De opdrachten hieronder lezen ze van de machine en niet uit het geheugen.
route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.30
De tweede opdracht meldt de interface en de volgende hop die dat ene adres nu zou gebruiken, wat beter is dan veertig regels lezen en gokken. Voer hem voor en na het verbinden uit en u hebt het paar dat het waard is om aan een wijzigingsrecord te hangen. Beide uitvoer levert de getallen die in de rest van deze pagina worden gebruikt.
Een hostroute wint op specificiteit
De langste prefixovereenkomst bepaalt de winnaar, dus een /32 via de fysieke gateway verslaat de standaardroute via de tunnel zonder dat de tunnel wordt aangeraakt. Verkeer naar dat adres verlaat de lokale interface terwijl al het andere zijn bestaande pad houdt. De tunnel draagt nog steeds de standaard en is simpelweg niet langer de enige kandidaat voor die bestemming. Prefixlengte is de enige hefboom die de tabel biedt, en voor deze klus is die genoeg.
Specificiteit sluit ook de voor de hand liggende sluiproute uit om een domeinnaam uit te sluiten, want de tabel vergelijkt adressen en één naam kan naar meerdere verwijzen. Los eerst de host op en bepaal dan welk van zijn adressen de uitzondering verdient.
Neem voor alles hieronder een verbinding aan met de naam Office, een lokale gateway 10.0.0.1 op interface 7, en een bestemming op 198.51.100.30. Dat zijn plaatsaanduidingen en geen standaardwaarden, en de opdrachten hierboven leveren de waarden die uw machine werkelijk gebruikt. Houd die vervangingsnotitie bij de wijziging zodat de volgende lezer de getallen niet overtypt.
Zorg dat de route de volgende herverbinding overleeft
Windows biedt geen uitsluitingsinstructie op een VPN-verbinding, dus de uitzondering moet op de fysieke interface leven waar de adapter hem niet herschrijft. De cmdlet die eruitziet als het antwoord doet het omgekeerde: Add-VpnConnectionRoute verplaatst een prefix de tunnel in, en dat is het spiegelgeval waarin een gesplitst profiel één bestemming moet dragen en de rest lokaal moet laten. Daar hier naar grijpen garandeert dat het verkeer dat u buiten wilde houden naar binnen gaat.
De handmatige vorm is één opdracht. De zwakte ervan is de netwerkwijziging en niet de herverbinding.
route -p add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7
Dat overleeft een herstart dankzij -p en stuurt één adres via interface 7 naar buiten terwijl de tunnel al het andere draagt. Verplaats de laptop naar een ander netwerk en zowel de gateway als de index verouderen, dus de vermelding faalt stil. Noteer wie hem bezit en wanneer hij moet worden verwijderd.
Een verbindingsscript is de steviger versie, omdat het de uitzondering na elke verbinding opnieuw toevoegt in plaats van te hopen dat de vermelding het heeft overleefd. De twee regels hieronder horen bij wat de tunnel start, niet bij een aanmeldingsscript.
rasdial Office
route add 198.51.100.30 mask 255.255.255.255 10.0.0.1 metric 1 if 7
Wat de tunnel ook opstart, dat is de juiste plek voor de tweede regel, en rasdial komt pas terug nadat de verbinding tot stand is gebracht, dus de route belandt achter de eigen vermeldingen van de adapter. Voer hem opnieuw uit na een hervatting, want een slaapstand kan de route laten vallen en de tunnel omhoog laten. Als de taak de omgekeerde is, één prefix de tunnel in duwen terwijl de rest lokaal blijft, dan is Add-VpnConnectionRoute het juiste gereedschap.
Routing kan geen proces kiezen
Soms is de eis smaller dan een bestemming: één programma moet het lokale pad nemen terwijl al het andere in de tunnel blijft. Routing kan dat niet uitdrukken, omdat het adressen vergelijkt en geen processen. Het werkbare patroon duwt het probleem in de launcher.
Houd het profiel van de standaardroute af en start dat ene programma gebonden aan het adres van de lokale interface, dan wordt de uitzondering het startcommando en behoudt de tunnel wat hij al verwerkte. Niets in de routingtabel verandert, en daarom overleeft dit herverbindingen. Het betekent ook dat de tunnel de standaardroute niet vanaf het begin mag bezitten, dus dit is een ander ontwerp en geen pleister op het vorige.
De zwakte is operationeel en niet technisch. Het programma moet altijd via de wrapper starten, en als de binding na een hervatting ontbreekt, neemt het stil elk pad dat de tabel biedt. Dat is acceptabel voor een browser die u bewust opent en onacceptabel voor alles wat de tunnel nooit mag verlaten.
Verbindingen per gebruiker lossen dit ook niet op. Windows kan een verbinding aan een account koppelen terwijl de routingtabel machinebreed blijft, dus een accountgebonden verbinding met een standaardroute leidt nog steeds elk proces op de machine om, inclusief andere sessies. Het bereik wordt pas echt wanneer het bereik van de route bij het account past. Twee mensen die één laptop delen, delen daarom één tabel, en de tweede erft welke tunnel de eerste ook is begonnen.
Bevestig dat de uitzondering een herverbinding heeft overleefd
Test de wijziging zoals hij zal falen: verbreek, verbind opnieuw, open een nieuwe toepassing, vraag dan één adres dat lokaal moet blijven en één dat de tunnel moet gebruiken. Vergelijk beide met Find-NetRoute in de verbonden toestand.
Als het prefix na een herverbinding in de tabel ontbreekt, leeft het in het verkeerde object en niet in het verkeerde formaat. Verplaats het naar de fysieke interface en herhaal de test. Bewaar beide opdrachtuitvoer bij het wijzigingsrecord, want een momentopname van de werkende toestand beantwoordt later meer vragen dan een alinea uitleg. De volgende persoon wil weten wat het verbinden opleverde, niet wat u bedoelde dat het zou opleveren.