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

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

Применяется к: Windows Server 2012 R2
Оригинальный номер базы знаний: 969488, 2733147

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

  • Если вы запускаете роль DNS на контроллере домена Read-Only (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, Узел A, Указатель (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

Когда RODC находит доступный для записи 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 выполнен успешно, но возвращенный контроллер домена не имеет установленной роли DNS-сервера или не регистрирует запись 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

При добавлении дополнительных записей к dnsRecord атрибутам dnsNode объектов потерянные записи пониженных контроллеров домена приводят к ошибке 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.

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