DHCP e aggiornamento dinamico record DNS III

Per gestire la registrazione di client non a dominio nel dns, come ad esempio le stampanti di rete, è possibile sfruttare la funzionalità del servizio DHCP di aggiornamento automatico dei record DNS. Questo processo richiede l’utilizzo di un’opzione DHCP aggiuntiva, ovvero l’opzione Client FQDN (opzione 81), che consente al client di rendere disponibile il proprio nome di dominio completo (FQDN, Fully Qualified Domain Name) oltre alle istruzioni per indicare al server DHCP le modalità di elaborazione degli eventuali aggiornamenti dinamici DNS per proprio conto. A riguardo si veda Using DNS servers with DHCP.

Affinché tale registrazione funzioni correttamente è opportuno configurare correttamente tale funzionalità.

Per prima cosa occorre abilitare la funzionalità del servizio DHCP di aggiornamento automatico sulle proprietà IPv4 sul server DHCP selezionando opportunamente le impostazioni come segue:

image

La selezione dell’opzione Aggiorna in modo dinamico i record A e PRT del DNS solo se richiesto dai client DHCP implica che il server DHCP assegni il lease di un indirizzo IP e includendo l’opzione 81 che stabilisce che il server DHCP registri il record PTR del DNS e che il client registri il record A del DNS. Questa è la configurazione ottimale per il client membri di dominio con la zona DNS impostata per gli aggiornamenti dinamici sicuri ovvero la configurazione di default per ambienti Active Directory.

image

L’impostazione Aggiorna in modo dinamico i record A e PTR del DNS per client DHCP che non richiedono aggiornamenti (ad esempio, i client che eseguono Windows NT 4.0) implica che il server DHCP non invii aggiornamenti per i client che non sono in grado di utilizzare l’opzione Client FQDN (opzione 81) per richiedere la modalità di gestione degli aggiornamenti. Questa è la configurazione ottimale per il client che non sono membri di dominio e con la zona DNS impostata per gli aggiornamenti dinamici sicuri, ovvero la configurazione di default per ambienti Active Directory, e che quindi non potrebbero aggiornare autonomante i loro record A (per esempio le stampanti di rete).

Tali impostazioni possono essere definite a livello di server DHCP, scope e reservation, ma applicate con il seguente ordine di precedenza reservation, quindi scope  e infine server DHCP. Quindi le impostazioni definite a livello di reservation avranno la precedenza su quelle definite a livello di scope, le quali avranno la precedenza su quelle definite a livello di server.

Affinché il server DHCP possa eseguire le registrazioni dei record DNS occorre che ne abbia diritti ed è possibile concedere tale autorizzazione in due modi:

Modo 1:

Creare un account di Active Directory membro del gruppo DnsUpdateProxy senza nessun privilegio speciale, con una password complessa senza scadenza e impostarlo sulle proprietà IPv4 sul/sui server DHCP, in questo modo i record registrati dal server DHCP saranno di proprietà dell’utente utilizzato dal server DHCP per la registrazione degli aggiornamenti dinamici dei record DNS, mentre i record A registrati dai client membri di dominio saranno di proprietà dell’account computer del client.

image

Questa modo è anche la best practices consigliata quando il servizio DHCP è in esecuzione su un domain controller, a riguardo si veda DHCP: Credentials for DNS update should be configured if secure dynamic DNS update is enabled and the domain controller is on the same host as the DHCP server.

Se si hanno più server DHCP è consigliabile utilizzare lo stesso account utente per la registrazione dei record DNS in modo che un server DHCP possa gestire anche un record che che è stato creto da un alro server.

Volendo è anche possibile eseguire la configurazione tramite il seguente comando:

Netsh.exe dhcp server \\servername set dnscredentials username domainname password

Oppure verificare l’impostazione tramite il comando:

Netsh.exe dhcp server \\servername show dnscredentials

A riguardo si veda anche DHCP, Dynamic DNS, and DCs: How about Some PowerShell to Spice Up a Mind-Numbing Topic?.

Modo 2:

Aggiungere gli account computer del/dei server DHCP membri del gruppo DnsUpdateProxy in questo modo per i record DNS registrati risulteranno però non protetti come indicato in KB816592 How to configure DNS dynamic updates in Windows Server 2003 – Security considerations when you use the DnsUpdateProxy group.

Questa problematica è stata mitigata dall’introduzione in Windows Server 2008 R2 del parametro globale OpenACLOnProxyUpdates che se impostato a 0 sul/sui server DNS i record creati da un membro del gruppo DNS Update Proxy potranno essere modificati solo da un membro del gruppo DNS Update Proxy (a riguardo si veda Updating DNS Resource Records).

Ritardi nell’aggiornamento dei record DNS

Nel caso si riscontrino ritardi nell’aggiornamento dei record DNS da parte del server DHCP si vedano le considerazioni fatte nella KB3069564 DHCP dynamic updates of DNS registrations are delayed or not processed:

In versions of Windows Server that are earlier than Windows Server 2008, the DHCP server uses the DNS servers that are configured in the TCP/IP properties of the network connections as the target of the dynamic updates.
A change in the DHCP dynamic update behavior causes DHCP servers in Windows Server 2008 and later versions to select a DNS server by the following criteria in the given order:

  • Scope options
  • Server options
  • TCP/IP configuration of the network connections

Assume that a scope is configured to have DHCP scope options and that DNS servers are configured. In this situation, the DNS servers that are specified in the scope options will be used as the target DNS servers by the DHCP server for dynamic updates for lease records from that scope.
If the DNS servers that are specified for the scope do not support dynamic updates, the update fails. The DHCP server retries several times to register the failing update. In the meantime, other dynamic updates are put into a queue for processing. Therefore, pending updates are delayed and registrations are not processed in a timely manner.

To prevent failing updates and delayed pending updates, specify DNS servers that support dynamic updates at the appropriate level.

Use the following registry value to override the default behavior in Windows Server 2008 and Windows Server 2008 R2.
This method works for IPv4 scopes only. This value lets you specify the DNS server that should be used for dynamic updates. This overrides the default functionality for all scopes and causes DHCP to use only the specified DNS server for all IPv4 dynamic updates.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DHCPServer\Parameters\AlternateDnsServer\IP_ADDRESS (Reg_Sz)

At least one administrator has reported successfully preventing a delay in DNS updates registration by selecting the Always dynamically update DNS A and PTR records option on the DHCP server. We do not consider this action to be a viable workaround, and we have not determined why it might be effective. However, you might find this information helpful.

Oltre a quanto riportato nella precedete KB si veda anche la KB 919709 DHCP clients may take a long time to register their names on a DNS server that is running Windows Server 2003 che contiene un’hotfix specifica per sistemi Windows Server 2003 che esguono il servizio DHCP:

This problem occurs if the following conditions are true:

  • A centralized DNS server is configured on a Wide Area Network (WAN). This DNS server owns all DNS zones.
  • Some local cached DNS servers are configured on the local area network (LAN).
  • One or more local DNS servers are configured for every DHCP scope.
  • Many DHCP renewal requests occur because the DHCP clients roam aggressively.

For every DHCP renewal request, the DHCP server puts the name registration request of the DHCP client in a queue. Then, the DHCP server handles the requests one by one. When the DHCP server handles the DHCP client request, the DHCP server has to contact both a local DNS server and the centralized DNS server. This is because the local DNS server does not own DNS zones for every request. Therefore, unnecessary network traffic occurs over the WAN. This traffic delays the resolution of DHCP client requests. If the volume of the DHCP requests is large, it takes a long time for some DHCP clients to register their names.

Per ulteriori informazioni si vedano anche i seguenti:

Per un approfondimento sulla funzionalità di Name Protection del DHCP introdotta in Windows Server 2008 R2 si veda invece Windows 2008 R2 DHCP Name Protection e Option 81.

[Update 01]

Altre condizioni che possono generare potenziali problemi durate la registrazione del record DNS da parte di dispositivi non a dominio come le stampanti di rete sono i seguenti:

1. Abilitazione di DDNS sul dispositivo che implica tentativi di registrazione nel DNS in autonomia da parte del dispositivo che non può andare a buon fine se il DNS di un dominio AD configurato per gestire solo gli aggiornamenti dinamici sicuri, a meno che il dispositivo non sia a dominio o non utilizzi per la registrazione le credenziali di account utente membro del gruppo DnsUpdateProxy.

D seguito ad esempio le configurazioni di una Lexmark E360dn reletive a DDNS e mDNS:

image

Anche la funzionalità di mDNS può essere disabilitata in una un’infrastruttura Active Directory dal momento che il multicast Domain Name System (mDNS) serve per risolvere gli host name in indirizzi IP in piccole reti in cui non sia disponibile un servizio di risoluzione dei nomi come ad esempio il DNS.

2. Controllare i log del DHCP per default in C:\WINDOWS\System32\dhcp per verificare se non vi sono tentativi di registrazione di hostname con caratteri non validi, a riguardo si veda la KB909264 Naming conventions in Active Directory for computers, domains, sites, and OUs. In particolare un caso che mi è capitato è il tentativo di registrare a dominio degli access point CISCO con nome di default che contiene il carattere . (punto), il quale è uno dei caratteri da evitare negli host name come suggerito nella KB909264. La presenza di vari errori di registrazione nel DNS da parte del DHCP può in effetti causare poi rallentamenti o malfunzionamenti.

A riguardo si veda anche l’esperienza di una amminstratore di sistema riportata in questo post DHCP and Failing Dynamic DNS Update.

3. Nel caso vi sia un gran numero di richieste di registrazioni DNS da parte del DCHP ovviamente può accadere che si creii un overhead tale causare ritardi o mancate registrazioni a causa della saturazione della coda per le registrazioni DDNS del DHCP.

Come riportato nella KB 837061 DHCP server processes expired PTR resource records in Windows Server 2003 è possibile aumentare la coda tramite il DynamicDNSQueueLength nella chiave di registro  HKLM\SYSTEM\CurrentControlSet\Services\DhcpServer\Parameters. In Windows Server 2008 e successivi DynamicDNSQueueLength può avere un valore massimo di 65535.

A riguardo si vedano anche la KB932464 How DNS dynamic updates work together with the DNS “aging and scavenging” process in Windows 2000 and in Windows Server 2003 e il post Windows Server 2003 & 2008 – Ottimizzare la configurazione dei parametri del DHCP Server.