Hvorfor din Windows-VPN dræber den lokale printer, og hvordan du stopper det
En full-tunnel-klient ejer standardruten, så printeren og NAS’en holder op med at svare. Fjern den rute, og tilføj derefter de arbejdsprefikser, du har brug for.
Tilslut VPN’en, og printeren forsvinder, NAS-delingen holder op med at åbne, og en Remote Desktop-session til maskinen ved siden af dig løber ud. Intet gik i stykker. Klienten tilføjede en standardrute og ejer nu enhver destination, som laptoppen kan navngive, inklusive dem tre meter væk. Det er hele mekanismen, og at kalde det en VPN-fejl er det, der gør en rettelse på én linje til en supportssag.
Læs rutetabellen først
Før du ændrer noget, skal du tage IPv4-tabellen med route print -4 og gemme outputtet. Tilslut, tag igen, og sammenlign linjerne 0.0.0.0: den aktive standardrute angiver en grænseflade, og hvis den grænseflade er tunnelen, sendes lokal udskrivning og browsing først til kontoret.
Grænsefladenummeret i den anden kolonne er det, en permanent rute skal referere senere, så noter det, mens tunnelen er oppe. Det er også den værdi, der ændrer sig, når adapteren genskabes, og derfor kan ruter fastgjort til den stille overleve deres nytte.
Fjern standardruten, på tre måder
På en indbygget Windows-profil er kontrollen en afkrydsningsboks. Åbn forbindelsens egenskaber, IPv4, derefter Avanceret, og ryd Use default gateway on remote network; den nyere app Indstillinger skjuler den samme dialog en lag dybere. Fra en forhøjet kommandoprompt er den samme ændring ét cmdlet:
Set-VpnConnection -Name "Corp" -SplitTunneling $true
En OpenVPN-profil fungerer anderledes, og derfor forvirrer dens adfærd folk, der forventer en afkrydsningsboks. Dens redirect-gateway def1-direktiv erstatter slet ikke standardruten; det installerer to halvbredde-ruter, 0.0.0.0/1 og 128.0.0.0/1, som sammen vinder over standardruten uden at slette den. Fordi den oprindelige standard overlever, sender tilføjelsen af et præfiks peget på net_gateway kun det præfiks tilbage til den lokale router. Den detalje forklarer, hvorfor rettelsen for en def1-profil er en præfiksrute i stedet for en afkrydsningsboks, som ingen kan finde.
Tilføj kun det, der hører til arbejdet
Når standardruten er væk, bærer tunnelen intet, så arbejdsprefikserne skal navngives udtrykkeligt. Det cmdlet, der binder et præfiks til forbindelsen, er sikrere end en permanent rute, fordi det kun installeres, mens den forbindelse er oppe, og ikke afhænger af et grænsefladenummer:
Add-VpnConnectionRoute -ConnectionName "Corp" -DestinationPrefix 172.20.0.0/16
Den ældre fremgangsmåde virker stadig og står stadig på enhver tjekliste: route -p add 172.20.0.0 mask 255.255.0.0 172.20.0.1 if 14, med tunnelens eget grænsefladeindeks og gateway-adresse. Den overlever genstart, hvilket er pointen og også faren, da indekset ved næste opstart kan tilhøre noget andet.
Metrikkerne afgør resten. Hvis både den fysiske og tunnel-adapteren kræver en rute til samme præfiks, vinder den lavere metrik, og at hæve tunnelens metrik er en legitim klient-side styring og ikke et hack.
Når serveren beslutter for dig
En klient, der ignorerer din afkrydsningsboks, adlyder normalt en politik. Cisco-profiler bærer en Allow Local LAN Access-indstilling, og en headend kan skubbe en tunnel-all-politik ud, som tilsidesætter, hvad klienten end ville foretrække; i en obligatorisk tunnel er der ingen lokal kontakt at skifte. Læs klientloggen for skubbede ruter og politiklinjer i stedet for at tjekke den samme dialog igen.
Se derefter på navneopløsning, som er en separat kontakt fra routing. En split-tunnel kan stadig modtage en intern resolver og et søgesuffiks, så en lokal enhed kan nås på adressen og ikke findes på navnet, indtil DNS-siden også er rettet.
Overlap er et andet problem
Hvis hjemme-LAN’et og kontor-LAN’et deler et præfiks som 192.168.0.0/24, kan ingen rute skelne dem. Hver pakke til det område har ét opslagsresultat, og rettelsen er at omnummerere en side eller nå kontoret gennem en oversat adresse fra poolen. At tilføje mere specifikke ruter flytter kun, hvilken halvdel af netværket der brækker.
Slut af med én verifikation i stedet for fem: tilslut, og kør derefter tracert mod en intern og en offentlig vært. Det første hop bør være forskelligt, og hvis det ikke er, er opdelingen ikke på plads, uanset hvad klienten rapporterer. Genopret derefter forbindelsen én gang og gentag, fordi skubbede ruter vender tilbage med hver session.