在一条ACL中可以制定多条,这些可能产生交集, 即某些报文可能同时符合一条ACL中的多条规则。例如在ACL 3001种配置有如下规则:
rule permit ip source 1.0.0.0 0.255.255.255 destination 5.5.0.0 0.0.255.255
rule deny ip source 1.0.0.0 0.255.255.255 destination 5.5.5.5 0
rule permit tcp source 1.1.1.1 0
rule deny udp source 1.1.0.0 0.0.255.255
将这个ACL应用到接口上,就会产生这样一个问题。即对于一个源地址为1.1.1.1,目的地址为5.5.5.5的IP报文,它符合ACL
3001中的所有规则,那么对这个报文应该采取哪条规则定义的动作来操作呢?为了解决这一问题,我们定义了ACL中各规则的匹配顺序称为匹配规则,各规则
依据匹配规则重新排序,报文按其顺序依次匹配。目前主要定义有如下两种匹配规则:
1 按照配置顺序的匹配规则:
这种方式比较易于理解,即按设计者录入规则的先后顺序对报文进行匹配。对于上例,匹配顺序如下:
[AR29-acl-adv-3001]display this
#
acl number 3001
rule 0 permit ip source 1.0.0.0 0.255.255.255 destination 5.5.0.0 0.0.255.255
rule 1 deny ip source 1.0.0.0 0.255.255.255 destination 5.5.5.5 0
rule 2 permit tcp source 1.1.1.1 0
rule 3 deny udp source 1.1.1.1 0.0.255.255
#
return
因而,对于源为1.1.1.1,目的为5.5.5.5 的报文就被匹配了第一条规则,而允许通过了。我司产品默认的是这种匹配顺序。指定这种匹配规则的命令是acl num 3001 match-order config。
2 按照深度的匹配规则
所谓深度就是一条规则所限制范围的大小,限制范围越小深度就越深。这里要特别指出的是,我们认为所有含有四层信息的规则都比只含三层信息的规则“深”。
下面详细一下,在深
度匹配中最为重要的反掩码的原理。所谓反掩码顾名思义就是将原来掩码中的“1”改写为
“0”,“0”改写为“1”。例如:255(11111111).255(11111111).128(10000000).0(00000000)改写
为0(00000000).0(00000000).127(01111111).255(11111111)。于是在原掩码中“1”对应的网络位变为反
掩码中“0”所对应得位。但反掩码的一个特点是它允许0位不连续,即能出现0.255.0.127的情况。之所以使用反掩码也正是由于它的这个特点,因为
在掩码中是严格要求0或1必须连续分布的。反掩码的这一特点大大扩展了ACL应用的灵活性,使得原本需要多条规则才能涵盖的范围用一条规则就能完全覆盖。
结合深度的定义,我们可以知道在各条规则都定义了四层信息或都只有三层信息的前提下,深度就是等同于反掩码中0的个数,0的个数越多,深度也就越深,相应
的主机位的位数也就越少,主机范围也就越小。所以对于规则rule 2 permit tcp source 1.1.1.1
0其反掩码为0(也就是全0),其所对应得主机就只有一台,我们就说它的深度最深。所谓按深度匹配就是指在一个ACL中各规则先按其源地址的深度进行排
序,在源地址深度相同的情况下,再按目的地址的深度进行排序,若还相同就按配置的先后顺序排序。还以上面的情况为例,将规则改为按深度匹配:acl
num 3002 match-order auto(Cisco公司默认的是这种规则)。按顺序依次输入下列各条子规则,输入时不指定子规则号:
rule permit ip source 1.0.0.0 0.255.255.255 destination 5.5.0.0 0.0.255.255
rule deny ip source 1.0.0.0 0.255.255.255 destination 5.5.5.5 0
rule permit tcp source 1.1.1.1 0
rule deny udp source 1.1.0.0 0.0.255.255
输完以后,使用display命令查看(使用该命令能显示最终的匹配顺序),有如下结果:
[AR29-acl-adv-3002]display this
#
acl number 3002 match-order auto
rule 0 permit tcp source 1.1.1.1 0
rule 1 deny udp source 1.1.0.0 0.0.255.255
rule 2 deny ip source 1.0.0.0 0.255.255.255 destination 5.5.5.5 0
rule 3 permit ip source 1.0.0.0 0.255.255.255 destination 5.5.0.0 0.0.255.255
#
return
即使在输入时指定子规则序号,对结果也不影响:
[AR29-acl-adv-3002]display this
#
acl number 3002 match-order auto
rule 2 permit tcp source 1.1.1.1 0
rule 3 deny udp source 1.1.0.0 0.0.255.255
rule 1 deny ip source 1.0.0.0 0.255.255.255 destination 5.5.5.5 0
rule 0 permit ip source 1.0.0.0 0.255.255.255 destination 5.5.0.0 0.0.255.255
#
return
报文会按显示出的各条规则的先后顺序去匹配。
CCIE Security 2009 IOS防火墙合集
阅读(5230) | 评论(0) | 转发(0) |