Как стать автором
Обновить

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

Время на прочтение5 мин
Количество просмотров37K

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

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

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

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

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

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

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

“В настоящее время большинство серверов получают порядка 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 и http://support.ntp.org/bin/view/Servers/StratumOneTimeServers выберете там сервера для синхронизации

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

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

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

2 сервера - StratumOne

2 сервера - StratumTwo

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

Отмечу, что существуют также сервера (пулы серверов) точного времени принадлежащие крупным корпорациям - такие как time.apple.com / time.facebook.com / time.google.com. Использовать их или нет - сложный вопрос, так как мы используем пул для "интернет-независимости" и свободных операционных систем, то я бы не рекомендовал их использовать, кроме того сервера google не поддерживают передачу 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/

Сервера которые являются эталонными часами (атомными, 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 и добавить сервер - все предельно просто после быстрой регистрации

Сервер работает по 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/

https://www.ntp.org/

https://ru.wikipedia.org/wiki/NTP

Теги:
Хабы:
Всего голосов 21: ↑19 и ↓2+25
Комментарии18

Публикации

Истории

Работа

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань