01-ACL配置
本章节下载: 01-ACL配置 (363.07 KB)
目 录
· 本文将用于IPv4和IPv6的ACL分别简称为IPv4 ACL和IPv6 ACL。若非特别指明,本文所指的ACL均包括IPv4 ACL和IPv6 ACL。
· 设备支持两种运行模式:独立运行模式和IRF模式,缺省情况为独立运行模式。有关IRF模式的介绍,请参见“IRF配置指导”中的“IRF”。
· 本文中提到的EB类、EC1类、EC2类和EF类单板指的是丝印后缀分别为EB、EC1、EC2、EF的单板。
ACL(Access Control List,访问控制列表)是一或多条规则的集合,用于识别报文流。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。网络设备依照这些规则识别出特定的报文,并根据预先设定的策略对其进行处理。
ACL本身只能识别报文,而无法对识别出的报文进行处理,对这些报文的具体处理方法由引用ACL的功能模块(如策略路由、防火墙、流分类等)来决定。
ACL可以应用在诸多领域,其中最基本的就是应用ACL进行报文过滤,具体配置过程请参见“1.3.8 应用ACL进行报文过滤”。此外,ACL还可应用于诸如路由、安全、QoS等领域,有关ACL在这些领域的具体应用方式,请参见相关的配置指导。
用户在创建ACL时必须为其指定编号,不同的编号对应不同类型的ACL,如表1-1所示;同时,为了便于记忆和识别,用户在创建ACL时还可选择是否为其设置名称。ACL一旦创建,便不允许用户再为其设置名称、修改或删除其原有名称。
当ACL创建完成后,用户就可以通过指定编号或名称的方式来指定该ACL,以便对其进行操作。
二层ACL和用户自定义ACL的编号和名称全局(即IPv4和IPv6)唯一;IPv4基本和高级ACL的编号和名称只在IPv4中唯一;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 |
- |
报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息 |
用户自定义ACL |
5000~5999 |
IPv4&IPv6 |
以报文头为基准,指定从报文的第几个字节开始与掩码进行“与”操作,并将提取出的字符串与用户定义的字符串进行比较,从而找出相匹配的报文 |
由于ACL中每条规则的报文匹配条件不同,导致这些规则之间可能存在重复甚至矛盾的地方,因此在将一个报文与ACL的各条规则进行匹配时,需要有明确的匹配顺序来确定规则执行的优先级,一旦匹配上某条规则就不会再继续匹配下去,系统将依据该规则对该报文执行相应的操作。ACL的规则匹配顺序有以下两种:
· 配置顺序:按照规则编号由小到大进行匹配。
· 自动排序:按照“深度优先”原则由深到浅进行匹配,各类型ACL的“深度优先”排序法则如表1-2所示。
用户自定义ACL的规则只能按照配置顺序进行匹配;其它类型的ACL则可选择按照配置顺序或自动顺序进行匹配。
表1-2 各类型ACL的“深度优先”排序法则
ACL类型 |
“深度优先”排序法则 |
IPv4基本ACL |
(1) 先判断规则中是否携带有VPN实例,携带VPN实例者优先 (2) 如果VPN实例的携带情况相同,再比较源IPv4地址范围,范围较小者优先 (3) 如果源IPv4地址范围也相同,再比较配置顺序,编号较小者优先 |
IPv4高级ACL |
(1) 先判断规则中是否携带有VPN实例,携带VPN实例者优先 (2) 如果VPN实例的携带情况相同,再比较协议范围,指定有IPv4承载的协议类型者优先 (3) 如果协议范围也相同,再比较源IPv4地址范围,较小者优先 (4) 如果源IPv4地址范围也相同,再比较目的IPv4地址范围,较小者优先 (5) 如果目的IPv4地址范围也相同,再比较四层端口(即TCP/UDP端口)号范围,较小者优先 (6) 如果四层端口号范围也相同,再比较配置顺序,编号较小者优先 |
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”位越多,范围越小。
在一个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-3 ACL配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置ACL的生效时间段 |
可选 本配置任务适用于IPv4和IPv6 |
||
配置ACL工作模式 |
可选 本配置任务仅适用于EB/EC2类单板 |
||
配置基本ACL |
四者至少选其一 |
本配置任务适用于IPv4和IPv6 |
|
配置高级ACL |
本配置任务适用于IPv4和IPv6 |
||
配置二层ACL |
本配置任务适用于IPv4和IPv6 |
||
配置用户自定义ACL |
本配置任务适用于IPv4和IPv6 |
||
复制ACL |
可选 本配置任务适用于IPv4和IPv6 |
||
应用ACL进行报文过滤 |
可选 本配置任务适用于IPv4和IPv6 |
当ACL规则只需在某个或某些特定的时间段内生效时,可以设置基于时间段的ACL过滤。为此,用户可以先配置一个或多个时间段,然后在规则中引用这些时间段,那么该规则将只在指定的时间段内生效。ACL的生效时间段可分为以下两种:
· 周期时间段:表示规则以一周为周期(如每周一的8至12点)循环生效。
· 绝对时间段:表示规则在指定时间范围内(如2011年1月1日8点至2011年1月3日18点)生效。
用户使用同一名称可以配置内容不同的多条时间段,所配置的各周期时间段之间以及各绝对时间段之间分别取并集之后,各并集的交集将成为最终生效的时间范围。
表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条绝对时间段。
设备上有EB/EC2类单板时,用户可以通过配置ACL工作模式来改变EB/EC2类单板的ACL规则长度。
· 当工作在ACL标准模式时,EB/EC2类单板的ACL规则长度为24字节,且仅支持二层ACL、IPv4基本ACL和IPv4高级ACL。
· 当工作在ACL高级模式时,EB/EC2类单板的ACL规则长度为48字节,且支持二层ACL、IPv4基本ACL、IPv4高级ACL、IPv6基本ACL、IPv6高级ACL和用户自定义ACL。
切换ACL工作模式会改变EB/EC2类单板的ACL规则长度和支持的ACL规则总数(ACL标准模式下支持的ACL规则总数比ACL高级模式下增加一倍),可能会导致ACL相关的配置失效,请谨慎使用。
表1-5 配置ACL的工作模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置EB/EC2类单板的ACL工作模式 |
acl mode { standard | advanced } |
必选 缺省情况下,EB/EC2类单板工作在ACL高级模式 |
· 本功能仅对EB/EC2类单板生效。
· 本功能配置后,必须保存配置并重启设备后才会生效。
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 | fragment | logging | source { sour-addr sour-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] * |
必选 缺省情况下,IPv4基本ACL内不存在任何规则 目前,仅Packet-Filter特性支持logging参数 当设备为PE设备时,对于VPN私网侧的报文无法匹配IPv4基本ACL规则中的VPN实例(即无法匹配rule中的vpn-instance参数)。当设备为MCE设备时VPN的报文也无法匹配IPv4基本ACL规则中的VPN实例。关于PE设备、MCE设备的介绍请参见“MPLS配置指导”中的“MPLS L3VPN” |
为指定规则配置描述信息 |
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-7 配置IPv6基本ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置系统ACL规则的长度 |
acl ipv6 enable |
必选 本命令用来设置EC1/EF类单板ACL规则长度为80字节 缺省情况下,EC1/EF类单板ACL规则长度为40字节 本命令仅对EC1/EF类单板有效,只有在执行本命令后,此类单板才支持用户自定义ACL、IPv6 基本ACL或IPv6 高级ACL |
创建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 | fragment | logging | source { ipv6-address prefix-length | ipv6-address/prefix-length | any } | time-range time-range-name | vpn-instance vpn-instance-name ] * |
必选 缺省情况下,IPv6基本ACL内不存在任何规则 目前,仅Packet-Filter特性支持logging参数 目前设备不支持vpn-instance参数 |
为指定规则配置描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
配置规则注释信息 |
rule [ rule-id ] remark text |
可选 缺省情况下,ACL内没有任何规则注释信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
如果在创建IPv6基本ACL时为其指定了名称,则也可以使用acl ipv6 name acl6-name命令通过指定名称的方式进入其视图。
IPv4高级ACL可根据报文的源IP地址、目的IP地址、报文优先级、IP承载的协议类型及特性(如TCP/UDP的源端口和目的端口、TCP报文标识、ICMP协议的消息类型和消息码等)等信息来制定规则,对IPv4报文进行匹配。用户可利用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 | 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内不存在任何规则 仅Packet-Filter特性支持logging参数 reflective参数暂不支持 当EB/EC2类单板工作在ACL标准模式时,该类单板引用的IPv4高级ACL不支持vpn-instance参数 当设备为PE设备时,对于VPN私网侧的报文无法匹配IPv4基本ACL规则中的VPN实例(即无法匹配rule中的vpn-instance参数)。当设备为MCE设备时VPN的报文也无法匹配IPv4基本ACL规则中的VPN实例。关于PE设备、MCE设备的介绍请参见“MPLS配置指导”中的“MPLS L3VPN” |
为指定规则配置描述信息 |
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-9 配置IPv6高级ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置系统ACL规则的长度 |
acl ipv6 enable |
必选 本命令用来设置EC1/EF类单板ACL规则长度为80字节 缺省情况下,EC1/EF类单板ACL规则长度为40字节 本命令仅对EC1/EF类单板有效,只有在执行本命令后,此类单板才支持用户自定义ACL、IPv6 基本ACL或IPv6 高级ACL |
创建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 | fragment | icmp6-type { icmp6-type icmp6-code | icmp6-message } | logging | 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内不存在任何规则 目前,仅Packet-Filter特性支持logging参数 设备目前不支持vpn-instance参数 |
为指定规则配置描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
配置规则注释信息 |
rule [ rule-id ] remark text |
可选 缺省情况下,ACL内没有任何规则注释信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
如果在创建IPv6高级ACL时为其指定了名称,则也可以使用acl ipv6 name acl6-name命令通过指定名称的方式进入其视图。
二层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的描述信息 |
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内不存在任何规则 设备目前不支持lsap参数 当EB/EC2类单板工作在ACL标准模式时,该类单板引用的二层ACL规则中protocol-type protocol-type-mask不支持配置为0x86DD 0xFFFF(匹配IPv6报文) |
为指定规则配置描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
配置规则注释信息 |
rule [ rule-id ] remark text |
可选 缺省情况下,ACL内没有任何规则注释信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
如果在创建二层ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。
用户自定义ACL可以以报文头为基准,指定从报文的第几个字节开始与掩码进行“与”操作,并将提取出的字符串与用户定义的字符串进行比较,从而找出相匹配的报文。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置系统ACL规则的长度 |
acl ipv6 enable |
必选 本命令用来设置EC1/EF类单板ACL规则长度为80字节 缺省情况下,EC1/EF类单板ACL规则长度为40字节 本命令对EC1/EF类单板有效,只有在执行本命令后,此类单板才支持用户自定义ACL、IPv6 基本ACL或IPv6 高级ACL |
创建用户自定义ACL,并进入用户自定义ACL视图 |
acl number acl-number [ name acl-name ] |
必选 缺省情况下,不存在任何ACL 用户自定义ACL的编号范围为5000~5999 |
配置ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有任何描述信息 |
创建规则 |
rule [ rule-id ] { deny | permit } [ { { ipv4 | ipv6 | l2 | l4 } rule-string rule-mask offset }&<1-8> ] [ time-range time-range-name ] [ counting ] |
必选 缺省情况下,用户自定义ACL内不存在任何规则 |
为指定规则配置描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有任何描述信息 |
配置规则注释信息 |
rule [ rule-id ] remark text |
可选 缺省情况下,ACL内没有任何规则注释信息 |
使能ACL的规则匹配统计功能 |
hardware-count enable |
可选 缺省情况下,ACL的规则匹配统计功能处于关闭状态 |
· 如果在创建用户自定义ACL时为其指定了名称,则也可以使用acl name acl-name命令通过指定名称的方式进入其视图。
· 用户自定义ACL的规则只能按照配置顺序进行匹配。
· 在组成IRF的所有设备上,acl ipv6必须配置一致,即都为acl ipv6 enable或都为acl ipv6 disable,否则不能形成IRF。有关IRF的介绍,请参见“IRF配置指导”中的“IRF”。
用户可通过复制一个已存在的ACL(即源ACL),来生成一个新的同类型ACL(即目的ACL)。除了ACL的编号和名称不同外,新生成的目的ACL的匹配顺序、规则匹配统计功能的使能情况、规则编号的步长、所包含的规则、规则的描述信息以及ACL的描述信息等都与源ACL的相同。
表1-12 复制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必须不存在,否则将导致复制失败。
表1-13 复制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必须不存在,否则将导致复制失败。
ACL最基本的应用就是进行报文过滤,即通过将ACL规则应用到指定接口的入或出方向上,从而对该接口收到或发出的报文进行过滤。此外,通过配置报文过滤日志的生成与发送周期,还可周期性地生成并发送报文过滤的日志信息(信息级别为informational),包括匹配次数以及所使用的ACL规则。该日志信息将被发往信息中心,有关信息中心的详细介绍,请参见“网络管理和监控配置指导”中的“信息中心”。
· 在VLAN接口上应用ACL进行报文过滤时,只能对通过该接口进行三层转发的报文进行过滤,而对纯二层转发的报文不进行过滤。
· 系统只支持对应用基本ACL或高级ACL进行报文过滤的日志进行记录,并在配置上述ACL规则时必须打开其日志记录功能(通过指定logging参数)和规则匹配统计功能(通过指定counting参数或使用hardware-count enable命令)。
表1-14 在设备上应用IPv4 ACL进行报文过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能以太网接口板VLAN接口出方向报文过滤限制功能 |
packet-filter forwarding-layer route outbound |
可选 执行本命令后,如果再在以太网接口板上的VLAN接口出方向配置报文过滤功能,报文过滤将只对VLAN接口出方向的三层单播报文生效 缺省情况下,以太网接口板VLAN接口出方向配置的IPv4报文过滤对所有报文生效 当EB/EC2类单板工作在ACL标准模式下时,该类单板不支持VLAN接口出方向报文过滤限制功能 |
进入接口视图 |
interface interface-type interface-number |
- |
应用IPv4基本ACL、IPv4高级ACL、二层ACL或用户自定义ACL进行报文过滤 |
packet-filter { acl-number | name acl-name } { inbound | outbound } |
必选 缺省情况下,在接口上不对报文进行过滤 在VLAN接口上执行本命令,入方向只对三层单播报文生效,出方向对所有报文生效;在以太网接口上执行本命令,对所有报文均生效 当EB/EC2类单板工作在ACL标准模式时,该类单板上的接口不支持应用用户自定义ACL进行报文过滤 请避免多个用户同时进行本配置,否则可能导致配置失败 |
退回系统视图 |
quit |
- |
配置报文过滤日志的生成与发送周期 |
acl logging frequence frequence |
两者必选其一 缺省情况下,报文过滤日志的生成与发送周期为0分钟,即不记录报文过滤的日志 |
· packet-filter forwarding-layer route outbound命令仅对以太网接口板生效。
· packet-filter forwarding-layer route outbound或undo packet-filter forwarding-layer route outbound命令必须在packet-filter { acl-number | name acl-name } outbound命令之前配置才有效;如果在以太网接口板的VLAN接口出方向已经配置了packet-filter { acl-number | name acl-name } outbound命令,则需要先清除此配置,然后配置packet-filter forwarding-layer route outbound或undo packet-filter forwarding-layer route outbound命令,最后在以太网接口板VLAN接口上重新配置packet-filter { acl-number | name acl-name } outbound命令,报文过滤限制功能才能正常生效。
· 配置了packet-filter forwarding-layer route outbound命令后,可能导致BFD报文被丢弃。为了保证BFD功能的正常使用,建议您配置IPv4高级ACL规则允许BFD报文通过,即配置命令rule [ rule-id ] permit udp destination-port range 3784 3785。
· 在IRF模式下,配置了packet-filter forwarding-layer route outbound命令后,可能导致sFlow报文被丢弃。为了保证sFlow功能的正常使用,建议您配置IPv4高级ACL规则允许sFlow报文通过,即配置命令rule [ rule-id ] permit udp destination-port range eq udp-port(其中udp-port是用户配置的sFlow Collector的端口号,缺省值是6343。关于sFlow的介绍请参见“网络管理与监控配置指导”中的“sFlow”。)
· 基于VLAN接口应用的packet-filter策略会下发到主控板和所有的接口板,如果遇到某个接口板硬件资源不足等情况,会导致策略在该接口板下发失败。此时主控板及所有接口板不回退该策略的配置,需要用户在VLAN接口上用undo packet-filter命令手工将该策略的相关配置清除。类似地,动态修改过程中,如果基于VLAN应用的packet-filter策略在某个接口板刷新时遇到硬件资源不足等情况,下发失败,并不会同时更新display packet-filter命令显示的运行情况,也需要用户手工将该策略的配置清除。
· 如果packet-filter引用的ACL已经生效,在已生效ACL中执行添加rule的操作,新添加的rule可能会不生效(原因可能是ACL资源不够或packet-filter不支持此rule)。通过display acl { acl-number | all | name acl-name } slot slot-number查询ACL的配置和运行情况时,不生效的rule会被标识成“uncompleted”。如果后续有了足够的ACL资源,需要删除不生效的rule并重新配置,此rule才能生效。
表1-15 应用IPv6 ACL进行报文过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
应用IPv6基本ACL或IPv6高级ACL进行报文过滤 |
packet-filter ipv6 { acl6-number | name acl6-name } { inbound | outbound } |
必选 缺省情况下,接口不对报文进行过滤 在VLAN接口上执行本命令,入方向只对三层单播报文生效,出方向对所有报文生效;在以太网接口上执行本命令,对所有报文均生效 请避免多个用户同时进行本配置,否则可能导致配置失败 当EB/EC2类单板工作在ACL标准模式时,该类单板上的接口不支持应用IPv6 ACL进行报文过滤 |
退回系统视图 |
quit |
- |
配置IPv6报文过滤日志的生成与发送周期 |
acl ipv6 logging frequence frequence |
必选 缺省情况下,IPv6报文过滤日志的生成与发送周期为0分钟,即不记录IPv6报文过滤的日志 |
· 基于VLAN接口应用的packet-filter ipv6策略会下发到主控板和所有的接口板,如果遇到某个接口板硬件资源不足等情况,会导致策略在该接口板下发失败。此时主控板及所有接口板不回退该策略的配置,需要用户在VLAN接口上用undo packet-filter ipv6命令手工将该策略的相关配置清除。类似地,动态修改过程中,如果基于VLAN应用的packet-filter ipv6策略在某个接口板刷新时遇到硬件资源不足等情况,下发失败,并不会同时更新display packet-filter命令显示的运行情况,也需要用户手工将该策略的配置清除。
· 如果packet-filter ipv6引用的ACL已经生效,在已生效ACL中执行添加rule的操作,新添加的rule可能会不生效(原因可能是ACL资源不够或packet-filter ipv6不支持此rule)。通过display acl { acl-number | all | name acl-name } slot slot-number查询ACL的配置和运行情况时,不生效的rule会被标识成“uncompleted”。如果后续有了足够的ACL资源,需要删除不生效的rule并重新配置,此rule才能生效。
在完成上述配置后,在任意视图下执行display命令可以显示ACL配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除ACL的统计信息。
表1-16 ACL显示和维护
配置 |
命令 |
显示IPv4 ACL的配置和运行情况(独立运行模式) |
display acl { acl-number | all | name acl-name } [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
显示IPv4 ACL的配置和运行情况(IRF模式) |
display acl { acl-number | all | name acl-name } [ chassis chassis-number slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
显示IPv6 ACL的配置和运行情况(独立运行模式) |
display acl ipv6 { acl6-number | all | name acl6-name } [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
显示IPv6 ACL的配置和运行情况(IRF模式) |
display acl ipv6 { acl6-number | all | name acl6-name } [ chassis chassis-number slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
显示EB/EC2类单板的ACL工作模式 |
display acl mode [ | { begin | exclude | include } regular-expression ] |
显示ACL资源的使用情况(独立运行模式) |
display acl resource [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
显示ACL资源的使用情况(IRF模式) |
display acl resource [ chassis chassis-number slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
显示指定名称的用户自定义流模板的配置信息 |
display flow-template user-defined [ flow-template-name ] [ | { begin | exclude | include } regular-expression ] |
显示报文过滤策略的应用情况(独立运行模式) |
display packet-filter { { all | interface interface-type interface-number } [ inbound | outbound ] | interface vlan-interface vlan-interface-number [ inbound | outbound ] [ slot slot-number ] } [ | { begin | exclude | include } regular-expression ] |
显示报文过滤策略的应用情况(IRF模式) |
display packet-filter { { all | interface interface-type interface-number } [ inbound | outbound ] | interface vlan-interface vlan-interface-number [ inbound | outbound ] [ chassis chassis-number slot slot-number ] } [ | { 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 } |
缺省情况下,以太网接口、VLAN接口及聚合接口处于DOWN状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于UP。
· 公司企业网通过Switch实现各部门之间的互连。
· 要求正确配置ACL,禁止其它部门在上班时间(8:00至18:00)访问工资查询服务器(IP地址为129.110.1.2),而总裁办公室(IP地址为129.111.1.2)不受限制,可以随时访问。
图1-1 配置ACL组网图
# 定义8:00至18:00的周期时间段。
<Switch> system-view
[Switch] time-range trname 8:00 to 18:00 working-day
# 定义总裁办公室到工资服务器的访问规则。
[Switch] acl number 3000
[Switch-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
[Switch-acl-adv-3000] quit
# 定义其它部门到工资服务器的访问规则。
[Switch] acl number 3001
[Switch-acl-adv-3001] rule 1 permit ip source any destination 129.110.1.2 0.0.0.0 time-range trname
[Switch-acl-adv-3001] quit
(3) 定义QoS策略并在端口上应用。
# 配置流分类和流行为。
[Switch] traffic classifier test_permit
[Switch-classifier-test_permit] if-match acl 3000
[Switch-classifier-test_permit] quit
[Switch] traffic behavior test_permit
[Switch-behavior-test_permit] filter permit
[Switch-behavior-test_permit] quit
[Switch] traffic classifier test_deny
[Switch-classifier-test_deny] if-match acl 3001
[Switch-classifier-test_deny] quit
[Switch] traffic behavior test_deny
[Switch-behavior-test_deny] filter deny
[Switch-behavior-test_deny] quit
# 配置QoS策略。
[Switch] qos policy test
[Switch-qospolicy-test] classifier test_permit behavior test_permit
[Switch-qospolicy-test] classifier test_deny behavior test_deny
[Switch-qospolicy-test] quit
# 在GigabitEthernet4/0/1~GigabitEthernet4/0/3端口的入方向上应用QoS策略。
[Switch] interface gigabitethernet 4/0/1
[Switch-GigabitEthernet4/0/1] qos apply policy test inbound
[Switch-GigabitEthernet4/0/1] quit
[Switch] interface gigabitethernet 4/0/2
[Switch-GigabitEthernet4/0/2] qos apply policy test inbound
[Switch-GigabitEthernet4/0/2] quit
[Switch] interface gigabitethernet 4/0/3
[Switch-GigabitEthernet4/0/3] qos apply policy test inbound
[Switch-GigabitEthernet4/0/3] quit
在以太网端口GigabitEthernet4/0/1上配置IPv6报文过滤,允许接收源IPv6地址为4050::9000到4050::90FF的报文,禁止接收其他报文。
# 配置源地址为4050::9000到4050::90FF的ACL规则。
<Sysname> system-view
[Sysname] acl ipv6 number 2000
[Sysname-acl6-basic-2000] rule permit source 4050::9000/120
[Sysname-acl6-basic-2000] quit
# 配置其他源地址的ACL规则。
[Sysname] acl ipv6 number 2001
[Sysname-acl6-basic-2001] rule permit source any
[Sysname-acl6-basic-2001] quit
# 配置允许接收源地址为4050::9000到4050::90FF的类和流行为。
[Sysname] traffic classifier c_permit
[Sysname-classifier-c_permit] if-match acl ipv6 2000
[Sysname-classifier-c_permit] quit
[Sysname] traffic behavior b_permit
[Sysname-behavior-b_permit] filter permit
[Sysname-behavior-b_permit] quit
# 配置拒绝其它源地址的类和流行为。
[Sysname] traffic classifier c_deny
[Sysname-classifier-c_deny] if-match acl ipv6 2001
[Sysname-classifier-c_deny] quit
[Sysname] traffic behavior b_deny
[Sysname-behavior-b_deny] filter deny
[Sysname-behavior-b_deny] quit
# 配置QoS策略。
[Sysname] qos policy test
[Sysname-qospolicy-test] classifier c_permit behavior b_permit
[Sysname-qospolicy-test] classifier c_deny behavior b_deny
[Sysname-qospolicy-test] quit
# 在端口GigabitEthernet4/0/1入方向上应用策略。
[Sysname] interface gigabitethernet 4/0/1
[Sysname-GigabitEthernet4/0/1] qos apply policy test inbound
[Sysname-GigabitEthernet4/0/1] quit
· 要求通过在Switch的VLAN接口上配置报文过滤功能,实现在每天的8:00~18:00时间段对来自Host A的IPv4(三层)报文进行过滤,并对符合条件的报文进行统计并记录日志信息。
· 之后配置需求有变更,要求对来自Host B的IPv4(三层)报文进行过滤。要求通过动态修改ACL规则,实现配置需求的变更。
图1-2 应用ACL进行报文过滤典型配置组网图
# 配置时间段study,在每天的8:00到18:00生效。
<Switch> system-view
[Switch] time-range study 8:00 to 18:00 daily
# 配置VLAN接口,将接口GigabitEthernet3/0/1加入到指定VLAN。
[Switch] vlan 2
[Switch-vlan2] port GigabitEthernet 3/0/1
[Switch-vlan2] quit
# 创建基本IPv4 ACL 2009。
[Switch] acl number 2009
# 定义一个规则,禁止源IP地址为192.168.1.2/32的报文通过,并对符合条件的报文进行统计并记录日志信息。
[Switch-acl-basic-2009] rule 5 deny source 192.168.1.2 0 time-range study logging counting
[Switch-acl-basic-2009] quit
# 配置IPv4报文过滤日志的生成与发送周期为10分钟。
[Switch] acl logging frequence 10
# 应用基本IPv4 ACL 2009对VLAN接口收到的IPv4报文进行过滤。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ip address 192.168.1.1 24
[Switch-Vlan-interface2] packet-filter 2009 inbound
[Switch-Vlan-interface2] quit
# 配置系统信息的输出规则,将级别为informational的日志信息输出至控制台。
[Switch] info-center source default channel 0 log level informational
# 修改ACL规则,禁止源IP地址为192.168.1.3/32的报文通过(设备支持ACL动态修改,可直接修改已经生效ACL规则,修改后即生效)。
[Switch] acl number 2009
[Switch-acl-basic-2009] rule 5 deny source 192.168.1.3 0
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!