正确配置对称主动 NTP?

正确配置对称主动 NTP?

我正在尝试将两个 NTP 服务器配置为彼此对等,但我不知道如何判断它是否正常工作,或者我的 NTP 配置是否正确。我在下面给出了 NTP 服务器配置方式的简化视图。

Server A : 
  ntp.conf : 
    restrict default kod nomodify notrap noquery
    peer Server B

Server B :
  ntp.conf : 
    restrict default kod nomodify notrap noquery
    peer Server A

关于此设置我有两个问题:

编辑:添加了对问题 1 的澄清

  1. ntp.conf使用我提出的简化方案,两个 NTP 服务器是否会通过尝试更正时间来充当彼此的对等方?我正在寻找 ntp 对等点的最简单的设置,但我不确定我是否正确配置了它。
  2. 如何确认我的 NTP 对等配置正在运行?

我问上述问题的原因是因为我有一个替代设置,唯一的变化是我已将设置重新添加nopeer到该restrict节中,并且在这两种情况下都会返回以下输出:

Server A:
  ntpdc -l
    sym_active : Server B

Server B:
  ntpdc -l
    sym_active : Server A

这毫无意义,因为该nopeer指令不应该使我能够将两台服务器连接在一起。

注意:这是在 CentOS 6 上运行的

编辑:实际的 ntp.conf 文件和 ntpq -p 按要求。我不确定这些会有多大用处:

Server A:
  driftfile /var/lib/ntp/drift

  restrict default kod nomodify notrap noquery
  restrict -6 default kod nomodify notrap noquery


  restrict 127.0.0.1 
  restrict -6 ::1 

  peer 192.168.122.3

Server B:
  driftfile /var/lib/ntp/drift

  restrict default kod nomodify notrap noquery
  restrict -6 default kod nomodify notrap noquery

  restrict 127.0.0.1
  restrict -6 ::1

  peer 192.168.122.2

对于每台服务器,超过 5 分钟(超过轮询间隔)后 ntpq -p 的输出如下。

Server A:
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 secure.jzhu.loc .INIT.          16 u   55   64    0    0.000    0.000   0.000

Server B:
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 masterdns.jzhu. .INIT.          16 u   33   64    0    0.000    0.000   0.000

注意:无论有没有 nopeer 指令,到达范围始终保持在 0。尽管这更有可能是因为它们都是 16 层服务器。注意:执行此测试时运行了 iptables -F,并且链 INPUT 的默认策略是 ACCEPT。

答案1

不,这行不通。 NTP 需要有效的时间源。不同步的主机不是有效的源,因此两个不同步的主机不能彼此有效。事实上,NTP 的理念是分配“正确”的时间,而不是试图保持一组机器彼此同步。

如果您绝对无法获得真实时间的来源,您可以对 NTP 撒谎并告诉它其中一台机器的时钟应该可信。选择一台服务器作为“正确”的服务器并设置一个当地的时钟上。该时钟将成为该服务器 NTP 的源,其他服务器将与其同步。

如果您希望使用服务器 A 的时钟,则在 ntp.conf 中应包含以下内容:

server 127.127.1.1             # local clock trusted
fudge  127.127.1.1 stratum 10  # Real clocks should be preferred

我们告诉服务器使用时钟并假装它是 10 层时钟。这意味着服务器 A 随后应同步并成为 11 层服务器。然后你可以将 B 指向它,它就会同步。

服务器B的ntp.conf

server A

就是这样。运行ntpq -p以查看其同步。

相关内容