Loading

Network系列:ACL原理及其配置(五)

ACL原理及其配置

1. ACL概述

  1. ACL(Access Control List,访问控制列表)是由一系列permit或deny语句组成的、有序的规则集合,它通过匹配报文的相关字段实现对报文的分类。
  2. ACL本身只是一组规则,只能区分某一类报文,换句话说,ACL更像是一个工具,当我们希望通过ACL来实现针对特定流量的过滤时,就需要在适当的应用中调用已经定义好的ACL。
  3. ACL是一个使用非常广泛的工具,能够在多种场景下被调用。

主要作用

ACL是能够匹配一个IP数据包中的源IP地址、目的IP地址、协议类型、源目的端口等元素的基础性工具;ACL还能够用于匹配路由条目。

通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。


2. ACL的主要使用场景

  1. 被流量策略调用,用于过滤流量(可基于源、目的IP地址、协议类型、端口号等元素);
  2. 在route-policy中被调用,用于匹配特定的路由前缀,从而执行路由策略;
  3. 在VPN中调用,用于匹配感兴趣数据流;
  4. 在防火墙的策略部署中调用,用于匹配流量;
  5. 其他……。

3. ACL的组成

3.1 组成部分详解

ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。

image-20221014142611303

ACL编号:在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号,用来标识ACL。不同分类的ACL编号范围不同。

规则:前面提到了,一个ACL通常由若干条“permit/deny”语句组成,每条语句就是该ACL的一条规则。

规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以自定义,也可以系统自动分配。ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。

动作:每条规则中的permit或deny,就是与这条规则相对应的处理动作。permit指“允许”,deny指“拒绝”,但是ACL一般是结合其他技术使用,不同的场景,处理动作的含义也有所不同。

匹配项:ACL定义了极其丰富的匹配项。例子中体现的源地址,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型)、三层报文信息(如目的地址、协议类型)以及四层报文信息(如TCP/UDP端口号)等。


3.2 规则编号

image-20221014143037780

Tips:设置一定长度的步长的作用,是方便后续在旧规则之间插入新的规则,可以修改默认步长。


3.3 通配符

  • 通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。
  • 通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。
  • 匹配规则:“0”表示“匹配”;“1”表示“随机分配”

image-20221014143607892


image-20221014143729038

具体看下这2条规则:

  • rule 5: 拒绝源IP地址为10.1.1.1报文通过——因为通配符为全0,所以每一位都要严格匹配,因此匹配的是主机IP地址10.1.1.1;
  • rule 15:允许源IP地址为10.1.1.0/24网段地址的报文通过——因为通配符:0.0.0.11111111,后8位为1,表示不关心,因此10.1.1.xxxxxxxx 的后8位可以为任意值,所以匹配的是10.1.1.0/24网段。

如果匹配192.168.1.0/24这个子网中的奇数IP地址,例如192.168.1.1、192.168.1.3、192.168.1.5等。

image-20221014144005233


3.4 分类和标识

基于ACL规则定义方式的分类

分类 编号范围 规则定义描述
基本ACL 2000~2999 仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。
高级ACL 3000~3999 可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口号、UDP源/目的端口号、生效时间段等来定义规则。
二层ACL 4000~4999 使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。
用户自定义ACL 5000~5999 使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。
用户ACL 6000~6999 既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。

基于ACL标识方法的分类

分类 规则定义描述
数字型ACL 传统的ACL标识方法。创建ACL时,指定一个唯一的数字标识该ACL。
命名型ACL 通过名称代替编号来标识ACL。

3.5 ACL的匹配机制

image-20221014145106302

匹配流程

  • 如果ACL不存在,则返回ACL匹配结果为:不匹配。
  • 如果ACL存在,则查找设备是否配置了ACL规则。
  • 如果规则不存在,则返回ACL匹配结果为:不匹配。
  • 如果规则存在,则系统会从ACL中编号最小的规则开始查找。
    • 如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)。
    • 如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)。
  • 如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。

Tips:不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。


ACL的匹配机制概括来说就是:

  1. 配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则。
  2. 一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。

3.6 ACL的匹配位置

image-20221014150639299

image-20221014151838162


4. 配置案例

基本ACL配置示例

image-20221014164902461

初始情况下PC1及PC2都能够访问Server。现在在GW的接口上应用ACL,使得PC2无法访问Server,而其他用户都能够访问Server。


在R1上进行配置

acl number 2000  
	rule 5 deny source 192.168.2.1 0 
	rule 10 permit source any 
 
interface GigabitEthernet0/0/0
 	traffic-filter outbound acl 2000
posted @ 2023-09-18 09:37  YinJayChen  阅读(104)  评论(0编辑  收藏  举报