23-ACL命令
本章节下载 (240.11 KB)
【命令】
acl number acl-number [ match-order { auto | config } ]
undo acl { all | number acl-number }
【视图】
系统视图
【参数】
all:所有的ACL(Access Control List,访问控制列表)。
number acl-number:ACL序号,取值范围为:
l 2000~2999:表示基本ACL。
l 3000~3999:表示高级ACL(3998与3999是系统为集群管理预留的编号,用户无法配置)。
l 4000~4999:表示二层ACL。
l 5000~5999:表示IPv6 ACL。
match-order:指定对该ACL规则的匹配顺序,匹配顺序如下:
l auto:按照“深度优先”的顺序进行规则匹配。
l config:按照用户配置规则的先后顺序进行规则匹配。
关于auto和config这两种匹配顺序的详细介绍请参见“ACL操作”中的描述。
需要注意的是,在定义二层ACL和IPv6 ACL时没有match-order参数,二层ACL和IPv6 ACL的匹配顺序为config。
【描述】
acl命令用来定义ACL,并进入相应的ACL视图。undo acl命令用来删除指定的ACL,或者删除全部ACL。
缺省情况下,ACL规则的匹配顺序为config。
用户也可以通过本命令修改一个已经存在的ACL的匹配顺序,但必须在ACL中没有规则的时候修改,对已经包含规则的ACL是无法修改其匹配顺序的。
进入相应的ACL视图之后,可以用rule命令增加此ACL的规则。
相关配置可参考命令rule。
【举例】
# 定义基本ACL 2000,并配置其匹配顺序为“深度优先”。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] acl number 2000 match-order auto
# 为基本ACL 2000创建三条源IP地址范围(反掩码中“0”位的数量)不同的规则。
[Sysname-acl-basic-2000] rule 1 permit source 1.1.1.1 0.255.255.255
[Sysname-acl-basic-2000] rule 2 permit source 2.2.2.2 0.0.255.255
[Sysname-acl-basic-2000] rule 3 permit source 3.3.3.3 0.0.0.255
# 使用display acl命令查看基本ACL 2000的配置信息。
[Sysname-acl-basic-2000] display acl 2000
Basic ACL 2000, 3 rules, match-order is auto
Acl's step is 1
rule 3 permit source 3.3.3.0 0.0.0.255
rule 2 permit source 2.2.0.0 0.0.255.255
rule 1 permit source 1.0.0.0 0.255.255.255
以上信息表明,设备按照“深度优先”的原则对基本ACL 2000内的规则进行排序,即按照规则反掩码中“0”位的数量由多到少的顺序排列。
【命令】
description text
undo description
【视图】
基本ACL视图/高级ACL视图/二层ACL视图/IPv6 ACL视图
【参数】
text:ACL的描述信息,取值范围为1~127个字符,可以包含空格和特殊字符。
【描述】
description命令用来定义ACL的描述信息,描述该ACL的具体用途、应用于哪些端口等信息,方便用户对ACL进行区分和识别。undo description命令用来删除ACL的描述信息。
缺省情况下,ACL没有描述信息。
【举例】
# 定义高级ACL 3000的描述信息为“This acl is used for filtering all HTTP packets”。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] acl number 3000
[Sysname-acl-adv-3000] description This acl is used for filtering all HTTP packets
# 使用display acl命令查看高级ACL 3000的配置信息。
[Sysname-acl-adv-3000] display acl 3000
Advanced ACL 3000, 0 rule
This acl is used for filtering all HTTP packets
Acl's step is 1
# 删除高级ACL 3000的描述信息。
[Sysname-acl-adv-3000] undo description
【命令】
display acl { all | acl-number }
【视图】
任意视图
【参数】
all:所有的ACL。
acl-number:指定ACL的序号,取值范围为2000~5999。
【描述】
display acl命令用来显示ACL的配置信息。
需要注意的是,如果用户在配置ACL的时候指定了match-order参数,则在使用display acl命令时,显示的是设备按照auto(深度优先)或config(配置顺序)对ACL中的规则进行排序后的结果。
【举例】
# 显示基本ACL 2000的详细配置信息。
<Sysname> display acl 2000
Basic ACL 2000, 1 rule
Acl's step is 1
rule 0 permit source 1.1.1.1 0
表1-1 display acl命令显示信息描述表
字段 |
描述 |
Basic ACL 2000 |
这个ACL属于基本ACL,序号为2000 |
1 rule |
这个基本ACL包含1条规则 |
Acl's step is 1 |
这个基本ACL的规则序号的步长值为1 |
【命令】
display acl remaining entry
【视图】
任意视图
【参数】
无
【描述】
display acl remaning entry命令用来显示设备的ACL表项资源。
用户可以根据该命令的输出信息来了解ACL规则消耗的表项资源数,确认ACL无法下发的原因是否与表项资源耗尽有关。
【举例】
# 显示设备的ACL表项资源。
<Sysname> display acl remaining entry
Resource Total Reserved Configured Remaining Start End
Type Number Number Number Number Port Name Port Name
--------------------------------------------------------------------------
Rule 1024 13 1 1010 Eth1/0/1 GE1/2/1
表1-2 display acl remaining entry命令显示信息描述表
字段名 |
描述 |
Resource Type |
ACL表项资源类型,Rule表示可以下发的规则数量 |
Total Number |
ACL表项资源的总数 |
Reserved Number |
系统ACL用去的资源数目 |
Configured Number |
用户定义的ACL占用的资源数目 |
Remaining Number |
剩余的ACL资源数目 |
Start Port Name End Port Name |
该表项所对应的起始端口号和结束端口号 |
【命令】
display ipv6-acl-template
【视图】
任意视图
【参数】
无
【描述】
display ipv6-acl-template命令用来显示IPv6 ACL模板的配置信息。
【举例】
# 显示IPv6 ACL模板的配置信息。
<Sysname> display ipv6-acl-template
Ipv6 acl template : src-ip dest-ip
【命令】
display packet-filter { global | interface interface-type interface-number | port-group [ group-id ] | unitid unit-id | vlan [ vlan-id ] }
【视图】
任意视图
【参数】
global:表示显示全局包过滤的应用信息。
interface interface-type interface-number:端口类型和端口编号。表示显示指定端口的包过滤的应用信息。
port-group group-id:端口组编号。表示显示指定端口组的包过滤的应用信息。
unitid unit-id:Unit ID,取值只能为1。表示显示设备上的包过滤的应用信息。
vlan vlan-id:VLAN编号。表示显示指定VLAN上的包过滤的应用信息。
【描述】
display packet-filter命令用来显示包过滤的应用信息。
【举例】
# 显示设备上的包过滤的应用信息。
<Sysname> display packet-filter unitid 1
Ethernet1/0/1
Inbound:
Acl 2000 rule 0 running
表1-3 display packet-filter命令显示信息描述表
字段 |
描述 |
Ethernet1/0/1 |
应用包过滤的端口 |
Inbound |
过滤方向为入方向 |
Acl 2000 rule 0 |
过滤规则为基本ACL 2000的0号规则 |
running |
规则的下发状态,包含以下两种: l running:表示激活 l not running:表示没有激活,通常是由于此规则引用的时间段不生效所致 |
【命令】
display time-range { all | time-name }
【视图】
任意视图
【参数】
all:所有的时间段。
time-name:为时间段的名称,以英文字母a~z或A~Z为起始字母的字符串,取值范围为1~32个字符。
【描述】
display time-range命令用来显示时间段的配置和状态,当前处于激活状态的时间段将显示Active,处于非激活状态的时间段将显示Inactive。
相关配置可参考命令time-range。
【举例】
# 显示所有的时间段。
<Sysname> display time-range all
Current time is 17:01:34 May/21/2007 Monday
Time-range : tr ( Active )
12:00 to 18:00 working-day
Time-range : tr1 ( Inactive )
From 12:00 Jan/1/2008 to 12:00 Jun/1/2008
表1-4 display time-range命令显示信息描述表
字段 |
描述 |
Current time is 17:01:34 May/21/2007 Monday |
系统的当前时间 |
Time-range |
时间段的名称 |
Active |
时间段的状态,包含以下两种: l Active:表示此时间段处于激活状态,已经生效 l Inactive:表示此时间段处于非激活状态,没有生效 |
12:00 to 18:00 working-day |
周期时间段,范围为工作日的12点到18点 |
From 12:00 Jan/1/2008 to 12:00 Jun/1/2008 |
绝对时间段,范围为2008年1月1日12点到2008年6月1日12点 |
【命令】
ipv6-acl-template { dscp | ip-protocol | src-ip | dest-ip | src-port | dest-port | icmpv6-type | icmpv6-code } *
undo ipv6-acl-template
【视图】
系统视图
【参数】
dscp:表示IPv6报文中的流量类型(Traffic-class)字段;
ip-protocol:表示IPv6报文中的下一报头(Next header)字段;
src-ip:表示IPv6报文中的源地址字段;
dest-ip:表示IPv6报文中的目的地址字段;
src-port:表示IPv6报文中TCP或UDP协议的源端口字段;
dest-port:表示IPv6报文中TCP或UDP协议的目的端口字段;
icmpv6-type:表示IPv6报文中ICMP协议的消息类型字段;
icmpv6-code:表示IPv6报文中ICMP协议的消息码字段。
【描述】
ipv6-acl-template命令用来配置IPv6 ACL模板。undo ipv6-acl-template命令用来删除IPv6 ACL模板。
缺省情况下,没有配置IPv6 ACL模板。
需要注意的是:
l WP2000系列无线PoE注入器只支持配置一个IPv6 ACL模板。
l 如果用户需要在模板中配置src-port、dest-port、icmpv6-type或icmpv6-code字段时,必须先配置ip-protocol字段。
l 在已经存在模板的情况下,如果定义新的模板,需把原有的模板先删除再配置新的模板;如果模板被已经下发的IPv6 ACL规则引用,则不允许删除模板。
【举例】
# 定义IPv6 ACL模板,内容为匹配IPv6报文的源地址和目的地址字段。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] ipv6-acl-template src-ip dest-ip
【命令】
packet-filter inbound acl-rule
undo packet-filter inbound acl-rule
【视图】
系统视图/以太网端口视图/端口组视图
【参数】
inbound:表示对接收的数据包进行过滤。
acl-rule:应用的ACL规则,可以是多种ACL的组合。组合方式如表1-1所示。
表1-5 组合应用ACL的方式
组合方式 |
acl-rule的形式 |
||
单独应用一个IP型ACL(基本ACL或高级ACL)中的所有规则 |
ip-group acl-number |
||
单独应用一个IP型ACL(基本ACL或高级ACL)中的一条规则 |
ip-group acl-number rule rule-id |
||
单独应用一个二层ACL中的所有规则 |
link-group acl-number |
||
单独应用一个二层ACL中的一条规则 |
link-group acl-number rule rule-id |
||
单独应用一个IPv6 ACL中的所有规则 |
user-group acl-number |
|
|
单独应用一个IPv6 ACL中的一条规则 |
user-group acl-number rule rule-id |
|
|
同时应用IP型ACL(基本ACL或高级ACL)中一条规则和二层型ACL的一条规则 |
ip-group acl-number rule rule-id link-group acl-number rule rule-id |
||
ip-group acl-number:表示基本或高级ACL序号,取值范围为2000~3999。
link-group acl-number:表示二层ACL序号,取值范围为4000~4999。
user-group acl-number:表示IPv6 ACL序号,取值范围为5000~5999。
rule rule-id:ACL规则编号,取值范围为0~65534。如果不指定规则编号则表示ACL中的所有规则。
【描述】
packet-filter命令用来在全局、端口或端口组上应用ACL,对数据包进行过滤。undo packet-filter命令用来取消ACL在全局、端口或端口组上的应用。
【举例】
# 在端口Ethernet 1/0/1上应用基本ACL 2000中的所有规则,对端口接收的数据包进行过滤。假设基本ACL 2000已经创建并且相关规则已经存在。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] packet-filter inbound ip-group 2000
[Sysname-Ethernet1/0/1] quit
# 在端口Ethernet 1/0/4上应用高级ACL 3000中的规则1和二层ACL 4000中的规则2,对端口接收的数据包进行过滤。假设高级ACL 3000和二层ACL 4000已经创建并且相关规则已经存在。
[Sysname] interface Ethernet 1/0/4
[Sysname-Ethernet1/0/4] packet-filter inbound ip-group 3000 rule 1 link-group 4000 rule 2
完成上述配置后,用户可以使用display packet-filter命令来查看包过滤的应用信息。
【命令】
packet-filter vlan vlan-id inbound acl-rule
undo packet-filter vlan vlan-id inbound acl-rule
【视图】
系统视图
【参数】
vlan-id:VLAN编号。
inbound:表示对接收的数据包进行过滤。
acl-rule:应用的ACL,可以是多种ACL的组合。组合方式说明如表1-5所示。
【描述】
packet-filter vlan命令用来在VLAN上应用ACL,对VLAN中的所有端口上的数据包进行过滤。undo packet-filter vlan命令用来取消ACL在VLAN上的应用。
VLAN下发的ACL只能对带有802.1Q标签头的报文生效。关于802.1Q标签头的详细介绍请参见本手册“VLAN”部分。
当用户需要在某一个VLAN内的所有端口上应用同一条ACL时,可以使用packet-filter vlan命令来批量下发ACL,减少配置的工作量。
【举例】
# 在VLAN 10上应用基本ACL 2000中的所有规则,对VLAN 10中的所有端口接收的数据包进行过滤。假设VLAN 10和基本ACL 2000已经创建并且相关规则已经存在。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] packet-filter vlan 10 inbound ip-group 2000
完成上述配置后,用户可以使用display packet-filter命令来查看包过滤的应用信息。
【命令】
rule [ rule-id ] { deny | permit } [ rule-string ]
undo rule rule-id [ fragment | source | time-range ]*
【视图】
基本ACL视图
【参数】
rule-id:ACL规则编号,取值范围为0~65534。
deny:表示丢弃符合条件的数据包。
permit:表示允许符合条件的数据包通过。
rule-string:ACL规则信息,具体参数说明如表1-6所示。
表1-6 基本ACL规则信息
参数 |
类别 |
作用 |
说明 |
fragment |
分片信息 |
定义规则仅对非尾片分片报文有效 |
- |
source { sour-addr sour-wildcard | any } |
源地址信息 |
定义基本ACL规则的源地址信息 |
sour-addr为指定源IP地址,采用点分十进制表示;sour-wildcard为目标子网掩码的反码,采用点分十进制表示;sour-wildcard可以为0,代表主机地址 any代表任意源IP地址 |
time-range time-name |
时间段信息 |
定义规则生效的时间段 |
time-name:指定规则生效的时间段名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all |
sour-wildcard为目标子网掩码的反码,采用点分十进制表示。例如,如果用户想指定子网掩码255.255.0.0,则需要输入0.0.255.255。
rule-id:ACL规则编号,必须是一个已经存在的ACL规则编号。如果用户不知道ACL规则的编号,可以使用display acl命令来查看。
fragment:删除编号对应的ACL规则的对非尾片分片报文有效的设置。
source:删除编号对应的ACL规则的源IP地址的设置。
time-range:删除编号对应的ACL规则的时间段的设置。
H3C WP2000系列无线PoE注入器在硬件下发基本ACL时,不支持fragment参数。
【描述】
rule命令用来定义ACL规则。undo rule命令用来删除ACL规则或者规则中的某些属性信息。
在删除一条ACL规则时,如果不指定其他参数,设备将这个ACL规则完全删除;否则设备只删除该ACL规则中相应的属性信息。
需要注意的是:
l 当基本ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当基本ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,设备将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
l 当基本ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
【举例】
# 创建基本ACL 2000,定义规则1,禁止源IP地址为192.168.0.1的报文通过。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] acl number 2000
[Sysname-acl-basic-2000] rule 1 deny source 192.168.0.1 0
[Sysname-acl-basic-2000] quit
# 创建基本ACL 2001,定义规则1,禁止非尾片分片报文通过。
[Sysname] acl number 2001
[Sysname-acl-basic-2001] rule 1 deny fragment
[Sysname-acl-basic-2001] quit
# 创建基本ACL 2002,定义规则1,禁止所有报文在时间段trname所表示的时间范围内通过。
[Sysname] acl number 2002
[Sysname-acl-basic-2002] rule 1 deny time-range trname
完成上述配置后,用户可以使用display acl命令查看ACL的配置信息。
【命令】
rule [ rule-id ] { deny | permit } protocol [ rule-string ]
undo rule rule-id [ destination | destination-port | dscp | fragment | icmp-type | igmp-type | precedence | source | source-port | time-range | tos | ttl ]*
【视图】
高级ACL视图
【参数】
rule-id:ACL规则编号,取值范围为0~65534。
deny:表示丢弃符合条件的数据包。
permit:表示允许符合条件的数据包通过。
protocol:IP承载的协议类型。用数字表示时,取值范围为1~255;用名字表示时,可以选取gre(47)、icmp(1)、igmp(2)、ip、ipinip(4)、ospf(89)、tcp(6)、udp(17)。
rule-string:ACL规则信息,具体参数说明如表1-7所示。
表1-7 高级ACL规则信息
参数 |
类别 |
作用 |
说明 |
source { sour-addr sour-wildcard | any } |
源地址信息 |
定义ACL规则的源地址信息 |
sour-addr sour-wildcard用来确定数据包的源地址,点分十进制表示;sour-wildcard可以为0,表示主机地址 any代表任意源地址 |
destination { dest-addr dest-wildcard | any } |
目的地址信息 |
定义ACL规则的目的地址信息 |
dest-addr dest-wildcard用来确定数据包的目的地址,点分十进制表示;dest-wildcard可以为0,表示主机地址 any代表任意目的地址 |
precedence precedence |
报文优先级 |
IP优先级 |
用数字表示时,取值范围为0~7 |
tos tos |
报文优先级 |
ToS优先级 |
用数字表示时,取值范围为0~15 |
dscp dscp |
报文优先级 |
DSCP优先级 |
用数字表示时,取值范围为0~63 |
fragment |
分片信息 |
定义规则仅对非尾片分片报文有效 |
- |
ttl ttl |
TTL信息 |
定义规则的TTL字段信息 |
ttl的取值范围为0~255 |
time-range time-name |
时间段信息 |
定义规则生效的时间段 |
time-name:指定规则生效的时间段名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all |
sour-wildcard与dest-wildcard为目标子网掩码的反码,点分十进制表示。例如,如果用户想指定子网掩码255.255.0.0,则需要输入0.0.255.255。
如果选择dscp关键字,除了直接输入数值0~63外,用户也可输入如表1-8所示的关键字。
表1-8 DSCP关键字说明
关键字 |
DSCP值(十进制) |
DSCP值(二进制) |
af11 |
10 |
001010 |
af12 |
12 |
001100 |
af13 |
14 |
001110 |
af21 |
18 |
010010 |
af22 |
20 |
010100 |
af23 |
22 |
010110 |
af31 |
26 |
011010 |
af32 |
28 |
011100 |
af33 |
30 |
011110 |
af41 |
34 |
100010 |
af42 |
36 |
100100 |
af43 |
38 |
100110 |
be |
0 |
000000 |
cs1 |
8 |
001000 |
cs2 |
16 |
010000 |
cs3 |
24 |
011000 |
cs4 |
32 |
100000 |
cs5 |
40 |
101000 |
cs6 |
48 |
110000 |
cs7 |
56 |
111000 |
ef |
46 |
101110 |
如果选择precedence关键字,除了直接输入数值0~7外,用户也可输入如表1-9所示的关键字。
表1-9 IP Precedence关键字说明
关键字 |
IP Precedence(十进制) |
IP Precedence(二进制) |
routine |
0 |
000 |
priority |
1 |
001 |
immediate |
2 |
010 |
flash |
3 |
011 |
flash-override |
4 |
100 |
critical |
5 |
101 |
internet |
6 |
110 |
network |
7 |
111 |
如果选择tos关键字,除了直接输入数值0~15外,用户也可输入如表1-10所示的关键字。
表1-10 ToS关键字说明
关键字 |
ToS(十进制) |
ToS(二进制) |
normal |
0 |
0000 |
min-monetary-cost |
1 |
0001 |
max-reliability |
2 |
0010 |
max-throughput |
4 |
0100 |
min-delay |
8 |
1000 |
当协议类型选择为TCP或者UDP时,用户还可以定义如表1-11所示信息。
表1-11 TCP/UDP特有的ACL规则信息
参数 |
类别 |
作用 |
说明 |
source-port operator port1 [ port2 ] |
源端口 |
定义UDP/TCP报文的源端口信息 |
operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)、neq(不等于)或者range(在指定范围内);只有操作符range需要两个端口号做操作数,其他操作符只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用名字或数字表示,数字的取值范围为0~65535 配置操作符为range时,port2的取值不需要一定大于port1的取值,设备会自动识别取值范围;当port1和port2的取值相同时,设备会将操作符range转换为eq 另外需要注意的是,当用户配置操作符为lt 1或gt 65534时,设备会将其转换为eq 0或eq 65535 |
destination-port operator port1 [ port2 ] |
目的端口 |
定义UDP/TCP报文的目的端口信息 |
|
established |
TCP连接建立标识 |
表示此条规则仅对TCP建立连接的第一个SYN报文有效 |
TCP协议特有的参数 |
当TCP或UDP的端口号用名字表示时,用户还可以定义如表1-12所示信息。
表1-12 TCP或UDP端口取值信息
协议类型 |
取值信息 |
TCP |
CHARgen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、domain(53)、echo(7)、exec(512)、finger(79)、ftp(21)、ftp-data(20)、gopher(70)、hostname(101)、irc(194)、klogin(543)、kshell(544)、login(513)、lpd(515)、nntp(119)、pop2(109)、pop3(110)、smtp(25)、sunrpc(111)、tacacs(49)、talk(517)、telnet(23)、time(37)、uucp(540)、whois(43)、www(80) |
UDP |
biff(512)、bootpc(68)、bootps(67)、discard(9)、dns(53)、dnsix(90)、echo(7)、mobilip-ag(434)、mobilip-mn(435)、nameserver(42)、netbios-dgm(138)、netbios-ns(137)、netbios-ssn(139)、ntp(123)、rip(520)、snmp(161)、snmptrap(162)、sunrpc(111)、syslog(514)、tacacs-ds(65)、talk(517)、tftp(69)、time(37)、who(513)、xdmcp(177) |
H3C WP2000系列无线PoE注入器在硬件下发高级ACL时,有如下限制:
l 不支持fragment参数。
l 配置TTL字段信息时,只支持ttl取值为0、1或者255。
l 配置源端口/目的端口信息时,不支持neq操作符。
l 配置源端口/目的端口信息时,range操作符最多只支持配置四组端口范围。
当协议类型选择为ICMP时,用户还可以定义如表1-13所示信息。
表1-13 ICMP特有的规则信息
参数 |
类别 |
作用 |
说明 |
icmp-type icmp-type icmp-code |
ICMP报文的类型和消息码信息 |
定义规则中ICMP报文的类型和消息码信息 |
icmp-type:ICMP消息类型,取值为0~255 icmp-code:ICMP的消息码,取值为0~255 |
当协议类型选择为ICMP时,用户也可以直接在icmp-type参数后输入ICMP的消息名称,如表1-14所示。
名称 |
ICMP TYPE |
ICMP CODE |
echo |
Type=8 |
Code=0 |
echo-reply |
Type=0 |
Code=0 |
fragmentneed-DFset |
Type=3 |
Code=4 |
host-redirect |
Type=5 |
Code=1 |
host-tos-redirect |
Type=5 |
Code=3 |
host-unreachable |
Type=3 |
Code=1 |
information-reply |
Type=16 |
Code=0 |
information-request |
Type=15 |
Code=0 |
net-redirect |
Type=5 |
Code=0 |
net-tos-redirect |
Type=5 |
Code=2 |
net-unreachable |
Type=3 |
Code=0 |
parameter-problem |
Type=12 |
Code=0 |
port-unreachable |
Type=3 |
Code=3 |
protocol-unreachable |
Type=3 |
Code=2 |
reassembly-timeout |
Type=11 |
Code=1 |
source-quench |
Type=4 |
Code=0 |
source-route-failed |
Type=3 |
Code=5 |
timestamp-reply |
Type=14 |
Code=0 |
timestamp-request |
Type=13 |
Code=0 |
ttl-exceeded |
Type=11 |
Code=0 |
当协议类型选择为IGMP时,用户还可以定义如表1-15所示信息。
表1-15 IGMP特有的规则信息
参数 |
类别 |
作用 |
说明 |
igmp-type igmp-type |
IGMP报文信息 |
定义规则匹配的IGMP报文子类型 |
igmp-type的取值范围为0~15 |
rule-id:ACL规则编号,必须是一个已经存在的ACL规则编号。如果用户不知道ACL规则的编号,可以使用display acl命令来查看。
source:删除编号对应的ACL规则的源IP地址的设置。
source-port:删除编号对应的ACL规则的源端口的设置,本参数仅在规则定义的协议是TCP或者UDP的情况下有效。
destination:删除编号对应的ACL规则的目的IP地址的设置。
destination-port:删除编号对应的ACL规则的目的端口的设置,本参数仅在规则定义的协议是TCP或者UDP的情况下有效。
icmp-type:删除编号对应的ACL规则的ICMP类型和消息码的设置,本参数仅在规则定义的协议是ICMP的情况下有效。
igmp-type:删除编号对应的ACL规则的IGMP子类型的设置,本参数仅在规则定义的协议是IGMP的情况下有效。
precedence:删除编号对应的ACL规则的IP Precedence的相关设置。
tos:删除编号对应的ACL规则的ToS的相关设置。
dscp:删除编号对应的ACL规则的DSCP的相关设置。
ttl:删除编号对应的ACL规则的TTL的相关设置。
time-range:删除编号对应的ACL规则的时间段的设置。
fragment:删除编号对应的ACL规则的对非尾片分片报文有效的设置。
【描述】
rule命令用来定义ACL规则。undo rule命令用来删除ACL规则或者ACL规则中的某些属性信息。
在删除一条ACL规则时,如果不指定其他参数,设备将这个ACL规则完全删除;否则设备只删除该ACL规则中相应的属性信息。
需要注意的是:
l 当高级ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当高级ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,设备将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
l 当高级ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
【举例】
# 创建高级ACL 3000,定义规则1,拒绝源IP地址为192.168.0.1并且DSCP优先级为46的IP报文通过。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] acl number 3000
[Sysname-acl-adv-3000] rule 1 deny ip source 192.168.0.1 0 dscp 46
[Sysname-acl-adv-3000] quit
# 创建高级ACL 3001,定义规则1,允许从129.9.0.0/16网段的主机向202.38.160.0/24网段的主机发送的目的端口号为80的TCP报文通过。
[Sysname] acl number 3001
[Sysname-acl-adv-3001] rule 1 permit tcp source 129.9.0.0 0.0.255.255 destination 202.38.160.0 0.0.0.255 destination-port eq 80
完成上述配置后,用户可以使用display acl命令查看ACL的配置信息。
【命令】
rule [ rule-id ] { deny | permit } [ rule-string ]
undo rule rule-id
【视图】
二层ACL视图
【参数】
rule-id:ACL规则编号,取值范围为0~65534。
deny:表示丢弃符合条件的数据包。
permit:表示允许符合条件的数据包通过。
rule-string:ACL规则信息,具体参数说明如表1-16所示。
表1-16 二层ACL规则信息
参数 |
类别 |
作用 |
说明 |
format-type |
链路层封装类型 |
定义规则中的链路层封装类型 |
format-type:取值可以为802.3/802.2、802.3、ether_ii、snap |
lsap lsap-code lsap-wildcard |
LSAP字段 |
定义规则的LSAP字段 |
lsap-code:数据帧的封装格式,16比特的十六进制数 lsap-wildcard:lsap值的掩码, 16比特的十六进制数,用于指定屏蔽位 |
source { source-mac-addr source-mac-mask | vlan-id | vlan operator vlan-id1 [ vlan-id2 ] }* |
源MAC信息或源VLAN信息 |
定义规则的源MAC地址范围或源VLAN ID |
source-mac-addr:源MAC地址,格式为H-H-H source-mac-mask:源MAC地址的掩码,格式为H-H-H vlan-id、vlan-id1、vlan-id2:源VLAN ID,取值范围为1~4094 operator:操作符,取值可以为lt(小于)、gt(大于)、eq(等于)、neq(不等于)或者range(在指定范围内)只有操作符range需要两个VLAN ID做操作数,其他操作符只需要一个VLAN ID做操作数 配置操作符为range时,vlan-id2的取值不需要一定大于vlan-id1的取值,设备会自动识别取值范围 另外需要注意的是,当用户配置操作符为lt 2或gt 4093时,设备会将其转换为eq 1或eq 4094 |
dest dest-mac-addr dest-mac-mask |
目的MAC信息 |
定义规则的目的MAC地址范围 |
dest-mac-addr:目的MAC地址,格式为H-H-H dest-mac-mask:目的MAC地址的掩码,格式为H-H-H |
cos vlan-pri |
802.1p优先级 |
定义规则的802.1p优先级 |
vlan-pri:取值范围为0~7 |
c-tag-vlan c-tag-vlan-begin [ to c-tag-vlan-end ] |
内层VLAN信息 |
定义规则的内层VLAN信息 |
c-tag-vlan-begin,c-tag-vlan-end:VLAN ID,取值范围为1~4094 c-tag-vlan参数通常与QinQ功能配合使用,关于QinQ功能的详细介绍请参见“VLAN-VPN”部分 |
time-range time-name |
时间段信息 |
定义规则生效的时间段 |
time-name:指定规则生效的时间段名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all |
type protocol-type protocol-mask |
以太网帧的协议类型 |
定义以太网帧的协议类型 |
protocol-type:协议类型 protocol-mask:协议类型掩码 |
H3C WP2000系列无线PoE注入器在硬件下发二层ACL时,有如下限制:
l 不支持802.3/802.2和802.3参数。
l 配置源VLAN信息时,不支持neq操作符。
l 配置源VLAN信息时,range操作符最多只支持配置四组VLAN范围。
【描述】
rule命令用来定义ACL规则。undo rule命令用来删除ACL规则。
在删除一条ACL规则时,需要指定该ACL规则的编号。如果用户不知道ACL规则的编号,可以使用display acl命令来查看。
需要注意的是:
l 用户可以修改二层ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,设备将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
【举例】
# 创建二层ACL 4000,定义规则1,禁止从MAC地址000d-88f5-97ed发送到MAC地址0011-4301-991e且802.1p优先级为3的报文通过。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] acl number 4000
[Sysname-acl-ethernetframe-4000] rule 1 deny cos 3 source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff
【命令】
rule [ rule-id ] { deny | permit } [ dscp rule-string rule-mask ] [ ip-protocol rule-string rule-mask ] [ src-ip ipv6-address prefix-length ] [ dest-ip ipv6-address prefix-length ] [ [ src-port rule-string rule-mask | dest-port rule-string rule-mask ] * | [ icmpv6-type rule-string rule-mask | icmpv6-code rule-string rule-mask ] * ] [ time-range time-name ]
undo rule rule-id
【视图】
IPv6 ACL视图
【参数】
rule-id:ACL规则编号,取值范围为0~65534。
deny:表示丢弃符合条件的数据包。
permit:表示允许符合条件的数据包通过。
dscp rule-string rule-mask:定义规则为匹配IPv6报文的流量类型(Traffic-class)信息。rule-string和rule-mask为内容字符串和掩码字符串,长度取值为2,且必须为16进制数。
ip-protocol rule-string rule-mask:定义规则为匹配IPv6报文的下一报头信息。rule-string和rule-mask为内容字符串和掩码字符串,长度取值为2,且必须为16进制数。
src-ip ipv6-address prefix-length:定义规则为匹配IPv6报文的源IP地址信息。ipv6-address prefix-length为IPv6地址和前缀长度,其中prefix-length取值范围为1~128。
dest-ip ipv6-address prefix-length:定义规则为匹配IPv6报文的目的IP地址信息。ipv6-address prefix-length为IPv6地址和前缀长度,其中prefix-length取值范围为1~128。
src-port rule-string rule-mask:定义规则为匹配IPv6报文的TCP或UDP协议源端口信息。rule-string和rule-mask为内容字符串和掩码字符串,长度取值为4,且必须为16进制数。
dest-port rule-string rule-mask:定义规则为匹配IPv6报文的TCP或UDP协议目的端口信息。rule-string和rule-mask为内容字符串和掩码字符串,长度取值为4,且必须为16进制数。
icmpv6-type rule-string rule-mask:定义规则为匹配IPv6报文的ICMP协议消息类型信息。rule-string和rule-mask为内容字符串和掩码字符串,长度取值为2,且必须为16进制数。
icmpv6-code rule-string rule-mask:定义规则为匹配IPv6报文的ICMP协议消息码信息。rule-string和rule-mask为内容字符串和掩码字符串,长度取值为2,且必须为16进制数。
time-range time-name:定义规则生效的时间段信息。time-name为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all。
【描述】
rule命令用来定义ACL规则。undo rule命令用来删除ACL规则。
在删除一条ACL规则时,需要指定该ACL规则的编号。如果用户不知道ACL规则的编号,可以使用display acl命令来查看。
需要注意的是:
l 用户可以修改IPv6 ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,如果用户的修改只涉及动作或时间段部分,则该规则中没有修改到的部分仍旧保持原来的状态;如果用户修改了自定义字符串部分的内容,则修改后的自定义字符串会覆盖原有的自定义字符串。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,设备将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
l 在定义规则时,如果用户需要配置src-port/dest-port,则必须配置ip-protocol为TCP或UDP,即0x06或0x11;如果用户需要配置icmpv6-type/ icmpv6-code,则必须配置ip-protocol为ICMPv6,即0x3a。
WP2000系列无线PoE注入器在硬件下发IPv6 ACL时,有如下限制:
l 不支持匹配带有扩展报文头的IPv6报文。
l 不要与VLAN Mapping、信任端口的优先级共同使用。
【举例】
# 配置IPv6 ACL 5000,禁止从源IPv6地址3001::1/64发送到目的IPv6地址3002::1/64的报文通过。
<Sysname> system-view
[Sysname] acl number 5000
[Sysname-acl-user-5000] rule deny src-ip 3001::1 64 dest-ip 3002::1 64
rule rule-id comment text
undo rule rule-id comment
【视图】
高级ACL视图/二层ACL视图/IPv6 ACL视图
【参数】
rule-id:ACL规则编号,取值范围为0~65534。
text:ACL规则的注释信息,字符串格式,取值范围为1~127个字符。
【描述】
rule comment命令用来定义ACL规则的注释信息。undo rule comment命令用来删除ACL规则的注释信息。
用户可以使用rule comment命令来描述ACL规则的具体用途、应用于哪些端口等信息,方便用户对ACL规则进行区分和识别。
缺省情况下,ACL规则没有注释信息。
需要注意的是,在定义ACL规则的注释信息之前,该ACL规则必须已经存在。
【举例】
# 定义高级ACL 3001的rule 0的注释信息为“This rule is to be applied to eth 1/0/1”。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] acl number 3001
[Sysname-acl-adv-3001] rule 0 comment This rule is to be applied to eth 1/0/1
# 使用display acl命令查看高级ACL 3001的配置信息。
[Sysname-acl-adv-3001] display acl 3001
Advanced ACL 3001, 1 rule
Acl's step is 1
rule 0 deny IP source 1.1.1.1 0 destination 2.2.2.2 0
rule 0 comment This rule is to be applied to eth 1/0/1
【命令】
time-range time-name { start-time to end-time days-of-the-week [ from start-time start-date ] [ to end-time end-date ] | from start-time start-date [ to end-time end-date ] | to end-time end-date }
undo time-range { all | name time-name [ start-time to end-time days-of-the-week [ from start-time start-date ] [ to end-time end-date ] | from start-time start-date [ to end-time end-date ] | to end-time end-date ] }
【视图】
系统视图
【参数】
all:所有的时间段。
time-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,时间段的名字不能使用英文单词all。
start-time:可选参数,周期时间段的开始时间,表示形式为hh:mm。
end-time:可选参数,周期时间段的结束时间,表示形式为hh:mm。结束时间必须大于起始时间。
days-of-the-week:可选参数,参数表示该周期时间在每周几有效。可以输入如下参数及其组合:
l 数字(0~6);
l 星期一到星期日(Mon,Tue,Wed,Thu,Fri,Sat,Sun);
l 工作日(working-day),包括从星期一到星期五五天;
l 休息日(off-day),包括星期六和星期日;
l 每一天(daily),一个星期中的每一天。
from start-time start-date:可选参数,绝对时间段的开始日期,和end-time end-date共同表示该绝对时间在某一段日期中生效,表示形式为hh:mm MM/DD/YYYY或hh:mm YYYY/MM/DD。如果不指定开始日期,则开始日期为1970年1月1日0点0分。
to end-time end-date:可选参数,绝对时间段的结束日期,和start-time start-date共同表示该绝对时间在某一段日期中生效,表示形式为hh:mm MM/DD/YYYY或hh:mm YYYY/MM/DD。如果不指定结束日期,则结束日期为2100年12月31日23点59分。
【描述】
time-range命令用来配置一个时间段。undo time-range命令用来删除一个时间段或删除所有的时间段。
需要注意的是:
l 设备最多支持配置256个时间段,一个时间段下最多可以配置32个周期时间段和12个绝对时间段。
l 如果一个时间段只定义了周期时间段,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个周期时间段,则这些周期时间段之间是“或”的关系。
l 如果一个时间段只定义了绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个绝对时间段,则这些绝对时间段之间是“或”的关系。
l 如果一个时间段同时定义了绝对时间段和周期时间段,则只有同时满足绝对时间段和周期时间段的定义时,该时间段才进入激活状态。例如,一个时间段定义了绝对时间段:从2004年1月1日零点零分到2004年12月31日23点59分,同时定义了周期时间段:每周三的12:00到14:00。该时间段只有在2004年内每周三的12:00到14:00才进入激活状态。
【举例】
# 定义周期时间段,时间范围为每周一到周五的08:00至12:00。
<Sysname> system-view
System View: return to User View with Ctrl+Z.
[Sysname] time-range tr1 08:00 to 12:00 working-day
# 定义绝对时间段,时间范围为2008年1月1日12:00至2008年6月1日12:00。
[Sysname] time-range tr2 from 12:00 1/1/2008 to 12:00 6/1/2008
# 显示时间段的配置信息。
[Sysname] display time-range all
Current time is 17:37:23 Nov/27/2007 Tuesday
Time-range : tr1 ( Inactive )
08:00 to 12:00 working-day
Time-range : tr2 ( Inactive )
From 12:00 Jan/1/2008 to 12:00 Jun/1/2008
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!