华为H3C ACL配置

时间:2024-02-20 11:48:25

一、ACL功能简介

随着网络规模的扩大和流量的增加,对网络安全的控制和对带宽的分配成为网络管理的重要内容。通过对数据包进行过滤,可以有效防止非法用户对网络的访问,同时也可以控制流量,节约网络资源。ACL(Access Control List,访问控制列表)即是通过配置对报文的匹配规则和处理操作来实现包过滤的功能。

二、ACL种类

1. 基本ACL:只根据数据包的源IP地址制定规则,序号为2000~2999,定义时间段也属于基本ACL。

2. 高级ACL:高级ACL可以使用数据包的源IP地址、目的IP地址、IP承载的协议类型、针对协议的特性(例如TCP或UDP的源端口、目的端口,ICMP协议的消息类型、消息码等)内容定义规则。高级ACL序号取值范围3000~3999(3998与3999是系统为集群管理预留的编号,用户无法配置)。高级ACL支持对三种报文优先级的分析处理:ToS(Type of Service,服务类型)优先级、IP优先级和DSCP(Differentiated Services CodePoint,差分服务编码点)优先级。

3. 二层ACL:根据数据包的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定规则。用户可以利用高级ACL定义比基本ACL更准确、更丰富、更灵活的规则。二层ACL的序号取值范围为4000~4999。

4. 用户自定义ACL:以数据包的头部为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。

三、ACL匹配顺序

一条ACL可以包含多个规则,因此会出现规则匹配顺序,其支持两种匹配顺序:一种是配置顺序(根据用户配置规则的先后顺序进行规则匹配,一种是自动排序(根据深度优先的顺序进行规则匹配)

1. 基本ACL的“深度优先”顺序判断原则

(1) 先比较源IP地址范围,源IP地址范围小(反掩码中“0”位的数量多)的规则优先;

(2) 如果源IP地址范围相同,则比较是否带有fragment参数,带有fragment参数的规则优先;

(3) 如果源IP地址范围、是否带有fragment参数这两个判断条件也相同,则先配置的规则优先。

  2. 高级ACL的“深度优先”顺序判断原则

 (1) 首先比较协议范围,指定了IP协议承载的协议类型的规则优先; 

(2) 如果协议范围相同,则比较源IP地址范围,源IP地址范围小(反掩码中“0”位的数量多)的规则优先;

(3)如果协议范围、源IP地址范围相同,则比较目的IP地址范围,目的IP地址范围小(反掩码中“0”位的数量多)的规则优先; 

(4) 如果协议范围、源IP地址范围、目的IP地址范围相同,则比较四层端口号(TCP/UDP端口号)范围,四层端口号范围小的规则优先; 

(5)如果协议范围、源IP地址范围、目的IP地址范围、四层端口号范围相同,则比较规则中参数的个数,参数个数多的规则优先。

 如果规则A与规则B的协议范围、源IP地址范围、目的IP地址范围、四层端口号范围完全相同,并且其它的参数个数也相同,将按照加权规则进行排序。设备为每个参数设定一个固定的权值,最终的匹配顺序由各个参数的权值和参数的取值来决定。各个参数自身的权值从大到小排列为icmp-type、established、dscp、tos、precedence、fragment。比较规则如下: z 设备以一个固定权值依次减去规则中所配置的各个参数自身的权值,所得结果小的规则优先; z 如果各个规则中参数种类完全相同,则这些参数取值的累加和小的规则优先。

五、ACL在交换机(路由器)上的应用方式

1. ACL直接下发到硬件的情况

 ACL可以直接下发到交换机(路由器)的硬件,用于数据转发过程中的报文过滤和流分类。此时一条ACL中多个规则的匹配顺序是由交换机的硬件决定的,对于S3100系列以太网交换机,匹配顺序为先下发的规则先匹配。 ACL直接下发到硬件的情况包括:通过ACL过滤转发数据、配置QoS功能时引用ACL等。 

2. ACL被上层软件引用的情况

 ACL也可以用来对由软件处理的报文进行过滤和流分类。此时ACL规则的匹配顺序有两种:1)config:按用户配置的先后顺序;2)auto:按“深度优先”的顺序。 

用户可以在定义ACL的时候指定一条ACL中多个规则的匹配顺序。用户一旦指定某一条ACL的匹配顺序,就不能再更改该顺序。只有把该ACL中所有的规则全部删除后,才能重新指定其匹配顺序。 ACL被上层软件引用的情况包括:路由策略引用ACL、对Telnet、SNMP和WEB登录用户进行控制时引用ACL等。

六、ACL配置

1. 配置时间段

ACL时间段配置属于基本ACL,其配置步骤如表

配置步骤 命令 说明
进入系统视图 system-view  
创建一个时间段 time-range time-name { start-time to end-time 
days-of-the-week from start-time start-date ]
 [ to end-time end-date ] | from start-time start-date 
[ to end-time end-date ] | to end-time end-date } []中为可选项,可不填
举例
(1)配置周期时间段,时间为周一到周五每天8:00到18:00

<Sysname> system-view 

[Sysname] time-range test 8:00 to 18:00 working-day 

(2)配置绝对时间段,时间为2017年1月28日15:00到2018年1月28日15:00
<Sysname> system-view

[Sysname] time-range test from 15:001/28/2017 to 15:00 1/28/2018 

(3)查看配置情况

[Sysname] display time-range test 

2. 配置基本ACL

(1)配置步骤

配置步骤 命令 说明
进入系统视图 system-view  
创建并进入基本ACL视图 acl number acl-number [match-order] {auto |config} 缺省为config
定义基本ACL规则 rule [rule-id] {deny | permit} [rule-string]  
定义ACL的描述信息 description text  
(2)配置举例

配置ACL2000,禁止源192.168.0.1的报文通过

<Sysname> system-view 

[Sysname] acl number 2000 

[Sysname-acl-basic-2000] rule deny source 192.168.0.1 0

显示配置

[sysname] display acl 2000

3. 配置高级ACL

配置步骤 命令 说明
进入系统视图 system-view  
创建并进入高级ACL视图 acl number acl-number [match-order {auto |config}]  
定义高级ACL规则 rule [rule-id] {permit |deny} protocol [rule-string]  
定义高级ACL规则的注释信息 rule rule-id comment text 可选,缺省情况没有注释
定义ACL描述信息 description text  
举例
<Sysname> system-view 

[Sysname] acl number 3000 

[Sysname-acl-adv-3000] rule permit tcp source 129.9.0.0 0.0.255.255 destination 202.38.160.0 0.0.0.255 destination-port eq 80  

3. 配置二层ACL

配置步骤同高级ACL配置,但要首先确定源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等参数

举例:

<Sysname> system-view 

[Sysname] acl number 4000 

[Sysname-acl-ethernetframe-4000] rule deny cos 3 source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff  

需要注意的是:1)当高级ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当高级ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。 2)在创建一条ACL规则的时候,用户可以不指定规则的编号,设备将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。3) 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。 4) 当高级ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。

七、ACL下发

ACL规则生效需要对规则进行下发,硬件下发方式有四种方式。

1)全局下发ACL:对所有端口接收的报文应用ACL规则进行过滤。

2)VLAN下发ACL:对所有端口接收的属于指定VLAN的报文应用ACL规则进行过滤。

3)端口组下发ACL:对端口组内所有端口接收的报文应用ACL规则进行过滤。

4)端口下发ACL:对端口接收的报文应用ACL规则进行过滤。

1. 全局下发ACL

配置步骤 命令 说明
进入系统视图 system-view  
全局下发ACL packet-filter inbound acl-rule  
举例:

在全局下发ACL,对所有端口接受的报文应用基本ACL2000进行过滤

<Sysname>system-view

[Sysname] packet-filter inbound ip-group 2000

2. VLAN下发ACL

配置步骤 命令 说明
进入系统视图 system-view  
全局下发ACL packet-filter vlan vlan-id inbound acl-rule  
举例:

在全局下发ACL,对所有端口接受的报文应用基本ACL2000进行过滤

<Sysname>system-view

[Sysname] packet-filter vlan 10 inbound ip-group 2000

3. 端口组下发ACL

配置步骤 命令 说明
进入系统视图 system-view  
进入端口组视图 port-group group-id  
端口组下发ACL packet-filter inbound acl-rule  
举例:

在全局下发ACL,对所有端口接受的报文应用基本ACL2000进行过滤

<Sysname>system-view

[Sysname]port-group 1

[Sysname-port-group-1] packet-filter inbound ip-group 2000

4. 端口下发ACL
配置步骤 命令 说明
进入系统视图 system-view  
进入端口组视图 interface interface-type interface-number  
端口组下发ACL packet-filter inbound acl-rule
举例:

在全局下发ACL,对所有端口接受的报文应用基本ACL2000进行过滤

<Sysname>system-view

[Sysname] interface e 0/0/1

[Sysname-Ethernet0/0/1] packet-filter inbound ip-group 2000

5. ACL被上层软件引用

(1)Telnet登录用户控制

在VTY用户界面引用基本ACL 2000,对Telnet登录用户进行控制。

 [Sysname] user-interface vty 0 4 

[Sysname-ui-vty0-4] acl 2000 inbound

(2)通过源IP对WEB登录控制
通过源IP地址对WEB登录用户进行控制,仅允许IP地址为10.110.100.46的WEB用户通过HTTP方式访问交换机。EB登录用户进行控制配置

<Sysname> system-view 

[Sysname] acl number 2001 match-order config 

[Sysname-acl-basic-2001] rule 1 permit source 10.110.100.46 0 

[Sysname-acl-basic-2001] quit

[Sysname] ip http acl 2000

 

 


高级ACL:根据数据包的源IP地址、目的IP地址、IP承载的协议类型、协议特性等三、四层信息制定规则。

配置步骤 命令 说明
进入系统视图 system-view
进入端口组视图 port-group group-id
端口组下发ACL packet-filter inbound acl-rule