Настройка 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.
Во втором случае необходимо проверить все сначала: файрвол, правильность заданных серверов (не ошиблись ли в имени). Если что — информацию о сбросе настроек мы уже приводили.