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

08-ACL和QoS配置指导

目录

01-ACL配置

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

docurl=/cn/Service/Document_Software/Document_Center/Home/Switches/00-Public/Configure/Operation_Manual/H3C_S12500-X_S12500X-AF_CG(R113x)-6W101/08/202001/1258139_30005_0.htm

01-ACL配置


1 ACL

1.1  ACL简介

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

1.1.1  ACL在交换机上的应用方式

当ACL被其他功能引用时,根据设备在实现该功能时的处理方式(硬件处理或者软件处理),ACL可以被分为基于硬件的应用和基于软件的应用。

典型的基于硬件的应用包括:报文过滤、QoS策略;基于软件的应用包括:路由、对登录用户(Telnet、SNMP)进行控制等。

在某些应用方式下(例如QoS策略),ACL仅用于匹配报文,ACL规则中的动作(deny或permit)被忽略,不作为对报文进行丢弃或转发的依据,类似情况请参见相应功能中的说明。

说明

·         当ACL被QoS策略引用进行流分类时,如果报文没有与ACL中的规则匹配,此时交换机不会使用流行为中定义的动作对此类报文进行处理。

·         当ACL被用于对Telnet和SNMP登录用户进行控制时,如果报文没有与ACL中的规则匹配,此时交换机对此类报文采取的动作为deny,即拒绝报文通过。

·         关于应用ACL对报文进行过滤的介绍和配置,请参见“1.3.6  应用ACL进行报文过滤”。

 

1.1.2  ACL的编号和名称

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

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

说明

基本ACL、高级ACL的编号和名称在IPv4中唯一。

 

1.1.3  ACL的分类

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

表1-1 ACL的分类

ACL类型

编号范围

适用的IP版本

规则制订依据

基本ACL

2000~2999

IPv4

报文的源IPv4地址

高级ACL

3000~3999

IPv4

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

二层ACL

4000~4999

IPv4

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

用户自定义ACL

5000~5999

IPv4

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

 

1.1.4  ACL的规则匹配顺序

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

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

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

说明

用户自定义ACL的规则只能按照配置顺序进行匹配。其它类型的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)     如果四层端口号的覆盖范围无法比较,再比较配置的先后次序,先配置者优先

二层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就是一个合法的通配符掩码。

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

 

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.2  ACL配置任务简介

表1-3 ACL配置任务简介

配置任务

说明

详细配置

配置基本ACL

四者至少选其一

1.3.1 

配置高级ACL

1.3.2 

配置二层ACL

1.3.3 

配置用户自定义ACL

1.3.4 

复制ACL

可选

1.3.5 

应用ACL进行报文过滤

可选

1.3.6 

 

1.3  配置ACL

1.3.1  配置IPv4基本ACL

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

表1-4 配置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 | source { source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *

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

当IPv4基本ACL用于QoS策略的流分类或用于报文过滤功能时,

·         不支持配置vpn-instance参数

·         如果QoS策略或报文过滤功能应用于出方向,则不支持配置counting参数,且只能匹配三层转发报文

(可选)为指定规则配置描述信息

rule rule-id comment text

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

 

1.3.2  配置 IPv4高级ACL

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

表1-5 配置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-address dest-wildcard | any } | destination-port operator port1 [ port2 ] | { dscp dscp | { precedence precedence | tos tos } * } | fragment | icmp-type { icmp-type [ icmp-code ] | icmp-message } | qos-local-id local-id-value | source { source-address source-wildcard | any } | source-port operator port1 [ port2 ] | time-range time-range-name  | vpn-instance vpn-instance-name ] *

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

需要注意的是,当IPv4高级ACL用于QoS策略的流分类或用于报文过滤功能时:

·         不支持配置vpn-instance参数

·         不支持配置操作符operator取值为neq

·         如果QoS策略或报文过滤功能应用于出方向,则不支持配置操作符operator取值为gtltrange,也不支持配置counting参数,并且只能匹配三层转发报文

仅Release 1138P01及以上版本支持配置qos-local-id参数

(可选)为指定规则配置描述信息

rule rule-id comment text

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

 

1.3.3  配置二层ACL

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

表1-6 配置二层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内不存在任何规则

需要注意的是,当二层ACL用于QoS策略的流分类或用于报文过滤功能时:

·         如果使用lsap参数,则lsap-type必须为AAAA,lsap-type-mask必须为FFFF,否则ACL将无法正常应用

·         如果QoS策略或报文过滤功能应用于出方向,则不支持lsaptypecounting参数

(可选)为指定规则配置描述信息

rule rule-id comment text

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

 

1.3.4  配置用户自定义ACL

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

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

操作

命令

说明

进入系统视图

system-view

-

创建用户自定义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 } [ { l2 rule-string rule-mask offset }&<1-8> ] [ counting | time-range time-range-name ] *

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

需要注意的是,当自定义ACL用于QoS策略的流分类或是包过滤功能时,不能在出方向进行应用。

(可选)为指定规则配置描述信息

rule rule-id comment text

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

 

说明

在指定自定义ACL的匹配字段位置时,请结合报文是否携带VLAN Tag以及携带VLAN Tag的数量来计算和配置偏移值(每个VLAN Tag占用4个字节)。

 

1.3.5  复制ACL

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

提示

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

 

表1-8 复制ACL

操作

命令

说明

进入系统视图

system-view

-

复制并生成一个新的ACL

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

-

 

1.3.6  应用ACL进行报文过滤

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

1. 全局应用ACL进行报文过滤

仅Release 1138P01及以上版本支持本特性。

表1-9 全局应用ACL进行报文过滤

操作

命令

说明

进入系统视图

system-view

-

全局应用ACL进行报文过滤

packet-filter { acl-number | name acl-name } global { inbound | outbound } [ hardware-count ]

缺省情况下,全局不对报文进行过滤

 

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

说明

本节中的“接口”指的是二层以太网接口、三层以太网接口、三层以太网子接口和VLAN接口。三层以太网接口是指在以太网接口视图下通过port link-mode route命令切换为三层模式的以太网接口,有关以太网接口工作模式切换的操作,请参见“二层技术-以太网交换配置指导”中的“以太网接口配置”。

 

表1-10 在接口上应用ACL进行报文过滤

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

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

packet-filter { acl-number | name acl-name } { inbound [ extension ] | outbound } [ hardware-count ]

缺省情况下,接口不对报文进行过滤

使用extension参数时,设备将使用TCAM中的资源来实现报文过滤

仅Release 1138P01及以上版本支持extension参数

 

说明

在端口上配置报文过滤时,可以同时应用IPv4 ACL和二层ACL,但在每个方向上每种类型的ACL最多只能应用一条。

 

3. 配置报文过滤的缺省动作

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

表1-11 配置报文过滤的缺省动作为deny

操作

命令

说明

进入系统视图

system-view

-

配置报文过滤的缺省动作为Deny

packet-filter default deny

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

 

1.4  ACL显示和维护

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

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

表1-12 ACL显示和维护

配置

命令

显示ACL的配置和运行情况

display acl { acl-number | all | name acl-name }

显示ACL在报文过滤中的应用情况(独立运行模式)

仅Release 1138P01及以上版本支持global参数

display packet-filter { global [ inbound | outbound ] [ slot slot-number ] | interface [ interface-type interface-number ] [ inbound | outbound ] | interface vlan-interface vlan-interface-number [ inbound | outbound ] [ slot slot-number ] }

显示ACL在报文过滤中的应用情况(IRF模式)

仅Release 1138P01及以上版本支持global参数

display packet-filter { global [ inbound | outbound ] [ chassis chassis-number slot slot-number ] | interface [ interface-type interface-number ] [ inbound | outbound ] | interface vlan-interface vlan-interface-number [ inbound | outbound ] [ chassis chassis-number slot slot-number ] }

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

仅Release 1138P01及以上版本支持global参数

display packet-filter statistics { global | interface interface-type interface-number } { inbound | outbound } [ acl-number | name acl-name ] [ brief ]

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

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

显示ACL在报文过滤中的详细应用情况(独立运行模式)

仅Release 1138P01及以上版本支持global参数

display packet-filter verbose { global | interface interface-type interface-number } { inbound | outbound } [ acl-number | name acl-name ] [ slot slot-number ]

显示ACL在报文过滤中的详细应用情况(IRF模式)

仅Release 1138P01及以上版本支持global参数

display packet-filter verbose { global | interface interface-type interface-number } { inbound | outbound } [ acl-number | name acl-name ] [ chassis chassis-number slot slot-number ]

显示QoS和ACL资源的使用情况(独立运行模式)

display qos-acl resource [ slot slot-number ]

显示QoS和ACL资源的使用情况(IRF模式)

display qos-acl resource [ chassis chassis-number slot slot-number ]

清除ACL的统计信息

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

清除ACL在报文过滤中应用的统计信息(包括累加统计信息)

仅Release 1138P01及以上版本支持global参数

reset packet-filter statistics { global | interface [ interface-type interface-number ] } { inbound | outbound } [ acl-number | name acl-name ]

 

1.5  ACL典型配置举例

1.5.1  接口应用ACL实现报文过滤

1. 组网需求

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

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

2. 组网图

图1-1 接口应用ACL实现报文过滤

3. 配置步骤

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

<DeviceA> system-view

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

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

[DeviceA] acl number 3000

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

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

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

[DeviceA-acl-adv-3000] quit

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

[DeviceA] interface fortygige 1/0/1

[DeviceA-FortyGigE1/0/1] packet-filter 3000 outbound

[DeviceA-FortyGigE1/0/1] quit

4. 验证配置

配置完成后,在各部门的PC(假设均为Windows XP操作系统)上可以使用ping命令检验配置效果,在Device A上可以使用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的配置和运行情况。

[DeviceA] display acl 3000

Advanced ACL  3000, named -none-, 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是生效的。

1.5.2  过滤接口发出的ACK或RST标志位为1的TCP报文

1. 组网需求

图1-2所示,某公司业务部门所在网段为192.168.1.0/24,该业务部门通过Switch实现对Server的访问。现要求在连接Server的接口FortyGigE1/0/1上配置报文过滤,禁止业务部门发出的ACK或RST标志位为1的TCP报文与Server进行交互。

说明

本举例涉及了QoS策略相关的配置与命令:

·         有关配置QoS策略的详细介绍,请参见“ACL和QoS配置指导”中的“QoS配置/QoS配置方式”。

·         有关QoS策略命令的详细介绍,请参见“ACL和QoS命令参考"中的“QoS命令/QoS策略”。

 

2. 组网图

图1-2 过滤接口发出的ACK或RST标志位为1的TCP报文组网图

 

3. 配置步骤

# 定义高级ACL 3000,对ACK或RST标志位为1的TCP报文进行分类。

<Switch> system-view

[Switch] acl number 3000

[Switch-acl-adv-3000] rule permit tcp established

[Switch-acl-adv-3000] quit

# 定义类tcp,匹配高级ACL 3000。

[Switch] traffic classifier tcp

[Switch-classifier-tcp] if-match acl 3000

[Switch-classifier-tcp] quit

# 定义流行为remark_qos_local,重标记QoS本地ID值为1。

[Switch] traffic behavior remark_qos_local

[Switch-behavior-remark_qos_local] remark qos-local-id 1

[Switch-behavior-remark_qos_local] quit

# 定义策略tcp_remark_qos_local,为类tcp指定流行为remark_qos_local。

[Switch] qos policy tcp_remark_qos_local

[Switch-qospolicy-tcp_remark_qos_local] classifier tcp behavior remark_qos_local

[Switch-qospolicy-tcp_remark_qos_local] quit

# 将策略tcp_remark_qos_local应用到全局的入方向上。

[Switch] qos apply policy tcp_remark_qos_local global inbound

# 定义高级ACL 3001,并制订策略禁止QoS本地ID值为1的IP报文通过。

[Switch] acl number 3001

[Switch-acl-adv-3001] rule deny ip qos-local-id 1

[Switch-acl-adv-3001] quit

# 在接口FortyGigE1/0/1上配置报文过滤,禁止接口发送QoS本地ID值为1的报文,该报文实际为ACK或RST标志位为1的TCP报文。

[Switch] interface fortygige 1/0/1

[Switch-FortyGigE1/0/1] packet-filter 3001 outbound

 

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

新华三官网
联系我们