Наконец, это было так же просто, как:current=$(dirname "$(pwd)")
Виновником, по-видимому, является «корневое расстояние». Это задержка, вызванная всем маршрутом от каждого клиента через локальный сервер NTP, через любые другие серверы NTP, к серверу «уровня 1», который имеет приемник GNSS или атомные часы.
+---------------------+ +---------------------+
+---------+ | Stratum 1 server | 20ms delay | Stratum 2 server |
|GNSS rcvr|---| Root distance: 0ms +--------------+ Root distance: 20ms |
+---------+ | nasa.gov | | 0.pool.ntp.org |
+---------------------+ +----------+----------+
|
| 5040ms delay
|
==LAN=FIREWALL==+================
|
+-----------------------+ +-----------+-----------+
| Clients | 1ms delay | Stratum 3 server |
| Root distance: 5061ms +--------------+ Root distance: 5060ms |
| 10.10.1.0/24 | | 10.10.1.30 |
+-----------------------+ +-----------------------+
Поскольку согласование с сервером уровня 1 менее важно, чем согласование с сервером уровня 3,вы можете увеличить RootDistanceMaxSec=
на каждом клиенте до более удобного значения. 30 секунд может сработать. Значение по умолчанию — 5 с, так что вы можете быть довольно близки к этому числу. Изменить/etc/systemd/timesyncd.conf
:
# See timesyncd.conf(5) for details.
[Time]
NTP=10.10.1.30
#FallbackNTP=
RootDistanceMaxSec=30
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
Это приведет к тому, что клиенты примут 10.10.1.30
в качестве сервера NTP, даже если он может быть далек от сервера уровня 1.