обновлено 30.03.2010
Все хотят видеть на компьютере точное время, кроме того, это очень важно для нормального функционирования домена Windows и AD. Казалось бы, чего проще, настраиваешь PDC эмулятор на синхронизацию с каким-нибудь ntp и все становится на места само собой … Но нет, уже несколько раз, наблюдалась рассинхронизация контроллеров домена между собой и жалобы пользователей на то, что наше время отличается от точного на пару минут.
Казалось бы, смешная проблема – пару минут, но для некоторой работы и пара минут важно. Особенно, если это редактора новостной ленты www.korrespondent.net. Правда были еще и шуточные жалобы, что они из-за этой проблемы целых 2, 3 или 5 минут перерабатывают :-)
Стандартные “танцы с бубнами”, которые делал я, а потом и наш сетевой инженер, по руководству от Microsoft помогали, но не долго. Т.е. время сходится, ошибки из лога исчезают, а через пару часов, или, через сутки все начинается заново. А потом, через пару-тройку недель, или месяц-другой, ошибка снова достигает размера более 2-х минут и все заново.
Итак, хочешь что-то сделать хорошо – сделай это сам. Что мы имеем, три контроллера домена, работающих под Windows 2003 Server R2, кучу рабочих станций под Windows XP Professional SP3. В качестве ntp сервера в компании служит Cisco 2821Признаками проблемы на DC, являющемся еще и PDC эмулятором является наличие следующих ошибок в Event log:
1.
Event Type: Warning
Event Source: W32Time
Event Category: None
Event ID: 47
Date: 17.11.2009
Time: 13:21:45
User: N/A
Computer: DC04
Description:
Time Provider NtpClient: No valid response has been received from manually configured peer ntp.mydomain.ua,0x1 after 8 attempts to contact it. This peer will be discarded as a time source and NtpClient will attempt to discover a new peer with this DNS name.
2.
Event Type: Error
Event Source: W32Time
Event Category: None
Event ID: 29
Date: 17.11.2009
Time: 13:21:45
User: N/A
Computer: DC04
Description:
The time provider NtpClient is configured to acquire time from one or more time sources, however none of the sources are currently accessible. No attempt to contact a source will be made for 15 minutes. NtpClient has no source of accurate time.
3.
Event Type: Information
Event Source: W32Time
Event Category: None
Event ID: 38
Date: 17.11.2009
Time: 14:06:45
User: N/A
Computer: DC04
Description:
The time provider NtpClient cannot reach or is currently receiving invalid time data from ntp.mydomain.ua
(ntp.m|0x1|192.168.0.50:123->10.10.72.17:123).
На остальных контроллерах домена, вместо Event ID 47, присутствует Event ID: 24
Event Type: Warning
Event Source: W32Time
Event Category: None
Event ID: 24
Date: 18.11.2009
Time: 6:46:56
User: N/A
Computer: DC03
Description:
Time Provider NtpClient: No valid response has been received from domain controller pdacemul.addomain after 8 attempts to contact it. This domain controller will be discarded as a time source and NtpClient will attempt to discover a new domain controller from which to synchronize.
Итак, вот процедура по восстановлению работоспособности сервиса w32tm
- Если кто не знает этого наизусть, то так вот находим все DC и того, кто из них PDC эмулятор
netdom query fsmo - Теперь проверяю доступность с PDC эмулятора сервера времени.portqry –n ntp.mydomain.ua –e 123 –p UDP Querying target system called:
ntp.mydomain.ua
Attempting to resolve name to IP address...
Name resolved to 10.10.72.17UDP port 123 (ntp service): LISTENING or FILTERED
Должно быть именно так “LISTENING or FILTERED”
Эта утилита входит в комплект Support Tools для Windows 2003 Server. К сожалению, на Windows 2008 R2 она не работает.
- Затем, с помощью regedit открываю параметры ntp сервераHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServerТам должен быть записан ip адрес или полной имя нашего ntp сервера и запись должна обязательно заканчиваться строкой “,0x1”. Кавычки, понятное дело, нужно убрать. Кстати, к этому суффиксу я вернусь позже. Для уверенности в том, что тут нету ошибки, неплохо бы попингать скопированный оттуда адрес или имя.
- Там же, следует перейти к параметруHKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Typeи убедиться, что там прописано NTP, а неNT5DS
- Теперь следует проверить еще одно значениеHKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlagsтут должна быть 5
- Перезапускаем сервис времениnet stop w32time && net start w32time
- Теперь перезапускаю синхронизацию:w32tm /resync /rediscover
- На остальных контроллерах домена рекомендуется сделатьw32tm /unregister
w32tm /registerЭта операция удаляет службу времени, а затем снова ее устанавливает, причем, что важно, удаляется, а затем создается заново вся ветка параметров в реестре. - Очень рекомендуется перезапустить контроллер домена, являющийся pdc эмулятором, да и все остальные тоже.
- Если на pdc эмуляторе ошибки появляются заново, как в моем случае, то стоит попробовать заменить значение 0x1 на 0x08 в параметреHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServerчтобы стали посылаться стандартные клиентские запросы.
- Перезапускаем сервис времениnet stop w32time && net start w32time
- Очень рекомендуется проверить все политики, имеющие отношение к настройкам сервиса времени, а именно:
Default Domain Controllers group policy
Default Domain group policy
ну и все другие, которые имеют отношение к домен контроллерам, серверам и рабочим станциям и в которых изменены любые значения в разделеComputer configuration/Administrative Templates /System/Windows Time service/Time Providers
Убедитесь, что все значения там в состоянии “not configured”. При необходимости, играть с параметрами следует позже.
- Если что-то меняли в политике, то перезапускаем сервис времени:net stop w32time && net start w32time
- Если и после этого ничего не помогло, то нужно обнулить параметры сервиса времени и на pdc эмулятореnet stop w32time
w32tm /unregister
w32tm /registerпосле чего нужно будет настраивать все параметры заново, начиная с п.3. Если вдруг, на этапе удаления напишет про запрет доступа, то нужно перезагрузиться. - В особо тяжелых случаях может помочь включение лога для сервиса. Для настройки этого используются три параметра в реестре по пути
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
Если нижеприведенных ключей там нету, а их нету по умолчанию, то их следует создатьValue Name: FileLogSize
Data Type: DWORD
Value data: 10000000Этот параметр определяет максимальный размер файла лога в байтах. Значение 10000000 байт ограничит файл приблизительно в 10 Mb.
Value name: FileLogName
Data Type: REG_SZ (String)
Value data: C:\Test\w32time_log.txtЭтот параметр определяет место и имя файла лога.
Value name: FileLogEntries
Data Type: REG_SZ (String)
Value: 0-116Этот параметр определяет уровень детализации лога. Диапазон значений параметра 0-116.
(Если ввести туда 0-300, то уровень детализации станет максимальным)Вместо изменения значений в реестре, можно то же самое сделать из командной строки
w32tm /debug /enable /file:C:\Test\w32time_log.txt /size:100000 /entries:0-300Чтобы выключить логи отладки можно ввести команду
w32tm /debug /disable
У меня этот алгоритм сработал и, наконец-то, вопрос с временем был закрыт.
Кстати, проверить что со временем все в порядке можно так:
w32tm /monitor
dc01.addomain [192.168.0.60]:
ICMP: 0ms delay.
NTP: +0.0009899s offset from pdcemul.addomain
RefID: pdcemul.addomain [192.168.0.50]
dc03.addomain [192.168.0.20]:
ICMP: 0ms delay.
NTP: -0.0014416s offset from dc04.addomain
RefID: pdcemul.addomain [192.168.0.50]
pdcemul.addomain *** PDC *** [192.168.0.50]:
ICMP: 0ms delay.
NTP: +0.0000000s offset from pdcemul.addomain
RefID: ntp.mydomain.ua [10.10.72.17]
Чудненько все написано, особенно ценю наличие инструмента проверки канала. Но есть вопрос уважаемому Знатоку:
ОтветитьУдалитьВнешние сервера принимают по порту 123 (UDP) - об этом написано много в том числе и у Майкрософт, но сканирование моего PDC эмулятора показывает, что 123 не числится открытым (брандмаур не глушит, касперский при сканировании выключал полностью). С другого DC синхронизация проходит без проблем, но порт 123 закрыт. Что то я не пойму как работает этот сервер времени.
Протестю статью, результат выложу (если будет интересно читателям)