步长的含义
步长,是指系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值。
[S1]acl 3000 //进入高级ACL,3000
[S1-acl-adv-3000]step 5 //设置步长为5
系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。例如ACL中包含规则rule 5和rule 12,ACL的缺省步长为5,大于12且是5的倍数的最小整数是15,所以系统分配给新配置的规则的编号为15。
[S1]acl 3002 //进入ACL 3002
[S1-acl-adv-3002]step 3 //设置步长为3
[S1-acl-adv-3002]rule permit ip source 192.168.1.0 0.0.0.255//允许192.168.1.0的网段
[S1-acl-adv-3002]rule permit ip source 192.168.2.0 0.0.0.255//允许192.168.2.0的网段
[S1-acl-adv-3002]display this //查看当前配置
#
acl number 3002
step 3
rule 3 permit ip source 192.168.1.0 0.0.0.255
rule 6 permit ip source 192.168.2.0 0.0.0.255
#
return
[S1-acl-adv-3002]rule 7 permit ip source 192.168.3.0 0.0.0.255 //单独插入一条顺序为7的规则
[S1-acl-adv-3002]display this
#
acl number 3002
step 3
rule 3 permit ip source 192.168.1.0 0.0.0.255
rule 6 permit ip source 192.168.2.0 0.0.0.255
rule 7 permit ip source 192.168.3.0 0.0.0.255
#
return
[S1-acl-adv-3002]rule permit ip source 192.168.4.0 0.0.0.255//再插入一条规则,不去填写顺序
[S1-acl-adv-3002]display this
#
acl number 3002
step 3
rule 3 permit ip source 192.168.1.0 0.0.0.255
rule 6 permit ip source 192.168.2.0 0.0.0.255
rule 7 permit ip source 192.168.3.0 0.0.0.255
rule 9 permit ip source 192.168.4.0 0.0.0.255 //新增加的规则,步长默认变成了9
//因为9>7,且9是3的整数倍
#
return
[S1-acl-adv-3002]
基本ACL6和高级ACL6不支持步长设定,缺省步长为1。
步长的作用
设置步长的作用,在于方便后续在旧规则之间插入新的规则。
假设,一条ACL中,已包含了三条规则rule 5、rule 10、rule 15,步长是5。
rule 5 deny source 10.1.1.1 0 //表示拒绝源IP地址为10.1.1.1的报文通过
rule 10 deny source 10.1.1.2 0 //表示拒绝源IP地址为10.1.1.2的报文通过
rule 15 permit source 10.1.1.0 0.0.0.255 //表示允许源IP地址为10.1.1.0/24网段地址的报文通过
如果希望源IP地址为10.1.1.3的报文也被拒绝通过,该如何处理?由于ACL匹配报文时遵循“一旦命中即停止匹配”的原则,rule 15规则定义的网段包含10.1.1.3,所以源IP地址为10.1.1.3的报文,会命中rule 15而允许通过。若想让源IP地址为10.1.1.3的报文也被拒绝通过,则必须在rule 15之前插入一条新规则rule 11,这样源IP地址为10.1.1.3的报文,就会因先命中rule 11而被系统拒绝通过。如果这条ACL的规则间隔是1(rule 1、rule 2、rule 3…),这时再想插入新的规则,就只能先删除已有的规则,然后再配置新规则,最后将之前删除的规则重新配置还原。
rule 5 deny source 10.1.1.1 0 //表示禁止源IP地址为10.1.1.1的报文通过
rule 10 deny source 10.1.1.2 0 //表示禁止源IP地址为10.1.1.2的报文通过
rule 11 deny source 10.1.1.3 0 //表示拒绝源IP地址为10.1.1.3的报文通过
rule 15 permit source 10.1.1.0 0.0.0.255 //表示允许源IP地址为10.1.1.0网段地址的报文通过
假设我们原来的交换机里面某条ACL规则,step(步长)被设定为2,结果我们有需要插入一条规则,结果不够用了,那么我们可以直接用命令step X(X代表阿拉伯数字),来修改步长。
#
acl number 3000
step 2
rule 2 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.19 0
rule 4 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.21 0
rule 5 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.22 0
rule 6 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.31 0
rule 8 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.88 0
rule 10 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.85 0
rule 12 deny ip source 192.168.230.0 0.0.0.255 destination 192.168.251.0 0.0.0.255
rule 14 deny ip source 192.168.230.0 0.0.0.255 destination 192.168.250.0 0.0.0.255
rule 16 deny ip source 192.168.230.0 0.0.0.255 destination 192.168.249.0 0.0.0.255
#
使用命令,直接修改。
[HY-CORE-A-acl-ipv4-adv-3000]step 5 //设置ACL3000的步长为5
#
acl number 3000
rule 0 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.19 0
rule 5 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.21 0
rule 10 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.22 0
rule 15 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.31 0
rule 20 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.88 0
rule 25 permit ip source 192.168.230.0 0.0.0.255 destination 192.168.250.85 0
rule 30 deny ip source 192.168.230.0 0.0.0.255 destination 192.168.251.0 0.0.0.255
rule 35 deny ip source 192.168.230.0 0.0.0.255 destination 192.168.250.0 0.0.0.255
rule 40 deny ip source 192.168.230.0 0.0.0.255 destination 192.168.249.0 0.0.0.255
#
这样我们就能更方便的在acl内插入新的规则了.