Продолжение статьи о настройке и управлении NTP сервера в Windows Server
Все ОС Windows начиная с Windows 2000 имеют службу времени W32Time. Данная служба предназначена для синхронизации системного времени в границах организации. Служба W32Time ответственна за работу и клиентской и серверной части службы времени, при этом один и тот же компьютер может быть одновременно и клиентом и сервером NTP (Network Time Protocol).
По умолчанию служба времени в Windows сконфигурирована следующим образом:
• При установке операционной системы Windows запускает клиента NTP и синхронизируется с внешним источником времени;
• При добавлении компьютера в домен тип синхронизации меняется. Все клиентские компьютеры и рядовые сервера в домене используют для синхронизации времени контроллер домена, проверяющий их подлинность;
• При повышении рядового сервера до контроллера домена на нем запускается NTP-сервер, который в качестве источника времени использует контроллер с ролью PDC-эмулятор;
• PDC-эмулятор, расположенный в корневом домене леса, является основным сервером времени для всей организации. При этом сам он также синхронизируется с внешним источником времени.
Такая схема работает в большинстве случаев и не требует вмешательства. Однако структура сервиса времени в Windows может и не следовать доменной иерархии, и надежным источником времени можно назначить любой компьютер. В качестве примера я опишу настройку NTP-сервера в Windows Server 2008 R2, хотя со времен Windows 2000 процедура не особо изменилась.
Запуск NTP сервера
Сразу отмечу, что служба времени в Windows Server (начиная с 2000 и заканчивая 2012) не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Лично мне ближе второй способ, поэтому идем в реестр.
Итак, первым делом нам надо запустить сервер 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 сервера
NTP сервер включили, теперь надо его настроить. Открываем ветку реестраHKLM\System\CurrentControlSet\services\W32Time\Parameters. Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:
NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync — NTP-сервер использует для синхронизации все доступные источники.
Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера — NTP.
И параметр NtpServer, в котором указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0x1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. Список доступных серверов времени можно посмотреть например здесь.
В конце каждого имени можно добавлять флаг (напр. ,0x1) который определяет режим для синхронизации с сервером времени. Допускаются следующие значения:
0x1 – SpecialInterval, использование специального интервала опроса ;
0x2 – режим UseAsFallbackOnly;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.
При использовании флага SpecialInterval, необходимо установленное значение интервала в ключе SpecialPollInterval. При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Microsoft рекомендует ставить везде параметр = 0x1.
Важный параметр AnnounceFlags находится в разделе реестра HKLM\System\CurrentControlSet\services\W32Time\Config. Он отвечает за то, как о себе заявляет 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.
Ну и настроим интервал между обновлениями. За него отвечает уже упоминавшийся выше ключ SpecialPollInterval,находящийся в ветке реестра HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpClient. Он задается в секундах и по умолчанию его значение равно 604800, что составляет 1 неделю. Это очень много, поэтому стоит уменьшить значение SpecialPollInterval до разумного значения, скажем до 1 часа (3600).
Команды управления службой времени W32Time:
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 выведет все параметры службы.
w32tm /unregister — удаляет службу времени с компьютера
w32tm /register – регистрирует службу времени на ПК, создается заново вся ветка параметров в реестре.
источник
howto:ntp_server_activation
по материалам сайта http://windowsnotes.ru
Операционные системы семейства 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
.
Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:
-
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.
· Последнее изменение: 2022/02/24 17:39 —
Dmitriy Sazhin
Материал из support.qbpro.ru
Для правильного функционирования доменной среды Windows Server 2008 R2/2012 R2, является корректная работа службы времени Windows (W32Time).
Схема работы синхронизации времени в доменной среде Active Directory:
Контроллер корневого домена в лесу AD, которому принадлежит FSMО-роль PDC-эмулятора, синхронизируется с внешними источниками точного времени. Он же является источником времени для всех остальных контроллеров этого домена.
Контроллеры дочерних доменов в AD, синхронизируют время с вышестоящих контроллеров домена AD.
Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.
Служба времени в Windows (W32Time) не имеет графического интерфейса и настраивается из командной строки (утилита w32tm), с помощью реестра
(HKLM\System\CurrentControlSet\Services\W32Time\Parameters) и посредством Групповой политики (Group Policy Managment)
Для определения какому контроллеру домена принадлежит FSMО-роль PDC-эмулятора, в командной строке, выполним команду: netdom query FSMO
Включение NTP-сервера
NTP-сервер по-умолчанию включен на всех контроллерах домена, но его можно включить и на рядовых серверах:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer] — «Enabled»=1
Конфигурация NTP-сервера
Задаем тип синхронизации внутренних часов, на использование внешнего источника. (Командная строка/Реестр):
w32tm /config /syncfromflags:manual [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] — «Type»=NTP
Допускаются следующие значения:
NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются системные часы, встроенные в микросхему CMOS самого сервера. NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer. NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии. AllSync — NTP-сервер использует для синхронизации все доступные источники.
Задание списка внешних источников для синхронизации, с которыми будет синхронизировать время данный сервер. По-умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0×1). (Командная строка/Реестр):
w32tm /config /manualpeerlist:»0.ru.pool.ntp.org,0x1 1.ru.pool.ntp.org,0x1 2.ru.pool.ntp.org,0x1″ [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] — «NtpServer»=0.ru.pool.ntp.org,0x1 1.ru.pool.ntp.org,0x1 2.ru.pool.ntp.org,0x1
Допускаются следующие значения:
0×1 – SpecialInterval, использование временного интервала опроса. 0×2 – режим UseAsFallbackOnly. 0×4 – SymmetricActive, симметричный активный режим. 0×8 – Client, отправка запроса в клиентском режиме.
Задание интервала синхронизации с внешним источником (для источников помеченных флагом 0×1). По-умолчанию время опроса задано — 3600 сек. (1 час). (Командная строка/Реестр):
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient] — «SpecialPollInterval»=3600
Объявление NTP-сервера в качестве надежного. (Командная строка/Реестр):
w32tm /config /reliable:yes [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config] — «AnnounceFlags»=0000000a
После настройки необходимо обновить конфигурацию сервиса. Выполняем команду:
w32tm /config /update
Принудительная синхронизация времени от источника:
w32tm /resync /rediscover
Отобразить текущую конфигурацию службы времени:
w32tm /query /configuration
Получения информации о текущем сервере времени:
w32tm /query /source
Отображение текущих источников синхронизации и их статуса:
w32tm /query /peers
Отображение состояния синхронизации контроллеров домена с компьютерами в домене:
w32tm /monitor /computers:192.168.1.2
Отобразить разницу во времени между текущим и удаленным компьютером:
w32tm /stripchart /computer:192.168.1.2 /samples:5 /dataonly
Удалить службу времени с компьютера:
w32tm /unregister
Регистрация службы времени на компьютере. Создается заново вся ветка параметров в реестре:
w32tm /register
Остановка службы времени:
net stop w32time
Запуск службы времени:
net start w32time
Конфигурация NTP-сервера/клиента групповой политикой
Для централизованной настройки службы времени Windows, на серверах и рабочих станциях в доменной среде Active Directory, воспользуемся групповой политикой. На примере, выполним настройку для рабочих станций.
Переходим в ветку: Конфигурация компьютера (Computer Configuration) — Политики (Policies) — Административные шаблоны (Administrative Templates) — Система (System) — Служба времени Windows (Windows Time Service) — Поставщики времени (Time Providers).
Открываем параметр: Настроить NTP-клиент Windows (Configure Windows NTP Client)
NtpServer — 192.168.1.2 (Адрес контроллера домена с ролью PDC) Type — NT5DS CrossSiteSyncFlags — 2 ResolvePeerBackoffMinutes —15 Resolve Peer BackoffMaxTimes — 7 SpecilalPoolInterval — 3600 EventLogFlags — 0
- источник
NTP — протокол для синхронизации системного времени с эталонным, предоставляемым специальными серверами. В статье рассмотрим, как настроить протокол NTP в различных ОС и на некоторых устройствах, а начнем с большой инструкции по настройке NTP Server Linux.
Пошаговая инструкция по настройке NTP-сервера Linux
Настраивать протокол синхронизации будем на примере Ubuntu, однако это руководство также подойдет для Debian и любых других Linux-подобных систем. Инструкцию мы разбили на три части: первая будет посвящена установке NTP-сервера, вторая — синхронизации NTP-клиентов, а третья — продвинутым настройкам протокола синхронизации.
Часть 1. Устанавливаем NTP-сервер
Семь простых шагов помогут без проблем установить NTP-сервер и сделать его доступным для дальнейшей настройки. Работать будем в командной строке и редакторе nano, а также используем Terminal, который открывается по нажатию Ctrl+Alt+T
.
Шаг 1. Обновляем индекс репозитория
Это нужно, чтобы иметь возможность скачивать свежие версии ПО. Обновить индекс поможет вот эта инструкция:
sudo apt-get update
Шаг 2. Устанавливаем сервер
Установка запускается следующей инструкцией:
sudo apt-get install ntp
Но перед тем, как вводить ее, следует авторизоваться в sudo
. Для подтверждения установки выберите Y, если система попросит сделать такой выбор (Y/N). Теперь ждем, пока ПО скачается и установится.
Шаг 3. Проверяем установку
Делать это не обязательно, но желательно для того, чтобы убедиться, что процесс завершился корректно. Для этого введите в терминале такую инструкцию:
sntp --version
Вывод должен содержать номер версии и время установки.
Шаг 4. Переключаемся на ближайший пул
По умолчанию сервер должен получать корректное время, но для большей надежности лучше переключиться на ближайший к нам пул серверов. Это делается с помощью редактирования ntp.conf
, файл находится по пути /etc/ntp.conf
. Открываем его при помощи nano
(у вас должны быть права sudo), введя инструкцию:
sudo nano /etc/ntp.conf
В открывшемся файле вы увидите 4 строчки, которые мы для удобства выделили оранжевым прямоугольником:
Это стандартные пулы, которые мы заменим на российские, а возьмем их, например, с этой страницы. После замены строк выходим из ntp.conf
по нажатию Ctrl+O и Ctrl+X.
Шаг 5. Перезапускаем сервер
Это делается просто, при помощи следующей инструкции:
sudo service ntp restart
Шаг 6. Проверяем запуск
В этом нам поможет инструкция:
sudo service ntp status
В выводе в одной из первых строк (Active) должно быть указано Active (running)
, и далее в этой же строке отображено время запуска.
Шаг 7. Настраиваем брандмауэр
Чтобы ваши клиенты могли заходить на сервер, откроем им доступ через UFW, прокинув UDP-порт 123 следующей инструкцией:
sudo ufw allow from any to any port 123 proto udp
Установка завершена, сервер запущен, теперь приступаем к настройке.
Часть 2. Настраиваем синхронизацию NTP-клиентов
Следующие шаги мы выполним для того, чтобы обеспечить возможность синхронизации клиентов с нашим NTP-сервером, который будет служить для них эталонным источником времени.
Шаг 1. Проверяем соединение
Для проверки сетевой конфигурации NTP вводим следующую инструкцию в терминале:
sudo apt-get install ntpdate
Шаг 2. Указываем IP и хост
Это делается путем редактирования файла hosts
, который находится по пути /etc/hosts
. Вводим:
sudo nano /etc/hosts
В третью строчку сверху добавляем актуальные данные (адрес добавлен просто для примера, введите реальный IP своего NTP-сервера):
192.168.154.142 ntp-server
Теперь жмем Ctrl+X и сохраняем изменения по нажатию Y. Добавим, что эту процедуру можно выполнить и на DNS-сервере, если он у вас есть.
Шаг 3. Проверяем синхронизацию клиента с сервером
Чтобы выяснить наличие синхронизации между системами сервера и клиента, введите:
sudo ntpdate ntp-server
Значение в выводе будет означать смещение времени. Расхождение в несколько миллисекунд нормально, поэтому на такие цифры можно не обращать внимания.
Шаг 4. Отключаем службу timesyncd
Эта служба синхронизирует время локальной системы, однако нам она не нужна, поскольку в нашей схеме клиенты будут синхронизироваться через NTP-сервер. Поэтому вводим:
sudo timedatectl set-ntp off
Шаг 5. Устанавливаем NTP на системе клиента
Это делается при помощи инструкции:
sudo apt-get install ntp
Шаг 6. Делаем наш NTP-сервер эталонным
Мы хотим, чтобы клиенты сверялись именно с ним, поэтому открываем уже знакомый файл конфигураций ntp.conf
и добавляем туда инструкцию следующего вида:
server NTP-server-host prefer iburst
Инструкция prefer
добавляется для указания на предпочтение (в данном случае сервера). В свою очередь, iburst
позволяет отправлять на сервер несколько запросов, что повышает точность синхронизации. Теперь снова жмем Ctrl+X и сохраняем изменения по нажатию Y.
Шаг 7. Перезапускаем сервер
Эта инструкция тоже простая и в комментариях не нуждается:
sudo service ntp restart
Шаг 8. Смотрим на очередь синхронизации
Мы почти закончили, осталось ввести инструкцию:
ntpq -ps
Она понадобится нам для проверки NTP-сервера, который указан как источник в очереди синхронизации времени.
клауд
Часть 3. Продвинутые возможности синхронизации
Итак, мы установили и настроили NTP-сервер, а затем синхронизировали с ним клиентские машины. Теперь снова открываем ntp.conf
(напомним, что он находится по пути /etc/ntp.conf
), который содержит немало других интересных настроек, позволяющих обеспечить надежную синхронизацию с внешним миром.
Предпочитаемый сервер
Вызывающий наибольшее доверие сервер или серверный пул сопровождаем инструкцией prefer
, которая уже встречалась нам выше. Вот так:
server 1.ru.pool.ntp.org prefer
О том, что мы обращаемся именно к серверу, говорит директива server
в начале, а если нужно указать серверный пул, то будет использоваться директива pool
.
Также не стоит забывать про строчку server 127.127.1.0
в конце списка пулов: она нужна для того, чтобы подхватывалось системное время, если вдруг не будет соединения.
Настройки безопасности
Обратите внимание на наличие следующих строчек в ntp.conf
:
restrict default kod notrap nomodify nopeer noquery
- Команда
default
служит для установки значений по умолчанию. В данном случае она действует для всехrestrict
. - Команда
kod
используется для отправкиkiss of death
серверам, отправляющим слишком много запросов.
Далее идут инструкции:
- о запрете на прием управляющих команд (
notrap
); - и запрете тех, которые изменяют состояние или способны это делать (
nomodify
); - о запрете синхронизации с хостом (
nopeer
); - и о запрете запросов (
noquery
); - если используется протокол IPv4, то перед инструкцией
default
следует поставить -4, а если IPv6, то, соответственно, -6.
А вот и наглядный пример использования некоторых команд, описанных выше. Следующая строчка разрешает синхронизацию узлов в соответствующей сети, дополнительно запрещая узлам принимать управляющие и изменяющие состояние команды:
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
А эти рестрикты нужны для того, чтобы сервер мог обмениваться данными сам с собой:
restrict 127.0.0.1
restrict ::1
И не забывайте о перезапуске сервера после внесения изменений.
Проверяем корректность работы NTP
Для этого используйте инструкцию ntpq -p
. При правильных настройках ответом будет таблица со столбцами, которая выглядит примерно так:
В первом столбце указан адрес сервера для синхронизации, далее показан вышестоящий сервер, уровень (столбец st
) и nup
(столбец t
). В следующих 3 столбцах отражена информация о последнем времени сверки, периоде синхронизации, работоспособности (число 377 означает 8 успешных синхронизаций с этим сервером). Последние 2 столбца показывают разницу между временем синхронизируемого и эталонного сервера, а также смещение времени.
Кроме того, обратите внимание на знаки в первом столбце, которые стоят перед IP. Самый хороший знак — это +
, который говорит о том, что данный сервер заслуживает доверия в плане синхронизации. Соответственно, –
указывает на обратное, а *
— это текущий сервер, выбранный для синхронизации. Также иногда встречается значок x
, который означает, что сервер недоступен.
Проверяем, правильно ли сервер отдает время
Для этого потребуется ввести на другой системе инструкцию ntpdate
с указанием IP проверяемого сервера. Ответ должен быть примерно таким:
adjust time server (здесь будет IP-адрес) offset 0.012319 sec
Число здесь означает время рассинхронизации. В данном случае всё в порядке, рассинхронизация составляет всего около 0,01 сек., а если точнее — 12 миллисекунд, что вполне допустимо.
Что ж, с Linux разобрались, теперь рассмотрим, как настроить протокол NTP в ОС Windows.
Настройка NTP сервера Windows Server
Для этого нам понадобится выполнить несколько операций в реестре и ввести инструкции в командной строке. Но перед тем как приступить к настройке, службу нужно запустить. Это делается путем изменения следующей записи в реестре:
HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer
В данной ветке находим Enabled
справа и выставляем 1, чтобы запись в столбце Data
имела следующий вид:
0x00000001 (1)
Теперь открываем cmd
и вводим инструкцию, которая нужна для перезапуска протокола:
net stop w32time && net start w32time
Учтите, что вводить инструкцию нужно из-под C:\Users\Administrator
. Проверить, что NTP включился, можно следующей командой:
w32tm /query /configuration
Выведется длинная запись, в которой обратите внимание на блок NtpServer <Local>
: в строке Enabled
значение должно быть 1. Теперь откроем в фаерволе UDP-порт 123 для корректного обслуживания клиентов, после чего приступаем к настройке.
Возвращаемся в реестр и ищем запись:
HKLM\System\CurrentControlSet\services\W32Time\Parameters
В этой ветке довольно много параметров, а главным является Type
, который принимает одно из 4 значений:
NoSync
— без синхронизации;NTP
— синхронизация с внешними серверами, определенными вNtpServer
в реестре (устанавливается по умолчанию для отдельной машины);NT5DS
— синхронизация в соответствии с иерархией доменов (устанавливается по умолчанию для машины в составе домена);AllSync
— синхронизация со всеми доступными серверами.
Теперь снова обратимся к реестру и настроим значения в ветке NtpServer
. Скорее всего там указан только сервер Майкрософта. Вы можете добавить другие, обращая внимание на флаг в конце:
- 0x1, SpecialInterval, стандартный режим, рекомендуемый Microsoft;
- 0x2, UseAsFallbackOnly, для использования сервера в качестве резервного;
- 0x4, SymmetricActive, этот режим основной для NTP-серверов;
- 0x8, Client, при возникновении проблем с синхронизацией.
И последнее, что нужно сделать — задать интервал синхронизации в ветке:
W32Time\TimeProviders\NtpClient
За это отвечает SpecialPollInterval
, где поставьте требуемое значение (указывается в секундах). По умолчанию там выставлено значение, равное неделе. Если хотите синхронизироваться чаще, то для 1 дня поставьте 86400, для времени суток (четверть дня или 6 часов) — 21600, а для часа 3600. Последнее значение является оптимальным с точки зрения соотношения нагрузки на систему и приемлемой точности там, где требуется синхронизировать время достаточно часто.
Настройка NTP сервера Cisco
На устройствах Cisco всё делается просто и быстро:
- Запускаем конфигурационный режим командой
conf t
. - Устанавливаем часовой пояс инструкцией
clock timezone
. Если время московское, ставим далееMSK 3
. - Далее вводим команду
ntp source
и указываем источник. - Если требуется сделать сервер главным для других машин в сети, то значение в инструкции
ntp master
должно быть 2 или больше. - Инструкция
ntp update-calendar
нужна для обновления времени. - Теперь укажите названия или IP серверов.
- Введите часовой пояс командой
clock timezone
и источник при помощи инструкцииntp source
. - Для проверки и при возникновении проблем поможет инструкция
show
, которая пригодится для вызова времени (show clock
), статуса NTP (show ntp status
) и ассоциаций (show ntp associations
).
Настройка NTP-сервера на роутерах MikroTik
Выполним настройку при помощи SNTP:
- В Winbox перейдите в
System
–SNTP Client
. - Найдите пункт
SNTP Client
и включите его, поставив галочку в полеEnabled
. - В строки
Server DNS Names
ниже введите IP-адреса эталонных серверов. - Проверим, всё ли заработало. Перейдите в
System
–Clock
. Там же установите часовой пояс, выбрав его из выпадающего списка, либо поставьте галочку в полеTime Zone Autodetect
, и тогда часовой пояс установится автоматически. - Интервал синхронизации можно посмотреть в поле
Poll Interval
в менюSNTP Client
. А ниже будет показано время последней синхронизации (полеLast Update
).
Вот мы и научились настраивать NTP в распространенных ОС и на отдельных устройствах.
An accurate system clock plays an important role in the aspects of a computer network. Ensuring that the computer’s date and time are correct will establish efficiency within your network and aid in the following instances:
- It’ll prevent errors from occurring between other workstations on the network and errors when connecting to secure websites out on the Internet.
- An accurate date and time is also important when it comes to error logging. If a user reports that an error occurred at a specific time, you’ll want these errors logged at the correct time across your entire network. So that you can examine any related log entries at the server that’ll reflect around this same time that’s being reported.
- Some software and security solutions also require an accurate date and time configuration that cannot be more than a small number of seconds off in order to operate correctly.
This guide will explain how an Active Directory domain synchronizes its time across the network and the commands that you would need to enter in the command prompt on the appropriate computer in order to setup a synchronization with an NTP server that’s located in the cloud.
Step 1: Determine the network’s primary domain controller (PDC)
The first step is to determine the Active Directory domain’s primary domain controller or PDC. All member servers, secondary domain controllers, and workstations that are joined to the domain will synchronize their time periodically and upon startup with the network’s primary domain controller.
To identify the primary domain controller on a network, we’ll use the following command on any of the domain controllers that are part of the network. If your network only has one domain controller, then the single domain controller would be the network’s primary domain controller.
netdom /query fsmo
The above command will give you an output similar to what is shown below. In this example, the hostname of the server that’s the primary domain controller is GTDC1.
Schema master | GTDC1.GAULTECH.COM |
Domain naming master | GTDC1.GAULTECH.COM |
PDC | GTDC1.GAULTECH.COM |
RID pool manager | GTDC1.GAULTECH.COM |
Infrastructure master | GTDC1.GAULTECH.COM |
It’s important to mention that if your primary domain controller is running on a Hyper-V server or another virtualization technology, that you check to make sure that this guest is not set to synchronize its time with the host server. This could create a conflict that would prevent the PDC from synchronizing its time with the correct source.
Step 2: Enter the commands to synchronize the clock with the NTP server
These commands are to be entered on the primary domain controller that was determined from step one. You’ll first need to open a command prompt on this server with administrative privileges to prepare for the configuration. This is best done by completing a search in Windows for, «Command Prompt» and then right clicking the command prompt shortcut to select the option for, «Run as administrator» from the context menu.
Before applying the commands that’ll configure the synchronization source below, we must first enter the following command that’ll stop the W32Time service. It’s recommended to stop this service before making the configuration changes.
net stop w32time
Configure the external time sources using the following commands. In this example, we’ll be using the time servers associated with ntp.org. The most up to date list of these servers can be found at the NTP Pool Project website. The command below adds three server pools as NTP synchronization sources.
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org"
Set the PDC as a reliable time source for clients across the network with the following command.
w32tm /config /reliable:yes
Now that the time sources have been configured, we can issue the following command to restart the W32time service. Shortly after we restart this service, you should notice the time on the PDC is now accurate down to the second. Workstations and servers joined to the domain will then re-synchronize their clocks with the PDC over time and will then show an accurate date and time as well.
net start w32time
You can verify the NTP configuration using the following command. The output from this command should list the NTP servers that we’ve entered in the command above. These will appear next to the entry NtpServer in the output that’s displayed.
w32tm /query /configuration