Problemen die kunnen optreden met veel domeincontrollers in active directory geïntegreerde DNS-zones
Origineel KB-nummer: 267855
Van toepassing op: Ondersteunde versies van Windows Server
DNS-registraties (Domain Name System) van SRV- en DC-locator (domeincontroller) A-records (geregistreerd door Netlogon) en NS-records (toegevoegd door de gezaghebbende DNS-servers) in een active directory-geïntegreerde DNS-zone voor sommige DC's werken mogelijk niet in een domein dat een groot aantal DC's (meestal meer dan 1200) bevat. Als de met Active Directory geïntegreerde DNS-zone dezelfde naam heeft als de Active Directory-domeinnaam, lijken er problemen met de registratie van A-records en NS-records in de zonehoofdmap op te treden in een domein met meer dan 400 DC's. Ook kunnen een of meer van de volgende foutberichten worden geregistreerd in het gebeurtenislogboek:
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.
Dit probleem treedt op omdat Active Directory een beperking heeft van ongeveer 1200 waarden die aan één object kunnen worden gekoppeld. In een met Active Directory geïntegreerde DNS-zone worden DNS-namen vertegenwoordigd door dnsNode-objecten en worden DNS-records opgeslagen als waarden in het kenmerk dnsRecord met meerdere waarden op dnsNode-objecten, waardoor de foutberichten die eerder in dit artikel worden vermeld, optreden.
U kunt een van de volgende methoden gebruiken om dit probleem op te lossen.
Als u een lijst met DNS-servers wilt opgeven die NS-records kunnen toevoegen die overeenkomen met zichzelf aan een opgegeven zone, kiest u één DNS-server en voert u vervolgens Dnscmd.exe uit met de schakeloptie /AllowNSRecordsAutoCreation:
Als u een lijst wilt instellen met TCP/IP-adressen van DNS-servers die gemachtigd zijn om automatisch NS-records voor een zone te maken, gebruikt u de
dnscmd servername /config zonename /AllowNSRecordsAutoCreation IPList
opdracht. Bijvoorbeeld:Dnscmd NS1 /config zonename.com /AllowNSRecordsAutoCreation 10.1.1.1 10.5.4.2
Gebruik de opdracht om de lijst met TCP/IP-adressen van DNS-servers te wissen die gemachtigd zijn om automatisch NS-records voor een zone te maken en de zone terug te zetten naar de
dnscmd servername /config zonename /AllowNSRecordsAutoCreation
standaardstatus wanneer elke primaire DNS-server automatisch een bijbehorende NS-record toevoegt aan een zone. Bijvoorbeeld:Dnscmd NS1 /config zonename.com /AllowNSRecordsAutoCreation
Gebruik de opdracht om een query uit te voeren op de
dnscmd servername /zoneinfo zonename /AllowNSRecordsAutoCreation
lijst met TCP/IP-adressen van DNS-servers die gemachtigd zijn om automatisch NS-records voor een zone te maken. Bijvoorbeeld:Dnscmd NS1 /zoneinfo zonename.com /AllowNSRecordsAutoCreation
Notitie
Voer deze opdracht uit op slechts één DNS-server. Active Directory-replicatie draagt de wijzigingen door aan alle DNS-servers die worden uitgevoerd op DC's in hetzelfde domein.
In een omgeving waarin de meeste DNS-DC's voor een domein zich in filialen bevinden en een aantal zich op een centrale locatie bevinden, kunt u de Dnscmd
opdracht gebruiken die eerder in dit artikel wordt beschreven om de IPList zo in te stellen dat alleen de centraal gelegen DNS-DC's worden opgenomen. Hierdoor voegen alleen de centraal gelegen DNS-DC's hun respectieve NS-records toe aan de Active Directory-domeinzone.
Belangrijk
Deze sectie, methode of taak bevat stappen voor het bewerken van het register. Als u het register op onjuiste wijze wijzigt, kunnen er echter grote problemen optreden. Het is dan ook belangrijk dat u deze stappen zorgvuldig uitvoert. Maak een back-up van het register voordat u wijzigingen aanbrengt. Als er een probleem optreedt, kunt u het register altijd nog herstellen. Zie Een back-up maken van het register en het herstellen van het register in Windows voor meer informatie.
Als u wilt kiezen welke DNS-server geen NS-records toevoegt die overeenkomen met zichzelf aan een met Active Directory geïntegreerde DNS-zone, gebruikt u Register Editor (Regedt32.exe) om de volgende registerwaarde te configureren op elke betrokken DNS-server:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
Registerwaarde: DisableNSRecordsAutoCreation
Gegevenstype: REG_DWORD
Gegevensbereik: 0x0 | 0x1
Standaardwaarde: 0x0
Deze waarde is van invloed op alle met Active Directory geïntegreerde DNS-zones. De waarden hebben de volgende betekenis:
Waarde | Betekenis |
---|---|
0 | Dns-server maakt automatisch NS-records voor alle met Active Directory geïntegreerde DNS-zones, tenzij een zone, die wordt gehost door de server, het kenmerk AllowNSRecordsAutoCreation bevat (eerder in dit artikel beschreven) dat de server niet bevat. In dit geval gebruikt de server de configuratie AllowNSRecordsAutoCreation. |
1 | Dns-server maakt niet automatisch NS-records voor alle met Active Directory geïntegreerde DNS-zones, ongeacht de allowNSRecordsAutoCreation-configuratie in de met Active Directory geïntegreerde DNS-zones. |
Notitie
Als u de wijzigingen in deze waarde wilt toepassen, moet u de DNS Server-service opnieuw starten.
Als u wilt voorkomen dat bepaalde DNS-servers hun bijbehorende NS-records toevoegen aan met Active Directory geïntegreerde DNS-zones die ze hosten, kunt u de registerwaarde DisableNSRecordsAutoCreation gebruiken die eerder in dit artikel is beschreven.
Notitie
Als de registerwaarde DisableNSRecordsAutoCreation is ingesteld op 0x1, bevat geen van de met Active Directory geïntegreerde DNS-zones die worden gehost door die DNS-server de NS-records. Als deze server daarom een eigen NS-record moet toevoegen aan ten minste één met Active Directory geïntegreerde DNS-zone die wordt gehost, stelt u de registerwaarde niet in op 0x1.
Belangrijk
Deze sectie, methode of taak bevat stappen voor het bewerken van het register. Als u het register op onjuiste wijze wijzigt, kunnen er echter grote problemen optreden. Het is dan ook belangrijk dat u deze stappen zorgvuldig uitvoert. Maak een back-up van het register voordat u wijzigingen aanbrengt. Als er een probleem optreedt, kunt u het register altijd nog herstellen. Zie Een back-up maken van het register en het herstellen van het register in Windows voor meer informatie.
Het Netlogon-gedeelte van deze hotfix geeft beheerders meer controle, zoals eerder in dit artikel is beschreven. U moet de oplossing toepassen op elke dc. Als u wilt voorkomen dat een domeincontroller dynamische updates probeert uit te voeren van bepaalde DNS-records die standaard dynamisch worden bijgewerkt door Netlogon, gebruikt u Regedt32.exe om de volgende registerwaarde te configureren:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
Registerwaarde: DnsAvoidRegisterRecords
Gegevenstype: REG_MULTI_SZ
Geef in deze waarde de lijst met ezelsbruggetjes op die overeenkomen met de DNS-records die niet door deze domeincontroller moeten worden geregistreerd.
Notitie
Stel de waarde in op de lijst met de door enter gescheiden ezelsbruggetjes die zijn opgegeven in de volgende tabel.
De lijst met ezelsbruggetjes bevat:
Mnemonic | Type | DNS-record |
---|---|---|
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> |
Notitie
Het is niet nodig om de Netlogon-service opnieuw te starten. Als de registerwaarde DnsAvoidRegisterRecords wordt gemaakt of gewijzigd terwijl de Netlogon-service wordt gestopt of binnen de eerste 15 minuten nadat Netlogon is gestart, vinden de juiste DNS-updates plaats met een korte vertraging (de vertraging is echter niet later dan 15 minuten nadat Netlogon is gestart).
DNS-registraties van A-records die door Netlogon worden uitgevoerd, kunnen ook worden gewijzigd met behulp van de registerwaarde RegisterDnsARecords. Zie DNS-updates in- of uitschakelen in Windows voor meer informatie.
Houd er rekening mee dat zowel de registerwaarden DnsAvoidRegisterRecords als RegisterDnsARecords het registreren van de hostrecord (A) moeten toestaan:
- RegisterDnsARecords = 0x1
Als u LdapIpAddress en GcIpAddress vermeldt in de instellingen voor de registerwaarde dnsAvoidRegisterRecords, worden A-records niet geregistreerd. - RegisterDnsARecords = 0x0
Het maakt niet uit of u LdapIpAddress en GcIpAddress vermeldt in de instellingen voor de registerwaarde dnsAvoidRegisterRecords, A-records worden niet geregistreerd.
Om te voorkomen dat het probleem dat eerder in dit artikel wordt beschreven, optreedt in een omgeving waarin een set GC-servers (DC's en/of globale catalogusservers) zich op een centrale locatie bevindt en een groot aantal dc's en/of GC-servers zich in filialen bevindt, kan de beheerder de registratie van sommige DNS-records door Netlogon uitschakelen op de DC's/GC-servers in de filialen. In deze situatie bevat de lijst met ezelsbruggetjes die niet mogen worden geregistreerd:
DC-specifieke records:
Mnemonic | Type | DNS-record |
---|---|---|
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> |
GC-specifieke records:
Mnemonic | Type | DNS-record |
---|---|---|
Gc | SRV | _ldap._tcp.gc._msdcs.<DnsForestName> |
GcIpAddress | A | gc._msdcs.<DnsForestName> |
GenericGc | SRV | _gc._tcp.<DnsForestName> |
Notitie
Deze lijsten bevatten niet de sitespecifieke records. Daarom bevinden DC's en GC-servers in filialen zich op sitespecifieke records die meestal worden gebruikt door een DC-locator. Als een programma zoekt naar een DC/GC met behulp van algemene (niet-sitespecifieke) records, zoals een van de records in de lijsten die eerder in dit artikel worden vermeld, vindt het een DC/GC op de centrale locatie.
Een beheerder kan er ook voor kiezen om het aantal DC-locatorrecords, zoals SRV- en A-records die door Netlogon zijn geregistreerd, te beperken voor dezelfde algemene DNS-naam (_ldap._tcp.dc._msdcs.<DomainName>), zelfs in een scenario met minder dan 1200 DC's in hetzelfde domein, om de grootte van DNS-antwoorden op query's voor dergelijke records te verminderen.
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Elke DNS-server die gezaghebbend is voor een met Active Directory geïntegreerde DNS-zone voegt een NS-record toe. Standaard registreert elke DC in een domein een SRV-record voor een set niet-sitespecifieke namen, zoals '_ldap._tcp.<>domain_name' en A-records die de Active Directory DNS-domeinnaam toewijzen aan de TCP/IP-adressen van de domeincontroller. Wanneer een DNS-server probeert een record te schrijven na ongeveer 1200 records met dezelfde gedeelde naam, wordt LSA (Local Security Authority) ongeveer 100 procent CPU-gebruik uitgevoerd en slaagt de registratie niet. Netlogon probeert deze registratie elk uur opnieuw; de piek van 100 procent CPU-gebruik wordt ten minste één keer per uur weergegeven en de registratiepogingen slagen niet.