**作者:**Insist--
个人主页: insist--个人主页
梦想从未散场,传奇永不落幕,博主会持续更新优质网络知识、Python知识、Linux知识以及各种小技巧,愿你我共同在CSDN进步
目录
[1. ACL是什么](#1. ACL是什么)
[2. 为什么需要ACL](#2. 为什么需要ACL)
[3. ACL的原理](#3. ACL的原理)
[1. 标准ACL](#1. 标准ACL)
[2. 扩展ACL](#2. 扩展ACL)
[3. 命名ACL](#3. 命名ACL)
📋前言
随着网络的不断发展,网络安全与Qos(网络服务质量)的问题也越发重要,本文的ACL就是与其相关的一种技术。在本文会讲解ACL的基本概念,组成,类型,检查条件,匹配顺序,应用方向。
一、ACL的基本概念
1. ACL是什么
ACL(访问控制列表)是Access Control List的简写。我们可以将ACL理解成一种网络过滤器 ,ACL可以通过定义一些规则来控制网络的流量 ,这些规则定义了网络设备(**例如:**路由器、交换机)应该如何处理流量(哪个需要接收,哪个需要拒绝)。
2. 为什么需要ACL
ACL可以过滤数据流、增加安全性、保护内部网络,在一些情况下,出于对安全的考虑,不希望全网互通,如上图:网工需要禁止研发部门访问财务部服务器,但总裁办公室能正常访问,这就需要一种技术来实现,这种技术就是ACL。
3. ACL的原理
它的原理就是使用包过滤技术,在路由器上读取网络层和传输层 包头中的信息 (比如: 源地址、目的地址等),根据预先设定的规则,对包进行过滤。从而达到访问控制的目的。
二、ACL的组成
- **ACL编号:**在网络设备上配置ACL时,每个ACL都需要分配一个编号,ACL编号用来标识ACL。
- **规则:**一个ACL通常由若干条"permit/deny"语句组成,每条语句就是该ACL的一条规则。
- **规则编号:**每条规则都有一个相应的编号,用来标识ACL中的规则。可以自定义,也可以系统自动分配(上面给出的访问控制列表号)。
- **动作:**每条规则中的permit或deny,就是这条规则的处理动作。其中,permit是允许,deny是拒绝,结合其他技术使用,处理动作的含义也有所不同。
- **匹配项:**在ACL定义了极其丰富的匹配项,比如说:源地址等等
三、ACL的类型
ACL可以根据其应用和功能分为三种类型,分别是:标准ACL、扩展ACL、命名ACL。
1. 标准ACL
标准ACL主要基于源IP地址来允许或拒绝数据包通过 ,标准ACL通常用于对网络设备的基本访问控制 (**例如:**防止未经授权的设备访问内部网络资源)标准ACL的规则较少,只能进行简单的过滤,因此适用于小型网络环境。
访问控制列标号:1~99
2. 扩展ACL
与标准ACL相比,扩展ACL可以基于源IP、目的IP、指定协议、端口、标志来允许或拒绝数据包通过 ,这让扩展ACL可以更准确地控制网络流量(**例如:**根据特定的应用程序或协议类型来允许或拒绝流量)同时扩展ACL的配置与管理比标准ACL更复杂,扩展ACL功能较为全面,所以应用十分广泛。
访问控制列表号:100~199
3. 命名ACL
命名ACL是一种特殊的ACL,允许在标准ACL和扩展ACL中使用名称代替表号(自定义名称)。这让ACL的配置和管理更加的方便和灵活。
四、ACL的检查条件
ACL依靠规则对数据包执行检查,而这些规则通过检查数据包中的指定字段来允许或拒绝数据包的流量。ACL通过五个元素来执行检查,这些元素位于IP头部和传输层头部中,它们分别是源IP地址、目标IP地址、协议、源端口及目标端口。
- 源IP地址:根据源IP地址判断是否允许数据包通过。
- 目标IP地址:根据目标IP地址判断是否允许数据包通过。
- 源端口:根据源端口判断是否允许数据包通过。
- 目标端口:根据目标端口判断是否允许数据包通过。
- 协议:根据协议类型判断是否允许数据包通过。
五、ACL的匹配顺序
如果对接口应用了ACL,也就是说该接口应用了一组规则,那么路由器会应用这组规则对数据包进行顺序检查。
- 如果匹配第一条规则,则不再往下检查,路由器将决定该数据包允许通过或拒绝通过。
- 如果不匹配第一条规则,则依次往下检查,直到有任何一条规则匹配,路由器将决定该数据包允许通过或拒绝通过。j
- 如果后没有任何一条规则匹配,则路由器根据默认的规则将丢弃该数据包。
由此可见,数据包要么被允许,要么被拒绝。
根据以上的检查规则可知,在ACL中,各规则的放置顺序是很重要的。一旦找到了匹配规则,就结束比较过程,不再检查以后的其他规则。
六、ACL的应用方向
ACL是一组规则的集合,它应用在路由器的某个接口上。对于路由器接口而言,ACL有以下两个方向。
出:已经过路由器的处理,正离开路由器接口的数据包。
入:已到达路由器接口的数据包,将被路由器处理。
一旦确定ACL的应用方向,ACL只对该方向的数据包执行检查,对反方向的数据包不做任何处理。如下图:
ACL应用在R2的F0/0出方向,那么该ACL只检查R1→R3方向上的经过R2的F0/0接口的流量。所以如果在R1上执行到R3的ping命令,则去R3的ping包要接受ACL的检查.而回包不受影响。
注意:ACL要想执行检查,必须应用到接口。一个ACL可以配置多条规则,但是一个接口或一个方向只能应用一个ACL。