Введение.
Время, как система контроля, подчиняется законам синхронности выполнения действий любого уровня. Для современных областей информационных технологий это особенно важно. В Linux, за время отвечает NTP — Network Time Protocol — протокол сетевого времени. От правильной работы демона ntpd зависит многое. Такие службы как LDAP1 и дерево домена, чутко реагируют на малейший временной сбой. Порой сетевые администраторы часами ищут неисправность в работе различных служб, забывая проверить NTP. В статье блога рассматриваются особенности работы службы времени OpenNTPD дистрибутива ALT Linux. Эта публикация даёт начало сериям статей2 посвящённым вопросам работы службы NTP ALT Linux.
- Стенд:
- ALT Linux сервер, имя lin-ntp; ip-10.0.2.36;
Установка OpenNTPD.
Специально устанавливать OpenNTPD сервер, как приложение, не будем. Используем в качестве базового, из «коробки», сервер Linux минимальной конфигурации и посмотрим какой NTP предлагается.
![Вид из Synaptic, какой ntp по умолчанию.](https://kabtim.ru/wp-content/uploads/2024/05/ntp-1.jpg)
Как показано выше, по умолчанию установлен openntpd. OpenNTPD — бесплатная и простая в использовании реализация сервера NTP. Может работать как клиент или как NTP сервер. Сразу отметим, что OpenNTPD и NTPD разные реализации NTP серверов. Они между собой не «дружат», если один установлен другой автоматически удаляется. Сервер NTPD будет рассматриваться в другой статье.
OpenNTPD разработан командой OpenBSD и может свободно использоваться под лицензией BSD3. Файл настроек находится /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 или через acc4.
При использовании acc необходимо проверить наличие установленного модуля alterator-datetime.
# apt-get update
# apt-cache search alterator-datetime
alterator-datetime - alterator module for date/time setup
![Вид: acc раздел "Дата и время".](https://kabtim.ru/wp-content/uploads/2024/05/ntp1.jpg)
Проверка работы 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.
Утилиты OpenNTPD.
Внизу приведены основные утилиты командной строки для управления сервером точного времени.
tzselec
Утилита командной строки, выводит список часовых поясов.
# 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 — аппаратные5 часы: если no показывает локальное время, если yes показывает всемирное время
Вывод списка временных зон.
# 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 сколько не жалко.
Полезные ссылки.
- Как работает Chrony клиент Linux
- Как установить Chrony сервер Linux.
- Как работает NTPD Linux.
- Как работает OpenNTPD Linux.
- OpenNTPD свободная реализация сервера NTP
- ntpd man
- chronyd man
- chrony man
- chronyc man
- chrony.conf man
- ntpdate man
- hwclock man
- timedatectl man
Сноски.
- LDAP — Lightweight Directory Access Protocol — легковесный протокол доступа к каталогам ↩︎
- смотри полезные ссылки ↩︎
- лицензия BSD, — Berkeley Software Distribution лицензия с открытым исходным кодом ↩︎
- ALT Linux Control Center ↩︎
- указано в BIOS ↩︎