Pretraživanje unutar distribucije radi, a prvo interno ime hosta pada u trenutku kada se tunel podigne. Refleks je dodati javni resolver, što vraća internet i čini korporativno ime nedostupnim do kraja dana. U WSL 2 /etc/resolv.conf je generisani izlaz, a ne konfiguracija, i upravo je taj mehanizam vrijedan razumijevanja. Popravka nije bolji resolver, nego vlasništvo nad datotekom.

Datoteka se generiše, ne konfiguriše

WSL 2 zapisuje datoteku pri pokretanju iz Windows adaptera koje u tom trenutku vidi, i na vrhu ispisuje komentar koji to kaže. Kada VPN klijent poslije doda ili prepiše adapter, distribucija ne mora ništa ponovo generisati, i datoteka nastavlja opisivati mrežu koja više ne postoji.

Drugi način kvara je tiši: WSL može kopirati servere samo s nekih adaptera. Ako fizički adapter već ima IPv6 resolver, IPv4 serveri koje daje VPN adapter mogu biti odbačeni umjesto dodani, i datoteka izgleda potpuna dok izostavlja upravo onaj koji odgovara na interna imena.

Uporedite pogled iz Windowsa s pogledom iz Linuxa

Pročitajte obje strane prije uređivanja. Unutar distribucije pogledajte šta datoteka sadrži i da li je obična datoteka ili link. Na Windowsu izlistajte resolver za svaki adapter, uključujući onaj koji je VPN napravio:

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

Kada VPN adapter pokazuje korporativne servere a Linux nešto drugo, neslaganje je u generisanju, a ne u dostupnosti. Uporedite i listu adaptera i adrese, jer adapter koji nedostaje objašnjava server koji nedostaje. Ta razlika odlučuje popravljate li WSL ili firewall, a njih dvoje nemaju ništa zajedničko.

Isključite generisanje i napišite svoju datoteku

Jedna dokumentovana postavka sprječava WSL da prepisuje datoteku, a nalazi se u /etc/wsl.conf. Dodajte mrežni odjeljak u tu datoteku:

[network]
generateResolvConf = false

Zatim zaustavite distribuciju iz Windowsa pomoću wsl --shutdown i ponovo je pokrenite. Ako je putanja simbolički link a ne obična datoteka, uklonite link prije nego napišete vlastiti sadržaj, jer pisanje kroz link može ponovo stvoriti generisani cilj pri sljedećem pokretanju. Od tog trenutka datoteka je vaša i ništa je ne prepisuje.

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

Bez domene pretrage, nekvalifikovano ime hosta dopunjuje se javnim korijenom i vraća se kao da takva domena ne postoji. timeout sprječava mrtvi prvi server da blokira svaku pretragu, attempts ograničava koliko pokušaja pretraga troši, a rotate raspoređuje ponovne pokušaje umjesto da uvijek počinje odozgo. Kompromis je da datoteka više ne prati VPN čija se adresa resolvera mijenja između sesija.

Riješite resolver koji se pomjera, zatim provjerite

Neki klijenti daju resolver specifičan za sesiju, pa se statična datoteka slomi pri sljedećoj vezi. Dva pristupa su odbranjiva. Pišite datoteku iz male skripte kad se adresa promijeni, ili ostavite generisanje uključeno i pobrinite se da adapter s kojeg WSL kopira nosi korporativni server. Drugi ne traži kuku i pada kad generisanje preskoči VPN adapter; oba i dalje zahtijevaju da se prvo riješi sukob s IPv6.

Windows primjenjuje i vlastite politike imena, poput liste za pretragu sufiksa ili politike razrješavanja za određene domene, a kopiranje adresa adaptera ne reprodukuje ta pravila. Ako se ime razriješi na Windowsu ali ne u distribuciji s istim serverom, uporedite obradu sufiksa prije nego okrivite tunel.

Testirajte imenom, a ne paketom: getent hosts sensor-access0.corp.example prolazi kroz sloj resolvera, dok ping može uspjeti prema keširanoj ili doslovnoj adresi. Zatim ponovite nakon prekida i ponovnog povezivanja, jer postavka koja radi jednom i ponovo se generiše pri nastavku nikada nije popravljena. Sačuvajte prethodni sadržaj i zabilježite koji komponent posjeduje putanju na tom računaru, da sljedeća promjena počne s dokazom.

Povezani članci