我有一台 Linux 机器,设置了两个 ntp 服务器进行同步。在强制同步之前,这台机器严重不同步(61 秒)。以下输出是同步 1 小时后的输出。检查 ntpq 时,
ntpq> peers
remote refid st t when poll reach delay offset jitter
==============================================================================
x192.168.[redacted] .MDM. 1 u 113 256 377 0.513 13.120 1.843
x192.168.[redacted] .MDM. 1 u 115 128 377 2.689 0.618 1.230
两者都设置为 falseticker!
ntpq> assoc
ind assID status conf reach auth condition last_event cnt
===========================================================
1 13191 91d4 yes yes none falsetick reachable 13
2 13192 91d4 yes yes none falsetick reachable 13
是什么导致时间选择算法将两者都设置为 false,我该如何解决这个问题?
更新!
我重新运行了上述命令并获得了新的状态:
ntpq> assoc
ind assID status conf reach auth condition last_event cnt
===========================================================
1 13191 91d4 yes yes none falsetick reachable 13
2 13192 96d4 yes yes none sys.peer reachable 13
ntpq> pe
remote refid st t when poll reach delay offset jitter
==============================================================================
x192.168.[red] .MDM. 1 u 241 256 377 0.513 13.120 1.396
*192.168.[red] .MDM. 1 u 114 256 377 2.671 0.567 0.710
答案1
你的两个上游服务器都声称自己是 stratum-1 服务器- 即能够使用 NTP 的最高级别的时间源,可直接连接绝对时间源(例如原子钟或 GPS 接收器) -但他们的时钟彼此不同(也就是说,您与每台服务器的偏移量(当您收到其信号时,您的时钟与其时钟之间的距离)远远大于观察到的传播延迟(从每台服务器获取时间信号所需的时间))。
面对两台都声称自己是权威的但却显示不同时间的服务器,ntpd
很合理地说,它无法在它们之间做出选择,并且会将它们两台都视为骗子。
现在看起来,在任其发展ntpd
一个小时后,它已经决定更喜欢其中一个,并同意与其同步。真不错。
这里的基本问题是,上游之间说的话不可能是真的。如果您只想要一个大概的时间,请在您的 中仅列出其中一个ntp.conf
,这样您就可以更快地同步到该时间。如果您想要一个确切的时间,请联系服务器的管理员,并询问他们为什么他们的时钟不同,以及他们各自的时间源在哪里。
编辑:如果让我猜的话,我会说两个都他们都错了——我猜他们都配置为将内部时钟或类似不够准确的时间源视为 0 层。他们可能还配置为从互联网服务器获取时间,但由于他们被告知他们有一个绝对准确的时钟,他们更喜欢那个时间,并因此将其作为 1 层进行宣传。
答案2
有一块手表的人知道现在几点。有两块手表的人永远都不确定。
您需要添加另一台服务器,以便 ntpd 能够打破两个时钟之间的僵局。在所有可能的服务器关联数量中,两个时钟是最糟糕的设置。第三台服务器是第 2 层还是第 3 层并不重要,您只需要给 ntpd 一个机会来辨别谁是假时钟。
附言
您不需要编辑您的 RFC1918 地址。事实上,当您像这样编辑它们时,回答起来会更困难。如果您切换编辑的八位字节会更好:xxx.xxx.1.1 和 xxx.xxx.1.2。至少这样可以很容易地引用其中一个。但最重要的是,真的没有必要编辑 1918 地址。