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

  • Tutorial

Большинство дистрибутивов операционных систем на базе 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

Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 18

    +1
    На Сentos (и скорее всего на других RHEL-based дистрибутивах) при установке ОС, если сначала настроить сеть (с доступом в интернет), а потом настроить таймзону, то будет галочка «синхронизировать время по сети». При этом ставится демон chronyd. Есть небольшие отличия с ntpd (https://chrony.tuxfamily.org/comparison.html), в основном, положительные.
      +2
      Верно только для CentOS 8.
      Вообще CentOS для меня умер после того как они изменили срок поддержки и переходят на CentOS Stream.
      Остаётся Ubuntu Server.
        0
        Есть Oracle Linux — бесплатный билд редхата, заметных отличией от CentOS нет. Недавно успешно перенесли на него кластер.

        И почему сразу Убунту, почему не Дебиан?
          0
          Лично я предпочитаю Debian, даже при наличии Centos. Но если говорить о компаниях, то лучше брать что-то имеющее техподдержку от разработчика — Oracle Linux, Centos или Ubuntu — всё таки Canonical также продаёт поддержку.
          0
          Да вроде на 7 версии та же штука — сначала настроить сеть, потом время — и автоматом поставится chronyd.
        +3
        Эм, я правильно понимаю вы синхронизируетесь с серверами из списка *.ntp.org и потом добавляетесь в pool.ntp.org?

        Переводя с русского на русский, синхронизируетесь из пула и входите в пул… масло-масленное. Причем, рекомендуете синхронизироваться с стратум 1 и 2, т.е. в худшем случае ваш сервер будет стратум 3.

        Вступать в пул имеет смысл если у вас есть GPS\Glonass\Galileo приемник типа такого, или такого, или что-нибудь более профессиональное
          0
          Я не синхронизируюсь с серверами из пула и то что это не следует делать указал выше, список серверов взял из их документации и его как раз в статье по настройке рекомендую использовать www.ntppool.org/ru/join.html «Сервер, входящий в пул, не должен использовать для синхронизации pool.ntp.org. Рекомендуем вручную выбирать сервера для синхронизации из этого support.ntp.org/bin/view/Servers/StratumTwoTimeServers списка»
            0
            Что-то они мне напоминают
            Пробовали FreeBSD+NTPd+Garmin, работает вполне стабильно. Дальше взяли вот такого зверя. Это обычный Fujitsu server с PCI-e платой, внутри Linux с тем же NTPd.
              0
              Да много их всяких… далее вопрос лишь денег и необходимости сертификации. В домашних условиях это все даром не надо, а вот в каком-нибудь АСУ ТП требования к рассинхрону времени между устройствами более 10 мс. могут привести, если не к аварии, то к весьма значительным последствиям.
            +2

            Из этой статьи выпал важнейший кусок, описывающий а зачем это, собственно, надо Вам и/или провайдерам интернета.


            Особенно, если нету своего источника точного времени, который можно расшарить таким образом для общества

              0
              NTP уже не так актуально, в Centos, начиная с 7-ки, рекомендуют chrony. В Ubunru уже давно systemd-timesyncd. Работоспособность можно проверить через timedatectl timesync-status или timedatectl show-timesync. Ставить вместо этого ntp я бы не стал…

              И не очень понятно, для чего менять предустановленные серверы на «любительские». А если они отвалятся? Что со стабильностью? Постоянно следить за доступностью чужих серверов и ещё мониторить их? Лично я считаю, что нужно оставить «стандартные» серверы поставщика дистрибутива.
                0

                Предустановленные сервера времени в дистрибутиве находятся в домене pool.ntp.org и являются, как вы выразились, любительскими
                Даже если зона вида centos.pool.ntp.org или ubuntu.pool.ntp.org — вендор (публично известный дистрибутив, крупный производитель сетевого оборудования) может получить свою доменную зону для статистики по своим устройствам
                Менять сервера стоит в случае когда вы сами хотите вступить в пул NTP-серверов и тем самым используя бесплатно ресурсы для своих серверов/клиентов что-то отдавать взамен. Ведь пул полностью бесплатен и живёт только благодаря волонтёрам которые отдают часть своих ресурсов. Не будет их — не будет и сервиса.

                  +1
                  NTP уже не так актуально, в Centos, начиная с 7-ки, рекомендуют chrony. В Ubunru уже давно systemd-timesyncd

                  А они, простите, через астральную связь с пространственно-временным континуумом время синхронизируют?
                  Под капотом там все тот же ntp/sntp


                  Лично я считаю, что нужно оставить «стандартные» серверы поставщика дистрибутива.

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

                  0
                  Ожидал что речь пойдет о stratum0 и stratum1.
                  Жаль.
                    +1
                    Чуточку реальности:
                    — понятие «кластер» не корректно — это пул на уровне DNS.
                    — если железка непосредственно торчит в Инет — нужно «жосткий» FW
                    — трафик после года использования составляет in/out 108/247 Kb/s (ИМХО)
                    — после добавления NTP сервера в пул, некий сервес пула будет контролировать доступность сервера и помещать его адрес в пул только при достижении некого уровня «качественности» и удалять при снижении «качественности».
                    -для домашнего хозяйтва можно пользоваться 3.ru.pool.ntp.org
                      0

                      По-моему, защита от некорректных клиентов должна быть реализована в самом сервере. Ему лучше знать, какой клиент — хороший, а какой — плохой. В ntpd, как я понимаю, есть команда restrict с опцией limited, так что от DDoS'а, теоретически, должен остаться только повышенный расход сетевых ресурсов. Да и кому надо DDoS'ить NTP сервер? У меня даже Tor атаковали всего несколько раз и то сервер сам справлялся (а после реакции разработчиков стал справляться ещё лучше).

                        0
                        Я дико извиняюсь, но то, что Вы написали выше — чушь с точки зрения админа. Значит Вы не админ. Тогда к чему теоретизировать в незнакомой Вам области? Или Вы пишите комментарий ради комментария?
                          0

                          Хотелось бы узнать, что именно неверно и почему.

                    Only users with full accounts can post comments. Log in, please.