Примеры применения
08.12.2014Для синхронизации времени устройства NetPing используют протокол NTP. При помощи этого протокола все устройства в сети корректируют своё время по указанному серверу. Устройства NetPing, подключенные к Internet, могут использовать публичный NTP сервер, как рекомендовано в статье . Если доступа к сети Internet нет, то можно настроить локальный NTP сервер. Таким сервером может являться любой компьютер с ОС Windows с настроенной службой W32Time («Служба времени Windows »). Данная служба не имеет графического интерфейса и настраивается либо через командную строку либо путём правки ключей реестра.
Рассмотрим настройку службы времени через редактирование реестра. Настройка происходит одинаково для версий Windows 7/8, Windows Server 2008, Windows Server 2012.
Для данной настройки необходимо обладать правами администратора ОС Windows
Открываем редактор реестра либо через диалоговое окно «Выполнить », вызванное комбинацией клавиш «Win » + «R », либо через форму поиска, где набираем «regedit ».
В открывшемся редакторе в левом древовидном меню открываем «ветвь» «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer », где ищем ключ с названием «Enable ». Нажимаем правой кнопкой мыши и выбираем «Изменить». Меняем значение ключа с 0 на 1 .
Изменив данный параметр, мы указали, что данный компьютер выступает в роли сервера NTP. Компьютер одновременно остаётся клиентом и может синхронизировать своё время по другим серверам в Internet или локальной сети. Если вы хотите, чтобы в качестве источника данных выступали внутренние аппаратные часы, то измените значение параметра ключа AnnounceFlags на 5 в ветке « HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config ».
Для вступления изменений в силу нам необходимо перезапустить службу. Доступ к службам осуществляется через «Панель управления » из меню «Пуск » -> «Панель управления » -> «Администрирование » -> «Службы ». Также она находится в форме поиска при вводе «services.msc ». В появившемся списке служб находим интересующую нас «Служба времени Windows » и через меню, вызванное правой кнопкой мыши, выбираем пункт «Перезапустить ».
NTP - это протокол синхронизации времени по сети. По существу клиенты запрашивают текущее время на сервере и используют его для установки своих собственных часов.
За этим простым описанием скрывается много сложностей - существуют уровни NTP серверов, где первый уровень подключен к атомным часам, а второй и третий уровни серверов распределяют на себя нагрузку по актуальным запросам из интернета. Кроме того клиентское приложение сложнее, чем вы можете подумать - оно компенсирует задержки соединения и регулирует время таким образом, чтобы не навредить другим процессам, запущенным на сервере. Но к счастью вся эта сложность скрыта от вас!
Ubuntu использует ntpdate и ntpd.
Ubuntu стандартно устанавливается с ntpdate и будет запускать его при каждой загрузке один раз для установки времени по NTP серверу Ubuntu.
Ntpdate -s ntp.ubuntu.com
Сервис NTP ntpd вычисляет уход ваших системных часов и постоянно подправляет их, благодаря чему не происходит сильных изменений, что может приводить к непоследовательности в журналах. Ценой этому небольшое расходование мощности процессора и оперативной памяти, но для современного сервера это несущественно.
Для установки ntpd из терминала введите:
Sudo apt-get install ntp
Отредактируйте /etc/ntp.conf для добавления/удаления серверов. По умолчанию эти сервера такие:
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board # on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for # more information. server 0.ubuntu.pool.ntp.org server 1.ubuntu.pool.ntp.org server 2.ubuntu.pool.ntp.org server 3.ubuntu.pool.ntp.org
После изменений конфигурационного файла вам надо перезапустить ntpd:
Sudo service ntp restart
Используйте ntpq для просмотра дополнительной информации:
# sudo ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +stratum2-2.NTP. 129.70.130.70 2 u 5 64 377 68.461 -44.274 110.334 +ntp2.m-online.n 212.18.1.106 2 u 5 64 377 54.629 -27.318 78.882 *145.253.66.170 .DCFa. 1 u 10 64 377 83.607 -30.159 68.343 +stratum2-3.NTP. 129.70.130.70 2 u 5 64 357 68.795 -68.168 104.612 +europium.canoni 193.79.237.14 2 u 63 64 337 81.534 -67.968 92.792
Служба времени Windows, несмотря на кажущуюся простоту, является одной из основ, необходимых для нормального функционирования домена Active Directory. В правильно настроенной среде AD служба времени работает следующим образом: компьютеры пользователей получают точное время от ближайшего контроллера домена, на котором они зарегистрировались. Все контроллеры домена в свою очередь получают точное время от DC с «Эмулятор PDC », а контролер PDC синхронизирует свое время с неким . В качестве внешнего источника времени может выступать один или несколько NTP серверов, например time.windows.com или NTP сервер вашего Интернет-провайдера. Также нужно отметить, что по умолчанию клиенты в домене синхронизируют время с помощью службы времени Windows (Windows Time), а не с помощью протокола NTP.
Если вы столкнулись с ситуацией, когда время на клиентах и контроллерах домена различается, возможно, в вашем домене есть проблемы с синхронизацией времени и эта статья будет вам полезна.
В первую очередь выберите подходящий NTP сервер, который вы могли бы использовать. Список общедоступных NTP серверов доступен на сайте http://ntp.org . В нашем примере мы будем использовать NTP сервера из пула ru.pool.ntp.org:
Настройка синхронизации времени в домене с помощью групповых политик состоит из двух шагов:
1) Создание GPO для контроллера домена с ролью PDC
2) Создание GPO для клиентов (опционально)
Этот шаг предполагает настройку контроллера домена с ролью эмулятора PDC на синхронизацию времени с внешним NTP сервером. Т.к. теоретически роль эмулятора PDC может перемещаться между контроллерами домена, нам нужно сделать политику, которая применялась бы только к текущему владельцу роли PDC. Для этого в консоли управления Group Policy Management Console (GPMC.msc), создадим новый . Для этого в разделе 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
укажите следующие параметры:
Совет . Не забудьте настроить межсетевой экран таким образом, чтобы сервер 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.сайт,0x9, а в качестве типа синхронизации — NT5DS
Обновите настройки групповых политик на клиентах и проверьте, что клиенты успешно синхронизировали свое время с PDC.
Совет . Указанная схема применима только к небольшим доменам. Для больших распределенных доменов с большим количеством DC и сайтов придется создать отдельную политику для каждого сайта, чтобы клиенты синхронизировали свое время с DC в сайте.
В статье рассмотрим настройку NTP клиента.
Для начала смотрим какая у нас установлена временная зона. Для этого используем команду .
# date Пт мар 8 17:38:47 MSK 2019
Если временная зона установлена неправильно, то устанавливаем правильную временную зону. Для этого создаем на файл /etc/localtime с соответствующей временной зоны из каталога /usr/share/zoneinfo/. Например для Москвы.
Ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Устанавливаем пакет ntp
Yum install ntp
Для синхронизации локальной клиентской машины на Linux с NTP-сервером требуется отредактировать файл /etc/ntp.conf . В следующем примере указывается несколько серверов времени, что полезно на случай недоступности одного из них. Или можете прописать другие внешние сервера, например pool.ntp.org
Server 0.rhel.pool.ntp.org iburst server 1.rhel.pool.ntp.org iburst server 2.rhel.pool.ntp.org iburst server 3.rhel.pool.ntp.org iburst
iburst : данный параметр повышает точность синхронизации, вместо одного пакета отправляется восемь. Когда сервер не отвечает, пакеты отправляются каждые 16 секунд, когда отвечает – каждые 2 секунды.
Server 192.168.1.1 prefer
prefer : если указана данная опция, заданный сервер считается предпочтительным перед остальными, но если ответ этого сервера будет значительно отличаться от ответов остальных серверов, он будет игнорироваться. Вместо 192.168.1.1 укажите ip адрес вашего сервера
После изменения ntp.conf и задания необходимых параметров запустите службу (демон) NTP. В зависимости от настроек, она может работать и как сервер, и как клиент.
Systemctl start ntpd
и добавьте его в автозагрузку
Systemctl enable ntpd
для проверки времени наберите команду
Проверить состояние NTP можно при помощи команды ntpq. Если вы получите ошибку отказа в соединении, значит, сервер времени не отвечает, не запущена служба NTP на клиенте или закрыт порт.
Sudo ntpq –p remote refid st t when poll reach delay offset jitter ========================================================================= *elserver1 192.168.1.1 3 u 300 1024 377 1.225 -0.071 4.606
remote
– имя или адрес сервера времени. Перед ним указан служебный символ, в данном случае «*», что означает используемый сервер. «+» означает, что сервер пригоден для обновления, «-» — что непригоден, «x» — сервер недоступен;
refid
– вышестоящий в иерархии Stratum сервер;
st
– уровень сервера в иерархии Stratum;
t
– тип соединения (u – unicast, одиночное соединение, b – broadcast, широковещательное соединение, l – локальные часы);
when
– время, прошедшее с момента последнего ответа;
poll
– период опроса в секундах;
reach
– состояние доступности (при представлении в двоичном виде 1 означает успешную попытку, 0 – сбой. После 8 успешных попыток устанавливается значение 377);
delay
– время двойного оборота пакета;
offset
– текущее смещение времени относительно сервера;
jitter
– среднеквадратичное отклонение времени.
Значение jitter должно быть низким, если это не так, проверьте смещение относительно часов в файле погрешности (driftfile). Если оно слишком велико, может потребоваться смена NTP-сервера. Следующая команда вручную синхронизирует время с NTP-сервером:
Для опроса NTP-сервера и установки даты и времени в ручную используется команда ntpdate . Обычно это требуется только один раз.
Для начала отключите ntp службу
Systemctl stop ntpd
Запустите синхронизацию указав сервер с которого нужно синхронизировать время
Ntpdate 192.168.1.1
Запустите службу ntp
Systemctl start ntpd
После такой первоначальной синхронизации NTP-клиент будет регулярно опрашивать NTP-сервер для обеспечения соответствия локального времени точному времени.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter .
Настройка времени в серверных операционных системах Windows с помощью протокола NTP является критичной для многих служб. Без правильного настроенного времени, а точнее при рассогласовании часов на сервере и рабочих станциях не могут правильно работать многие протоколы Active Directory и сервисы синхронизации. Установка и поддержка часов с помощью NTP является простой задачей, связанной иногда, однако, с некоторыми сложностями, которые мы попытаемся рассмотреть в этой статье.
Для примера будем использовать не самую свежую систему — Windows Server 2012. Она является наиболее распространенной и, в то же время, для многих других систем, включая Windows Server 2008, Windows Server 2016 применимы аналогичные команды и правила. Следует отметить, что описание касается настройки окружения с единственным главным контроллером PDC. Более сложные варианты не рассматриваются.
Для того, чтобы перевести службу NTP в «дефолтное» состояние, необходимо выполнить следующие команды:
Stop- Service w32time w32tm / unregister w32tm / register |
Stop-Service w32time w32tm /unregister w32tm /register
В данном случае они останавливают сервис, разрегистрируют сервис и регистрируют его в системе заново. Следует выполнять эти команды только в случае существенной необходимости. Как правило, нужды в них нет — NTP настраивается, если учтены другие обстоятельства системы.
Для того, чтобы настроить протокол сетевого времени на контроллере Windows Server, прежде всего необходимо отключить синхронизацию посредством Hyper-V, если контроллер виртуализирован с помощью этой технологии. Для этого нужно зайти в настройки и снять галочку с пункта Time Synchronization в разделе Management -> Integration Services
Для тех, кто не использует Hyper-V, предыдущий шаг можно опустить.
w32tm /config /manualpeerlist:"0.de.pool.ntp.org 1.de.pool.ntp.org" /syncfromflags:MANUAL
Протокол времени использует для своей связи порт UDP с номером 123 в стандартной конфигурации. Необходимо следить за тем, чтобы файрвол не блокировал этот порт. В случае, если блокировка происходит, в логах ntp будет масса информации о том, что соединение невозможно:
Log Name: System
Source: Microsoft-Windows-Time-Service
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.
Для того, чтобы убедиться, что проблема именно в этом, можно включить вывод дополнительной отладочной информации. Настраиваем логи Windows Server таким образом, чтобы в них писалась вся необходимая информация, но они не росли больше, чем 20 мегабайт:
w32tm /debug /disable
Блокировка ntp файрволом отлавливается по фразе в отладке:
— 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.
Если есть проблемы — сообщение:
The computer did not resync because no time data was available.
Во втором случае необходимо проверить все сначала: файрвол, правильность заданных серверов (не ошиблись ли в имени). Если что — информацию о сбросе настроек мы уже приводили.