resolv.conf ënner WSL 2: DNS stierft, wann sech de VPN verbënnt
WSL regeneréiert resolv.conf aus de Windows-Adapters, déi et gesäit, dofir kënnt den Resolver vum VPN vläicht ni un. Stopp d’Generéierung, a test dann en Firmennumm.
Browsen an der Distributioun funktionéiert, an den éischten internen Hostnumm feelt an deem Ament, wou den Tunnel eropkënnt. De Reflex ass en ëffentleche Resolver dobäizesetzen, wat den Internet zréckbréngt an de Firmennumm de Rescht vum Dag onereechbar mécht. Ënner WSL 2 ass /etc/resolv.conf generéierten Output an net Konfiguratioun, an dat ass de Mechanismus, deen et wäert ass ze verstoen. D’Léisung ass net e besseren Resolver, et ass d’Proprietéit iwwer d’Datei.
D’Datei gëtt generéiert, net konfiguréiert
WSL 2 schreift d’Datei beim Start aus de Windows-Adapters, déi et an deem Ament gesäit, an dréckt uewen e Kommentar, deen dat seet. Wann e VPN-Client duerno en Adapter bäisetzt oder iwwerschreift, regeneréiert d’Distributioun net onbedéngt eppes, an d’Datei beschreift weider en Netzwierk, dat et net méi gëtt.
En zweeten Ausfallmodus ass méi roueg: WSL kopéiert vläicht nëmme Serveren aus e puer Adapters. Wann den physeschen Adapter schonn en IPv6-Resolver huet, kënnen d’IPv4-Serveren, déi den VPN-Adapter liwwert, verweerft ginn amplaz bäigefüügt ze ginn, an d’Datei gesäit komplett aus, wärend se genee dee wegléisst, deen op intern Nimm äntwert.
Vergläich d’Windows-Vue mat der Linux-Vue
Lies béid Säiten ier s de änderst. An der Distributioun kuck, wat d’Datei enthält an ob se eng normal Datei oder e Link ass. Op Windows lëscht de Resolver fir all Adapter op, inklusiv deen, dee VPN gemaach huet:
ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'
Wann den VPN-Adapter d’Firmeserveren weist an Linux eppes anescht, läit den Ënnerscheed an der Generéierung an net an der Reechbarkeet. Vergläich d’Adapterlëscht souwéi d’Adressen, well en Adapter dee feelt en Server erkläert, deen feelt. Dee Ënnerscheed decidéiert, ob s de WSL oder eng Firewall reparéiers, an déi zwee hunn näischt gemeinsam.
Schalt d’Generéierung aus a schreif deng eege Datei
Eng dokumentéiert Astellung hënnert WSL drun, d’Datei nei ze schreiwen, an se steet an /etc/wsl.conf. Füüg där Datei eng Netzwierkssektioun bäi:
[network]
generateResolvConf = false
Duerno beend d’Distributioun vun Windows aus mat wsl --shutdown a start se nei. Wann de Wee e symbolesche Link an net eng normal Datei ass, läsch de Link ier s deinen eegenen Inhalt schreifs, well Schreiwen duerch de Link d’generéiert Zil beim nächsten Start kéint nei maachen. Vun deem Ament un ass d’Datei deng a näischt schreift se nei.
nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate
Ouni Sichdomän gëtt en netqualifizéierten Hostnumm mat der ëffentlecher Wuerzel ergänzt a kënnt als et gëtt keng sou Domän zréck. timeout hënnert en doudegen éischten Server drun, all Ufro ze blockéieren, attempts begrenzt wéi vill Versich eng Ufro verbraucht, an rotate verdeelt Widderhuelungen amplaz ëmmer uewen unzefänken. Den Handel ass, datt d’Datei kengem VPN méi follegt, deem seng Resolveradress tëschent Sëtzungen ännert.
Behandle en Resolver, dee sech verréckelt, a verifiéier duerno
E puer Cliente ginn en resolverspezifesche fir d’Sëtzung aus, dofir brécht eng statesch Datei bei der nächster Verbindung. Zwee Approche si verdeedegbar. Schreif d’Datei aus engem klengen Skript, ëmmer wann d’Adress sech ännert, oder lass d’Generéierung un a stell sécher, datt den Adapter, vun deem WSL kopéiert, de Firmeserver dréit. Den zweete brauch keen Hook a feelt ëmmer, wann d’Generéierung den VPN-Adapter iwwerspréngt; béid verlaangen nach ëmmer, datt den IPv6-Konflikt fir d’éischt geléist gëtt.
Windows applizéiert och seng eege Nummspolitiken, wéi eng Suffix-Sichlëscht oder eng Opléisungspolitik fir bestëmmt Domänen, an d’Kopéiere vun Adapteradressen reproduzéiert déi Regele net. Wann en Numm op Windows opgeléist gëtt an net an der Distributioun mat dem selwechte Server, vergläich d’Behandlung vun de Suffixer ier s den Tunnel beschëllegs.
Test mat engem Numm an net mat engem Paket: getent hosts sensor-access0.corp.example geet duerch de Resolver-Stack, während e Ping géint eng gecacht oder wuertwiertlech Adress ka geléngen. Widderhuel duerno no engem Trennen an Neiverbannen, well eng Astellung, déi eemol funktionéiert an beim Fortsetzen nei generéiert gëtt, ni reparéiert gouf. Späicher de fréieren Inhalt a notéier, wéi eng Komponent de Wee op där Maschinn besëtzt, sou datt déi nächst Ännerung mat Beweiser ufänkt.