
Мне нужно настроить клиент многоадресной рассылки 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.