我这里有一个 NTP 服务器(在 Linux Mint 上)和一个客户端(同样)。服务器配置为通过 LAN 发送多播消息,客户端接收并更新其时钟 - 它的设计目的是为了减少网络负载。
反过来,NTP 服务器从同一 LAN 中的更高级别的单播 NTP 服务器更新自己的时钟。不起作用的是在客户端接收组播数据包并更新时钟。
我目前正在客户端计算机上嗅探数据包,我可以看到即将到来的多播。在客户端计算机上使用 ntpdate -s 并指向同一 LAN 中的更高级别 NTP 可以正常工作,即更新时钟。
我正在附加两个多播服务器的配置:
和客户:
以下是 Mcast 数据包到达客户端的证据:
我已经尝试使用 -Ab 运行 ntpd 客户端(接受未经身份验证的广播),但这也不起作用。
在此先感谢您的帮助。
答案1
要使其发挥作用,需要进行两项更改:
- 删除
server
定义,因为它被broadcastclient
条目替换 nopeer
从语句中删除限定符restrict
。否则客户端无法(不会)与多播服务器对话。
以下是更正后的客户端配置文件示例:
driftfile /var/lib/ntp/ntp.drift
disable auth
broadcastclient
restrict -4 default noquery nomodify notrap
restrict -6 default noquery nomodify notrap
restrict 127.0.0.1
restrict ::1