使用 ntp 孤立模式同步两台独立计算机的时间

使用 ntp 孤立模式同步两台独立计算机的时间

我有两台基于 arm 的 Linux(ubuntu 14.04)计算机,一台 Jetson TK1 和一台 TX1,它们将在多旋翼飞行器上飞行,因此没有互联网连接(它们在机上联网)。它们也没有内置 RTC,但我为 Jetston TK1 添加了外部 RTC。TK1 的时间在启动时从此 RTC 设置,没有问题(使用sudo hwclock -s -f /dev/rtc0rc.local 中的)。我正在尝试使用 ntp 让 TX1 同步到 TK1 的时间。

TK1 的 ntp.conf 文件包含:

driftfile /var/lib/ntp/ntp.drift

server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

tos orphan 5

TX'1s ntp.conf 文件包含:

driftfile /var/lib/ntp/ntp.drift

# Specify one or more NTP servers.

server 10.20.3.149 iburst prefer

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

其中 10.20.3.149 是 TK-1 的 IP 地址。如果我运行,ntpq -p我会得到 ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 192.168.0.10    .INIT.          16 -    -  512    0    0.000    0.000   0.000
 192.168.3.149   .INIT.          16 -    -  512    0    0.000    0.000   0.000

如果我跑,ntpdate -dv 10.20.3.149我会

12 Aug 12:36:23 ntpdate[2197]: ntpdate [email protected] Thu Feb 11 18:30:14 UTC 2016 (1)
Looking for host 10.20.3.149 and service ntp
host found : TK-Astro
transmit(10.20.3.149)
receive(10.20.3.149)
transmit(10.20.3.149)
receive(10.20.3.149)
transmit(10.20.3.149)
receive(10.20.3.149)
transmit(10.20.3.149)
receive(10.20.3.149)
10.20.3.149: Server dropped: Server has gone too long without sync
server 10.20.3.149, port 123
stratum 5, precision -22, leap 00, trust 000
refid [10.20.3.149], delay 0.02838, dispersion 0.00037
transmitted 4, in filter 4
reference time:    00000000.00000000  Sun, Dec 31 1899 19:00:00.000
originate timestamp: db58798a.31270a17  Fri, Aug 12 2016 12:36:26.192
transmit timestamp:  db58798e.185b391c  Fri, Aug 12 2016 12:36:30.095
filter delay:  0.02843  0.02838  0.02869  0.02863 
         0.00000  0.00000  0.00000  0.00000 
filter offset: -3.90380 -3.90424 -3.90470 -3.90468
         0.000000 0.000000 0.000000 0.000000
delay 0.02838, dispersion 0.00037
offset -3.904242

12 Aug 12:36:30 ntpdate[2197]: no server suitable for synchronization found

我发现参考时间差得很远(即使系统时间是正确的)——这就是触发消息的原因吗Server has gone too long without a sync?只要两个板同步在一起,我不在乎时间是否 100% 准确。有没有办法强制两个板同步,而不管上次服务器同步的时间?

答案1

除了 tos 孤儿线之外,孤儿模式组的所有成员都必须配置为网格(即它们必须都是彼此的客户端/对等体)。可以使用任何 NTP 关联模式来设置此网格。

TK1 配置缺少 TX1 的配置。除非您截断了配置,否则您还需要适当的“限制”线路以允许彼此连接。

restrict default kod nomodify notrap nopeer noquery
restrict 10.20.3.0 mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1

答案2

两台服务器必须以对等方式连接。在每台服务器上添加一行,peer 192.0.2.16使用另一台服务器的 IP 地址。

我认为您需要设置其中一台服务器来提供时钟源。我总是将一台服务器配置为网络连接失败时的备用服务器。如果您在两台服务器上都启用了本地时钟,请将层设置为不同的值。8 到 12 之间的任何值都应该不错。

# Fallback to local clock if all else fails
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10

孤立时钟的推荐设置比最坏情况时钟大 2,而且看起来 6 是最低有效设置。如果您可以使用上述设置同步到 RTC,我会将孤立时钟设置为 12。

如果您在两台服务器上都启用了本地时钟,请将层设置为不同的值。8 到 12 之间的任何值都应是好的。由于您只有一个 RTC,因此这不适用。

相关内容