• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

06-安全分册(命令, V1.01)

03-ACL命令

本章节下载  (254.66 KB)

docurl=/cn/Service/Document_Software/Document_Center/Other_Product/IP_Voice/VG_80-80/VG_80-80/Command/Command_Manual/VG_80-80_06_CM(V1.01)/200712/321101_30005_0.htm

03-ACL命令

  录

第1章 ACL配置命令... 1-1

1.1 公共配置命.. 1-1

1.1.1 display time-range. 1-1

1.1.2 time-range. 1-2

1.2 IPv4 ACL命令.. 1-4

1.2.1 acl 1-4

1.2.2 acl copy. 1-6

1.2.3 acl name. 1-7

1.2.4 description (for IPv4) 1-7

1.2.5 display acl 1-8

1.2.6 reset acl counter 1-9

1.2.7 rule (basic IPv4 ACL view) 1-10

1.2.8 rule (advanced IPv4 ACL view) 1-12

1.2.9 rule (Ethernet frame header ACL view) 1-16

1.2.10 rule (user-defined ACL view) 1-18

1.2.11 rule comment (for IPv4) 1-19

1.2.12 step (for IPv4) 1-20

1.3 IPv6 ACL命令.. 1-22

1.3.1 acl ipv6. 1-22

1.3.2 acl ipv6 copy. 1-24

1.3.3 acl ipv6 name. 1-25

1.3.4 description (for IPv6) 1-25

1.3.5 display acl ipv6. 1-26

1.3.6 reset acl ipv6 counter 1-27

1.3.7 rule (basic IPv6 ACL view) 1-28

1.3.8 rule (advanced IPv6 ACL view) 1-29

1.3.9 rule (simple IPv6 ACL view) 1-33

1.3.10 rule comment (for IPv6) 1-37

1.3.11 step (for IPv6) 1-37

 


第1章  ACL配置命令

1.1  公共配置命令

1.1.1  display time-range

【命令】

display time-range { time-name | all }

【视图】

任意视图

【参数】

time-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,时间段的名字不可以使用英文单词all。

all:所有配置的时间段。

【描述】

display time-range命令用来显示时间段的配置和状态,对于当前处在激活状态的时间段将显示active,对于非激活状态的时间段将显示inactive。

【举例】

# 显示时间段trname的配置和状态。

<VG> 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-1 display time-range命令显示信息描述表

字段

描述

Current time

系统当前的时间

Time-range

时间段的配置信息:时间段的名字、时间段所处的状态(状态分为两种:激活和非激活)、时间段的时间范围

 

1.1.2  time-range

【命令】

time-range time-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-name [ start-time to end-time days [ from time1 date1 ] [ to time2 date2 ] | from time1 date1 [ to time2 date2 ] | to time2 date2 ]

【视图】

系统视图

【参数】

time-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              星期一到星期日(MonTueWedThuFriSatSun);

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。DD代表日,可以输入1~31之间的数字;MM代表月,可以输入1~12之间的数字;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-name start-time to end-time days定义了一个周期时间段,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。

l              如果用户通过命令time-range time-name { from time1 date1 [ to time2 date2 ] | to time2 date2 }定义了一个绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。

l              如果用户通过命令time-range time-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个时间段。

【举例】

# 配置时间段test,从2003年1月1日0:0开始生效。

<VG> system-view

[VG] time-range test from 0:0 2003/1/1

# 配置时间段test,在周一到周五每天8:00到18:00生效。

<VG> system-view

[VG] time-range test 8:00 to 18:00 working-day

# 配置时间段test,在休息日下午14:00到18:00生效。

<VG> system-view

[VG] time-range test 14:00 to 18:00 off-day

1.2  IPv4 ACL命令

1.2.1  acl

【命令】

acl number acl-number [ name acl-name ] [ match-order { auto | config } ]

undo acl { all | name acl-name | number acl-number }

【视图】

系统视图

【参数】

acl-number:ACL的序号

l              2000~2999:基本IPv4 ACL;

l              3000~3999:高级IPv4 ACL;

l              4000~4999:二层ACL;

l              5000~5999:用户自定义ACL。

name acl-name:指定ACL的名称。acl-name表示IPv4 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv4 ACL的名称不可以使用英文单词all。

&  说明:

MSR 20系列路由器不支持取值范围5000~5999的用户自定义ACL。

 

match-order:指定规则的匹配顺序。

l              auto:按照“深度优先”的顺序进行规则匹配;

l              config:按照用户配置规则的先后顺序进行规则匹配。

all:所有的IPv4 ACL。

【描述】

acl命令用来创建IPv4 ACL并进入相应IPv4 ACL视图。undo acl命令用来删除指定的IPv4 ACL。

缺省情况下,IPv4 ACL的匹配顺序为config

用户也可以通过本命令修改一个已经存在的IPv4 ACL的匹配顺序,但必须在该IPv4 ACL中没有规则的时候修改,对已经有规则的IPv4 ACL是无法修改其匹配顺序的。

需要注意的是,

l              用户只能在创建IPv4 ACL时指定名称,ACL创建后不允许对名称进行修改或者删除。如果在创建时没有命名,则创建后也不能为其添加名称。

l              如果ACL序号所指定的IPv4 ACL不存在,则创建IPv4 ACL并进入IPv4 ACL视图。若命令中同时指定了名称,则指定的IPv4 ACL名称不能与已有IPv4 ACL名称重复,但允许与IPv6 ACL使用相同的名称。

l              如果ACL序号所指定的IPv4 ACL已经存在,则进入该IPv4 ACL视图。若命令中同时指定了名称,则该名称必须与序号所确定的IPv4 ACL名称保持一致。

l              创建用户自定义ACL的命令不带match-order参数,其匹配顺序只能为配置顺序。

【举例】

# 创建一个序号为2002的IPv4 ACL,未命名。

<VG> system-view

[VG] acl number 2000

[VG-acl-basic-2000]

# 创建一个序号为2002、名称为flow的IPv4 ACL。

<VG> system-view

[VG] acl number 2002 name flow

[VG-acl-basic-2002-flow]

# 使用ACL序号进入一个未命名的IPv4 ACL视图。

<VG> system-view

[VG] acl number 2000

[VG-acl-basic-2000]

# 使用ACL序号进入一个已命名的IPv4 ACL视图。

<VG> system-view

[VG] acl number 2002

[VG-acl-basic-2002-flow]

# 删除一个序号为2000的IPv4 ACL。

<VG> system-view

[VG] undo acl number 2000

# 删除一个名称为flow的IPv4 ACL。

<VG> system-view

[VG] undo acl name flow

1.2.2  acl copy

【命令】

acl copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }

【视图】

系统视图

【参数】

source-acl-number:源IPv4 ACL的序号,该IPv4 ACL必须存在。不同型号的设备支持的取值范围不同,请以设备的实际情况为准。

l              2000~2999:基本IPv4 ACL;

l              3000~3999:高级IPv4 ACL;

l              4000~4999:二层ACL;

l              5000~5999:用户自定义ACL。

source-acl-name:源IPv4 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv4 ACL的名称不可以使用英文单词all。

dest-acl-number:目的IPv4 ACL的序号,该IPv4 ACL必须不存在。不同型号的设备支持的取值范围不同,请以设备的实际情况为准。

l              2000~2999:基本IPv4 ACL;

l              3000~3999:高级IPv4 ACL;

l              4000~4999:二层ACL;

l              5000~5999:用户自定义ACL。

dest-acl-name:目的IPv4 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv4 ACL的名称不可以使用英文单词all。由于目的IPv4 ACL的名称没有对应的ACL序号,系统将自动为之分配与源IPv4 ACL序号属于同一类型的、可用的、一个最小的ACL序号。

【描述】

acl copy命令用来拷贝生成一个新的同类型的IPv4 ACL。生成的新的IPv4 ACL的匹配顺序、包含的匹配规则、步长以及描述信息都和源IPv4 ACL相同。

需要注意的是:

l              源IPv4 ACL和目的IPv4 ACL的类型要相同。

l              源IPv4 ACL的名称不会拷贝到目的IPv4 ACL。

【举例】

# 将ACL 2008拷贝生成ACL 2009。

<VG> system-view

[VG] acl copy 2008 to 2009

1.2.3  acl name

【命令】

acl name acl-name

【视图】

系统视图

【参数】

acl-name:IPv4 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv4 ACL的名称不可以使用英文单词all。

【描述】

acl name命令用来进入指定名称的IPv4 ACL视图。

需要注意的是,名称所指定的IPv4 ACL必须存在。

【举例】

# 使用ACL名称进入一个已命名的IPv4 ACL视图。

<VG> system-view

[VG] acl name flow

[VG-acl-basic-2002-flow]

1.2.4  description (for IPv4)

【命令】

description text

undo description

【视图】

基本IPv4 ACL视图/高级IPv4 ACL视图/二层ACL视图/用户自定义ACL视图

【参数】

text:IPv4 ACL的描述信息,为1~127个字符的字符串,区分大小写。

【描述】

description命令用来定义IPv4 ACL的描述信息,描述该IPv4 ACL的具体用途。undo description命令用来删除IPv4 ACL的描述信息。

缺省情况下,IPv4 ACL没有描述信息。

【举例】

# 定义IPv4 ACL 2000的描述信息。

<VG> system-view

[VG] acl number 2000

[VG-acl-basic-2000] description This acl is used in eth 0

# 定义IPv4 ACL 3000的描述信息。

<VG> system-view

[VG] acl number 3000

[VG-acl-adv-3000] description This acl is used in eth 0

# 定义ACL 4000的描述信息。

<VG> system-view

[VG] acl number 4000

[VG-acl-ethernetframe-4000] description This acl is used in eth 0

# 定义ACL 5000的描述信息。

<VG> system-view

[VG] acl number 5000

[VG-acl-user-5000] description This acl is used in eth 0

1.2.5  display acl

【命令】

display acl { acl-number | all | name acl-name }

【视图】

任意视图

【参数】

acl-number:ACL的序号。

l              2000~2999:基本IPv4 ACL;

l              3000~3999:高级IPv4 ACL;

l              4000~4999:二层ACL;

l              5000~5999:用户自定义ACL。

all:所有的IPv4 ACL。

name acl-name:指定ACL的名称。acl-name表示IPv4 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv4 ACL的名称不可以使用英文单词all。

&  说明:

MSR 20系列路由器不支持取值范围5000~5999的用户自定义ACL。

 

【描述】

display acl命令用来显示配置的IPv4 ACL的信息。

本命令会按照实际的匹配顺序显示IPv4 ACL的规则。

【举例】

# 显示IPv4 ACL 2001的内容。

<VG> 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 in eth 1

表1-2 display acl命令显示信息描述表

字段

描述

Basic acl  2001

该ACL属于基本IPv4ACL,序号为2001

named flow

该ACL的名称为flow

1 rule

该ACL包含1条规则

Acl's step is 5

该ACL的规则序号的步长值为5

5 times matched

该规则匹配的次数为5,仅统计软件IPv4 ACL的匹配次数

当匹配次数为0时,将不显示该字段

rule 5 comment This rule is used in eth 1

ACL规则5的描述信息为This rule is used in eth 1

 

1.2.6  reset acl counter

【命令】

reset acl counter { acl-number | all | name acl-name }

【视图】

用户视图

【参数】

acl-number:ACL。

l              2000~2999:基本IPv4 ACL;

l              3000~3999:高级IPv4 ACL;

l              4000~4999:二层ACL。

all:所有的IPv4 ACL,除了用户自定义ACL。

name acl-name:指定ACL的名称。acl-name表示IPv4 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv4 ACL的名称不可以使用英文单词all。

【描述】

reset acl counter命令用来清除IPv4 ACL的统计信息。

【举例】

# 清除IPv4 ACL2001的统计信息。

<VG> reset acl counter 2001

# 清除IPv4 ACL flow的统计信息。

<VG> reset acl counter name flow

1.2.7  rule (basic IPv4 ACL view)

【命令】

rule [ rule-id ] { deny | permit } [ fragment | logging | source { sour-addr sour-wildcard | any } | time-range time-name | vpn-instance vpn-instance-name ] *

undo rule rule-id [ fragment | logging | source | time-range | vpn-instance ] *

【视图】

基本IPv4 ACL视图

【参数】

rule-id:基本IPv4 ACL规则编号,取值范围为0~65534。

deny:表示丢弃符合条件的报文。

permit:表示允许符合条件的报文通过。

fragment:定义规则仅对非首片分片报文有效,而对非分片报文和首片分片报文无效。不包含此关键字的配置规则项对非分片报文和分片报文均有效。

logging:对符合条件的报文记录日志。(日志内容包括:ACL规则的序号、报文通过或被丢弃、IP承载的上层协议类型、源/目的地址、源/目的端口号、报文的数目。)

source { sour-addr sour-wildcard | any }:指定规则的源地址信息。sour-addr表示报文的源IP地址,sour-wildcard表示反掩码(当反掩码为0时代表主机地址),any表示任意源IP地址。

time-range time-name:指定规则生效的时间段。time-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all。

vpn-instance vpn-instance-name:指定VPN实例信息。vpn-instance-name表示VPN实例的名称,为1~31个字符的字符串,区分大小写。

【描述】

rule命令用来定义一个基本IPv4 ACL规则。undo rule命令用来删除一个基本IPv4 ACL规则或者规则的某些属性信息。

在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。如果undo rule命令后不指定参数,将删除整个IPv4 ACL规则,否则,将只删除IPv4 ACL规则相应的属性信息。

需要注意的是:

l              当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。

l              在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。关于步长的详细介绍请参考step命令。

l              新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。

l              当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。

【举例】

# 定义一个规则,禁止源地址为1.1.1.1的报文通过。

<VG> system-view

[VG] acl number 2000

[VG-acl-basic-2000] rule deny source 1.1.1.1 0

1.2.8  rule (advanced IPv4 ACL view)

【命令】

rule [ rule-id ] { deny | permit } protocol  [ destination { dest-addr dest-wildcard | any } | destination-port operator port1 [ port2 ] | dscp dscp | established | 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-name | tos tos | vpn-instance vpn-instance-name ] *

undo rule rule-id [ destination | destination-port | dscp | established | fragment | icmp-type | logging | precedence | reflective | source | source-port | time-range | tos | vpn-instance ] *

【视图】

高级IPv4 ACL视图

【参数】

rule-id:高级IPv4 ACL规则编号,取值范围为0~65534。

deny:表示丢弃符合条件的报文。

permit:表示允许符合条件的报文通过。

protocol:IP承载的协议类型。用数字表示时,取值范围为0~255;用名字表示时,可以选取gre(47)、icmp(1)、igmp(2)、ipipinip(4)、ospf(89)、tcp(6)、udp(17)。

protocol后可以配置的规则信息参数如下表所示。

表1-3 规则信息

参数

类别

作用

说明

source { sour-addr sour-wildcard | any }

源地址信息

指定ACL规则的源地址信息

sour-addr sour-wildcard用来确定报文的源IP地址,点分十进制表示,sour-wildcard表示反掩码,当反掩码为0时代表主机地址;any代表任意源IP地址

destination { dest-addr dest-wildcard | any }

目的地址信息

指定ACL规则的目的地址信息

dest-addr dest-wildcard用来确定报文的目的IP地址,点分十进制表示,dest-wildcard表示反掩码,当反掩码为0时代表主机地址;any代表任意目的IP地址

precedence precedence

报文优先级

IP优先级

precedence用数字表示时,取值范围为0~7;用文字表示时,分别对应routinepriorityimmediateflashflash-overridecriticalinternetnetwork

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;用文字表示时,可以选取af11af12af13af21af22af23af31af32af33af41af42af43cs1cs2cs3cs4cs5cs6cs7defaultef

logging

日志操作

对符合条件的报文记录日志

日志内容包括:

l      ACL规则的序号

l      报文通过或被丢弃

l      IP承载的上层协议类型

l      源/目的地址

l      源/目的端口号

l      报文的数目

reflective

自反标志

设置规则具有自反属性

具有自反属性的ACL规则仅支持TCP、UDP、ICMP三种协议类型;动作类型只支持permit

vpn-instance vpn-instance-name

VPN实例

指定VPN实例信息

vpn-instance-name:VPN实例的名称,为1~31个字符的字符串,区分大小写

fragment

分片信息

定义规则仅对非首片分片报文有效,而对非分片报文和首片分片报文无效

不包含此关键字的配置规则项对非分片报文和分片报文均有效

time-range time-name

时间段信息

指定规则生效的时间段

time-name:指定规则生效的时间段名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all

 

protocol类型选择为tcp或者udp时,用户还可以定义如下信息。

表1-4 TCP/UDP特有的规则信息

参数

类别

作用

说明

source-port operator port1 [ port2 ]

源端口

定义TCP/UDP报文的源端口信息

operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)、neq(不等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其他的只需要一个端口号做操作数

port1port2: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报文的目的端口信息

established

TCP连接建立标识

定义对TCP连接报文的处理规则

TCP协议特有的参数,定义规则匹配带有ack或者rst标志的TCP连接报文

 

protocol类型选择为icmp时,用户还可以定义如下信息。

表1-5 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-6所示

 

表1-6 ICMP消息名称与消息类型和消息码的对应关系

名称

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命令用来定义一个高级IPv4 ACL规则。undo rule命令用来删除一个高级IPv4 ACL规则或者规则的某些属性信息。

在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。如果undo rule命令后不指定参数,将删除整个IPv4 ACL规则,否则,将只删除IPv4 ACL规则相应的属性信息。

需要注意的是:

l              当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。

l              在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。关于步长的详细介绍请参考step命令。

l              新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。

l              当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。

【举例】

# 定义一条规则,允许从129.9.0.0网段的主机向202.38.160.0网段的主机发送的端口号为80的TCP报文通过。

<VG> system-view

[VG] acl number 3101

[VG-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

1.2.9  rule (Ethernet frame header ACL view)

【命令】

rule [ rule-id ] { deny | permit } [ cos vlan-pri | dest-mac dest-addr dest-mask | lsap lsap-code lsap-wildcard | source-mac sour-addr source-mask | time-range time-name | type type-code type-wildcard ] *

undo rule rule-id

【视图】

二层ACL视图

【参数】

rule-id:二层ACL规则编号,取值范围为0~65534。

deny:表示丢弃符合条件的报文。

permit:表示允许符合条件的报文通过。

cos vlan-pri:定义规则的802.1p优先级。vlan-pri表示802.1p优先级,用数字表示时,取值范围为0~7;用文字表示时,分别对应best-effortbackgroundspareexcellent-effortcontrolled-loadvideovoicenetwork-management

dest-mac dest-addr dest-mask:定义规则的目的MAC地址范围。dest-addr表示目的MAC地址,格式为xxxx-xxxx-xxxx。dest-mask表示目的MAC地址的掩码,格式为xxxx-xxxx-xxxx。

lsap lsap-code lsap-wildcard:定义规则中LLC封装中的DSAP字段和SSAP字段。lsap-code表示数据帧的封装格式,16比特的十六进制数。lsap-wildcard表示lsap值的掩码,16比特的十六进制数,用于指定屏蔽位。本参数的支持情况与设备的型号有关,请以设备的实际情况为准。

source-mac sour-addr source-mask:定义规则的源MAC地址范围。sour-addr表示源MAC地址,格式为xxxx-xxxx-xxxx。sour-mask表示源MAC地址的掩码,格式为xxxx-xxxx-xxxx。

time-range time-name:指定规则生效的时间段。time-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all。

type type-code type-wildcard:定义规则中的链路层协议类型。type-code表示16比特的十六进制数表征的数据帧的类型,对应Ethernet_II类型和Ethernet_SNAP类型帧中的type-code域。type-wildcard表示类型掩码,是一个16比特的十六进制数,用于指定屏蔽位。本参数的支持情况与设备的型号有关,请以设备的实际情况为准。

【描述】

rule命令用来定义一个二层ACL规则。undo rule命令用来删除一个二层ACL规则。

在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。

需要注意的是:

l              当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。

l              在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。关于步长的详细介绍请参考step命令。

l              新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。

l              当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。

【举例】

# 定义一个规则,禁止802.1p优先级为3的报文通过。

<VG> system-view

[VG] acl number 4000

[VG-acl-ethernetframe-4000] rule deny cos 3

1.2.10  rule (user-defined ACL view)

【命令】

rule [ rule-id ] { deny | permit } [ { l2 rule-string rule-mask offset }&<1-8> ] [ time-range time-name ]

undo rule rule-id

【视图】

用户自定义ACL视图

【参数】

rule-id:用户自定义ACL规则编号,取值范围为0~65534。

deny:表示丢弃符合条件的报文。

permit:表示允许符合条件的报文通过。

l2:从L2帧头开始偏移。

time-range指定此规则生效的时间段。

rule-string:用户自定义的规则字符串,必须是16进制数组成,字符长度必须是偶数。

rule-mask:规则字符串的掩码,用于和报文作“与”操作,必须是16进制数组成,字符长度必须是偶数,且rule-mask的长度必须和rule-string的长度相同。

offset:偏移量,它以用户指定的报文头部为基准,指定从第几个字节开始进行比较。

&<1-8>:表示一次最多可以定义8个这样的规则。

time-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,时间段的名字不可以使用英文单词all。

&  说明:

本命令各参数的支持情况与设备的型号有关,请以设备的实际情况为准。

 

【描述】

rule命令用来定义一个用户自定义ACL规则。undo rule命令用来删除一个用户自定义ACL规则。

在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。

需要注意的是:

l              和其他类型的IPv4 ACL不同,用户自定义ACL中包含的规则不支持修改,只能进行覆盖性配置。

l              新创建的规则不能和已经存在的规则相同,否则会导致创建不成功。

l              在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。关于步长的详细介绍请参考step命令。

&  说明:

本命令的支持情况与设备的型号有关,请以设备的实际情况为准。

 

【举例】

# 定义一个用户自定义ACL规则,允许从L2帧头开始算起第21、22两个字节的内容为0x0806的报文通过。

<VG> system-view

[VG] acl number 5005

[VG-acl-user-5005] rule 0 permit l2 0806 ffff 20

1.2.11  rule comment (for IPv4)

【命令】

rule rule-id comment text

undo rule rule-id comment

【视图】

基本IPv4 ACL视图/高级IPv4 ACL视图/二层ACL视图/用户自定义ACL视图

【参数】

rule-id:IPv4 ACL规则编号,取值范围为0~65534。

text:IPv4 ACL规则的描述信息,字符串格式,最多127个字符。

【描述】

rule comment命令用来定义IPv4 ACL规则的描述信息,描述该规则的用途、属性等提示信息。undo rule comment命令用来删除IPv4 ACL规则的描述信息。

缺省情况下,规则没有描述信息。

需要注意的是:

l              在使用rule comment命令为规则定义描述信息时,该规则必须存在。

l              在使用rule comment命令时,如果指定规则没有描述信息,则为其添加描述信息;如果指定规则已经存在描述信息,则修改其描述信息。

【举例】

# 为ACL 2000定义一条规则,并为规则定义一个描述信息。

<VG> system-view

[VG] acl number 2000

[VG-acl-basic-2000] rule 0 deny source 1.1.1.1 0

[VG-acl-basic-2000] rule 0 comment This rule is used in eth 1

# 为ACL 3000定义一条规则,并为规则定义一个描述信息。

<VG> system-view

[VG] acl number 3000

[VG-acl-adv-3000] rule 0 permit ip source 1.1.1.1 0

[VG-acl-adv-3000] rule 0 comment This rule is used in eth 1

# 为ACL 4000定义一条规则,并为规则定义一个描述信息。

<VG> system-view

[VG] acl number 4000

[VG-acl-ethernetframe-4000] rule 0 deny cos 3

[VG-acl-ethernetframe-4000] rule 0 comment This rule is used in eth 1

# 为ACL 5000定义一条规则,并为规则定义一个描述信息。

<VG> system-view

[VG] acl number 5000

[VG-acl-user-5000] rule 0 permit l2 14 20 10

[VG-acl-user-5000] rule 0 comment This rule is used in eth 1

1.2.12  step (for IPv4)

【命令】

step step-value

undo step

【视图】

基本IPv4 ACL视图/高级IPv4 ACL视图/二层ACL视图

【参数】

step-value:IPv4 ACL规则编号的步长值,取值范围为1~20。

【描述】

step命令用来为一个IPv4 ACL规则组中的规则序号指定一个步长。undo step命令用来把步长恢复为缺省值。

缺省情况下,步长为5。

步长的含义是:设备自动为IPv4 ACL规则分配编号的时候,每个规则编号之间的差值。例如如果步长设定为5,规则编号分配是按照0、5、10、15…这样的规律分配的。

当步长改变后,IPv4 ACL中的规则编号会自动重新排列。例如,原来规则编号为0、5、10、15,当通过命令step 2把步长改为2后,则规则编号变成0、2、4、6。

使用undo step命令将步长恢复为缺省值后,设备将立刻按照缺省步长调整IPv4 ACL规则的编号。例如:IPv4 ACL 3001,步长为5,用户在0号规则和5号规则之间插入了1号规则和3号规则,4个规则的编号为0、1、3、5。如果此时使用undo step命令将步长恢复为缺省值,则IPv4 ACL规则编号变成0、5、10、15,步长仍然为5。

使用步长设定的好处是用户可以方便地在规则之间插入新的规则。例如配置好了4个规则,规则编号为:0、5、10、15。此时如果用户希望能在第一条规则之后插入一条规则,则可以使用rule 1 xxxx命令在0和5之间插入一条编号为1的规则。

【举例】

# 把ACL 2000的步长改为2。

<VG> system-view

[VG] acl number 2000

[VG-acl-basic-2000] step 2

# 把ACL 3000的步长改为2。

<VG> system-view

[VG] acl number 3000

[VG-acl-adv-3000] step 2

# 把ACL 4000的步长改为2。

<VG> system-view

[VG] acl number 4000

[VG-acl-ethernetframe-4000] step 2

1.3  IPv6 ACL命令

1.3.1  acl ipv6

【命令】

acl ipv6 number acl6-number [ name acl6-name ] [ match-order { auto | config } ]

undo acl ipv6 { all | name acl6-name | number acl6-number }

【视图】

系统视图

【参数】

acl6-number:ACL的序号。

l              2000~2999:基本IPv6 ACL;

l              3000~3999:高级IPv6 ACL;

l              10000~42767:简单IPv6 ACL。

name acl6-name:指定ACL的名称。acl6-name表示IPv6 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv6 ACL的名称不可以使用英文单词all。

match-order:指定规则的匹配顺序。

l              auto:按照“深度优先”的顺序进行规则匹配;

l              config:按照用户配置的顺序进行规则匹配。

all:所有的IPv6 ACL。

【描述】

acl ipv6命令用来创建IPv6 ACL并进入相应IPv6 ACL视图。undo acl ipv6命令用来删除指定的IPv6 ACL。

缺省情况下,IPv6 ACL的匹配顺序为config

用户也可以通过本命令修改一个已经存在的IPv6 ACL的匹配顺序,但必须在该IPv6 ACL中没有规则的时候修改,对已经有规则的IPv6 ACL是无法修改其匹配顺序的。

需要注意的是,

l              用户只能在创建IPv6 ACL时指定名称,ACL创建后不允许对名称进行修改或者删除。如果在创建时没有命名,则创建后也不能为其添加名称。

l              如果ACL序号所指定的IPv6 ACL不存在,则创建IPv6 ACL并进入IPv6 ACL视图。若命令中同时指定了名称,则指定的IPv6 ACL名称不能与已有IPv6 ACL名称重复,但允许与IPv4 ACL使用相同的名称。

l              如果ACL序号所指定的IPv6 ACL已经存在,则进入该IPv6 ACL视图。若命令中同时指定了名称,则该名称必须与序号所确定的IPv6 ACL名称保持一致。

l              简单IPv6 ACL不支持命名,所以创建简单IPv6 ACL的命令不带name参数。

l              由于简单IPv6 ACL只能定义一条规则,不涉及匹配顺序,所以创建简单IPv6 ACL的命令不带match-order参数。

【举例】

# 创建一个序号为2002的IPv6 ACL,未命名。

<VG> system-view

[VG] acl ipv6 number 2002

[VG-acl6-basic-2002]

# 创建一个序号为2000、名称为flow的IPv6 ACL。

<VG> system-view

[VG] acl ipv6 number 2000 name flow

[VG-acl6-basic-2000-flow]

# 使用ACL序号进入一个未命名的IPv6 ACL视图。

<VG> system-view

[VG] acl ipv6 number 2000

[VG-acl6-basic-2000]

# 使用ACL序号进入一个已命名的IPv6 ACL视图。

<VG> system-view

[VG] acl ipv6 number 2002

[VG-acl6-basic-2002-flow]

# 删除一个序号为2000的IPv6 ACL。

<VG> system-view

[VG] undo acl ipv6 number 2000

# 删除一个名称为flow的IPv6 ACL。

<VG> system-view

[VG] undo acl ipv6 name flow

1.3.2  acl ipv6 copy

【命令】

acl ipv6 copy { source-acl6-number | name source-acl6-name } to { dest-acl6-number | name dest-acl6-name }

【视图】

系统视图

【参数】

source-acl6-number:源IPv6 ACL的序号,该IPv6 ACL必须存在。不同型号的设备支持的取值范围不同,请以设备的实际情况为准。

l              2000~2999:基本IPv6 ACL;

l              3000~3999:高级IPv6 ACL。

source-acl6-name:源IPv6 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv6 ACL的名称不可以使用英文单词all。

dest-acl6-number:目的IPv6 ACL的序号,该IPv6 ACL必须不存在。不同型号的设备支持的取值范围不同,请以设备的实际情况为准。

l              2000~2999:基本IPv6 ACL;

l              3000~3999:高级IPv6 ACL。

dest-acl6-name:目的IPv6 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv6 ACL的名称不可以使用英文单词all。由于目的IPv6 ACL的名称没有对应的ACL序号,系统将自动为之分配一个与源IPv6 ACL序号属于同一类型的、可用的、最小的ACL序号。

【描述】

acl ipv6 copy命令用来拷贝生成一个新的同类型的IPv6 ACL。生成的新的IPv6 ACL的匹配顺序、包含的匹配规则、步长以及描述信息都和源IPv6 ACL相同。

需要注意的是:

l              源IPv6 ACL和目的IPv6 ACL的类型要相同。

l              源IPv6 ACL的名称不会拷贝到目的IPv6 ACL。

l              简单型IPv6 ACL不支持拷贝操作。

【举例】

# 将ACL 2008拷贝生成ACL 2009。

<VG> system-view

[VG] acl ipv6 copy 2008 to 2009

1.3.3  acl ipv6 name

【命令】

acl ipv6 name acl6-name

【视图】

系统视图

【参数】

acl6-name:IPv6 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv6 ACL的名称不可以使用英文单词all。

【描述】

acl ipv6 name命令用来进入指定名称的IPv6 ACL视图。

需要注意的是,名称所指定的IPv6 ACL必须存在。

【举例】

# 使用ACL名称进入一个已命名的IPv6 ACL视图。

<VG> system-view

[VG] acl ipv6 name flow

[VG-acl6-basic-2002-flow]

1.3.4  description (for IPv6)

【命令】

description text

undo description

【视图】

基本IPv6 ACL视图/高级IPv6 ACL视图/简单IPv6 ACL视图

【参数】

text:IPv6 ACL的描述信息,长度为1~127个字符的字符串,区分大小写。

【描述】

description命令用来定义IPv6 ACL的描述信息,描述该IPv6 ACL的具体用途。undo description命令用来删除IPv6 ACL的描述信息。

缺省情况下,IPv6 ACL没有描述信息。

【举例】

# 定义IPv6 ACL 2000的描述信息。

<VG> system-view

[VG] acl ipv6 number 2000

[VG-acl6-basic-2000] description This acl is used in eth 0

# 定义IPv6 ACL 3000的描述信息。

<VG> system-view

[VG] acl ipv6 number 3000

[VG-acl6-adv-3000] description This acl is used in eth 0

# 定义IPv6 ACL 10000的描述信息。

<VG> system-view

[VG] acl ipv6 number 10000

[VG-acl6-simple-10000] description This acl is used in eth 0

1.3.5  display acl ipv6

【命令】

display acl ipv6 { acl6-number | all | name acl6-name }

【视图】

任意视图

【参数】

acl6-number:IPv6 ACL的序号。

l              2000~2999:基本IPv6 ACL;

l              3000~3999:高级IPv6 ACL;

l              10000~42767:简单IPv6 ACL。

all:所有的IPv6 ACL。

name acl6-name:指定ACL的名称。acl6-name表示IPv6 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv6 ACL的名称不可以使用英文单词all。

【描述】

display acl ipv6命令用来显示配置的IPv6 ACL的信息。

本命令会按照实际的匹配顺序显示IPv6 ACL的规则。

【举例】

# 显示IPv6 ACL 2001的内容。

<VG> display acl ipv6 2001

Basic IPv6 ACL  2001, named flow, 1 rule,

Acl's step is 5

rule 0 permit source 1::2/128 (0 times matched)

rule 0 comment This rule is used in eth 1

表1-7 display acl ipv6命令显示信息描述表

字段

描述

Basic IPv6 ACL  2001

该ACL属于基本IPv6 ACL,序号为2001

named flow

该ACL的名称为flow

1 rule

该ACL包含1条规则

Acl's step is 5

该ACL的规则序号的步长值为5

5 times matched

该规则匹配的次数为5,仅统计软件ACL的匹配次数

当匹配次数为0时,将不显示该字段

rule 0 comment This rule is used in eth 1

ACL规则0的描述信息为This rule is used in eth 1

 

1.3.6  reset acl ipv6 counter

【命令】

reset acl ipv6 counter { acl6-number | all | name acl6-name }

【视图】

用户视图

【参数】

acl6-number:IPv6 ACL的序号。

l              2000~2999:基本IPv6 ACL;

l              3000~3999:高级IPv6 ACL。

all:所有基本和高级IPv6 ACL。

name acl6-name:指定ACL的名称。acl6-name表示IPv6 ACL的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,IPv6 ACL的名称不可以使用英文单词all。

【描述】

reset acl ipv6 counter命令用来清除IPv6 ACL的统计信息。

【举例】

# 清除IPv6 ACL 2001的统计信息。

<VG> reset acl ipv6 counter 2001

# 清除IPv6 ACL flow的统计信息。

<VG> reset acl ipv6 counter name flow

1.3.7  rule (basic IPv6 ACL view)

【命令】

rule [ rule-id ] { deny | permit } [ fragment | logging | source { ipv6-address prefix-length | ipv6-address/prefix-length | any } | time-range time-name ] *

undo rule rule-id [ fragment | logging | source | time-range ] *

【视图】

基本IPv6 ACL视图

【参数】

rule-id:IPv6 ACL规则编号,取值范围为0~65534。

deny:表示丢弃符合条件的报文。

permit:表示允许符合条件的报文通过。

 fragment:定义规则仅对非首片分片报文有效,而对非分片报文和首片分片报文无效。不包含此关键字的配置规则项对非分片报文和分片报文均有效。

logging:对符合条件的报文记录日志。(日志内容包括:ACL规则的序号、报文通过或被丢弃、IP承载的上层协议类型、源/目的IPv6地址、源/目的端口号、报文的数目。)

source { ipv6-address prefix-length | ipv6-address/prefix-length | any }:指定规则的源IPv6地址信息。ipv6-address表示报文的源IPv6地址,prefix-length表示源IPv6地址前缀长度,取值范围为1~128。any表示任意源IPv6地址。

time-range time-name:指定规则生效的时间段。time-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all。

【描述】

rule命令用来定义一个IPv6 ACL规则。undo rule命令用来删除一个IPv6 ACL规则或者规则的某些属性信息。

在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl ipv6命令来查看。如果undo rule命令后不指定参数,将删除整个IPv6 ACL规则,否则,将只删除IPv6 ACL规则相应的属性信息。

需要注意的是:

l              当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。

l              在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。关于步长的详细介绍请参考step命令。

l              新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或编辑不成功,系统会提示该规则已经存在。

l              当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。

&  说明:

本命令的支持情况与设备的型号有关,请以设备的实际情况为准。

 

【举例】

# 创建IPV6 ACL 2000,并配置规则。

<VG> system-view

[VG] acl ipv6 number 2000

[VG-acl6-basic-2000] rule permit source 2030:5060::9050/64

[VG-acl6-basic-2000] rule 8 deny source fe80:5060::8050/96

1.3.8  rule (advanced IPv6 ACL view)

【命令】

rule [ rule-id ] { deny | permit } protocol [ destination { dest dest-prefix | dest/dest-prefix | any } | destination-port operator port1 [ port2 ] | dscp dscp | fragment | icmpv6-type { icmpv6-type icmpv6-code | icmpv6-message } | logging | source { source source-prefix | source/source-prefix | any } | source-port operator port1 [ port2 ] | time-range time-name ] *

undo rule rule-id [ destination | destination-port | dscp | fragment | icmpv6-type | logging | source | source-port | time-range ] *

【视图】

高级IPv6 ACL视图

【参数】

rule-id:IPv6 ACL规则编号,取值范围为0~65534。

deny:表示丢弃符合条件的报文。

permit:表示允许符合条件的报文通过。

protocol:IP v6承载的协议类型。用数字表示时,取值范围为0~255;用名字表示时,可以选取gre(47)、icmpv6(58)、ipv6ipv6-ah(51)、ipv6-esp(50)、ospf(89)、tcp(6)、udp(17)。

protocol后可以配置的规则信息参数如下表所示。

表1-8 规则信息

参数

类别

作用

说明

source { source source-prefix | source/source-prefix | any }

源IPv6地址信息

指定IPv6 ACL规则的源IPv6地址信息

source:报文的源IPv6地址

source-prefix:源IPv6地址前缀长度,取值范围1~128

any:代表任意源IPv6地址

destination { dest dest-prefix | dest/dest-prefix | any }

目的IPv6地址信息

指定IPv6 ACL规则的目的IPv6地址信息

dest:报文的目的IPv6地址

dest-prefix:目的IPv6地址前缀长度,取值范围1~128

any:代表任意目的IPv6地址

dscp dscp

报文优先级

DSCP优先级

dscp用数字表示时,取值范围为0~63;用文字表示时,可以选取af11af12af13af21af22af23af31af32af33af41af42af43cs1cs2cs3cs4cs5cs6cs7defaultef

logging

日志操作

对符合条件的报文记录日志

日志内容包括:

l      ACL规则的序号

l      报文通过或被丢弃

l      IP承载的上层协议类型

l      源/目的IPv6地址

l      源/目的端口号

l      报文的数目

fragment

分片信息

定义规则仅对非首片分片报文有效,而对非分片报文和首片分片报文无效

不包含此关键字的配置规则项对非分片报文和分片报文均有效

time-range time-name

时间段信息

指定规则生效的时间段

time-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,时间段的名字不可以使用英文单词all

 

protocol选择为tcp或者udp时,用户还可以定义如下信息。

表1-9 TCP/UDP特有的规则信息

参数

类别

作用

说明

source-port operator port1 [ port2 ]

源端口

定义TCP/UDP报文的源端口信息

operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)、neq(不等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其他的只需要一个端口号做操作数

port1port2: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报文的目的端口信息

 

protocol选择为icmpv6时,用户还可以定义如下信息。

表1-10 ICMPv6特有的规则信息

参数

类别

作用

说明

icmpv6-type { icmpv6-type icmpv6-code | icmpv6-message }

ICMPv6报文的消息类型和消息码信息

指定规则的ICMPv6报文的消息类型和消息码信息

icmpv6-type:ICMPv6消息类型,取值范围为0~255。

icmpv6-code:ICMPv6的消息码,取值范围为0~255。

icmpv6-message:ICMPv6消息的名称。可以输入的ICMPv6消息名称,及其与消息类型和消息码的对应关系如1-11所示。

 

表1-11 ICMPv6消息名称与消息类型和消息码的对应关系

名称

ICMPv6 TYPE

ICMPv6 CODE

redirect

Type=137

Code=0

echo-request

Type=128

Code=0

echo-reply

Type=129

Code=0

err-Header-field

Type=4

Code=0

frag-time-exceeded

Type=3

Code=1

hop-limit-exceeded

Type=3

Code=0

host-admin-prohib

Type=1

Code=1

host-unreachable

Type=1

Code=3

neighbor-advertisement

Type=136

Code=0

neighbor-solicitation

Type=135

Code=0

network-unreachable

Type=1

Code=0

packet-too-big

Type=2

Code=0

port-unreachable

Type=1

Code=4

router-advertisement

Type=134

Code=0

router-solicitation

Type=133

Code=0

unknown-ipv6-opt

Type=4

Code=2

unknown-next-hdr

Type=4

Code=1

 

【描述】

rule命令用来定义一个IPv6 ACL规则。undo rule命令用来删除一个IPv6 ACL规则或者规则的某些属性信息。

在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl ipv6命令来查看。如果undo rule命令后不指定参数,将删除整个IPv6 ACL规则,否则,将只删除IPv6 ACL规则相应的属性信息。

需要注意的是:

l              当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。

l              在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。关于步长的详细介绍请参考step命令。

l              新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。

l              当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。

&  说明:

本命令的支持情况与设备的型号有关,请以设备的实际情况为准。

 

【举例】

# 创建IPv6 ACL 3000,允许源IPv6地址为2030:5060::9050/64的TCP报文通过。

<VG> system-view

[VG] acl ipv6 number 3000

[VG-acl6-adv-3000] rule permit tcp source 2030:5060::9050/64

1.3.9  rule (simple IPv6 ACL view)

【命令】

rule protocol [ addr-flag addr-flag | destination { dest dest-prefix | dest/dest-prefix | any } | destination-port operator port1 [ port2 ] | dscp dscp | frag-type { fragment | fragment-subseq | non-fragment | non-subseq } | icmpv6-type { icmpv6-type icmpv6-code | icmpv6-message } | source { source source-prefix | source/source-prefix | any } | source-port operator port1 [ port2 ] | tcp-type { tcpurg | tcpack | tcppsh | tcprst | tcpsyn | tcpfin } ] *

undo rule [ addr-flag | destination | destination-port | dscp | frag-type | icmp6-type | source | source-port | tcp-type ] *

【视图】

简单IPv6 ACL视图

【参数】

protocol:IP v6承载的协议类型。用数字表示时,取值范围为0~255,前面必须加关键字protocol;用名字表示时,可以选取gre(47)、icmpv6(58)、ipv6ipv6-ah(51)、ipv6-esp(50)、ospf(89)、tcp(6)、udp(17)。

protocol后可以配置选择的规则信息参数如下表所示。

表1-12 规则信息

参数

类别

作用

说明

addr-flag addr-flag

标志

定义源IPv6地址和目的IPv6地址联合模式

addr-flag:取值范围为1~6,各数字表示的地址联合模式含义如下:

l      1:64位源地址前缀+64位目的地址前缀

l      2:64位源地址前缀+64位目的地址后缀

l      3:64位源地址后缀+64位目的地址前缀

l      4:64位源地址后缀+64位目的地址后缀

l      5:128位源地址

l      6:128位目的地址

source { source source-prefix | source/source-prefix | any }

源IPv6地址信息

指定IPv6 ACL规则的源IPv6地址信息

source:报文的源IPv6地址;

source-prefix:源IPv6地址前缀长度,取值范围1~128;

any:代表任意源IPv6地址。

destination { dest dest-prefix | dest/dest-prefix | any }

目的IPv6地址信息

指定IPv6 ACL规则的目的IPv6地址信息

dest:报文的目的IPv6地址;

dest-prefix:目的IPv6地址前缀长度,取值范围1~128;

any:代表任意目的IPv6地址。

frag-type { fragment | fragment-subseq | non-fragment | non-subseq }

分片标志

定义规则仅对哪些分片报文标志有效

fragment:仅对分片的首片报文有效

fragment-subseq:仅对非首片分片报文有效

non-fragment:仅对非分片报文有效

non-subseq:仅对目前分片报文的最后一片有效

dscp dscp

报文优先级

DSCP优先级

dscp:取值范围为0~63。

 

protocol选择为tcp或者udp时,用户还可以定义如下信息。

表1-13 TCP/UDP特有的规则信息

参数

类别

作用

说明

source-port operator port1 [ port2 ]

源端口

定义TCP/UDP报文的源端口信息

operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其他的只需要一个端口号做操作数。

port1port2: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报文的目的端口信息

tcp-type { tcpurg | tcpack | tcppsh | tcprst | tcpsyn | tcpfin }

TCP报文的标志

定义TCP报文的标志

仅在协议选择为TCP时有效。

 

protocol选择为icmpv6时,用户还可以定义如下信息。

表1-14 ICMPv6特有的规则信息

参数

类别

作用

说明

icmpv6-type { icmpv6-type icmpv6-code | icmpv6-message }

ICMPv6报文的消息类型和消息码信息

指定规则的ICMPv6报文的消息类型和消息码信息

icmpv6-type:ICMPv6消息类型,取值范围为0~255。

icmpv6-code:ICMPv6的消息码,取值范围为0~255。

icmpv6-message:ICMPv6消息的名称。可以输入的ICMPv6消息名称,及其与消息类型和消息码的对应关系如1-15所示。

 

表1-15 ICMPv6消息名称与消息类型和消息码的对应关系

名称

ICMPv6 TYPE

ICMPv6 CODE

redirect

Type=137

Code=0

echo-request

Type=128

Code=0

echo-reply

Type=129

Code=0

err-Header-field

Type=4

Code=0

frag-time-exceeded

Type=3

Code=1

hop-limit-exceeded

Type=3

Code=0

host-admin-prohib

Type=1

Code=1

host-unreachable

Type=1

Code=3

neighbor-advertisement

Type=136

Code=0

neighbor-solicitation

Type=135

Code=0

network-unreachable

Type=1

Code=0

packet-too-big

Type=2

Code=0

port-unreachable

Type=1

Code=4

router-advertisement

Type=134

Code=0

router-solicitation

Type=133

Code=0

unknown-ipv6-opt

Type=4

Code=2

unknown-next-hdr

Type=4

Code=1

 

【描述】

rule命令用来定义一个IPv6 ACL的规则。undo rule命令用来删除一个IPv6 ACL规则或者规则的某些属性信息。

如果undo rule命令后不指定参数,将删除整个IPv6 ACL规则,否则,将只删除IPv6 ACL规则相应的属性信息。

【举例】

# 创建IPv6 ACL 10000,匹配来源于2200::100/64的带有TCP RST标志的TCP报文。

<VG> system-view

[VG] acl ipv6 number 10000

[VG-acl6-simple-10000] rule tcp addr-flag 4 source 2200::100/64 tcp-type tcprst

1.3.10  rule comment (for IPv6)

【命令】

rule rule-id comment text

undo rule rule-id comment

【视图】

基本IPv6 ACL视图/高级IPv6 ACL视图

【参数】

rule-id:IPv6 ACL规则编号,取值范围为0~65534。

text:IPv6 ACL规则的描述信息,为1~127个字符的字符串,区分大小写。

【描述】

rule comment命令用来定义IPv6 ACL规则的描述信息,描述该规则的用途、属性等提示信息。undo rule comment命令用来删除IPv6 ACL规则的描述信息。

缺省情况下,规则没有描述信息。

需要注意的是:

l              在使用rule comment命令为规则定义描述信息时,该规则必须存在。

l              在使用rule comment命令时,如果指定规则没有描述信息,则为其添加描述信息;如果指定规则已经存在描述信息,则修改其描述信息。

【举例】

# 为IPV6 ACL 2000定义一条规则,并为规则定义一个描述信息。

<VG> system-view

[VG] acl ipv6 number 2000

[VG-acl6-basic-2000] rule 0 permit source 2030:5060::9050/64

[VG-acl6-basic-2000] rule 0 comment This rule is used in eth 1

# 为IPV6 ACL 3000定义一条规则,并为规则定义一个描述信息。

<VG> system-view

[VG] acl ipv6 number 3000

[VG-acl6-adv-3000] rule 0 permit tcp source 2030:5060::9050/64

[VG-acl6-adv-3000] rule 0 comment This rule is used in eth 1

1.3.11  step (for IPv6)

【命令】

step step-value

undo step

【视图】

基本IPv6 ACL视图/高级IPv6 ACL视图

【参数】

step-value:IPv6 ACL规则序号的步长值,取值范围为1~20。

【描述】

step命令用来为一个IPv6 ACL规则组中的规则序号指定一个步长。undo step命令用来把步长值恢复为缺省值。

缺省情况下,步长为5。

步长的含义是:设备自动为IPv6 ACL规则分配编号的时候,每个规则相邻编号之间的差值。例如如果步长设定为5,规则编号分配是按照0、5、10、15…这样的规律分配的。

当步长改变后,IPv6 ACL下面的规则编号会自动重新排列。例如,原来规则编号为0、5、10、15,当通过命令step 2把步长改为2后,则规则编号变成0、2、4、6。

使用undo step命令将步长恢复为缺省值后,设备将立刻按照缺省步长调整IPv6 ACL规则的编号。例如:IPv6 ACL 3001,步长为5,用户在0号规则和5号规则之间插入了1号规则和3号规则,4个规则的编号为0、1、3、5。如果此时使用undo step命令将步长恢复为缺省值,则IPv6 ACL规则编号变成0、5、10、15,步长仍然为5。

使用步长设定的好处是用户可以方便在规则之间插入新的规则。例如配置好了4个规则,规则编号为:0、5、10、15。此时如果用户希望能在第一条规则之后插入一条规则,则可以使用rule 1 xxxx命令在0和5之间插入一条编号为1的规则。

【举例】

# 把IPv6 ACL 2000的步长改为2。

<VG> system-view

[VG] acl ipv6 number 2000

[VG-acl6-basic-2000] step 2

# 把IPv6 ACL 3000的步长改为2。

<VG> system-view

[VG] acl ipv6 number 3000

[VG-acl6-adv-3000] step 2

 

 

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们