我们在几个 Linux 机器上的 ntp-client 出现了问题。首先,我们的网络中有三个 ntp 服务器。在我们的大多数机器上同步都很好。从昨天开始,一些 Linux 机器出现了同步问题。这些机器运行的是 Debian 8.7,安装了 ntp 4.2.6.p5+dfsg-7+deb8u2。
它看起来像这样:
% sudo ntpq -pn
remote refid st t when poll reach delay offset jitter
==============================================================================
10.2.1.161 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.2.1.159 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.2.2.233 .INIT. 16 u - 64 0 0.000 0.000 0.000
我理解延迟、偏移和抖动的值为 0,因为层数为 16,所以 ntp 客户端拒绝与服务器同步。
我不明白的是,为什么层数是 16。我和防火墙人员谈过,没有丢包。所以我做了一个 tcpdump,但我看不出任何可以解释这种行为的东西。
客户端包是这样的:
Network Time Protocol (NTP Version 4, client)
Flags: 0xe3, Leap Indicator: unknown (clock unsynchronized), Version number: NTP Version 4, Mode: client
Peer Clock Stratum: unspecified or invalid (0)
Peer Polling Interval: 6 (64 sec)
Peer Clock Precision: 0.000000 sec
Root Delay: 0 seconds
Root Dispersion: 0 seconds
Reference ID: (Initialization)
Reference Timestamp: Jan 1, 1970 00:00:00.000000000 UTC
Origin Timestamp: Jan 1, 1970 00:00:00.000000000 UTC
Receive Timestamp: Jan 1, 1970 00:00:00.000000000 UTC
Transmit Timestamp: Jul 26, 2017 08:20:14.664923929 UTC
服务器包如下:
Network Time Protocol (NTP Version 4, server)
Flags: 0x24, Leap Indicator: no warning, Version number: NTP Version 4, Mode: server
Peer Clock Stratum: secondary reference (3)
Peer Polling Interval: 6 (64 sec)
Peer Clock Precision: 0.000000 sec
Root Delay: 0.0225830078125 seconds
Root Dispersion: 0.0608673095703125 seconds
Reference ID: 213.239.239.166
Reference Timestamp: Jul 26, 2017 08:05:26.414539267 UTC
Origin Timestamp: Jul 26, 2017 08:20:14.664923929 UTC
Receive Timestamp: Jul 26, 2017 08:20:14.664904341 UTC
Transmit Timestamp: Jul 26, 2017 08:20:14.664934357 UTC
系统日志条目也没有显示任何错误消息:
Jul 26 10:55:10 servername systemd[1]: Starting LSB: Start NTP daemon...
Jul 26 10:55:10 servername ntpd[131489]: ntpd [email protected] Fri Jul 22 17:30:51 UTC 2016 (1)
Jul 26 10:55:10 servername ntpd[131490]: proto: precision = 0.101 usec
Jul 26 10:55:10 servername ntpd[131490]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
Jul 26 10:55:10 servername ntp[131479]: Starting NTP server: ntpd.
Jul 26 10:55:10 servername systemd[1]: Started LSB: Start NTP daemon.
Jul 26 10:55:10 servername ntpd[131490]: Listen and drop on 1 v6wildcard :: UDP 123
Jul 26 10:55:10 servername ntpd[131490]: Listen normally on 2 lo 127.0.0.1 UDP 123
Jul 26 10:55:10 servername ntpd[131490]: Listen normally on 3 bond0 10.2.32.121 UDP 123
Jul 26 10:55:10 servername ntpd[131490]: Listen normally on 4 lo ::1 UDP 123
Jul 26 10:55:10 servername ntpd[131490]: Listen normally on 5 bond0 fe80::1618:77ff:fe33:2309 UDP 123
Jul 26 10:55:10 servername ntpd[131490]: peers refreshed
Jul 26 10:55:10 servername ntpd[131490]: Listening on routing socket on fd #22 for interface updates
在命令行上运行 ntpdate 可以正常工作:
% ntpdate -u 10.2.1.161
26 Jul 11:00:05 ntpdate[132651]: adjust time server 10.2.1.161 offset 0.001240 sec
所以也许我看不到树木,看不到森林。无论如何,任何帮助都会非常感激 :)
谢谢你们!
答案1
我找到原因了:)
机器上使用的配置是由一位同事做的,他不再在这里工作了。这里没有人知道 ntp。所以我改用 ntp 包分发的配置文件,并将服务器更改为我们的服务器。当然,在重新启动 ntp 服务后,时间同步就可以正常工作了!
大多数参数都是模拟的,但我们的自定义配置中缺少以下参数:
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
我没有时间阅读这些参数,所以我无法说出任何有关它们的信息。最重要的是,它现在正在工作:D