除非客户端在“对等”ACL 中,否则 IOS 不会响应 NTP 查询

网络工程 思科-ios ntp
2021-07-25 14:54:34

我已经在运行 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 服务器,无法使用身份验证。我也不控制(大多数)客户。

1个回答

在路由器上进行从 15.2M 到 12.2SRE 的“sidegrade”之后,现在可以使用以下配置:

access-list 80 permit <UP.STREAM.NTP.SERVER> log
access-list 81 permit <MY.CLIENT.NETWORK> log
ntp logging
ntp access-group peer 80
ntp access-group serve-only 81
ntp update-calendar
ntp server <UP.STREAM.NTP.SERVER>

..当然,从 15.2M 到 12.2SRE 意味着不再有任何 IPv6 支持,但它证明问题是 IOS 回归。我会尽快尝试最新的 15.2M,如果问题仍然存在,然后向 TAC 开票。