Тарифы Услуги Сим-карты

Задание интервала синхронизации с внешним источником. Способы указания NTP Сервера

Простое решение проблемы ухода времени на контроллере домена , установленного на виртуальную машину Hyper-V под управлением Windows Server 2008/2012.

Во время работы контроллера домена под управлением Windows Server 2008 R2/2012, установленного на виртуальную машину Hyper-V , было замечен постоянный уход времени – за месяц время могло уйти чуть ли не на полчаса. Нужно ли говорить, насколько важно точное время на контроллере домена, ведь по нему синхронизируется весь парк компьютеров домена.

1. Отключить синхронизацию времени с хост-машиной

Для начала нужно отключить синхронизацию времени гостевой машины по времени хост-машины, иначе мы получаем казус. Если хост-машина является членом домена, хост синхронизируется по контроллеру на гостевой машине, а гостевая машина синхронизируется по хосту – получаем замкнутый цикл, который скорее всего и приводит к постоянному смещению времени внутри себя. Смещение получается буквально на какие-то доли секунды, но постепенно складываясь за каждый цикл синхронизации набегает весьма ощутимый сдвиг часов.

В параметрах виртуальной машины Настройка → Службы интеграции → Синхронизации времени – снять птичку

2. Настроить синхронизацию по NTP-серверу

Инструментарий

Для настройки воспользуемся утилитой командой строки w32tm . Основные параметры утилиты, которые применяются для настройки и управления временем: w32tm /query позволяет опросить текущие настройки клиента и сервера NTP w32tm /config используется для настройки службы времени w32tm /resync используется для инициализации синхронизации времени w32tm /dumpreg используется для отображения текущих параметров реестра связанных с службой времени w32tm /debug используется для включения журнала отладки службы времени

Настройка

Выполняется настройка синхронизации времени на контроллере домена под управлением Windows Server 2008 R2 с ролью FSMO «Эмулятор PDC»: w32tm /query /configuration смотрим текущие параметры службы времени w32tm /config /syncfromflags:manual выбираем источник (заданный нами список) для синхронизации времени w32tm /config /manualpeerlist:"server1.ntp.org server2.ntp.org" устанавливаем заданный вручную список узлов для синхронизации. Узлы представляют собой DNS-имена или IP-адреса, разделённые пробелами. При указании нескольких узлов, все значения узлов заключаются в кавычки. Можно, конечно ограничится и одним привычным time.windows.com w32tm /config /reliable:yes задаем параметр, что данная машина является надёжным источником времени и может обслуживать клиентов w32tm /config /update информируем службу времени, что были внесены изменения (можно перезапустить службу) w32tm /query /configuration проверяем внесенные изменения в параметры службы w32tm /resync выполняем синхронизацию (можно поиграться, менять время и проверять, будет ли выполнена синхронизация)

Для большей надежности можно еще и перезапустить Службу времени командами net stop w32time и net start w32time .

Для удобства, перечисленные команды хорошо собрать в один cmd -файлик и решать вопрос в один клик:

W32tm /config /syncfromflags:manual w32tm /config /manualpeerlist:time.windows.com w32tm /config /reliable:yes w32tm /config /update w32tm /query /configuration pause w32tm /resync

В данной статье мы рассмотрим как настроить NTP в Windows Server 2012. В статье не рассматриваются подробная настройка синхронизации времени в доменном окружении, а настройка единичного контроллера домена с ролью эмулятора PDC, который единственный сервере в окружении выполняет синхронизацию с внешним источником времени.

Настройка очень проста. Все что нужно сделать это выполнить следующие команды в PowerShell:

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

Если контроллер виртуализирован средствами Hyper-V нужно не забыть отключить синхронизацию времени средствами Hyper-V. Откройте настройки виртуальной машины -> Management -> Integration Services и снимите чекбокс с Time Synchronization.

На этом все! Хотите узнать больше? Что-то не работает? Тогда разберем более подробно…

W32tm это основная используемая нами команда. Есть ещё варианты, использующие "net time", но на самом деле использовать эту конструкцию нет необходимости. В некоторых статья также упоминается прямое редактирование реестра, однако в Microsoft советуют не делать этого в любом случае, а только если нет совершенно никакой другой альтернативы. Но если вам очень хочется редактировать реестр, нужная вам ветка находиться тут: HKLM\System\CurrentControlSet\Services\W32Time .

Какой NTP сервер использовать? Или лучше несколько?

pool.ntp.org это round-robin рандомных NTP серверов. Для конечных пользователей этого адреса более чем достаточно. Однако в случае необходимости вы можете указать вручную несколько серверов:

w32tm /config /manualpeerlist:"ntp1.sp.se ntp2.sp.se" /syncfromflags:MANUAL

Просто добавьте нужные вам сервера с пробелом между ними.

Не забудьте про файервол

Если у вас есть файервол между хостом и интернетом, он может быть настроен на запрет udp/123 по которому работает протокол NTP. Вот как это выглядит на моей Cisco ASA FW:

Поэтому я создал отдельное правило, разрешающее данный трафик.

Подробная информация и логирование

Данная команда показывает полезную информацию о настройке синхронизации, списке серверов и времени последней синхронизации.

Обычно когда сервер не может получить время с NTP сервера в лог записывается следующая информация:

Log Name: System
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.

Когда все нормально сообщение выглядит следующим образом:

Log Name: System
Source: Microsoft-Windows-Time-Service
Event ID: 35
Level: Information
Description: The time service is now synchronizing the system time with the time source pool.ntp.org (ntp.m|0×0|0.0.0.0:123->85.10.240.253:123).

Вы все ещё испытывает какие то проблемы? Вы можете легко включить вывод отладочной информации в логфайл, который в моем случае лимитирован 10-тью мегабайтами и включает все отладочные записи.

w32tm /debug /enable /file:C:\Temp\w32tmdebug.log /size:10485760 /entries:0-300

После завершения отладки выключаем её:

В случае проблем в логе вы увидите большое количество информации. У меня, когда все работает об этом сигнализирует следующая запись:

- Reachability: peer pool.ntp.org (ntp.m|0×0|0.0.0.0:123->129.70.132.35:123) is reachable.
- Logging information: NtpClient is currently receiving valid time data from pool.ntp.org (ntp.m|0×0|0.0.0.0:123->129.70.132.35:123).

А когда мой файервол блокировал пакеты я получал следующие сообщения.

- 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.

Принудительная синхронизация

Если вам необходимо принудительно синхронизировать клиента, запустите команду:

w32tm /resync
Sending resync command to local computer
The command completed successfully.

Если вы получили следующую ошибку, значит компьютер не может достичь NTP сервера.

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

Начнем с начала

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

Stop-Service w32time
w32tm /unregister
w32tm /register


Операционные системы семейства Windows содержат службу времени W32Time . Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (NTP - Network Time Protocol).

По умолчанию служба времени в Windows сконфигурирована следующим образом:

При установке операционной системы Windows запускает клиента NTP, который синхронизируется с внешним источником времени;

При добавлении компьютера в домен тип синхронизации меняется. Все клиентские компьютеры и рядовые сервера в домене используют для синхронизации времени контроллер домена, проверяющий их подлинность;

При повышении рядового сервера до контроллера домена на нем запускается NTP-сервер, который в качестве источника времени использует контроллер с ролью PDC-эмулятор;

PDC-эмулятор, расположенный в корневом домене леса, является основным сервером времени для всей организации. При этом сам он также синхронизируется с внешним источником времени.

Такая схема работает в большинстве случаев и не требует вмешательства. Однако структура сервиса времени в Windows может и не следовать доменной иерархии и надежным источником времени можно назначить любой компьютер.

В качестве примера приведем настройку NTP-сервера в Windows Server 2008 R2, по аналогии можно настроить NTP сервер и в Windows 7.

Запуск NTP сервера

Служба времени в Windows Server не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Рассмотрим второй способ:

Необходимо запустить сервер NTP. Открываем ветку реестра:

HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer .

Для включения сервера NTP параметру Enabled надо установить значение 1. Затем перезапускаем службу времени командой net stop w32time && net start w32time.

После перезапуска службы NTP, сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды w32tm /query /configuration . Эта команда выводит полный список параметров службы. Если раздел NtpServer содержит строку Enabled:1 , то все в порядке, сервер времени работает.

Для того, чтобы NTP-сервер мог обслуживать клиентов, в брандмауэре необходимо открыть UDP порт 123 для входящего и исходящего трафика.

Основные настройки NTP сервера

Открываем ветку реестра:

HKLM\System\CurrentControlSet\services\W32Time\Parameters .

NoSync - NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются системные часы, встроенные в микросхему CMOS самого сервера (в свою очередь эти часы могут синхронизироваться от источника NMEA по RS-232 например);

NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer ;

NT5DS - NTP-сервер производит синхронизацию согласно доменной иерархии;

AllSync - NTP-сервер использует для синхронизации все доступные источники.

Значение по умолчанию для компьютера, входящего в домен - NT5DS, для отдельно стоящего компьютера - NTP.

В параметре NtpServer указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0×1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. В конце каждого имени можно добавлять флаг (напр. ,0×1) который определяет режим для синхронизации с сервером времени.

Допускаются следующие значения режима:

0×1 - SpecialInterval , использование временного интервала опроса;

0×2 – режим UseAsFallbackOnly;

0×4 – SymmetricActive, симметричный активный режим;

0×8 – Client, отправка запроса в клиентском режиме.

Еще один важный параметр AnnounceFlags находится в разделе реестра:

HKLM\System\CurrentControlSet\services\W32Time\Config .

Он отвечает за то, как о себе заявляет NTP-сервер. Чтобы заявить рядовой сервер (не домен-контроллер) как надежный источник времени, нужен флаг 5 .

Если настраиваемый сервер в свою очередь является клиентом NTP (получает время от GPS-приемника по NTP, например), можно настроить интервал между обновлениями. Этот параметр может быть актуальным и для клиентских РС. За время обновления отвечает ключ SpecialPollInterval, находящийся в ветке реестра:

HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpClient .

Он задается в секундах и по умолчанию его значение равно 604800, что составляет 1 неделю. Это очень много, поэтому стоит уменьшить значение SpecialPollInterval до разумного значения - 1 часа (3600).

После настройки необходимо обновить конфигурацию сервиса. Сделать это можно командой w32tm /config /update.


И еще несколько команд для настройки, мониторинга и диагностики службы времени:

w32tm /monitor – при помощи этой опции можно узнать, насколько системное время данного компьютера отличается от времени на контроллере домена или других компьютерах. Например: w32tm /monitor /computers:time.nist.gov

w32tm /resync – при помощи этой команды можно заставить компьютер синхронизироваться с используемым им сервером времени.

w32tm /stripchart – показывает разницу во времени между текущим и удаленным компьютером. Команда w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly произведет 5 сравнений с указанным источником и выдаст результат в текстовом виде.


w32tm /config – это основная команда, используемая для настройки службы NTP. С ее помощью можно задать список используемых серверов времени, тип синхронизации и многое другое. Например, переопределить значения по умолчанию и настроить синхронизацию времени с внешним источником, можно командой w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update


w32tm /query - показывает текущие настройки службы. Например команда w32tm /query /source покажет текущий источник времени, а w32tm /query /configuration выведет все параметры службы.

net stop w32time - останавливает службу времени, если запущена.

w32tm /unregister - удаляет службу времени с компьютера.

w32tm /register – регистрирует службу времени на компьютере. При этом создается заново вся ветка параметров в реестре.

net start w32time - запускает службу.

Особенности, замеченные в Windows 7 - служба времени не запускается автоматически при старте Windows. Исправлено в SP1 для Windows 7.

…в среде Active Directory разница в часах более 5 минут приводит к проблемам аутентификации Kerberos…

В данной заметке речь пойдет о настройке синхронизации времени в доменной среде Windows 2008 – 2012 R2.
Основой нормального функционирования доменной среды AD является корректная работа службы времени Windows (W32Time).

Как работает синхронизация времени в доменной среде?

1. пользователи получают точное время от ближайшего контроллера домена, на котором они зарегистрировались;
2. все доменные контроллеры запрашивают об этом DC с ролью PDC-эмулятор (одна из ролей FSMO);
3. PDC-эмулятор, в свою очередь, должен синхронизироваться с более авторитетным источником времени;
На практике PDC-эмулятор обычно синхронизируется с выделенным NTP-сервером организации, либо с NTP-сервером провайдера, или же с внешним источником точного времени, такие как: 0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org

Пример настройки контроллера домена с ролью PDC-эмулятора.

Для настройки нам потребуется консоль PowerShell запущенная от имени администратора.
1. Определим имя PDC-эмулятора – самый простой способ выполнить команду:

Когда мы подключили к DC с ролью PDC можно начинать настраивать.
2. Конфигурируем внешние источники синхронизации – указываем с какими источниками PDC будет синхронизироваться.

w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org 1.ru.pool.ntp.org 2.ru.pool.ntp.org”

где, параметры:
/syncfromflags:manual — синхронизация с узлами из заданного вручную списка.
manualpeerlist:<узлы> — список (адреса DNS или IP) источников времени

Важно! Имя каждого источника времени (если их несколько) должно быть разделено пробелом. А на брандмауэре должно быть разрешено прохождение трафика UDP на порт 123 в обе стороны.

3. Объявляем PDC-Emulator надежным источником времени для клиентов:
w32tm /config /reliable:yes
4. После внесения изменений перезапускаем службу времени:

Restrat-Service W32Time

Или обновляем конфигурацию командой: w32tm /config /update

Если вы перенесли роль PDC-эмулятор на другой контроллер домена, то старый DC все еще продолжает считает считать себя авторитетным сервером времени для всего домена, что может стать причиной ошибок в системных логах. Исправить эту ситуацию можно командой:
w32tm /config /syncfromflags:domhier /reliable:no /update

Несколько, на мой взгляд, полезных команд:

w32tm /query /configuration — посмотреть текущие настройки службы времени;

Где:

SpecialPollInterval: 3600 - интервал синхронизации в секундах, 3600 – сутки. Синхронизиция будет проводиться раз в сутки.
NtpServer - указывает сервреры, с которым может синхроинизировать время компьютер.
Type: NTP – вид синхронизации времени.
Параметр Type может иметь следующие параметры:
NoSync — служба времени вообще не синхронизируется ни с чем.
NTP — служба времени синхронизируется с серверами, указанными в параметре NtpServer.
NT5DS — служба времени синхронизируется, используя доменную иерархию (характерно для членов домена Active Directory).
AllSync — служба времени использует все возможные механизмы для синхронизации.

w32tm /monitor — отобразит текущую иерархию синхронизации времени по домену;
w32tm /stripchart /computer:0.ru.pool.ntp.org /samples:5 /dataonly — произвести 5 попыток сравнения времени с авторитетным источником времени 0.ru.pool.ntp.org (полезно при проверке доступности источника времени );
w32tm /resync – заставить компьютер синхронизироваться с используемым им сервером времени;
w32tm /unregister - удаляет службу времени с компьютера;
w32tm /register – регистрирует службу времени на компьютере;
Если кому интересно настраивать NTP-сервер через реестр, то милости просим в эту ветку: HKLM\System\CurrentControlSet\services\W32Time\

Концепция ярусов STRATA или STRATUM


Где:
Stratum 0 – эталонные или авторитетные источники точного времени, такие как: путники GPS, цезиевые атомные часы, радио волны WWVB. Авторитетны они потому, что имеют способ поддержания высокоточного хронометража – когда секунда не потеряется за 300 000 лет.
Stratum 1 – компьютеры, которые напрямую берут время у Stratum 0, т.е. Stratum 1 используют аппаратное (проводом) подключение к Stratum 0!
Stratum 2 – уровень компьютеров, берущие время по сети у Stratum 1.
Как уже, наверное, понятно из схемы, Stratum 3 будет брать время у Stratum 2 , а Stratum 4 у Stratum 3 и т.д. Самым нижним ярусов является Stratum 16 и время в нем считается не синхронизированным.
Опять же, на практике, самыми распространенными внешними источниками времени являются Stratum 2 , Stratum 3 , ибо синхронизироваться с Stratum 1 простым пользователям не разрешается, да и это не к чему.