我已经在运行 IOS 15.2M 的 Cisco IOS 设备上设置了 NTP,这是我用于测试的基本配置:
ip access-list standard IPV4-ACL-NTP-PEER
permit <UP.STREAM.NTP.SERVER> log
!
ip access-list standard IPV4-ACL-NTP-SERVE
permit any log
!
ip access-list standard IPV4-ACL-NTP-SERVE-ONLY
permit any log
!
ntp logging
ntp access-group peer IPV4-ACL-NTP-PEER
ntp access-group serve IPV4-ACL-NTP-SERVE
ntp access-group serve-only IPV4-ACL-NTP-SERVE-ONLY
ntp update-calendar
ntp server <UP.STREAM.NTP.SERVER>
路由器可以毫无问题地与上游服务器同步:
ROUTER#show ntp associations
address ref clock st when poll reach delay offset disp
*~<UP.STREAM.NTP.SERVER> .PPS. 1 73 256 377 0.660 0.060 2.591
* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured
当我在 Linux 机器上使用 ntpd 或 ntpdate 时,路由器不响应 ntp 查询。我已经使用调试(和 ACL 日志记录)验证了数据包确实到达路由器并被 NTP 代码看到/处理,并且它们与相关的 ACL 匹配。
仅配置“服务器”或“仅服务”并没有什么区别。
如果我更改 IPV4-ACL-NTP-PEER 以包含客户端 IP,路由器会响应。
我已经阅读了许多不同的文档/指南,据我所知,我不需要(也不想)将客户端放在对等 ACL 中。
(我主要是想了解为什么它会这样工作以及我做错了什么,而不仅仅是将 IP 放在对等 ACL 中并“让它工作”。)
我不控制上游 NTP 服务器,无法使用身份验证。我也不控制(大多数)客户。