ACL技术概述
用途
telnet、ftp、http等
NAT、IPSec、QoS
- 路由过滤(的匹配)
ACL,IP Prefix-list
可以进行匹配和过滤的内容
源、目IP地址,协议号(TCP/UDP),源、目四层端口
可以只匹配其中一个,也可以匹配多个
ACL基本概念和工作原理
ACL组成
ACL编号与分类
ACL编号:每个ACL都需要分配一个编号,称为ACL编号,用来标识ACL。
基本ACL
1.2000-2999
2.仅使用报文的源IP地址来定义规则
3.不够直观,这个编号的ACL是干啥的?
高级ACL
1.3000-3999
2.可以对IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP(UDP)源/目的端口号来进行规则定义,会更加灵活地进行匹配。
3.基本ACL能做的,高级ACL也能做
4.不够直观,同上
数字ACL
acl number 2000=acl 2000
acl number 3000=acl 3000
命名ACL
1.不能命名为数字
2.使用acl name NAME basic来创建基本命名ACL
3.使用ACL name NAME advance来创建高级命名ACL
ACL规则编号与步长
规则
一个ACL通常由若干条“permit/deny”语句组成,每条语句就是该ACL的一条规则。
规则编号
每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以自定义,也可以系统自动分配。ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。
1.系统自动为ACL规则分配编号时,每个相邻规则编号之间会有一个差值,这个差值称为“步长”。缺省步长为5,所以规则编号就是5/10/15…以此类推。
2.如果手工指定了一条规则,但未指定规则编号,系统就会使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。
步长可以调整,如果将步长改为2,系统则会自动从当前步长值开始重新排列规则编号,规则编号就变成2、4、6…。
3.步长直接rule 1/2/3/4…为什么不可以?
先来看一个小题目:如果希望增加一条规则,该如何处理?
可以在rule 10和rule 15之间,手工加入一条rule 11。
因此,设置一定长度的步长的作用,是方便后续在旧规则之间插入新的规则。
通配符
0表示完全匹配,1表示不关心,对于0和1的排列顺序没有要求
匹配奇数的主机
匹配所有
any或者x.x.x.x 255.255.255.255
反掩码(wild card)
一般用于OSPF中,用于确定哪些接口启用OSPF
必须是先连续的0,后连续的1。否则报错
但是很奇葩的是,如果你写成掩码,系统也会自动给你更改为反掩码。
掩码(ip address mask)
用于确定网络位和主机位,必须是连续的1+连续的0,其中(0是可选的)
动作
每条规则中的permit或deny,就是与这条规则相对应的处理动作。permit指“允许”,deny指“拒绝”,但是ACL一般是结合其他技术使用,不同的场景,处理动作的含义也有所不同。
在IA阶段,ACL更多与流量过滤技术结合使用(即流量过滤中调用ACL),permit就是“允许通行”的意思,deny就是“拒绝通行”的意思。
ACL匹配机制
3.都不匹配则匹配默认(Cisco是拒绝所有,Huawei的ACL用于Traffic-filter的时候是允许所有)
一条ACL可以由多条“deny或permit”语句组成,每一条语句描述一条规则,这些规则可能存在包含关系,也可能有重复或矛盾的地方,因此ACL的匹配顺序是十分重要的。
华为设备支持两种匹配顺序:自动排序(auto模式)和配置顺序(config模式)。缺省的ACL匹配顺序是config模式。
自动排序auto
是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,并按照精确度从高到低的顺序进行报文匹配。——这个比较复杂。
配置顺序config
系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。
ACL使用的注意事项
事项一
设备的一个端口的一个方向只能使用一个ACL
inbound指的是进入该设备(可能访问该设备或者通过该设备进行转发)
outbound指的是离开该设备。
事项二
路由器的ACL在端口上使用,交换机在全局使用,可以针对1个VLAN使用多个ACL
*交换机上一般不适用于二层接口,因为一般而言多个二层端口属于一个VLAN
事项三
进入设备是先进行ACL处理,然后路由,先路由然后离开设备后碰到ACL再决定是否发送。
事项四
基本ACL靠近数据访问的目的,否则会滥杀无辜
高级ACL靠近数据访问的源,否则会造成带宽浪费,设备性能浪费
事项五
要先保证网络能够通信,再使用ACL,从而避免因为原本就是网络本来不同的情况下导致的乌龙。
ACL的基础配置及应用
[Huawei] acl [ number ] acl-number [ match-order config ]
acl-number:指定访问控制列表的编号。
match-order config:指定ACL规则的匹配顺序,config表示配置顺序。
[Huawei] acl name acl-name { basic | acl-number } [ match-order config ]
acl-name:指定创建的ACL的名称。
basic:指定ACL的类型为基本ACL。
配置基本ACL规则
[Huawei-acl-basic-2000] rule [ rule-id ] { deny | permit } [ source { source-address source-wildcard | any } | time-range time-name ]
rule-id:指定ACL的规则ID。
deny:指定拒绝符合条件的报文。
permit:指定允许符合条件的报文。
source { source-address source-wildcard | any }:指定ACL规则匹配报文的源地址信息。如果不配置,表示报文的任何源地址都匹配。其中:
source-address:指定报文的源地址。
source-wildcard:指定源地址通配符。
any:表示报文的任意源地址。相当于source-address为0.0.0.0或者source-wildcard为255.255.255.255。
time-range time-name:指定ACL规则生效的时间段。其中,time-name表示ACL规则生效时间段名称。如果不指定时间段,表示任何时间都生效。
基本ACL过滤数据流量
配置思路:
配置基本ACL和流量过滤,使设备可以对特定网段的报文进行过滤。
配置步骤:
如图完成路由器的IP地址和路由相关配置。
创建基本ACL 2000并配置ACL规则,拒绝192.168.1.0/24网段的报文通过,允许其他网段的报文通过。
配置流量过滤。
traffic-filter命令,用来在接口上配置基于ACL对报文进行过滤。
命令格式:traffic-filter { inbound | outbound } acl { acl-number | name acl-name }
inbound:指定在接口入方向上配置报文过滤。
outbound:指定在接口出方向上配置报文过滤。
acl:指定基于IPv4 ACL对报文进行过滤。
[Huawei] acl [ number ] acl-number [ match-order config ]
acl-number:指定访问控制列表的编号。
match-order config:指定ACL规则的匹配顺序,config表示配置顺序。
[Huawei] acl name acl-name { advance | acl-number } [ match-order config ]
acl-name:指定创建的ACL的名称。
advance:指定ACL的类型为高级ACL。
高级ACL限制不同网段的用户互访
Traffic Policy和Traffic-filter的对比
Traffic Policy
模块化QoS命令行MQC(Modular QoS Command-Line Interface)是指通过将具有某类共同特征的报文划分为一类,并为同一类报文提供相同的服务,也可以对不同类的报文提供不同的服务。
MQC包含三个要素:流分类(traffic classifier)、流行为(traffic behavior)和流策略(traffic policy)。
可以理解成功能涵盖Traffic-filter,但是强于Traffic-filter
Traffic-filter
基于ACL的简化流策略,与流策略相比,基于ACL的简化流策略不需要单独创建流分类、流行为或流策略,配置更为简洁;但是由于仅基于ACL规则对报文进行匹配,因此匹配规则没有流策略丰富。
从V200R002C00版本开始,新增traffic-filter命令,接口下同时配置traffic-policy和traffic-filter,根据流策略中流行为的不同,生效顺序不同。当流策略中的流行为中配置了queue af、queue ef、queue llq或子策略时,traffic-policy先生效,否则traffic-filter先生效。
配置案例
拓扑
需求一
使用标准ACL2000 ,禁止192.168.10.0/24用户访问Web服务器。
acl 2000
rule 5 deny source 192.168.10.0 0.0.0.255
rule 10 permit source any (可选)
Q:在哪台设备上的配置,在哪儿使用?
A:
需求二
使用高级ACL,禁止192.168.10.0/24用户访问Web服务器。
rule 5 deny tcp source 192.168.10.0 0.0.0.255 destination 192.168.40.1 0 destination-port eq www
A:
注意:如果时使用ensp中的交换机全局调用ACL,那么要注意,高级ACL无法匹配到四层具体某个端口。但是路由器可以。
因此交换机中就需要使用
acl number 3000
rule 5 deny tcp source 192.168.10.0 0.0.0.255 destination 192.168.40.1 0
不能写成
acl number 3000
rule 5 deny tcp source 192.168.10.0 0.0.0.255 destination 192.168.40.1 0 destination-port eq www