Как установить Chrony сервер Linux.

Введение.

В предыдущей статье блога рассматривалась работа клиента NTP, установленного по умолчанию на дистрибутив ALT Linux рабочая станция. Автору предложили продолжить тему chrony и рассказать, как переключиться с режима chronyd клиент на chronyd сервер точного времени.

  • Стенд:
    • ALT Linux сервер, имя lin-ntp; ip-10.0.2.11;

Установка.

В качестве базового, выберем сервер минимальной конфигурации ALT Linux, как отдельного узла в виртуальном облаке организации. С помощью командной строки установим программу chrony.

# apt-get update
# apt-get install chrony

Запуск и управление chronyd.

Команды для управления chronyd приводятся ниже.

# systemctl start|enable|status|restart|is-enabled|stop chronyd

Настройка chronyd.

Перевести chrony в режим сервера можно двумя способами: консольным или графическим.

Консольный режим предполагает убрать комментарий в строке файла конфигурации /etc/chrony.conf, после чего необходимо перегрузить службу.

# /etc/chrony.conf
....
# Allow NTP client access from local network.
allow all
...
# systemctl restart chronyd

Графический способ, потребует запустить acc и отметить нужные позиции, как показано ниже. Проверить установку acc и модуля времени можно, используя команды приведённые ниже.

# apt-get update
# apt-get install acc
# apt-get install alterator-datetime
# acc
Вид: перевод chronyd режим ntp.
Вид: перевод chronyd режим ntp.

acc — ALT Linux control center — центр управления ALT Linux

Проверка работы chronyd.

timedatectl

Команда оценивает работу сервера синхронизации NTP. Для chronyd, может служить в качестве быстрого «взгляда» на работу NTP.

# timedatectl
          Local time: Чт 2022-03-03 21:16:15 MSK
          Universal time: Чт 2022-03-03 18:16:15 UTC
          RTC time: Чт 2022-03-03 18:16:16    
          Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes                       
              NTP service: active                    
          RTC in local TZ: no   
  • Local time — местное время
  • Universal time — UTC всемирное время
  • RTC time — аппаратное время
  • Time Zone — часовой пояс
  • NTP synchronized — синхронизация с ntp сервером
  • RTC in local TZ — аппаратные часы: если no показывает локальное время , если yes показывает всемирное время

Основную проверку работу сервера chronyd можно осуществить несколькими популярными командами, из набора утилиты chronyc, подробности читай здесь.

tracking

Показывает производительность системных часов на сервере.

# chronyc tracking
Reference ID    : 59DDCF71 (89.221.207.113)
Stratum         : 3
Ref time (UTC)  : Mon Feb 28 14:24:52 2022
System time     : 0.000478345 seconds slow of NTP time
Last offset     : +0.000350668 seconds
RMS offset      : 0.002563184 seconds
Frequency       : 27.618 ppm slow
Residual freq   : -0.026 ppm
Skew            : 0.673 ppm
Root delay      : 0.039620969 seconds
Root dispersion : 0.000692389 seconds
Update interval : 64.8 seconds
Leap status     : Normal
  • Reference ID — идентификатор и имя NTP сервера синхронизации
  • Stratum — количество переходов к NTP серверу
  • Ref time — время, UTC, последнего измерения от эталонного источника
  • System time — скорость задержки системных часов от NTP сервера
  • Last offset — локальное смещение при последнем обновлении часов от NTP
  • RMS offset — долгосрочное среднее значение смещения времени
  • Frequency — частота скорости ошибки, без исправления chronyd, в ppm — ч/м частей на миллион
  • Residual freq — разница частоты между NTP и локальным источником времени
  • Skew — предполагаемая ошибка, связанная с частотой
  • Root delay — общая задержка сетевого пути к NTP серверу синхронизации
  • Update interval — интервал между двумя последними обновлениями часов
  • Leap status — статус скачка, «нормальный», «вставить секунду», «удалить секунду», «не синхронизировано»

sources

Проверяет источники опорного времени сервера NTP, ключ -v, вывод подробно.

# chronyc sources 
210 Number of sources = 5
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? _gateway                      0   8     0     -     +0ns[   +0ns] +/-    0ns
^+ fizdlganet.ru                 2   6   377     6  +2120us[+2120us] +/-   51ms
^* 89.221.207.113                2   7   377    73  -3526us[-3527us] +/-   22ms
^+ ftpshare1.corbina.net         2   6   377    11  +2081us[+2081us] +/-   26ms
^+ cello.corbina.net  
  • + источники, которые комбинируются с выбранным источником
  • * источник синхронизируется с chronyd
  • ? связь потеряна или если пакеты не проходят тесты в течении 3 раз

sourcestats

Скорость дрейфа серверов опорного смещения.

# chronyc sourcestats 
210 Number of sources = 5
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
_gateway                    0   0     0     +0.000   2000.000     +0ns  4000ms
fizdlganet.ru              24  11   30m     +0.069      0.294  +2180us   179us
89.221.207.113             25  15   31m     +0.290      0.585  -4180us   437us
ftpshare1.corbina.net      15  10   21m     -0.233      0.425  +1803us   153us
cello.corbina.net          16   9   969     +0.192      0.673  +1825us   192us

reselect

Повторно выбирает лучший источник синхронизации для cronyd.

chronyc> reselect
200 OK

add server/delete

Добавляет/удаляет NTP сервер в перечне опорных серверов времени.

chronyc add server lin-ntp1
200 OK
chronyc delete  lin-ntp1
200 OK

burst

Выполняет набор измерений, chronyd, для каждого источника опорного NTP указанного в списке, аргументы команды см. ниже

  • good — количество хороших измерений от каждого источника
  • max — максимальное количество измерений
  • mask — IP-адреса источников опорных NTP
  • masked-address — IP-адрес источника для обработки пакетной команды
  • address — IP-адрес или имя хоста одного источника опорного NTP

Пример: провести три хороших измерения от каждого источника в списке, не более 15 попыток

chronyc> burst 3/15

makestep

Имеет две формы: без параметров и с параметрами. Первый режим приводит к немедленной коррекции времени при больших временных отставаниях. Второй режим производит пошагово-пороговую коррекцию в сек, для которого порог активен.

chronyc> makestep
200 OK
chronyc> makestep 0.1 2
200 OK

manual

Управляет режимом ручной установки для команды settime.

  • on — включает settime
  • off — выключает settime
  • list — история изменений settime
  • delete index — удаляет из истории строку
  • reset — удаляет из истории все образцы (samples)
chronyc> manual list
210 n_samples = 5
#    Date     Time(UTC)    Slewed   Original   Residual
=======================================================
 0 2022-03-02 10:08:48     -71.08     -37.49     -71.08
 1 2022-03-02 10:09:00       0.00      71.47       0.00
 2 2022-03-02 10:12:08       8.41     -82.48       8.41
 3 2022-03-02 10:14:56      -8.21     -83.72      -8.21
 4 2022-03-02 10:18:05       0.00      12.54       0.00

settime

Позволяет ввести текущее время вручную используя команду manual или директиву manual в файле /etc/chrony.conf. Точность показаний часов будет зависеть от нажатия кнопки enter. Перед выполнением необходимо убедится, что часовой пояс ПК настроен правильно. Сказанное выше закрепим несколькими примерами на лабораторном стенде.

chronyc> manual on
200 OK
chronyc> settime 13:12
200 OK
Clock was -82.47 seconds fast.  Frequency change = -162095.64ppm, new frequency = 418952.16ppm
chronyc> settime 13:15:05
200 OK
Clock was -83.72 seconds fast.  Frequency change = -700702.19ppm, new frequency = 11810.69ppm
chronyc> settime Mar 02, 2022 13:18:05
200 OK
Clock was 12.54 seconds fast.  Frequency change = 22489.20ppm, new frequency = 34034.28ppm
chronyc> manual off

clients

Выводит количество клиентов NTP подключённых к серверу синхронизации.

chronyc> clients
Hostname   NTP   Drop Int IntL Last     Cmd   Drop Int  Last
==============================================================
10.0.2.33  60      0   9   -   216       0      0   -     -
  • hostname — имя хоста клиента
  • NTP — пакеты NTP, полученные от клиента
  • Drop — отклонённые пакеты для ограничения скорости отклика
  • Int — средний интервал между пакетами
  • IntL — средний интервал между пакетами, когда скорость ограничена
  • Last — время получения последнего пакета NTP
  • Cmd — количество команд полученных от клиента
  • Drop — отклонённые команд для ограничения скорости отклика
  • Int — средний интервал между пакетами команд
  • Last — время с момента получения последнего командного пакета

Заключение.

При планировании корпоративной системы предприятия, необходимо учитывать выбор NTP сервера. Наверное будет правильно, оставить в системе, тот NTP который «исторически» использовался в организации. Как правило, большинство организаций «выросли» из продукции компании Microsoft — служба NTPD. В силу известных обстоятельств, многие компании планируют переход на продукцию OC Linux из Российских дистрибутивов. Планирование и миграция на Linux ставит перед администратором многие вопросы, одним из которых является, выбор сервера NTP. Дистрибутив ALT Linux зарекомендовал себя, как надёжный, устойчивый, перспективный продукт с хорошей историей эксплуатации.. Из статьи видно, основным «коробочным» NTP сервером для ALT Linux является OpenNTPD. Его можно оставит, как бальзовый, при планировании новой структуры корпоративной ИТ. Изменить выбор сервера NTP можно по разным причинам. Серия статей о NTP поможет администратору сделать этот шаг более уверенно.

Как работает Chrony клиент Linux

Введение.

Этой публикацией заканчивается серия статей о работе NTP Linux. Напомним, в предыдущих публикациях рассматривались вопросы использования OpenNTP и NTPD в дистрибутиве ALT Linux сервер. Теперь давайте разберёмся, как устроена работа NTP на уровне рабочей станции ALT Linux из «коробки». Разговор пойдёт не о сервере NTP, а клиенте NTP установленного на рабочей станции, по умолчанию.

Подготовка.

У нас имеется ALT Linux рабочая станция. Воспользуемся графическим менеджером пакетов Synaptic и посмотрим какие NTP установлены из «коробки». Нас интересуют не утилиты NTP, а клиент NTP для синхронизации часов ПК.

Вид: synaptic, поиск клиента ntp.
Вид: synaptic, поиск клиента ntp.

Поиск в Synaptic выявил chrony — клиентскую программу для синхронизации времени с NTP сервером.

  • Стенд:
    • ALT Linux, имя lin-ntp; ip-10.0.2.11;
    • ALT Linux рабочая станция, имя lin-kde; ip- 10.0.2.33;

Программа chrony состоит из двух частей: фонового демона chronyd и утилиты командной строки chronic, лицензия GPLv2. Сам chrond хорош тем, что может работать в медленных сетях, где возможны отключение интернета. Страна у нас большая, погодные и природные условия разные, всё это может приводить к временным отключениям и сбоям в сети. Задача клиента сводится к проверки соединения, периодически отправляя запросы на сервер NTP для мягкой коррекции времени. Период синхронизации с опорными часами проходит через ~ 10 мин. Клиент chrony, допускает установку времени на ПК в ручную с помощью наручных часов, GPS, ГЛОНАСС, в ntpd и openntpd — можно только корректировать.

Установка.

Как говорилось выше chrony уже установлен, по умолчанию, на рабочей станции.

# apt-cache search chrony
chrony - Chrony clock synchronization program
...

Управление.

Выполнить управление chrony можно следующими командами.

# systemctl start|enable|stop|restart|status chronyd

Файл конфигурации находится в /etc/chrony.conf, смотрим какие строки не комментированы.

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
...
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
...
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Specify directory for log files.
logdir /var/log/chrony
...
# Select which information is logged.
#log measurements statistics tracking
pool lin-ntp iburst
  • driftfile — записывает время +/- дрейфа системных часов при старте
  • makestep — пошаговая коррекция времени, 1 сек 3 шага
  • rtcsync — синхронизацию ядра с часами реального времени
  • logdir — журнал
  • pool — сервер опорного времени

Проверка.

Проверить работу клиента NTP можно, с помощью утилиты chronyc.

chronyc

Утилита командной строки имеет широкий набор инструкций, некоторые из которых приводятся ниже. Вводить команды для управления демоном chronyd, можно двумя синтаксическими способами.

$ chronyc
...
chronyc> tracking

или

$ chronyc tracking

По ходу публикации, будут использованы оба варианта.

tracking

Команда показывает производительность системных часов на клиенте.

$ chronyc tracking
Reference ID    : 00000000 ()
Stratum         : 0
Ref time (UTC)  : Thu Jan 01 00:00:00 1970
System time     : 0.000000017 seconds slow of NTP time
Last offset     : +0.000000000 seconds
RMS offset      : 0.000000000 seconds
Frequency       : 14.997 ppm slow
Residual freq   : +0.000 ppm
Skew            : 0.000 ppm
Root delay      : 1.000000000 seconds
Root dispersion : 1.000000000 seconds
Update interval : 0.0 seconds
Leap status     : Not synchronised
  • Reference ID — идентификатор и имя NTP сервера синхронизации*
  • Stratum — количество переходов к NTP серверу
  • Ref time — время, UTC, последнего измерения от эталонного источника*
  • System time — скорость задержки системных часов от NTP сервера
  • Last offset — локальное смещение при последнем обновлении часов от NTP
  • RMS offset — долгосрочное среднее значение смещения времени
  • Frequency — частота скорости ошибки, без исправления chronyd, в ppm — ч/м частей на миллион
  • Residual freq — разница частоты между NTP и локальным источником времени
  • Skew — предполагаемая ошибка, связанная с частотой
  • Root delay — общая задержка сетевого пути к NTP серверу синхронизации
  • Update interval — интервал между двумя последними обновлениями часов*
  • Leap status — статус скачка, «нормальный», «вставить секунду», «удалить секунду», «не синхронизировано»*

* Отмечены строки, которые в режиме клиента NTP не работают.

sources

Проверка источника опорного времени, ключ -v, вывод подробно.

$ chronyc sources -v
210 Number of sources = 1
...    
MS Name/IP address   Stratum Poll Reach LastRx Last sample     
^? lin-ntp              0  10  0  -  +0ns[  +0ns] +/-  0ns

sourcestats

Скорость дрейфа и оценка смещения опорного источника.

$ chronyc sourcestats 
210 Number of sources = 1
Name/IP Addr NP NR Span Frequency Freq Skew  Offset Std Dev
===========================================================
lin-ntp   0  0   0   +0.000   2000.000 +0ns  4000ms

add server

Добавить новый опорный NTP сервер в список.

chronyc> add server 10.0.2.16
200 OK
chronyc> sources 
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================
^? 10.0.2.11            0   6   0   -  +0ns[   +0ns] +/-    0ns
^? 10.0.2.16            0   6   0   -  +0ns[   +0ns] +/-    0ns

delete

Удалить опорный NTP сервер из списка.

chronyc> delete 10.0.2.16
200 OK
chronyc> sources 
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================
^? 10.0.2.8               0   7   0  - +0ns[ +0ns] +/-    0ns

makestep

Быстрое исправление коррекции времени на клиенте NTP.

chronyc> makestep
200 OK

waitsync

Ожидание синхронизация с опорным NTP сервером, ключ 0 — ожидание не ограниченно.

chronyc> waitsync
try: 1, refid: 00000000, correction: 0.000000007, skew: 0.000
try: 2, refid: 00000000, correction: 0.000000008, skew: 0.000
try: 3, refid: 00000000, correction: 0.000000009, skew: 0.000
...

Пример: ожидание 10 мин, 60 раз по 10 секунд, коррекция ~10 мс.

waitsync 60 0.01
try: 1, refid: 00000000, correction: 0.000000009, skew: 0.000
...
try: 5, refid: 00000000, correction: 0.000000010, skew: 0.000
...
try: 12, refid: 00000000, correction: 0.000000011, skew: 0.000
...

allow all

Разрешает доступ к chronyd NTP сервера синхронизации из локальной сети.

chronyc> allow all
200 OK

accheck

Проверяет клиентский NTP доступ с определенного рабочего хоста серверу синхронизации.

chronyc> accheck lin-kde9
208 Access allowed

cmdallow

Разрешает использовать мониторинг опорного NTP chronyd, сервера синхронизации, из текущего ПК. По умолчанию chronyd опорного NTP принимает команды только с localhost (127.0.0.1).

chronyc> cmdallow lin-kde9
200 OK

cmdaccheck

Проверка доступа мониторинг chronyd, опорного NTP сервера с именованного ПК.

chronyc> cmdaccheck lin-kde9
208 Access allowed

refresh

Обновление IP адресов после остановки или сбоя сети.

chronyc> refresh
200 OK

local

Заставляет ПК работать в режиме NTP сервера в изолированной сети, при сбоях с опорным узлом точного времени.

chronyc> local     
200 OK

local off

Отключает режим узла NTP сервера, точное время получает с опорного NTP сервера.

chronyc> local off
200 OK

Журнал.

Следить за сообщением журнала systemd о работе chronyd.

# journalctl -uf chronyd

Заключение.

Применение chrony, в качестве клиента NTP, является хорошим примером для сетей с неустойчивой инфраструктурой. Электропитание, интернет, разобщённость подразделений, нехватка специалистов, всё это может влиять на работу оборудования и его грамотную эксплуатацию. Клиент chrony не прихотлив, не требует к себе особого внимания. После штатного или нештатного отключения оборудования, временные штаммы сохраняются в файле drift. При включении, демон chronyd проверяет drift, выставляя время на основе его значения. После синхронизации времени с опорным сервером NTP, происходит плавная корректировка частоты отметок временных колебаний. Основная задача которых «выпрямить» время так, что бы работающие приложения не почувствовали скачков и резких изменений в своей работе. В следующей публикации, по просьбе читателей, будет рассказано как перевести chrony в режим сервера точного времени.

Полезные ссылки.

  • chronyd фоновый демон ntp
  • chrony утилита поддержки точности часов
  • chronyc командная строка для chronyd
  • chrony.conf конфигурационный файл
  • точное время эталон времени

Как работает NTPD Linux.

Как говорилось ранние, сервер времени NTP является главным хронометром сетевой структуры предприятия. В Linux, службу NTP можно построить с помощью одного из трёх рекомендованных демонов

Введение.

Как говорилось ранние, сервер времени NTP является главным хронометром сетевой структуры предприятия. В Linux, службу NTP можно построить с помощью одного из трёх рекомендованных демонов. Работа службы OpenNTPD подробно рассматривалась в статье опубликованной выше. Пришла пора обсудить работу NTPD, в качестве сервера точного времени. В дистрибутиве ALT Linux, NTPD не является сервером времени по умолчанию, тем не имение его можно установить и успешно эксплуатировать. Причины могут быть разные одной из которых — особенности интеграции с устройствами Windows, где NTPD также применяется. Служба ntpd работает под лицензией MIT + BSD.

  • Стенд:
    • ALT Linux сервер, имя lin-ntp; ip-10.0.2.11;

Установка.

В качестве основного сервера возьмём сервером минимальной конфигурации. С помощью командной строки или графического менеджера пакетов Synaptic, установим сервер времени NTPD. Напомним, при установке будет удалён демон OpenNTPD, такие правила.

# apt-get update;apt-get install ntpd
...
Следующие пакеты будут УДАЛЕНЫ:
  openntpd
Следующие НОВЫЕ пакеты будут установлены:
  ntpd
Продолжить? [Y/n]Y
Вид: synaptic установить сервер ntpd.
Вид: synaptic, установка сервера ntpd.

Управление.

Управляющие команды службы времени NTPD приводятся ниже.

# systemctl start|enable|is-enabled|stop|restart|status ntpd

Файл настроек демона NTPD находится в /etc/ntp.

# /etc/ntp
...
server 0.ru.pool.ntp.org
server 1.ru.pool.ntp.org
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org
...

Как видно из файла конфигурации NTPD, при установке, пул серверов точного времени зоны ru, указывается при установке, оставим как есть.

Вид: acc настройка сервера NTPD
Вид: acc, настройка сервера NTPD.

Проверка работы NTPD.

Для проверки правильности выполнения наших действий и работы NTPD, как сервера времени, воспользуемся следующими командами.

ntpq

Утилита командной строки для проверки работы NTPD протокола.

# ntpq -pn  
  • p список узлов точного времени
  • n числовой формат вывод узлов вместо канонического

timedatectl

Утилита командной строки для настройки NTPD часов.

# timedatectl status
           Local time: Пн 2022-02-07 17:33:19 MSK
           Universal time: Пн 2022-02-07 14:33:19 UTC
           RTC time: Пн 2022-02-07 14:33:21    
           Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes                       
              NTP service: n/a                       
          RTC in local TZ: no  
  • Local time — местное время
  • Universal time — UTC всемирное время
  • RTC time — аппаратное время
  • Time Zone — часовой пояс
  • NTP synchronized — синхронизация с ntp-сервером
  • RTC in local TZ — аппаратные часы: no — local time; yes — UTC time

nc

Утилита командной строки, проверка связи с эталонным сервером NTP.

# nc 0.ru.pool.ntp.org 123 -z -4 -u -v
Connection to 0.ru.pool.ntp.org 123 port [udp/ntp] succeeded!

nptdate.

Утилита синхронизации и установки времени системных часов.

# ntpdate -q -4 0.ru.pool.ntp.org
server 188.225.9.167, stratum 2, offset +0.001098, delay...
...

Остальные доступные команды, проверки работы службы NTP смотри в OpenNTPD.

Заключение.

В статье рассматривалась работа сервера времени NTPD на примере дистрибутива ALT Linux. Как говорилось выше NTPD не является демоном времени установленным из коробки, сервера ALT Linux. Администратор может выбирать удобный для работы предприятия движок, службы точного времени, проанализировав работу OpenNTPD и NTPD.

Полезные ссылки.

  • ntpd демон NTP протокола
  • ntpdate установка даты и времени NTP
  • hwclock настройка аппаратных часов (RTC)
  • timedatectl контроль времени и даты
  • ntpq программа запроса времени

Как работает OpenNTPD Linux.

Время, как система контроля, подчиняется законам синхронности выполнения действий любого уровня.

Введение.

Время, как система контроля, подчиняется законам синхронности выполнения действий любого уровня. Для современных областей информационных технологий это особенно важно. В Linux, за время отвечает NTPNetwork Time Protocol — протокол сетевого времени. От правильной работы демона ntpd зависит многое. Такие службы как LDAP и дерево домена, чутко реагируют на малейший временной сбой. Порой сетевые администраторы часами ищут неисправность в работе различных служб, забывая проверить NTP. В статье блога рассматриваются особенности работы службы времени OpenNTPD дистрибутива ALT Linux. Эта публикация даёт начало сериям статей: ntpd, chrony посвящённым вопросам работы службы NTP ALT Linux.

  • Стенд:
    • ALT Linux сервер, имя lin-ntp; ip-10.0.2.36;

Установка OpenNTPD.

Специально устанавливать OpenNTPD сервер, как приложение, не будем. Используем в качестве базового, из «коробки», сервер Linux минимальной конфигурации и посмотрим какой NTP предлагается.

Вид: Synaptic, установленный openntpd по умолчанию.
Вид: Synaptic, установленный ntp по умолчанию.

Как показано выше, по умолчанию установлен openntpd. OpenNTPD — бесплатная и простая в использовании реализация сервера NTP. Может работать как клиент или как NTP-сервер. Сразу отметим, что OpenNTPD и NTPD разные реализации NTP-серверов. Они не дружат, если один установлен другой автоматически удаляется. Сервер NTPD будет рассматриваться в другой статье. OpenNTPD разработан командой OpenBSD и может свободно использоваться под лицензией BSD. Файл настроек находится /etc/ntpd.conf

Настройка OpenNTPD.

Откроем /etc/ntpd.conf и посмотрим синтаксис конфигурации.

# cat /etc/ntpd.conf
# $OpenBSD: ntpd.conf,v 1.7 2004/07/20 17:38:35 henning Exp $
# sample ntpd configuration file, see ntpd.conf(5)

# Addresses to listen on (ntpd does not listen by default)
listen on *
#listen on 127.0.0.1
#listen on ::1

# sync to a single server
#server ntp.example.org

# use a random selection of 8 public stratum 2 servers
# see http://twiki.ntp.org/bin/view/Servers/NTPPoolServers
servers ru.pool.ntp.org                                                                                                                                                   

Из листинга видно, что в качестве сервера точного времени используется ru.pool.ntp.org. Внести запись можно, непосредственно в ntpd.conf или через acc.

Проверить наличие установленного модуля alterator-datetime.

# apt-get update
# apt-cache search alterator-datetime 
alterator-datetime - alterator module for date/time setup 
Вид: утилита acc раздел "Дата и время" openntpd.
Вид: acc раздел «Дата и время».

Проверка работы OpenNTPD.

Остаётся проверить управление и работу openntpd с помощью командной строки. Сразу отметим, команда ntpq c openntpd не работает, будем использовать другие утилиты.

# systemctl start|stop|restart|status ntpd
# systemctl status ntpd
...
Active: active (running) since Wed .....
...
lin-ntp ntpd:reply from 194.190.168.1: offset 0.421851 delay 0.005554, next query 33s
lin-ntp ntpd:reply from 213.110.203.168: offset 0.418473 delay 0.015690, next query 31s
lin-ntp reply from 82.148.16.232: offset 0.417237 delay 0.004958, next query 32s
lin-ntp ntpd:rreply from 212.13.97.58: offset 0.409858 delay 0.006080, next query 32s

Из листинга видно, служба NTP активна и принимает временную коррекцию от сервера точного времени зоны ru.

tzselect

Утилита командной строки, выводит список часовых поясов.

# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa
2) Americas
3) Antarctica
4) Asia  
5) Atlantic Ocean
6) Australia                                                             
7) Europe                                                    
8) Indian Ocean                                              
9) Pacific Ocean                                                              
10) coord - I want to use geographical coordinates.                                                    11) TZ - I want to specify the time zone using the Posix TZ format.
#? 

timedatectl

Утилита командной строки timedatectl, способна выполнять запросы и настройку системных часов в реальном времени.

# timedatectl status
   Local time: Чт 2022-02-03 11:02:46 MSK
   Universal time: Чт 2022-02-03 08:02:46 UTC
   RTC time: Чт 2022-02-03 08:02:46    
   Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: no                        
             NTP service: n/a                       
          RTC in local TZ: no  
  • Local time — местное время
  • Universal time — UTC всемирное время
  • RTC time — аппаратное время
  • Time Zone — часовой пояс
  • NTP synchronized — синхронизация с ntp-сервером
  • RTC in local TZ — аппаратные часы: если no показывает локальное время , если yes показывает всемирное время

Аппаратное время — BIOS, системное время — сервер.

Вывод списка временных зон.

# timedatectl list-timezones

nc

Утилита командной строки nc выборочно прослушивает соединения TCP и UDP. Проверяем соединение по IPv4 с эталонным серверном и сервером NTP.

# nc ru.pool.ntp.org 123 -z -4 -u -v
Connection to ru.pool.ntp.org 123 port [udp/ntp] succeeded!
[root@lin-ntp ~]# nc lin-ntp 123 -z -4 -u -v
Connection to lin-ntp 123 port [udp/ntp] succeeded!

nptdate.

Утилита командной строки ntpdate устанавливает/синхронизирует дату и время через NTP сервер.

# ntpdate -q -4 ru.pool.ntp.org
server 94.247.111.10, stratum 2, offset +4.262197, delay 0.08008
server 85.21.78.23, stratum 2, offset +4.262231, delay 0.03166
server 95.154.97.27, stratum 2, offset +4.275527, delay 0.16031
server 91.207.136.55, stratum 2, offset +4.265297, delay 0.05487
 3 Feb 13:28:58 ntpdate[4152]: step time server 85.21.78.23 offset +4.262231 sec

journalctl.

Утилита командной строки читает системный журнал systemd. Многочисленные ключи позволяют гибко настраивать выход сообщений служебных юнитов на экран. Нас интересует работа юнит ntpd.

# journalctl -u ntpd
ntp engine ready
reply from 188.93.104.2: offset 2.039799 delay 0.006116, next query 9s
reply from 193.192.36.3: offset 2.041428 delay 0.021417, next query 6s
reply from 94.247.111.10: offset 2.033169 delay 0.070163, next query 7s
reply from 188.93.104.2: offset 2.039940 delay 0.005502, next query 8s

Заключение.

Сервер NTP успешно установлен и работает, заметим, всё «взято» по умолчанию из коробки. OpenNTPD включает в себя сервер и клиент, т.е два в одном. Для окружающих его рабочих станций, серверов и устройств периферии, OpenNTPD является источником образцового времени. Будет лучше, если сервер NTP станет работать на отдельном устройстве в виртуальном пространстве предприятия. Много ему не требуется HDD ~8 Gb ,RAM ~2Gb, CPU сколько не жалко.

Полезные ссылки.

  • OpenNTPD свободная реализация сервера NTP
  • ntpd демон NTP протокола
  • chronyd фоновый демон ntp
  • chrony утилита поддержки точности часов
  • chronyc командная строка для chronyd
  • chrony.conf конфигурационный файл
  • ntpdate установка даты и времени NTP
  • hwclock настройка аппаратных часов (RTC)
  • timedatectl контроль времени и даты