To DNS-tenarar på éin adapter deler ikkje namnerom
Å lista to løysarar på éin adapter gir ikkje kvart domene si eiga myndigheit. Bygg to avgrensa reglar, test valet og fjern nøyaktig dei.
Å lista to løysarar på éin adapter ser ut som ein måte å senda eitt domene til éin tenar og eit anna domene til den andre, og ingenting i løysarlista fungerer slik. Windows løyser opp etter namn, og avgjerda om kva tenar som skal spørjast kjem frå policyobjekt i staden for frå ei ordna adresseliste. Mentalmodellen som må erstattast, er køen: det finst ingen første tenar for domene A og ingen andre tenar for domene B. Det finst eit regelsett per namnerom som namngir tenarane eksplisitt, og når desse reglane først finst, sluttar adapterlista å vera interessant.
Myten: to adresser deler to domene
Trua overlever fordi ho fungerer ved eit uhell når éin tenar svarar på alt og den andre berre er ein reserve. Ein klient spør den første tenaren, den tenaren videresender eller rekurserer, og svaret kjem; ingen legg merke til kva løysar som eigentleg hadde sona. Illusjonen brister i det augneblinken dei to namneromma lever i atskilde private soner utan videresending mellom seg, fordi den første tenaren då svarar autoritativt at namnet ikkje finst. Eit negativt svar frå den første tenaren utløyser ikkje reserven, sidan klienten har fått eit endeleg svar og ikkje ein feil.
Ei ordna liste har ikkje noko omgrep om domene, så ho kan ikkje uttrykkja intensjonen. Det lista eigentleg styrer, er kva tenar som vert spurd først og kven som vert prøvd som nummer to, og begge svara gjeld likt for kvart namn.
Kva Windows faktisk brukar for å velja
Tabellen for namneoppløysingspolicy matchar eit namn mot konfigurerte namnerom og vel tenarane og alternativa for det treffet. Reglar kan konfigurerast lokalt, leverast av gruppepolicy eller givast frå ein VPN-profil, og den effektive policyen er ein kombinasjon og ikkje éi liste. Derfor er den første diagnosen alltid den effektive tilstanden: ein lokalt oppretta regel som taper mot ein administrert policy gir eit laboratorium som oppfører seg heilt annleis enn konfigurasjonen tilseier. Reglar vert også matcha etter spesifisitet, så ein brei namneromsoppføring kan overskugga ein smal på måtar som er usynlege i ei liste over konfigurerte element. Å lesa den effektive rekkjefølgja er den einaste måten å sjå kva regel som vinn.
Get-DnsClientNrptRule
Get-DnsClientNrptPolicy -Effective
Den første kommandoen viser kva som er konfigurert på maskinen; den andre viser kva klienten faktisk vil bruka, inkludert oppføringar som kom frå andre stader. Viss den effektive utskrifta inneheld administrerte namnerom, er eigaren av den policyen den rette staden å be om endringa, ikkje den lokale regellista. Begge kommandoane les berre tilstand, så det kostar ingenting å køyra dei før nokon er samde om endringa.
Éin regel per namnerom, ta vare på objektet
Når den effektive tilstanden er forstått, opprett éin regel per namnerom og ta vare på objektet kvar kommando returnerer. Visingsnamn er etikettar for menneske, og den unike identifikatoren i det returnerte objektet er det pålitelege slettepunktet etterpå. Skriv begge identifikatorane i same endringsnotat som registrerer namneromma og løysarane, fordi økta som oppretta dei ikkje vert økta som ryddar opp.
$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
Den leidande prikken markerer suffikstreff, så regelen dekkjer app.svc.internal.example og alt anna under det. Dei to adressene her høyrer til dette laboratoriets eigen rutingsplan; ein regel opprettar ikkje ei sone, installerer ikkje ei rute og autoriserer ikkje programmet som til slutt koplar til, og den referansen for Add-DnsClientNrptRule dokumenterer nøyaktig kva parameter som gjer kva.
Legg merke til kva desse kommandoane ikkje gjer: dei er maskinbreie, dei er ikkje avgrensa til ei VPN-økt, og dei overlever at vindauget vert lukka. Eit laboratorium som gløymer dette, etterlèt policy når tunnelen er borte.
Prov at klienten valde tenaren
Å spørja ein bestemt tenar om han kjenner eit namn provar at tenaren kan svara, noko som ikkje er same påstand som at klienten valde den tenaren. Testen som tel, løyser eit ekte namn gjennom den vanlege vegen til klienten og stadfestar deretter kva løysar som handsama det, helst medan tunnelen som leverer ruta er oppe. Viss tunnelen er nede, peikar ein korrekt avgrensa regel framleis på ein utilgjengeleg tenar, og det er eit rutingsproblem og ikkje eit policyproblem. Test begge tilstandane slik at dei kan skiljast seinare.
Resolve-DnsName app.svc.internal.example
Resolve-DnsName build.research.internal.example
Resolve-DnsName app.svc.internal.example -DnsOnly -NoHostsFile
Fylg med på hurtiglagra svar frå perioden før reglane, og fylg med på program som omgår systemløysaren heilt med sin eigen krypterte DNS. Søkjesuffiks er ein annan separat funksjon: ein regel kan velja ein løysar for eit fullstendig namn utan å læra Windows å utvida eit bart vertsnamn til det namnerommet.
Fjern nøyaktig det du oppretta
Opprydding er staden der eit laboratorium vert ei åtvaring. Å sletta kvar regel på maskinen er raskt og fjernar policy som nokon andre er avhengig av, så bruk identifikatorane som vart fanga då reglane vart oppretta, og les den effektive tilstanden på nytt etterpå for å stadfesta at maskinen er tilbake der ho starta. Viss økta som oppretta dei er borte, er endringsnotatet den einaste staden identifikatorane finst. Det er grunnen til å skriva dei ned før den første kommandoen køyrer, ikkje etterpå.
Remove-DnsClientNrptRule -Name $svcRule.Name -Force
Remove-DnsClientNrptRule -Name $resRule.Name -Force
Get-DnsClientNrptPolicy -Effective
For ein utrulling og ikkje eit laboratorium betyr levetidsspørsmålet like mykje som regelen. Ein VPN-profil kan bera namneromsreglane og velja om dei varer utover tilkoplinga; ein regel som varer medan løysaren er utilgjengeleg, får klientar til å føretrekka ein død tenar, og ein tilkoplingsavgrensa regel forsvinn når tunnelen gjer det. Avgjer kva av desse åtferdene tenesta treng, marker kven som eig regelen, og lat fordelinga av myndigheit vera dokumentert ved sida av profilen i staden for i nokon sitt minne om eit laboratorium.