Dos servidors DNS en un adaptador no separen espais de noms
Llistar dos resolutors en un adaptador no dona a cada domini la seva pròpia autoritat. Cal crear dues regles amb abast, provar la selecció i suprimir exactament aquestes.
Llistar dos resolutors en un adaptador sembla una manera d’enviar un domini a un servidor i un altre domini a l’altre, i res de la llista de resolutors funciona així. Windows resol pel nom, i la decisió de quin servidor cal preguntar prové d’objectes de política, no d’una llista ordenada d’adreces. El model mental que cal substituir és la cua: no hi ha un primer servidor per al domini A ni un segon servidor per al domini B. Hi ha un conjunt de regles per espai de noms que anomena els servidors explícitament, i un cop existeixen aquestes regles, la llista d’adaptadors deixa de ser interessant.
El mite: dues adreces separen dos dominis
La creença sobreviu perquè funciona per accident quan un servidor respon a tot i el segon només és una reserva. Un client pregunta al primer servidor, aquest servidor reenvia o fa recursió, i la resposta arriba; ningú no s’adona quin resolutor tenia realment la zona. La il·lusió es trenca en el moment que els dos espais de noms viuen en zones privades separades sense reenviament entre elles, perquè llavors el primer servidor respon amb autoritat que el nom no existeix. Una resposta negativa del primer servidor no activa la reserva, perquè el client ha rebut una resposta definitiva i no un error.
Una llista ordenada no té cap concepte de domini, així que no pot expressar la intenció. El que la llista controla realment és quin servidor es pregunta primer i quin es prova segon, i totes dues respostes s’apliquen per igual a tots els noms.
Què fa servir realment Windows per triar
La taula de polítiques de resolució de noms fa coincidir un nom amb espais de noms configurats i tria els servidors i les opcions d’aquella coincidència. Les regles es poden configurar localment, lliurar per directiva de grup o proporcionar des d’un perfil VPN, i la política efectiva és una combinació i no una llista única. Per això el primer diagnòstic sempre és l’estat efectiu: una regla creada localment que perd contra una política administrada produeix un laboratori que no es comporta gens com la seva configuració suggereix. Les regles també es fan coincidir per especificitat, així que una entrada àmplia d’espai de noms pot eclipsar una de concreta de maneres invisibles en una llista d’elements configurats. Llegir l’ordre efectiu és l’única manera de veure quina regla guanya.
Get-DnsClientNrptRule
Get-DnsClientNrptPolicy -Effective
La primera ordre llista què hi ha configurat a la màquina; la segona mostra què aplicarà realment el client, incloses les entrades que han vingut d’altres llocs. Si la sortida efectiva conté espais de noms administrats, el propietari d’aquella política és el lloc correcte per demanar el canvi, no la llista local de regles. Totes dues ordres només llegeixen estat, així que executar-les abans que algú accepti el canvi no costa res.
Una regla per espai de noms, conserveu l’objecte
Un cop entès l’estat efectiu, creeu una regla per espai de noms i conserveu l’objecte que retorna cada ordre. Els noms de visualització són etiquetes per a persones, i l’identificador únic de l’objecte retornat és l’objectiu de supressió fiable després. Escriviu tots dos identificadors a la mateixa nota de canvi que registra els espais de noms i els resolutors, perquè la sessió que els va crear no serà la sessió que netegi.
$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
El punt inicial marca una coincidència de sufix, així que la regla cobreix app.svc.internal.example i qualsevol altra cosa que hi hagi sota. Les dues adreces d’aquí pertanyen al pla d’encaminament propi d’aquest laboratori; una regla no crea una zona, no instal·la una ruta ni autoritza l’aplicació que finalment es connecta, i la referència d’Add-DnsClientNrptRule documenta exactament quin paràmetre fa què.
Fixeu-vos en què no fan aquestes ordres: són per a tota la màquina, no es limiten a una sessió VPN, i sobreviuen al tancament de la finestra. Un laboratori que ho oblida deixa política enrere quan el túnel ja no hi és.
Demostreu que el client ha triat el servidor
Preguntar a un servidor concret si coneix un nom demostra que el servidor pot respondre, cosa que no és la mateixa afirmació que el client hagi triat aquell servidor. La prova que importa resol un nom real pel camí ordinari del client i després confirma quin resolutor l’ha gestionat, idealment mentre el túnel que proporciona la ruta és actiu. Si el túnel està caigut, una regla ben limitada encara apunta a un servidor inabastable, que és un problema d’encaminament i no de política. Proveu tots dos estats perquè després es puguin distingir.
Resolve-DnsName app.svc.internal.example
Resolve-DnsName build.research.internal.example
Resolve-DnsName app.svc.internal.example -DnsOnly -NoHostsFile
Vigileu les respostes en memòria cau del període anterior a l’existència de les regles, i vigileu les aplicacions que eviten del tot el resolutor del sistema amb el seu propi DNS xifrat. Els sufixos de cerca són una altra funció separada: una regla pot triar un resolutor per a un nom complet sense ensenyar a Windows a expandir un nom d’amfitrió nu dins d’aquell espai de noms.
Suprimiu exactament el que heu creat
La neteja és on un laboratori es converteix en una història alliçonadora. Suprimir totes les regles de la màquina és ràpid i elimina política de la qual algú altre depèn, així que feu servir els identificadors capturats quan es van crear les regles, i torneu a llegir l’estat efectiu després per confirmar que la màquina ha tornat on era. Si la sessió que les va crear ja no hi és, la nota de canvi és l’únic lloc on existeixen els identificadors. Aquesta és la raó d’escriure’ls abans que s’executi la primera ordre, no després.
Remove-DnsClientNrptRule -Name $svcRule.Name -Force
Remove-DnsClientNrptRule -Name $resRule.Name -Force
Get-DnsClientNrptPolicy -Effective
Per a un desplegament i no per a un laboratori, la qüestió de la durada importa tant com la regla. Un perfil VPN pot portar les regles d’espai de noms i triar si persisteixen més enllà de la connexió; una regla que persisteix mentre el resolutor és inabastable deixa els clients preferint un servidor mort, i una regla limitada a la connexió desapareix quan ho fa el túnel. Decidiu quin d’aquests comportaments necessita el servei, marqueu qui posseeix la regla i deixeu la divisió d’autoritat documentada al costat del perfil i no en la memòria d’algú sobre un laboratori.