===== AD. DNS-сервер не запускается (2008 R2) =====
Представим, что мы создали и включили в качестве контроллера домена новый сервер под управлением //Windows Server 2008 R2//. //Active Directory// работает нормально и репликация с новым контроллером домена происходит успешно. Однако, DNS-сервер на новом КД отказывается запускаться со следующей ошибкой, которую можно найти в разделе логов //приложения// в event log:
Имя сбойного приложения: dns.exe, версия: 6.1.7601.24437, отметка времени: 0x5caf51ed
Имя сбойного модуля: dns.exe, версия: 6.1.7601.24437, отметка времени 0x5caf51ed
Код исключения: 0xc0000005
Смещение ошибки: 0x000000000006145f
Идентификатор сбойного процесса: 0xed0
Время запуска сбойного приложения: 0x01db68cfe5d84d53
Путь сбойного приложения: C:\Windows\system32\dns.exe
Путь сбойного модуля: C:\Windows\system32\dns.exe
Код отчета: 24819156-d4c3-11ef-8704-00155d461b01
При этом, в логе может отображаться о том, что DNS ожидает завершения синхронизации //AD DS//.
DNS-сервер ожидает от доменных служб Active Directory (AD DS) сигнала о том, что первичная синхронизация каталога завершена. Службу DNS-сервера невозможно запустить до завершения первичной синхронизации, так как критические данные DNS могут быть еще не реплицированными на этот контроллер домена. Если журнал событий AD DS показывает, что имеются проблемы с разрешением DNS-имен в адреса, рассмотрите возможность добавления IP-адреса другого DNS-сервера для этого домена в список DNS-серверов в свойствах протокола IP этого компьютера. Такое событие будет записываться в журнал каждые две минуты, пока служба AD DS не сообщит об успешном завершении первичной синхронизации.
Это событие может сбить нас с толку. Оно не имеет отношения к ошибке запуска //DNS//. Если оно пишется в лог один раз после рестарта - это нормальное событие, т.к. //DNS// ожидает синхронизации //AD//.
Причиной проблем с запуском DNS-сервера, работающего под управлением //Windows Server 2008 R2// - скорее всего является наличие проблемных записей //CNAME// в рутовых зонах. Данная проблема хорошо описана в документации //Microsoft//, которую можно найти по ссылке:
https://support.microsoft.com/en-us/topic/loading-dns-zones-fails-on-a-windows-server-2008-r2-based-dns-server-9ff164aa-5c2d-bf37-99a1-c1e2ad434897
Там же приведен PS-скрипт поиска проблемных записей, который можно запустить, чтобы их обнаружить.
$count = 0
$var = get-wmiobject -query "select * from win32_service where name = 'dns'"
if ($var -ne $null)
{
if ($var.state.tolower() -eq "running")
{
[array] $global:badcnamedomains = $null
$var = get-wmiobject -namespace "root\microsoftdns" -query "select * from microsoftdns_zone"
if ($var -ne $null)
{
foreach ($var2 in $var)
{
$query = "select * from microsoftdns_cnametype where containername = '" + $var2.name + "'"
$var3 = get-wmiobject -namespace "root\microsoftdns" -query $query | where {$_.ownername -eq $var2.name}
if ($var3 -ne $null)
{
$count += 1
$global:badcnamedomains += $var3.domainname
}
}
}
else
{
write-host "No zones returned"
}
}
else
{
Write-Host "DNS Service is not running"
break;
}
}
if ($count -gt 0)
{
write-host "Total number of zones found: $count"
write-host "The zones are:"
write-host $global:badcnamedomains
}
elseif ($count -eq 0)
{
write-host "No zones found with the issue"
}
$count = $null
$global:badcnamedomains = $null
Если скрипт обнаружит такие записи - их придётся удалить, чтобы решить проблему. Через какое-то время после удаления проблемных записей - DNS-сервер должен запуститься.
{{tag>ActiveDirectory Microsoft PowerShell DNS}}