• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

08-ACL和QoS配置指导

目录

01-ACL配置

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

01-ACL配置


1 ACL

1.1  ACL简介

ACL(Access Control List,访问控制列表)是一系列用于识别报文流的规则的集合。这里的规则是指描述报文匹配条件的判断语句,匹配条件可以是报文的源地址、目的地址、端口号等。设备依据ACL规则识别出特定的报文,并根据预先设定的策略对其进行处理,最常见的应用就是使用ACL进行报文过滤。此外,ACL还可应用于诸如路由、安全、QoS等业务中识别报文,对这些报文的具体处理方式由应用ACL的业务模块来决定。

1.1.1  ACL的编号和名称

用户在创建ACL时必须为其指定编号或名称,不同的编号对应不同类型的ACL,如表1-1所示;当ACL创建完成后,用户就可以通过指定编号或名称的方式来应用和编辑该ACL。

对于编号相同的基本ACL或高级ACL,必须通过ipv6关键字进行区分。对于名称相同的ACL,必须通过ipv6macuser-defined关键字进行区分。

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

IPv4和IPv6

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

用户自定义ACL

5000~5999

IPv4和IPv6

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

 

1.1.3  ACL的规则匹配顺序

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

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

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

说明

用户自定义ACL的规则只能按照配置顺序进行匹配,其它类型的ACL则可选择按照配置顺序或自动顺序进行匹配。

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

ACL类型

“深度优先”排序法则

IPv4基本ACL

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

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

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

IPv4高级ACL

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

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

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

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

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

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

IPv6基本ACL

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

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

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

IPv6高级ACL

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

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

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

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

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

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

二层ACL

a     先比较源MAC地址范围,较小者优先

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

c     如果目的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.1.5  ACL的步长

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

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

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

需要注意的是,ACL规则的匹配顺序为自动排序时,修改步长后新的编号是按照规则的匹配顺序(即“深度优先”原则)重新排序的,并非按照规则的原有编号顺序排序。譬如,步长为5时,规则的匹配顺序为0、10、5……修改步长为2后,各规则对应的新编号为0、2、4……

1.1.6  ACL对分片报文的处理

传统报文过滤只对分片报文的首个分片进行匹配过滤,对后续分片一律放行,因此网络攻击者通常会构造后续分片进行流量攻击。为提高网络安全性,ACL规则缺省会匹配所有非分片报文和分片报文的全部分片,但这样又带来效率低下的问题。为了兼顾网络安全和匹配效率,可将过滤规则配置为仅对后续分片有效。

1.2  ACL配置限制和指导

通过编号创建的ACL,可以通过如下命令进入其视图:

·     acl [ ipv6 ] number acl-number

·     acl { [ ipv6 ] { advanced | basic } | mac | user-defined } acl-number

通过acl [ ipv6 ] number acl-number name acl-name命令指定编号和名称创建的ACL,可以使用如下命令进入其视图:

·     acl [ ipv6 ] name acl-name,本命令仅支持进入已创建的基本或高级ACL视图;

·     acl [ ipv6 ] number acl-number [ name acl-name ]

·     acl { [ ipv6 ] { advanced | basic } | mac | user-defined } name acl-name

通过acl { [ ipv6 ] { advanced | basic } | mac | user-defined } name acl-name命令指定名称创建的ACL,可以使用如下命令进入其视图:

·     acl [ ipv6 ] name acl-name,本命令仅支持进入已创建的基本或高级ACL视图;

·     acl { [ ipv6 ] { advanced | basic } | mac | user-defined } name acl-name

1.3  ACL配置任务简介

ACL配置任务如下

·     配置不同类型的ACL

¡     配置基本ACL

¡     配置高级ACL

¡     配置二层ACL

¡     配置用户自定义ACL

·     (可选)复制ACL

·     (可选)应用ACL进行报文过滤

1.4  配置基本ACL

1.4.1  功能简介

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

基本ACL可以应用在设备管理、组播业务、QoS业务和路由策略等场景中,典型应用场景如下:

·     当设备作为FTP、TFTP服务器时,为提高其安全性,可以通过配置基本ACL实现只允许满足过滤条件的客户端访问服务器。关于使用基本ACL限制客户端访问设备的详细内容,请参见“基础配置指导”中的“FTP和TFTP”。

·     在组播场景中,通过配置基本ACL,设备可以作为组播数据过滤器实现只接收或转发满足过滤条件的组播报文。关于组播数据过滤器的详细介绍,请参见“IP组播配置指导”中的“PIM”和“IPv6 PIM”。

·     当需要控制设备接收、发布的路由信息时,可以通过配置基本ACL作为路由策略的过滤器,来实现只接收或发布满足过滤条件的路由。关于路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。

·     当需要对不同类型的流量进行分类操作时,可以通过配置基本ACL实现对满足过滤条件的流量进行流量监管、流量整形、流分类。关于流量监管、流量整形、流分类的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。

1.4.2  配置IPv4基本ACL

(1)     进入系统视图。

system-view

(2)     创建IPv4基本ACL。请至少选择其中一项进行配置。

¡     通过编号创建IPv4基本ACL。

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

¡     通过关键字创建IPv4基本ACL。

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

(3)     (可选)配置ACL的描述信息。

description text

缺省情况下,未配置ACL的描述信息。

(4)     (可选)配置规则编号的步长。

step step-value [ start start-value ]

缺省情况下,规则编号的步长为5,起始值为0。

(5)     创建规则。

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

logging参数是否生效取决于引用该ACL的模块是否支持日志记录功能,例如报文过滤支持日志记录功能,如果其引用的ACL规则中配置了logging参数,该参数可以生效。

(6)     (可选)为规则配置描述信息。

rule rule-id comment text

缺省情况下,未配置规则的描述信息。

(7)     (可选)为规则配置注释信息。

rule [ rule-id ] remark text

缺省情况下,未配置规则的注释信息。

1.4.3  配置IPv6基本ACL

1. 配置限制和指导

对于S6800系列交换机,当ACL用于QoS策略的流分类或用于报文过滤功能时,若QoS策略或报文过滤功能应用于出方向,规则不支持配置routing参数。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建IPv6基本ACL。请至少选择其中一项进行配置。

¡     通过编号创建IPv6基本ACL。

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

¡     通过关键字创建IPv6基本ACL。

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

(3)     (可选)配置ACL的描述信息。

description text

缺省情况下,未配置ACL的描述信息。

(4)     (可选)配置规则编号的步长。

step step-value [ start start-value ]

缺省情况下,规则编号的步长为5,起始值为0。

(5)     创建规则。

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

logging参数是否生效取决于引用该ACL的模块是否支持日志记录功能,例如报文过滤支持日志记录功能,如果其引用的ACL规则中配置了logging参数,该参数可以生效。

(6)     (可选)为规则配置描述信息。

rule rule-id comment text

缺省情况下,未配置规则的描述信息。

(7)     (可选)为规则配置注释信息。

rule [ rule-id ] remark text

缺省情况下,未配置规则的注释信息。

1.5  配置高级ACL

1.5.1  功能简介

高级ACL可以应用在设备管理、组播业务、QoS业务和路由策略等场景中,典型应用场景如下:

·     当设备作为FTP、TFTP服务器时,为提高其安全性,可以通过配置高级ACL实现只允许满足过滤条件的客户端访问服务器。关于使用高级ACL限制客户端访问设备的详细内容,请参见“基础配置指导”中的“FTP和TFTP”。

·     在组播场景中,通过配置高级ACL,设备可以作为组播数据过滤器实现只接收或转发满足过滤条件的组播报文。关于组播数据过滤器的详细介绍,请参见“IP组播配置指导”中的“PIM”和“IPv6 PIM”。

·     当需要控制设备接收、发布的路由信息时,可以通过配置高级ACL作为路由策略的过滤器,来实现只接收或发布满足过滤条件的路由。关于路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。

·     当需要对不同类型的流量进行分类操作时,可以通过配置高级ACL实现对满足过滤条件的流量进行流量监管、流量整形、流分类。关于流量监管、流量整形、流分类的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。

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

1.5.2  配置IPv4高级ACL

1. 配置限制和指导

当ACL用于出方向应用的QoS策略的流分类或报文过滤功能时,规则中的操作符operator取值不能为neq

对于S6800系列交换机,如果规则配置了匹配VXLAN封装报文内层TCP标识信息,则该规则中不支持再配置同时匹配内层源地址和内层目的地址信息,仅支持再匹配内层源地址或内层目的地址其中一项。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建IPv4高级ACL。请至少选择其中一项进行配置。

¡     通过编号创建IPv4高级ACL。

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

¡     通过关键字创建IPv4高级ACL。

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

(3)     (可选)配置ACL的描述信息。

description text

缺省情况下,未配置ACL的描述信息。

(4)     (可选)配置规则编号的步长。

step step-value [ start start-value ]

缺省情况下,规则编号的步长为5,起始值为0。

(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 { microsegment microsegment-id [ mask-length mask-length ] | object-group address-group-name | dest-address dest-wildcard | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | { dscp dscp | { precedence precedence | tos tos } * } | fragment | icmp-type { icmp-type [ icmp-code ] | icmp-message } | logging | qos-local-id local-id-value | source { microsegment microsegment-id [ mask-length mask-length ] | object-group address-group-name | source-address source-wildcard | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *

¡     创建匹配封装报文的规则。

rule [ rule-id ] { deny | permit } vxlan [ destination { dest-address dest-wildcard | any } | source { source-address source-wildcard | any } | source-port operator port1 [ port2 ] | vxlan-id vxlan-id ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-wildcard | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-wildcard | any } | inner-source-port operator port1 [ port2 ] | { { inner-dscp inner-dscp | inner-ecn inner-ecn } * | { inner-ecn inner-ecn | inner-precedence inner-precedence } * | { inner-precedence inner-precedence | inner-tos inner-tos } * } | logging | time-range time-range-name ] *

参数

说明

vxlan

表示匹配VXLAN报文,包括外层的报文信息和内层的报文信息

logging参数是否生效取决于引用该ACL的模块是否支持日志记录功能,例如报文过滤支持日志记录功能,如果其引用的ACL规则中配置了logging参数,该参数可以生效。

(6)     (可选)为规则配置描述信息。

rule rule-id comment text

缺省情况下,未配置规则的描述信息。

(7)     (可选)为规则配置注释信息。

rule [ rule-id ] remark text

缺省情况下,未配置规则的注释信息。

1.5.3  配置IPv6高级ACL

1. 配置限制和指导

对于S6860系列交换机,当ACL用于QoS策略的流分类或报文过滤功能时,如果QoS策略或报文过滤功能应用于出方向,则不支持配置flow-label参数。

对于S6800系列交换机,当ACL用于出方向应用的QoS策略的流分类或报文过滤功能时:

·     规则中操作符operator取值不能为neq

·     规则不支持配置routinghop-by-hopflow-label参数,且规则中protocol参数取值不能为0、43、44、51(或关键字ipv6-ah)、60。

对于S6800系列交换机,如果规则配置了匹配VXLAN封装报文内层TCP标识信息,则该规则中不支持再配置同时匹配内层源地址和内层目的地址信息,仅支持再匹配内层源地址或内层目的地址其中一项。

规则不支持配置routinghop-by-hopqos-local-id一起下发。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建IPv6高级ACL。请至少选择其中一项进行配置。

¡     通过编号创建IPv6高级ACL。

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

¡     通过关键字创建IPv6高级ACL。

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

(3)     (可选)配置ACL的描述信息。

description text

缺省情况下,未配置ACL的描述信息。

(4)     (可选)配置规则编号的步长。

step step-value [ start start-value ]

缺省情况下,规则编号的步长为5,起始值为0。

(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 { microsegment microsegment-id [ mask-length mask-length ] | object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | dscp dscp | flow-label flow-label-value | fragment | icmp6-type { icmp6-type icmp6-code | icmp6-message } | logging | qos-local-id local-id-value | routing [ type routing-type ] | hop-by-hop [ type hop-type ] | source { microsegment microsegment-id [ mask-length mask-length ] | object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *

¡     创建匹配IPv4 VXLAN封装报文的规则。

rule [ rule-id ] { deny | permit } vxlan [ vxlan-id vxlan-id ] inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-prefix | dest-address/dest-prefix | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-prefix | source-address/source-prefix | any } | inner-source-port operator port1 [ port2 ] | { inner-dscp inner-dscp | inner-ecn inner-ecn } * | logging | time-range time-range-name ] *

logging参数是否生效取决于引用该ACL的模块是否支持日志记录功能,例如报文过滤支持日志记录功能,如果其引用的ACL规则中配置了logging参数,该参数可以生效。

(6)     (可选)为规则配置描述信息。

rule rule-id comment text

缺省情况下,未配置规则的描述信息。

(7)     (可选)为规则配置注释信息。

rule [ rule-id ] remark text

缺省情况下,未配置规则的注释信息。

1.6  配置二层ACL

1. 功能简介

二层ACL可以应用在设备管理和QoS业务等场景中,典型应用场景如下:

·     当设备作为Telnet服务器时,为提高其安全性,可以通过配置二层ACL实现只允许满足过滤条件的客户端访问服务器。关于使用二层ACL限制客户端访问设备的详细内容,请参见“基础配置指导”中的“登录设备”。

·     当需要对不同类型的流量进行分类操作时,可以通过配置二层ACL实现对满足过滤条件的流量进行流量监管、流量整形、流分类。关于流量监管、流量整形、流分类的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建二层ACL。请至少选择其中一项进行配置。

¡     通过编号创建二层ACL。

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

¡     通过关键字创建二层ACL。

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

(3)     (可选)配置ACL的描述信息。

description text

缺省情况下,未配置ACL的描述信息。

(4)     (可选)配置规则编号的步长。

step step-value [ start start-value ]

缺省情况下,规则编号的步长为5,起始值为0。

(5)     创建规则。请至少选择其中一项进行配置。

¡     创建匹配普通报文的规则。

rule [ rule-id ] { deny | permit } [ cos dot1p | 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用于QoS策略的流分类或用于报文过滤功能时,如果使用lsap参数,则lsap-type必须为AAAA,lsap-type-mask必须为FFFF,否则ACL将无法正常应用。

 

¡     创建匹配VXLAN报文的规则。

rule [ rule-id ] { deny | permit } vxlan [ counting | dest-mac dest-address dest-mask | inner-dest-mac inner-dest-address inner-dest-mask | inner-source-mac inner-source-address inner-source-mask | inner-type inner-protocol-type inner-protocol-type-mask | source-mac source-address source-mask | time-range time-range-name | type protocol-type protocol-type-mask | vxlan-id vxlan-id ] *

(6)     (可选)为规则配置描述信息。

rule rule-id comment text

缺省情况下,未配置规则的描述信息。

(7)     (可选)为规则配置注释信息。

rule [ rule-id ] remark text

缺省情况下,未配置规则的注释信息。

1.7  配置用户自定义ACL

1. 功能简介

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建用户自定义ACL。请至少选择其中一项进行配置。

¡     通过编号创建用户自定义ACL。

acl number acl-number [ name acl-name ]

¡     通过关键字创建用户自定义ACL。

acl user-defined { acl-number | name acl-name }

(3)     (可选)配置ACL的描述信息。

description text

缺省情况下,未配置ACL的描述信息。

(4)     创建规则。

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

(5)     (可选)为规则配置描述信息。

rule rule-id comment text

缺省情况下,未配置规则的描述信息。

(6)     (可选)为规则配置注释信息。

rule [ rule-id ] remark text

缺省情况下,未配置规则的注释信息。

1.8  复制ACL

1. 功能简介

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

2. 配置限制和指导

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

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     复制并生成一个新的ACL。

acl [ ipv6 | mac | user-defined ] copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }

1.9  应用ACL进行报文过滤

1.9.1  功能简介

ACL最基本的应用就是进行报文过滤。例如,将ACL规则应用到指定接口的入或出方向上,从而对该接口收到或发出的报文进行过滤。

1.9.2  在接口上应用ACL进行报文过滤

1. 配置限制和指导

一个接口在一个方向上最多可应用4个ACL进行报文过滤,包括一个IPv4 ACL(IPv4基本ACL或IPv4高级ACL)、一个IPv6 ACL(IPv6基本ACL或IPv6高级ACL)、一个二层ACL以及一个用户自定义ACL。

对于同一VLAN接口的同一个方向,可以在VLAN接口视图下配置packet-filter命令实现报文过滤功能,也可以在系统视图下配置packet-filter vlan-interface命令实现报文过滤功能,但二者不可同时配置。

三层聚合子接口视图下不支持应用报文过滤来匹配三层以太网子接口的流量,您可以通过配置QoS策略并在三层聚合接口主接口视图下发来实现该需求,例如,实现三层聚合子接口1.100不允许192.168.1.100的报文通过可以这样配置:

[Sysname] display qos policy interface Route-Aggregation 1 inbound

Interface: Route-Aggregation100

  Direction: Inbound

  Policy: test

   Classifier: test

     Operator: AND

     Rule(s) :

      If-match acl 2000

      If-match service-vlan-id 100

     Behavior: test

      Filter enable: Permit

[Sysname] display acl 2000

Basic IPv4 ACL 2000, 1 rules,

ACL's step is 5, start ID is 0

 rule 0 deny source 192.168.1.100 0

三层以太网子接口视图下支持应用报文过滤来匹配子接口的流量,但需注意将报文过滤下发到子接口视图,如下发到主接口视图则无法匹配子接口的流量。

三层聚合子接口视图下不支持应用报文过滤来匹配三层以太网子接口的流量,您可以通过配置QoS策略并在三层聚合接口主接口视图下发来实现该需求,例如,实现三层聚合子接口1.100不允许192.168.1.100的报文通过可以这样配置:

[Sysname] display qos policy interface Route-Aggregation 1 inbound

Interface: Route-Aggregation100

  Direction: Inbound

  Policy: test

   Classifier: test

     Operator: AND

     Rule(s) :

      If-match acl 2000

      If-match service-vlan-id 100

     Behavior: test

      Filter enable: Permit

[Sysname] display acl 2000

Basic IPv4 ACL 2000, 1 rules,

ACL's step is 5, start ID is 0

 rule 0 deny source 192.168.1.100 0

三层以太网子接口视图下支持应用报文过滤来匹配子接口的流量,但需注意将报文过滤下发到子接口视图,如下发到主接口视图则无法匹配子接口的流量。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     在接口上应用ACL进行报文过滤。

packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } { inbound | outbound } [ hardware-count ] [ share-mode ]

缺省情况下,未配置接口的报文过滤。

1.9.3  在VLAN接口列表上应用ACL进行报文过滤

1. 配置限制和指导

一个VLAN接口列表在一个方向上只能应用1个ACL进行报文过滤。

配置VLAN接口列表上的报文过滤后,请不要开启报文过滤的持续生效功能,否则,将导致置VLAN接口列表上的报文过滤失效。

对于同一VLAN接口的同一个方向,可以在VLAN接口视图下配置packet-filter命令实现报文过滤功能,也可以在系统视图下配置packet-filter vlan-interface命令实现报文过滤功能,但二者不可同时配置。

在同一方向上应用相同ACL配置VLAN接口列表的报文过滤功能时,多次执行本命令会向VLAN接口列表中添加新的VLAN接口:

·     如果初始配置时携带了hardware-count参数,则向VLAN接口列表中添加VLAN接口时,必须携带该参数;

·     如果初始配置时未携带hardware-count参数,则向VLAN接口列表中添加VLAN接口时,不能携带该参数。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     在VLAN接口列表上应用ACL进行报文过滤。

packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } vlan-interface vlan-interface-list { inbound | outbound } [ hardware-count ]

缺省情况下,未配置VLAN接口的报文过滤。

1.9.4  在以太网服务实例上应用ACL进行报文过滤

1. 配置限制和指导

关于以太网服务实例的相关配置,请参见“MPLS配置指导”中的“MPLS L2VPN、VPLS”或“VXLAN配置指导”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。请选择其中一项进行配置。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     创建以太网服务实例,并进入以太网服务实例视图。

service-instance instance-id

(4)     在以太网服务实例上应用ACL进行报文过滤。

packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } { inbound | outbound } [ hardware-count ]

缺省情况下,以太网服务实例不对报文进行过滤。

1.9.5  配置报文过滤在VLAN接口的生效范围

1. 功能简介

在VLAN接口下应用ACL进行报文过滤时,可以通过本功能指定报文过滤的生效范围:

·     仅对三层转发的报文生效。

·     对所有报文生效,即通过VLAN接口进行三层转发的报文和通过VLAN接口对应的物理接口进行二层转发的报文均生效。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入已创建的VLAN接口视图。

interface vlan-interface vlan-interface-id

(3)     配置报文过滤的生效范围。

packet-filter filter [ route | all ]

缺省情况下,报文过滤对通过VLAN接口进行三层转发的报文生效。

1.9.6  配置报文过滤日志信息或告警信息的生成与发送周期

1. 功能简介

报文过滤日志或告警信息的生成与发送周期起始于报文过滤中ACL匹配数据流的第一个数据包,报文过滤日志或告警信息包括周期内被匹配的报文数量以及所使用的ACL规则。在一个周期内:

·     对于规则匹配数据流的第一个数据包,设备会立即生成报文过滤日志或告警信息;

·     对于规则匹配数据流的其他数据包,设备将在周期结束后生成报文过滤日志或告警信息。

设备生成的报文过滤日志将发送给信息中心,有关信息中心的详细介绍,请参见“网络管理和监控配置指导”中的“信息中心”。

设备生成的告警信息将发送给SNMP,有关SNMP的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置报文过滤日志信息或告警信息的生成与发送周期。

acl { logging | trap } interval interval

缺省情况下,报文过滤日志信息或告警信息的生成与发送周期为0分钟,即不记录报文过滤的日志和告警信息。

1.9.7  配置报文过滤的缺省动作

1. 功能简介

系统缺省的报文过滤动作为Permit,即允许未匹配上ACL规则的报文通过。通过本配置可更改报文过滤的缺省动作为Deny,即禁止未匹配上ACL规则的报文通过。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置报文过滤的缺省动作为Deny。

packet-filter default deny

缺省情况下,报文过滤的缺省动作为Permit,即允许未匹配上ACL规则的报文通过。

1.9.8  配置忽略报文过滤功能添加的Permit标记

1. 功能简介

报文过滤功能通过引用ACL实现。当ACL规则中的动作为Permit时,命中该规则的报文将被允许通过,并为这类报文添加Permit标记。携带Permit标记的报文即使匹配了QoS策略的丢弃动作(例如,CAR中的Discard动作),也不会被丢弃。

配置本命令后,设备会忽略报文过滤功能为报文添加的Permit标记,该报文可以被QoS策略的丢弃动作处理。

2. 配置限制和指导

Permit标记仅在本设备上生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置忽略报文过滤功能添加的Permit标记。

packet-filter permit-flag ignore

缺省情况下,不会忽略报文过滤功能添加的Permit标记。

1.10  ACL显示和维护

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

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

表1-3 ACL显示和维护

配置

命令

显示ACL的配置和运行情况

display acl [ ipv6 | mac | user-defined ] { acl-number | all | name acl-name }

显示ACL白名单包含的ACL规则信息

display acl whitelist [ ipv6 ] slot slot-number

显示ACL在报文过滤中的应用情况

display packet-filter { interface [ interface-type interface-number ] | l2vpn-ac [ interface interface-type interface-number [ service-instance instance-id ] ] | vlan-interface } [ inbound | outbound ] [ slot slot-number  ]

显示ACL在报文过滤中应用的统计信息

display packet-filter statistics { interface interface-type interface-number | l2vpn-ac interface interface-type interface-number service-instance instance-id | vlan-interface } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ] [ brief ]

显示ACL在报文过滤中应用的累加统计信息

display packet-filter statistics sum { inbound | outbound } [ ipv6 | mac | user-defined ] { acl-number | name acl-name } [ brief ]

显示ACL在报文过滤中的详细应用情况

display packet-filter verbose { interface interface-type interface-number | l2vpn-ac interface interface-type interface-number service-instance instance-id | vlan-interface } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ] [ slot slot-number ]

显示QoS和ACL资源的使用情况

display qos-acl resource [ advanced-mode ] [ slot slot-number ]

清除ACL的统计信息

reset acl [ ipv6 | mac | user-defined ] counter { acl-number | all | name acl-name }

清除ACL在报文过滤中应用的统计信息

reset packet-filter statistics { interface [ interface-type interface-number ] | l2vpn-ac [ interface interface-type interface-number service-instance instance-id ] | vlan-interface } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ]

 

1.11  ACL典型配置举例

1.11.1  在接口上应用包过滤的ACL配置举例

1. 组网需求

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

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

2. 组网图

图1-1 ACL典型配置组网图

3. 配置步骤

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

<Device> system-view

[Device] time-range work 08:00 to 18:00 working-day

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

[Device] acl advanced 3000

[Device-acl-ipv4-adv-3000] rule permit ip source 192.168.1.0 0.0.0.255 destination 192.168.0.100 0

[Device-acl-ipv4-adv-3000] rule permit ip source 192.168.2.0 0.0.0.255 destination 192.168.0.100 0 time-range work

[Device-acl-ipv4-adv-3000] rule deny ip source any destination 192.168.0.100 0

[Device-acl-ipv4-adv-3000] quit

# 应用IPv4高级ACL 3000对接口Ten-GigabitEthernet1/0/1出方向上的报文进行过滤。

[Device] interface ten-gigabitethernet 1/0/1

[Device-Ten-GigabitEthernet1/0/1] packet-filter 3000 outbound

[Device-Ten-GigabitEthernet1/0/1] quit

4. 验证配置

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

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

C:\> ping 192.168.0.100

 

Pinging 192.168.0.100 with 32 bytes of data:

 

Reply from 192.168.0.100: bytes=32 time=1ms TTL=255

Reply from 192.168.0.100: bytes=32 time<1ms TTL=255

Reply from 192.168.0.100: bytes=32 time<1ms TTL=255

Reply from 192.168.0.100: bytes=32 time<1ms TTL=255

 

Ping statistics for 192.168.0.100:

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

Approximate round trip times in milli-seconds:

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

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

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

C:\> ping 192.168.0.100

 

Pinging 192.168.0.100 with 32 bytes of data:

 

Request timed out.

Request timed out.

Request timed out.

Request timed out.

 

Ping statistics for 192.168.0.100:

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

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

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

[Device] display acl 3000

Advanced IPv4 ACL 3000, 3 rules,

ACL's step is 5

 rule 0 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.0.100 0

 rule 5 permit ip source 192.168.2.0 0.0.0.255 destination 192.168.0.100 0 time-range work (Active)

 rule 10 deny ip destination 192.168.0.100 0

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

 

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

新华三官网
联系我们