Popisivanje dva razrješivača na jednom adapteru izgleda kao način da se jedna domena pošalje na jedan poslužitelj, a druga domena na drugi, i ništa na popisu razrješivača ne radi tako. Windows razrješava po imenu, a odluka o tome koji će se poslužitelj pitati dolazi iz objekata pravila, a ne iz uređenog popisa adresa. Mentalni model koji treba zamijeniti jest red čekanja: ne postoji prvi poslužitelj za domenu A ni drugi poslužitelj za domenu B. Postoji skup pravila po prostoru naziva koji izričito imenuje poslužitelje, i kad ta pravila postoje, popis adaptera prestaje biti zanimljiv.

Mit: dvije adrese dijele dvije domene

Vjerovanje opstaje jer slučajno funkcionira kad jedan poslužitelj odgovara na sve, a drugi je samo pričuva. Klijent pita prvi poslužitelj, taj poslužitelj prosljeđuje ili rekurzivno pita, i odgovor stigne; nitko ne primjećuje koji je razrješivač doista držao zonu. Iluzija se raspada u trenutku kad dva prostora naziva žive u odvojenim privatnim zonama bez prosljeđivanja među njima, jer prvi poslužitelj tada autoritativno odgovara da ime ne postoji. Negativan odgovor prvog poslužitelja ne pokreće pričuvu, jer je klijent dobio konačan odgovor, a ne kvar.

Uređeni popis nema pojam domene, pa ne može izraziti namjeru. Ono čime popis doista upravlja jest koji se poslužitelj pita prvi i koji se isprobava drugi, i oba odgovora vrijede jednako za svako ime.

Što Windows doista rabi za odabir

Tablica pravila razrješavanja naziva uspoređuje ime s konfiguriranim prostorima naziva i odabire poslužitelje i mogućnosti za to podudaranje. Pravila se mogu konfigurirati lokalno, dostaviti pravilnikom grupe ili dati VPN profilom, a djelotvorno je pravilo kombinacija, a ne jedan popis. Zato je prva dijagnostika uvijek djelotvorno stanje: lokalno stvoreno pravilo koje gubi od upravljanog pravila stvara laboratorij koji se ponaša posve drukčije nego što njegova konfiguracija sugerira. Pravila se podudaraju i po specifičnosti, pa širok unos prostora naziva može zasjeniti uzak na načine koji su nevidljivi u popisu konfiguriranih stavki. Čitanje djelotvornog redoslijeda jedini je način da se vidi koje pravilo pobjeđuje.

Get-DnsClientNrptRule
Get-DnsClientNrptPolicy -Effective

Prva naredba popisuje što je konfigurirano na računalu; druga pokazuje što će klijent doista primijeniti, uključujući unose koji su došli odasvud drugdje. Ako djelotvorni izlaz sadrži upravljane prostore naziva, vlasnik tog pravila pravo je mjesto za traženje promjene, a ne lokalni popis pravila. Obje naredbe samo čitaju stanje, pa njihovo pokretanje prije nego što se itko složi s promjenom ništa ne košta.

Jedno pravilo po prostoru naziva, sačuvajte objekt

Nakon što je djelotvorno stanje shvaćeno, stvorite jedno pravilo po prostoru naziva i sačuvajte objekt koji svaka naredba vrati. Nazivi za prikaz etikete su za ljude, a jedinstveni identifikator u vraćenom objektu poslije je pouzdana meta za brisanje. Upišite oba identifikatora u istu bilješku o promjeni koja bilježi prostore naziva i razrješivače, jer sesija koja ih je stvorila neće biti sesija koja čisti.

$svcRule = Add-DnsClientNrptRule -Namespace ".svc.internal.example" -NameServers "10.60.0.53" -DisplayName "VPN lab services" -PassThru
$resRule = Add-DnsClientNrptRule -Namespace ".research.internal.example" -NameServers "10.61.0.53" -DisplayName "VPN lab research" -PassThru
$svcRule | Select-Object Name, Namespace, NameServers
$resRule | Select-Object Name, Namespace, NameServers

Vodeća točka označava podudaranje sufiksa, pa pravilo pokriva app.svc.internal.example i sve ostalo ispod njega. Dvije adrese ovdje pripadaju vlastitom planu usmjeravanja ovog laboratorija; pravilo ne stvara zonu, ne instalira rutu ni ne ovlašćuje aplikaciju koja se na kraju povezuje, i referenca za Add-DnsClientNrptRule točno dokumentira koji parametar što čini.

Obratite pozornost na to što ove naredbe ne rade: one su na razini cijelog računala, nisu ograničene na VPN sesiju, i preživljavaju zatvaranje prozora. Laboratorij koji to zaboravi ostavlja pravila za sobom nakon što tunel nestane.

Dokažite da je klijent odabrao poslužitelj

Pitanje određenom poslužitelju poznaje li neko ime dokazuje da poslužitelj može odgovoriti, što nije ista tvrdnja kao da je klijent odabrao taj poslužitelj. Test koji je važan razrješava stvarno ime uobičajenim klijentskim putem i zatim potvrđuje koji se razrješivač njime bavio, idealno dok je tunel koji daje rutu podignut. Ako je tunel pao, ispravno ograničeno pravilo i dalje pokazuje na nedostupan poslužitelj, a to je problem usmjeravanja, a ne pravila. Ispitajte oba stanja kako bi se poslije mogla razlikovati.

Resolve-DnsName app.svc.internal.example
Resolve-DnsName build.research.internal.example
Resolve-DnsName app.svc.internal.example -DnsOnly -NoHostsFile

Pazite na predmemorirane odgovore iz razdoblja prije nego što su pravila postojala i na aplikacije koje posve zaobilaze razrješivač sustava vlastitim šifriranim DNS-om. Sufiksi pretraživanja još su jedna zasebna značajka: pravilo može odabrati razrješivač za puno ime, a da pritom ne nauči Windows da golo ime hosta proširi u taj prostor naziva.

Uklonite točno ono što ste stvorili

Čišćenje je mjesto na kojem laboratorij postaje poučna priča. Brisanje svakog pravila na računalu brzo je i uklanja pravila o kojima ovisi netko drugi, stoga rabite identifikatore zabilježene pri stvaranju pravila i poslije ponovno pročitajte djelotvorno stanje kako biste potvrdili da se računalo vratilo ondje odakle je krenulo. Ako je sesija koja ih je stvorila nestala, bilješka o promjeni jedino je mjesto gdje identifikatori postoje. Zato ih treba zapisati prije nego što se pokrene prva naredba, a ne poslije.

Remove-DnsClientNrptRule -Name $svcRule.Name -Force
Remove-DnsClientNrptRule -Name $resRule.Name -Force
Get-DnsClientNrptPolicy -Effective

Za uvođenje, a ne laboratorij, pitanje životnog vijeka važno je koliko i pravilo. VPN profil može nositi pravila prostora naziva i odabrati hoće li ostati i nakon veze; pravilo koje ostaje dok je razrješivač nedostupan ostavlja klijente da daju prednost mrtvom poslužitelju, a pravilo ograničeno na vezu nestaje kad i tunel. Odlučite koje od tih ponašanja usluga treba, označite kome pravilo pripada i ostavite podjelu ovlasti dokumentiranom uz profil, a ne u nečijem sjećanju na laboratorij.

Povezani članci