- Windows server 2019 ntp client
- Синхронизация времени в Active Directory
- Конфигурация NTP-сервера на корневом PDC
- Включение синхронизации внутренних часов с внешним источником
- Задание списка внешних источников для синхронизации
- Задание интервала синхронизации с внешним источником
- Установка минимальной положительной и отрицательной коррекции
- Все необходимое одной строкой
- Полезные команды
- Настройка NTP сервера и клиента групповой политикой
- Особенности виртуализированных контроллеров домена
- Предварительная оценка Insider preview
- Поддержка корректировочной секунды Leap second support
- Протокол точного времени Precision time protocol
- Установка меток времени программным образом Software timestamping
Windows server 2019 ntp client
Добрый день уважаемые читатели и гости блога pyatilistnik.org, как много люди говорят о времени, что оно быстро или медленно бежит, и все понимают, что оно бесценно и важно. Так и в инфраструктуре Active Directory, она является одним из важнейших факторов, правильного функционирования домена. В домене все друг другу доверяют, и один раз авторизовавшись и получив все тикеты от Kerberos, пользователь ходит куда угодно, ограничиваясь лишь своими доступными правами. Так вот если у вас не будет точного времени на ваших рабочих станциях к контроллеру домена, то можете считать, что у вас начинаются серьезные проблемы, о которых мы поговорим ниже и рассмотрим как их устранить с помощью настройки NTP сервера в Windows.
Синхронизация времени в Active Directory
Среди компьютеров, участвующих в Active Directory работает следующая схема синхронизация времени.
- Контроллер корневого домена в лесу AD, которому принадлежит FSMО-роль эмулятора PDC (назовем его корневым PDC), является источником времени для всех остальных контроллеров этого домена.
- Контроллеры дочерних доменов синхронизируют время с вышестоящих по топологии AD контроллеров домена.
- Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.
Корневой PDC может синхронизировать свое время как со внешним источником, так и с самим собой, последнее задано конфигурацией по умолчанию и является абсурдом, о чем периодически намекают ошибки в системном журнале.
Синхронизация клиентов корневого PDC может осуществятся как с его внутренних часов, так и с внешнего источника. В первом случае сервер времени корневого PDC объявляет себя как «надежный» (reliable).
Далее я приведу оптимальную с моей точки зрения конфигурацию сервера времени корневого PDC, при которой сам корневой PDC периодически синхронизирует свое время от достоверного источника в интернете, а время обращающихся к нему клиентов синхронизирует со своими внутренними часами.
Вводим netdom query fsmo. В моем примере, роль PDC и NTP сервера, принадлежит контроллеру dc7
Конфигурация NTP-сервера на корневом PDC
Конфигурирование сервера времени в Windows (NTP-сервера) может осуществляться как с помощью утилиты командной строки w32tm, так и через реестр. Где возможно, я приведу оба варианта. Но в начале посмотрите полностью ваши настройки на компьютере, делается это командой:
EventLogFlags: 2 (Локально)
AnnounceFlags: 10 (Локально)
TimeJumpAuditOffset: 28800 (Локально)
MinPollInterval: 6 (Локально)
MaxPollInterval: 10 (Локально)
MaxNegPhaseCorrection: 172800 (Локально)
MaxPosPhaseCorrection: 172800 (Локально)
MaxAllowedPhaseOffset: 300 (Локально)
FrequencyCorrectRate: 4 (Локально)
PollAdjustFactor: 5 (Локально)
LargePhaseOffset: 50000000 (Локально)
SpikeWatchPeriod: 900 (Локально)
LocalClockDispersion: 10 (Локально)
HoldPeriod: 5 (Локально)
PhaseCorrectRate: 7 (Локально)
UpdateInterval: 100 (Локально)
NtpClient (Локально)
DllName: C:\Windows\system32\w32time.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
CrossSiteSyncFlags: 2 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)
ResolvePeerBackoffMinutes: 15 (Локально)
ResolvePeerBackoffMaxTimes: 7 (Локально)
CompatibilityFlags: 2147483648 (Локально)
EventLogFlags: 1 (Локально)
LargeSampleSkew: 3 (Локально)
SpecialPollInterval: 3600 (Локально)
Type: NT5DS (Локально)
NtpServer (Локально)
DllName: C:\Windows\system32\w32time.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 0 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)
VMICTimeProvider (Локально)
DllName: C:\Windows\System32\vmictimeprovider.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
Включение синхронизации внутренних часов с внешним источником
- [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
«Type»=»NTP» - w32tm /config /syncfromflags:manual
Объявление NTP-сервера в качестве надежного
- [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
«AnnounceFlags»=dword:0000000a - w32tm /config /reliable:yes
NTP-сервер по умолчанию включен на всех контроллерах домена, однако его можно включить и на рядовых серверах.
- [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]
«Enabled»=dword:00000001
Задание списка внешних источников для синхронизации
- [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
«NtpServer»=»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 ru.pool.ntp.org,0x8» - w32tm /config /manualpeerlist:»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 ru.pool.ntp.org,0x8″
Флаг 0×8 на конце означает, что синхронизация должна происходить в режиме клиента NTP, через предложенные этим сервером интервалы времени. Для того, чтобы задать свой интервал синхронизации, необходимо использовать флаг 0×1.
Задание интервала синхронизации с внешним источником
Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0×1.
- [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
«SpecialPollInterval»=dword:00000384
Установка минимальной положительной и отрицательной коррекции
Максимальная положительная и отрицательная коррекция времени (разница между внутренними часами и источником синхронизации) в секундах, при превышении которой синхронизация не происходит. Рекомендую значение 0xFFFFFFFF, при котором коррекция сможет производиться всегда.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
«MaxPosPhaseCorrection»=dword:FFFFFFFF
«MaxNegPhaseCorrection»=dword:FFFFFFFF
Все необходимое одной строкой
w32tm.exe /config /manualpeerlist:»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 pool.ntp.org,0x8″ /syncfromflags:manual /reliable:yes /update
Полезные команды
- Применение внесенных в конфигурацию службы времени изменений
w32tm /config /update - Принудительная синхронизация от источника
w32tm /resync /rediscover - Отображение состояния синхронизации контроллеров домена в домене
w32tm /monitor - Отображение текущих источников синхронизации и их статуса
w32tm /query /peers
Настройка NTP сервера и клиента групповой политикой
Раз уж у нас с вами домен Active Directory, то глупо не использовать групповые политики, для массовой настройки серверов и рабочих станций, я покажу как настроить ваш NTP сервер в windows и клиента. Открываем оснастку «Редактор групповых политик». Перед тем как настроить наш NTP сервер в Windows, нам необходимо создать WMI фильтр, который будет применять политику, только к серверу мастера PDC.
Вводим имя запроса, пространство имен, будет иметь значение «root\CIMv2» и запрос «Select * from Win32_ComputerSystem where DomainRole = 5». Сохраняем его.
Затем вы создаете политику на контейнере Domain Controllers.
В самом низу политики применяете ваш созданный WMI фильтр.
Переходим в ветку: Конфигурация компьютера > Политики > Административные шаблоны > Система > Служба времени Windows > Поставщики времени.
Тут открываем политику «Настроить NTP-клиент Windows». Задаем параметры
- NtpServer: 0.ru.pool.ntp.org,0x1 1.ru.pool.ntp.org,0x1 2.ru.pool.ntp.org,0x1 3.ru.pool.ntp.org,0x1
- Type: NTP
- CrossSiteSyncFlags: 2. Двойка означает, если этот параметр равен 2 (Все), можно использовать любого участника синхронизации. Это значение игнорируется, если не задано значение NT5DS. Значение по умолчанию: 2 (десятичное) (0x02 (шестнадцатеричное))
- ResolvePeerBackoffMinutes: 15. Это значение, выраженное в минутах, определяет интервал ожидания службы W32time перед попыткой разрешения DNS-имени в случае неудачи. Значение по умолчанию: 15 минут
- Resolve Peer BAckoffMaxTimes: 7. Это значение определяет число попыток разрешения DNS-имени, предпринимаемых службой W32time перед перезапуском процесса обнаружения. При каждом неудачном разрешении DNS-имени интервал ожидания перед следующей попыткой удваивается. Значение по умолчанию: семь попыток.
- SpecilalPoolInterval: 3600. Это значение параметра NTP-клиента, выраженное в секундах, определяет частоту опроса настроенного вручную источника времени, который использует особый интервал опроса. Если для параметра NTPServer установлен флаг SpecialInterval, клиент использует значение, заданное как SpecialPollInterval, вместо значений MinPollInterval и MaxPollInterval, чтобы определить частоту опроса источника времени. Значение по умолчанию: 3600 секунд (1 час).
- EventLogFlags: 0
Делаем отдельную групповую политику для клиентских рабочих машин, вот с такими параметрами.
- NtpServer: Адрес вашего контроллера домена с ролью PDC.
- Type: NT5DS
- CrossSiteSyncFlags: 2
- ResolvePeerBackoffMinutes: 15
- Resolve Peer BAckoffMaxTimes: 7
- SpecilalPoolInterval: 3600
- EventLogFlags: 0
Далее идем на клиента и обновляем групповые политики gpupdate /force и вводим команду w32tm /query /status
Особенности виртуализированных контроллеров домена
Контроллеры домена, работающие в виртуализированной среде, требуют к себе особенного отношения.
- Средства синхронизации времени виртуальной машины и хостовой ОС должны быть выключены. Во всех адекватных системах виртуализации (Microsoft, vmWare и т. д.) присутствуют компоненты интеграции гостевой ОС с хостовой, которые значительно повышают производительность и управляемость гостевой системой. Среди этих компонентов всегда есть средство синхронизации времени гостевой ОС с хостовой, которое очень полезно для рядовых машин, но противопоказано для контроллеров домена. Потому как в этом случае весьма вероятен цикл, при котором контроллер домена и хостовая ОС будут синхронизировать друг друга. Последствия печальны.
- Для корневого PDC синхронизация с внешним источником должна быть настроена всегда. В виртуальной среде часы не настолько точны как в физической, потому как виртуальная машина работает с виртуальным процессором и прерываниями, для которых характерно как замедление, так и ускорение относительно «обычной» частоты. Если не настроить синхронизацию виртуализированного корневого PDC с внешним источником, время на всех компьютерах предприятия может убегать/отставать на пару часов в сутки. Не трудно представить неприятности, которые может принести такое поведение.
Предварительная оценка Insider preview
Поддержка корректировочной секунды Leap second support
Применяется к: Windows Server 2019 и Windows 10 версии 1809 Applies to: Windows Server 2019 and Windows 10, version 1809
Корректировочной секундой называется изменение времени UTC на 1 секунду, которая выполняется нерегулярно. A leap second is an occasional 1-second adjustment to UTC. Из-за постепенного замедления вращения Земли время UTC (по атомным часам) немного отклоняется от среднего солнечного времени (астрономического). As the earth’s rotation slows, UTC (an atomic timescale) diverges from mean solar time or astronomical time. Когда такое расхождение достигает 0,9 секунды, к времени UTC добавляется корректировочная секунда, чтобы сохранить синхронизацию со средним солнечным временем. Once UTC has diverged by at most .9 seconds, a leap second is inserted to keep UTC in-sync with mean solar time.
Корректировочные секунды стали важны с учетом современных нормативных требований к точности и отслеживаемости в США и странах Европейского союза. Leap seconds have become important to meet the accuracy and traceability regulatory requirements both in the United States and the European Union.
Дополнительная информация: For more information, see:
Руководство по проверке для разработчиков Validation Guide for the Developers
Руководство по проверке для ИТ-специалистов Validation Guide for the IT Pro
Протокол точного времени Precision time protocol
Применяется к: Windows Server 2019 и Windows 10 версии 1809 Applies to: Windows Server 2019 and Windows 10, version 1809
Новый поставщик времени, входящий в Windows Server 2019 и Windows 10 (версия 1809), позволяет синхронизировать время с использованием PTP (протокол точного времени). A new time provider included in Windows Server 2019 and Windows 10 (version 1809) allows you to synchronize time using the Precision Time Protocol (PTP). Распространение информации о времени по сети сталкивается с сетевой задержкой. Если такая задержка не учитывается или не является симметричной, полученная от сервера отметка времени теряет смысл. As time distributes across a network, it encounters delay (latency), which if not accounted for, or if it is not symmetric, it becomes increasingly difficult to understand the time-stamp sent from the time server. Протокол PTP позволяет сетевым устройствам добавлять к измерениям времени задержку, вносимую каждым сетевым устройством, существенно повышая точность выборки времени для клиента Windows. PTP enables network devices to add the latency introduced by each network device into the timing measurements thereby providing a far more accurate time sample to the windows client.
Дополнительная информация: For more information, see:
Руководство по проверке для ИТ-специалистов Validation Guide for the IT Pro
Установка меток времени программным образом Software timestamping
Применяется к: Windows Server 2019 и Windows 10 версии 1809 Applies to: Windows Server 2019 and Windows 10, version 1809
При получении по сети пакета времени от сервера он сначала обрабатывается сетевым стеком операционной системы, и лишь затем поступает в службу времени. When receiving a timing packet over the network from a time server, it must be processed by the operating system’s networking stack before being consumed in the time service. Каждый компонент сетевого стека вносит некоторую задержку неизвестной величины, что снижает точность измерений времени. Each component in the networking stack introduces a variable amount of latency that affects the accuracy of the timing measurement.
Чтобы устранить эту проблему, используется программная установка меток времени в точках до и после обработки в сетевых компонентах Windows, как показано выше, что позволяет учесть задержку в операционной системе. To address this problem, software timestamping allows us to timestamp packets before and after the «Windows Networking Components» shown above to account for the delay in the operating system.
Дополнительная информация: For more information, see: