访问控制列表ACL(Access Control List)说白了就是划分成分,然后决定命运。
成分则根据数据包的源地址、目的地址、端口号等来描述。
原理描述
ACL负责管理用户配置的所有规则,并提供规则匹配算法。业务根据匹配的规则动作(“允许”或“拒绝”)进行操作。
ACL的规则的匹配
规则匹配的情况:指存在ACL且ACL中有符合条件的规则,不论 “允许”或“拒绝”,都是匹配的。
规则不匹配的情况:指不存在ACL或ACL中无规则或查找了ACL下所有规则都不符合匹配条件。
ACL的规则匹配过程
· 如果存在ACL且需要根据规则来检查报文,则查找该ACL中所有规则,找到一个合适的就结婚不再找。
· 如果存在ACL且业务只匹配源地址信息、目的地址信息、IP承载的协议类型、TCP的源端口、目的端口、ICMP协议的类型中的某些选项,则根据业务要求查找所有ACL,进行规则匹配。匹配的第一条就通知给业务,不再继续查找后续的规则。
ACL的规则匹配顺序
规则显示顺序决定匹配顺序。规则匹配时,按顺序查找。即规则越靠前越容易被匹配。
决定规则显示顺序的因素有两个:规则ID和规则匹配方式。
规则匹配方式有两种:配置顺序和自动顺序。
· 如果是配置顺序,按照用户配置ACL规则的先后进行匹配。可以由用户配置规则ID,也可以由系统根据步长自动生成(步长留有余地插规则)。这个是民主,先来先服务。
· 如果是自动顺序,由系统自动分配规则ID,按照“深度优先”规则把精度最高的规则排在最前面。这一点可以通过比较地址的通配符来实现,通配符越小,则指定的主机的范围就越小。这个是领导优先。
§ 对于基本访问控制规则的语句,按照如下规则排序:
§ VPN实例>源IP地址范围>配置顺序
§ 接口规则配置了“any”的规则排在后面,其它按配置顺序;
§ 对于高级访问控制规则,按照如下规则排序:
§ VPN实例>源/目的IP地址范围>TCP/UDP端口号>配置顺序
应用
在路由过滤中使用ACL
ACL可以应用在各种动态路由协议中,对路由协议发布和接收的路由信息进行过滤。
在QoS中使用ACL
利用ACL对具有某种属性的报文进行QoS处理。
基于接口的ACL(Interface-based ACL)基于接口的访问控制列表可以根据接收报文的接口指定规则。
基本ACL(Basic ACL)基本访问控制列表只能使用源地址信息作为定义访问控制列表规则的元素。
高级ACL(Advanced ACL)高级访问控制列表可以使用数据包的源地址信息、目的地址信息、协议类型、TCP的源端口、目的端口、ICMP协议的类型、ICMP报文的消息码等元素定义规则。
基于以太帧头的ACL(Ethernet frame header-based ACL)基于以太帧头的访问控制列表可以根据报文的源MAC地址、目的MAC地址和以太帧协议类型过滤报文。
基于MPLS的ACL(MPLS-based ACL)基于MPLS的ACL根据MPLS报文的Exp值、Label值、TTL值过滤报文。