Настройка windows на синхронизацию от ntp сервера
Настройка windows на синхронизацию от ntp сервера
В этой статье я расскажу о:
- синхронизации времени среди участников Active Directory
- оптимальной с моей точки зрения конфигурации сервера времени корневого PDC
- полезных командах для настройки и диагностики синхронизации времени , которые нужно учитывать для виртуализированных контроллеров домена
Топология синхронизации времени среди участников Active Directory
Среди компьютеров, участвующих в Active Directory работает следующая схема синхронизация времени.
- Контроллер корневого домена в лесу AD, которому принадлежит роль PDC (назовем его корневым PDC), является источником времени для всех остальных контроллеров этого домена.
- Контроллеры дочерних доменов синхронизируют время с вышестоящих по топологии AD контроллеров домена.
- Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.
Корневой PDC может синхронизировать свое время как со внешним источником, так и с самим собой, последнее задано конфигурацией по умолчанию и является абсурдом, о чем периодически намекают ошибки в системном журнале.
Синхронизация клиентов корневого PDC может осуществятся как с его внутренних часов, так и с внешнего источника. В первом случае сервер времени корневого PDC объявляет себя как «надежный» (reliable).
Далее я приведу оптимальную с моей точки зрения конфигурацию сервера времени корневого PDC, при которой сам корневой PDC периодически синхронизирует свое время от достоверного источника в интернете, а время обращающихся к нему клиентов синхронизирует со своими внутренними часами.
Конфигурация NTP-сервера на корневом PDC
Конфигурирование сервера времени (NTP-сервера) может осуществляться как с помощью утилиты командной строки w32tm, так и через реестр. Где возможно, я приведу оба варианта.
Включение синхронизации внутренних часов с внешним источником
- [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters]
«Type»=»NTP» - w32tm /config /syncfromflags:manual
Подробности — в библиотеке TechNet.
Объявление NTP-сервера в качестве надежного
- [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig]
«AnnounceFlags»=dword:0000000a - w32tm /config /reliable:yes
Подробности — в библиотеке TechNet.
Включение NTP-сервера
NTP-сервер по умолчанию включен на всех контроллерах домена, однако его можно включить и на рядовых серверах.
- [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpServer]
«Enabled»=dword:00000001
Задание списка внешних источников для синхронизации
- [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters]
«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. Все остальные флаги описаны в библиотеке TechNet.
Задание интервала синхронизации с внешним источником
Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0×1.
- [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient]
«SpecialPollInterval»=dword:00000384
Установка минимальной положительной и отрицательной коррекции
Максимальная положительная и отрицательная коррекция времени (разница между внутренними часами и источником синхронизации) в секундах, при превышении которой синхронизация не происходит. Рекомендую значение 0xFFFFFFFF, при котором коррекция сможет производиться всегда.
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig]
«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 отвечает «Служба времени Windows» («W32Time«).
Для настройки сервера на ОС Windows проделайте следующие шаги:
1. Устанавливаем автоматический запуск сервиса «W32Time«. Для этого в ветке реестра
«HKLMSystemCurrentControlSetServicesW32Time» задаём для параметра «Start» значение 2.
2. Затем открываем «HKLMSystemCurrentControlSetServicesW32TimeTimeProvidersNtpServer» и устанавливаем «Enabled» в единицу.
3. Правим следующие параметры:
— ветка: «HKLMSystemCurrentControlSetServicesW32TimeParameters«, параметр «Type» может принимать следующие значения:
NoSync — NTP-сервер не синхронизируется с каким-либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра «NtpServer«;
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync — NTP-сервер использует для синхронизации все доступные источники;
— параметр «NtpServer«, где указывается хост, с которым будет синхронизировать время данный сервер. При необходимости можно добавить несколько хостов, введя их DNS имена или IP адреса через пробел. В конце каждого имени через запятую можно добавлять флаг, который определяет режим для синхронизации с сервером времени.
Допускаются следующие значения:
0x1 — SpecialInterval, использование специального интервала опроса;
0x2 — режим UseAsFallbackOnly;
0x4 — SymmetricActive, симметричный активный режим;
0x8 — Client, отправка запроса в клиентском режиме.
При использовании флага «SpecialInterval«, необходимо установленное значение интервала в ключе «SpecialPollInterval«. При значении флага «UseAsFallbackOnly» службе времени сообщается, что данный сервер будет использоваться как резервный, и перед синхронизацией с ним будут выполняться обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией;
— ветка «HKLMSystemCurrentControlSetServicesW32TimeConfig«, параметр «AnnounceFlags» отвечает за то, как о себе заявляет NTP-сервер и может принимать следующие значения:
0x0 (Not a time server) — сервер не объявляет себя через NetLogon, как источник времени. Он может отвечать на NTP запросы, но соседи не смогут распознать его;
0x1 (Always time server) — сервер будет всегда объявлять о себе вне зависимости от статуса;
0x2 (Automatic time server) — сервер будет объявлять о себе только, если он получает надежное время от другого соседа (NTP или NT5DS);
0x4 (Always reliable time server) — сервер будет всегда заявлять себя, как надежный источник времени;
0x8 (Automatic reliable time server) — контроллер домена автоматически объявляется надежным если он — PDC-эмулятор корневого домена леса. Этот флаг позволяет главному PDC леса заявить о себе как об авторизованном источнике времени даже при отсутствии связи с вышестоящими NTP-серверами. Ни один контроллер или рядовой сервер (имеющие по умолчанию флаг 0x2) не может заявить о себе, как о надежном источнике времени, если он не может найти источник для себя.
Значение «AnnounceFlags» может составлять сумму его флагов, например:
10=2+8 — NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.
5=1+4 — NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не контроллер домена) как надежный источник времени, нужен флаг 5;
— ветка «HKLMSystemCurrentControlSetServicesW32TimeTimeProvidersNtpClient«, параметр «SpecialPollInterval» задается в секундах и по умолчанию его значение равно 604800, что составляет одну неделю. Это довольно много, поэтому стоит уменьшить значение, скажем, до часа (3600).
4. После сделанных настроек можно запускать службу времени: «net start w32time«. Если сервис уже работал, примените конфигурацию командой «w32tm /config /update» и перезапустите: «net stop w32time && net start w32time«.
5. После перезапуска службы NTP-сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды «w32tm /query /configuration«. Эта команда выводит полный список параметров службы. Если раздел «NtpServer» содержит строку «Enabled:1«, то все в порядке.
Настройка NTP сервера Windows server 2016 в домене групповыми политиками
Мы рассмотрим как настроить 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 сервером.
В настройках виртуальной машины, в разделе Management -> Integration Services отключаем Time Synchronization
Создание 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
Добавляем новый WMI фильтр с именем PDC selected и запросом:
Select * from Win32_ComputerSystem where DomainRole = 5
2 . Создаем и редактируем новую GPO
2.1 Для контейнера Domain Controllers создаем групповую политику, в нашем случае это PDC Time Synchronization.
В пункте 2.1 ошибка. на картинке созданный фильтр не привязан к политике
2.2 Редактируем политику PDC Time Synchronization, разворачиваем Computer Configuration -> Policies -> Administrative Templates -> System -> Windows Time Service -> Time Providers и включаем следующие политики:
2.3 В настройках политики Enable Windows NTP Server, задаем:
Как выполняется синхронизация времени в Windows 10
Синхронизация времени Windows 10 позволяет автоматически сверять время с показателями на сервере. Происходит она раз в неделю посредством сетевого протокола времени (NTP). Если оно установлено неверно, лицензии на некоторые программы могут слететь, а часть сайтов перестанет загружаться.
NTP учитывает тайминг между отправкой запроса и получением ответа, отчего гарантирует высокую точность (до 10 миллисекунд). Рассмотрим, как включить и отключить синхронизацию времени, решать связанные с ним проблемы и выбирать серверы времени.
Параметры
Настройка синхронизации данным способом, относительно недавняя, и может использоваться только на Виндовс 10, так-как «Параметры системы» в том виде в котором они представлены есть только на десятке.
2. В первой вкладке активируйте опцию «Установить время автоматически».
3. Про скрольте вниз, до надписи: «Сопутствующие параметры», и перейдите по ссылке «Формат даты, времени и региона».
4. Чтобы указать сервер для синхронизации, опуститесь немного ниже и кликните по ссылке «Дополнительные параметры даты и…».
5. Перейдите в указанный на скриншоте раздел.
6. Активируйте последнюю вкладку и нажмите «Изменить параметры…».
7. Отметьте флажком пункт «Синхронизировать с сервером…» и выберите сервер из выпадающего списка.
8. Для немедленной синхронизации кликните «Обновить сейчас».
9. Закройте окошко кнопкой «OK» и примените новые настройки.
Панель управления
1. Откройте Панель управления.
2. Посетите ее раздел под названием «Часы, язык и регион».
3. Перейдите в подраздел «Дата и время».
4. Активируйте «Время по интернету» и переходите к 7-му шагу предыдущей инструкции.
Командная строка
Рассмотрим, как синхронизировать время на компьютере с интернетом при помощи командной строки.
2. Выполните команду « w32tm /resync » для немедленной синхронизации с выбранным сервером.
Если компьютер расположен в домене, команда будет следующей: « net time /domain ».
Службы
Синхронизация через интернет может не работать, если отключен сервис «Служба времени Windows». Для проверки и запуска службы выполните следующие шаги.
1. Откройте окно управления сервисами операционной системы. Для этого зажмите клавиши Win + R и выполните команду « services.msc » в открывшемся окне.
2. Откройте свойства записи «Служба времени Windows» через контекстное меню, двойным кликом или сочетанием клавиш Alt + Enter.
3. В выпадающем списке «Тип запуска» выберите «Вручную».
Можно указать и «Автоматически», но тогда сервис будет запускаться при каждой загрузке операционной системы, а при варианте «Вручную» — только когда Windows 10 обратится к нему.
4. Кликните «Запустить» и жмите «OK».
PowerShell
Запускается сервис и через PowerShell.
2. Выполните в открывшемся окне команду Get-Service W32Time | Select-Object * для получения статуса сервиса.
3. Ищите сроку «Status»: если её значение «Stopped», выполните « Start-Service W32Time » для запуска службы.
4. В ином случае выполните « Restart-Service W32Time » для перезапуска службы.
Никаких уведомлений по окончании выполнения операций в случае их успешного завершения не будет.
5. Для изменения адреса сервера примените команду: w32tm /config /syncfromflags:manual /manualpeerlist:»time.google.com» , где в последних кавычках пропишите свою ссылку.
6. Для запуска синхронизации введите « w32tm /config /reliable:yes » и жмите «Enter».
Добавление новых серверов
В Windows 10 предусмотрена смена NTP-серверов и добавление сторонних, отсутствующих в списке. Делается это двумя способами.
Настройка времени по Интернету
1. Чтобы не повторяться, перейдите к первому разделу «Параметры» и выполните из него 6 первых шагов.
2. Убедитесь, что опция «Синхронизировать с сервером…» активирована.
3. Кликните по форме с выпадающим списком ниже.
4. Введите адрес сервера без www и https, например, time.google.com .
5. Сохраните настройки кнопкой «OK».
Для немедленной проверки жмите «Обновить сейчас».
После настройки и проверки появится оповещение об успешном завершении синхронизации часов со ссылкой на NTP-сервер.
Редактор реестра
1. Для запуска утилиты «Выполнить» воспользуйтесь комбинацией клавиш Win + R.
2. Введите в текстовую строку « regedit » и жмите «OK» либо «Enter».
Команду можете выполнить и через поиск Windows 10.
3. Разверните ветку HKLM.
4. Перейдите вниз по пути: SOFTWAREMicrosoftWindowsCurrentVersionDateTime.
5. В подразделе Servers создайте новый строковый параметр через его контекстное меню либо правый клик по свободной области в левой части окна.
6. В качестве параметра укажите число, следующее за последней записью в списке (скорее всего, будет 3), в поле «Значение» вставьте ссылку на нужный сервер и кликните «OK».
Для сверки реального времени с сервером необходимо выполнить 6 шагов из раздела «Параметры» и щелкнуть «Обновить сейчас».
Решение проблем
Ранее было сказано, что чаще всего синхронизация не работает по причине остановки отвечающего за это системного сервиса. Как его перезапустить и добавить в автозагрузку, рассмотрели в подразделе «Службы». Здесь ознакомимся с ускоренным способом выхода из ситуации.
Рассмотрим, как исправить через командную строку, в случае когда не синхронизируется время по интернету:
- Запустите командную строку от имени администратора;
- Выполните команду « net stop w32time » для остановки службы времени Windows 10;
- Отмените ее регистрацию в ОС командой « w32tm /unregister »;
- Зарегистрируйте ее обратно: введите « w32tm /register » и нажмите «Enter»;
- Запустите сервис « net start w32time »;
- Запустите процесс внеочередной синхронизации « w32tm /resync /nowait »;
- Если ничего не помогает, перезагрузите компьютер.
Отключение синхронизации
Чтобы операционная система периодически не сверяла время с тем, что установлено на выбранном сервере, выполните такие шаги.
1. Откройте «Настройки даты и времени», кликнув правой кнопкой мыши по часам внизу дисплея.
2. Перенесите первый переключатель в положение «Откл.» и закройте окно.
В данное окно можете попасть через Параметры Windows 10 (см. 1-й раздел статьи) или Панель управления (см. 2-й раздел).
Второй способ: остановите и отключите автоматический запуск сервиса «Служба времени Windows», о чем рассказано в 3-м разделе.