访问控制列表的匹配顺序一个访问控制列表可以由多条“permit|deny”语句组成,每一条语句描述的规则是不相同,这些规则可能存在重复或矛盾的地方,在将一个数据包和访问控制列表的规则进行匹配的时候,到底采用哪些规则呢
就需要确定规则的匹配顺序
有两种匹配顺序:配置顺序自动排序"配置顺序",是指按照用户配置ACL的规则的先后进行匹配
自动排序使用“深度优先”的原则
“深度优先”规则是把指定数据包范围最小的语句排在最前面
这一点可以通过比较地址的通配符来实现,通配符越小,则指定的主机的范围就越小
0指定了一台主机:129
1,而129
255则指定了一个网段:129
255,显然前者在访问控制规则中排在前面
具体标准为:对于基本访问控制规则的语句,直接比较源地址通配符,通配符相同的则按配置顺序;对于基于接口的访问控制规则,配置了“any”的规则排在后面,其它按配置顺序;对于高级访问控制规则,首先比较源地址通配符,相同的再比较目的地址通配符,仍相同的则比较端口号的范围,范围小的排在前面,如果端口号范围也相同则按配置顺序
使用displayacl命令就可以看出是哪条规则首先生效
显示时,列在前面的规则首先生效
注:①访问控制列表能被匹配的前提是FirewallEnable
②要注意Firewall默认的规则是Permit还是Deny>如果默认为permit,则没有被匹配的数据流采取的动作为允许
>如果默认为deny,则没有被匹配的数据流采取的动作为禁止
例如:Aclnumber3000rule0permitipsource192
30(rule1denyipany)-----在最后隐藏了这样一条命令,也就是说来此非192
3的数据流都被