思科:如何让思科在重启后不重新排序访问列表?

思科:如何让思科在重启后不重新排序访问列表?

我已经扩展了访问列表块,其中每个块都有自己的特殊编号。例如:

1038047 deny ip any host 192.168.38.47
1038048 deny ip any host 192.168.38.48
1038049 deny ip any host 192.168.38.49
1038069 deny ip any host 192.168.38.69
1038077 deny ip any host 192.168.38.77
1038080 deny ip any host 192.168.38.80

公式是 1 000 000 + 1 000*3_octet+4_octet ,最后一个是

3 000 000 permit ip any any

但重启后它们变成:

2020 deny ip any host 192.168.38.27
2030 deny ip any host 192.168.38.32
2040 deny ip any host 192.168.38.37
2050 deny ip any host 192.168.38.38
2060 deny ip any host 192.168.38.43

这很糟糕。是否有任何命令可以禁止 cisco 重新排序条目?

答案1

根据思科,IOS 访问列表中的最大有效序列号为 2147483647。您能确认您正在运行什么平台/代码版本吗?

至于重启后的持久性,正如 Jeb 所说,序列号不存储在配置文件中。(执行“show startup-config”来验证这一点)我不认为这是一个错误,只是一个已知的限制。

拥有特定序列号的要求是什么?在较新版本的 IOS 中,任何非空访问列表的末尾始终有一个隐式“拒绝任何任何”。除非您输入“拒绝任何日志”以便将未经授权的流量记录到系统日志中,否则您可以简单地将其附加到现有的 ACL 中,并且隐式拒绝将始终位于末尾?

编辑:

我认为没有办法改变隐式拒绝行为。一种解决方案可能是远程存储您的配置(包括序列号),然后在进行更改时删除并重新创建整个 ACL?不幸的是,思科的 ACL 实现是围绕“允许您需要的,拒绝其余的”方法设计的。

解决此问题的一种方法(假设您正在运行足够新的代码版本)可能是使用基于对象组的 ACL。然后您可以制定如下政策。

注意:手工剪切配置;确保在部署之前进行测试!

object-group network denied-destination-hosts
 host 192.168.38.27
 host 192.168.38.32
 host 192.168.38.37
 host 192.168.38.38
 host 192.168.38.43
!

ip access-list extended BLOCK
 deny ip any object-group denied-destination-hosts
 permit ip any any
!

这样您就可以独立于“BLOCK”ACL 修改拒绝主机的列表,并确保您的“permit”语句始终是最后一个条目。

答案2

我可能错了,但我不认为你可以使用那么高的 ACL 编号,实际的列表编号由其类型定义,即 IP ACL 必须在特定范围之间,扩展 IP 在另一个范围之间等。(请参阅这里了解详情)。

答案3

我认为您无法做到这一点,因为这些数字没有存储在配置文件中。这只是用于在 ACL 中您想要的位置插入一行。对于 Chopper3(我还不能添加评论),这里讨论的是 ACL 行排序,而不是您给出的链接中描述的 ACL 数字。

相关内容