Как настроить NTP для использования в проекте пула NTP на Ubuntu 16.04

Вступление

Точное сохранение времени имеет решающее значение практически для любого сервиса или программного обеспечения. Электронная почта, регистраторы, системы событий и планировщики, механизмы аутентификации пользователей и службы, работающие на распределенных платформах, нуждаются в точном времени для записи событий в хронологическом порядке. Эти службы используют протокол сетевого времени или NTP для синхронизации системных часов с надежным внешним источником. Этот источник может быть атомными часами, GPS-приемником или другим сервером времени, который уже использует NTP.

Это проект проекта NTP Pool Project . Это огромный всемирный кластер серверов времени, который обеспечивает легкий доступ к известному «хорошему времени» для десятков миллионов клиентов по всему миру. Это сервер времени по умолчанию для Ubuntu и большинства других основных дистрибутивов Linux, а также множество сетевых устройств и программных приложений.

В этом руководстве вы настроите NTP на своем сервере и настроите его как часть проекта NTP Pool Project, поэтому он предоставляет точное время другим пользователям проекта NTP Pool. Предоставление ваших запасных циклов процессора и неиспользуемой пропускной способности — отличный способ вернуть что-то в сообщество.

Требуемая полоса пропускания относительно низкая и может быть скорректирована в зависимости от суммы, которую вы можете предоставить, и где находится ваш сервер. Каждый клиент будет отправлять только пару UDP-пакетов каждые 20 минут, поэтому большинство серверов получают только около десятка NTP-пакетов в секунду, причем шипы пару раз в день до ста пакетов в секунду. Это приводит к использованию полосы пропускания 10-15 Кбит / с с пиками 50-120 Кбит / с.

Перед присоединением к проекту NTP Pool необходимо выполнить три основных требования:

  1. Ваш сервер должен иметь статический IP-адрес.
  2. Ваш сервер должен иметь постоянное и стабильное интернет-соединение.
  3. Ваш IP-адрес больше не изменяется или изменяется редко (раз в год или меньше).

Для большинства облачных серверов первые два требования обычно выполняются автоматически. Третье требование подчеркивает, что присоединение к проекту пула NTP представляет собой долгосрочное обязательство. Конечно, если ваши обстоятельства меняются, все равно, чтобы вывести сервер из пула, но это займет много времени (в основном недели, но иногда месяцы или даже годы), прежде чем трафик полностью исчезнет.

Предпосылки

Для завершения этого урока вам понадобятся:

  • Один сервер Ubuntu 16.04 с настроенной сетью IPv6.
  • Пользователь sudo non-root и брандмауэр.

Шаг 1 — Установка NTP

По умолчанию NTP-пакет не установлен, поэтому для его установки вы будете использовать диспетчер пакетов. Сначала обновите свои пакеты:

  • sudo apt-get update

Затем установите NTP:

  • sudo apt-get install ntp

Если вы настроили брандмауэр, как указано в предварительных требованиях, вы должны разрешить трафик UDP на порт 123для связи с пулом NTP:

  • sudo ufw allow 123/udp

Подробнее о UFW см. В разделе Как настроить брандмауэр с UFW на Ubuntu .

Теперь установлен NTP, но он настроен на использование серверов времени пула по умолчанию NTP. Вместо этого выберете определенные серверы времени.

Шаг 2 — Выбор подходящего сервера восходящего потока

Проект NTP Pool спрашивает операторов, которые хотят присоединиться к пулу, чтобы выбрать хорошие серверы локального сетевого времени, а не использовать pool.ntp.orgсерверы по умолчанию . Это гарантирует, что проект NTP Pool остается надежным, быстрым и здоровым. При выборе источника времени вам потребуется стабильное сетевое соединение без потери пакетов и как можно меньше переходов между серверами.

Многоуровневый и иерархический протокол NTP разделяет стороны, вовлеченные в первичные серверы, вторичные серверы и клиенты. Первичные серверы называются Stratum 1 и подключаются непосредственно к источнику времени, который называется Stratum 0 . Этот источник может быть атомными часами, GPS-приемником или радионавигационной системой. Вторичные серверы в цепочке называются Stratum 2 , Stratum 3 и т. Д.

Каждый сервер также является клиентом. Клиент Stratum 2 получает время от сервера Upstream Stratum 1 и предоставляет время для серверов Stratum 3 или других клиентов. Чтобы члены проекта NTP Pool Project работали правильно, демону NTP необходимо настроить не менее трех серверов. Проект рекомендует не менее четырех и не более семи источников.

В проекте NTP Pool представлен список общедоступных серверов Stratum 1 и Startum 2. Списки обозначают серверы времени NTP, доступные для публичного доступа в соответствии с установленными ограничениями. Вы найдете три типа:

  • OpenAccess : сервер этого времени открыт для любого клиента, соответствующего рекомендациям использования пула NTP .
  • RestrictedAccess : на этот раз сервер имеет некоторые ограничения доступа в дополнение к рекомендациям по использованию пула NTP.
  • ClosedAccess : на этот раз сервер закрыт или требует предварительной настройки .

Предупреждение . Не используйте серверы, которые не указаны как OpenAccess, если вы не получили одобрение для этого.

Посетите список серверов Stratum 1 Time Servers . Вы увидите следующий список:

Серверы Stratum 1

Сортируйте список по столбцу кода ISO и найдите один или два сервера, которые географически близки к центру обработки данных вашего сервера. Когда в столбце политики доступа сервера указано OpenAccess , вы можете использовать его без проблем. Если он говорит «RestrictedAccess», нажмите, чтобы открыть запись и прочитать инструкции, указанные в поле AccessDetails . Часто вы обнаружите, что для NotificationMessage установлено значение Да , что означает, что вам нужно создать неформальное электронное письмо, адресованное адресу, указанному в ServerContact , сообщая оператору сервера о своем желании использовать этот сервер времени в качестве источника времени для вашего пула NTP Участник проекта.

После того, как вы определили серверы, которые хотите использовать, щелкните ссылку для каждого сервера в столбце ISO и скопируйте его имя хоста или IP-адрес. Эти адреса вы будете использовать на шаге 3.

Затем выберите три или четыре сервера из списка Stratum 2 , следуя одному и тому же процессу.

После того, как вы выбрали серверы времени, пришло время настроить ваш клиент NTP для их использования.

Шаг 3 — Настройка NTP для объединения пула

Чтобы использовать ваш сервер с пулом NTP и настроить новые серверы времени, вам нужно внести некоторые изменения в конфигурацию вашего NTP-демона. Для этого отредактируйте /etc/ntp.confфайл:

  • sudo nano /etc/ntp.conf

Во-первых, убедитесь, что файл driftfile настроен. В файле drift хранится смещение частоты между системными часами, работающими на его номинальной частоте, и частота, необходимая для синхронизации с правильным временем. Это помогает достичь стабильного и точного времени. Вы должны найти это в верхней части конфигурационного файла по умолчанию:

/etc/ntp.conf
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift
...

Затем удалите записи источника по умолчанию из конфигурации. Вы ищете все строки, которые имеют шаблон pool [0-3].ubuntu.pool.ntp.org iburstили pool ntp.ubuntu.com. Если вы используете конфигурацию по умолчанию, удалите выделенные строки:

/etc/ntp.conf

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst

# Use Ubuntu's ntp server as a fallback.
pool ntp.ubuntu.com

Замените линии, которые вы удалили, на выбранные вручную серверы, которые вы выбрали на предыдущем шаге, используя serverключевое слово вместо poolключевого слова.

/etc/ntp.conf
...
server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst
...

Мы используем iburstопцию для каждого сервера в соответствии с рекомендациями пула NTP. Таким образом, если сервер недоступен, он отправит пакет из восьми пакетов вместо обычного пакета. Использование burstопции в проекте пула NTP считается злоупотреблением, поскольку он будет отправлять эти восемь пакетов каждый интервал опроса, тогда как iburstотправляет восемь пакетов только в первый раз.

Затем убедитесь, что настройка по умолчанию не позволяет отвечать на запросы управления. Если вы этого не сделаете, ваш сервер может быть использован в атаках отражения NTP или может быть уязвимым для запросов ntpqи ntpdcпопыток изменения состояния сервера. Убедитесь, что noqueryопция добавлена ​​к restrictстрокам по умолчанию :

/etc/ntp.conf
...
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

Дополнительную информацию о других параметрах вы можете найти в официальной документации .

Теперь ваш файл конфигурации демона NTP должен выглядеть следующим образом, хотя в вашем файле могут быть дополнительные комментарии, которые можно смело игнорировать:

/etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift

server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

Сохраните файл и выйдите из редактора.

Теперь перезапустите службу NTP и позвольте вашему серверу времени синхронизировать свои часы с восходящими серверами.

  • sudo systemctl restart ntp.service

Через несколько минут проверьте работоспособность вашего сервера времени с помощью ntpqкоманды:

  • ntpq -pРезультат должен выглядеть примерно так:

Output
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 mizbeaver.udel. .INIT.          16 u    -   64    0    0.000    0.000   0.000
 montpelier.ilan .GPS.            1 u   25   64    7   55.190    2.121 130.492
+nist1-lnk.binar .ACTS.           1 u   28   64    7   52.728   23.860   3.247
*ntp.okstate.edu .GPS.            1 u   31   64    7   19.708   -8.344   6.853
+ntp.colby.edu   .GPS.            1 u   34   64    7   51.518   -5.914   6.669

Удаленный столбец сообщает вам имя хоста серверов демона NTP используют, и RefID колонок говорит вам источник сервера используют. Поэтому для серверов Stratum 1 поле refid должно показывать GPS , PPS , ACTS или PTB , а серверы Stratum 2 и выше будут показывать IP-адрес восходящего сервера. Й столбец показывает прослойку, и задержки , смещение и джиттерарассказать вам о качестве источника времени. Более низкие значения лучше для этих трех полей.

Ваш сервер времени теперь может обслуживать время для публики. Вы можете проверить это, позвонив ntpdateс другого хоста:

  • ntpdate -q your_server_ip

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

Output
server your_server_ip, stratum 2, offset 0.001172, delay 0.16428
 2 Mar 23:06:44 ntpdate[18427]: adjust time server your_server_ip offset 0.001172 sec

Теперь вы готовы зарегистрировать свой NTP-сервер в проекте NTP Pool Project, чтобы другие могли его использовать.

Шаг 4 — Добавление сервера в пул NTP

Чтобы добавить сервер, чтобы другие могли его использовать, зайдите на сайт manage.ntppool.orgи зарегистрируйтесь для учетной записи. Вы получите электронное письмо от NTP Pool help@ntppool.org с просьбой подтвердить свою учетную запись. Подтвердите свою учетную запись, выполнив инструкции по электронной почте, а затем войдите в систему manage.ntppool.org .

После входа в систему вы увидите простой интерфейс для добавления серверов:

Добавить сервер

Введите IP-адрес своего сервера и нажмите « Отправить» .

Следующий экран попросит вас проверить, что он идентифицировал регион вашего сервера. Если он показывает ваш сервер в другом регионе, чем вы ожидаете, используйте поле « Комментарий»,чтобы сообщить им.

Экран проверки

Если вы счастливы, подтвердите ввод, нажав « Да», это мой сервер, добавьте его!

Ваш сервер теперь является частью проекта NTP Pool. Посетите, чтобы просмотреть информацию о системе мониторинга NTP Pool, собранной о вашем сервере. Он проверяет ваш сервер несколько раз в час и отображает данные смещения, не считая оценки вашей системы. Пока ваш сервер сохраняет хорошее время и доступен, счет будет расти до тех пор, пока он не достигнет 20 очков. В пуле используются только серверы со счетом более 10.http://www.pool.ntp.org/scores/your_server_ip

Устранение неполадок с подключением

Если у вас возникли проблемы с синхронизацией вашего сервера, у вас может быть пакетный брандмауэр, в котором вы удаляете исходящие пакеты на порт 123. Посмотрите, как настроить брандмауэр с UFW на Ubuntu, чтобы узнать, как проверить состояние брандмауэра.

Если станция мониторинга проекта NTP Pool не может дойти до вашего NTP-сервера, и ваш счет сервера снизится, или вы не сможете использовать ваш сервер для синхронизации некоторых других часов, возможно, у вас есть пакетный брандмауэр, отбрасывающий входящий трафик на порт 123, Проверьте состояние брандмауэра.

Если вы уверены, что у вас нет брандмауэра на месте или вы открыли порт 123для входящего и исходящего трафика, поставщик вашего сервера или другой поставщик транзита могут поместить ваши пакеты на этом пути. Если у вас нет знаний для решения этих проблем самостоятельно, лучше обратиться к сообществу и обратиться за помощью. Форум NTP Pool Projects является хорошим местом для начала. Вы также можете присоединиться к списку рассылки или отправить emaill в оператор NTP Pool Project. Просто убедитесь, что вы можете показать все шаги, которые вы уже пытались решить проблему, прежде чем обращаться за помощью.

Заключение

В этом уроке вы успешно настроили свой собственный сервер времени и сделали его участником проекта NTP Pool, отбывая время для сообщества. Поддерживать связь с сообществом по поддержанию времени. присоединиться к форуму NTP Pool Projects или списку рассылки . Обязательно следите за оценкой своего сервера и делайте необходимые корректировки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *