воскресенье, 6 июня 2010 г.

Проблема с DNS зоной Active Directory

Давеча меня попросили разобраться с проблемой. При попытке добраться из одного домена в другой, через доверительные отношения, выдавалось сообщение: “Отсутствуют серверы, которые могли бы обработать запрос на вход в сеть”. Я зашел через RDP на проблемный контроллер домена и попробовал. Сообщение действительно выдавалось :). Занятно, но при попытке зайти на общедоступные ресурсы с другой стороны успешно удавалось. Мало того, ситуация складывалась так, что домен, в ресурсы которого не удавалось зайти был совсем недавно создан и в него был мигрирован другой домен, NT4. Так вот в ресурсы этого NT4 заходило без вопросов и проблем. Собственно говоря вот так примерно это выглядело. Зеленые стрелки это удачные заходы на общие ресурсы, а красные – соответственно, неудачные. Внешние эллипсы это два физически удаленных географических места, соединенных wan соединением.

domains

Что ж, подумал я, вероятно где-то есть проблема с разрешением имен. И тут я сделал первую ошибку. Я просто бросил пинг из одного и из другого домена. Имена исправно разрешались и пинги исправно шли. Странно, подумалось мне, очень странно. Недолго думая я поставил снифферы на трех машинах. На контроллерах в обоих w2k3 доменах и на файловом сервере, доступиться к которому не удавалось. Хотел посмотреть, где и почему все застряет. И тут меня ждал обескураживающий результат. Все выглядело нормально на первый взгляд. То есть файловый сервер корректно шел на свой контроллер домена за разъяснениями, по поводу имени пользователя из другого домена. Тот, в свою очередь ходил в удаленный домен однако конечный контроллер почему-то упорно возвращал ошибку. И только в этот момент мне пришло в голову внимательно посмотреть в зону DNS домена-источника. Сделай я это раньше – сэкономил бы кучу времени. Оказалось,что его зона не содержит ни одной srv записи. То есть не было ни одной “подпапки” в оснастке DNS. Кроме того, были отключены автоматичесие обновления. Вот это да, подумалось мне. Положение спас файлик
%SystemRoot %\System32\Config\Netlogon.dns. В нем, как водится, находилась корректная структура зоны, нужные srv записи. Я просто скопировал нужные записи в текущий файл зоны и перезапустил DNS. Затем сбросил кеш всех серверов в обоих доменах и все. Проблема пропала. По сути дела можно было просто включить автоматические обновления и перегрузиться или перезапустить netlogon, который, если верить документации, должен был перерегистрировать записи из этого файла. Но, об этом я подумал только после того как скопировал записи и перезапустил DNS.

В последствии, копаясь в гугле, нашел вот эту тему, и скрипт из нее. Думаю, он делает тоже самое:

rem Экспорт зоны в файл.
rem ---------------------
dnscmd localhost /ZoneExport domain.lan exported.domain.lan.dns

rem Импорт зоны из файла.
rem ---------------------
dnscmd.exe localhost /ZoneDelete domain.lan
dnscmd.exe localhost /ZoneAdd domain.lan /Primary /file exported.domain.lan.dns /load dnscmd.exe localhost /ZoneResetType domain.lan /DsPrimary /OverWrite_Ds

Комментариев нет: