前言
随着网络的飞速发展,网络安全和网络服务质量QoS (Quality of Service)问题日益突出。访问控制列表 (ACL, Access Control List)是与其紧密相关的一个技术。
ACL可以通过对网络中报文流的精确识别,与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
ACL原理
常见误区:
- ACL支持二层和三层,基本ACL和高级ACL都为三层,二层ACL编号数字更大,为4000~4999
- ACL匹配规则有两种,默认规则下按rule ID从小到大匹配具体看ACL的匹配机制
- 高级ACL动作(deny拒绝/permit 允许)后加二层协议,destination-port后加 (取值范围) + (三层协议/端口号)
- ACL只针对穿越流量(即匹配的源IP不能的路由器自己的)
- traffic-filter 调用的,只要没有明确指定deny ,那么默认放行
- 一个接口只能配置匹配一个ACL
ACL概述
- ACL是一个实现流量过滤的工具。
- ACL是由一系列permit或deny语句组成的、有序规则的列表。
- ACL是一个匹配工具,能够对报文进行匹配和区分。
ACL的组成
ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。
规则编号
- 规则编号(Rule ID):
一个ACL中的每一条规则都有一个相应的编号。 - 步长(Step):
步长是系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5。步长的作用是为了方便后续在旧规则之间,插入新的规则。 - Rule ID分配规则:
系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。
如果希望增加1条规则,该如何处理?
|
通配符
通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。
通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。
- 匹配规则:
“0”表示“匹配”;“1”表示“随机分配”
例1:如何匹配192.168.1.1/24对应网段的地址?
* 192.168.1.0 0.0.0.255 *
例2:如何匹配192.168.1.0/24这个子网中的奇数IP地址,例如192.168.1.1、192.168.1.3、192.168.1.5等?
* 192.168.1.1 0.0.0.254 *
特殊例子:
精确匹配192.168.1.1这个IP地址
* 192.168.1.1 0.0.0.0 *
或
* 192.168.1.1 0 *匹配所有IP地址
* 0.0.0.0 255.255.255.255
或
* any *
ACL的分类与标识
基于ACL规则定义方式的分类:
| 分类 | 编号范围 | 定义参数 |
|---|---|---|
| 基本ACL | 2000~2999 | 源IP地址等 |
| 高级ACL | 3000~3999 | 源IP地址、目的IP地址、 源端口、目的端口、协议 |
| 二层ACL | 4000~4999 | 源MAC地址、目的MAC地址、以太帧协议类型等 |
| 自定义ACL | 5000~5999 | 略 |
基本ACL:
高级ACL:
ACL的匹配机制
- ACL匹配机制有两种:config模式和auto模式
缺省(默认)情况下为config模式
系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。
auto模式是指系统使用“深度优先”的原则,将规则按照精确度从高到底进行排序,系统按照精确度从高到低的顺序进行报文匹配
- 注:在auto模式下不能写rule id,由系统自动分配
如在auto模式下的acl3000中存在以下规则:
如果在acl 3000中插入`rule deny ip source 1.1.1.1 0`(目的IP地址是主机地址,优先级高于上图中的两条规则),系统将按照规则的优先级关系,重新为各规则分配编号。插入新规则后,新的排序如下。
ACL的匹配位置
ACL只针对穿越流量(即匹配的源IP不能的路由器自己的):
入站 (Inbound)及出站 (Outbound)方向:
基本ACL
组成:*rule + (规则ID) + 动作(deny拒绝/permit 允许) + source + IP地址 + 通配符*
配置:
- 案例1:拒绝源为10.1.12.1 的流量
|
- 案例2:拒绝所有流量
//1. 创建ACL:
[R2]acl 2000
//2. 制定规则:特殊案例!
[R2-acl-basic-2000]rule 5 deny source any //过滤所有
//3. 调用acl:
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
高级ACL
组成:*rule + (规则ID) + 动作(deny拒绝/permit 允许) + (二层协议) source + IP地址 + 通配符 + destination + IP地址 + 通配符 + destination-port + (取值范围) + (三层协议/端口号)*
注:
配置:
- 案例1:使R1的1.1.1.1不能平通R3但允许10.1.12.1ping通R3
|
- 案例2:使R2不能远程R3,但允许R1远程R3
|