我有一系列内部 NTP 服务器;我网络上的每台其他机器都配置为与这些服务器通信,如下所示:
# ntp.conf for client machines
server 0.ntp.internal iburst
server 1.ntp.internal iburst
server 2.ntp.internal iburst
同时,这些内部 NTP 服务器配置为与 Amazon 的 NTP 服务器通信,如下所示:
# ntp.conf for the internal NTP servers
server 0.amazon.pool.ntp.org iburst
server 1.amazon.pool.ntp.org iburst
server 2.amazon.pool.ntp.org iburst
server 3.amazon.pool.ntp.org iburst
我发现的问题是,我的 NTP 服务器会选择不同的 AWS NTP 服务器作为其权威源,而我的客户端机器也会选择不同的内部 NTP 服务器作为其权威源,从而导致时钟随时间发生一些漂移。基本上,我希望内部 NTP 服务器尽可能彼此一致,这样,通过代理,我的客户端机器就不会彼此不一致。
我一直在阅读有关 NTP 对等的文章,但我收到的信息非常混乱,不知道它到底能做什么,以及它是否有助于减少时钟漂移问题。我最常看到的是,将服务器设置为对等服务器将允许ntpd
将对等服务器视为潜在的时间源,但这不会使两台服务器尝试将它们的时钟收敛在一起;然而,我看到的消息却恰恰相反。我还看到消息说,如果将服务器对等在一起,则不应让它们都拥有相同的server
s 列表,这对我来说毫无意义。我不知道该怎么想。
那么... 将此部分添加到我的内部 NTP 服务器是否ntp.conf
有助于使它们的时钟彼此更接近?
# adding to ntp.conf for 0.ntp.internal
peer 1.ntp.internal
peer 2.ntp.internal
# adding to ntp.conf for 1.ntp.internal
peer 0.ntp.internal
peer 2.ntp.internal
# adding to ntp.conf for 2.ntp.internal
peer 1.ntp.internal
peer 2.ntp.internal
顺便说一句,我无法对等客户端机器,因为它们是瞬态的,所以即使对等是解决方案,也只能通过我的内部 NTP 服务器来完成。
答案1
通常,您需要奇数个服务器和/或对等点。NTP 服务器选择算法很复杂,我还没有找到关于它的好文档。
需要考虑的一些因素包括:
- 服务器的层级。 优先使用较低的层级。
- 服务器的稳定性。优先选择数据更稳定的服务器。
- 服务器的时间与其他服务器的一致程度。
以下是我在配置 NTP 时使用的一些规则:
- 将所有内部服务器对等连接,以便它们彼此了解,并可以选择彼此作为服务器。根据我的经验,对等服务器往往包含在选定的服务器池中。
- 在每个内部服务器上使用一个或三个外部服务器。
- 如果使用内部时钟,请将层数调整为 8 或更高。对每个服务器使用不同的调整值。
- (可选)如果有多个同样可靠的服务器可用,则优先选择一台服务器。
如果时钟出现偏差,则说明您的配置存在问题。根据我的经验,在虚拟服务器上运行 NTP 可能会导致不稳定。
将客户端与服务器对等不太可能奏效。客户端的层通常比服务器高一级,因此权重较小。