Partager via


Problèmes pouvant se produire avec de nombreux contrôleurs de domaine dans les zones DNS intégrées Active Directory

Numéro de base de connaissances d’origine : 267855
S’applique à : versions prises en charge de Windows Server

Symptômes

Les inscriptions DNS (Domain Name System) du localisateur SRV et du contrôleur de domaine (DC) localisateur A (enregistrés par Netlogon) et les enregistrements NS (ajoutés par les serveurs DNS faisant autorité) dans une zone DNS intégrée à Active Directory pour certains contrôleurs de domaine peuvent ne pas fonctionner dans un domaine qui contient un grand nombre de contrôleurs de domaine (généralement plus de 1200). Si la zone DNS intégrée à Active Directory porte le même nom que le nom de domaine Active Directory, les problèmes liés à l’inscription d’enregistrements A et d’enregistrements NS à la racine de zone semblent se produire dans un domaine avec plus de 400 contrôleurs de domaine. En outre, un ou plusieurs des messages d’erreur suivants peuvent être enregistrés dans le journal des événements :

Event Type: Error  
Event Source: DNS  
Event Category: None  
Event ID: 4011  
Description: The DNS server was unable to add or write an update of domain name xyz in zone xyz.example.com to the Active Directory. Check that the Active Directory is functioning properly and add or update this domain name using the DNS console. The event data contains the error.  
Data: 0000: 2a 23 00 00 *#..
Event Type: Error  
Event Source: DNS  
Event Category: None  
Event ID: 4015  
Description: The DNS server has encountered a critical error from the Active Directory. Check that the Active Directory is functioning properly. The event data contains the error.  
Data: 0000: 0b 00 00 00 ....  

The final status code from event 4015, 0x00000b, maps to error "LDAP_ADMIN_LIMIT_EXCEEDED Administration limit on the server has exceeded."
Event Type: Warning  
Event Source: NTDS Replication  
Event Category: Replication  
Event ID: 1093  
Description: The directory replication agent (DRA) could not apply changes to object DC=@,DC=xyz.example.com,CN=MicrosoftDNS,CN=System,DC=xyz,DC=example, DC=com (GUID <GUID>) because the incoming changes cause the object to exceed the database's record size limit. The incoming change to attribute 9017e (dnsRecord) will be backed out in an attempt to make the update fit. In addition to the change to the attribute not being applied locally, the current value of the attribute on this system will be sent out to all other systems to make that the definitive version. This has the effect of nullifying the change to the rest of the enterprise.
The reversal may be recognized as follows: version 5474, time of change 2000-06-28 19:33.24 and USN of 2873104.
Event Type: Information  
Event Source: NTDS Replication  
Event Category: Replication  
Event ID: 1101  
Description: The directory replication agent (DRA) was able to successfully apply the changes to object DC=@,DC=xyz.example.com,CN=MicrosoftDNS,CN=System, DC=xyz,DC=example,DC=com (GUID <GUID>) after backing out one or more of the attribute changes. Preceding messages will indicate which attributes were reversed. Please note that this will have the effect of nullifying the change where it was made, causing the original update not to take effect. The originator should be notified that their change was not accepted by the system.

Cause

Ce problème se produit car Active Directory a une limitation d’environ 1200 valeurs qui peuvent être associées à un seul objet. Dans une zone DNS intégrée à Active Directory, les noms DNS sont représentés par des objets dnsNode et les enregistrements DNS sont stockés en tant que valeurs dans l’attribut dnsRecord à valeurs multiples sur les objets dnsNode, ce qui entraîne la survenue des messages d’erreur répertoriés précédemment dans cet article.

Résolution

Vous pouvez utiliser l’une des méthodes suivantes pour résoudre ce problème.

Méthode 1

Si vous souhaitez spécifier une liste de serveurs DNS qui peuvent ajouter des enregistrements NS correspondant à eux-mêmes à une zone spécifiée, choisissez un serveur DNS, puis exécutez Dnscmd.exe avec le commutateur /AllowNSRecordsAutoCreation :

  • Pour définir la liste des adresses TCP/IP des serveurs DNS autorisés à créer automatiquement des enregistrements NS pour une zone, utilisez la dnscmd servername /config zonename /AllowNSRecordsAutoCreation IPList commande. Par exemple :

    Dnscmd NS1 /config zonename.com /AllowNSRecordsAutoCreation 10.1.1.1 10.5.4.2
    
  • Pour effacer la liste des adresses TCP/IP des serveurs DNS qui ont l’autorisation de créer automatiquement des enregistrements NS pour une zone et de renvoyer la zone à l’état par défaut lorsque chaque serveur DNS principal ajoute automatiquement à une zone un enregistrement NS correspondant à celui-ci, utilisez la dnscmd servername /config zonename /AllowNSRecordsAutoCreation commande. Par exemple :

    Dnscmd NS1 /config zonename.com /AllowNSRecordsAutoCreation
    
  • Pour interroger la liste des adresses TCP/IP des serveurs DNS autorisés à créer automatiquement des enregistrements NS pour une zone, utilisez la dnscmd servername /zoneinfo zonename /AllowNSRecordsAutoCreation commande. Par exemple :

    Dnscmd NS1 /zoneinfo zonename.com /AllowNSRecordsAutoCreation
    

Note

Exécutez cette commande sur un seul serveur DNS. La réplication Active Directory propage les modifications apportées à tous les serveurs DNS qui s’exécutent sur des contrôleurs de domaine dans le même domaine.

Dans un environnement dans lequel la majorité des contrôleurs de domaine DNS pour un domaine se trouvent dans les succursales et quelques-uns se trouvent dans un emplacement central, vous pouvez utiliser la Dnscmd commande décrite précédemment dans cet article pour définir la liste IPlist pour inclure uniquement les contrôleurs DNS situés de manière centralisée. Dans ce cas, seuls les contrôleurs de domaine DNS situés de manière centralisée ajoutent leurs enregistrements NS respectifs à la zone de domaine Active Directory.

Méthode 2

Important

Cette section, méthode ou tâche contient des étapes vous indiquant comment modifier le Registre. Toutefois, des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Par conséquent, vérifiez que vous suivez ces étapes attentivement. Pour une protection supplémentaire, sauvegardez le Registre avant de le modifier. Ensuite, vous pouvez restaurer le Registre si un problème se produit. Pour plus d’informations, consultez Comment sauvegarder et restaurer le Registre dans Windows.

Si vous souhaitez choisir le serveur DNS qui n’ajoute pas d’enregistrements NS correspondant à eux-mêmes à une zone DNS intégrée à Active Directory, utilisez l’Éditeur de Registre (Regedt32.exe) pour configurer la valeur de Registre suivante sur chaque serveur DNS affecté :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters

Valeur du Registre : DisableNSRecordsAutoCreation
Type de données : REG_DWORD
Plage de données : 0x0 | 0x1
Valeur par défaut : 0x0

Cette valeur affecte toutes les zones DNS intégrées à Active Directory. Les valeurs ont les significations suivantes :

Valeur Signification
0 Le serveur DNS crée automatiquement des enregistrements NS pour toutes les zones DNS intégrées à Active Directory, sauf si une zone, hébergée par le serveur, contient l’attribut AllowNSRecordsAutoCreation (décrit plus haut dans cet article) qui n’inclut pas le serveur. Dans ce cas, le serveur utilise la configuration AllowNSRecordsAutoCreation.
1 Le serveur DNS ne crée pas automatiquement d’enregistrements NS pour toutes les zones DNS intégrées à Active Directory, quelle que soit la configuration AllowNSRecordsAutoCreation dans les zones DNS intégrées à Active Directory.

Note

Pour appliquer les modifications à cette valeur, vous devez redémarrer le service serveur DNS.

Si vous souhaitez empêcher certains serveurs DNS d’ajouter leurs enregistrements NS correspondants aux zones DNS intégrées à Active Directory qu’ils hébergent, vous pouvez utiliser la valeur de Registre DisableNSRecordsAutoCreation décrite plus haut dans cet article.

Note

Si la valeur de Registre DisableNSRecordsAutoCreation est définie sur 0x1, aucune des zones DNS intégrées à Active Directory hébergées par ce serveur DNS ne contiendra ses enregistrements NS. Par conséquent, si ce serveur doit ajouter son propre enregistrement NS à au moins une zone DNS intégrée à Active Directory qu’il héberge, ne définissez pas la valeur de Registre sur 0x1.

Correctif Netlogon

Important

Cette section, méthode ou tâche contient des étapes vous indiquant comment modifier le Registre. Toutefois, des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Par conséquent, vérifiez que vous suivez ces étapes attentivement. Pour une protection supplémentaire, sauvegardez le Registre avant de le modifier. Ensuite, vous pouvez restaurer le Registre si un problème se produit. Pour plus d’informations, consultez Comment sauvegarder et restaurer le Registre dans Windows.

La partie Netlogon de ce correctif logiciel donne aux administrateurs un meilleur contrôle, comme décrit précédemment dans cet article. Vous devez appliquer le correctif à chaque contrôleur de domaine. En outre, pour empêcher un contrôleur de domaine d’essayer des mises à jour dynamiques de certains enregistrements DNS qui, par défaut, sont mis à jour dynamiquement par Netlogon, utilisez Regedt32.exe pour configurer la valeur de Registre suivante :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

Valeur du Registre : DnsAvoidRegisterRecords
Type de données : REG_MULTI_SZ

Dans cette valeur, spécifiez la liste des mnémoniques correspondant aux enregistrements DNS qui ne doivent pas être inscrits par ce contrôleur de domaine.

Note

Définissez la valeur sur la liste des mnémoniques délimitées par entrée qui sont spécifiées dans le tableau suivant.

La liste des mnémoniques comprend :

Mnémotechnique Type Enregistrement DNS
LdapIpAddress A <DnsDomainName>
Ldap SRV _ldap._tcp.<DnsDomainName>
LdapAtSite SRV _ldap._tcp.<SiteName>._sites.<DnsDomainName>
Pdc SRV _ldap._tcp.pdc._msdcs.<DnsDomainName>
Gc SRV _ldap._tcp.gc._msdcs.<DnsForestName>
GcAtSite SRV _ldap._tcp.<SiteName>._sites.gc._msdcs.<DnsForestName>
DcByGuid SRV _ldap._tcp.<DomainGuid>.domains._msdcs.<DnsForestName>
GcIpAddress A gc._msdcs.<DnsForestName>
DsaCname CNAME <DsaGuid>._msdcs.<DnsForestName>
Kdc SRV _kerberos._tcp.dc._msdcs.<DnsDomainName>
KdcAtSite SRV _kerberos._tcp.<SiteName>._sites.dc._msdcs.<DnsDomainName>
Dc SRV _ldap._tcp.dc._msdcs.<DnsDomainName>
DcAtSite SRV _ldap._tcp.<SiteName>._sites.dc._msdcs.<DnsDomainName>
Rfc1510Kdc SRV _kerberos._tcp.<DnsDomainName>
Rfc1510KdcAtSite SRV _kerberos._tcp.<SiteName>._sites.<DnsDomainName>
GenericGc SRV _gc._tcp.<DnsForestName>
GenericGcAtSite SRV _gc._tcp.<SiteName>._sites.<DnsForestName>
Rfc1510UdpKdc SRV _kerberos._udp.<DnsDomainName>
Rfc1510Kpwd SRV _kpasswd._tcp.<DnsDomainName>
Rfc1510UdpKpwd SRV _kpasswd._udp.<DnsDomainName>

Note

Il n’est pas nécessaire de redémarrer le service Netlogon. Si la valeur de Registre DnsAvoidRegisterRecords est créée ou modifiée pendant que le service Netlogon est arrêté ou dans les 15 premières minutes après le démarrage de Netlogon, les mises à jour DNS appropriées ont lieu avec un court délai (toutefois, le délai n’est pas supérieur à 15 minutes après le démarrage de Netlogon).

Les inscriptions DNS d’enregistrements A effectuées par Netlogon peuvent également être modifiées à l’aide de la valeur de Registre RegisterDnsARecords. Pour plus d’informations, consultez Comment activer ou désactiver des mises à jour DNS dans Windows.

N’oubliez pas que les valeurs de Registre DnsAvoidRegisterRecords et RegisterDnsARecords doivent autoriser l’inscription de l’enregistrement de l’hôte (A) :

  • RegisterDnsARecords = 0x1
    Si vous répertoriez LdapIpAddress et GcIpAddress dans les paramètres de valeur de Registre DnsAvoidRegisterRecords, les enregistrements A ne sont pas inscrits.
  • RegisterDnsARecords = 0x0
    Peu importe si vous répertoriez LdapIpAddress et GcIpAddress dans les paramètres de valeur de Registre DnsAvoidRegisterRecords, les enregistrements A ne sont pas inscrits.

Pour éviter le problème décrit précédemment dans cet article dans un environnement dans lequel un ensemble de contrôleurs de domaine et/ou de serveurs de catalogue global (GC) se trouvent dans un emplacement central et un grand nombre de contrôleurs de domaine et/ou de serveurs GC se trouvent dans les succursales, l’administrateur peut désactiver l’inscription de certains enregistrements DNS par Netlogon sur les contrôleurs de domaine/GCS dans les succursales. Dans ce cas, la liste des mnémoniques qui ne doivent pas être enregistrées comprend :

Enregistrements spécifiques au contrôleur de domaine :

Mnémotechnique Type Enregistrement DNS
LdapIpAddress A <DnsDomainName>
Ldap SRV _ldap._tcp.<DnsDomainName>
DcByGuid SRV _ldap._tcp.<DomainGuid>.domains._msdcs.<DnsForestName>
Kdc SRV _kerberos._tcp.dc._msdcs.<DnsDomainName>
Dc SRV _ldap._tcp.dc._msdcs.<DnsDomainName>
Rfc1510Kdc SRV _kerberos._tcp.<DnsDomainName>
Rfc1510UdpKdc SRV _kerberos._udp.<DnsDomainName>
Rfc1510Kpwd SRV _kpasswd._tcp.<DnsDomainName>
Rfc1510UdpKpwd SRV _kpasswd._udp.<DnsDomainName>

Enregistrements spécifiques à GC :

Mnémotechnique Type Enregistrement DNS
Gc SRV _ldap._tcp.gc._msdcs.<DnsForestName>
GcIpAddress A gc._msdcs.<DnsForestName>
GenericGc SRV _gc._tcp.<DnsForestName>

Note

Ces listes n’incluent pas les enregistrements spécifiques au site. Par conséquent, les contrôleurs de domaine et les serveurs GC dans les succursales sont situés par des enregistrements spécifiques au site qui sont généralement utilisés par un localisateur de contrôleur de domaine. Si un programme recherche un contrôleur de domaine/gc à l’aide d’enregistrements génériques (non spécifiques au site), tels que l’un des enregistrements figurant dans les listes répertoriées précédemment dans cet article, il trouve un contrôleur de domaine/GC à l’emplacement central.

Un administrateur peut également choisir de limiter le nombre d’enregistrements de localisateur dc tels que SRV et A enregistrés par Netlogon pour le même nom DNS générique (_ldap._tcp.dc._msdcs).<DomainName>), même dans un scénario avec moins de 1200 contrôleurs de domaine dans le même domaine, afin de réduire la taille des réponses DNS aux requêtes pour ces enregistrements.

État

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « Produits concernés ».

Informations supplémentaires

Chaque serveur DNS faisant autorité pour une zone DNS intégrée à Active Directory ajoute un enregistrement NS. Par défaut, chaque contrôleur de domaine d’un domaine inscrit un enregistrement SRV pour un ensemble de noms non spécifiques au site, tels que « _ldap._tcp.<>domain_name » et les enregistrements A qui mappent le ou les noms de domaine DNS Active Directory aux adresses TCP/IP du contrôleur de domaine. Lorsqu’un serveur DNS tente d’écrire un enregistrement après environ 1200 enregistrements portant le même nom partagé, l’autorité de sécurité locale (LSA) s’exécute à 100 % de l’utilisation du processeur pendant environ 10 secondes et l’inscription ne réussit pas. Netlogon retente cette inscription toutes les heures ; le pic d’utilisation du processeur de 100 % réapparaît au moins une fois par heure et les inscriptions tentées ne réussissent pas.