Selailu jakelun sisällä toimii, ja ensimmäinen sisäinen isäntänimi epäonnistuu sinä hetkenä, kun tunneli nousee. Refleksi on lisätä julkinen resolveri, mikä palauttaa internetin ja tekee yrityksen nimestä saavuttamattoman loppupäiväksi. WSL 2:ssa /etc/resolv.conf on tuotettua tulostetta eikä asetusta, ja juuri tämä mekanismi kannattaa ymmärtää. Korjaus ei ole parempi resolveri, vaan tiedoston omistajuus.

Tiedosto luodaan, ei aseteta

WSL 2 kirjoittaa tiedoston käynnistyksessä niistä Windows-sovittimista, jotka se sillä hetkellä näkee, ja tulostaa ylös kommentin, joka kertoo sen. Kun VPN-asiakas myöhemmin lisää tai kirjoittaa sovittimen uudelleen, jakelu ei välttämättä luo mitään uudelleen, ja tiedosto kuvaa edelleen verkkoa, jota ei enää ole.

Toinen vikatila on hiljaisempi: WSL voi kopioida palvelimia vain joistakin sovittimista. Jos fyysisellä sovittimella on jo IPv6-resolveri, VPN-sovittimen tarjoamat IPv4-palvelimet voidaan pudottaa lisäämisen sijaan, ja tiedosto näyttää täydelliseltä samalla kun se jättää pois juuri sen, joka vastaa sisäisiin nimiin.

Vertaa Windows-näkymää Linux-näkymään

Lue molemmat puolet ennen muokkausta. Katso jakelun sisällä, mitä tiedosto sisältää ja onko se tavallinen tiedosto vai linkki. Listaa Windowsissa jokaisen sovittimen resolveri, mukaan lukien se, jonka VPN loi:

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

Kun VPN-sovitin näyttää yrityksen palvelimet ja Linux näyttää jotain muuta, erimielisyys on luonnissa eikä saavutettavuudessa. Vertaa sekä sovitinluetteloa että osoitteita, koska puuttuva sovitin selittää puuttuvan palvelimen. Tämä ero ratkaisee, korjaatko WSL:ää vai palomuuria, eikä niillä kahdella ole mitään yhteistä.

Kytke luonti pois päältä ja kirjoita oma tiedosto

Yksi dokumentoitu asetus estää WSL:ää kirjoittamasta tiedostoa uudelleen, ja se sijaitsee tiedostossa /etc/wsl.conf. Lisää kyseiseen tiedostoon verkko-osio:

[network]
generateResolvConf = false

Lopeta sitten jakelu Windowsista komennolla wsl --shutdown ja käynnistä se uudelleen. Jos polku on symbolinen linkki eikä tavallinen tiedosto, poista linkki ennen oman sisällön kirjoittamista, koska linkin kautta kirjoittaminen voi luoda luodun kohteen uudelleen seuraavalla käynnistyksellä. Siitä hetkestä tiedosto on sinun, eikä mikään kirjoita sitä uudelleen.

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

Ilman hakutoimialuetta kvalifioimaton isäntänimi täydennetään julkisella juurella ja palaa vastauksena, ettei sellaista toimialuetta ole. timeout estää kuollutta ensimmäistä palvelinta jumittamasta jokaista hakua, attempts rajoittaa, kuinka monta yritystä haku kuluttaa, ja rotate jakaa uudelleenyritykset sen sijaan, että aloittaisi aina ylhäältä. Kauppa on, ettei tiedosto enää seuraa VPN:ää, jonka resolveriosoite vaihtuu istuntojen välillä.

Käsittele liikkuva resolveri ja varmista sitten

Jotkut asiakkaat antavat istuntokohtaisen resolverin, joten staattinen tiedosto hajoaa seuraavassa yhteydessä. Kaksi lähestymistapaa on puolustettavissa. Kirjoita tiedosto pienestä skriptistä aina, kun osoite muuttuu, tai jätä luonti päälle ja varmista, että sovitin, josta WSL kopioi, kantaa yrityksen palvelinta. Toinen ei tarvitse koukkua ja epäonnistuu aina, kun luonti ohittaa VPN-sovittimen; molemmat vaativat silti IPv6-ristiriidan ratkaisemista ensin.

Windows soveltaa myös omia nimikäytäntöjiään, kuten liitteen hakuluetteloa tai tiettyjen toimialueiden ratkaisukäytäntöä, eikä sovittimien osoitteiden kopiointi toista näitä sääntöjä. Jos nimi ratkeaa Windowsissa mutta ei jakelussa samalla palvelimella, vertaa liitteiden käsittelyä ennen kuin syytät tunnelia.

Testaa nimellä äläkä paketilla: getent hosts sensor-access0.corp.example kulkee resolveripinon läpi, kun taas ping voi onnistua välimuistissa olevaa tai kirjaimellista osoitetta vastaan. Toista sitten irrotuksen ja uudelleenyhdistämisen jälkeen, koska asetus, joka toimii kerran ja luodaan uudelleen jatkettaessa, ei ollut koskaan korjattu. Tallenna edellinen sisältö ja merkitse, mikä komponentti omistaa polun kyseisellä koneella, jotta seuraava muutos alkaa todisteilla.

Aiheeseen liittyvät artikkelit