在 Catalyst 4500 上的访问列表中引用对象组的意外行为

网络工程 cisco催化剂 ACL
2021-07-15 21:51:48

我在 Catalyst 4500 上尝试引用访问列表中的对象组时遇到了一些意外行为。

目标:限制 VLAN 访问其他私有寻址子网(仅限 Internet 访问),另一个子网中的本地 DNS 服务器除外

IOS-XE 版本: 03.03.00.XO 发布软件 (fc2)

通用配置:

object-group network subnet_privateClassA 
 10.0.0.0 255.0.0.0
!
object-group network subnet_privateClassB 
 172.16.0.0 255.240.0.0
!
object-group network subnet_privateClassC 
 192.168.0.0 255.255.0.0
!
object-group network subnet_rfc1918All 
 group-object subnet_privateClassA
 group-object subnet_privateClassB
 group-object subnet_privateClassC
!
!

...

interface Vlan70
 ip address 10.10.70.254 255.255.255.0
 ip access-group publicVlan_in in
!

除了所需的 DNS 服务器 (10.16.4.10) 外,以下访问列表会阻止对私有 IP 范围的访问,但也会阻止对公共 IP 的访问。因此,DNS 能够解析 google.com,但 ping 失败。

ip access-list extended publicVlan_in
 permit ip any host 10.32.4.10
 deny ip any object-group subnet_rfc1918All ! (I've also tried just subnet_privateClassA)
 permit ip any any
!

下一个访问列表完全按照我的意愿工作 - 本地 DNS 工作正常,我可以访问 Internet:

ip access-list extended publicVlan_in
 permit ip any host 10.32.4.10
 deny   ip any 10.0.0.0 0.255.255.255
 deny   ip any 172.16.0.0 0.15.255.255
 deny   ip any 192.168.0.0 0.0.255.255
 permit ip any any
!

问题似乎是对象组的使用。我在这里错过了什么?

2个回答

好久不见,终于有了答案。我最近遇到了另一种情况,我必须创建将从对象组引用中受益的访问列表。在尝试了几种不同的方法来解决这个问题后,我终于认输并联系了 Cisco 技术支持(我总是不愿意这样做)。

在最初粗心大意和公然错误地尝试回答我的问题之后,思科技术人员给出了以下回复:

马修,

我已经联系了开发团队,并且 4500 平台的对象组配置无法按预期工作,因为该功能直到 2015 年 8 月左右发布的代码版本 15.2(3)E2 才得到完全支持。

可以配置 ACL,因为它们与此时支持该功能的其他设备具有相同的 IOS XE 基础。

所以,你去了 - 思科只用了 6 天就给出了这个答案(记录)。

请改用策略路由。两条线到 ACL 拒绝任何到内部 DNS 服务器然后允许所有其他内部。将下一跳设置为 ISP 接口的 IP 地址。

例子:

Router(config-route-map)# set ip next-hop ip-address [ip-address]

指定数据包将路由到的下一跳,下一跳必须是下一个路由器的相邻接口。