NTP 多播配置

NTP 多播配置

我正在尝试在几台计算机之间设置 NTP 多播。现在,我从一台我既无法访问也无法了解的计算机(我们称之为 A)获取 NTP 多播数据包,该计算机充当第 4 层 NTP 多播服务器,我正在尝试让几台计算机的时间与其同步。

我尝试同步的计算机(我们称之为 B)运行的是 CentOS6.4,并使用 ntpd 版本 4.2.4p8。B 可以接收来自 A 的多播数据包,但无法访问 A(无法 ping 通)。从 B 来看,A 是唯一可用的 NTP 服务器。ntpd设置为在计算机启动时启动,并使用“-g”标志调用。从 NTP 多播数据包中,我了解到 A 正在从 IP 地址“192.168.1.103”发送到多播地址“224.0.1.1”

以下是来自B的ntp.conf:

tinker panic 0
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
restrict 192.168.1.103 kod nomodify noquery notrap
multicastclient 224.0.1.1
disable auth

现在计算机 B 接收来自 A 的 NTP 数据包,如果有足够的时间,ntpstatB 将显示它已与 A 同步。如果当我在 B 上启动 ntpd 时,B 上的时间与 A 上的时间基本相同(在几秒内),那么如果我在 Bntpstat上显示“已同步”后更改 B 上的时间,时间会在大约 30 分钟内更改回来。如果我将 B 上的时间更改为与 A 相差几分钟或更长时间,并在 B 上启动 ntpd,ntpstat 最终将显示“已同步”,但时间仍然错误并且根本不会改变(到目前为止等待了 3 天)。使用ntpq -pn显示偏移量为数十(10~40)的某个值,而 B 上的时间偏离了几分钟或几小时的某个值。

我希望设置 B,这样即使 B 上的时间与 A 相差很大,当它同步到 A 时,它也会调整回来。我想知道是否有办法在 B 上配置 ntpd 来做到这一点,或者有某种东西可以解析来自 A 的多播数据包,并为我提供正确的时间戳或 A 和 B 之间的时间差。

到目前为止,我尝试过ntpdatesntp,但都没有用。我还尝试过使用来获取时间戳ntpq,但结果发现这没有帮助(要么是 0,要么只是本地时间)。

答案1

  • 请尝试从“restrict”语句中删除“nopeer”标志。如果不删除“nopeer”,则无法建立多播连接。
  • 您还可以禁用除默认语句之外的所有其他限制语句,并仅保留如下所示的行:

漂移文件 /var/lib/ntp/drift

限制 -4 默认 notrap nomodify

广播 224.0.1.1

禁用身份验证

多播客户端 224.0.1.1

配置完成后还需要重新启动ntp服务:

服务 ntp 重启

相关内容