• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

09-ACL和QoS配置指导

目录

01-ACL配置

本章节下载 01-ACL配置  (385.69 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/SR_Router/SR8800/Configure/Operation_Manual/H3C_SR8800_CG-R3725P02-6W101/09/201601/906924_30005_0.htm

01-ACL配置


1 ACL配置

说明

本文中的“SPC单板”指的是单板丝印以“SPC”开头(如SPC-GT48L)的单板,“SPE单板”指的是单板丝印以“SPE”开头(如SPE-1020-E-II)的单板,“MPE单板”指的是单板丝印以“MPE”开头(如MPE-1004)的单板。

 

1.1  ACL简介

ACL(Access Control List,访问控制列表)是一或多条规则的集合,用于识别报文流。这里的规则是指描述报文匹配条件的判断语句,匹配条件可以是报文的源地址、目的地址、端口号等。网络设备依照这些规则识别出特定的报文,并根据预先设定的策略对其进行处理。

ACL作为一种规则,可以应用在诸多领域。其中最基本的应用就是利用ACL规则进行报文过滤,即使用不同类型的ACL规则对相应类型的报文进行匹配过滤。此外,通过与其它功能的配合,ACL还可应用于诸如策略路由、包过滤防火墙、QoS策略等领域,有关ACL在这些领域的具体应用,请参见相关的配置指导。

说明

ACL本身只能识别报文,而无法对识别出的报文进行处理,对这些报文的具体处理方法由应用ACL的业务模块来决定。

 

1.1.1  ACL的编号和名称

用户在创建ACL时必须为其指定编号,不同的编号对应不同类型的ACL,如表1-1所示;同时,为了便于记忆和识别,用户在创建ACL时还可选择是否为其设置名称。ACL一旦创建,便不允许用户再为其设置名称、修改或删除其原有名称。

当ACL创建完成后,用户就可以通过指定编号或名称的方式来指定该ACL,以便对其进行操作。

说明

IPv4基本ACL和IPv4高级ACL的编号和名称只在IPv4中唯一;IPv6基本ACL和IPv6高级ACL的编号和名称也只在IPv6中唯一。

 

1.1.2  ACL的分类

根据规则制订依据的不同,可以将ACL分为如表1-1所示的几种类型。

表1-1 ACL的分类

ACL类型

编号范围

适用的IP版本

规则制订依据

基本ACL

2000~2999

IPv4

报文的源IPv4地址

IPv6

报文的源IPv6地址

高级ACL

3000~3999

IPv4

报文的源IPv4地址、目的IPv4地址、报文优先级、IPv4承载的协议类型及特性等三、四层信息

IPv6

报文的源IPv6地址、目的IPv6地址、报文优先级、IPv6承载的协议类型及特性等三、四层信息

二层ACL

4000~4999

-

报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息

用户自定义ACL

5000~5999

IPv4和IPv6

以报文头为基准,指定从报文的第几个字节开始与掩码进行“与”操作,并将提取出的字符串与用户定义的字符串进行比较,从而找出相匹配的报文

 

说明

对于SPE单板来说,二层ACL被报文过滤或QoS流分类引用时,不支持匹配IPv6报文。

 

1.1.3  ACL的规则匹配顺序

当一个ACL中包含多条规则时,报文会按照一定的顺序与这些规则进行匹配,一旦匹配上某条规则便结束匹配过程。ACL的规则匹配顺序有以下两种:

·     配置顺序:按照规则编号由小到大进行匹配。

·     自动排序:按照“深度优先”原则由深到浅进行匹配,各类型ACL的“深度优先”排序法则如表1-2所示。

说明

·     用户自定义ACL的规则只能按照配置顺序进行匹配。

·     当报文与各条规则进行匹配时,一旦匹配上某条规则,就不会再继续匹配下去,系统将依据该规则对该报文执行相应的操作。

 

表1-2 各类型ACL的“深度优先”排序法则

ACL类型

“深度优先”排序法则

IPv4基本ACL

(1)     先判断规则的匹配条件中是否包含VPN实例,包含者优先

(2)     如果VPN实例的包含情况相同,再比较源IPv4地址范围,较小者优先

(3)     如果源IPv4地址范围也相同,再比较配置的先后次序,先配置者优先

IPv4高级ACL

(1)     先判断规则的匹配条件中是否包含VPN实例,包含者优先

(2)     如果VPN实例的包含情况相同,再比较协议范围,指定有IPv4承载的协议类型者优先

(3)     如果协议范围也相同,再比较源IPv4地址范围,较小者优先

(4)     如果源IPv4地址范围也相同,再比较目的IPv4地址范围,较小者优先

(5)     如果目的IPv4地址范围也相同,再比较四层端口(即TCP/UDP端口)号的覆盖范围,较小者优先

(6)     如果四层端口号的覆盖范围无法比较,再比较配置的先后次序,先配置者优先

IPv6基本ACL

(1)     先判断规则的匹配条件中是否包含VPN实例,包含者优先

(2)     如果VPN实例的包含情况相同,再比较源IPv6地址范围,较小者优先

(3)     如果源IPv6地址范围也相同,再比较配置的先后次序,先配置者优先

IPv6高级ACL

(1)     先判断规则的匹配条件中是否包含VPN实例,包含者优先

(2)     如果VPN实例的包含情况相同,再比较协议范围,指定有IPv6承载的协议类型者优先

(3)     如果协议范围相同,再比较源IPv6地址范围,较小者优先

(4)     如果源IPv6地址范围也相同,再比较目的IPv6地址范围,较小者优先

(5)     如果目的IPv6地址范围也相同,再比较四层端口(即TCP/UDP端口)号的覆盖范围,较小者优先

(6)     如果四层端口号的覆盖范围无法比较,再比较配置的先后次序,先配置者优先

二层ACL

(1)     先比较源MAC地址范围,较小者优先

(2)     如果源MAC地址范围相同,再比较目的MAC地址范围,较小者优先

(3)     如果目的MAC地址范围也相同,再比较配置的先后次序,先配置者优先

 

说明

·     比较IPv4地址范围的大小,就是比较IPv4地址通配符掩码中“0”位的多少:“0”位越多,范围越小。通配符掩码(又称反向掩码)以点分十进制表示,并以二进制的“0”表示“匹配”,“1”表示“不关心”,这与子网掩码恰好相反,譬如子网掩码255.255.255.0对应的通配符掩码就是0.0.0.255。此外,通配符掩码中的“0”或“1”可以是不连续的,这样可以更加灵活地进行匹配,譬如0.255.0.255就是一个合法的通配符掩码。

·     比较IPv6地址范围的大小,就是比较IPv6地址前缀的长短:前缀越长,范围越小。

·     比较MAC地址范围的大小,就是比较MAC地址掩码中“1”位的多少:“1”位越多,范围越小。

 

1.1.4  ACL的规则描述和注释

在一个ACL中用户可以创建多条规则,为了方便标识这些规则的用途,用户可以为单条规则添加描述信息,也可以在各条规则之间插入注释信息来对前一段或后一段规则进行统一描述。

1. 规则描述信息

规则描述信息主要用于对单条规则进行单独标识。当需要对各条规则进行不同的标识或对某条规则进行特别标识时,适用此方式。

2. 规则注释信息

规则注释信息主要用于对一段规则进行统一标识。当需要对一段规则进行相同的标识时,如果采用对每条规则都添加相同描述信息的方式,需要进行大量配置,效率会非常低下。在这种情况下,可以在这段规则的前、后插入注释信息的方式来提高标识效率,即:在这段规则的首条规则之前以及末条规则之后分别插入一条注释信息,通过首、尾这两条注释信息就可以标识整段规则的用途。

1.1.5  ACL的步长

ACL中的每条规则都有自己的编号,这个编号在该ACL中是唯一的。在创建规则时,可以手工为其指定一个编号,如未手工指定编号,则由系统为其自动分配一个编号。由于规则的编号可能影响规则匹配的顺序,因此当由系统自动分配编号时,为了方便后续在已有规则之前插入新的规则,系统通常会在相邻编号之间留下一定的空间,这个空间的大小(即相邻编号之间的差值)就称为ACL的步长。譬如,当步长为5时,系统会将编号0、5、10、15……依次分配给新创建的规则。

系统为规则自动分配编号的方式如下:系统从0开始,按照步长自动分配一个大于现有最大编号的最小编号。譬如原有编号为0、5、9、10和12的五条规则,步长为5,此时如果创建一条规则且不指定编号,那么系统将自动为其分配编号15。

说明

如果步长发生了改变,ACL内原有全部规则的编号都将自动从0开始按新步长重新排列。譬如,某ACL内原有编号为0、5、9、10和15的五条规则,当修改步长为2之后,这些规则的编号将依次变为0、2、4、6和8。

 

1.1.6  ACL对IPv4分片报文的处理

传统的报文过滤并不处理所有的IPv4报文分片,而只对首片分片报文进行匹配处理,而对后续分片一律放行。这样,网络攻击者可能构造后续的分片报文进行流量攻击,就带来了安全隐患。H3C的设备能够对IPv4分片报文进行如下处理:

·     对所有的分片报文进行三层(IP层)匹配过滤。

·     对于包含高级信息的IPv4 ACL规则项(譬如TCP/UDP端口号、ICMP类型等),提供标准匹配和精确匹配两种匹配方式,缺省的匹配方式为标准匹配方式。

说明

标准匹配和精确匹配的含义如下:

·     标准匹配:只匹配三层信息,而三层以外的信息将被忽略。

·     精确匹配:对IPv4 ACL定义的所有的规则项进行匹配。

这两种匹配方式只有包过滤防火墙支持,具体介绍请参见“安全配置指导”中的“包过滤防火墙”。

 

1.1.7  流模板

流模板的主要功能是对硬件下发的ACL规则中所能包含的信息进行限制。在接口下发的ACL规则中包含的信息必须是该接口下发流模板中定义信息的子集。比如,流模板定义了源IP地址、目的IP地址、源TCP端口、目的TCP端口等限制,只有在上述范围内的ACL规则可以正确下发到硬件中,用于包过滤、QoS等功能;否则ACL规则将不能下发到硬件中,导致包过滤、QoS等功能不能引用此ACL规则。

设备支持的流模板包括缺省流模板和用户自定义流模板。

注意

流模板只对基于硬件处理的ACL有效,对基于软件处理的ACL(如路由策略中引用的ACL)不生效。

 

1.1.8  ACL的应用

ACL作为一种规则,可以应用在诸多领域。其中最基本的应用就是利用ACL规则进行报文过滤,即使用不同类型的ACL规则对相应类型的报文进行匹配过滤。此外,通过与其它功能的配合,ACL还可应用于诸如策略路由、包过滤防火墙、QoS策略等领域,有关ACL在这些领域的具体应用,请参见相关的配置指导。

如果ACL同时在入方向应用策略路由、包过滤防火墙、QoS策略,那么它的生效优先级如下图所示:

图1-1 应用在入方向的优先级示意图

 

如果ACL同时在出方向应用策略路由、包过滤防火墙、QoS策略,那么它的生效优先级如下图所示:

图1-2 应用在出方向的优先级示意图

 

关于包过滤防火墙的配置请参见“安全配置指导”中的“包过滤防火墙”;关于策略路由配置请参见“三层技术-IP路由配置指导”中的“策略路由”、“IPv6策略路由”;关于QoS策略参见“ACL和QoS配置指导”中的“QoS”。

1.2  ACL配置任务简介

表1-3 IPv4 ACL配置任务简介

配置任务

说明

详细配置

配置ACL的生效时间段

可选

本配置任务适用于IPv4和IPv6

1.3.1 

配置基本ACL

四者至少选其一

本配置任务适用于IPv4和IPv6

1.3.2 

配置高级ACL

本配置任务适用于IPv4和IPv6

1.3.3 

配置二层ACL

本配置任务适用于IPv4和IPv6

1.3.4 

配置用户自定义ACL

本配置任务适用于IPv4和IPv6

1.3.5 

复制ACL

可选

本配置任务适用于IPv4和IPv6

1.3.6 

配置流模板

可选

本配置任务适用于IPv4和IPv6

1.3.7 

 

1.3  配置ACL

1.3.1  配置ACL的生效时间段

时间段定义了一个时间范围。当一个ACL规则只需在某个特定的时间范围内生效时,可以先配置好这个时间段,然后在配置该ACL规则时引用该时间段,这样该ACL规则就只能在该时间段定义的时间范围内生效。时间段可分为以下两种类型:

·     周期时间段:表示以一周为周期(如每周一的8至12点)循环生效的时间段。

·     绝对时间段:表示在指定时间范围内(如2011年1月1日8点至2011年1月3日18点)生效的时间段。

·     每个时间段都以一个名称来标识,用户最多可创建256个不同名称的时间段。一个时间段内可包含一或多个周期时间段(最多32个)和绝对时间段(最多12个),当一个时间段内包含有多个周期时间段和绝对时间段时,系统将先分别取各周期时间段的并集和各绝对时间段的并集,再取这两个并集的交集作为该时间段最终生效的时间范围。

表1-4 配置ACL的生效时间段

操作

命令

说明

进入系统视图

system-view

-

创建时间段

time-range time-range-name { start-time to end-time days [ from time1 date1 ] [ to time2 date2 ] | from time1 date1 [ to time2 date2 ] | to time2 date2 }

必选

缺省情况下,不存在任何时间段

 

1.3.2  配置基本ACL

1. 配置IPv4基本ACL

IPv4基本ACL根据报文的源IP地址来制订规则,对IPv4报文进行匹配。

表1-5 配置IPv4基本ACL

操作

命令

说明

进入系统视图

system-view

-

创建IPv4基本ACL,并进入IPv4基本ACL视图

acl number acl-number [ name acl-name ] [ match-order { auto | config } ]

必选

缺省情况下,不存在任何ACL

IPv4基本ACL的编号范围为2000~2999

如果在创建IPv4基本ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图

配置ACL的描述信息

description text

可选

缺省情况下,ACL没有任何描述信息

配置规则编号的步长

step step-value

可选

缺省情况下,规则编号的步长为5

创建规则

rule [ rule-id ] { deny | permit } [ counting | fragment | logging | source { source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *

必选

缺省情况下,IPv4基本ACL内不存在任何规则

logging参数需要使用该ACL的模块支持日志记录功能才能生效,例如包过滤防火墙

使用logging字段打印日志时,必须和规则匹配统计功能组合使用,即需要在ACL中配置hardware-count enable命令或在ACL的规则中同时配置logging字段和counting字段

为指定规则配置描述信息

rule rule-id comment text

可选

缺省情况下,规则没有任何描述信息

配置规则注释信息

rule [ rule-id ] remark text

可选

缺省情况下,ACL内没有任何规则注释信息

使能ACL的规则匹配统计功能

hardware-count enable

可选

缺省情况下,ACL的规则匹配统计功能处于关闭状态

 

说明

如果在创建IPv4基本ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。

 

2. 配置IPv6基本ACL

IPv6基本ACL根据报文的源IPv6地址来制订规则,对IPv6报文进行匹配。

表1-6 配置IPv6基本ACL

操作

命令

说明

进入系统视图

system-view

-

创建IPv6基本ACL,并进入IPv6基本ACL视图

acl ipv6 number acl6-number [ name acl6-name ] [ match-order { auto | config } ]

必选

缺省情况下,不存在任何ACL

IPv6基本ACL的编号范围为2000~2999

如果在创建IPv6基本ACL时为其指定了名称,则也可以使用acl ipv6 name acl6-name命令通过指定名称的方式进入其视图

配置ACL的描述信息

description text

可选

缺省情况下,ACL没有任何描述信息

配置规则编号的步长

step step-value

可选

缺省情况下,规则编号的步长为5

创建规则

rule [ rule-id ] { deny | permit } [ counting | fragment | logging | routing [ type routing-type ] | source { ipv6-address prefix-length | ipv6-address/prefix-length | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *

必选

缺省情况下,IPv6基本ACL内不存在任何规则

logging参数需要使用该ACL的模块支持日志记录功能才能生效,例如包过滤防火墙

使用logging字段打印日志时,必须和规则匹配统计功能组合使用,即需要在ACL中配置hardware-count enable命令或在ACL的规则中同时配置logging字段和counting字段

设备暂不支持routing [ type routing-type ]参数

为指定规则配置描述信息

rule rule-id comment text

可选

缺省情况下,规则没有任何描述信息

配置规则注释信息

rule [ rule-id ] remark text

可选

缺省情况下,ACL内没有任何规则注释信息

使能ACL的规则匹配统计功能

hardware-count enable

可选

缺省情况下,ACL的规则匹配统计功能处于关闭状态

 

说明

·     如果在创建IPv6基本ACL时为其指定了名称,则也可以使用acl ipv6 name acl6-name命令通过指定名称的方式进入其视图。

·     对于SPC单板或MPE单板,只有ACL key长度为80Bytes或48Bytes的情况下,在QoS策略中配置IPv6 基本ACL时才会配置成功。关于ACL key长度的介绍请参见“ACL和QoS命令参考”中的“ACL”。

 

1.3.3  配置高级ACL

1. 配置IPv4高级ACL

IPv4高级ACL可根据报文的源IP地址、目的IP地址、报文优先级、IP承载的协议类型及特性(如TCP/UDP的源端口和目的端口、TCP报文标识、ICMP协议的消息类型和消息码等)等信息来制定规则,对IPv4报文进行匹配。用户可利用IPv4高级ACL制订比IPv4基本ACL更准确、丰富、灵活的规则。

表1-7 配置IPv4高级ACL

操作

命令

说明

进入系统视图

system-view

-

创建IPv4高级ACL,并进入IPv4高级ACL视图

acl number acl-number [ name acl-name ] [ match-order { auto | config } ]

必选

缺省情况下,不存在任何ACL

IPv4高级ACL的编号范围为3000~3999

如果在创建IPv4高级ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图

配置ACL的描述信息

description text

可选

缺省情况下,ACL没有任何描述信息

配置规则编号的步长

step step-value

可选

缺省情况下,规则编号的步长为5

创建规则

rule [ rule-id ] { deny | permit } protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { dest-addr dest-wildcard | any } | destination-port operator port1 [ port2 ] | dscp dscp | fragment | icmp-type { icmp-type [ icmp-code ] | icmp-message } | logging | precedence precedence | reflective | source { sour-addr sour-wildcard | any } | source-port operator port1 [ port2 ] | time-range time-range-name | tos tos | vpn-instance vpn-instance-name ] *

必选

缺省情况下,IPv4高级ACL内不存在任何规则

logging参数需要使用该ACL的模块支持日志记录功能才能生效,例如包过滤防火墙

使用logging字段打印日志时,必须和规则匹配统计功能组合使用,即需要在ACL中配置hardware-count enable命令或在ACL的规则中同时配置logging字段和counting字段

配置规则的描述信息

rule rule-id comment text

可选

缺省情况下,规则没有任何描述信息

配置规则注释信息

rule [ rule-id ] remark text

可选

缺省情况下,ACL内没有任何规则注释信息

使能ACL的规则匹配统计功能

hardware-count enable

可选

缺省情况下,ACL的规则匹配统计功能处于关闭状态

 

说明

如果在创建IPv4高级ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。

 

2. 配置IPv6高级ACL

IPv6高级ACL可根据报文的源IPv6地址、目的IPv6地址、报文优先级、IPv6承载的协议类型及特性(如TCP/UDP的源端口和目的端口、TCP报文标识、ICMPv6协议的消息类型和消息码等)等信息来制定规则,对IPv6报文进行匹配。用户可利用IPv6高级ACL制订比IPv6基本ACL更准确、丰富、灵活的规则。

表1-8 配置IPv6高级ACL

操作

命令

说明

进入系统视图

system-view

-

创建IPv6高级ACL,并进入IPv6高级ACL视图

acl ipv6 number acl6-number [ name acl6-name ] [ match-order { auto | config } ]

必选

缺省情况下,不存在任何ACL

IPv6高级ACL的编号范围3000~3999

如果在创建IPv6高级ACL时为其指定了名称,则也可以使用acl ipv6 name acl6-name命令通过指定名称的方式进入其视图

配置ACL的描述信息

description text

可选

缺省情况下,ACL没有任何描述信息

配置规则编号的步长

step step-value

可选

缺省情况下,规则编号的步长为5

创建规则

rule [ rule-id ] { deny | permit } protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { dest dest-prefix | dest/dest-prefix | any } | destination-port operator port1 [ port2 ] | dscp dscp | flow-label flow-label-value | fragment | icmp6-type { icmp6-type icmp6-code | icmp6-message } | logging | routing [ type routing-type ] | source { source source-prefix | source/source-prefix | any } | source-port operator port1 [ port2 ] | time-range time-range-name | vpn-instance vpn-instance-name ] *

必选

缺省情况下,IPv6高级ACL内不存在任何规则

logging参数需要使用该ACL的模块支持日志记录功能才能生效,例如包过滤防火墙

使用logging字段打印日志时,必须和规则匹配统计功能组合使用,即需要在ACL中配置hardware-count enable命令或在ACL的规则中同时配置logging字段和counting字段

设备暂不支持routing [ type routing-type ] 参数

为指定规则配置描述信息

rule rule-id comment text

可选

缺省情况下,规则没有任何描述信息

配置规则注释信息

rule [ rule-id ] remark text

可选

缺省情况下,ACL内没有任何规则注释信息

使能ACL的规则匹配统计功能

hardware-count enable

可选

缺省情况下,ACL的规则匹配统计功能处于关闭状态

 

说明

对于SPC单板或MPE单板,只有ACL key长度为80Bytes或48Bytes的情况下,在QoS策略中配置IPv6 高级ACL时才会配置成功。关于ACL key长度的介绍请参见“ACL和QoS命令参考”中的“ACL”。

 

1.3.4  配置二层ACL

二层ACL可根据报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息来制定规则,对报文进行匹配。

表1-9 配置二层ACL

操作

命令

说明

进入系统视图

system-view

-

创建二层ACL,并进入二层ACL视图

acl number acl-number [ name acl-name ] [ match-order { auto | config } ]

必选

缺省情况下,不存在任何ACL

二层ACL的编号范围为4000~4999

如果在创建二层ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图

配置ACL的描述信息

description text

可选

缺省情况下,ACL没有任何描述信息

配置规则编号的步长

step step-value

可选

缺省情况下,规则编号的步长为5

创建规则

rule [ rule-id ] { deny | permit } [ cos vlan-pri | counting | dest-mac dest-address dest-mask | { lsap lsap-type lsap-type-mask | type protocol-type protocol-type-mask } | source-mac source-address source-mask | time-range time-range-name ] *

必选

缺省情况下,二层ACL内不存在任何规则

对于MPE单板,source-mac参数配置后不生效

为指定规则配置描述信息

rule rule-id comment text

可选

缺省情况下,规则没有任何描述信息

配置规则注释信息

rule [ rule-id ] remark text

可选

缺省情况下,ACL内没有任何规则注释信息

使能ACL的规则匹配统计功能

hardware-count enable

可选

缺省情况下,ACL的规则匹配统计功能处于关闭状态

 

说明

如果在创建二层ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。

 

1.3.5  配置用户自定义ACL

说明

用户自定义ACL,仅在SPC单板支持,SPE单板和MPE单板不支持。

 

用户自定义ACL可以以报文头为基准,指定从报文的第几个字节开始与掩码进行“与”操作,并将提取出的字符串与用户定义的字符串进行比较,从而找出相匹配的报文。

表1-10 配置用户自定义ACL

操作

命令

说明

进入系统视图

system-view

-

配置ACL key的长度模式

acl mode { 3 | 4 }

必选

缺省情况下,ACL key的长度模式为2

创建用户自定义ACL,并进入用户自定义ACL视图

acl number acl-number [ name acl-name ]

必选

缺省情况下,不存在任何ACL

用户自定义ACL的编号范围为5000~5999

如果在创建用户自定义ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图

配置ACL的描述信息

description text

可选

缺省情况下,ACL没有任何描述信息

创建规则

rule [ rule-id ] { deny | permit } [ { { ipv4 | ipv6 | l2 | l4 } rule-string rule-mask offset }&<1-8> ] [ counting | time-range time-range-name ] *

必选

缺省情况下,用户自定义ACL内不存在任何规则

丝印为SPC-GP48LA、SPC-GP24LA、SPC-GT48LA、SPC-XP4LA、SPC-XP2LA、SPC-XP16R的单板不支持ipv6参数

为指定规则配置描述信息

rule rule-id comment text

可选

缺省情况下,规则没有任何描述信息

配置规则注释信息

rule [ rule-id ] remark text

可选

缺省情况下,ACL内没有任何规则注释信息

使能ACL的规则匹配统计功能

hardware-count enable

可选

缺省情况下,ACL的规则匹配统计功能处于关闭状态

 

说明

用户自定义ACL的规则只能按照配置顺序进行匹配。

 

1.3.6  复制ACL

用户可通过复制一个已存在的ACL(即源ACL),来生成一个新的同类型ACL(即目的ACL)。除了ACL的编号和名称不同外,目的ACL与源ACL完全相同。

说明

目的ACL要与源ACL的类型相同,且目的ACL必须不存在,否则将导致复制失败。

 

1. 复制IPv4基本ACL、IPv4高级ACL、二层ACL或用户自定义ACL

表1-11 复制IPv4基本ACL、IPv4高级ACL、二层ACL或用户自定义ACL

操作

命令

说明

进入系统视图

system-view

-

复制并生成新的IPv4基本ACL、IPv4高级ACL、二层ACL或用户自定义ACL

acl copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }

必选

 

2. 复制IPv6基本ACL或IPv6高级ACL

表1-12 复制IPv6基本ACL或IPv6高级ACL

操作

命令

说明

进入系统视图

system-view

-

复制并生成新的IPv6基本ACL或IPv6高级ACL

acl ipv6 copy { source-acl6-number | name source-acl6-name } to { dest-acl6-number | name dest-acl6-name }

必选

 

1.3.7  配置用户自定义流模板

说明

流模板功能仅在SPE单板支持,SPC单板和MPE单板不支持。

 

流模板与ACL配合使用,其主要功能是对硬件下发的ACL规则所包含的信息进行限制。在接口下发的规则所包含的信息必须是该接口下发的流模板中所定义信息的子集。比如,流模板定义了对源IP地址、目的IP地址、源TCP端口、目的TCP端口等的限制,只有限制范围内的规则才可以正确地下发给硬件;否则,规则将无法下发给硬件,从而导致包过滤、QoS等功能无法引用该规则。

缺省情况下,接口上应用有缺省的流模板。用户也可以创建自定义流模板,然后将其应用在接口上。

表1-13 配置用户自定义流模板

操作

命令

说明

进入系统视图

system-view

-

配置用户自定义流模板

flow-template flow-template-name basic { customer-vlan-id | dip | dmac | dport | dscp | ethernet-protocol | fragments | icmp-code | icmp-type | ip-precedence | ip-protocol | mpls-exp | service-cos | sip | smac | sport | tcp-flag | tos } *

必选

缺省情况下,不存在任何用户自定义流模板

进入接口视图或端口组视图

进入接口视图

interface interface-type interface-number

二者必选其一

接口视图下的配置只对当前接口生效,端口组视图下的配置对端口组中的所有端口都生效

进入端口组视图

port-group manual port-group-name

在接口上应用用户自定义流模板

flow-template flow-template-name

可选

缺省情况下,接口下配置缺省流模板

 

说明

·     一个接口上只能应用一个用户自定义流模板。

·     SPE单板的ACL key长度为18Bytes时,缺省流模板包含的字段有:sip、dip、ip-protocol、sport以及dport。

·     SPE单板的ACL key长度为36Bytes时,缺省流模板包含的字段有:sip、dip、ip-protocol、sport、dport、icmp-code、icmp-type、tos、dscp、ip-precedence、mpls-exp、tcp-flag以及fragment。

 

1.3.8   配置ACL key的长度模式

ACL key的长度模式定义了ACL流模板可配置的字段长度。目前产品支持如下四种ACL key的长度模式:

·     1:SPE单板的ACL Key为18Bytes,SPC单板和MPE单板的ACL Key为40Bytes。

·     2:SPE单板的ACL Key为36Bytes,SPC单板和MPE单板的ACL Key为40Bytes。

·     3:SPE单板的ACL Key为18Bytes,SPC单板和MPE单板的ACL Key为80Bytes。

·     4:SPE单板的ACL Key为36Bytes,SPC单板和MPE单板的ACL Key为80Bytes。

当在设备上需要配置大量的ACL规则时,ACL key的长度模式可能需要修改,通过下面的配置即可进行配置。

表1-14 配置ACL key的长度模式

操作

命令

说明

进入系统视图

system-view

-

配置ACL key的长度模式

acl mode { 1 | 2 | 3 | 4 }

必选

缺省情况下,ACL key的长度模式为2

 

说明

·     acl mode命令对丝印为SPC-GP48LA、SPC-GP24LA、SPC-GT48LA、SPC-XP4LA、SPC-XP2LA、SPC-XP16R的单板无效,这些SPC单板的ACL Key始终为48Bytes。

·     ACL key长度模式配置之后,需要重启设备后才能生效,但不需要保存此项配置。

·     在插有ATM子卡的SPE单板上配置ACL key长度模式无效。

·     ACL key长度模式配置对于SPE单板的IPv6 ACL无效。

·     对于SPC单板或MPE单板,只有ACL key长度为80Bytes或48Bytes的情况下,在QoS策略中配置IPv6 ACL时才会配置成功。关于ACL key长度的介绍请参见“ACL和QoS命令参考”中的“ACL”。

 

1.4  ACL显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示ACL配置后的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除ACL的统计信息。

表1-15 ACL显示和维护

配置

命令

显示指定或全部ACL(包括IPv4基本ACL、IPv4高级ACL、二层ACL和用户自定义ACL)的配置和运行情况

display acl { acl-number | all | name acl-name } [ slot slot-number ] [ | { begin | exclude | include } regular-expression ]

显示指定或全部ACL(包括IPv6基本ACL和IPv6高级ACL)的配置和运行情况

display acl ipv6 { acl6-number | all | name acl6-name } [ slot slot-number ] [ | { begin | exclude | include } regular-expression ]

显示ACL key的长度模式

display acl mode [ | { begin | exclude | include } regular-expression ]

显示ACL资源的使用情况

display acl resource [ slot slot-number ] [ | { begin | exclude | include } regular-expression ]

显示用户自定义流模板在接口上的应用信息

display flow-template interface [ interface-type interface-number ] [ | { begin | exclude | include } regular-expression ]

显示用户自定义流模板的配置信息

display flow-template user-defined [ flow-template-name ] [ | { begin | exclude | include } regular-expression ]

显示时间段的配置和状态信息

display time-range { time-range-name | all } [ | { begin | exclude | include } regular-expression ]

清除指定或全部ACL(包括IPv4基本ACL、IPv4高级ACL、二层ACL和用户自定义ACL)统计信息

reset acl counter { acl-number | all | name acl-name }

清除指定或全部ACL(包括IPv6基本ACL和IPv6高级ACL)统计信息

reset acl ipv6 counter { acl6-number | all | name acl6-name }

 

1.5  ACL典型配置举例

1.5.1  IPv4 高级ACL配置举例

1. 组网需求

·     某公司内的各部门之间通过Device 实现互连,该公司的工作时间为每周工作日的8点到18点。

·     通过配置,允许总裁办在任意时间访问工资查询服务器;禁止其它部门在上班时间(8:00至18:00)访问工资查询服务器。

2. 组网图

图1-3 IPv4高级ACL配置组网图

 

3. 配置步骤

(1)     定义上班时间段

# 定义8:00至18:00的周期时间段。

<Device> system-view

[Device] time-range trname 8:00 to 18:00 working-day

(2)     定义到工资服务器的ACL

# 进入高级IPv4 高级ACL视图,编号为3000。

[Device] acl number 3000

# 定义总裁办公室到工资服务器的访问规则。

[Device-acl-adv-3000] rule 1 permit ip source 129.111.1.2 0.0.0.0 destination 129.110.1.2 0.0.0.0

[Device-acl-adv-3000] quit

# 进入高级IPv4 ACL视图,编号为3100。

[Device] acl number 3100

# 定义其它部门到工资服务器的访问规则。

[Device-acl-adv-3100] rule 2 permit ip source any destination 129.110.1.2 0.0.0.0 time-range trname

[Device-acl-adv-3100] quit

(3)     应用ACL到流分类中

# 配置流分类。

[Device] traffic classifier c1

[Device-classifier-c1] if-match acl 3000

[Device-classifier-c1] quit

[Device] traffic classifier c2

[Device-classifier-c2] if-match acl 3100

[Device-classifier-c2] quit

(4)     报文流动作

# 配置流动作

[Device] traffic behavior b1

[Device-behavior-b1] filter permit

[Device-behavior-b1] quit

[Device] traffic behavior b2

[Device-behavior-b2] filter deny

[Device-behavior-b2] quit

(5)     关联分类规则和动作

# 配置QoS策略

[Device] qos policy p1

[Device-qospolicy-p1] classifier c1 behavior b1

[Device-qospolicy-p1] classifier c2 behavior b2

[Device-qospolicy-p1] quit

(6)     把策略应用到接口上

# 将QoS 策略用于GE2/1/1出方向。

[Device] interface GigabitEthernet 2/1/1

[Device-GigabitEthernet2/1/1] qos apply policy p1 outbound

1.5.2  IPv6高级ACL配置举例

1. 组网需求

·     某公司内的各部门之间通过Device A实现互连,该公司的工作时间为每周工作日的8点到18点。

·     通过配置,允许总裁办在任意时间、财务部在工作时间访问财务数据库服务器,禁止其它部门在任何时间、财务部在非工作时间访问该服务器。

2. 组网图

图1-4 IPv6高级ACL配置组网图

 

3. 配置步骤

# 创建名为work的时间段,其时间范围为每周工作日的8点到18点。

<DeviceA> system-view

[DeviceA] time-range work 8:00 to 18:00 working-day

# 创建IPv6高级ACL 3000,并制订如下规则:允许总裁办在任意时间、财务部在工作时间访问财务数据库服务器;而禁止其它部门在任何时间、财务部在非工作时间访问该服务器。

[DeviceA] acl ipv6 number 3000

[DeviceA-acl6-adv-3000] rule permit source 1001:: 16 destination 1000::100 128

[DeviceA-acl6-adv-3000] rule permit source 1002:: 16 destination 1000::100 128 time-range work

[DeviceA-acl6-adv-3000] rule deny source any destination 1000::100 128

[DeviceA-acl6-adv-3000] quit

# 使能IPv6防火墙功能,并使用IPv6高级ACL 3000对接口GigabitEthernet3/1/1出方向上的报文进行过滤。

[DeviceA] interface gigabitethernet 3/1/1

[DeviceA-GigabitEthernet3/1/1] firewall packet-filter ipv6 3000 outbound

[DeviceA-GigabitEthernet3/1/1] quit

4. 检验配置效果

配置完成后,在各部门的PC(假设均为Windows XP操作系统)上可以使用ping命令检验配置效果,在Device A上可以使用display acl ipv6命令查看ACL的配置和运行情况。例如在工作时间:

# 在财务部的PC上检查到财务数据库服务器是否可达。

C:\> ping 1000::100

 

Pinging 1000::100 with 32 bytes of data:

 

Reply from 1000::100: time<1ms

Reply from 1000::100: time<1ms

Reply from 1000::100: time<1ms

Reply from 1000::100: time<1ms

 

Ping statistics for 1000::100:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

由此可见,财务部的PC能够在工作时间访问财务数据库服务器。

# 在市场部的PC上检查财务数据库服务器是否可达。

C:\> ping 1000::100

 

Pinging 1000::100 with 32 bytes of data:

 

Destination net unreachable.

Destination net unreachable.

Destination net unreachable.

Destination net unreachable.

 

Ping statistics for 1000::100:

    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

由此可见,市场部的PC不能在工作时间访问财务数据库服务器。

# 查看IPv6高级ACL 3000的配置和运行情况。

[DeviceA] display acl ipv6 3000

 Advanced IPv6 ACL  3000, named -none-, 3 rules,

 ACL's step is 5

 rule 0 permit ipv6 source 1001::/16 destination 1000::100/128

 rule 5 permit ipv6 source 1002::/16 destination 1000::100/128 time-range work (4 times matched) (Active)

 rule 10 deny ipv6 destination 1000::100/128 (4 times matched)

由此可见,由于目前是工作时间,因此规则5是生效的;且由于之前使用了ping命令的缘故,规则5和规则10分别被匹配了4次。

1.5.3  流模板配置举例

1. 组网需求

配置用户自定义流模板,并在接口上应用。

2. 配置步骤

# 配置标准型用户自定义流模板aaa。

<Sysname> system-view

[Sysname] flow-template aaa basic smac customer-vlan-id

# 在接口GigabitEthernet2/1/1上应用用户自定义流模板aaa。

[Sysname] interface Gigabitethernet 2/1/1

[Sysname-GigabitEthernet2/1/1] flow-template aaa

# 显示用户自定义流模板aaa的信息。

[Sysname] display flow-template user-defined aaa

user-defined flow template: basic

 name:aaa, index:1, total reference counts:1

 fields: smac customer-vlan-id

# 显示所有用户自定义流模板的信息。

[Sysname] display flow-template user-defined

user-defined flow template: basic

 name:aaa, index:1, total reference counts:1

 fields: smac customer-vlan-id

 

user-defined flow template: basic

 name:1, index:2, total reference counts:0

 fields: service-cos

 

user-defined flow template: basic

 name:2, index:3, total reference counts:0

 fields: ip-protocol dscp

# 显示所有接口上用户自定义流模板的信息。

[Sysname] display flow-template interface

Interface: GigabitEthernet2/1/1

user-defined flow template: basic

 name:aaa, index:1, total reference counts:1

 fields: smac customer-vlan-id

# 删除用户自定义流模板。如果用户自定义流模板已在接口应用,须先在接口取消应用。

[Sysname] interface Gigabitethernet 2/1/1

[Sysname-GigabitEthernet2/1/1] undo flow-template

[Sysname-GigabitEthernet2/1/1] quit

[Sysname] undo flow-template name aaa

1.5.4  ACL key长度模式的配置举例

1. 组网需求

配置SPE单板的ACL key长度模式为18Bytes,SPC单板和MPE单板的ACL key长度模式为80Bytes。

2. 配置步骤

# 配置ACL key的长度模式为3。

<Sysname> system-view

[Sysname] acl mode 3

ACL has been set to mode 3, and will take effect after the next system reboot.

# 显示ACL key长度。

[Sysname] display acl mode

Current ACL mode              : mode 2 (SPE ACL key long, SPC ACL key short)

Acl mode after system restart : mode 3 (SPE ACL key short, SPC ACL key long)

Notice: Changing ACL mode will take effect only after system restart.

# 重启设备。

[Sysname] return

<Sysname> reboot

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们