VPN perėmė DNS ir sugadino vietinius vardus: sutvarkykite sąrašą
Tunelis, kuris įdiegia savo sprendėjus, paslepia LAN vardus. Sutvarkykite sąsajos DNS sąrašą, filtruokite push ir dar kartą patikrinkite po prisijungimo iš naujo.
Tunelis pakyla, intranetas įsikrauna, o spausdintuvo vardas nustoja sprendžiamas. Arba atvirkščiai: vietiniai vardai dar veikia, o viskas įmonės tinkle baigiasi skirtuoju laiku. Abu simptomai ateina iš tos pačios vietos, sprendėjų sąrašo, kurį VPN klientas perrašė prisijungdamas.
Sutvarkykite sąrašą sąmoningai, o tada push mechanizmą nagrinėkite atskirai. Maršrutai yra trečia tema, o ne tai, kas čia taisoma.
Kokį sąrašą programos iš tikrųjų naudoja
Windows sprendžia per sąsajos lygio nustatymus, o ne per tai, ką rodo koks nors dialogas, todėl pradėkite nuo kiekvienos sąsajos galiojančių sąrašų. Slapyvardis svarbesnis už rodomą vardą, nes kiekviena žemiau esanti komanda kreipiasi į sąsają. Suklydę su slapyvardžiu, pataisa atsidurs ne tame adapteryje. Atrodys, kad veikia iki kito prisijungimo, kai grįš paties tunelio įrašas.
Klausimas, kurie serveriai atsidūrė priekyje ir ar jie atėjo kaip statiniai įrašai, ar kaip DHCP nuoma. Abu faktai nulemia, kokia pataisa jums prieinama.
netsh interface ipv4 show dnsservers
Get-DnsClientServerAddress -AddressFamily IPv4
Perskaitykite išvestį tunelio adapteriui ir fiziniam adapteriui bei užsirašykite kiekvieną adresą abiejuose. Statinį įrašą galima pašalinti politika ar scenarijumi; DHCP suteiktas įrašas susietas su nuoma ir grįš, o tai keičia pasirinktiną pataisą. Nuotolinio tinklo vardus sprendžia paskelbtas sprendėjas, vietinio LAN vardus – fizinis adapteris, o užklausa keliauja į sąrašą, kuris tikrinamas pirmas.
Pašalinkite įstumtus serverius arba sustatykite juos žemiau
Ištrinkite įstumtus serverius, kai nieko tunelio viduje jų nereikia, nes fizinio adapterio sprendėjai vėl perima darbą. Palikite juos tik jei nuotolinis tinklas turi zonas, į kurias atsakyti gali vien jo serveriai, ir tokiu atveju pastatykite prieš juos vietinį sprendėją. Dvi žemiau esančios komandos apima abu pasirinkimus, todėl rinkitės situaciją atitinkančią, o ne vykdykite abi.
netsh interface ipv4 delete dnsservers name="Corp VPN" address=all validate=no
netsh interface ipv4 add dnsservers name="Corp VPN" address=172.16.20.1 index=1 validate=no
Indeksas 1 tikrinamas pirmas, todėl įstumti adresai lieka prieinami, bet nustoja būti numatytuoju atsakymu į kiekvieną užklausą. Vėliavėlė validate=no praleidžia pasiekiamumo testą, kuris dažnai nepavyksta, kol tunelis dar stabilizuojasi, todėl patvirtinkite rezultatą komanda show, o ne pasitikėkite išėjimo kodu.
Prieš tuo pasikliaudami verta žinoti dvi ribas. Windows neištrins serverių, kurie atėjo per DHCP naudojant netsh, ir tos reikšmės išlieka kaip DhcpNameServer po sąsajos registro raktu, todėl registro keitimas yra paskutinė priemonė, kurią po kitos nuomos reikia patikrinti iš naujo. Adapterių susiejimo tvarka taip pat nėra patikimas reitingavimo mechanizmas, nes VPN klientas gali įterpti savo įrašą sąrašo viršuje.
Kur galima filtruoti push
Geresnė pataisa pašalina parinktį prieš ją pritaikant. Community OpenVPN klientas gali filtruoti įstumtą direktyvą pagal pavadinimą, o tai palieka serverio konfigūraciją nepaliestą.
pull-filter ignore "dhcp-option DNS "
Galinis tarpas priklauso atitikmeniui ir filtras įvardija parinktį, o ne serverio adresą. Jei profilyje taip pat yra direktyva block-outside-dns, jos pašalinimas keičia apsaugą nuo nuotėkio, o ne vardų sprendimą, todėl nuspręskite tai atskirai, o ne sujunkite du pakeitimus.
Vienam užsispyrusiam pagrindinio kompiuterio vardui viena eilutė Windows hosts byloje yra stabilesnė nei sprendėjų perrikiavimas visai mašinai. Ji taip pat nematoma kitam žmogui, todėl užsirašykite ją ten, kur dokumentuojama mašinos konfigūracija.
Padarykite, kad pataisa išgyventų prisijungimą iš naujo
Vardų sprendimą reikia testuoti du kartus, kartą prieš pasirinktą serverį ir kartą tokia forma, kokią naudoja programa. Ši pora atskiria sprendėjų tvarkos problemą nuo serverio, kuris visai neatsako. Praleidus pirmą testą, dvi priežastys lieka susipynusios.
Resolve-DnsName intranet.corp.example -Server 172.16.20.1
Resolve-DnsName printer.lan
Prisijunkite prie tunelio iš naujo ir pakartokite abi komandas. Tai, ką pakeitėte rankiniu būdu, galioja tik iki kito prisijungimo, nes klientas, keldamas adapterį, iš naujo sukuria sprendėjų būseną. Įdėkite netsh eilutes į palaikomą savo kliento prisijungimo scenarijų, leiskite jam sėkmingai pasibaigti ir pridėkite trumpą laukimą prieš jį paleidžiant. Klientas, kuris taiko DNS po scenarijaus, vis tiek perrašys rezultatą.
Jei vieši vardai sprendžiami, o vidiniai po pataisos vis dar nepavyksta, sprendėjų sąrašas nebėra įtariamasis. Užklausa greičiausiai visai nepasiekia serverio, o tai rodo maršrutizavimą ar ugniasienės taisyklę, o ne kitą DNS nustatymą. Užsirašykite sąsajos slapyvardį ir adresus, prie kurių sustojote, nes abu skiriasi tarp mašinų ir nė vienas atskirai neišgyvena perstatymo.