##前言
访问控制列表(Access Control Lists,ACL)是一种由一条或多条指令的集合,指令里面可以是报文的源地址、目标地址、协议类型、端口号等,根据这些指令设备来判断哪些数据接收,哪些数据需要拒绝接收。它类似于一种数据包过滤器。
####1.为什么需要ACL技术?
当某个局域网中需要使某些主机无法访问指定的资源,时就需要这么一个技术实现流量的过滤,如下图所示,某公司为保障财务部数据安全,机制研发部门访问财务部服务器,但总裁办公室不受影响:
####2.ACL介绍
ACL是由一系列permit(允许)或deny(拒绝)语句组成的有序规则的列表,它单独是无法使用的,需要应用在业务模块中才能生效,如在NAT中调用、在防火墙的策略部署中被调用、在路由策略中被调用和用来通过流量过滤。
####ACL组成如上图所示:
访问控制列表编号:在配置ACL时,每个ACL都会分配一个编号,不同编号代表不同的ACL;
规则:一个ACL通常由一条或多条“permit/deny”语句组成,一条语句就是一条规则;
规则编号:每条规则都有一个相应的编号,用来标识ACL规则,可以由用户指定;
动作:permit代表允许,deny代表拒绝,用来给规则设定相应动作;
匹配项:可以是源MAC地址、目的MAC,目的地址、协议类型等。
**如:**rule 10 permit source 1.1.1.0 0.0.0.255
**代表:**规则10允许源地址为1.1.1.0/24网段地址的报文通过。
####3.ACL分类
(1)基本ACL:ACL编号2000-2999,只能用报文的源IP地址、分片时间和生效时间段来定义规则;
(2)高级ACL:ACL编号3000-3999,可以使用报文的源IP地址、目的IP地址、协议类型、源端口号、目的端口号、生效时间来定义规则;
(3)二层ACL:ACL编号4000-4999,使用报文的以太网帧头信息,如源MAC地址、目的MAC地址、二层协议类型等来定义规则;
(4)用户自定义ACL:ACL编号5000-5999,使用报文头、偏移位置、字符串掩码、用户自定义字符串来定义规则;
(5)用户ACL:ACL编号6000-6999,可用IP报文的源/目标IP地址、IP协议类型、ICMP类型、端口来定义规则;
除此之外,ACL还可以通过名称代替编号来标识ACL。
如:rule x permit source 1.1.1.0 0.0.0.255
####4.ACL匹配机制
ACL的匹配过程如下图所示:
(1)查找ACL是否存在
不存在:结束,匹配结果为不匹配;
存在:查找设备是否配置了ACL规则;
(2)是否存在ACL规则
不存在:结束,匹配结果为不匹配;
存在:从ACL编号最小的规则(rule)开始进行查找;
(3)查看是否命中规则
如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹 配如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配
如果未匹配上规则,则继续查找下一条规则,以此循环。若查到最后依然没有匹配上,则匹配结果为:不匹配。
例:如下图所示
根据上述ACL匹配规则继续流量过滤,由上图可知规则4与规则3在不看编号大小的情况下是有冲突的,但是按ACL编号匹配规则,从编号小的进行匹配,匹配则命中。
####5.ACL匹配位置
ACL匹配位置:inbound和outbound
由上图所示:
当ACL配置在路由器左边,也就是输入的路由器的入口处叫做inbound方向,报文匹配过程如下所示:
当ACL配置在路由器右边,也就是路由器的输出口处叫做outbound方向,报文匹配过程如下所示:
####附华为ACL学习资料如下:
##ACL简介
####定义
访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所