ACL概述
ACL是由一系列permit和deny语句组成的,有序规则的列表。
ACL是一个匹配工具,能够对报文进行匹配和区分。
ACL规则编号
缺省情况下,步长为5
ACL匹配规则是按顺序从上往下匹配的,5-10-15
系统在ACL末尾隐含的一条规则:
rule 4294967294 deny
例如,流策略中的ACL默认动作是permit,在流策略中应用ACL时,如果ACL中存在规则但报文未匹配上,该报文仍可以正常通过。而Telnet中的ACL默认动作是deny,在Telnet中应用ACL时,如果遇到此种情况,该报文会被拒绝通过。
意思就是如果没有匹配前面的规则,那么就会匹配最后一条规则。
通配符(Wildcard)
通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。
通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。
“0”表示严格匹配,“1”表示随机匹配
比如
acl number 2000
rule 5 deny source 10.1.1.1 0
rule 10 deny source 10.1.1.2 0
rule 15 permit source 10.1.1.0 0.0.0.255
10.1.1.1 0 0代表0.0.0.0,也就是说10.1.1.1必须严格匹配,指定的IP地址。
10.1.1.0 0.0.0.255,也就是说,10.1.1必须严格匹配,0可以随机匹配
通配符是反掩码吗?
1、通配符 可以是不连续的0或者1!0.0.4.254----->0.0.0000 0100.1111 1110
2、反掩码必须是连续的0和1!255.255.255.0---->0.0.0.255
如果10.1.1.0/24,只匹配主机位为奇数的呢?
那么通配符就写成,1.1.1.1 0.0.0.254
偶数的话就是,1.1.1.0 0.0.0.254
以此类推
#rule 1 deny ip source 172.16.1.0 0.0.0.7
这一条ACL又是覆盖了哪些段呢?我们不妨将上面的IP和通配符掩码都转化二进制来看看:
172.16.1.0 ➡10101100.00010000.00000001.00000000
0.0.0.7 ➡00000000.00000000.00000000.00000111
172.16.1.0:10101100.00010000.00000001.00000000
0.0.0.7: 00000000.00000000.00000000.00000111
换算成: 10101100.00010000.00000001.00000XXX
XXX可以为0或1,全为1时,00000111=7,带上全0时,共有8个地址
所以这个地址匹配的是172.16.1.0-172.16.1.7
基本ACL和高级ACL
基本ACL
编号范围2000~2999
只能匹配源IP地址
高级ACL
编号范围3000~3999
可以匹配源目IP地址,地址协议类型,源目端口号
基本ACL部署时候尽可能靠近源IP地址。
高级ACL部署时候尽可能靠近目的IP地址。
ACL的匹配机制
permit deny 和不匹配
引用的ACL不存在或者ACL不存在rule,结果都会是不匹配。
如果命中第一条rule,动作是permit则结果为允许,deny为拒绝。
如果没有命中第一条,则查看是否有剩余rule,有就分析下一条,没有就匹配结果为不匹配。
匹配中ACL规则后,数据最终要怎么样,要根据表格处理;
各类业务模块中的ACL默认动作及ACL处理机制,如表2所示。
ACL默认处理机制
点击即可查看