KB3145126 e Domain Controller Windows Server 2008 R2

Come descritto nel post Fix: Loading DNS zones takes a long time on a Windows Server 2008 R2-based DNS server a marzo 2016 è stata rilasciata la fix KB3145126 Loading DNS zones takes a long time on a Windows Server 2008 R2-based DNS server per risolvere i problemi di lentezza di caricamento delle zone DNS su server DNS e Domain Controller Windows Server 2008 R2 causati dopo l’installazione della security update MS15-127: Security update for Microsoft Windows DNS to address remote code execution: December 8, 2015 e dell’hotfix KB3022780 DNS server does not respond with IP address to a CNAME query for a delegated zone in Windows Server 2008 R2.

Prima d’installare la KB3145126 occorre però eseguire una verifica sulle zone DNS per essere sicuri che siano compliance con l’RFC 2181 in caso contrario dopo l’installazione della KB3145126 il servizio DNS non si avvierà registrando il seguente evento di errore:

Nome registro: Application
Origine:       Application Error
ID evento:     1000
Categoria attività:(100)
Livello:       Errore
Parole chiave: Classico
Utente:        N/D

Descrizione:
Nome dell’applicazione che ha generato l’errore: dns.exe, versione: 6.1.7601.23375, timestamp: 0x56e06454
Nome del modulo che ha generato l’errore: dns.exe, versione: 6.1.7601.23375, timestamp: 0x56e06454
Codice eccezione: 0xc0000005
Offset errore 0x000000000006138f
ID processo che ha generato l’errore: 0xcdc
Ora di avvio dell’applicazione che ha generato l’errore: 0x01d1cbadfcd1c43e
Percorso dell’applicazione che ha generato l’errore: C:\Windows\system32\dns.exe
Percorso del modulo che ha generato l’errore: C:\Windows\system32\dns.exe
ID segnalazione: 3b548b39-37a1-11e6-abb5-001d096aa2f2

Per consentire l’avvio del servizio DNS più e occorrerà disinstallare la KB3145126 ed apportare le modifiche necessarie nelle zone DNS come descritto nella KB3145126:

This DNS service crash may occur if DNS is configured to have a CNAME and an SOA record that both exist for the “@” record. The “@” record identifies the root of a DNS zone. This can frequently be identified in the DNS Manager as a record with the <same as parent folder> name. The SOA and NS records are allowed in this folder. RFC 2181 describes name uniqueness checks for CNAME records. According to RFC 2181, the CNAME may not exist in the <same as parent name> folder (“@”) of a zone.

You may have to uninstall the KB3145126 update first to make the DNS service stable.

In estrema sintesi occorre verificare che nelle zone DNS non vi siano record DNS CNAME che puntino al zona stessa identificabili col nome “(come per la cartella padre)” o “(same as parent name)”.

image

Una volta identificati tali record è possibile rimuoverli manualmente oppure, come indicato nella KB3145126, tramite il comando DNSCMD:

To delete the CNAME records that do not comply with RFC 2181 based on the output that’s returned from the PowerShell script, type the following command at command prompt, and then press Enter:

DNSCMD /recorddelete DNS zone name @ cname

Per aiutare gli amministratori nel deploy la KB3145126 rende disponibile anche uno script PowerShell per l’identificazione delle zone DNS con record CNAME in conflitto con record SOA, per problemi d’impaginazione dello script la prima riga va però suddivisa in due come segue:

image

In ogni caso il consiglio è quello di procedere all’aggiornamento prima su di un domain controller Windows Server 2008 R2 verificare che non vi siano problemi di avvio del servizio DNS e quindi procedere con l’aggiornamento con gli altri domain controller.