В этой статье показано, как настроить службу времени Windows (NTP) в Windows Server 2016, чтобы она действовала как NTP-сервер для клиентских компьютеров домена.
Содержание
- Немного теории
- Проверяем откуда сервер берет время
- Быстрая настройка NTP на Windows Server 2016
- Расширенная настройка NTP на Windows Server 2016
- Проверка работы NTP сервера (Живой ли внешний NTP сервер с которого мы берем время)
- Список команд w32tm
- Также хотел бы поделится комментарием найденным на форуме
Немного теории
Синхронизация времени — важный и во многом достаточно критичный аспект работы Active Directory, особенно сегодня, когда широко используется взаимодействие с внешними системами и работа с сотрудниками, которые могут находиться в различных часовых поясах. Применение систем виртуализации вносит дополнительные особенности, которые также следует учитывать. Поэтому данный вопрос может оказаться не столь простым, как кажется, а синхронизация с внешним источником точного времени становится одной из актуальных задач.
Прежде всего вспомним, как происходит синхронизация времени в Active Directory. В качестве эталона времени выступает контроллер, владеющий ролью эмулятора PDC. Это FSMO-роль и эмулятором PDC может являться только один контроллер в каждом домене. С ним синхронизируют время остальные контроллеры домена. Доменные ПК и рядовые серверы сверяют часы с ближайшим контроллером домена.
Сам эмулятор PDC в качестве источника точного времени может использовать либо аппаратные часы материнской платы, либо внешний источник точного времени, при нахождении в виртуальной среде также может быть использовано время хоста виртуализации.
О последней поговорим более подробно. Раньше все было довольно просто, источником времени в домене обычно служили аппаратные часы эмулятора PDC, ну отстали или убежали на пару минут, в конце концов можно и подвести. Когда добавилось требование взаимодействия с внешними системами критичными к точному времени (например, использующих криптографию), то в качестве источника времени стал выступать внешний сервер. От него получал время эмулятор PDC, с ним синхронизировались контроллеры, а от них точное время расходилось на остальных участников домена.
С приходом виртуализации все изменилось, появился еще один источник времени — время хоста виртуализации. Многие гипервизоры по умолчанию имеют включенной настройку синхронизации времени гостевых систем и при попадании в виртуальную среду контроллера может возникнуть следующая коллизия: контроллер синхронизирует время с хостом, но сам хост, являясь членом домена, в свою очередь синхронизируется с контроллером.
Еще хуже, если в виртуальную среду попадает эмулятор PDC, в силу особенностей таймера виртуальных машин, время внутри может достаточно сильно плавать, поэтому виртуальный эмулятор PDC всегда должен синхронизировать время с внешним источником, а синхронизация времени с хостом должна быть отключена, последнее касается и всех остальных виртуальных членов домена.
Проверяем откуда сервер берет время
Давайте перейдем от теории к практике. Начнем с того, что выясним кто из контроллеров является эмулятором PDC и эталоном времени для домена. Это можно сделать на любом контроллере домена командой:
netdom query fsmo
В выводе будут показаны все хозяева операций, нас интересует только эмулятор PDC.
Затем перейдем на указанный контроллер и узнаем источник времени для него, для этого выполните команду:
w32tm /query /source
Если в выводе вы увидите:
Local CMOS Clock
Free-Running System Clock
то источником времени являются аппаратные часы. А если там будет:
VM IC Time Synchronization Provider
то вы имеете дело с виртуальной машиной, которая синхронизирует время с хостом.
Данную настройку следует исправить, это можно сделать в настройках виртуальной машины, отключив синхронизацию времени с хостом, либо в самой системе, для этого откройте ветвь реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersVMICTimeProvider
и установите для параметра Enabled значение 0.
После данного изменения следует перезапустить Службу времени Windows как показано ниже или перезагрузить компьютер.
net stop w32time
net start w32time
Далее будет показана быстрая настройка NTP клиента на сервере и более расширенная.
Быстрая настройка NTP на Windows Server 2016
На вашем Windows Server 2016 нажмите кнопку Windows и введите: PowerShell, щелкните правой кнопкой мыши и выберите «Запуск от имени администратора».
Введите следующие команды
w32tm /config /manualpeerlist:ntp1.stratum2.ru /syncfromflags:manual /reliable:yes /update
reliable:(YES|NO) — определяет, является ли этот компьютер надежным источником времени
Stop-Service w32time
Start-Service w32time
Конечно, вы можете взять любой NTP-сервер, какой захотите. Я брал отсюда
Теперь проверьте, правильно ли настроен сервер времени на вашем сервере Server 2016, набрав:
w32tm /query /status
Расширенная настройка NTP на Windows Server 2016
Расширенная настройка нашего эмулятора PDC на работу с внешними источниками точного времени. Все изменения также будут вноситься через реестр. Прежде всего изменим тип сервера на NTP, для этого откроем ветку
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters
и для параметра Type укажем строковое значение NTP. А для параметра NtpServer зададим адреса серверов точного времени, после каждого из которых, через запятую укажем 0x8, если мы хотим работать как стандартный NTP-клиент или 0x1 если будем использовать собственные параметры, например:
ntp1.stratum2.ru,0x1 ntp2.stratum2.ru,0x1 ntp4.stratum2.ru,0x1
После чего в
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpServer
Параметр Enabled установим в значение 1.
Затем перейдем в
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig
и установим для параметра AnnounceFlags значение A.
Значение «AnnounceFlags» может составлять сумму его флагов, например:
10=2+8 — NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.
5=1+4 — NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не контроллер домена) как надежный источник времени, нужен флаг 5;
Следующие параметры будут работать, только если мы при указании серверов добавили 0x1, иначе будут использоваться настройки, предлагаемые сервером. Чтобы задать период синхронизации откройте ветку
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient
и для параметра SpecialPollInterval укажите десятичное значение в секундах.
Вернемся в
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig
И зададим максимальное время опережения и отставания часов, после которых синхронизация производиться не будет. Для этого используются параметры MaxPosPhaseCorrection (опережение) и MaxNegPhaseCorrection (отставание) для которых также следует задать десятичное значение в секундах. По умолчанию стоит 48 часов. Это значит, что если время на эмуляторе PDC уйдет от точного источника более чем на 48 часов в любую сторону, то синхронизация производиться не будет.
Если вы хотите, чтобы время синхронизировалось всегда, то установите в оба параметра шестнадцатеричное значение FFFFFFFF.
Выполнив настройки перезапустите Службу времени Windows, это также можно сделать в командной строке:
net stop w32time
net start w32time
После чего еще раз выполним команду чтобы показать источники времени и их состояние
w32tm /query /peers
выполняем еще команду
w32tm /query /source
и убедимся, что источником времени для эмулятора PDC является внешний сервер.
Затем выполним данную команду на рядовых контроллерах домена, в качестве источника времени там должен быть указан эмулятор PDC, и на обычных ПК, где в выводе будет присутствовать любой из контроллеров домена. Обязательно выполните контроль для виртуальных машин, чтобы быть уверенным, что они используют время домена, а не хоста виртуализации.
Проверка работы NTP сервера (Живой ли внешний NTP сервер с которого мы берем время)
В Windows, нужно открыть командную строку и выполнить команду w32tm со специальными параметрами. Где ntp1.stratum2.ru — это NTP сервер
w32tm /stripchart /computer:ntp1.stratum2.ru /dataonly /samples:3
Ответ будет содержать локальное время, и разницу со временем на указанном NTP сервере. Например:
w32tm /stripchart /computer:ntp1.stratum2.ru /dataonly /samples:3
Tracking ntp1.stratum2.ru [88.147.254.230:123].
Collecting 3 samples.
The current time is 8/1/2022 3:48:56 PM.
15:48:56, +00.0098812s
15:48:58, -00.0036452s
15:49:00, +00.0005137s
PS C:UsersAdministrator>
На данном выводе видно что погрешность синхронизации составяляет +00.0098812s
Список команд w32tm
Основные команды конфигурации w32tm
- w32tm /register — Регистрация и включение службы со стандартными параметрами.
- w32tm /unregister — Отключение службы и удаление параметров конфигурации.
- w32tm /monitor — Просмотр информации по домену.
- w32tm /resync — Команда принудительной синхронизации с заданным в конфигурации источником.
- w32tm /config /update — Применить и сохранить конфигурацию.
- w32tm /config /syncfromflags:domhier /update – Задаем настройку синхронизации с контроллером домена.
- w32tm /config /syncfromflags:manual /manualpeerlist:time.windows.com – задать конкретные источники синхронизации времени по протоколу NTP.
Просмотр параметров (/query)
- w32tm /query /computer:<target> — Информация о стутусе синхронизации определенной станции (если имя не указано — используется локальный компьютер).
- w32tm /query /Source – Показать источник времени.
- w32tm /query /Configuration — Вывод всех настроек службы времени Windows.
- w32tm /query /Peers – Показать источники времени и их состояние.
- w32tm /query /Status – Статус службы времени.
- w32tm /query /Verbose – Подробный вывод всей информации о работе службы.
Также хотел бы поделится комментарием найденным на форуме
За настройку NTP через политики надо больно бить по рукам. 1. В доменной среде ничего не надо делать, контроллеры берут время с PDC, клиенты с контроллера. 2. Точности времени секунда в секунду не добьетесь. Больная тема для меня. Предыдущие админы нахреначили синхронизацию чуть ли не в 10 разных политиках, до сих пор натыкаюсь и с матами удаляю. Есть проблема с синхронизацией времени? На всех контроллерах: 1. Убиваем службу w32time 2. Грохаем ветку реестра HKLMSystemCurrentControlSetservicesW32Time 3. Регистрируем службу заново 4. Проверяем, что параметр TYPE в HKLMSystemCurrentControlSetservicesW32TimeParameters равен NT5DS Конфигурация NTP-сервера Задаем тип синхронизации внутренних часов, на использование внешнего источника. NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются системные часы, встроенные в микросхему CMOS самого сервера. NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer. NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии. AllSync — NTP-сервер использует для синхронизации все доступные источники. На PDC настраиваем синхронизацию с внешним поставщиком времени 5. И ничего б*ть не трогаем!=) Через какое-то время время стабилизируется. Для понимания — время не импортируется, оно сверяется и подгоняется под эталон. Не забываем, что для керберос разница в 5 минут не критична. Хитрожопых кадровиков и безопасников, желающих снихронить свои убогие СКУДы с виндовыми тачками слать надолго и подальше. Всё, я кончил =) ===
Полностью согласен. Время домена — не повод для торговли. Оно должно быть правильным, но в разумных пределах, плюс-минус несколько минут не являются критичными для общения. Хотя встречал домен, где для хождения кербероса админы сделали максимальную погрешность часов сутки. Всякое бывает, но «правильный» админ всегда найдет решение… или костыль… ===
ПК не знает и никак не узнает, что PDC сменился. Так что политика обязательно должна быть! === А ему не надо знать. Он кричит в сеть «PDC!!!», а те сами знают, кому из них отозваться. У них DNS для этого есть.
Windows, Windows 10, Windows 7, Windows 8, Windows Server, Windows Vista, Windows XP
- 18.06.2020
- 13 814
- 2
- 06.10.2022
- 7
- 7
- 0
- Содержание статьи
- Отключение синхронизации времени через командную строку
- Отключение синхронизации времени через редактирование реестра
- Комментарии к статье ( 2 шт )
- Добавить комментарий
По умолчанию, компьютеры под управлением операционной системы Windows постоянно синхронизируют время с NTP серверами, с целью поддержания верных настроек времени на компьютере. На компьютерах входящих в домен Active Directory, в роли NTP серверов выступают контроллеры домена. За синхронизацию времени отвечает служба времени Windows, она же W32Time.
Включенная синхронизация времени никак не мешает поменять время на компьютере, однако, спустя какое-то время после смены времени или даты, оно будет синхронизировано с NTP сервером, после чего будет принудительно выставлено его актуальное значение. Однако, всегда есть возможность отключить принудительную синхронизацию времени, о чем и пойдет речь в материале ниже.
Обратите внимание, что данная статья описывает отключение синхронизации времени службой времени Windows. Однако, многие виртуальные машины имеют встроенные службы синхронизации времени между хостом и гостевой системой, по этому для отключения синхронизации времени в виртуальной машине, выполнения нижеописанных действий может быть недостаточно.
Отключение синхронизации времени через командную строку
Для того, чтобы отключить синхронизацию времени, нужно выполнить следующие команды в командной строке, запущенной с правами администратора:
w32tm /config /syncfromflags:no /update
net stop w32time && net start w32time
А вот команда на включение синхронизации времени зависит от того, входит ли Ваш компьютер в домен Active Directory, или нет.
Если компьютер не входит в домен, то команда на включение синхронизации времени выглядит следующим образом:
w32tm /config /syncfromflags:all /update
net stop w32time && net start w32time
Если же компьютер находится в домене Active Directory, то команда уже имеет такой вид:
w32tm /config /syncfromflags:domhier /update
net stop w32time && net start w32time
Отключение синхронизации времени через редактирование реестра
За параметры работы службы времени Windows, отвечает раздел HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters
, а за режим синхронизации времени отвечает параметр Type. Для того, чтобы отключить синхронизацию времени, необходимо задать ему значение NoSync
.
Для включения синхронизации для компьютера с NTP серверами, не входящего в домен Active Directory, нужно задать значение параметра NTP
. Для компьютеров в домене Active Directory, включение синхронизации времени с контроллером домена задается значением NT5DS
.
Поскольку командная строка и PowerShell имеют свои удобные способы редактирования реестра, то приведем их ниже
Командная строка
- Выключение синхронизации времени:
REG add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters /v Type /d NoSync /f net stop w32time && net start w32time
- Включение синхронизации времени с NTP серверами в интернете:
REG add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters /v Type /d NTP /f net stop w32time && net start w32time
- Включение синхронизации времени с контроллером домена:
REG add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters /v Type /d NT5DS /f net stop w32time && net start w32time
PowerShell
- Выключение синхронизации времени:
PowerShell Set-ItemProperty HKLM:SYSTEMCurrentControlSetservicesW32TimeParameters -Name "Type" -Value "NoSync" Restart-Service -Name w32time
- Включение синхронизации времени с NTP серверами в интернете:
PowerShell Set-ItemProperty HKLM:SYSTEMCurrentControlSetservicesW32TimeParameters -Name "Type" -Value "NTP" Restart-Service -Name w32time
- Включение синхронизации времени с контроллером домена:
PowerShell Set-ItemProperty HKLM:SYSTEMCurrentControlSetservicesW32TimeParameters -Name "Type" -Value "NT5DS" Restart-Service -Name w32time
- Remove From My Forums
-
Вопрос
-
Собственно тема и есть вопрос помогите надо перевести пару машин на несколько лет назад.
Ответы
-
Можно отключить синхронизацию времени на клиенте с домен-контроллером (w32tm /config /syncfromflags:NO /update), но если расхождение времени превысит 5 минут, то ни компьютер, ни пользователь не смогут аутентифицироваться в домене.
-
Помечено в качестве ответа
Капитошка
10 января 2013 г. 11:08
-
Помечено в качестве ответа
Все ответы
-
Если такое изменение даты действительно необходимо, лучше вывести компьютеры из домена, поскольку аутентификация в домене все равно будет нарушена. То, что компьютеры не будут в домене, не помешает вам подключаться к сетевым ресурсам, вводя вручную имя
пользователя вида domainusername и пароль. -
Если такое изменение даты действительно необходимо, лучше вывести компьютеры из домена, поскольку аутентификация в домене все равно будет нарушена. То, что компьютеры не будут в домене, не помешает вам подключаться к сетевым ресурсам, вводя вручную
имя пользователя вида domainusername и пароль.как я понимаю этого сделать нельзя ни на клиенте ни на сервере (изменить в реестре клиента автоматическое обновление с сервера) это просто догадка не знаю есть ли такое
В идеале хотелось бы видеть сеть из 20 машин в домене из которых 2 компа работают в 2011 году
-
Можно отключить синхронизацию времени на клиенте с домен-контроллером (w32tm /config /syncfromflags:NO /update), но если расхождение времени превысит 5 минут, то ни компьютер, ни пользователь не смогут аутентифицироваться в домене.
-
Помечено в качестве ответа
Капитошка
10 января 2013 г. 11:08
-
Помечено в качестве ответа
-
Если такое изменение даты действительно необходимо, лучше вывести компьютеры из домена, поскольку аутентификация в домене все равно будет нарушена. То, что компьютеры не будут в домене, не помешает вам подключаться к сетевым ресурсам, вводя вручную имя пользователя
вида domainusername и пароль.если это нужно для разовых операций — не вижу смысла выводить из домена.
если опять таки для разовых операций — стопайте службу времени, переводите часы как надо и работайте, но с аутентификацией доменной, конечно же, проблемы будут. очень интересует для чие сие задумывается. не для 1с ли часом?
Служба времени Windows, несмотря на кажущуюся простоту, является одной из основ, необходимых для нормального функционирования домена Active Directory. В правильно настроенной среде AD служба времени работает следующим образом: компьютеры пользователей получают точное время от ближайшего контроллера домена, на котором они зарегистрировались. Все контроллеры домена в свою очередь получают точное время от DC с FSMO ролью «Эмулятор PDC», а контролер PDC синхронизирует свое время с неким внешним источником времени. В качестве внешнего источника времени может выступать один или несколько NTP серверов, например time.windows.com или NTP сервер вашего Интернет-провайдера. Также нужно отметить, что по умолчанию клиенты в домене синхронизируют время с помощью службы времени Windows (Windows Time), а не с помощью протокола NTP.
Если вы столкнулись с ситуацией, когда время на клиентах и контроллерах домена различается, возможно, в вашем домене есть проблемы с синхронизацией времени и эта статья будет вам полезна.
В первую очередь выберите подходящий NTP сервер, который вы могли бы использовать. Список общедоступных NTP серверов доступен на сайте http://ntp.org. В нашем примере мы будем использовать NTP сервера из пула ru.pool.ntp.org:
- 0.ru.pool.ntp.org
- 1.ru.pool.ntp.org
- 2.ru.pool.ntp.org
- 3.ru.pool.ntp.org
Настройка синхронизации времени в домене с помощью групповых политик состоит из двух шагов:
1) Создание GPO для контроллера домена с ролью PDC
2) Создание GPO для клиентов (опционально)
Настройка политики синхронизации NTP на контролере домена PDC
Этот шаг предполагает настройку контроллера домена с ролью эмулятора PDC на синхронизацию времени с внешним NTP сервером. Т.к. теоретически роль эмулятора PDC может перемещаться между контроллерами домена, нам нужно сделать политику, которая применялась бы только к текущему владельцу роли PDC. Для этого в консоли управления Group Policy Management Console (GPMC.msc), создадим новый WMI фильтр групповых политик. Для этого в разделе WMI Filters создадим фильтр и именем PDC Emulator и WMI запросом:
Select * from Win32_ComputerSystem where DomainRole = 5
Затем создайте новую GPO и назначьте ее на контейнер Domain Controllers.
Перейдите в режим редактирования политики и разверните следующий раздел политик: Computer Configuration->Administrative Templates->System->Windows Time Service->Time Providers
Нас интересуют три политики:
- Configure Windows NTP Client: Enabled (настройки политики описаны ниже)
- Enable Windows NTP Client: Enabled
- Enable Windows NTP Server: Enabled
В настройках политики Configure Windows NTP Client укажите следующие параметры:
- 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
- ResolvePeerBackoffMinutes: 15
- Resolve Peer BAckoffMaxTimes: 7
- SpecilalPoolInterval: 3600
- EventLogFlags: 0
Совет. Не забудьте настроить межсетевой экран таким образом, чтобы сервер PDC мог получить доступ к внешним NTP серверам по протоколу NTP (UDP порт 123).
Примечание. Обратите внимание на синтаксис в поле NtpServer. Формат указания нескольких NTP серверов такой:ntsrv1.org,0x1 ntpsrv2.org,0x1 (разделитель пробел). На скриншоте указаны ошибочные данные!
Примените созданный ранее фильтр PDC Emulator к данной политике.
Совет. Найти имя сервера с ролью PDC можно с помощью команды:
netdom query fsmo
Осталось обновить политики на контроллере PDC:
gpupdate /force
Вручную запустите синхронизацию времени:
w32tm /resync
Проверьте текущие настройки NTP:
w32tm /query /status
Совет. В том случае, если время не синхронизировалось, перезапустите службу времени Windows и сбросьте текущие настройки:
net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net start w32time
Настройка синхронизации времени на клиентах домена
В среде Active Directory по умолчанию клиенты домена синхронизируют свое время с контролерами домена (опция Nt5DS – синхронизировать время согласно иерархии домена). Как правило, эта схема работает и не требует перенастройки. Однако при наличии проблем с синхронизацией времени на клиентах домена, можно попробовать принудительно назначить сервер времени для клиентов с помощью GPO.
Для этого создайте новую GPO и назначьте ее на контейнеры (OU) с компьютерами. В редакторе GPO перейдите в раздел Computer Configuration -> Administrative Templates -> System -> Windows Time Service -> Time Providers и включите политику Configure Windows NTP Client.
В качестве сервера NTP укажите имя или ip адрес PDC, например msk-dc1.winitpro.ru,0x9, а в качестве типа синхронизации — NT5DS
Обновите настройки групповых политик на клиентах и проверьте, что клиенты успешно синхронизировали свое время с PDC.
Совет. Указанная схема применима только к небольшим доменам. Для больших распределенных доменов с большим количеством DC и сайтов придется создать отдельную политику для каждого сайта, чтобы клиенты синхронизировали свое время с DC в сайте.
Мы рассмотрим как настроить NTP сервер в сети предприятия, где компьютеры пользователей получают точное время от DC с ролью эмулятора PDC (главный контроллер домена – Primary Domain Controller), в свою очередь DC синхронизирует свое время с внешним источником времени. В данном примере мы будем получать время с серверов pool.ntp.org.
Начиная с Windows 2000 все операционные системы Windows включают в себя службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации и отвечает за работу как клиентской, так и серверной части, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (Network Time Protocol). По умолчанию клиенты в домене синхронизируют время с помощью службы времени Windows (Windows Time), а не с помощью протокола NTP.
Настройка сервера времени под Hyper-V
Для тех у кого контролер домена виртуализирован и поднят на Hyper-V, прежде необходимо отключить Time Synchronization, иначе виртуальная машина будет синхронизирована с Hyper-V сервером.
# Выключение синхронизации для VMware 5
Свойства машины - Options -> VMware Tools -> Synchronize guest time with host
# Выключение синхронизации для VMware 6
VMware Tools -> Time -> Synchronize guest time with host
Создание GPO для контроллера домена с ролью эмулятора PDC (главный контроллер домена – Primary Domain Controller)
1 . Создание фильтра WMI
Нам необходимо настроить групповую политику для синхронизации NTP для контролера домена PDC, в связи с тем что роль PDC может перемещаться между контроллерами домена, нам необходимо применить политику к текущему владельцу роли PDC. Для этого мы создадим WMI фильтр, чтобы политика была применена для сервера с ролью PDC.
Для этого в консоли управления Group Policy Management Console (GPMC.msc), в разделе WMI Filters создадим новый WMI фильтр с именем PDC selected и запросом: Select * from Win32_ComputerSystem where DomainRole = 5
Select * from Win32_ComputerSystem where DomainRole = 5
2 . Создаем и редактируем новую GPO
2.1 Для контейнера Domain Controllers создаем групповую политику, в нашем случае это PDC Time Synchronization.
2.2 Редактируем политику PDC Time Synchronization, разворачиваем Computer Configuration -> Policies -> Administrative Templates -> System -> Windows Time Service -> Time Providers и включаем следующие политики:
Configure Windows NTP Client: Enabled Enable Windows NTP Client: Enabled Enable Windows NTP Server: Enabled
2.3 В настройках политики Enable Windows NTP Server, задаем:
NtpServer: 0.pool.ntp.org,0x1 1.pool.ntp.org,0x1 2.pool.ntp.org,0x1 Type: NTP CrossSiteSyncFlags: 2 ResolvePeerBackoffMinutes: 15 Resolve Peer BAckoffMaxTimes: 7 SpecilalPoolInterval: 3600 EventLogFlags: 0
Дополнительные опции политики
Enable Windows NTP Server
NoSync — NTP-сервер не синхронизируется с внешним источником времени. Используются встроенные часы в микросхему CMOS самого сервера; NTP — NTP-сервер синхронизируется серверами указаными в параметре NtpServer; NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии; AllSync — NTP-сервер использует для синхронизации все доступные источники.
Выбрать сервер для синхронизации вы можете по ссылке NTPPoolServers
Параметр NtpServer задает NTP-сервера, с которыми будем синхронизировать время. По умолчанию там задан NTP-сервер Microsoft (time.windows.com,0x1), дополнительные сервера можно добавит через пробел. В конце каждого имени сервера можно добавлять флаг (сервер,0x1) который определяет режим для синхронизации с сервером времени.
Допускаются следующие значения:
0x1 – SpecialInterval, использование специального интервала опроса; 0x2 – режим UseAsFallbackOnly; 0x4 – SymmetricActive, симметричный активный режим; 0x8 – Client, отправка запроса в клиентском режиме.
Проверяем ответ NTP сервера
w32tm /stripchart /computer:192.168.1.100 /dataonly /samples:5
title | description | author | ms.service | ms.collection | ms.topic | ms.workload | ms.date | ms.author | ms.openlocfilehash | ms.sourcegitcommit | ms.translationtype | ms.contentlocale | ms.lasthandoff | ms.locfileid |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Синхронизация времени для виртуальных машин Windows в Azure |
Синхронизация времени для виртуальных машин Windows |
cynthn |
virtual-machines |
windows |
conceptual |
infrastructure-services |
09/17/2018 |
cynthn |
85abc77757d31f3b1054a0670ea3f65a4fcb2e52 |
e6de1702d3958a3bea275645eb46e4f2e0f011af |
MT |
ru-RU |
03/20/2021 |
102555964 |
Синхронизация времени для виртуальных машин Windows в Azure
Синхронизация времени важна для безопасности и корреляции событий. Иногда она применяется для реализации распределенных транзакций. Точность времени в нескольких компьютерных системах достигается за счет синхронизации. На синхронизацию может влиять ряд факторов, включая перезагрузки и сетевой трафик между источником времени и получающим сведения о времени компьютером.
Платформа Azure основана на инфраструктуре, работающей под управлением Windows Server 2016. В Windows Server 2016 реализованы улучшенные алгоритмы коррекции времени и синхронизации локальных часов с временем в формате UTC. Кроме того, в Windows Server 2016 улучшена работа службы VMICTimeSync, которая управляет синхронизацией виртуальных машин с узлом для получения точного времени. К числу улучшений относится более точное исходное время при запуске или восстановлении виртуальной машины, а также коррекция задержки при прерывании для образцов, предоставляемых в службу времени Windows (W32time).
[!NOTE]
Краткий обзор службы времени Windows см. в этом видео.Дополнительные сведения см. в статье Точное время в Windows Server 2016.
Обзор
Точность часов компьютера оценивается по тому, насколько близки их показания к стандартному времени в формате UTC. Время UTC устанавливается по точным атомным часам, отклонение которых не превышает одной секунды за 300 лет. Однако для считывания времени UTC напрямую требуется специальное оборудование. Вместо этого со временем UTC синхронизируются серверы времени, к которым затем обращаются другие компьютеры. Таким образом достигается масштабируемость и надежность. На каждом компьютере выполняется служба синхронизации времени, которая знает, какие серверы времени следует использовать, и регулярно проверяет необходимость коррекции часов компьютера, при необходимости корректируя время.
Узлы Azure синхронизированы с внутренними серверами времени Майкрософт, которые получают время от принадлежащих Майкрософт устройств Stratum 1 с антеннами GPS. Виртуальные машины Azure могут получать точное время от узла (время узла) непосредственно с сервера времени или использовать эти способы в сочетании.
Взаимодействие виртуальной машины с узлом также может влиять на показания часов. Во время обслуживания с сохранением памяти виртуальные машины приостанавливаются на срок до 30 секунд. Например, до начала обслуживания часы виртуальной машины показывают 10:00:00, и приостановка длится 28 секунд. Когда виртуальная машина возобновляет работу, ее часы по-прежнему показывают 10:00:00, то есть отстают на 28 секунд. Чтобы скорректировать это отклонение, служба VMICTimeSync отслеживает происходящее в узле и запрашивает внесение изменений в виртуальные машины.
Служба VMICTimeSync работает в режиме образца или синхронизации и влияет только на перевод часов вперед. В режиме образца, предусматривающем функционирование службы W32time, служба VMICTimeSync опрашивает узел каждые 5 секунд и предоставляет W32time образцы времени. Примерно каждые 30 секунд служба W32time корректирует гостевые часы, используя для этого последний образец времени. Режим синхронизации активируется, если гостевая система возобновляет работу или при отставании гостевых часов от часов узла более чем на 5 секунд. Если служба W32time функционирует правильно, последнее никогда не происходит.
При отсутствии синхронизации времени на часах виртуальной машины накапливались бы ошибки. При наличии только одной виртуальной машины последствия могут быть незначительными, если только рабочая нагрузка не требует очень точного отсчета времени. Но в большинстве случаев имеется несколько взаимосвязанных виртуальных машин, которые используют время для отслеживания транзакций, поэтому оно должно быть согласовано в масштабе всего развертывания. Если время в виртуальных машинах различается, могут иметь место указанные ниже последствия.
- Проверка подлинности будет завершаться сбоем. Протоколы безопасности, такие как Kerberos, или технологии, зависящие от сертификатов, требуют согласования времени в системах.
- Очень трудно понять, что случилось в системе, если журналы (или другие данные) рассогласованы по времени. Одно и то же событие будет представляться как произошедшее в разное время, что усложняет корреляцию.
- Если часы идут неверно, могут происходить ошибки при выставлении счетов.
Наилучшие результаты для развертываний Windows достигаются при использовании Windows Server 2016 в качестве операционной системы на виртуальной машине, что позволяет пользоваться последними улучшениями в плане синхронизации времени.
Варианты настройки
Есть три способа настроить синхронизацию времени для виртуальных машин Windows, размещенных в Azure:
- время узла и time.windows.com; это конфигурация по умолчанию для образов из Azure Marketplace;
- только от узла;
- использование другого внешнего сервера времени с применением или без применения времени узла.
Конфигурация по умолчанию
По умолчанию образы виртуальных машин с ОС Windows настроены для синхронизации w32time из двух источников:
- поставщика NtpClient, который получает сведения с сервера time.windows.com;
- службы VMICTimeSync, которая служит для передачи времени узла виртуальным машинам и корректировки после приостановки виртуальных машин для обслуживания. Для поддержания точного времени узлы Azure используют принадлежащие Майкрософт устройства Stratum 1.
w32time отдает приоритет поставщикам времени в следующей очередности: уровень страты, задержка корня, дисперсия корня, смещение времени. В большинстве случаев служба w32time на виртуальной машине Azure будет предпочитать время размещения из-за того, что в результате оценки будут сравниваться оба источника времени.
Для присоединенных к домену компьютеров домен сам устанавливает иерархию синхронизации времени, однако корень леса по-прежнему должен получать время откуда-нибудь и описанные ниже особенности соблюдаются.
Только от узла
Так как time.windows.com является общедоступным NTP-сервером, синхронизация времени с ней требует передачи трафика через Интернет, а различные задержки пакетов могут негативно повлиять на качество синхронизации времени. Удаление time.windows.com путем переключения на синхронизацию только между узлами иногда может улучшить результаты синхронизации времени.
Переход на синхронизацию времени только с узлом имеет смысл, если возникают проблемы при использовании конфигурации синхронизации по умолчанию. Попробуйте использовать синхронизацию только с узлом и посмотрите, улучшится ли синхронизация времени в виртуальной машине.
Внешний сервер времени
Если предъявляются особые требования к синхронизации времени, можно также воспользоваться внешними серверами времени. Внешние серверы времени могут предоставлять определенное время, что может быть полезно для тестирования, обеспечения одинаковости времени в машинах, размещенных в центрах обработки данных, не принадлежащих Майкрософт, или обработки корректировочных секунд особым образом.
Внешние серверы можно использовать в сочетании со службой VMICTimeSync и поставщиком VMICTimeProvider, что позволяет получить результаты, сходные с конфигурацией по умолчанию.
Проверка конфигурации
Проверьте, настроен ли поставщик времени NtpClient для использования явно заданных NTP-серверов (NTP) или синхронизации времени в домене (NT5DS).
w32tm /dumpreg /subkey:Parameters | findstr /i "type"
Если виртуальная машина использует NTP, вы увидите такой результат:
Value Name Value Type Value Data
Type REG_SZ NTP
Чтобы узнать, какой сервер времени использует поставщик времени NtpClient, в командной строке с повышенными привилегиями введите следующее:
w32tm /dumpreg /subkey:Parameters | findstr /i "ntpserver"
Если виртуальная машина использует сервер по умолчанию, выходные данные будут выглядеть примерно так:
NtpServer REG_SZ time.windows.com,0x8
Чтобы узнать, какой поставщик времени используется в настоящее время, введите следующее:
Ниже приведены возможные результаты и их значение.
- time.windows.com — в конфигурации по умолчанию служба w32time получает время с сервера time.windows.com. Качество синхронизации времени зависит от подключения к нему через Интернет и задержек пакетов. Это обычный результат, который можно получить на физическом компьютере.
- Поставщик синхронизации времени виртуальных машин IC — время виртуальной машины синхронизируется с узлом. Это обычный результат, который можно получить на виртуальной машине, работающей в Azure.
- Сервер домена — текущая машина находится в домене, и домен определяет иерархию синхронизации времени.
- Другой сервер — служба w32time была явным образом настроена для получения времени с другого сервера. Качество синхронизации зависит от качества этого сервера.
- Локальные часы CMOS — часы не синхронизированы. Этот результат может быть получен, если служба w32time не успела запуститься после перезагрузки или если не доступен ни один настроенный источник времени.
Включение синхронизации времени только с узлом
Команда Azure непрерывно работает над улучшением синхронизации времени на серверах и гарантирует, что вся инфраструктура синхронизации времени размещается в принадлежащих Майкрософт центрах обработки данных. Если возникают проблемы с синхронизацией времени в конфигурации по умолчанию, в которой в качестве основного источника времени используется сервер time.windows.com, вы можете включить синхронизацию времени только с узлом с помощью приведенных ниже команд.
Пометьте поставщик VMIC как включенный:
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesw32timeTimeProvidersVMICTimeProvider /v Enabled /t REG_DWORD /d 1 /f
Пометьте поставщик NTPClient как выключенный:
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesw32timeTimeProvidersNtpClient /v Enabled /t REG_DWORD /d 0 /f
Перезапустите службу w32time:
net stop w32time && net start w32time
Виртуальные машины Windows Server 2012 и Windows Server 2012 R2
В Windows Server 2012 и Windows Server 2012 R2 существуют разные параметры по умолчанию для синхронизации времени. По умолчанию служба w32time настроена таким образом, чтобы снизить нагрузку на службу в течение точного времени.
Если вы хотите перевести развертывания Windows Server 2012 и Windows Server 2012 R2 на использование новых параметров по умолчанию, в соответствии с которыми предпочтение отдается точности времени, выполните указанные ниже действия.
Измените интервалы опроса и обновления w32time в соответствии с параметрами Windows Server 2016.
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesw32timeConfig /v MinPollInterval /t REG_DWORD /d 6 /f
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesw32timeConfig /v MaxPollInterval /t REG_DWORD /d 10 /f
reg add HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesw32timeConfig /v UpdateInterval /t REG_DWORD /d 100 /f
w32tm /config /update
Чтобы Служба W32Time могла использовать новые интервалы опроса, Нтпсерверс необходимо пометить как их использование. Если серверы помечены битовой маской 0x1, данный механизм переопределяется и служба w32time использует значение SpecialPollInterval. Убедитесь в том, что указанные NTP-серверы используют флаг 0x8 или не используют флаг вообще:
Проверьте, какие флаги используются для NTP-серверов.
w32tm /dumpreg /subkey:Parameters | findstr /i "ntpserver"
Дальнейшие действия
Ниже приведены ссылки на дополнительные материалы по синхронизации времени:
- Инструменты и параметры службы времени Windows
- Улучшения Windows Server 2016
- Точное время в Windows Server 2016
- Граница области поддержки для настройки службы времени Windows в высокоточных средах