27-ACL命令
本章节下载 (196.74 KB)
【命令】
acl number acl-number [ name acl-name ] [ match-order { auto | config } ]
undo acl { all | name acl-name | number acl-number }
【视图】
系统视图
【缺省级别】
2:系统级
【参数】
number acl-number:指定ACL的序号。acl-number表示ACL的序号,取值范围如下:
l 2000~2999:基本ACL;
l 3000~3999:高级ACL;
l 4000~4999:二层ACL;
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不可以使用英文单词all。
match-order:指定规则的匹配顺序,缺省情况下,规则的匹配顺序为配置顺序。
l auto:按照“深度优先”的顺序进行规则匹配;
l config:按照用户配置规则的先后顺序进行规则匹配。
all:所有的ACL。
【描述】
acl命令用来创建一个ACL,并进入相应的ACL视图。undo acl命令用来删除ACL。
缺省情况下,不存在任何ACL。
用户也可以通过本命令修改一个已经存在的ACL的匹配顺序,但必须在该ACL中没有规则的时候修改,对已经有规则的ACL是无法修改其匹配顺序的。
需要注意的是:
l 使用acl命令时,如果指定编号的ACL不存在,则创建该ACL并进入其视图,否则直接进入其视图。
l 用户只能在创建ACL时为其指定名称,ACL一旦创建,便不允许对其名称进行修改或删除。当ACL内不存在任何规则时,用户可以使用本命令对该ACL的规则匹配顺序进行修改,否则不允许进行修改。
相关配置可参考命令display acl。
【举例】
# 创建一个编号为2000的基本ACL,并进入其视图。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000]
# 创建一个编号为2001的基本ACL,指定其名称为flow,并进入其视图。
<Sysname> system-view
[Sysname] acl number 2001 name flow
[Sysname-acl-basic-2001-flow]
【命令】
acl copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }
【视图】
系统视图
【缺省级别】
2:系统级
【参数】
source-acl-number:源ACL的序号,该ACL必须存在。取值范围如下:
l 2000~2999:基本ACL;
l 3000~3999:高级ACL;
l 4000~4999:二层ACL;
name source-acl-name:指定源ACL的名称,该ACL必须存在。source-acl-name为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不可以使用英文单词all。
dest-acl-number:目的ACL的序号,该ACL必须不存在。取值范围如下:
l 2000~2999:基本ACL;
l 3000~3999:高级ACL;
l 4000~4999:二层ACL;
name dest-acl-name:指定目的ACL的名称,该ACL必须不存在。dest-acl-name为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不可以使用英文单词all。由于目的ACL的名称没有对应的ACL序号,系统将自动为之分配一个与源ACL序号属于同一类型的、可用的、最小的ACL序号。若未指定本参数,系统将不会为目的ACL指定名称。
【描述】
acl copy命令用来复制生成一个新的同类型ACL。
需要注意的是:
l 目的ACL的类型要与源ACL的类型相同。
l 目的ACL的名称只能在复制时指定,且目的ACL一旦生成,便不允许对其名称进行修改或删除。
l 除了ACL的编号和名称不同外,新生成的ACL(即目的ACL)的匹配顺序、规则匹配统计功能的使能情况、规则编号的步长、所包含的规则、规则的描述信息以及ACL的描述信息等都与源ACL的相同。
【举例】
# 通过复制已存在的基本ACL 2001,来生成一个新的编号为2002的同类型ACL。
<Sysname> system-view
[Sysname] acl copy 2001 to 2002
【命令】
acl name acl-name
【视图】
系统视图
【缺省级别】
2:系统级
【参数】
acl-name:指定ACL的名称,该ACL必须存在。本参数为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不可以使用英文单词all。
【描述】
acl name命令用来进入指定名称的ACL视图。
相关配置可参考命令acl。
【举例】
# 进入名称为flow的ACL的视图。
<Sysname> system-view
[Sysname] acl name flow
[Sysname-acl-basic-2001-flow]
【命令】
description text
undo description
【视图】
基本ACL视图/高级ACL视图/二层ACL视图
【缺省级别】
2:系统级
【参数】
text:ACL的描述信息,为1~127个字符的字符串,区分大小写。
【描述】
description命令用来配置ACL的描述信息。undo description命令用来删除ACL的描述信息。
缺省情况下,ACL没有任何描述信息。
相关配置可参考命令display acl。
【举例】
# 定义ACL 2000的描述信息。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000] description This acl is used on GE1/0/1
【命令】
display acl { acl-number | all | name acl-name }
【视图】
任意视图
【缺省级别】
1:监控级
【参数】
acl-number:显示指定编号的ACL的配置和运行情况。acl-number表示ACL的编号,取值范围及其代表的ACL类型如下::
l 2000~2999:基本ACL;
l 3000~3999:高级ACL;
l 4000~4999:二层ACL;
all:指定所有的ACL。
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不可以使用英文单词all。
【描述】
display acl命令用来显示配置的ACL的信息。
本命令会按照实际的匹配顺序显示ACL的规则。
【举例】
# 显示ACL 2001的内容。
<Sysname> display acl 2001
Basic ACL 2001, named flow, 1 rule,
ACL's step is 5
rule 5 permit source 1.1.1.1 0 (5 times matched)
rule 5 comment This rule is used on GE1/0/1
表1-1 display acl命令显示信息描述表
字段 |
描述 |
Basic ACL 2001 |
该ACL的类型和编号,ACL的类型包括: l Basic ACL:表示基本ACL l Advanced ACL:表示高级ACL l Ethernet frame ACL:表示二层ACL |
named flow |
该ACL的名称为flow,-none-表示没有名称 |
1 rule |
该ACL内包含的规则数量 |
ACL's step is 5 |
该ACL的规则序号的步长值为5 |
5 times matched |
该规则匹配的次数为5,仅统计基于软件应用的ACL的匹配次数 当匹配次数为0时,将不显示该字段 |
rule 5 comment This rule is used on GE1/0/1 |
ACL规则5的描述信息为This rule is used on GE1/0/1 |
【命令】
display packet-filter { all | interface interface-type interface-number } [ inbound ]
【视图】
任意视图
【缺省级别】
1:监控级
【参数】
all:显示所有以太网端口/VLAN接口上报文过滤策略的应用情况。
interface interface-type interface-number:显示指定以太网端口或VLAN接口上报文过滤策略的应用情况。interface-type interface-number表示端口/接口类型和端口/接口编号。
inbound:显示以太网端口/VLAN接口入方向上报文过滤策略的应用情况。
【描述】
display packet-filter命令用来显示报文过滤策略的应用情况。
【举例】
# 显示端口GigabitEthernet1/0/1入方向上报文过滤策略的应用情况。
<Sysname> display packet-filter interface gigabitethernet 1/0/1 inbound
Interface: GigabitEthernet1/0/1
In-bound Policy:
acl 2001, Successful
表1-2 display packet-filter命令显示信息描述表
字段 |
描述 |
Interface |
应用报文过滤策略的以太网端口/VLAN接口名称 |
In-bound Policy |
入方向上报文过滤策略的应用情况 |
acl 2001, Successful |
应用ACL 2001成功 |
【命令】
display acl resource
【视图】
任意视图
【缺省级别】
1:监控级
【参数】
无
【描述】
display acl resource命令用来显示设备ACL资源使用情况。
【举例】
# 显示设备的ACL资源使用情况。
<Sysname> display acl resource
----------------------------------------------------
GE1/0/1..GE1/0/24
GE1/0/49 GE1/0/50
----------------------------------------------------
Type Total Reserved Configured Remaining
----------------------------------------------------
ACL 1024 370 0 654
Meter 64 0 0 64
----------------------------------------------------
GE1/0/25..GE1/0/48
GE1/0/51 GE1/0/52
----------------------------------------------------
Type Total Reserved Configured Remaining
----------------------------------------------------
ACL 1024 370 0 654
Meter 64 0 0 64
表1-3 display acl resource命令显示信息描述表
字段 |
描述 |
Type |
资源类型:ACL表示规则资源;METER表示流量监管资源 |
Total |
支持的ACL规则总数 |
Reserved |
预留的ACL规则数 |
Configured |
已经配置的ACL规则数 |
Remaining |
剩余的ACL规则数 |
【命令】
display time-range { time-range-name | all }
【视图】
任意视图
【缺省级别】
1:监控级
【参数】
time-range-name:显示指定名称的时间段的配置和状态信息。time-range-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,时间段的名字不可以使用英文单词all。
all:显示所有时间段的配置和状态信息。
【描述】
display time-range命令用来显示时间段的配置和状态,对于当前处在激活状态的时间段将显示active,对于非激活状态的时间段将显示inactive。
【举例】
# 显示时间段trname的配置和状态。
<Sysname> display time-range trname
Current time is 10:45:15 4/14/2005 Thursday
Time-range : trname ( Inactive )
from 08:00 12/1/2005 to 23:59 12/31/2100
表1-4 display time-range命令显示信息描述表
字段 |
描述 |
Current time |
系统当前的时间 |
Time-range |
时间段的配置信息,包括: l 时间段的名称 l 时间段的状态,包括Active(生效)和Inactive(未生效)两种状态 l 时间段的时间范围 |
【命令】
packet-filter { acl-number | name acl-name } inbound
undo packet-filter { acl-number | name acl-name } inbound
【视图】
以太网端口视图/VLAN接口视图
【缺省级别】
2:系统级
【参数】
acl-number:指定ACL的序号,其中:
l 取值为2000~3999时,表示使用基本ACL或高级ACL对IPv4报文进行过滤
l 取值为4000~4999时,表示使用二层ACL对以太网帧进行过滤
name acl-name:指定基本ACL、高级ACL或二层ACL的名称。acl-name表示ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,基本或高级ACL的名称不可以使用英文单词all。
inbound:对接口收到的IPv4报文或以太网帧进行过滤。
【描述】
packet-filter命令用来在接口上应用ACL对IPv4报文或以太网帧进行过滤。undo packet-filter命令用来恢复缺省情况。
缺省情况下,在接口上不对IPv4报文和以太网帧进行过滤。
需要注意的是,如果多次执行本命令,则新的配置将覆盖原有配置。
【举例】
# 应用基本ACL 2001对接口GigabitEthernet1/0/1收到的IPv4报文进行过滤。
<Sysname> system-view
[Sysname] interface gigabitethernet 1/0/1
[Sysname-GigabitEtherhet1/0/1] packet-filter 2001 inbound
# 应用二层ACL 4001对接口GigabitEthernet1/0/1收到的以太网帧进行过滤。
<Sysname> system-view
[Sysname] interface gigabitethernet 1/0/1
[Sysname-GigabitEtherhet1/0/1] packet-filter 4001 inbound
【命令】
reset acl counter { acl-number | all | name acl-name }
【视图】
用户视图
【缺省级别】
2:系统级
【参数】
acl-number:指定ACL的编号,取值范围及其代表的ACL类型如下::
l 2000~2999:基本ACL;
l 3000~3999:高级ACL;
l 4000~4999:二层ACL。
all:指定所有的ACL。
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不可以使用英文单词all。
【描述】
reset acl counter命令用来清除ACL的统计信息。
相关配置可参考命令display acl。
【举例】
# 清除ACL 2001的统计信息。
<Sysname> reset acl counter 2001
# 清除ACL flow的统计信息。
<Sysname> reset acl counter name flow
【命令】
rule [ rule-id ] { deny | permit } protocol [ { established | { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * } | 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 ] *
undo rule rule-id [ { established | { ack | fin | psh | rst | syn | urg } * } | destination | destination-port | dscp | fragment | icmp-type | logging | precedence | reflective | source | source-port | time-range | tos ] *
【视图】
高级ACL视图
【缺省级别】
2:系统级
【参数】
rule-id:高级ACL规则编号,取值范围为0~65534。若未指定本参数,系统将按照步长从0开始,自动分配一个大于现有最大编号的最小编号。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示丢弃符合条件的报文。
permit:表示允许符合条件的报文通过。
protocol:IP承载的协议类型。用数字表示时,取值范围为0~255;用名字表示时,可以选取gre(47)、icmp(1)、igmp(2)、ip、ipinip(4)、ospf(89)、tcp(6)、udp(17)。
protocol后可以配置的规则信息参数如下表所示。
表1-5 规则信息
参数 |
类别 |
作用 |
说明 |
source { sour-addr sour-wildcard | any } |
源地址信息 |
指定ACL规则的源地址信息 |
sour-addr sour-wildcard用来确定报文的源IP地址,点分十进制表示,sour-wildcard表示源IP地址的通配符掩码(为0表示主机地址);any代表任意源IP地址 |
destination { dest-addr dest-wildcard | any } |
目的地址信息 |
指定ACL规则的目的地址信息 |
dest-addr dest-wildcard用来确定报文的目的IP地址,点分十进制表示,dest-wildcard表示目的IP地址的通配符掩码(为0表示主机地址);any代表任意目的IP地址 |
precedence precedence |
报文优先级 |
IP优先级 |
precedence用数字表示时,取值范围为0~7;用文字表示时,分别对应routine、priority、immediate、flash、flash-override、critical、internet、network |
tos tos |
报文优先级 |
ToS优先级 |
tos用数字表示时,取值范围为0~15;用文字表示时,可以选取max-reliability(2)、max-throughput(4)、min-delay(8)、min-monetary-cost(1)、normal(0) |
dscp dscp |
报文优先级 |
DSCP优先级 |
dscp用数字表示时,取值范围为0~63;用文字表示时,可以选取af11(10)、af12(12)、af13(14)、af21(18)、af22(20)、af23(22)、af31(26)、af32(28)、af33(30)、af41(34)、af42(36)、af43(38)、cs1(8)、cs2(16)、cs3(24)、cs4(32)、cs5(40)、cs6(48)、cs7(56)、default(0)、ef(46) |
logging |
日志操作 |
对符合条件的报文可记录日志信息 |
该功能需要使用该ACL的模块支持日志记录功能 |
reflective |
自反标志 |
设置规则具有自反属性 |
目前不支持该参数 |
fragment |
分片信息 |
定义规则仅对非首片分片报文有效,而对非分片报文和首片分片报文无效 |
不包含此关键字的配置规则项对非分片报文和分片报文均有效 |
time-range time-range-name |
时间段信息 |
指定规则生效的时间段 |
time-range-name:指定规则生效的时间段名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all |
如果指定了参数dscp的同时还指定了参数precedence或tos,那么对参数precedence和tos所进行的配置不会生效。
当protocol选择为tcp或者udp时,用户还可以定义如下信息。
表1-6 TCP/UDP特有的规则信息
参数 |
类别 |
作用 |
说明 |
source-port operator port1 [ port2 ] |
源端口 |
定义TCP/UDP报文的源端口信息 |
operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)、neq(不等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其它的只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用数字表示时,取值范围为0~65535;用文字表示时,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) |
destination-port operator port1 [ port2 ] |
目的端口 |
定义TCP/UDP报文的目的端口信息 |
|
{ ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * |
TCP报文标识 |
定义对携带不同标志位的TCP报文的处理规则 |
TCP协议特有的参数。定义规则匹配携带不同标志位的TCP报文,各value值的取值范围都为0~1。 如果在一条规则中设置了多个TCP标志位的匹配值,则这些匹配条件之间的关系为“与” |
established |
TCP报文标识 |
定义TCP报文的ACK和RST标志位匹配规则 |
该参数用于定义TCP报文中ACK或RST标志位为1的报文 |
当protocol选择为icmp时,用户还可以定义如下信息。
表1-7 ICMP特有的规则信息
参数 |
类别 |
作用 |
说明 |
icmp-type { icmp-type icmp-code | icmp-message } |
ICMP报文的消息类型和消息码信息 |
指定规则的ICMP报文的消息类型和消息码信息 |
icmp-type:ICMP消息类型,取值范围为0~255 icmp-code:ICMP的消息码,取值范围为0~255 icmp-message:ICMP消息的名称。可以输入的ICMP消息名称,及其与消息类型和消息码的对应关系如表1-8所示 |
表1-8 ICMP消息名称与消息类型和消息码的对应关系
ICMP消息名称 |
ICMP消息类型 |
ICMP消息码 |
echo |
8 |
0 |
echo-reply |
0 |
0 |
fragmentneed-DFset |
3 |
4 |
host-redirect |
5 |
1 |
host-tos-redirect |
5 |
3 |
host-unreachable |
3 |
1 |
information-reply |
16 |
0 |
information-request |
15 |
0 |
net-redirect |
5 |
0 |
net-tos-redirect |
5 |
2 |
net-unreachable |
3 |
0 |
parameter-problem |
12 |
0 |
port-unreachable |
3 |
3 |
protocol-unreachable |
3 |
2 |
reassembly-timeout |
11 |
1 |
source-quench |
4 |
0 |
source-route-failed |
3 |
5 |
timestamp-reply |
14 |
0 |
timestamp-request |
13 |
0 |
ttl-exceeded |
11 |
0 |
【描述】
rule命令用来为IPv4高级ACL创建一条规则。undo rule命令用来为IPv4高级ACL删除一条规则或删除规则中的部分内容。
缺省情况下,IPv4高级ACL内不存在任何规则。
在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。如果undo rule命令后不指定参数,将删除整个指定编号的ACL规则,否则,将只删除指定编号的ACL规则相应的属性信息。
需要注意的是:
l 当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。
l 在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 新创建或修改后的规则不能和已经存在的规则内容相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
l 当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
当高级ACL被QoS策略引用对报文进行流分类时,不支持配置logging参数。有关QoS策略的相关介绍,请参见“QoS配置”。
【举例】
# 定义一条规则,允许从129.9.0.0网段的主机向202.38.160.0网段的主机发送的目的端口号为80的TCP报文通过。
<Sysname> system-view
[Sysname] acl number 3101
[Sysname-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 ] { deny | permit } [ fragment | logging | source { sour-addr sour-wildcard | any } | time-range time-range-name ] *
undo rule rule-id [ fragment | logging | source | time-range ] *
【视图】
基本ACL视图
【缺省级别】
2:系统级
【参数】
rule-id:基本ACL规则编号,取值范围为0~65534。若未指定本参数,系统将按照步长从0开始,自动分配一个大于现有最大编号的最小编号。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示丢弃符合条件的报文。
permit:表示允许符合条件的报文通过。
fragment:定义规则仅对非首片分片报文有效,而对非分片报文和首片分片报文无效。不包含此关键字的配置规则项对非分片报文和分片报文均有效。
logging:对符合条件的报文可记录日志信息。
source { sour-addr sour-wildcard | any }:指定规则的源地址信息。sour-addr表示报文的源IP地址,sour-wildcard表示源IP地址的通配符掩码(为0表示主机地址),any表示任意源IP地址。
time-range time-range-name:指定规则生效的时间段。time-range-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all。
【描述】
rule命令用来为IPv4基本ACL创建一条规则。undo rule命令用来为IPv4基本ACL删除一条规则或删除规则中的部分内容。
缺省情况下,IPv4基本ACL内不存在任何规则。
在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。如果undo rule命令后不指定参数,将删除整个指定编号的ACL规则,否则,将只删除指定编号的ACL规则相应的属性信息。
需要注意的是:
l 当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。
l 在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 新创建或修改后的规则不能和已经存在的规则内容相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
l 当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
当基本ACL被QoS策略引用对报文进行流分类时,不支持配置logging参数。有关QoS策略的相关介绍,请参见 “QoS配置”。
【举例】
# 定义一个规则,禁止源地址为1.1.1.1的报文通过。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000] rule deny source 1.1.1.1 0
【命令】
rule [ rule-id ] { deny | permit } [ cos vlan-pri | 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 ] *
undo rule rule-id [ time-range ]
【视图】
二层ACL视图
【缺省级别】
2:系统级
【参数】
rule-id:二层ACL规则编号,取值范围为0~65534。若未指定本参数,系统将按照步长从0开始,自动分配一个大于现有最大编号的最小编号。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示丢弃符合条件的报文。
permit:表示允许符合条件的报文通过。
cos vlan-pri:指定802.1p优先级。vlan-pri表示802.1p优先级,可输入的形式如下:
l 数字:取值范围为0~7;
l 名称:best-effort、background、spare、excellent-effort、controlled-load、video、voice和network-management,依次对应于数字0~7。
dest-mac dest-addr dest-mask:定义规则的目的MAC地址范围。dest-addr表示目的MAC地址,格式为H-H-H。dest-mask表示目的MAC地址的掩码,格式为H-H-H。
lsap lsap-type lsap-type-mask:定义规则中LLC封装中的DSAP字段和SSAP字段。lsap-type 表示数据帧的封装格式,16比特的十六进制数。lsap-type-mask表示LSAP的类型掩码,16比特的十六进制数,用于指定屏蔽位。
source-mac sour-addr source-mask:定义规则的源MAC地址范围。sour-addr表示源MAC地址,格式为H-H-H。sour-mask表示源MAC地址的掩码,格式为H-H-H。
time-range time-range-name:指定规则生效的时间段。time-range-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all。
type protocol-type protocol-type-mask:定义规则中的链路层协议类型。protocol-type表示16比特的十六进制数表征的数据帧类型,对应Ethernet_II类型和Ethernet_SNAP类型帧中的type域。protocol-type-mask表示类型掩码,是一个16比特的十六进制数,用于指定屏蔽位。
【描述】
rule命令用来为二层ACL创建一条规则。undo rule命令用来为二层ACL删除一条规则或删除规则中的部分内容。
缺省情况下,二层ACL内不存在任何规则。
在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。
需要注意的是:
l 当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。
l 在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 新创建或修改后的规则不能和已经存在的规则内容相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
l 当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
当二层ACL被QoS策略引用对报文进行流分类时,不支持配置lsap参数。
【举例】
# 定义一个规则,禁止802.1p优先级为3的报文通过。
<Sysname> system-view
[Sysname] acl number 4000
[Sysname-acl-ethernetframe-4000] rule deny cos 3
【命令】
rule rule-id comment text
undo rule rule-id comment
【视图】
基本ACL视图/高级ACL视图/二层ACL视图
【缺省级别】
2:系统级
【参数】
rule-id:指定规则的编号,该规则必须存在。取值范围为0~65534。
text:表示规则的描述信息,为1~127个字符的字符串,区分大小写。
【描述】
rule comment命令用来定义配置规则的描述信息。undo rule comment命令用来删除规则的描述信息。
缺省情况下,规则没有任何描述信息。
需要注意的是,使用rule comment命令时,如果指定的规则没有描述信息,则为其添加描述信息,否则修改其描述信息。
相关配置可参考命令display acl。
【举例】
#为基本ACL 2000配置规则0,并为该规则配置描述信息。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000] rule 0 deny source 1.1.1.1 0
[Sysname-acl-basic-2000] rule 0 comment This rule is used on GE1/0/1
【命令】
step step-value
undo step
【视图】
基本ACL视图/高级ACL视图/二层ACL视图
【缺省级别】
2:系统级
【参数】
step-value:表示规则编号的步长值,取值范围为1~20。
【描述】
step命令用来配置规则编号的步长。undo step命令用来恢复缺省情况。
缺省情况下,规则编号的步长为5。
相关配置可参考命令display acl和display acl ipv6。
【举例】
# 把ACL 2000的步长改为2。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000] step 2
# 把ACL 3000的步长改为2。
<Sysname> system-view
[Sysname] acl number 3000
[Sysname-acl-adv-3000] step 2
# 把ACL 4000的步长改为2。
<Sysname> system-view
[Sysname] acl number 4000
[Sysname-acl-ethernetframe-4000] step 2
【命令】
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 }
undo 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 ]
【视图】
系统视图
【缺省级别】
2:系统级
【参数】
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,时间段的名字不可以使用英文单词all。
start-time:一个周期时间范围的开始时间,格式为hh:mm,小时和分钟之间使用“:”分隔,取值范围为00:00~23:59。
end-time:一个周期时间范围的结束时间,格式为hh:mm,小时和分钟之间使用“:”分隔,取值范围为00:00~24:00。结束时间必须大于开始时间。
days:表示配置的时间范围在每周几有效,可以输入多个参数,但是这些参数所代表的时间不能重叠,可以输入的参数如下:
l 数字(0~6,分别代表一周中的其中一天,0代表星期日);
l 星期一到星期日(Mon,Tue,Wed,Thu,Fri,Sat,Sun);
l 工作日(working-day),代表从星期一到星期五;
l 休息日(off-day),代表星期六和星期日;
l 所有日子(daily),代表一周七天。
from time1 date1:表示从某一天某一时间开始。time1的输入格式为hh:mm,取值范围为00:00~23:59。date1的输入格式为MM/DD/YYYY或YYYY/MM/DD。MM代表月,可以输入1~12之间的数字;DD代表日,可以输入的范围取决于用户选择的月份;YYYY代表年,可以输入1970~2100之间的数字。如果不配置起始时间,则开始时间为系统可表示的最早时间,即1970年1月1日0点0分。
to time2 date2:表示到某一天某一时间结束。time2的输入格式为hh:mm,取值范围为00:00~24:00。date2的输入格式与date1相同。结束时间必须大于起始时间。如果不配置结束时间,则结束时间为系统可表示的最晚时间,即2100年12月31日24点0分。
【描述】
time-range命令用来定义一个时间段,描述一个时间范围。undo time-range命令用来删除一个时间段。
对时间段的配置有如下两种情况:
l 配置周期时间段:采用每周的周几的形式;
l 配置绝对时间段:采用从起始时间到结束时间的形式。
需要注意的是:
l 如果用户通过命令time-range time-range-name start-time to end-time days定义了一个周期时间段,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。
l 如果用户通过命令time-range time-range-name { from time1 date1 [ to time2 date2 ] | to time2 date2 }定义了一个绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。
l 如果用户通过命令time-range time-range-name start-time to end-time days { from time1 date1 [ to time2 date2 ] | to time2 date2 }同时定义了绝对时间段和周期时间段,则只有系统时钟同时满足绝对时间段和周期时间段的定义时,该时间段才进入激活状态。例如,一个时间段定义了绝对时间段:从2004年1月1日0点0分到2004年12月31日23点59分,同时定义了周期时间段:每周三的12:00到14:00。该时间段只有在2004年内每周三的12:00到14:00才进入激活状态。
l 在同一个名字下可以配置多个时间段,来共同描述一个特殊时间,通过名字来引用该时间。在同一个名字下配置的多个周期时间段之间是“或”的关系,多个绝对时间段之间是“或”的关系,而周期时间段和绝对时间段之间是“与”的关系。
l 最多可以定义256个时间段。
【举例】
# 创建名为t1的时间段,其时间范围为每周工作日的8点到18点。
<Sysname> system-view
[Sysname] time-range t1 8:0 to 18:0 working-day
# 创建名为t2的时间段,其时间范围为2010年全年。
<Sysname> system-view
[Sysname] time-range t1 from 0:0 1/1/2010 to 23:59 12/31/2010
# 创建名为t3的时间段,其时间范围为2010年全年内每周休息日的8点到12点。
<Sysname> system-view
[Sysname] time-range t3 8:0 to 12:0 off-day from 0:0 1/1/2010 to 23:59 12/31/2010
# 创建名为t4的时间段,其时间范围为2010年1月和6月内每周一的10点到12点以及每周三的14到16点。
<Sysname> system-view
[Sysname] time-range t4 10:0 to 12:0 1 from 0:0 1/1/2010 to 23:59 1/31/2010
[Sysname] time-range t4 14:0 to 16:0 3 from 0:0 6/1/2010 to 23:59 6/30/2010
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!