Настройка NTP в Windows Server 2012

Настройка времени в серверных операционных системах Windows с помощью протокола NTP является критичной для многих служб. Без правильного настроенного времени, а точнее при рассогласовании часов на сервере и рабочих станциях не могут правильно работать многие протоколы Active Directory и сервисы синхронизации. Установка и поддержка часов с помощью NTP является простой задачей, связанной иногда, однако, с некоторыми сложностями, которые мы попытаемся рассмотреть в этой статье.

Для примера будем использовать не самую свежую систему — Windows Server 2012. Она является наиболее распространенной и, в то же время, для многих других систем, включая Windows Server 2008, Windows Server 2016 применимы аналогичные команды и правила. Следует отметить, что описание касается настройки окружения с единственным главным контроллером PDC. Более сложные варианты не рассматриваются.

Сброс настроек NTP

Для того, чтобы перевести службу NTP в «дефолтное» состояние, необходимо выполнить следующие команды:

Stop-Service w32time
w32tm /unregister
w32tm /register

В данном случае они останавливают сервис, разрегистрируют сервис и регистрируют его в системе заново. Следует выполнять эти команды только в случае существенной необходимости. Как правило, нужды в них нет — NTP настраивается, если учтены другие обстоятельства системы.

Команды установки NTP в обычном случае

Для того, чтобы настроить протокол сетевого времени на контроллере Windows Server, прежде всего необходимо отключить синхронизацию посредством Hyper-V, если контроллер виртуализирован с помощью этой технологии. Для этого нужно зайти в настройки и снять галочку с пункта Time Synchronization в разделе Management -> Integration Services

Для тех, кто не использует Hyper-V, предыдущий шаг можно опустить.

Далее, запустить Power-Shell и ввести команды:

w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:MANUAL
Stop-Service w32time
Start-Service w32time

На этом установка в качестве основного ntp-сервера одного из pool.ntp.org закончена.

Выбор ntp-сервера

Однако нет жесткой необходимости использовать именно этот сервер. Для тех, кто находится в интранете, для тех, у кого есть предпочтения по геолокации или другим параметрам, можно указать другой сервер. Или даже список в кавычках, разделенный пробелами:

w32tm /config /manualpeerlist:"0.de.pool.ntp.org 1.de.pool.ntp.org" /syncfromflags:MANUAL

Протокол UDP для NTP и блокировка файрволом

Протокол времени использует для своей связи порт UDP с номером 123 в стандартной конфигурации. Необходимо следить за тем, чтобы файрвол не блокировал этот порт. В случае, если блокировка происходит, в логах ntp будет масса информации о том, что соединение невозможно:

Log Name: System
Source: Microsoft-Windows-Time-Service
Event ID: 47
Level: Warning
Description: Time Provider NtpClient: No valid response has been received from manually configured peer pool.ntp.org 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. The error was: The peer is unreachable.

Для того, чтобы убедиться, что проблема именно в этом, можно включить вывод дополнительной отладочной информации. Настраиваем логи Windows Server таким образом, чтобы в них писалась вся необходимая информация, но они не росли больше, чем 20 мегабайт:

w32tm /debug /enable /file:C:\tmp\ntp.log /size:20971520 /entries:0-300

Следите за тем, чтобы на диске присутствовал каталог C:\tmp куда будут записаны логи.

После того, как ошибка будет отловлена, вывод дополнительной отладочной информации можно будет отключить:

w32tm /debug /disable

Блокировка ntp файрволом отлавливается по фразе в отладке:

— Logging error: NtpClient has been configured to acquire time from one or more time sources, however none of the sources are currently accessible and no attempt to contact a source will be made for 1 minutes. NTPCLIENT HAS NO SOURCE OF ACCURATE TIME.

В этом случае (да, в общем, сразу с целью проверки) необходимо проверить правило в файрволе

И, в случае необходимости, поменять правило или добавить его.

Проверка правильности работы ntp

Чтобы проверить — все ли работает правильно, можно запустить синхронизацию вручную:

w32tm /resync

Если все прошло успешно, получите сообщение:

Sending resync command to local computer
The command completed successfully.

Если есть проблемы — сообщение:

The computer did not resync because no time data was available.

Во втором случае необходимо проверить все сначала: файрвол, правильность заданных серверов (не ошиблись ли в имени). Если что — информацию о сбросе настроек мы уже приводили.

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