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

06-ACL和QoS配置指导

目录

01-ACL配置

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

01-ACL配置


1 ACL配置

说明

本文将用于IPv4和IPv6的ACL分别简称为IPv4 ACL和IPv6 ACL。若非特别指明,本文所指的ACL均包括IPv4 ACL和IPv6 ACL。

 

1.1  ACL简介

ACL(Access Control List,访问控制列表)是用来实现流识别功能的。网络设备为了过滤报文,需要配置一系列的匹配条件对报文进行分类,这些条件可以是报文的源地址、目的地址、端口号等。

当设备的端口接收到报文后,即根据当前端口上应用的ACL规则对报文的字段进行分析,在识别出特定的报文之后,根据预先设定的策略允许或禁止该报文通过。

由ACL定义的报文匹配规则,可以被其它需要对流量进行区分的场合引用,如包过滤、QoS中流分类规则的定义等。

1.1.1  ACL的分类

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

表1-1 ACL的分类

ACL类型

编号范围

适用的IP版本

规则制订依据

WLAN ACL

100~199

IPv4&IPv6

根据无线客户端的SSID制定匹配规则

WLAN-AP ACL

200~299

IPv4和IPv6

WLAN AP(Access Point,接入点)的MAC地址和序列号

基本ACL

2000~2999

IPv4

只根据报文的源IP地址信息制定匹配规则

IPv6

只根据报文的源IPv6地址信息制定匹配规则

高级ACL

3000~3999

IPv4

根据报文的源IP地址信息、目的IP地址信息、IP承载的协议类型、协议的特性等三、四层信息制定匹配规则

IPv6

根据报文的源IPv6地址信息、目的IPv6地址信息、IPv6承载的协议类型、协议的特性等三、四层信息制定匹配规则

二层ACL

4000~4999

IPv4&IPv6

根据报文的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定匹配规则

 

1.1.2  ACL的编号和名称

用户在创建ACL时必须为其指定编号,系统将根据用户所指定的编号来创建不同类型的ACL。

通常名称比编号更易于记忆和识别,因此用户在创建ACL时,还可以选择是否为其指定名称,而且只能在创建ACL时为其指定名称。ACL一旦创建,便不允许对其名称进行修改或删除。

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

说明

·       不允许为WLAN ACL和WLAN-AP ACL 指定名称。

·       WLAN ACL的编号、二层ACL的编号和名称全局唯一;IPv4基本和高级ACL的编号和名称只在IPv4中唯一;IPv6基本和高级ACL的编号和名称也只在IPv6中唯一。

 

1.1.3  ACL的匹配顺序

一个ACL由一条或多条描述报文匹配选项的判断语句组成,这样的判断语句就称为“规则”。由于每条规则中的报文匹配选项不同,从而使这些规则之间可能存在重复甚至矛盾的地方,因此在将一个报文与ACL的各条规则进行匹配时,就需要有明确的匹配顺序来确定规则执行的优先级。ACL的规则匹配顺序有以下两种:

·              配置顺序:按照用户配置规则的先后顺序进行匹配,但由于本质上系统是按照规则编号由小到大进行匹配,因此后插入的规则如果编号较小也有可能先被匹配。

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

说明

·       WLAN ACL的规则只能按照配置顺序进行匹配。

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

 

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

ACL类型

“深度优先”排序法则

IPv4基本ACL

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

(2)    如果源IP地址范围也相同,再比较配置顺序,配置在前者优先

IPv4高级ACL

(1)    先比较协议范围,指定有IPv4承载的协议类型者优先

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

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

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

(5)    如果四层端口号范围也相同,再比较配置顺序,配置在前者优先

IPv6基本ACL

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

(2)    如果源IPv6地址范围相同,再比较配置顺序,配置在前者优先

IPv6高级ACL

(1)    先比较协议范围,指定有IPv6承载的协议类型者优先

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

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

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

(5)    如果四层端口号范围也相同,再比较配置顺序,配置在前者优先

二层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内的每条规则都有自己的编号,每个规则的编号在一个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.5  ACL的生效时间段

时间段用于描述一个特定的时间范围。用户可能有这样的需求:一些ACL规则只需在某个或某些特定的时间段内生效(即进行报文过滤),这也称为基于时间段的ACL过滤。为此,用户可以先配置一个或多个时间段,然后在ACL规则下引用这些时间段,那么该规则将只在指定的时间段内生效。

此外,如果某ACL规则所引用的时间段尚未配置,系统将给出提示信息,并仍允许该规则成功创建,但该规则将不会在其引用的时间段完成配置前生效。

1.1.6  ACL对IPv4分片报文的处理

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

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

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

1.1.7  ACL的应用

ACL作为一种规则,可以应用于诸如路由、安全、QoS等领域,有关ACL在这些领域的具体应用,请参见相关的配置指导。

1.2  ACL配置任务简介

表1-3 ACL配置任务简介

配置任务

说明

详细配置

配置ACL的生效时间段

可选

本配置任务适用于IPv4和IPv6

1.3.1 

配置WLAN 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 

 

1.3  配置ACL

1.3.1  配置ACL的生效时间段

时间段可分为以下两种:

·              周期时间段:该时间段以一周为周期循环生效。

·              绝对时间段:该时间段在指定时间范围内生效。

表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 }

必选

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

 

说明

·       使用同一名称可以配置多条不同的时间段,以达到这样的效果:各周期时间段之间以及各绝对时间段之间分别取并集之后,再取二者的交集作为最终生效的时间范围。

·       最多可以创建256个不同名称的时间段,而同一名称下最多可以配置32条周期时间段和12条绝对时间段。

 

1.3.2  配置WLAN ACL

WLAN ACL会根据无线客户端的SSID制定匹配规则,对报文进行相应的分析处理。

表1-5 配置WLAN ACL

操作

命令

说明

进入系统视图

system-view

-

创建WLAN ACL,并进入WLAN ACL视图

acl number acl-number

必选

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

WLAN ACL的编号范围为100~199

配置ACL的描述信息

description text

可选

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

配置规则编号的步长

step step-value

可选

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

创建规则

rule [ rule-id ] { permit | deny } [ ssid ssid-name ]

必选

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

重复执行本命令可以创建多条规则

配置规则的描述信息

rule rule-id comment text

可选

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

 

1.3.3  配置基本ACL

1. 配置IPv4基本ACL

IPv4基本ACL只根据报文的源IP地址信息制定匹配规则,对IPv4报文进行相应的分析处理。

表1-6 配置IPv4基本ACL

操作

命令

说明

进入系统视图

system-view

-

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

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

必选

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

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

配置ACL的描述信息

description text

可选

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

配置规则编号的步长

step step-value

可选

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

创建规则

rule [ rule-id ] { deny | permit } [ counting | source { sour-addr sour-wildcard | any } | time-range time-range-name ] *

必选

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

重复执行本命令可以创建多条规则

配置规则的描述信息

rule rule-id comment text

可选

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

 

说明

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

 

2. 配置IPv6基本ACL

IPv6基本ACL只根据报文的源IPv6地址信息制定匹配规则,对IPv6报文进行相应的分析处理。

表1-7 配置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

配置ACL的描述信息

description text

可选

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

配置规则编号的步长

step step-value

可选

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

创建规则

rule [ rule-id ] { deny | permit } [ counting | source { ipv6-address prefix-length | ipv6-address/prefix-length | any } | time-range time-range-name ] *

必选

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

重复执行本命令可以创建多条规则

配置规则的描述信息

rule rule-id comment text

可选

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

 

说明

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

 

1.3.4  配置高级ACL

1. 配置IPv4高级ACL

IPv4高级ACL可以使用报文的源IPv4地址信息、目的IPv4地址信息、IPv4承载的协议类型、协议的特性(例如TCP或UDP的源端口、目的端口,TCP标记,ICMP协议的消息类型、消息码等)等信息来制定匹配规则。IPv4高级ACL支持对以下三种报文优先级进行分析处理:

·              ToS(Type of Service,服务类型)优先级;

·              IP优先级;

·              DSCP(Differentiated Services Codepoint,差分服务编码点)优先级。

用户可以利用IPv4高级ACL定义比IPv4基本ACL更准确、丰富、灵活的匹配规则。

表1-8 配置IPv4高级ACL

操作

命令

说明

进入系统视图

system-view

-

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

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

必选

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

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

配置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 | icmp-type { icmp-type [ icmp-code ] | icmp-message } | precedence precedence | reflective | source { sour-addr sour-wildcard | any } | source-port operator port1 [ port2 ] | time-range time-range-name | tos tos ] *

必选

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

重复执行本命令可以创建多条规则

配置规则的描述信息

rule rule-id comment text

可选

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

 

说明

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

 

2. 配置IPv6高级ACL

IPv6高级ACL可以使用报文的源IPv6地址信息、目的IPv6地址信息、IPv6承载的协议类型、协议的特性(例如TCP或UDP的源端口、目的端口,ICMP协议的消息类型、消息码等)等信息来制定匹配规则。

用户可以利用IPv6高级ACL定义比IPv6基本ACL更准确、丰富、灵活的规则。

表1-9 配置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

配置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 | icmp6-type { icmp6-type icmp6-code | icmp6-message } | source { source source-prefix | source/source-prefix | any } | source-port operator port1 [ port2 ] | time-range time-range-name  ] *

必选

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

重复执行本命令可以创建多条规则

配置规则的描述信息

rule rule-id comment text

可选

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

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

hardware-count enable

可选

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

 

说明

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

 

1.3.5  配置二层ACL

二层ACL根据报文的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定匹配规则,对报文进行相应的分析处理。

表1-10 配置二层ACL

操作

命令

说明

进入系统视图

system-view

-

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

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

必选

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

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

配置ACL的描述信息

description text

可选

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

配置规则编号的步长

step step-value

可选

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

创建规则

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

必选

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

重复执行本命令可以创建多条规则

配置规则的描述信息

rule rule-id comment text

可选

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

 

说明

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

 

1.3.6  复制ACL

用户可以通过复制一个已存在的ACL,来生成一个新的同类型ACL。除了ACL的编号和名称不同外,新生成的ACL(即目的ACL)的匹配顺序、规则匹配统计功能的使能情况、规则编号的步长、所包含的规则、规则的描述信息以及ACL的描述信息等都与源ACL的相同。

1. 复制IPv4 ACL

表1-11 复制IPv4 ACL

操作

命令

说明

进入系统视图

system-view

-

复制生成一个新的同类型IPv4 ACL

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

必选

 

说明

·       目的IPv4 ACL的类型要与源IPv4 ACL的类型相同,且源IPv4 ACL必须存在,目的IPv4 ACL必须不存在。

·       当源或目的ACL为WLAN ACL时,都不允许为其指定名称。

 

2. 复制IPv6 ACL

表1-12 复制IPv6 ACL

操作

命令

说明

进入系统视图

system-view

-

复制生成一个新的同类型IPv6 ACL

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

必选

 

说明

目的IPv6 ACL的类型要与源IPv6 ACL的类型相同,且源IPv6 ACL必须存在,目的IPv6 ACL必须不存在。

 

1.4  ACL显示和维护

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

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

表1-13 ACL显示和维护

配置

命令

显示IPv4 ACL的配置和运行情况

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

显示IPv6 ACL的配置和运行情况

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

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

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

清除IPv4 ACL统计信息

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

清除IPv6 ACL统计信息

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

 

1.5  ACL典型配置举例

1.5.1  IPv4 ACL典型配置举例

1. 组网需求

公司企业网通过AC实现无线用户同服务器之间的互连。工资查询服务器的地址为192.168.1.2/24。研发部门的无线用户在无线控制器上对应的无线接口为WLAN-ESS1,要求正确配置IPv4 ACL,禁止研发部门无线用户在工作日8:00至18:00访问工资查询服务器。

2. 组网图

图1-1 配置IPv4 ACL组网图

 

3. 配置步骤

(1)      定义上班时间段

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

<AC> system-view

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

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

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

[AC] acl number 3000

# 定义匹配从研发部门到工资服务器的报文的访问规则。

[AC-acl-adv-3000] rule 0 permit ip source any destination 192.168.1.2 0.0.0.0 time-range trname

[AC-acl-adv-3000] quit

(3)      应用IPv4 ACL

# 将IPv4 ACL 3000应用于WLAN-ESS1入方向的包过滤。

[AC] traffic classifier test

[AC-classifier-test] if-match acl 3000

[AC-classifier-test] quit

[AC] traffic behavior test

[AC-behavior-test] filter deny

[AC-behavior-test] quit

[AC] qos policy test

[AC-qospolicy-test] classifier test behavior test

[AC-qospolicy-test] quit

[AC] interface WLAN-ESS 1

[AC-WLAN-ESS1] qos apply policy test inbound

1.5.2  IPv6 ACL典型配置举例

1. 组网需求

在无线控制器接口WLAN-ESS1配置IPv6报文过滤,禁止接收源IPv6地址为2000::0100到2000::ff00 的报文,允许接收其他报文。

2. 配置步骤

# 配置IPv6 ACL(假定IPv6 ACL编号为2000),规则如下。

<AC> system-view

[AC] acl ipv6 number 2000

[AC-acl6-basic-2000] rule permit source 2000::0100 120

[AC-acl6-basic-2000] quit

# 配置流分类

[AC] traffic classifier ipv6-2000

[AC-classifier-ipv6-2000] if-match acl ipv6 2000

[AC-classifier-ipv6-2000] quit

# 配置流行为

[AC] traffic behavior deny

[AC-behavior-deny] filter deny

[AC] quit

# 配置QOS流策略

[AC] qos policy deny2000

[AC-qospolicy-deny2000] classifier ipv6-2000 behavior deny

[AC-qospolicy-deny2000] quit

# 配置接口WLAN-ESS1入方向的IPv6报文过滤。

[AC] interface WLAN-ESS1

[AC-WLAN-ESS1] qos apply policy deny2000 inbound

 

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

新华三官网
联系我们