Dva DNS servery na jednom adaptéru nerozdělují jmenné prostory
Uvedení dvou překladačů na jednom adaptéru nedává každé doméně vlastní pravomoc. Vytvořte dvě omezená pravidla, otestujte volbu a odstraňte právě je.
Uvedení dvou překladačů na jednom adaptéru vypadá jako způsob, jak poslat jednu doménu na jeden server a jinou doménu na druhý, a nic v seznamu překladačů tak nefunguje. Windows překládá podle jména a rozhodnutí, kterého serveru se zeptat, přichází z objektů zásad, nikoli z uspořádaného seznamu adres. Myšlenkový model, který je třeba nahradit, je fronta: neexistuje první server pro doménu A a druhý server pro doménu B. Existuje sada pravidel pro každý jmenný prostor, která servery výslovně pojmenovává, a jakmile tato pravidla existují, seznam adaptéru přestává být zajímavý.
Mýtus: dvě adresy rozdělují dvě domény
Přesvědčení přežívá, protože funguje náhodou, když jeden server odpovídá na všechno a druhý je jen záloha. Klient se zeptá prvního serveru, ten předá dotaz dál nebo rekurzivně dotáže a odpověď dorazí; nikdo si nevšimne, který překladač zónu skutečně držel. Iluze se zhroutí v okamžiku, kdy oba jmenné prostory žijí v oddělených privátních zónách bez předávání mezi sebou, protože první server pak autoritativně odpoví, že jméno neexistuje. Záporná odpověď od prvního serveru nespouští záložní variantu, protože klient dostal konečnou odpověď, nikoli selhání.
Uspořádaný seznam nemá pojem domény, takže nemůže vyjádřit záměr. Seznam ve skutečnosti řídí, kterého serveru se ptáme první a který zkoušíme druhý, a obě odpovědi platí pro každé jméno stejně.
Co Windows skutečně používá k volbě
Tabulka zásad překladu jmen porovnává jméno s nakonfigurovanými jmennými prostory a vybírá servery a možnosti pro tuto shodu. Pravidla lze nastavit lokálně, dodat zásadami skupiny nebo zadat profilem VPN, a efektivní zásada je kombinace, nikoli jediný seznam. Proto je první diagnostika vždy efektivní stav: lokálně vytvořené pravidlo, které prohrává se spravovanou zásadou, vytváří laboratoř, jejíž chování vůbec neodpovídá její konfiguraci. Pravidla se také porovnávají podle specifickosti, takže široký záznam jmenného prostoru může zastínit úzký způsobem, který v seznamu nakonfigurovaných položek není vidět. Čtení efektivního pořadí je jediný způsob, jak zjistit, které pravidlo vyhrává.
Get-DnsClientNrptRule
Get-DnsClientNrptPolicy -Effective
První příkaz vypíše, co je na stroji nakonfigurováno; druhý ukáže, co klient skutečně použije, včetně položek, které přišly odjinud. Pokud efektivní výstup obsahuje spravované jmenné prostory, správným místem pro žádost o změnu je vlastník této zásady, nikoli místní seznam pravidel. Oba příkazy jen čtou stav, takže jejich spuštění předtím, než se někdo na změně shodne, nic nestojí.
Jedno pravidlo na jmenný prostor, objekt si ponechte
Když je efektivní stav pochopen, vytvořte jedno pravidlo na jmenný prostor a uchovejte objekt, který každý příkaz vrátí. Zobrazované názvy jsou popisky pro lidi a jedinečný identifikátor ve vráceném objektu je potom spolehlivým cílem pro smazání. Zapište oba identifikátory do stejné poznámky o změně, která zaznamenává jmenné prostory a překladače, protože relace, která je vytvořila, nebude relací, která uklidí.
$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
Počáteční tečka označuje shodu přípony, takže pravidlo pokrývá app.svc.internal.example a cokoli dalšího pod ním. Dvě adresy zde patří k vlastnímu plánu směrování této laboratoře; pravidlo nevytváří zónu, neinstaluje trasu ani neopravňuje aplikaci, která se nakonec připojí, a referenční stránka Add-DnsClientNrptRule přesně popisuje, který parametr co dělá.
Všimněte si, co tyto příkazy nedělají: jsou pro celý stroj, nejsou omezeny na relaci VPN a přežijí zavření okna. Laboratoř, která na to zapomene, po zániku tunelu zanechá zásady.
Dokažte, že klient zvolil server
Zeptat se konkrétního serveru, zda zná jméno, dokazuje, že server umí odpovědět, což není totéž tvrzení jako to, že klient tento server zvolil. Test, na kterém záleží, přeloží skutečné jméno běžnou cestou klienta a potom potvrdí, který překladač se o něj postaral, ideálně tehdy, když je tunel poskytující trasu aktivní. Pokud je tunel mimo provoz, správně omezené pravidlo stále ukazuje na nedostupný server, což je problém směrování, nikoli zásad. Otestujte oba stavy, aby se daly později rozlišit.
Resolve-DnsName app.svc.internal.example
Resolve-DnsName build.research.internal.example
Resolve-DnsName app.svc.internal.example -DnsOnly -NoHostsFile
Sledujte odpovědi uložené v mezipaměti z období před vznikem pravidel a sledujte aplikace, které zcela obcházejí systémový překladač vlastním šifrovaným DNS. Vyhledávací přípony jsou další samostatná funkce: pravidlo může zvolit překladač pro plné jméno, aniž by učilo Windows rozšiřovat holé jméno hostitele do daného jmenného prostoru.
Odstraňte přesně to, co jste vytvořili
Úklid je místo, kde se laboratoř mění v odstrašující příběh. Smazat všechna pravidla na stroji je rychlé a odstraní zásady, na kterých závisí někdo jiný, proto použijte identifikátory zachycené při vytvoření pravidel a poté znovu přečtěte efektivní stav, abyste potvrdili, že se stroj vrátil tam, kde začínal. Pokud je relace, která je vytvořila, pryč, poznámka o změně je jediné místo, kde identifikátory existují. To je důvod, proč je zapsat před spuštěním prvního příkazu, ne po něm.
Remove-DnsClientNrptRule -Name $svcRule.Name -Force
Remove-DnsClientNrptRule -Name $resRule.Name -Force
Get-DnsClientNrptPolicy -Effective
Pro nasazení, nikoli pro laboratoř, je otázka životnosti stejně důležitá jako pravidlo. Profil VPN může nést pravidla jmenných prostorů a zvolit, zda přetrvají i po připojení; pravidlo, které přetrvává, dokud je překladač nedostupný, nechává klienty upřednostňovat mrtvý server, a pravidlo omezené na připojení zmizí spolu s tunelem. Rozhodněte, které z těchto chování služba potřebuje, označte, kdo pravidlo vlastní, a nechte rozdělení pravomocí zdokumentované vedle profilu, ne v něčí paměti na laboratoř.