ACL基本原理
ACL由一系列规则组成,通过将报文与ACL规则进行匹配,设备可以过滤出特定的报文。
ACL的组成
ACL编号: 在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号,用来标识ACL。不同分类的ACL编号范围不同,这个后面具体讲。
规则: 前面提到了,一个ACL通常由若干条“permit/deny”语句组成,每条语句就是该ACL的一条规则。
规则编号: 每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以自定义,也可以系统自动分配。ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。
动作: 每条规则中的permit或deny,就是与这条规则相对应的处理动作。permit指“允许”,deny指“拒绝”,但是ACL一般是结合其他技术使用,不同的场景,处理动作的含义也有所不同。比如:ACL如果与流量过滤技术结合使用(即流量过滤中调用ACL),permit就是“允许通行”的意思,deny就是“拒绝通行”的意思。
匹配项: ACL定义了极其丰富的匹配项。例子中体现的源地址,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型)、三层报文信息(如目的地址、协议类型)以及四层报文信息(如TCP/UDP端口号)等。
ACL匹配机制
ACL的匹配机制概括来说就是:
配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则。
一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。
匹配流程: 首先系统会查找设备上是否配置了ACL。
如果ACL不存在,则返回ACL匹配结果为:不匹配。
如果ACL存在,则查找设备是否配置了ACL规则。
如果规则不存在,则返回ACL匹配结果为:不匹配。
如果规则存在,则系统会从ACL中编号最小的规则开始查找。
如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)。
如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)。
如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。
从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:“匹配”和“不匹配”。
匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。
不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。
匹配原则:一旦命中即停止匹配。
ACL6分类
ACL6,指仅支持过滤IPv6报文的ACL。
**基本ACL6:**范围:2000-2999, 可以使用IPv6报文的源IPv6地址,分片信息和生效时间段来定义规则。
高级ACL6: 范围:3000-3999,可以使用IPv6报文的源IPv6地址、目的IPv6地址、IPv6协议类型、ICMPv6类型、TCP源/目的端口、UDP源/目的端口号、生效时间段等来定义规则。
IPv6配置
1.IPv6地址配置
<Huawei>system-view [Huawei]sysname AR1 [AR1]ipv6 [AR1]interface GigabitEthernet 0/0/0 [AR1-GigabitEthernet0/0/0]ipv6 enable [AR1-GigabitEthernet0/0/0]ipv6 address 3000:1:1::1 64 [AR1-GigabitEthernet0/0/0]quit [AR1<