一、ACL原理
1.1 ACL介绍
ACL(Access Control List 访问控制列表)是应用在路由器接口的指令列表(即规则),用来告诉路由器,哪些数据包可以接收,哪些数据包需要拒绝。
- 读取第三层(网络层)、第四层(传输层)的包头信息
- 根据预先定义好的规则对包进行过滤
ACL是一组规则的集合,它应用在路由器的某个接口上,且与应用到接口的方向与数据方向有关,对路由器而言,访问控制列表在接口应用的两个方向:
- 出:已经过路由器的处理,正离开路由器接口的数据包;
- 入:已到达路由器接口的数据包,将被路由器处理。
outbound 代表出方向,inbound 代表进入方向,列表应用到接口的方向与数据方向有关。
ACL的两种作用:
- 用来对数据包做访问控制(丢弃或者放行)
- 结合其他协议,用来匹配范围
ACL工作原理:
当数据包从接口经过时,由于接口启用了ACL,此时路由器会根据匹配规则对报文进行检查,然后做出相应的处理(丢弃或放行)。
访问控制列表的处理过程(顺序检查)如下:
由图可知:匹配规则是从上往下(从小到大)一步步进行匹配的,当匹配到相关的规则就停止,不会再往下进行匹配;当匹配到允许,就放过送往目的接口,当匹配到拒绝就丢弃。
若所有规则都没有匹配上,则执行隐含的规则(默认规则,华为放通)。
比如第一条规则没匹配上就往下进行第二条匹配,如果匹配上了,就处理(要么被允许,要么被拒绝),没匹配上就继续往下走,知道触发隐藏的规则为止。
–
1.2 ACL 种类
- 基本ACL (2000 - 2999):只能匹配 源IP地址。
- 高级ACL (3000 - 3999):可以匹配源IP、目标IP、源端口、目标端口 、三层和四层的协议(如 TCP、ICMP等)等。
- 二层ACL (4000 - 4999):根据数据包的源MAC地址、目的MAC地址、802.1q优先级、二层协议类型等二层信息制定规则。
ACL(访问控制列表)的应用原则:
- 基本ACL,尽量用在靠近目的点;
- 高级ACL,尽量用在靠近源的地方(可以保护带宽和其他资源)
ACL应用规则:
1、一个接口的同一个方向,只能调用一个ACL ;
2、一个ACL 里面可以有多个 rule 规则,按照规则ID从小到大排序,从上往下依次执行;
3、数据包一旦被某 rule 匹配,就不再继续向下匹配;
4、用来做数据包访问控制时,默认隐含放过所有(华为设备)
二、实验
2.1 ACL配置命令
如果网段掩码为 255.255.255.0,反掩码则为 0.0.0.255。
如果deny / permit 跟的 单个主机的IP地址,则后面可以跟 0。
同一个ACL中的执行顺序是根据 rule 排序的,rule 5 → rule 6 → rule10。。。直到匹配上。
基本ACL配置:
#创建acl 2000
[Huawei]acl number 2000
#拒绝源地址为192.168.1.1的流量,0代表仅此一台,5是这条规则的序号(默认值为5)
[Huawei-acl-basic-2000]rule 5 deny source 192.168.1.1 0
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.254 24
#接口出方向调用acl,2000 outbound 代表出方向,inbound 代表进入方向
[Huawei-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
[Huawei-GigabitE thernet0/0/1]undo sh
#进入acl 2001 列表
[Huawei]acl number 2001
#permit代表允许,source代表来源,掩码部分为反掩码
[Huawei-acl-basic-2001