一、ACL功能
ACL即"Access Control List"(访问控制列表)的缩写,是一种网络技术,用于实现对网络流量的访问控制和筛选。
功能:
访问控制:ACL+Packet-filter(包过滤)
ACL可以基于源IP地址、目标IP地址、协议类型、端口号等条件,限制特定主机或网络的访问权限。通过配置ACL规则,管理员可以精确控制哪些流量被允许通过,哪些被拒绝。
路由控制:ACL+Route-policy(路由策略)
流量控制:ACL+QOS(服务质量)
二、ACL组成
组成:
由若干条permit或deny语句组成,每条语句就是一条规则
ACL(Access Control List)由两个基本组成部分构成:
-
条目(Entry):ACL中的每一个规则被称为一个条目或项。每个条目包含匹配条件和相应的动作。匹配条件可以基于源IP地址、目标IP地址、协议类型、端口号等进行定义,而动作可以是允许通过、拒绝或其他特定操作。
-
顺序(Order):ACL中的条目按照一定的顺序进行排列。这个顺序决定了当数据包到达ACL时,从上到下逐条进行匹配的顺序。只有匹配成功的第一个条目所定义的动作会被执行,并决定该数据包的命运。因此,顺序对于正确配置ACL非常重要。
语句形式:rule permit source 192.168.1.0 0.0.0.255
rule deny source 172.16.0.0 0.0.255.255
手动指定:0、1、2、3、4、5……
自动生成:5、10、15…… (5的倍数)
通配符:在ACL中,通配符用于匹配IP地址、子网、端口号等。哪些位需要严格匹配,哪些位可以随意,0表示严格匹配,1表示随意匹配。
常见通配符:
- IP地址通配符:
- 0.0.0.0:匹配任意IP地址。
- host <IP地址>:匹配指定的单个IP地址。
- <网络地址> <可选的子网掩码>:匹配指定网络地址和可选的子网。
-
子网掩码通配符:
- 0.0.0.0:匹配任意子网掩码。
- <子网掩码>:匹配指定的子网掩码。
-
端口号通配符:
- eq <端口号>:匹配指定的端口号。
- range <起始端口号> <结束端口号>:匹配指定范围内的端口号。
- any:匹配任意端口号。
三、ACL分类
基本ACL:基于源IP地址进行过滤,仅检查数据包的源地址信息,编号2000-2999。
高级ACL:对数据包的五元组(源IP、目的IP、源端口、目的端口、协议类型)进行检查,编号3000- 3999。
二层ACL:检查二层帧的头部信息,源MAC\目的MAC\二层协议类型等等,编号4000-4999。
用户自定义ACL:使用报文头部、字符串掩码和用户自定义字符串来定义规则,编号5000-5999。
四、匹配机制
包过滤方向:
出方向:数据流出的方向
入方向:数据流入的方向
注:包过滤必须配置在接口某个方向上才能生效,一个接口的一个方向只能配置一个包过滤策略 建议:在不影响实际效果的前提下,包过滤尽量配置在离源地址最近的接口的入方向
匹配机制:
1.数据包到达接口先检查是否应用ACL。
2.按照ACL编号顺序(从小到大)匹配第一条规则,匹配进一步检查该条规则的动作, 否则与下一条规则进行匹配……
3.所有规则都不匹配,检查默认动作,默认动作允许则放行,默认动作拒绝则放弃。