- PVSM.RU - https://www.pvsm.ru -

Установка NTP сервера для включения его в pool.ntp.org

Большинство дистрибутивов операционных систем на базе Linux и многих сетевых устройств используют для установки часов сервера вида *.pool.ntp.org.

Рассмотрим подробнее откуда же берутся данные сервера, что требуется чтобы создать свой собственный сервер и добавить его к данному кластеру для помощи сообществу синхронизации времени.

Как сказано на сайте https://www.ntppool.org/ru/ [1]  - это огромный кластер серверов точного времени, предоставляющий надежный и простой в использовании NTP-сервис для миллионов клиентов и его услугами пользуются десятки миллионов систем по всему миру.

Как же установить свой сервер, что для этого требуется?

Требуется обычный сервер со статическим реальным IP адресом с актуальной операционной системой будь то Linux/BSD или подобное устройство которое в состоянии стабильно работать роли ntp-сервера по протоколу NTP https://ru.wikipedia.org/wiki/NTP [2] который работает через интернет-сети на по порту 123/udp

Из-за небольшого потребления ресурсов и канала (до 10-15 килобит в секунду) подойдет практически любая конфигурация, например, VPS/VDS на базе KVM с минимальными ресурсами.

Цитирую с сайта https://www.ntppool.org/ru/join.html [3]

“В настоящее время большинство серверов получают порядка 5-15 NTP-пакетов в секунду. Несколько раз в день могут возникать пики по 60-120 пакетов в секунду. Переводя в килобиты, получаем примерно 10-15Кбит/с в среднем и порядка 50-120Кбит/с на пиках нагрузки. В пул постепенно входит все больше серверов, поэтому резкое возрастание нагрузки в будущем не ожидается. Таким образом, вам вряд ли потребуется полоса больше 384-512Кбит (на прием и отдачу)”

Устанавливаем NTP-сервер

В большинстве дистрибутивов Linux он входит в стандартные репозитории операционной системы и достаточно выполнить его установку

apt install ntp для Debian/Ubuntu или yum install ntp для CentOS

Теперь откройте файл конфигурации в вашем /etc/ntp.conf и там в 99% случаев будут сервера из пула:

pool 0.debian.pool.ntp.org iburst

pool 1.debian.pool.ntp.org iburst

pool 2.debian.pool.ntp.org iburst

pool 3.debian.pool.ntp.org iburst

Просто закомментируйте их символом #, сервер который будет входить в пул не должен синхронизироваться с ними

После чего перейдите по ссылкам http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers [4] и http://support.ntp.org/bin/view/Servers/StratumOneTimeServers [5] выберете там сервера для синхронизации

Также рекомендуется использовать google по запросу вида “ntp server ваша_страна”

Рекомендуется использовать не меньше 4 и не больше 6 серверов

Руководствуйтесь правилом 2+2+2 -

2 сервера - StratumOne

2 сервера - StratumTwo

2 сервера - в геолокациях соседними с вашей

Отмечу, что существуют также сервера (пулы серверов) точного времени принадлежащие крупным корпорациям - такие как time.apple.com / time.facebook.com / time.google.com. Использовать их или нет - сложный вопрос, так как мы используем пул для "интернет-независимости" и свободных операционных систем, то я бы не рекомендовал их использовать, кроме того сервера google не поддерживают [6] передачу leap second.

Работу сервера следует проверить командой ntpdate -q имя-сервера должен быть ответ вида

root@gw:~# ntpdate -q ntp4.vniiftri.ru

server 89.109.251.24, stratum 1, offset 0.001008, delay 0.08249

 8 Jan 03:50:07 ntpdate[1414]: adjust time server 89.109.251.24 offset 0.001008 sec

Что означает что сервер работает, есть ответ и он представляет собой сервер “первого яруса” (stratum 1)

Подробнее об ярусах (stratum) можно прочитать по ссылке https://habr.com/ru/post/79461/ [7]

Сервера которые являются эталонными часами (атомными, GPS-спутник) являются сервера так называемого нулевого уровня (stratum 0)

Сервера которые синхронизируются с ними напрямую (например, через GPS-приемник)  имеют уровень 1

Следом идут сервера 2 и 3 чего вполне достаточно для синхронизации времени часов большинства компьютерных систем

Проверка работоспособности

После добавления новых серверов (предварительно проверенных через ntpdate -q) следует перезапустить ntp-сервер (service ntp restart) и проверить его работу командой ntpq -pn

root@gw:~# ntpq -pn

     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

-51.15.74.121    131.176.107.13   2 u   48   64   17    1.009   -0.030   0.246

*193.190.230.37  .EXT.            1 u   41   64   17    4.825   -0.263   0.853

+145.238.203.14  .MRS.            1 u   41   64   17   14.549   -0.857   0.127

-89.109.251.24   .MRS.            1 u   44   64   17   46.043    0.501   1.539

+62.231.6.98     .GPS.            1 u   43   64   17   41.770   -1.292   0.647

-80.60.208.118   193.67.79.202    2 u   43   64   17    8.324   -1.364   1.338

Когда есть сервер который начинается с * - значит синхронизирован успешно.

Понаблюдайте за работой ntp сервера некоторое время. Оставьте сервера с минимальным delay и jitter, рекомендуется потратить на это около часа времени и отобрать действительно лучшие сервера.

Также проверьте работу сервера с внешнего подключения через интернет выполнив ntpdate -q ip-адрес тем самым убедитесь что все работает, udp/123 нигде не фильтруется

Добавление сервера в пул pool.ntp.org

Дальше следует перейти на сайт https://www.ntppool.org/ru/join.html [3] и добавить сервер - все предельно просто после быстрой регистрации

Сервер работает по IP адресу, доменное имя можно указать на этапе добавления и оно будет использоваться только в момент первоначальной настройки и для отображения в списке.

После чего выполняется проверка стабильности работы сервера (так называемый score) и как он станет больше 10 - ваш сервер будет добавлен в пул.

На странице управления серверами есть мониторинг в виде графика и csv-формата, где можно отслеживать стабильность часов и ответы вашего NTP-сервера, в случае его недоступности отправится email о проблеме.

Наблюдать пакеты можно командой tcpdump port 123 - будут видны запросы с различных сетей различных провайдеров, в основном конечно с клиентских устройств (интернет-роутеров)

04:00:50.531801 IP gw.mytimeserver.net.ntp > 82-217-46-231.cable.dynamic.v4.ziggo.nl.59634: NTPv4, Server, length 48

04:00:50.888803 Imytimeserver.netP 51.144.84.29.ntp > gw.mytimeserver.net.ntp: NTPv4, Client, length 48

04:00:50.888998 IP gw.mytimeserver.net.ntp > 51.144.84.29.ntp: NTPv4, Server, length 48

04:00:51.621673 IP 46.11.105.3.54627 > gw.mytimeserver.net.ntp: NTPv4, Client, length 48

04:00:51.621916 IP gw.mytimeserver.net.ntp > 46.11.105.3.54627: NTPv4, Server, length 48

04:00:52.037807 IP 51.136.36.226.ntp > gw.mytimeserver.net.ntp: NTPv4, Client, length 48

04:00:52.052103 IP gw.mytimeserver.net.ntp > 40.68.72.138.ntp: NTPv4, Server, length 48

В связи с этим настоятельно рекомендую провайдерам интернет-услуг установить в своей сети ntp-сервер и включить его в ntp-пул.

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

https://www.ntppool.org/ru/ [1]

https://www.ntp.org/ [8]

https://ru.wikipedia.org/wiki/NTP [2]

Автор: litos

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/360478

Ссылки в тексте:

[1] https://www.ntppool.org/ru/: https://www.ntppool.org/ru/

[2] https://ru.wikipedia.org/wiki/NTP: https://ru.wikipedia.org/wiki/NTP

[3] https://www.ntppool.org/ru/join.html: https://www.ntppool.org/ru/join.html

[4] http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers: http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers

[5] http://support.ntp.org/bin/view/Servers/StratumOneTimeServers: http://support.ntp.org/bin/view/Servers/StratumOneTimeServers

[6] поддерживают: https://community.ntppool.org/t/google-public-ntp/44/7

[7] https://habr.com/ru/post/79461/: https://habr.com/ru/post/79461/

[8] https://www.ntp.org/: http://www.ntp.org/

[9] Источник: https://habr.com/ru/post/536436/?utm_source=habrahabr&utm_medium=rss&utm_campaign=536436