24-ACL命令
本章节下载 (216.8 KB)
目 录
1.1.5 display acl config statistics
1.1.8 display acl remaining entry
1.1.9 display acl running-packet-filter
& 说明:
A型业务板指如下业务板:LS81FT48A、LS81FM24A、LS81FS24A、LS81GB8UA、LS81GT8UA、LS81FT48、LS81FM24、LS81FS24、LS81GB8U、LS81GT8U。
【命令】
acl { number acl-number | name acl-name [ advanced | basic | link | user ] } [ match-order { config | auto } ]
undo acl { number acl-number | name acl-name | all }
【视图】
系统视图
【参数】
number acl-number:ACL序号,取值范围为:
l 2000~2999:表示基本ACL。
l 3000~3999:表示高级ACL(ACL 3998与3999是系统为集群管理预留的编号,用户无法配置)。
l 4000~4999:表示二层ACL。
l 5000~5999:表示用户自定义ACL。
name acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写,不允许使用关键字all。
advanced:表示高级ACL。
basic:表示基本ACL。
link:表示二层ACL。
user:表示用户自定义ACL。
config:表示按用户的配置顺序匹配ACL规则。
auto:表示按深度优先顺序匹配ACL规则。
all:表示要删除所有的ACL(包括数字标识的和名字标识的)。
【描述】
acl命令用来定义一条数字或名字标识的ACL,并进入相应的ACL视图。undo acl命令用来删除一条数字或名字标识的ACL的所有规则,或者删除全部ACL。
缺省情况下,按用户的配置顺序匹配ACL。
进入相应的ACL视图之后,可以用rule命令增加此命名ACL规则(用quit命令退出ACL视图)。
& 说明:
A型业务板不支持用户自定义的ACL。
可以使用match-order指定匹配顺序是按照用户配置的顺序还是按照深度优先顺序(优先匹配范围小的ACL规则),如果不指定则缺省为用户配置顺序。用户一旦指定一条ACL的匹配顺序后,就不能再更改,除非把该ACL的规则全部删除,再重新指定其匹配顺序。注意,ACL的匹配顺序特性只在该ACL被软件引用用作数据过滤和分类时有效。
相关配置可参考命令rule,acl mode。
【举例】
# 把ACL 2000的规则匹配顺序指定为深度优先顺序。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl number 2000 match-order auto
【命令】
acl mode { ip-based | link-based }
【视图】
系统视图
【参数】
ip-based:基于三层信息进行流分类。
link-based:基于二层信息进行流分类。
【描述】
acl mode命令用来设置设备的流分类模式。
缺省情况下,设备基于三层信息进行流分类。
相关配置可参考命令acl。
& 说明:
本命令只对A型业务板有效。
【举例】
# 指定基于三层信息进行流分类。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl mode ip-based
【命令】
acl order { auto | first-config-first-match | last-config-first-match }
【视图】
系统视图
【参数】
auto:指定下发的ACL规则按深度优先原则生效。
first-config-first-match:指定下发的ACL规则按下发顺序生效,先下发的先生效。
last-config-first-match:指定下发的ACL规则按下发顺序生效,后下发的先生效。
【描述】
acl order命令用来设置下发到硬件的ACL规则生效顺序。
缺省情况下,下发的ACL规则按深度优先原则生效。
acl match-order { config | auto }命令用来在ACL规则下发前预先调整其匹配顺序,而acl order命令用来指定ACL规则下发到硬件后其生效顺序。
【举例】
# 配置下发到硬件的ACL规则生效顺序为先下发的先生效。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl order first-config-first-match
【命令】
display acl config { all | acl-number | acl-name }
【视图】
任意视图
【参数】
all:显示所有的ACL(包括数字标识的和名字标识的)。
acl-number:ACL序号,2000到5999之间的一个数值。
acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写,不允许使用关键字all。
【描述】
display acl config命令用来显示ACL的详细配置信息,包括ACL类型、序号、ACL规则数、ACL规则的内容、该ACL规则匹配数据包的次数。
本命令显示信息中的匹配次数是软件匹配次数,即需要经过交换机CPU处理的ACL匹配次数。traffic-statistic命令统计数据包转发过程中的硬件匹配次数,用户可以使用display qos-interface traffic-statistic命令查看统计结果。关于traffic-statistic和display qos-interface traffic-statistic命令请参见本手册“QoS”模块。
【举例】
# 显示所有ACL的配置信息。
<H3C> display acl config all
Basic ACL 2000, 1 rule,
rule 0 permit source 1.1.1.1 0 (0 times matched)
【命令】
display acl config statistics
【视图】
任意视图
【参数】
无
【描述】
display acl config statistics命令用来显示当前配置的访问控制列表规则统计信息,包括基本、高级、二层以及用户自定义的访问控制列表规则数目,以及系统配置的访问控制列表规则总数。
【举例】
# 显示当前配置的访问控制列表规则统计信息。
<H3C> display acl config statistics
The configured rule statistics:
Basic rule(s): 5
Advanced rule(s): 132
Link rule(s): 4
User rule(s): 2
Total 143 rule(s) configured
【命令】
display acl mode
【视图】
任意视图
【参数】
无
【描述】
display acl mode命令用来显示设备的流分类规则模式。
【举例】
# 显示设备的流分类规则模式。
<H3C> display acl mode
The current acl mode: ip-based.
【命令】
display acl order
【视图】
任意视图
【参数】
无
【描述】
display acl order命令用来显示下发的ACL规则生效顺序。
【举例】
# 显示下发的ACL规则生效顺序。
<H3C> display acl order
the current order is auto
【命令】
display acl remaining entry slot slot-number
【视图】
任意视图
【参数】
slot-number:指定槽位,0表示主控板。
【描述】
display acl remaining entry slot命令用来显示指定槽位的剩余ACL资源。显示内容包括资源类型、表项资源的总数、初始化时系统ACL用去的资源数目、用户定义的ACL占用的资源数目、剩余的资源数目、该表项所对应的起始端口号和该表项所对应的结束端口号。
【举例】
# 显示Slot 3的剩余资源。
<H3C> display acl remaining entry slot 3
Slot: 3
Resource Total Reserved Configured Remaining Start End
Type Number Number Number Number Port Name Port Name
--------------------------------------------------------------------------
MASK 16 6 1 9 GE3/0/1 GE3/0/1
RULE 128 17 1 110 GE3/0/1 GE3/0/1
METER 128 11 1 116 GE3/0/1 GE3/0/1
COUNTER 128 14 1 113 GE3/0/1 GE3/0/1
MASK 16 6 1 9 GE3/0/2 GE3/0/2
RULE 128 17 1 110 GE3/0/2 GE3/0/2
METER 128 11 1 116 GE3/0/2 GE3/0/2
COUNTER 128 14 1 113 GE3/0/2 GE3/0/2
表1-1 display acl remaining entry slot命令显示信息描述表
字段 |
描述 |
ResouceType |
表项资源类型 |
Total Number |
表项资源的总数 |
Reserved Number |
初始化时系统ACL用去的资源数目 |
Configured Number |
用户定义的ACL占用的资源数目 |
Remaining Number |
剩余的资源数目 |
Start PortName |
该表项所对应的起始端口号 |
End PortName |
该表项所对应的结束端口号 |
【命令】
display acl running-packet-filter { all | interface interface-type interface-number }
【视图】
任意视图
【参数】
all:表示要显示所有的ACL(包括数字标识的和名字标识的)。
interface interface-type interface-number:交换机的端口。
【描述】
display acl running-packet-filter命令用来显示ACL的下发信息,包括下发端口、下发方向、ACL名(或序号)、ACL规则序号和下发状态。
【举例】
# 显示所有接口的ACL下发应用信息。
<H3C> display acl running-packet-filter all
Ethernet3/0/1
Inbound:
Acl 2000 rule 0 running
【命令】
display time-range { all | time-name }
【视图】
任意视图
【参数】
all:显示所有的时间段。
name:时间段名称,最多32个字符,必须以英文字母(即[a-z,A-Z])开始。
【描述】
display time-range命令用来显示当前时间段的配置和状态,对于当前处在激活状态的时间段将显示active,对于非激活状态显示inactive。
注意,由于系统更新ACL状态有一个延时,大约1分钟,而display time-range会采用当前时间对时间段进行判断,所以有可能出现display time-range看到一个时间段已经激活,而引用它的ACL没有激活。这种情况是正常的。
相关配置可参考命令time-range。
【举例】
# 显示所有时间段。
<H3C> display time-range all
Current time is 14:36:36 4-3-2003 Thursday
Time-range : hhy ( Inactive )
from 08:30 2-5-2005 to 18:00 2-19-2005
Time-range : hhy1 ( Inactive )
from 08:30 2-5-2003 to 18:00 2-19-2003
表1-2 display time-range命令显示信息描述表
字段 |
描述 |
Current time is 14:36:36 4-3-2003 Thursday |
系统的当前时间。 |
Time-range : hhy ( Inactive ) from 08:30 2-5-2005 to 18:00 2-19-2005 |
时间段hhy,Inactive表示该时间段目前处于非活动状态(active则反之),时间段为从2005年2月5日8点30分到2005年2月19日18点。 下面的显示信息类似,不再一一介绍。 |
# 显示名字为tm1的时间段。
<H3C> display time-range tm1
Current time is 14:37:31 4-3-2003 Thursday
Time-range : tm1 ( Inactive )
from 08:30 2-5-2005 to 18:00 2-19-2005
表1-3 display time-range命令显示信息描述表
字段 |
描述 |
Current time is 14:36:36 4-3-2003 Thursday |
系统的当前时间。 |
Time-range : tm1 ( Inactive ) from 08:30 2-5-2005 to 18:00 2-19-2005 |
时间段tm1,Inactive表示该时间段目前处于非活动状态(active则反之),时间段为从2005年2月5日8点30分到2005年2月19日18点。 下面的显示信息类似,不再一一介绍。 |
【命令】
packet-filter { inbound | outbound } acl-rule [ system-index ] [ not-care-for-interface ]
undo packet-filter { inbound | outbound } acl-rule [ not-care-for-interface ]
packet-filter inbound acl-rule [ system-index ]
undo packet-filter inbound acl-rule
& 说明:
非A型业务板支持IP型ACL和link型ACL组合应用,但是IP型和link型ACL的规则所定义字段的字符数之和不能超过32个字符,否则不能应用成功。
【视图】
QoS视图
【参数】
inbound:表示对端口接收的报文进行过滤。
outbound:表示对端口发送的报文进行过滤。
acl-rule:应用的ACL,可以是多种ACL的组合。A型业务板的组合方式及相应参数说明如表1-4与表1-6;非A型业务板的组合方式及相应参数说明如表1-5与表1-6。
表1-4 A型业务板的组合应用ACL方式
组合方式 |
acl-rule的形式 |
单独应用一个IP型ACL中所有规则 |
ip-group { acl-number | acl-name } |
单独应用一个IP型ACL中一条规则 |
ip-group { acl-number | acl-name } rule rule-id |
单独应用一个Link型ACL中所有规则 |
link-group { acl-number | acl-name } |
单独应用一个Link型ACL中一条规则 |
link-group { acl-number | acl-name } rule rule-id |
表1-5 非A型业务板的组合应用ACL方式
组合方式 |
acl-rule的形式 |
单独应用一个IP型ACL中所有规则 |
ip-group { acl-number | acl-name } |
单独应用一个IP型ACL中一条规则 |
ip-group { acl-number | acl-name } rule rule-id |
单独应用一个Link型ACL中所有规则 |
link-group { acl-number | acl-name } |
单独应用一个Link型ACL中一条规则 |
link-group { acl-number | acl-name } rule rule-id |
单独应用一个用户自定义ACL中所有规则 |
user-group { acl-number | acl-name } |
单独应用一个用户自定义ACL中一条规则 |
user-group { acl-number | acl-name } rule rule-id |
同时应用IP型ACL中一条规则和一个Link型ACL的一条规则 |
ip-group { acl-number | acl-name } rule rule-id link-group { acl-number | acl-name } rule rule-id |
表1-6 ACL组合方式参数说明
参数 |
说明 |
ip-group { acl-number | acl-name } |
基本及高级ACL。acl-number:ACL序号,2000到3999之间的一个数值。acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写。 |
link-group { acl-number | acl-name } |
二层ACL,acl-number:ACL序号,4000到4999之间的一个数值。acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写。 |
user-group { acl-number | acl-name } |
用户自定义的ACL,acl-number:ACL序号,5000到5999之间的一个数值。acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写。 |
rule-id |
ACL规则序号,取值范围为0~127。如果不指定则表示ACL中的所有规则。 |
system-index:ACL规则应用到端口时内部使用的一个索引取值,取值范围为0~4294967295。该参数只有在命令中指定了ACL规则序号才可选。
not-care-for-interface:对于非48端口的A型业务板,使用本参数后,包过滤功能将在当前端口所在的业务板上都生效。对于48端口的A型业务板,使用本参数后,如果当前端口是1~24端口范围内的端口,包过滤功能将在在当前业务板的1~24端口上都生效;如果当前端口是25~48端口范围内的端口,包过滤功能将在在当前业务板的25~48端口上都生效。
【描述】
packet-filter命令用来激活ACL。undo packet-filter命令用来取消激活。
【举例】
# 在Ethernet 3/0/1端口上应用ACL2000。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] interface Ethernet3/0/1
[H3C-Ethernet3/0/1] qos
[H3C-qoss-Ethernet3/0/1] packet-filter inbound ip-group 2000
【命令】
reset acl counter { all | acl-number | acl-name }
【视图】
用户视图
【参数】
all:表示所有的ACL(包括数字标识的和名字标识的)。
acl-number:ACL序号,2000到3999之间的一个数值。
acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写,不允许使用关键字all。
【描述】
reset acl counter命令用来清除对软件处理的报文过滤和流分类的ACL的统计信息。
表1-7 统计信息的reset命令的比较
命令 |
功能 |
reset acl counter |
清除ACL的统计信息。本命令适用于对软件处理的报文过滤和流分类的ACL。ACL被软件引用的情况包括:路由策略引用ACL、对登录用户进行控制时引用ACL等。 |
reset traffic-statistic |
清除流量统计信息。本命令适用于直接下发到交换机的硬件中用于数据转发过程中的过滤和流分类的ACL。一般情况下,本命令用于将命令traffic-statistic统计的信息清除。 关于reset traffic-statistic和traffic-statistic命令请参见本手册“QoS”模块 |
【举例】
# 清除ACL 2000的统计信息。
<H3C> reset acl counter 2000
【命令】
rule [ rule-id ] { permit | deny } [ source { source-addr wildcard | any } | fragment | time-range time-name ]*
undo rule rule-id [ source | fragment | time-range ]*
【视图】
基本ACL视图
【参数】
rule-id:ACL规则编号,范围为0~127。
deny:表示丢弃符合条件的数据包。
permit:表示允许符合条件的数据包通过。
fragment:指定该ACL规则仅对非首片分片报文有效。如果不选择本参数则表示本ACL规则不以报文是否分片作为依据对报文进行过滤。
source { sour-addr sour-wildcard | any }:指定ACL规则的源地址信息。如果不配置,表示匹配报文的任何源地址。sour-addr指定源IP地址,点分十进制表示。sour-wildcard用来为目标子网掩码的反码,点分十进制表示。例如,如果用户想指定子网掩码255.255.0.0,则需要输入0.0.255.255。sour-wildcard可以为0,表示主机地址。any代表任意地址。
time-range time-name:该ACL规则在指定时间段内有效。如果不选择本参数则表示本ACL规则不以时间段作为依据对报文进行过滤。
【描述】
rule命令用来定义ACL规则。undo rule命令用来删除一个ACL规则或者ACL规则的属性信息。
在删除一条ACL规则时,需要指定该ACL规则的编号。如果用户不知道ACL规则的编号,可以使用命令display acl config来查看。
对于在定义ACL规则时指定编号的情况:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 如果指定编号对应的ACL规则不存在,用户将创建并定义一个新的ACL规则。
l 编辑后或新创建的ACL规则不能和已经存在的ACL规则内容完全相同,否则会导致编辑或创建不成功,系统会提示该ACL规则已经存在。
在定义ACL规则时如果不指定编号,用户将创建并定义一个新ACL规则,设备将自动为这个ACL规则分配一个编号。
& 说明:
A型业务板不支持配置了fragment参数的ACL规则下发到硬件。
【举例】
# 定义一个ACL规则,禁止源地址为1.1.1.1的报文通过。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl number 2000
[H3C-acl-basic-2000] rule deny source 1.1.1.1 0
【命令】
rule [ rule-id ] { permit | deny } rule-string
undo rule rule-id [ source | destination | source-port | destination-port | icmp-type | precedence | tos | dscp | fragment | time-range ]*
【视图】
高级ACL视图
【参数】
rule-id:ACL规则编号,范围为0~127。
deny:表示丢弃符合条件的数据包。
permit:表示允许符合条件的数据包通过。
rule-string:ACL规则信息,可以由表1-8中的参数组合而成,具体参数说明如表1-8所示。ACL规则信息中必须首先配置protocol参数,然后才能配置其他参数。
表1-8 ACL规则信息
参数 |
类别 |
作用 |
说明 |
protocol |
协议类型 |
IP承载的协议类型 |
用数字表示时取值范围为1~255 用名字表示时,可以选取GRE、ICMP、IGMP、IP、IPinIP、OSPF、TCP、UDP |
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 |
分片信息 |
定义ACL规则仅对非首片分片报文有效 |
- |
time-range time-name |
时间段信息 |
指定ACL规则生效的时间段 |
- |
& 说明:
sour-wildcard与dest-wildcard为目标子网掩码的反码,点分十进制表示。例如,如果用户想指定子网掩码255.255.0.0,则需要输入0.0.255.255。可以为0,表示主机地址。
如果选择dscp关键字,除了直接输入数值0~63外,用户也可输入如表1-9所示的关键字。
表1-9 DSCP值说明
关键字 |
DSCP值(十进制) |
DSCP值(二进制) |
ef |
46 |
101110 |
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 |
cs1 |
8 |
001000 |
cs2 |
16 |
010000 |
cs3 |
24 |
011000 |
cs4 |
32 |
100000 |
cs5 |
40 |
101000 |
cs6 |
48 |
110000 |
cs7 |
56 |
111000 |
be (default) |
0 |
000000 |
如果选择precedence关键字,除了直接输入数值0~7外,用户也可输入如表1-10所示的关键字。
关键字 |
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-11所示的关键字。
表1-11 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-12所示信息。
表1-12 TCP/UDP特有的ACL规则信息
参数 |
类别 |
作用 |
说明 |
source-port operator port1 [ port2 ] |
源端口 |
定义UDP/TCP报文的源端口信息 |
operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)、neq(不等于)或者range(在指定范围内);只有操作符range需要两个端口号做操作数,其他的只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用名字或数字表示,数字的取值范围为0~65535 |
destination-port operator port1 [ port2 ] |
目的端口 |
定义UDP/TCP报文的目的端口信息 |
|
established |
TCP连接建立标识 |
表示此条规则仅对TCP建立连接的第一个SYN报文有效 |
TCP协议特有的参数 |
& 说明:
只有A型业务板支持对TCP/UDP端口的range操作。
当协议类型选择为ICMP时,用户还可以定义如表1-13所示信息。
表1-13 ICMP特有的ACL规则信息
参数 |
类别 |
作用 |
说明 |
icmp-type icmp-type icmp-code |
ICMP报文的类型和消息码信息 |
指定ACL规则中ICMP报文的类型和消息码信息 |
icmp-type:ICMP消息类型,取值为0~255 icmp-code:ICMP的消息码,取值为0~255 |
当协议类型选择为ICMP时,用户也可以直接在icmp-type参数后输入ICMP的消息名称。在几种常见的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 |
【描述】
rule命令用来定义ACL规则。undo rule命令用来删除一个ACL规则或者ACL规则的属性信息。
在删除一条ACL规则时,需要指定该ACL规则的编号。如果用户不知道ACL规则的编号,可以使用命令display acl config来查看。
对于在定义ACL规则时指定编号的情况:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 如果指定编号对应的ACL规则不存在,用户将创建并定义一个新的ACL规则。
l 编辑后或新创建的ACL规则不能和已经存在的ACL规则内容完全相同,否则会导致编辑或创建不成功,系统会提示该ACL规则已经存在。
在定义ACL规则时如果不指定编号,用户将创建并定义一个新ACL规则,设备将自动为这个ACL规则分配一个编号。
& 说明:
A型业务板不支持配置了tos tos、fragment参数的ACL规则下发到硬件。
【举例】
# 定义一条ACL规则,允许从129.9.0.0网段的主机向202.38.160.0网段的主机发送的端口号为80的TCP报文通过。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl number 3101
[H3C-acl-adv-3101] rule permit tcp source 129.9.0.0 0.0.255.255 destination 202.38.160.0 0.0.0.255 destination-port eq 80
【命令】
rule [ rule-id ] { permit | deny } [ rule-string ]
undo rule rule-id
【视图】
二层ACL视图
【参数】
rule-id:ACL规则编号,取值范围为0~127。
deny:表示丢弃符合条件的数据包。
permit:表示允许符合条件的数据包通过。
rule-string:ACL规则信息,可以由表1-15中的参数组合而成,具体参数说明如表1-15所示。
表1-15 ACL规则信息
参数 |
类别 |
作用 |
说明 |
protocol-type |
协议类型 |
以太网帧承载的协议类型 |
protocol-type:取值可以为ip、arp、rarp、ipx、nbx、pppoe-control、pppoe-data 当用户选择协议类型为arp时,不能匹配目的MAC地址为交换机三层接口的MAC地址的ARP报文 |
format-type |
链路层封装类型 |
定义ACL规则中的链路层封装类型 |
format-type:取值可以为802.3/802.2、802.3、ether_ii、snap |
ingress { { source-vlan-id | source-mac-addr [ source-mac-mask ] }* | any } |
源MAC信息 |
定义ACL规则的源MAC地址范围 |
source-mac-addr:源MAC地址,格式为H-H-H source-mac-mask:源MAC地址的掩码,格式为H-H-H,缺省为全f source-vlan-id:源VLAN ID,取值范围1~4094 any表示从所有端口接收到的所有报文 |
egress { dest-mac-addr [ dest-mac-mask ] | any } |
目的MAC信息 |
定义ACL规则的目的MAC地址范围 |
dest-mac-addr:目的MAC地址,格式为H-H-H dest-mac-mask:目的MAC地址的掩码,格式为H-H-H,缺省为全f any表示从所有端口转发的所有报文 |
cos cos |
优先级 |
定义ACL规则的802.1p优先级 |
cos:取值范围为0~7 |
time-range time-name |
时间段信息 |
指定ACL规则生效的时间段 |
time-name:指定ACL规则生效的时间段名称,字符串格式,长度为1~32 |
& 说明:
source-mac-mask与dest-mac-mask为MAC地址的掩码。例如,如果用户想指定MAC地址范围为0011-0011-0000至0011-0011-00ff,则需要输入ffff-ffff-ff00。掩码可以为全f,表示主机地址。
如果选择cos关键字,除了直接输入数值0~7外,用户也可输入如表1-16所示的关键字。
表1-16 CoS值说明
关键字 |
CoS(十进制) |
CoS(二进制) |
best-effort |
0 |
000 |
background |
1 |
001 |
spare |
2 |
010 |
excellent-effort |
3 |
011 |
controlled-load |
4 |
100 |
video |
5 |
101 |
voice |
6 |
110 |
network-management |
7 |
111 |
【描述】
rule命令用来定义ACL规则。undo rule命令用来删除一个ACL规则。
在删除一条ACL规则时,需要指定该ACL规则的编号。如果用户不知道ACL规则的编号,可以使用命令display acl config来查看。
对于在定义ACL规则时指定编号的情况:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 如果指定编号对应的ACL规则不存在,用户将创建并定义一个新的ACL规则。
l 编辑后或新创建的ACL规则不能和已经存在的ACL规则内容完全相同,否则会导致编辑或创建不成功,系统会提示该ACL规则已经存在。
如果在定义ACL规则时不指定编号,用户将创建并定义一个新的ACL规则,设备将自动为这个ACL规则分配一个编号。
【举例】
# 定义一个ACL规则,禁止从MAC地址000d-88f5-97ed发送到MAC地址011-4301-991e且802.1p优先级为3的报文通过。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] acl number 4000
[H3C-acl-link-4000] rule deny cos 3 source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff
【命令】
rule [ rule-id ] { permit | deny } { rule-string rule-mask offset } &<1-8> [ time-range time-name ]
undo rule rule-id
【视图】
用户自定义ACL视图
【参数】
rule-id:ACL规则编号,范围为0~127。
deny:表示丢弃符合条件的数据包。
permit:表示允许符合条件的数据包通过。
rule-string:用户自定义的ACL规则字符串,必须是16进制数组成。长度范围为2~20个字符,字符长度必须是偶数。
rule-mask:用户自定义的ACL规则掩码,用于和数据包作“与”操作,必须是16进制数组成。长度范围为2~20个字符,必须是偶数,且必须与rule-string长度相同。
offset:ACL规则掩码的offset是偏移量,它指定以数据包的头部为基准,指定从第几个字节开始进行“与”操作。取值范围为0~79字节,rule-string (及rule-mask)的长度每增加两个字符,其最大值减小1字节。即,如果定义了包含两个字符的rule-string及rule-mask,其最大值为79字节;如果定义了包含四个字符的rule-string及rule-mask,其最大值为78字节;以此类推。rule-mask offset共同作用,将从报文提取出来的字符串和用户定义的rule-string比较,找到匹配的报文,然后进行相应的处理。
&<1-8>:表示一次最多可以定义8个这样的ACL规则。
time-range time-name:ACL规则在该时间段内有效。
【描述】
rule命令用来定义ACL规则。undo rule命令用来删除一个ACL规则或者ACL规则的属性信息。
在删除一条ACL规则时,需要指定该ACL规则的编号。如果用户不知道ACL规则的编号,可以使用命令display acl config来查看。
对于在定义ACL规则时指定编号的情况:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 如果指定编号对应的ACL规则不存在,用户将创建并定义一个新的ACL规则。
l 编辑后或新创建的ACL规则不能和已经存在的ACL规则内容完全相同,否则会导致编辑或创建不成功,系统会提示该ACL规则已经存在。
在定义ACL规则时如果不指定编号,用户将创建并定义一个新ACL规则,设备将自动为这个ACL规则分配一个编号。
& 说明:
只有非A型业务板支持用户自定义ACL。
【举例】
# 定义一个用户自定义ACL规则,禁止所有的TCP报文通过。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] time-range t1 18:00 to 23:00 sat
[H3C] acl number 5001
[H3C-acl-user-5001] rule 25 deny 06 ff 27 time-range t1
【命令】
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 { 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:定义时间段的名字,作为一个引用的标识。
start-time:可选参数,周期时间段的开始时间,表示形式为hh:mm。
end-time:可选参数,周期时间段的结束时间,表示形式为hh:mm。
days-of-the-week:可选参数,参数表示该周期时间在每周几有效。可以输入如下参数及其组合:
l 数字(0-6);
l 星期一到星期日(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);
l 工作日(working-day),包括从星期一到星期五五天;
l 休息日(off-day),包括星期六和星期天;
l 每一天(daily),一星期中的每一天。
from start-time start-date:可选参数,绝对时间段的开始日期,和end-time end-date共同表示该绝对时间在某一段日期中生效,表示形式为hh:mm YYYY/MM/DD。如果不指定开始日期,则开始日期为系统可表示的最早时间。
to end-time end-date:可选参数,绝对时间段的结束日期,和start-time start-date共同表示该绝对时间在某一段日期中生效,表示形式为hh:mm YYYY/MM/DD。如果不指定结束日期,则结束日期为2100/12/31 23:59。
all:删除所有时间段。
【描述】
time-range命令用来配置一个时间段。undo time-range命令用来删除一个时间段。
如果一个时间段只定义了周期时间段,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个周期时间段,则这些周期时间段之间是“或”的关系。
如果一个时间段只定义了绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个绝对时间段,则这些绝对时间段之间是“或”的关系。
如果一个时间段同时定义了绝对时间段和周期时间段,则只有同时满足绝对时间段和周期时间段的定义时,该时间段才进入激活状态。例如,一个时间段定义了绝对时间段:从2004年1月1日零点零分到2004年12月31日23点59分,同时定义了周期时间段:每周三的12:00到14:00。该时间段只有在2004年内每周三的12:00到14:00才进入激活状态。
如果用户在使用undo time-range命令时输入了参数,系统将只删除该时间段中参数对应的内容。
【举例】
# 定义绝对时间段test,从2000年1月1日0:0生效。
<H3C> system-view
System View: return to User View with Ctrl+Z.
[H3C] time-range test from 0:0 2000/1/1
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!