Страница справочника для timesyncd.conf (5) указывает, что установка для NTP является разделенным пробелом списком имен хостов сервера NTP или IP-адресов.
У нас есть два внутренних сервера NTP в нашей сети, обоих на той же подсети (10.10.10 0/24). На сервере Ubuntu 18.04, если я установил NTP на NTP = "10.10.10.100 10.10.10.101", timesyncd не будет синхронизироваться с теми серверами времени. Если я просто установил NTP на одного из них (NTP=10.10.10.100 или NFS=10.10.10.101), время синхронизируется как ожидалось.
Кто-либо еще видит то же поведение? Или действительно ли это - ошибка, которая должна быть (или был), отправленный?
Приложение: Вместо одной строки я пытался использовать несколько "NTP =" строки. Вместо:
NTP="10.10.10.100 10.10.10.101"
Я изменил его на:
NTP=10.10.10.100
NTP=10.10.10.101
После перезапуска systemd-timesyncd состояние теперь показывает время, синхронизируемое с первым сервером времени.
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Active: active (running) since Fri 2018-06-22 14:41:36 MDT; 3s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 2774 (systemd-timesyn)
Status: "Synchronized to time server 10.10.10.100:123 (10.10.10.100)."
Tasks: 2 (limit: 2322)
CGroup: /system.slice/systemd-timesyncd.service
└─2774 /lib/systemd/systemd-timesyncd
Jun 22 14:41:36 bpsubuntu18.sling.com systemd[1]: Starting Network Time Synchronization...
Jun 22 14:41:36 bpsubuntu18.sling.com systemd[1]: Started Network Time Synchronization.
Jun 22 14:41:36 bpsubuntu18.sling.com systemd-timesyncd[2774]: Synchronized to time server 10.10.10.100:123 (10.10.10.100).
Как дополнительный тест я добавил поддельную строку сервера времени перед двумя хорошими:
NTP=10.10.10.99
NTP=10.10.10.100
NTP=10.10.10.101
После другого перезапуска обслуживания и наблюдения порта 123 трафика с помощью tcpdump, я видел, что после отказа получить время от поддельного сервера NTP, timesyncd затем использовал следующий.
Таким образом, действительно ли страница справочника является неправильной? Или разве парсинг не является разделенным пробелом списком ошибка?
Я также хотел бы принести извинения за ввод NFS вместо NTP, когда я сначала отправил. Отвлеченный другой задачей я продолжал работать...
это по замыслу timesyncd. TL; DR способен использовать только один за раз.
Подробности: Если вы внимательно посмотрите на справочную страницу timesyncd, вы увидите, что в разделе о нескольких NTP-серверах говорится:
... пока не будет найдено одно, которое отвечает ...
blockquote>Если вы будете копать глубже, вы обнаружите такие проблемы, как timesyncd: одновременное общение только с одним NTP-сервером и руководство systemd-timesyncd должно объяснить, что оно использует SNTP, а не NTP .
Таким образом, он возьмет первый из списка NTP =, который работает, и, если все там не получится, попробуйте список в FallbackNTP =.
Если вам нужны реальные межсерверные проверки для лучшей синхронизации, вам следует взглянуть на NTPd (< 18.04) / Chrony (> = 18.04), где приведена проблема systemd:
Да, systemd-timesyncd реализует SNTP, а не NTP, поэтому поддержка нескольких серверов не в фокусе. Если вам нужна полная реализация NTP, используйте ntpd или chrony.
BLOCKQUOTE>