Поделиться через


Идентификатор события 4015 регистрируется, а DNS-сервер обнаруживает критичную ошибку

Эта статья помогает устранить проблему, в которой регистрируется идентификатор события 4015, и сервер доменных имен (DNS) сталкивается с критической ошибкой.

Исходный номер базы знаний: 969488, 2733147

Идентификатор события 4015 вы получаете в одном из следующих сценариев:

  • Если вы выполняете роль DNS на контроллере домена только для чтения (RODC) и доступном для записи контроллере домена (размещенном DNS), следующее событие регистрируется в RODC.

    Log Name: DNS Server
    Source: Microsoft-Windows-DNS-Server-Service
    Date: date time
    Event ID: 4015
    Task Category: None
    Level: Error
    Keywords: Classic
    User: N/A
    Computer: <ComputerName>
    Description:
    The DNS server has encountered a critical error from the Active Directory. Check that the Active Directory is functioning properly. The extended error debug information (which may be empty) is "00002095: SvcErr: DSID-03210A6A, problem 5012 (DIR_ERROR), data 16". The event data contains the error.
    
  • DNS-сервер не может получить доступ к объекту Active Directory, и следующее событие часто регистрируется в журнале событий DNS-сервера.

    Type: Error
    Source: DNS
    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 extended error debug information (which may be empty) is "0000051B: AttrErr: DSID-xxxx, #1: 0:0000051B: DSID-xxxx, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 20119(nTSecurityDescriptor)". The eventdata contains the error."
    
  • В лесу или домене, расположенном в зонах интегрированной системы доменных имен Active Directory (DNS), некоторые контроллеры домена с установленной ролью DNS-сервера были повышены и понижены. Некоторые контроллеры домена с повышенными уровнями не могут зарегистрировать SRV, Host A, Pointer (PTR) или Сервер имен (NS) в интегрированных зонах DNS Active Directory, а следующее событие регистрируется:

    The DNS server has encountered a critical error from the Active Directory. Check that the Active Directory is functioning properly. The extended error debug information (which may be empty) is "00002024: SvcErr: DSID-02050BBD, problem 5008 (ADMIN_LIMIT_EXCEEDED), data -1026". The event data contains the error.
    

RODC регистрирует идентификатор события DNS 4015 каждые три минуты с кодом ошибки 00002095

При обнаружении DNS-сервера, допускающего запись, для выполнения РепликацииSingleObject (RSO), он выполняет функцию DSGETDC со следующими флагами:

  • DS_AVOID_SELF
  • DS_TRY_NEXTCLOSEST_SITE
  • DS_DIRECTORY_SERVICE_6_REQUIRED
  • DS_WRITEABLE_REQUIRED

После возврата контроллера домена из вызова DSGETDC он использует результат для поиска записи NS в DNS. Если вызов DSGETDC завершается ошибкой или не удается найти запись NS контроллера домена, возвращенной из DSGETDC, будет зарегистрирован идентификатор события 4015.

Возможные причины идентификатора события 4015:

  • Доступ к записываемому контроллеру домена недоступен или не возвращается из вызова DSGETDC.
  • Вызов DSGETDC был успешным, но возвращенный контроллер домена не установлен или не регистрирует запись NS в DNS.

Следующая команда может выполняться из RODC, чтобы проверить, какой контроллер домена возвращается из вызова DSGETDC:

nltest /dsgetdc: DOMAIN.COM /WRITABLE /AVOIDSELF /TRY_NEXT_CLOSEST_SITE /DS_6

Где DOMAIN.COM находится доменное имя.

Дополнительные сведения о функции DSGETDC см. в разделе "Функция DsGetDcNameA".

Чтобы устранить любую из указанных выше причин, убедитесь, что доступ к записываемому контроллеру домена доступен из RODC, что роль DNS-сервера установлена на этом контроллере домена и что запись NS зарегистрирована в DNS для записываемого контроллера домена.

Идентификатор события 4015 регистрируется с кодом ошибки 0000051B

Эта проблема возникает из-за проблем с разрешениями. SYSTEM не является владельцем зоны DNS. Вы можете включить ведение журнала диагностики field Engineering для идентификации зоны DNS и изменить владельца.

Задайте для владельца зоны DNS значение SYSTEM

Проблему можно устранить следующим способом.

  1. Если после включения ведения журнала событий DNS-сервера появится ошибка DNS, остановите ведение журнала в области диагностики AD, задав следующее значение реестра равным 0:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\15 Field Engineering

  2. Сопоставляйте точное время идентификатора события 4015 с идентификатором события службы каталогов 1644 и определите раздел каталога приложений DNS.

  3. Откройте средство редактирования ADSI (Adsiedit.msc) и перейдите к расположению LDAP объекта, определенного в идентификаторе события 1644, который коррелирует с идентификатором события 4015.

  4. Щелкните правой кнопкой мыши зону, перейдите в раздел "Дополнительные сведения о безопасности>свойств>" и убедитесь, что владелец имеет значение SYSTEM.

Идентификатор события 4015 регистрируется с расширенным кодом ошибки (ADMIN_LIMIT_EXCEEDED)

Эта проблема возникает, когда служба DNS-сервера достигает dnsRecord ограничения многозначного атрибута для dnsNode объекта в Active Directory. В интегрированных зонах DNS Active Directory имена DNS представлены dnsNode объектами, а записи DNS хранятся в виде значений атрибутов dnsRecord dnsNode объектов. Записи ресурсов DNS (RR) пониженных контроллеров домена не будут автоматически удаляться из dnsRecord атрибутов dnsNode объектов в соответствующей зоне связанной секции Active Directory. Например:

DC=..TrustAnchors,CN=MicrosoftDNS,DC=ForestDnsZones,DC=xxx,DC=xxx

При добавлении дополнительных dnsNode записей в dnsRecord атрибуты объектов потерянные записи контроллеров домена приводят к ошибке ADMIN_LIMIT_EXCEEDED.

Чтобы проверить текущее количество записей в каждой секции, выполните следующие repadmin команды:

repadmin /showattr . "CN=MicrosoftDNS,CN=System,DC=contoso,DC=com" /subtree /filter:"(objectclass=dnsnode)" /atts:"dnsRecord" /allvalues >c:\temp\dns_Domain.txt
repadmin /showattr . "CN=MicrosoftDNS,DC=DomainDnsZones,DC=contoso,DC=com" /subtree /filter:"(objectclass=dnsnode)" /atts:"dnsRecord" /allvalues>c:\temp\dns_DomainDnsZones.txt
repadmin /showattr . "CN=MicrosoftDNS,DC=ForestDnsZones,DC=contoso,DC=com" /subtree /filter:"(objectclass=dnsnode)" /atts:"dnsRecord" /allvalues >c:\temp\dns_ForestDnsZones.txt

В выходных данных отображается текущее количество записей в dnsRecord атрибутах соответствующей интегрированной зоны Active Directory. Например:

DN: DC=@,DC=..TrustAnchors,CN=MicrosoftDNS,DC=ForestDnsZones,DC=contoso,DC=com
1280> dnsRecord: <48 byte blob>;

Удаление потерянных записей обозначенных контроллеров домена

Чтобы устранить эту проблему, удалите все потерянные записи указанных контроллеров домена из зон. Чтобы проверить и выборочно удалить записи, выполните следующие командлеты Windows PowerShell:

Get-DnsServerResourceRecord -ZoneName trustanchors -RRType Ns
Remove-DnsServerResourceRecord -zonename trustanchors -RRType Ns -Name “@” -RecordData DC.contoso.com

Если необходимо удалить несколько записей ресурсов (RR) для одного узла, выполните следующие командлеты:

$AllNsRecords = Get-DnsServerResourceRecord -ZoneName “trustanchors” -RRType Ns
Foreach($Record in $AllNsRecords){
If($Record.recorddata.nameserver -like "*dc2*"){
$Record | Remove-DnsServerResourceRecord -ZoneName trustanchors
}
}
$AllSrvRecords = Get-DnsServerResourceRecord -ZoneName “_msdcs.contoso.com” -RRType Srv
Foreach($Record in $AllSrvRecords){
If($Record.recorddata.domainname -like "*dc2*"){
$Record | Remove-DnsServerResourceRecord -ZoneName _msdcs.contoso.com
}
}

Включение ведения журнала отладки с помощью TroubleShootingScript (TSS)

Чтобы запустить трассировку на DNS-сервере с помощью TSS, выполните следующий командлет:

.\TSS.ps1 -Scenario NET_DNSsrv -Mode Verbose -WaitEvent Evt:4015:'DNS Server'

Примечание.

Ведение журнала трассировки будет остановлено автоматически после регистрации идентификатора события 4015.

Дополнительные сведения см. в статье Сбор сведений о ключах перед обращением в службу поддержки Майкрософт.