Det virker at browse inde i distributionen, og det første interne værtsnavn fejler i det øjeblik, tunnelen kommer op. Refleksen er at tilføje en offentlig resolver, som gendanner internettet og gør virksomhedsnavnet utilgængeligt resten af dagen. På WSL 2 er /etc/resolv.conf genereret output og ikke konfiguration, og det er den mekanisme, der er værd at forstå. Løsningen er ikke en bedre resolver, det er ejerskabet over filen.

Filen genereres, den konfigureres ikke

WSL 2 skriver filen ved opstart ud fra de Windows-adaptere, den kan se i det øjeblik, og den udskriver en kommentar i toppen, der siger det. Når en VPN-klient bagefter tilføjer eller genskriver en adapter, gendanner distributionen ikke nødvendigvis noget, og filen fortsætter med at beskrive et netværk, der ikke findes længere.

En anden fejltilstand er mere stille: WSL kopierer måske kun servere fra nogle adaptere. Hvis den fysiske adapter allerede har en IPv6-resolver, kan de IPv4-servere, som VPN-adapteren leverer, blive droppet i stedet for tilføjet, og filen ser komplet ud, mens den netop udelader den, der svarer på interne navne.

Sammenlign Windows-visningen med Linux-visningen

Læs begge sider, før du redigerer. Inde i distributionen kan du se, hvad filen indeholder, og om den er en almindelig fil eller et link. På Windows kan du liste resolveren for hver adapter, inklusive den VPN har oprettet:

ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'

Når VPN-adapteren viser virksomhedens servere, og Linux viser noget andet, ligger uenigheden i genereringen og ikke i rækkevidden. Sammenlign både adapterlisten og adresserne, fordi en manglende adapter forklarer en manglende server. Den forskel afgør, om du reparerer WSL eller en firewall, og de to har intet til fælles.

Slå genereringen fra, og skriv din egen fil

Én dokumenteret indstilling forhindrer WSL i at genskrive filen, og den findes i /etc/wsl.conf. Tilføj et netværksafsnit til den fil:

[network]
generateResolvConf = false

Afslut derefter distributionen fra Windows med wsl --shutdown, og start den igen. Hvis stien er et symbolsk link og ikke en almindelig fil, skal du fjerne linket, før du skriver dit eget indhold, fordi skrivning gennem linket kan genskabe det genererede mål ved næste opstart. Fra det punkt er filen din, og intet genskriver den.

nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate

Uden et søgedomæne bliver et ukvalificeret værtsnavn suppleret med den offentlige rod og kommer tilbage som ingen sådan domæne. timeout forhindrer en død første server i at blokere hvert opslag, attempts begrænser, hvor mange forsøg et opslag bruger, og rotate fordeler genforsøg i stedet for altid at starte øverst. Afvejningen er, at filen ikke længere følger et VPN, hvis resolveradresse skifter mellem sessioner.

Håndter en resolver, der flytter sig, og verificér derefter

Nogle klienter udleverer en sessionsspecifik resolver, så en statisk fil brækker ved næste forbindelse. To fremgangsmåder er forsvarlige. Skriv filen fra et lille script, hver gang adressen ændrer sig, eller lad genereringen være slået til og sørg for, at den adapter, WSL kopierer fra, bærer virksomhedens server. Den anden kræver ingen hook og fejler, hver gang genereringen springer VPN-adapteren over; begge kræver stadig, at IPv6-konflikten løses først.

Windows anvender også sine egne navnepolitikker, såsom en suffiksøgeliste eller en opløsningspolitik for bestemte domæner, og kopiering af adapteradresser genskaber ikke disse regler. Hvis et navn opløses på Windows og ikke i distributionen med samme server, skal du sammenligne håndteringen af suffikser, før du giver tunnelen skylden.

Test med et navn og ikke med en pakke: getent hosts sensor-access0.corp.example går gennem resolverstakken, mens en ping kan lykkes mod en cachet eller bogstavelig adresse. Gentag derefter efter afbrydelse og genopkobling, fordi en indstilling, der virker én gang og gendannes ved genoptagelse, aldrig blev rettet. Gem det tidligere indhold, og notér, hvilken komponent der ejer stien på den maskine, så den næste ændring begynder med bevis.

Relaterede artikler