01-ACL配置
本章节下载: 01-ACL配置 (363.06 KB)
目 录
本文中的“SPC单板”指的是单板丝印以“SPC”开头(如SPC-GT48L)的单板,“SPE单板”指的是单板丝印以“SPE”开头(如SPE-1020-E-II)的单板。
ACL(Access Control List,访问控制列表)是一或多条规则的集合,用于识别报文流。这里的规则是指描述报文匹配条件的判断语句,匹配条件可以是报文的源地址、目的地址、端口号等。网络设备依照这些规则识别出特定的报文,并根据预先设定的策略对其进行处理。
ACL作为一种规则,可以应用在诸多领域。其中最基本的应用就是利用ACL规则进行报文过滤,即使用不同类型的ACL规则对相应类型的报文进行匹配过滤。此外,通过与其它功能的配合,ACL还可应用于诸如策略路由、包过滤防火墙、QoS策略等领域,有关ACL在这些领域的具体应用,请参见相关的配置指导。
ACL本身只能识别报文,而无法对识别出的报文进行处理,对这些报文的具体处理方法由应用ACL的业务模块来决定。
用户在创建ACL时必须为其指定编号,不同的编号对应不同类型的ACL,如表1-1所示;同时,为了便于记忆和识别,用户在创建ACL时还可选择是否为其设置名称。ACL一旦创建,便不允许用户再为其设置名称、修改或删除其原有名称。
当ACL创建完成后,用户就可以通过指定编号或名称的方式来指定该ACL,以便对其进行操作。
IPv4基本ACL和IPv4高级ACL的编号和名称只在IPv4中唯一;IPv6基本ACL和IPv6高级ACL的编号和名称也只在IPv6中唯一。
根据规则制订依据的不同,可以将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 |
以报文头为基准,指定从报文的第几个字节开始与掩码进行“与”操作,并将提取出的字符串与用户定义的字符串进行比较,从而找出相匹配的报文 |
对于SPE单板来说,二层ACL被报文过滤或QoS流分类引用时,不支持匹配IPv6报文。
当一个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”位越多,范围越小。
在一个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。
传统的报文过滤并不处理所有的IPv4报文分片,而只对首片分片报文进行匹配处理,而对后续分片一律放行。这样,网络攻击者可能构造后续的分片报文进行流量攻击,就带来了安全隐患。H3C的设备能够对IPv4分片报文进行如下处理:
· 对所有的分片报文进行三层(IP层)匹配过滤。
· 对于包含高级信息的IPv4 ACL规则项(譬如TCP/UDP端口号、ICMP类型等),提供标准匹配和精确匹配两种匹配方式,缺省的匹配方式为标准匹配方式。
标准匹配和精确匹配的含义如下:
· 标准匹配:只匹配三层信息,而三层以外的信息将被忽略。
· 精确匹配:对IPv4 ACL定义的所有的规则项进行匹配。
这两种匹配方式只有包过滤防火墙支持,具体介绍请参见“安全配置指导”中的“包过滤防火墙”。
流模板的主要功能是对硬件下发的ACL规则中所能包含的信息进行限制。在接口下发的ACL规则中包含的信息必须是该接口下发流模板中定义信息的子集。比如,流模板定义了源IP地址、目的IP地址、源TCP端口、目的TCP端口等限制,只有在上述范围内的ACL规则可以正确下发到硬件中,用于包过滤、QoS等功能;否则ACL规则将不能下发到硬件中,导致包过滤、QoS等功能不能引用此ACL规则。
设备支持的流模板包括缺省流模板和用户自定义流模板。
流模板只对基于硬件处理的ACL有效,对基于软件处理的ACL(如路由策略中引用的ACL)不生效。
ACL作为一种规则,可以应用在诸多领域。其中最基本的应用就是利用ACL规则进行报文过滤,即使用不同类型的ACL规则对相应类型的报文进行匹配过滤。此外,通过与其它功能的配合,ACL还可应用于诸如策略路由、包过滤防火墙、QoS策略等领域,有关ACL在这些领域的具体应用,请参见相关的配置指导。
如果ACL同时在入方向应用策略路由、包过滤防火墙、QoS策略,那么它的生效优先级如下图所示:
图1-1 应用在入方向的优先级示意图
如果ACL同时在出方向应用策略路由、包过滤防火墙、QoS策略,那么它的生效优先级如下图所示:
图1-2 应用在出方向的优先级示意图
关于包过滤防火墙的配置请参见“安全配置指导”中的“包过滤防火墙”;关于策略路由配置请参见“三层技术-IP路由配置指导”中的“策略路由”、“IPv6策略路由”;关于QoS策略参见“ACL和QoS配置指导”中的“QoS”。
表1-3 IPv4 ACL配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置ACL的生效时间段 |
可选 本配置任务适用于IPv4和IPv6 |
||
配置基本ACL |
四者至少选其一 |
本配置任务适用于IPv4和IPv6 |
|
配置高级ACL |
本配置任务适用于IPv4和IPv6 |
||
配置二层ACL |
本配置任务适用于IPv4和IPv6 |
||
配置用户自定义ACL |
本配置任务适用于IPv4和IPv6 |
||
复制ACL |
可选 本配置任务适用于IPv4和IPv6 |
||
配置流模板 |
可选 本配置任务适用于IPv4和IPv6 |
时间段定义了一个时间范围。当一个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 } |
必选 缺省情况下,不存在任何时间段 |
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的模块支持日志记录功能才能生效,例如包过滤防火墙 |
为指定规则配置描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
配置规则注释信息 |
rule [ rule-id ] remark text |
可选 缺省情况下,ACL内没有任何规则注释信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
如果在创建IPv4基本ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。
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的模块支持日志记录功能才能生效,例如包过滤防火墙 设备暂不支持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单板,只有ACL key长度为80Bytes或48Bytes的情况下,在QoS策略中配置IPv6 基本ACL时才会配置成功。关于ACL key长度的介绍请参见“ACL和QoS命令参考”中的“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的模块支持日志记录功能才能生效,例如包过滤防火墙 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
配置规则注释信息 |
rule [ rule-id ] remark text |
可选 缺省情况下,ACL内没有任何规则注释信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
如果在创建IPv4高级ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。
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的模块支持日志记录功能才能生效,例如包过滤防火墙 设备暂不支持routing [ type routing-type ] 参数 |
为指定规则配置描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
配置规则注释信息 |
rule [ rule-id ] remark text |
可选 缺省情况下,ACL内没有任何规则注释信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
对于SPC单板,只有ACL key长度为80Bytes或48Bytes的情况下,在QoS策略中配置IPv6 高级ACL时才会配置成功。关于ACL key长度的介绍请参见“ACL和QoS命令参考”中的“ACL”。
二层ACL可根据报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息来制定规则,对报文进行匹配。
操作 |
命令 |
说明 |
进入系统视图 |
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内不存在任何规则 |
为指定规则配置描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
配置规则注释信息 |
rule [ rule-id ] remark text |
可选 缺省情况下,ACL内没有任何规则注释信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
如果在创建二层ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。
用户自定义ACL,仅在SPC单板支持,SPE单板不支持。
用户自定义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的规则只能按照配置顺序进行匹配。
用户可通过复制一个已存在的ACL(即源ACL),来生成一个新的同类型ACL(即目的ACL)。除了ACL的编号和名称不同外,目的ACL与源ACL完全相同。
目的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 } |
必选 |
表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 } |
必选 |
流模板功能仅在SPE单板支持,SPC单板不支持。
流模板与ACL配合使用,其主要功能是对硬件下发的ACL规则所包含的信息进行限制。在接口下发的规则所包含的信息必须是该接口下发的流模板中所定义信息的子集。比如,流模板定义了对源IP地址、目的IP地址、源TCP端口、目的TCP端口等的限制,只有限制范围内的规则才可以正确地下发给硬件;否则,规则将无法下发给硬件,从而导致包过滤、QoS等功能无法引用该规则。
缺省情况下,接口上应用有缺省的流模板。用户也可以创建自定义流模板,然后将其应用在接口上。
操作 |
命令 |
说明 |
|
进入系统视图 |
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。
ACL key的长度模式定义了ACL流模板可配置的字段长度。目前产品支持如下四种ACL key的长度模式:
· 1:SPE单板的ACL Key为18Bytes,SPC单板的ACL Key为40Bytes。
· 2:SPE单板的ACL Key为36Bytes,SPC单板的ACL Key为40Bytes。
· 3:SPE单板的ACL Key为18Bytes,SPC单板的ACL Key为80Bytes。
· 4:SPE单板的ACL Key为36Bytes,SPC单板的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单板,只有ACL key长度为80Bytes或48Bytes的情况下,在QoS策略中配置IPv6 ACL时才会配置成功。关于ACL key长度的介绍请参见“ACL和QoS命令参考”中的“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 } |
· 某公司内的各部门之间通过Device 实现互连,该公司的工作时间为每周工作日的8点到18点。
· 通过配置,允许总裁办在任意时间访问工资查询服务器;禁止其它部门在上班时间(8:00至18:00)访问工资查询服务器。
图1-3 IPv4高级ACL配置组网图
# 定义8:00至18:00的周期时间段。
<Device> system-view
[Device] time-range trname 8:00 to 18:00 working-day
# 进入高级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
· 某公司内的各部门之间通过Device A实现互连,该公司的工作时间为每周工作日的8点到18点。
· 通过配置,允许总裁办在任意时间、财务部在工作时间访问财务数据库服务器,禁止其它部门在任何时间、财务部在非工作时间访问该服务器。
图1-4 IPv6高级ACL配置组网图
# 创建名为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
配置完成后,在各部门的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次。
配置用户自定义流模板,并在接口上应用。
# 配置标准型用户自定义流模板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
配置SPE单板的ACL key长度模式为18Bytes,SPC单板的ACL key长度模式为80Bytes。
# 配置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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!