Настройка многоадресной рассылки NTPd

Настройка многоадресной рассылки NTPd

Мне нужно настроить клиент многоадресной рассылки ntp. Чтобы проверить, хороша ли моя конфигурация, я пытаюсь настроить сервер многоадресной рассылки NTP.

Моя установка:

  • 2 ВМ Centos 7, обновлены
  • Я использую 2 виртуальные машины в VirtualBox, на обеих я настроил режим Promicius: разрешить все

Мои проблемы:

  • На сервере запись multicast сообщается как stratum 16; имеет ли значение stratum для multicast? Отклонит ли клиент это, поскольку stratum низкий? Как мне принудительно установить более низкий stratum для сервера multicast?
  • Мой клиент, похоже, невидетьмой сервер, даже если мои файлы ключей идентичны и что я доверяю ключу 1 с обеих сторон.

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

ntpq -n -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.165.10.2    192.165.10.109   4 u   14   64  377    0.454    2.267   1.479
 224.0.1.1       .MCST.          16 u    -   64    0    0.000    0.000   0.000

И мой клиент по-прежнему не может найти сервер по адресу 224.0.1.1.

Я проверил на серверной виртуальной машине, моей хостовой машине и клиентской виртуальной машине, все они видят многоадресные сообщения сервера (для виртуальной машины: с помощью tcpdump, для хоста: с помощью wireshark).

На клиенте использование ntpq -n -pвернет следующее:

No association ID's returned

На клиенте в моем конфигурационном файле все инструкции по ограничению прокомментированы, и у меня есть только эти (и еще несколько, например, driftfile и т. п.):

multicastclient 224.0.1.1
keys /etc/ntp/keys
trustedkey 1

Журнал клиента ntpd выдает мне следующее:

systemd[1]: Starting Network Time Service...
ntpd[11076]: ntpd [email protected] Tue Jun 23 15:38:18 UTC 2020 (1)
systemd[1]: Started Network Time Service.
ntpd[11077]: proto: precision = 0.052 usec
ntpd[11077]: 0.0.0.0 c01d 0d kern kernel time sync enabled
ntpd[11077]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
ntpd[11077]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
ntpd[11077]: Listen and drop on 1 v6wildcard :: UDP 123
ntpd[11077]: Listen normally on 2 lo 127.0.0.1 UDP 123
ntpd[11077]: Listen normally on 3 enp0s3 192.165.10.107 UDP 123
ntpd[11077]: Listen normally on 4 lo ::1 UDP 123
ntpd[11077]: Listen normally on 5 enp0s3 fe80::a00:27ff:fec1:cc1 UDP 123
ntpd[11077]: Listening on routing socket on fd #22 for interface updates
ntpd[11077]: Listen normally on 6 multicast 224.0.1.1 UDP 123
ntpd[11077]: Joined 224.0.1.1 socket to multicast group 224.0.1.1
ntpd[11077]: 0.0.0.0 c016 06 restart
ntpd[11077]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
ntpd[11077]: 0.0.0.0 c011 01 freq_not_set
ntpd[11077]: io_setbclient: Opened broadcast client on interface #3 enp0s3

решение1

Stratum 16 указывает, что сервер NTP не считает, что у него есть допустимое время, поскольку у него нет соединения с каким-либо настроенным источником времени. Чтобы заставить ntpdсистему сервера доверять локальным часам системы как источнику времени, есть два варианта:

  • Современный метод заключается в указании ключевых слов tos orphanи tos orphanwaitв ntp.confфайле на сервере многоадресной рассылки.
# If orphaned, serve others with this stratum.
tos orphan 8
# Wait for this many seconds before starting to serve others (default is 300 s)
tos orphanwait 1
  • Старый способ — указать ntpdиспользовать локальные часы в качестве поддельного источника времени на сервере многоадресной рассылки. Эта конфигурацияне следует использовать вместе с реальными источниками времени NTP, так как это может привести ntpdк тому, что вместо реальных источников NTP будут приняты во внимание локальные часы, если только не настроено достаточное количество внешних источников, которые достаточно хорошо синхронизированы друг с другом, чтобы перевесить псевдоисточник 127.127.1.0 (который всегда идеально согласуется с локальными часами, поэтому имеет тенденцию получать чрезмерное предпочтение от алгоритма ntpdвыбора).
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 8

IP-адреса, начинающиеся с , 127.127.*являются специальными для ntpd: они относятся к различным драйверам опорных тактовых импульсов, встроенным в ntpd.

Оба этих метода заставят систему обслуживать время UTC на основе локальных несинхронизированных системных часов по NTP с использованием уровня 8, поэтому любые системы с достаточно прямым подключением к реальному источнику времени NTP (= уровень 7 или ниже) должны отдавать предпочтение этому методу.

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

Связанный контент