Заметки IT Менеджера

20.11.2009

Настройка точного времени в домене Windows 2003 / 2008 / 2008 R2


обновлено 26.03.2012
Все хотят видеть на компьютере точное время, кроме того, это очень важно для нормального функционирования домена 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
  1. Если кто не знает этого наизусть, то так вот находим все DC и того, кто из них PDC эмулятор
    netdom query fsmo
  2. Теперь проверяю доступность с 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.17

    UDP port 123 (ntp service): LISTENING or FILTERED
    Должно быть именно так “LISTENING or FILTERED”
    Эта утилита входит в комплект Support Tools для Windows 2003 Server. К сожалению, на Windows 2008 R2 она не работает.
  3. Затем, с помощью regedit открываю параметры ntp сервера
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
    Там должен быть записан ip адрес или полной имя нашего ntp сервера и запись должна обязательно заканчиваться строкой “,0x1”. Кавычки, понятное дело, нужно убрать. Кстати, к этому суффиксу я вернусь позже. Для уверенности в том, что тут нету ошибки, неплохо бы попингать скопированный оттуда адрес или имя.
  4. Там же, следует перейти к параметру
    HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
    и убедиться, что там прописано  NTP, а не NT5DS
  5. Теперь следует проверить еще одно значение
    HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
    тут должна быть 5
  6. Перезапускаем сервис времени:
    net stop w32time && net start w32time
  7. Теперь перезапускаю синхронизацию:
    w32tm /resync /rediscover
  8. На остальных контроллерах домена рекомендуется запустить:
    w32tm /unregister
    w32tm /register
    Эта операция удаляет службу времени, а затем снова ее устанавливает, причем, что важно, удаляется, а затем создается заново вся ветка параметров в реестре.
  9. Очень рекомендуется перезапустить контроллер домена, являющийся pdc эмулятором, да и все остальные тоже.
  10. Если на pdc эмуляторе ошибки появляются заново, как в моем случае, то стоит попробовать заменить значение 0x1 на 0x08 в параметре
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
    чтобы стали посылаться стандартные клиентские запросы.
  11. Перезапускаем сервис времени
    net stop w32time && net start w32time
  12. Очень рекомендуется проверить все политики, имеющие отношение к настройкам сервиса времени, а именно:
    Default Domain Controllers group policy
    Default Domain group policy

    ну и все другие, которые имеют отношение к домен контроллерам, серверам и рабочим станциям и в которых изменены любые значения в разделе
    Computer configuration/Administrative Templates /System/Windows Time service/Time Providers
    Убедитесь, что все значения там в состоянии “not configured”. При необходимости, играть с параметрами следует позже.
  13. Если что-то меняли в политике, то перезапускаем сервис времени:
    net stop w32time && net start w32time
  14. Если и после этого ничего не помогло, то нужно обнулить параметры сервиса времени и на pdc эмуляторе
    net stop w32time
    w32tm /unregister
    w32tm /register
    после чего нужно будет настраивать все параметры заново, начиная с п.3. Если вдруг, на этапе удаления напишет про запрет доступа, то нужно перезагрузиться.
  15. В особо тяжелых случаях может помочь включение лога для сервиса. Для настройки этого используются три параметра в реестре по пути
    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]
Один из возможных источников проблем с синхронизацией времени — смена PDC emulator в домене. Чтобы избежать этой ситуации не забудьте:

На «старом» PDC Emulator запустить

w32tm /config /syncfromflags:domhier /reliable:no /update

net stop w32time net start w32time

Затем следует передать роль PDC Emulator на новый контроллер домена.

На «новом» PDC Emulator запустить

w32tm /config /manualpeerlist:PEERS /syncfromflags:manual /reliable:yes /update

где PEERS — сервера — источники точного времени, причем значение это или DNS имя, или IP адрес. Если источников больше одного, то между ними необходимо ввести пробел, а сам список должен быть в кавычках: «time.domain.com time1.domain.com».

Реклама

9 комментариев »

  1. Спасиб. Очень помог.

    комментарий от kaizer — 11.03.2010 @ 07:02 | Ответить

  2. […] с внешним источником. Я как-то уже делал инструкцию Настройка точного времени в домене Windows 2003 / 2008 / 2008 R2, правда тогда еще для 2003 сервера. Вчера потратил весь […]

    Уведомление от Что нужно не забыть сделать после перехода на домен Windows 2008 R2 « Заметки IT Менеджера — 31.03.2010 @ 16:33 | Ответить

  3. Спасибо коллега. Очень помог.

    комментарий от NoRLesT — 14.07.2010 @ 00:06 | Ответить

  4. благодарствую. тоже помогло

    комментарий от shwarz13 — 22.09.2010 @ 19:28 | Ответить

  5. Спасибо, помогает!
    Однако: Если ваш компьютер является контроллером домена то необходимо внести соответствующие изменения в Управление групповой политикой> Default Domain Controllers Policy > Конфигурация компьютера > Административные шаблоны > Cистема > Служба времени Windows > Поставщики времени

    Если ваш локальный NTP-сервер работает в условиях рабочей группы, то gpedit.msc
    Конфигурация компьютера > Административные шаблоны > Cистема > Служба времени Windows > Поставщики времени

    комментарий от maxi_ekb — 06.06.2011 @ 12:29 | Ответить

  6. В групповой политике (локальной или доменной) Конфиг. комп — Админ шаблоны — Система — Служба времени Windows — Поставщики времени, значение параметра Включить NTP-клиент Windows, установите «Не задано»
    а то не работает нормально

    комментарий от maxi_ekb — 08.06.2011 @ 10:50 | Ответить

  7. «Эта утилита входит в комплект Support Tools для Windows 2003 Server. К сожалению, на Windows 2008 R2 она не работает.»

    Вот ссылка на PortQryV2 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17148#Instructions
    Работает под 2008 R2 SP1

    комментарий от Volodya — 22.07.2011 @ 18:38 | Ответить

  8. /b Благодарю /b

    комментарий от Yasant — 22.12.2015 @ 11:18 | Ответить


RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Блог на WordPress.com.

%d такие блоггеры, как: