01-ACL命令
本章节下载: 01-ACL命令 (811.29 KB)
目 录
1.1.6 acl exact-match template
1.1.11 display acl exact-match template
1.1.13 display packet-filter statistics
1.1.14 display packet-filter statistics sum
1.1.15 display packet-filter verbose
1.1.16 display qos-acl resource
1.1.18 packet-filter (interface view)
1.1.19 packet-filter default deny
1.1.22 qos-acl resource hardware-mode
1.1.23 qos-acl resource share-mode
1.1.25 reset packet-filter statistics
1.1.26 rule icmp (IPv4 advanced ACL view)
1.1.27 rule udp (IPv4 advanced ACL view)
1.1.28 rule tcp (IPv4 advanced ACL view)
1.1.29 rule { gre | igmp | ip | ipinip | ospf } (IPv4 advanced ACL view)
1.1.30 rule geneve (IPv4 advanced ACL view)
1.1.31 rule (IPv4 basic ACL view)
1.1.32 rule icmpv6 (IPv6 advanced ACL view)
1.1.33 rule tcp (IPv6 advanced ACL view)
1.1.34 rule udp (IPv6 advanced ACL view)
1.1.35 rule { gre | ipv6 | ipv6-ah | ipv6-esp | ospf } (IPv6 advanced ACL view)
1.1.36 rule { geneve | geneve-ipv6 } (IPv6 advanced ACL view)
1.1.37 rule (IPv6 basic ACL view)
1.1.38 rule (Layer 2 ACL view)
1.1.39 rule (user-defined ACL view)
1.1.40 rule dual-stack(user-defined ACL view)
acl advanced命令用来创建高级ACL,并进入高级ACL视图。如果指定的高级ACL已存在,则直接进入高级ACL视图。
undo acl advanced命令用来删除指定或全部高级ACL。
【命令】
指定number创建IPv4高级ACL:
acl { name acl-name | number acl-number [ name acl-name ] [ match-order { auto | config } ] }
undo acl { all | name acl-name | number acl-number }
指定number创建IPv6高级ACL:
acl ipv6 { name acl-name | number acl-number [ name acl-name ] [ match-order { auto | config } ] }
undo acl ipv6 { all | name acl-name | number acl-number }
指定advanced创建IPv4高级ACL:
acl advanced { acl-number | name acl-name } [ match-order { auto | config } ]
undo acl { all | advanced { acl-number | name acl-name } }
指定advanced创建IPv6高级ACL:
acl ipv6 advanced { acl-number | name acl-name } [ match-order { auto | config } ]
undo acl ipv6 { all | advanced { acl-number | name acl-name } }
【缺省情况】
不存在ACL。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
ipv6:指定ACL类型为IPv6 ACL。如果未指定本参数,则表示IPv4 ACL。
number acl-number:指定高级ACL的编号。
acl-number表示高级ACL的编号,取值范围为3000~3999。
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不允许使用英文单词all。
match-order { auto | config }:指定规则的匹配顺序,auto表示按照自动排序(即“深度优先”原则)的顺序进行规则匹配,config表示按照配置顺序进行规则匹配。缺省情况下,规则的匹配顺序为配置顺序。
all:指定类型中全部ACL。
【使用指导】
指定number创建的高级ACL,可以通过如下命令进入其视图:
· acl [ ipv6 ] number acl-number;
· acl [ ipv6 ] advanced acl-number。
通过acl [ ipv6 ] number acl-number name acl-name命令指定number和name创建的高级ACL,可以使用如下命令进入其视图:
· acl [ ipv6 ] name acl-name,本命令仅支持进入已创建的高级ACL视图;
· acl [ ipv6 ] number acl-number [ name acl-name ];
· acl [ ipv6 ] advanced name acl-name。
通过acl [ ipv6 ] advanced name acl-name命令指定name创建的高级ACL,可以使用如下命令进入其视图:
· acl [ ipv6 ] name acl-name,本命令仅支持进入已创建的高级ACL视图;
· acl [ ipv6 ] advanced name acl-name。
当ACL内不存在任何规则时,用户可以使用本命令对该ACL的规则匹配顺序进行修改,否则不允许修改。
【举例】
# 创建一个编号为3000的IPv4高级ACL,并进入其视图。
<Sysname> system-view
[Sysname] acl advanced 3000
[Sysname-acl-ipv4-adv-3000]
# 创建一个IPv6高级ACL,其名称为abc,并进入其视图。
<Sysname> system-view
[Sysname] acl ipv6 advanced name abc
[Sysname-acl-ipv6-adv-abc]
【相关命令】
· display acl
acl basic命令用来创建基本ACL,并进入基本ACL视图。如果指定的基本ACL已存在,则直接进入基本ACL视图。
undo acl basic命令用来删除指定或全部基本ACL。
【命令】
指定number创建IPv4基本ACL:
acl { name acl-name | number acl-number [ name acl-name ] [ match-order { auto | config } ] }
undo acl { all | name acl-name | number acl-number }
指定number创建IPv6基本ACL:
acl ipv6 { name acl-name | number acl-number [ name acl-name ] [ match-order { auto | config } ] }
undo acl ipv6 { all | name acl-name | number acl-number }
指定basic创建IPv4基本ACL:
acl basic { acl-number | name acl-name } [ match-order { auto | config } ]
undo acl { all | basic { acl-number | name acl-name } }
指定basic创建IPv6基本ACL:
acl ipv6 basic { acl-number | name acl-name } [ match-order { auto | config } ]
undo acl ipv6 { all | basic { acl-number | name acl-name } }
【缺省情况】
不存在ACL。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
ipv6:指定ACL类型为IPv6 ACL。如果未指定本参数,则表示IPv4 ACL。
number acl-number:指定基本ACL的编号。
acl-number表示基本ACL的编号,取值范围为2000~2999。
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不允许使用英文单词all。
match-order { auto | config }:指定规则的匹配顺序,auto表示按照自动排序(即“深度优先”原则)的顺序进行规则匹配,config表示按照配置顺序进行规则匹配。缺省情况下,规则的匹配顺序为配置顺序。
all:指定类型中全部ACL。
【使用指导】
指定number创建的基本ACL,可以通过如下命令进入其视图:
· acl [ ipv6 ] number acl-number;
· acl [ ipv6 ] basic acl-number。
通过acl [ ipv6 ] number acl-number name acl-name命令指定number和name创建的基本ACL,可以使用如下命令进入其视图:
· acl [ ipv6 ] name acl-name,本命令仅支持进入已创建的基本ACL视图;
· acl [ ipv6 ] number acl-number [ name acl-name ];
· acl [ ipv6 ] basic name acl-name。
通过acl [ ipv6 ] basic name acl-name命令指定name创建的基本ACL,可以使用如下命令进入其视图:
· acl [ ipv6 ] name acl-name,本命令仅支持进入已创建的基本ACL视图;
· acl [ ipv6 ] basic name acl-name。
当ACL内不存在任何规则时,用户可以使用本命令对该ACL的规则匹配顺序进行修改,否则不允许修改。
【举例】
# 创建一个编号为2000的IPv4基本ACL,并进入其视图。
<Sysname> system-view
[Sysname] acl basic 2000
[Sysname-acl-ipv4-basic-2000]
# 创建一个IPv4基本ACL,指定其名称为flow,并进入其视图。
<Sysname> system-view
[Sysname] acl basic name flow
[Sysname-acl-ipv4-basic-flow]
# 创建一个编号为2000的IPv6基本ACL,并进入其视图。
<Sysname> system-view
[Sysname] acl ipv6 basic 2000
[Sysname-acl-ipv6-basic-2000]
# 创建一个IPv6基本ACL,其名称为flow,并进入其视图。
<Sysname> system-view
[Sysname] acl ipv6 basic name flow
[Sysname-acl-ipv6-basic-flow]
【相关命令】
· display acl
acl user-defined命令用来创建用户自定义ACL,并进入用户自定义ACL视图。如果指定的用户自定义ACL已存在,则直接进入用户自定义ACL视图。
undo acl命令用来删除指定或全部用户自定义ACL。
【命令】
指定number创建用户自定义ACL:
acl { name acl-name | number acl-number [ name acl-name ] }
undo acl { all | name acl-name | number acl-number }
指定user-defined创建用户自定义ACL:
acl user-defined { acl-number | name acl-name }
undo acl user-defined { all | acl-number | name acl-name }
【缺省情况】
不存在ACL。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
number acl-number:指定用户自定义ACL的编号。
acl-number表示用户自定义ACL的编号,取值范围为5000~5999:
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不允许使用英文单词all。
all:指定类型中全部ACL。
【使用指导】
指定number创建的用户自定义ACL,可以通过如下命令进入其视图:
· acl number acl-number;
· acl user-defined acl-number。
通过acl number acl-number name acl-name命令指定number和name创建的用户自定义ACL,可以使用如下命令进入其视图:
· acl number acl-number [ name acl-name ];
· acl user-defined name acl-name。
通过acl user-defined name acl-name命令指定name创建的用户自定义ACL,只能通过acl user-defined name acl-name命令进入其视图。
当ACL内不存在任何规则时,用户可以使用本命令对该ACL的规则匹配顺序进行修改,否则不允许修改。
【举例】
# 创建一个编号为5000的用户自定义ACL,并进入其视图。
<Sysname> system-view
[Sysname] acl user-defined 5000
[Sysname-acl-user-5000]
# 创建一个用户自定义ACL,其名称为flow,并进入其视图。
<Sysname> system-view
[Sysname] acl user-defined name flow
[Sysname-acl-user-flow]
【相关命令】
· display acl
acl mac命令用来创建二层ACL,并进入二层ACL视图。如果指定的二层ACL已存在,则直接进入二层ACL视图。
undo acl命令用来删除指定或全部二层ACL。
【命令】
指定number创建二层ACL:
acl { name acl-name | number acl-number [ name acl-name ] [ match-order { auto | config } ] }
undo acl { all | name acl-name | number acl-number }
指定mac创建二层ACL:
acl mac { acl-number | name acl-name } [ match-order { auto | config } ]
undo acl mac { all | acl-number | name acl-name }
【缺省情况】
不存在ACL。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
number acl-number:指定二层ACL的编号。
acl-number表示二层ACL的编号,取值范围为4000~4999。
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不允许使用英文单词all。
match-order { auto | config }:指定规则的匹配顺序,auto表示按照自动排序(即“深度优先”原则)的顺序进行规则匹配,config表示按照配置顺序进行规则匹配。缺省情况下,规则的匹配顺序为配置顺序。
all:指定类型中全部ACL。
【使用指导】
指定number创建的二层ACL,可以通过如下命令进入其视图:
· acl number acl-number;
· acl mac acl-number。
通过acl number acl-number name acl-name命令指定number和name创建的二层ACL,可以使用如下命令进入其视图:
· acl number acl-number [ name acl-name ];
· acl mac name acl-name。
通过acl mac name acl-name命令指定name创建的二层ACL,只能通过acl mac name acl-name命令进入其视图。
当ACL内不存在任何规则时,用户可以使用本命令对该ACL的规则匹配顺序进行修改,否则不允许修改。
【举例】
# 创建一个编号为4000的二层ACL,并进入其视图。
<Sysname> system-view
[Sysname] acl mac 4000
[Sysname-acl-mac-4000]
# 创建一个二层ACL,其名称为flow,并进入其视图。
<Sysname> system-view
[Sysname] acl mac name flow
[Sysname-acl-mac-flow]
【相关命令】
· display acl
acl copy命令用来复制并生成一个新的ACL。
【命令】
acl [ ipv6 | mac | user-defined ] copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
source-acl-number:指定源ACL的编号,该ACL必须存在。本参数的取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
name source-acl-name:指定源ACL的名称,该ACL必须存在。source-acl-name为1~63个字符的字符串,不区分大小写。
dest-acl-number:指定目的ACL的编号,该ACL必须不存在。本参数的取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
name dest-acl-name:指定目的ACL的名称,该ACL必须不存在。dest-acl-name为1~63个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不允许使用英文单词all。
【使用指导】
目的ACL的类型要与源ACL的类型相同。
当通过编号指定源或目的ACL时:
· 如果编号在2000~3999范围内,对于IPv6 ACL,必须输入ipv6关键字,否则表示IPv4 ACL。
· 如果编号在4000~4999范围内,可以不输入mac关键字,直接指定编号。
· 如果编号在5000~5999范围内,可以不输入user-defined关键字,直接指定编号。
当通过名称指定源或目的ACL时,对于IPv6、二层或用户自定义ACL,必须输入ipv6、mac或user-defined关键字,否则表示IPv4 ACL。
除了ACL的编号或名称不同外,新生成的ACL(即目的ACL)的匹配顺序、规则匹配软件统计功能的开启情况、规则编号的步长、所包含的规则、规则的描述信息以及ACL的描述信息等都与源ACL的相同。
【举例】
# 通过复制已存在的IPv4基本ACL 2001,来生成一个新的编号为2002的同类型ACL。
<Sysname> system-view
[Sysname] acl copy 2001 to 2002
# 通过复制已存在的IPv4基本ACL test,来生成名为paste的同类型ACL。
<Sysname> system-view
[Sysname] acl copy name test to name paste
acl exact-match template命令用来创建EM模板,并进入EM模板视图。如果指定的EM模板已存在,则直接进入该EM模板视图。
undo acl exact-match template命令用来删除指定的EM模板。
【命令】
acl exact-match template template-id
undo acl exact-match template template-id
【缺省情况】
不存在EM模板。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
template template-id:EM模板ID,取值范围为1~2。
【使用指导】
EM(Exact Match,精确匹配)模板是一种匹配规则的模板,可以用于匹配ACL中的rule命令指定的匹配规则或者QoS流分类视图下if-match命令指定的匹配条件,当上述匹配规则或匹配条件和EM模板视图下exact-match命令配置的匹配规则一一对应时,则可以使用EM资源进行报文匹配处理。使用EM资源进行报文匹配处理可以提升设备进行报文匹配的规格数量。
例如,IPv4高级ACL视图下的rule命令指定了destination、destination-port、protocol、source、source-port参数,同时EM模板下exact-match命令指定了ipv4、destination-ip、destination-port、protocol、source-ip、source-port参数时,IPv4高级ACL规则与EM模板下的匹配规则一一对应,则该ACL规则被MQC方式的QoS策略或报文过滤等业务模块引用时可以使用EM资源进行处理。
【举例】
# 创建ID为1的EM模板,并进入EM模板视图。
<Sysname> system-view
[Sysname] acl exact-match template 1
[Sysname-acl-exact-match-1]
【相关命令】
· display acl exact-match template
acl logging interval命令用来配置报文过滤日志信息的生成与发送周期。
undo acl logging interval命令用来恢复缺省情况。
【命令】
acl logging interval interval
undo acl logging interval
【缺省情况】
报文过滤日志信息的生成与发送周期为0分钟,即不记录报文过滤的日志。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
interval:报文过滤日志信息的生成与发送周期,取值范围为0~1440,且必须为5的整数倍,0表示不进行记录,单位为分钟。
【使用指导】
系统只支持对应用IPv4基本ACL、IPv4高级ACL、IPv6基本ACL或IPv6高级ACL进行报文过滤的报文过滤日志信息进行记录。
当ACL中配置规则时指定logging参数,在一个周期内,对于规则匹配数据流的数据包,设备将在周期结束后生成报文过滤日志并发送到信息中心。
当ACL中配置规则时指定flow-logging参数,在一个周期内:
· 对于规则匹配数据流的第一个数据包,设备会立即生成报文过滤日志并发送到信息中心;
· 对于规则匹配数据流的其他数据包,设备将在周期结束后生成报文过滤日志并发送到信息中心。
有关信息中心的详细介绍请参见“网络管理和监控配置指导”中的“信息中心”。
【举例】
# 配置IPv4报文过滤日志的生成与发送周期为10分钟。
<Sysname> system-view
[Sysname] acl logging interval 10
【相关命令】
· rule (IPv4 advanced ACL view)
· rule (IPv4 basic ACL view)
· rule (IPv6 advanced ACL view)
· rule (IPv6 basic ACL view)
acl trap interval命令用来配置报文过滤告警信息的生成与发送周期。
undo acl trap interval命令用来恢复缺省情况。
【命令】
acl trap interval interval
undo acl trap interval
【缺省情况】
报文过滤告警信息的生成与发送周期为0分钟,即不记录报文过滤的告警信息。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
interval:报文过滤告警信息的生成与发送周期,取值范围为0~1440,且必须为5的整数倍,0表示不进行记录,单位为分钟。
【使用指导】
系统只支持对应用IPv4基本ACL、IPv4高级ACL、IPv6基本ACL或IPv6高级ACL进行报文过滤的报文过滤告警信息进行记录。
当ACL中配置规则时指定logging参数,在一个周期内,对于规则匹配数据流的数据包,设备将在周期结束后生成报文过滤日志并发送到信息中心。
当ACL中配置规则时指定flow-logging参数,在一个周期内:
· 对于规则匹配数据流的第一个数据包,设备会立即生成报文过滤日志并发送到信息中心;
· 对于规则匹配数据流的其他数据包,设备将在周期结束后生成报文过滤日志并发送到信息中心。
有关SNMP的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
【举例】
# 配置IPv4报文过滤告警信息的生成与发送周期为10分钟。
<Sysname> system-view
[Sysname] acl trap interval 10
【相关命令】
· rule (IPv4 advanced ACL view)
· rule (IPv4 basic ACL view)
· rule (IPv6 advanced ACL view)
· rule (IPv6 basic ACL view)
description命令用来配置ACL的描述信息。
undo description命令用来删除ACL的描述信息。
【命令】
description text
undo description
【缺省情况】
ACL没有任何描述信息。
【视图】
IPv4基本ACL视图/IPv4高级ACL视图
IPv6基本ACL视图/IPv6高级ACL视图
二层ACL视图
用户自定义ACL视图
【缺省用户角色】
network-admin
【参数】
text:表示ACL的描述信息,为1~127个字符的字符串,区分大小写。
【举例】
<Sysname> system-view
[Sysname] acl basic 2000
[Sysname-acl-ipv4-basic-2000] description This is an IPv4 basic ACL.
【相关命令】
· display acl
display acl命令用来显示ACL的配置和运行情况。
【命令】
display acl [ ipv6 | mac | user-defined ] { acl-number | all | name acl-name }
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
acl-number:显示指定编号的ACL的配置和运行情况。acl-number表示ACL的编号,取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
all:显示指定类型中全部ACL的配置和运行情况。
name acl-name:显示指定名称的ACL的配置和运行情况。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写。
【使用指导】
本命令将按照实际匹配顺序来排列ACL内的规则,即:当ACL的规则匹配顺序为配置顺序时,各规则将按照编号由小到大排列;当ACL的规则匹配顺序为自动排序时,各规则将按照“深度优先”原则由深到浅排列。
如果未指定ipv6、mac或user-defined参数,则表示IPv4 ACL。
【举例】
# 显示IPv4基本ACL 2001的配置和运行情况。
<Sysname> display acl 2001
Basic IPv4 ACL 2001, 1 rule, match-order is auto,
This is an IPv4 basic ACL.
ACL's step is 5, start ID is 0
rule 5 permit source 1.1.1.1 0
rule 5 comment This rule is used on Ten-GigabitEthernet1/0/1.
表1-1 display acl命令显示信息描述表
|
字段 |
描述 |
|
Basic IPv4 ACL 2001 |
该ACL的类型和编号 |
|
1 rule |
该ACL内包含的规则数量 |
|
match-order is auto |
该ACL的规则匹配顺序为自动排序(匹配顺序为配置顺序时不显示本字段) |
|
This is an IPv4 basic ACL. |
该ACL的描述信息 |
|
ACL's step is 5 |
该ACL的规则编号的步长值为5 |
|
start ID is 0 |
该ACL的规则编号的起始值为0 |
|
rule 5 permit source 1.1.1.1 0 |
规则5的具体内容,源地址为具体地址 |
|
rule 5 comment This rule is used on Ten-GigabitEthernet1/0/1. |
规则5的描述信息 |
display acl exact-match template命令用来显示下发EM的配置信息和状态。
【命令】
(独立运行模式)
display acl exact-match template [ template-id ] [ slot slot-number ]
(IRF模式)
display acl exact-match template [ template-id ] [ chassis chassis-number slot slot-number ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
template-id:模板的ID。取值范围为1~2。
slot slot-number:指定单板,slot-number表示单板所在的槽位号。若未指定本参数,将显示主用主控板。(独立运行模式)
chassis chassis-number slot slot-number:指定成员设备指定单板,chassis-number表示设备在IRF中的成员编号,slot-number表示单板所在的槽位号。若未指定本参数,将显示主用设备主用主控板。(IRF模式)
【举例】
#显示ID为1的EM的配置信息和下发状态。
<Sysname> display acl exact-match template 1
Exact-match template 1 (Successful)
Flow type : IPv4
Template :
Match :
destination-ip
destination-port
protocol
source-ip
source-port
Application : N/A
表1-2 display acl exact-match template命令显示信息描述表
|
字段 |
描述 |
|
Exact-match template 1 (Failed) |
EM模板ID和EM模板的状态,状态取值包括: · Successful:下发成功 · Failed:下发失败 · Inactive:未下发(未配置EM模板中配置匹配规则) |
|
FlowType |
流量匹配规则的类型,取值包括: · IPv4:匹配IPv4报文的规则 · IPv6:匹配IPv6报文的规则 |
|
Template |
流量匹配规则: · source-ip:匹配任意源IP地址的规则 · destination-ip:匹配任意目的IP地址的规则 · source-port:匹配任意源端口号的规则 · destination-port:匹配任意目的端口号的规则 · protocol:匹配任意网络层协议类型的规则 |
|
Application |
应用模块,取值为: · MQC:MQC策略应用 · PFILTER:报文过滤 |
【相关命令】
· acl exact-match template
display packet-filter命令用来显示ACL在报文过滤中的应用情况。
【命令】
(独立运行模式)
display packet-filter { global | interface [ interface-type interface-number ] } [ inbound | outbound ] [ slot slot-number ]
(IRF模式)
display packet-filter { global | interface [ interface-type interface-number ] [ inbound | outbound ] } [ chassis chassis-number slot slot-number ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
global:显示ACL在报文过滤中的全局(即所有物理接口)应用情况。
interface [ interface-type interface-number ]:显示指定接口上ACL在报文过滤中的应用情况。interface-type interface-number表示接口类型和接口编号。若未指定接口类型和接口编号,将显示所有接口上ACL在报文过滤中的应用情况。当接口类型为以太网接口时,不需要指定chassis和slot参数。
inbound:显示入方向上ACL在报文过滤中的应用情况。
outbound:显示出方向上ACL在报文过滤中的应用情况。
slot slot-number:显示指定单板上ACL在报文过滤中的应用情况,slot-number表示单板所在的槽位号。若未指定本参数,将显示主用主控板上ACL在报文过滤中的应用情况。(独立运行模式)
chassis chassis-number slot slot-number:显示指定成员设备指定单板上ACL在报文过滤中的应用情况,chassis-number表示设备在IRF中的成员编号,slot-number表示单板所在的槽位号。若未指定本参数,将显示全局主用主控板上ACL在报文过滤中的应用情况。(IRF模式)
【使用指导】
如果未指定inbound和outbound参数,将同时显示出、入方向上ACL在报文过滤中的应用情况。
【举例】
# 显示接口Ten-GigabitEthernet1/0/1入方向上ACL在报文过滤中的应用情况。
<Sysname> display packet-filter interface ten-gigabitethernet 1/0/1 inbound
Interface: Ten-GigabitEthernet1/0/1
Inbound policy:
IPv4 ACL 2001
IPv6 ACL 2002 (Failed)
MAC ACL 4003
# 显示出、入方向上ACL在报文过滤中的全局应用情况。
<Sysname> display packet-filter global
Global:
Inbound policy:
IPv4 ACL 2001
IPv6 ACL 2001
MAC ACL 4001
IPv4 default action: Deny (Failed)
IPv6 default action: Deny (Failed)
MAC default action: Deny
Outbound policy:
MAC ACL 4001
MAC default action: Deny
表1-3 display packet-filter命令显示信息描述表
|
字段 |
描述 |
|
Interface |
ACL在指定接口上的应用情况 |
|
Global |
ACL的全局(即所有物理接口)应用情况 |
|
Inbound policy |
ACL在入方向上的应用情况 |
|
Outbound policy |
ACL在出方向上的应用情况 |
|
IPv4 ACL 2001 |
IPv4基本ACL 2001应用成功 |
|
IPv6 ACL 2002 (Failed) |
IPv6基本ACL 2002应用失败 |
|
IPv4 default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
|
IPv6 default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
|
MAC default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
display packet-filter statistics命令用来显示ACL在报文过滤中应用的统计信息。
【命令】
display packet-filter statistics { global | interface interface-type interface-number } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ] [ brief ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
global:显示全局(即所有物理接口)统计信息。
interface interface-type interface-number:显示指定接口上的统计信息。interface-type interface-number表示接口类型和接口编号。
inbound:显示入方向上的统计信息。
outbound:显示出方向上的统计信息。
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
acl-number:显示指定编号ACL在报文过滤中应用的统计信息。acl-number表示ACL的编号,取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
name acl-name:显示指定名称ACL在报文过滤中应用的统计信息。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写。
brief:显示简要统计信息。
【使用指导】
如果未指定任何可选参数,将显示全部ACL在报文过滤中应用的统计信息。
【举例】
# 显示接口Ten-GigabitEthernet1/0/1入方向上全部ACL在报文过滤中应用的统计信息。
<Sysname> display packet-filter statistics interface ten-gigabitethernet 1/0/1 inbound
Interface: Ten-GigabitEthernet1/0/1
Inbound policy:
IPv4 ACL 2001, Hardware-count
From 2011-06-04 10:25:21 to 2011-06-04 10:35:57
rule 0 permit source 2.2.2.2 0 (2 packets)
rule 5 permit source 1.1.1.1 0 (Failed)
rule 10 permit vpn-instance test (No resource)
Totally 2 packets permitted, 0 packets denied
Totally 100% permitted, 0% denied
IPv6 ACL 2000
MAC ACL 4000
rule 0 permit
IPv4 default action: Deny
From 2011-06-04 10:25:21 to 2011-06-04 10:35:57
Totally 7 packets
IPv6 default action: Deny
From 2011-06-04 10:25:41 to 2011-06-04 10:35:57
Totally 0 packets
MAC default action: Deny
From 2011-06-04 10:25:34 to 2011-06-04 10:35:57
Totally 0 packets
表1-4 display packet-filter statistics命令显示信息描述表
|
字段 |
描述 |
|
Interface |
在指定接口上应用的统计信息 |
|
Inbound policy |
在入方向上应用的统计信息 |
|
Outbound policy |
在出方向上应用的统计信息 |
|
IPv4 ACL 2001 |
IPv4基本ACL 2001应用成功 |
|
IPv4 ACL 2002 (Failed) |
IPv4基本ACL 2002应用失败 |
|
From 2011-06-04 10:25:21 to 2011-06-04 10:35:57 |
硬件统计的起始和终止时间(起始时间为报文过滤在本单板的下发时间) |
|
2 packets |
该规则匹配了2个包(当匹配的包个数为0时不显示本字段) |
|
No resource |
该规则对应的统计资源不足。在显示统计信息时,若该规则的统计资源不足,便会显示本字段 |
|
rule 5 permit source 1.1.1.1 0 (Failed) |
规则5应用失败 |
|
Totally 2 packets permitted, 0 packets denied |
该ACL允许和拒绝符合条件报文的个数 |
|
Totally 100% permitted, 0% denied |
该ACL允许符合条件报文的通过率和拒绝符合条件报文的丢弃率 |
|
IPv4 default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
|
IPv6 default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
|
MAC default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
|
Totally 7 packets |
报文过滤缺省动作的硬件统计功能执行次数 |
【相关命令】
· reset packet-filter statistics
display packet-filter statistics sum命令用来显示ACL在报文过滤中应用的累加统计信息。
【命令】
display packet-filter statistics sum { inbound | outbound } [ ipv6 | mac | user-defined ] { acl-number | name acl-name } [ brief ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
inbound:显示入方向上ACL在报文过滤中应用的累加统计信息。
outbound:显示出方向上ACL在报文过滤中应用的累加统计信息。
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
acl-number:显示指定编号ACL在报文过滤中应用的累加统计信息。acl-number表示ACL的编号,取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
name acl-name:显示指定名称ACL在报文过滤中应用的累加统计信息。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写。
brief:显示ACL在报文过滤中应用的简要累加统计信息。
【使用指导】
如果未指定ipv6、mac或user-defined参数,则表示IPv4 ACL。
【举例】
# 显示入方向上IPv4基本ACL 2001在报文过滤中应用的累加统计信息。
<Sysname> display packet-filter statistics sum inbound 2001
Sum:
Inbound policy:
IPv4 ACL 2001
rule 0 permit source 2.2.2.2 0 (2 packets)
rule 5 permit source 1.1.1.1 0
rule 10 permit vpn-instance test
Totally 2 packets permitted, 0 packets denied
Totally 100% permitted, 0% denied
# 显示入方向上IPv4基本ACL 2000在报文过滤中应用的简要累加统计信息。
<Sysname> display packet-filter statistics sum inbound 2000 brief
Sum:
Inbound policy:
IPv4 ACL 2000
Totally 2 packets permitted, 0 packets denied
Totally 100% permitted, 0% denied
表1-5 display packet-filter statistics sum命令显示信息描述表
|
字段 |
描述 |
|
Sum |
ACL在报文过滤中应用的累加统计信息 |
|
Inbound policy |
ACL在入方向上应用的累加统计信息 |
|
Outbound policy |
ACL在出方向上应用的累加统计信息 |
|
IPv4 ACL 2001 |
IPv4基本ACL 2001应用的累加统计信息 |
|
2 packets |
该规则匹配了2个包(当匹配的包个数为0时不显示本字段) |
|
Totally 2 packets permitted, 0 packets denied |
该ACL允许和拒绝符合条件报文的个数 |
|
Totally 100% permitted, 0% denied |
该ACL允许符合条件报文的通过率和拒绝符合条件报文的丢弃率 |
【相关命令】
· reset packet-filter statistics
display packet-filter verbose命令用来显示ACL在报文过滤中的详细应用情况。
【命令】
(独立运行模式)
display packet-filter verbose { global | interface interface-type interface-number } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ] [ slot slot-number ]
(IRF模式)
display packet-filter verbose { global | interface interface-type interface-number } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ] [ chassis chassis-number slot slot-number ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
global:显示ACL在报文过滤中的全局(即所有物理接口)详细应用情况。
interface interface-type interface-number:显示指定接口上ACL在报文过滤中的详细应用情况。interface-type interface-number表示接口类型和接口编号。当接口类型为以太网接口时,不需要指定chassis和slot参数。
inbound:显示入方向上ACL在报文过滤中的详细应用情况。
outbound:显示出方向上ACL在报文过滤中的详细应用情况。
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
acl-number:显示指定编号ACL在报文过滤中的详细应用情况。acl-number表示ACL的编号,取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
name acl-name:显示指定名称ACL在报文过滤中的详细应用情况。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写。
slot slot-number:显示指定单板上ACL在报文过滤中的详细应用情况,slot-number表示单板所在的槽位号。若未指定本参数,将显示主用主控板上ACL在报文过滤中的详细应用情况。(独立运行模式)
chassis chassis-number slot slot-number:显示指定成员设备指定单板上ACL在报文过滤中的详细应用情况,chassis-number表示设备在IRF中的成员编号,slot-number表示单板所在的槽位号。若未指定本参数,将显示全局主用主控板上ACL在报文过滤中的详细应用情况。(IRF模式)
【使用指导】
若未指定acl-number、name acl-name和ACL类型(ipv6、mac、user-defined)参数,将显示全部ACL在报文过滤中的详细应用情况。如果要显示IPv4 ACL在报文过滤中的详细应用情况,则仅需指定acl-number或name acl-name参数,无需指定ACL类型(ipv6、mac、user-defined)参数。
【举例】
# 显示接口Ten-GigabitEthernet1/0/1入方向上全部ACL在报文过滤中的详细应用情况。
<Sysname> display packet-filter verbose interface ten-gigabitethernet 1/0/1 inbound
Interface: Ten-GigabitEthernet1/0/1
Inbound policy:
IPv4 ACL 2001
rule 0 permit
rule 5 permit source 1.1.1.1 0 (Failed)
rule 10 permit vpn-instance test (Failed)
IPv6 ACL 2000
rule 0 permit
MAC ACL 4000
IPv4 default action: Deny
IPv6 default action: Deny
MAC default action: Deny
# 显示入方向上全部ACL在报文过滤中的全局详细应用情况。
<Sysname> display packet-filter verbose global inbound
Global:
Inbound policy:
IPv4 ACL 2001
rule 0 permit
rule 5 permit source 1.1.1.1 0 (Failed)
rule 10 permit vpn-instance test (Failed)
IPv4 ACL 2002 (Failed)
IPv6 ACL 2000, Hardware-count
MAC ACL 4000, Hardware-count
rule 0 permit
IPv4 default action: Deny
IPv6 default action: Deny
MAC default action: Deny
表1-6 display packet-filter verbose命令显示信息描述表
|
字段 |
描述 |
|
Interface |
ACL在指定接口上的详细应用情况 |
|
Global |
ACL的全局(即所有物理接口)详细应用情况 |
|
Inbound policy |
ACL在入方向上的详细应用情况 |
|
Outbound policy |
ACL在出方向上的详细应用情况 |
|
IPv4 ACL 2001 |
IPv4基本ACL 2001应用成功 |
|
IPv4 ACL 2002 (Failed) |
IPv4基本ACL 2002应用失败 |
|
Hardware-count |
规则匹配硬件统计功能应用成功 |
|
Hardware-count (Failed) |
规则匹配硬件统计功能应用失败 |
|
rule 5 permit source 1.1.1.1 0 |
规则5应用成功 |
|
IPv4 default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
|
IPv6 default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
|
MAC default action |
报文过滤的缺省动作,包括: · Deny:报文过滤缺省动作为Deny应用成功 · Deny (Failed):报文过滤缺省动作为Deny应用失败,实际动作仍为Permit · Permit:报文过滤缺省动作为Permit |
display qos-acl resource命令用来显示QoS和ACL资源的使用情况。
【命令】
(独立运行模式)
display qos-acl resource [ slot slot-number ]
(IRF模式)
display qos-acl resource [ chassis chassis-number slot slot-number ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
slot slot-number:显示指定单板上QoS和ACL资源的使用情况,slot-number表示单板所在的槽位号。若未指定本参数,将显示所有单板上QoS和ACL资源的使用情况。(独立运行模式)
chassis chassis-number slot slot-number:显示指定成员设备指定单板上QoS和ACL资源的使用情况,chassis-number表示设备在IRF中的成员编号,slot-number表示单板所在的槽位号。若未指定本参数,将显示IRF中所有成员设备的所有单板上QoS和ACL资源的使用情况。(IRF模式)
【使用指导】
如果指定的单板不支持统计QoS和ACL资源,将不会显示该单板上QoS和ACL资源的使用情况。
【举例】
# 显示QoS和ACL资源的使用情况。
<Sysname> display qos-acl resource
Interfaces: XGE2/0/1 to XGE2/0/48 (slot 2)
---------------------------------------------------------------------
Type Total Reserved Configured Remaining Usage
---------------------------------------------------------------------
IGS ACL 32768 6144 12 26612 18%
EGS ACL 4096 0 0 4096 0%
IGS Counter 32768 6144 4 26620 18%
EGS Counter 4096 0 0 4096 0%
IGS Meter 8191 100 0 8091 1%
EGS Meter 2047 0 0 2047 0%
IMeter Counter 24573 300 0 24273 1%
EMeter Counter 8191 0 0 8191 0%
表1-7 display qos-acl resource命令显示信息描述表
|
字段 |
描述 |
|
Interfaces |
资源对应的接口范围 |
|
Type |
资源类型: · IGS ACL表示入方向的ACL规则资源 · EGS ACL表示出方向的ACL规则资源 · IGS Counter表示入方向的ACL规则匹配流量统计资源 · EGS Counter表示出方向的ACL规则匹配流量统计资源 · IGS Meter表示入方向的流量监管资源 · EGS Meter表示出方向的流量监管资源 · IMeter Counter表示入方向的流量监管统计资源 · EMeter Counter表示出方向的流量监管统计资源 |
|
Total |
资源总数 |
|
Reserved |
预留的资源数 |
|
Configured |
已经使用的资源数 |
|
Remaining |
剩余可用的资源数 |
|
Usage |
预留的资源数与已配置的资源数之和占资源总数的百分比,分子按实际计算结果的整数部分显示,例如实际计算结果为50.8%,此处显示为50%。 |
exact-match命令用来在EM模板中配置匹配规则。
undo exact-match命令用来删除EM模板中配置匹配规则。
【命令】
exact-match { ipv4 | ipv6 } { destination-ip | destination-port | protocol | source-ip | source-port } *
undo exact-match
【缺省情况】
EM模板中未配置匹配规则。
【视图】
EM模板视图
【缺省用户角色】
network-admin
【参数】
ipv4:匹配任意IPv4报文的规则。
ipv6:匹配任意IPv6报文的规则。
destination-ip:匹配任意目的IP地址的规则。
destination-port:匹配任意目的端口流量的规则。
protocol:匹配任意网络层协议类型流量的规则。
source-ip:匹配任意源IP流量的规则。
source-port:匹配任意源端口流量的规则。
【使用指导】
EM(Exact Match,精确匹配)模板是一种匹配规则的模板,可以用于匹配ACL中的rule命令指定的匹配规则或者QoS流分类视图下if-match命令指定的匹配条件,当上述匹配规则或匹配条件和EM模板视图下exact-match命令配置的匹配规则一一对应时,则业务模块将使用EM资源(设备中的一种转发表项资源,和MAC地址,路由表存放在相同的硬件存储空间中)进行报文匹配处理。使用EM资源进行报文匹配处理可以提升设备进行报文匹配的规格数量。
本功能需要由业务模块引用EM模板来实现,引用了EM模板的业务模块,才能将指定的匹配规则通过EM资源处理。
如果本EM模板已经被业务模块引用,则该EM模板中的匹配规则不允许修改或者删除,请先解除业务模块对此模板的引用关系,再修改或删除EM模板中的匹配规则。
多次配置本命令,最后一次配置的生效。
【举例】
# 在EM模板中配置匹配IPv4报文的目的IP的匹配规则。
<Sysname> system-view
[Sysname] acl exact-match template 1
[Sysname-acl-exact-match-1] exact-match ipv4 destination-ip
packet-filter命令用来在接口上应用ACL进行报文过滤。
undo packet-filter命令用来取消在接口上应用ACL进行报文过滤。
【命令】
packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } { inbound [ exact-match ] | outbound [ extend ] } [ hardware-count ]
undo packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } { inbound | outbound }
【缺省情况】
接口不对报文进行过滤。
【视图】
接口视图
【缺省用户角色】
network-admin
【参数】
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
acl-number:指定ACL的编号,取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写。
inbound:对收到的报文进行过滤。
exact-match:配置精确匹配类型报文过滤。
outbound:对发出的报文进行过滤。
extend:使用扩展的ACL资源来实现出方向报文过滤,当出方向ACL资源不足时可以采用此关键字。
hardware-count:表示开启规则匹配硬件统计功能,缺省为关闭。
【使用指导】
通过编号引用ACL,请遵循如下规则:
· 当需要引用IPv4类型ACL时,请直接指定acl-number。
· 当需要引用IPv6类型ACL时,必须首先指定ipv6关键字,再指定acl-number。
· 当需要引用二层或用户自定义类型ACL时,可首先指定mac或user-defined关键字再指定acl-number,或直接指定acl-number。
通过名称引用ACL,请遵循如下规则:
· 当需要引用IPv4类型ACL时,请直接指定name acl-name。
· 当需要引用IPv6、二层或用户自定义类型ACL时,必须首先指定ipv6、mac或user-defined关键字,再指定name acl-name。
三层以太网接口、三层聚合接口、三层以太网子接口、三层聚合子接口和VLAN接口上报文过滤引用IPv4类型ACL时,若某条rule规则中指定了vpn-instance参数,则该rule不生效。
本命令中的hardware-count关键字用于开启指定ACL内所有规则的规则匹配硬件统计功能,而rule命令中的counting关键字则用于开启当前规则的匹配统计功能。
如果设备资源不足,必须先执行undo packet-filter命令取消报文过滤,然后再配置不携带hardware-count关键字的报文过滤,以此关闭规则匹配硬件统计功能。
如果设备资源充足,可通过不携带hardware-count关键字重新配置报文过滤,以此关闭规则匹配硬件统计功能。
在设备资源不足时,通过指定exact-match关键字配置精确匹配类型的报文过滤。精确匹配类型报文过滤使用独立的硬件资源,但需要注意的是:
· ACL中仅支持配置EM模板中定义的匹配规则,且不支持配置掩码类型的规则。
· 报文将优先匹配精确匹配类型的报文过滤。
· 仅支持基于收到的报文配置精确匹配类型的报文过滤,可以和hardware-count关键字配合使用。
当在设备接口出方向执行packet-filter命令使用ACL进行报文过滤时,如果出方向的ACL资源不足时,则可以在接口视图下先执行undo packet-filter命令取消出方向应用的报文过滤,然后再配置packet-filter命令并指定extend参数,以便使用其他拓展的ACL资源来实现出方向报文过滤。
对于同一VLAN接口的同一个方向,可以在VLAN接口视图下配置packet-filter命令实现报文过滤功能。
如果ACL的规则匹配顺序是按照深度优先原则进行自动排序,则不能保证报文过滤不断流。
接口出方向不支持应用用户ACL进行报文过滤。
· 当设备到从VLAN接口接入的网络存在等价路由时,不支持在该VLAN接口支持使用扩展的ACL资源来实现出方向报文过滤。
· 仅支持在VLAN接口上配置extend参数。
· VLAN接口出方向使用扩展的ACL资源来实现报文过滤与执行packet-filter filter命令用来配置VLAN接口过滤所有报文的功能互斥,请勿同时配置。
· 在VLAN出接口上应用ACL进行报文过滤并指定extend参数后,若全局配置packet-filter default deny命令,则在该VLAN接口上报文过滤的缺省动作为Deny,仅对三层转发的报文生效。
在VLAN接口出方向应用ACL进行报文过滤,无法匹配untagged报文。
【举例】
# 应用IPv4基本ACL 2001对接口Ten-GigabitEthernet1/0/1收到的报文进行过滤,并开启规则匹配硬件统计功能。
<Sysname> system-view
[Sysname] interface ten-gigabitethernet 1/0/1
[Sysname-Ten-GigabitEthernet1/0/1] packet-filter 2001 inbound hardware-count
【相关命令】
· display packet-filter
· display packet-filter statistics
· display packet-filter verbose
· exact-match
packet-filter default deny命令用来配置报文过滤的缺省动作为Deny,即禁止未匹配上ACL规则的报文通过。
undo packet-filter default deny命令用来恢复缺省情况。
【命令】
packet-filter default deny
undo packet-filter default deny
【缺省情况】
报文过滤的缺省动作为Permit,即允许未匹配上ACL规则的报文通过。
【视图】
系统视图
【缺省用户角色】
network-admin
【使用指导】
配置报文过滤的缺省动作会在所有的应用对象下添加一个缺省动作应用,该应用也会像其它应用的ACL一样显示。
【举例】
# 配置报文过滤的缺省动作为Deny。
<Sysname> system-view
[Sysname] packet-filter default deny
【相关命令】
· display packet-filter
· display packet-filter statistics
· display packet-filter verbose
packet-filter filter命令用来配置报文过滤在VLAN接口的生效范围。
undo packet-filter filter命令用来恢复默认情况。
【命令】
packet-filter filter [ route | all ]
undo packet-filter filter
【缺省情况】
报文过滤仅对通过VLAN接口进行三层转发的报文生效。
【视图】
VLAN接口视图
【缺省用户角色】
network-admin
【参数】
route:表示报文过滤仅对通过VLAN接口进行三层转发的报文生效。
all:表示报文过滤对所有报文(包括通过VLAN接口进行三层转发的报文和通过VLAN接口对应的物理接口进行二层转发的报文)均生效。
【举例】
# 配置VLAN接口2上的报文过滤方式为route,即报文过滤仅对通过VLAN接口2进行三层转发的报文生效。
<Sysname> system-view
[Sysname] interface vlan-interface 2
[Sysname-Vlan-interface2] packet-filter filter route
packet-filter global命令用来全局应用ACL进行报文过滤。
undo packet-filter global命令用来取消全局应用ACL进行报文过滤。
【命令】
packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } global { inbound [ exact-match ] | outbound } [ hardware-count ]
undo packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } global { inbound | outbound }
【缺省情况】
全局不对报文进行过滤。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
acl-number:指定ACL的编号,取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
name acl-name:指定ACL的名称。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写。
global:表示全局(即所有物理接口)配置。
inbound:对收到的报文进行过滤。
exact-match:配置精确匹配类型报文过滤。
outbound:对发出的报文进行过滤。
hardware-count:表示开启规则匹配硬件统计功能,缺省为关闭。
【使用指导】
通过编号引用ACL,请遵循如下规则:
· 当需要引用IPv4类型ACL时,请直接指定acl-number。
· 当需要引用IPv6类型ACL时,必须首先指定ipv6关键字,再指定acl-number。
· 当需要引用二层或用户自定义类型ACL时,可首先指定mac或user-defined关键字再指定acl-number,或直接指定acl-number。
通过名称引用ACL,请遵循如下规则:
· 当需要引用IPv4类型ACL时,请直接指定name acl-name。
· 当需要引用IPv6、二层或用户自定义类型ACL时,必须首先指定ipv6、mac或user-defined关键字,再指定name acl-name。
hardware-count关键字用于开启指定ACL内所有规则的规则匹配硬件统计功能,而rule命令中的counting关键字则用于开启当前规则的匹配统计功能。
如果设备资源不足,必须先执行undo packet-filter命令取消报文过滤,然后再配置不携带hardware-count关键字的报文过滤,以此关闭规则匹配硬件统计功能。
如果设备资源充足,可通过不携带hardware-count关键字重新配置报文过滤,以此关闭规则匹配硬件统计功能。
在设备资源不足时,通过指定exact-match关键字配置精确匹配类型的报文过滤。精确匹配类型报文过滤使用独立的硬件资源,但需要注意的是:
· ACL中仅支持配置EM模板中定义的匹配规则,且不支持配置掩码类型的规则。
· 报文将优先匹配精确匹配类型的报文过滤。
· 仅支持基于收到的报文配置精确匹配类型的报文过滤,可以和hardware-count关键字配合使用。
【举例】
# 全局应用IPv4基本ACL 2001对收到的报文进行过滤,并开启规则匹配硬件统计功能。
<Sysname> system-view
[Sysname] packet-filter 2001 global inbound hardware-count
【相关命令】
· display packet-filter
· display packet-filter statistics
· display packet-filter verbose
· exact-match
qos-acl resource hardware-mode命令用来配置QoS和ACL资源的硬件模式。
undo qos-acl resource hardware-mode命令用来恢复缺省情况。
【命令】
qos-acl resource hardware-mode hardware-mode-value
undo qos-acl resource hardware-mode hardware-mode-value
【缺省情况】
未配置QoS和ACL资源的硬件模式。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
hardware-mode-value:QoS和ACL资源的硬件模式,目前支持取值为:
· inbound-portrange-enhanced:表示对以范围方式(lt、gt、range)匹配四层端口号的ACL规则,应用在入方向时进行增强处理。
【使用指导】
inbound-portrange-enhanced模式仅对执行qos-acl resource hardware-mode命令后新应用的QoS策略生效,如果希望对执行命令前已经应用的QoS策略也生效,请选择如下方式之一操作:
· 执行save命令保存当前配置,然后重启设备。
· 执行本命令前,取消已应用的QoS策略,并在执行本命令后重新应用。
配置inbound-portrange-enhanced模式后,对于以范围方式匹配四层端口号的ACL规则,下发后设备会使用掩码对其进行拆分,以减少对QoS和ACL资源位宽的占用。
【举例】
# 配置QoS和ACL资源的硬件模式为入方向时进行增强处理。
<Sysname> system-view
[Sysname] qos-acl resource hardware-mode inbound-portrange-enhanced
The hardware-mode won't take effect for running configuration, please reconfigur
e the settings or reboot the device to activate the settings.
qos-acl resource share-mode命令用来配置QoS和ACL资源的共享模式。
undo qos-acl resource share-mode命令用来恢复缺省情况。
【命令】
qos-acl resource share-mode inbound share-mode
undo qos-acl resource share-mode inbound
【缺省情况】
未配置任何QoS和ACL资源的共享模式。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
inbound:配置入方向QoS和ACL资源的共享模式。
share-mode:QoS和ACL资源的共享模式。仅支持取值为preemtion:此模式下,如果希望在接口上应用的各个QoS策略都按照共享模式生效,则应用时必须指定share-mode关键字。需要注意的是,策略路由和接口上应用ACL进行报文过滤的共享模式将不受影响。
【使用指导】
共享模式(即在应用QoS策略、报文过滤或策略路由时指定share-mode关键字)指的是在同一单板或成员设备的多个接口上应用同一个QoS策略、报文过滤或策略路由时,所有应用将共享一份QoS和ACL资源。而非共享模式时,每个位置的应用都会独占一份QoS和ACL资源。所以共享模式能极大的节省QoS和ACL资源。
在未配置本命令中的任何QoS和ACL资源共享模式的情况下:
· 接口相同方向上仅支持以共享模式应用一个QoS策略。
· 接口相同方向上仅支持以共享模式应用一个策略路由。
· 如果已经以共享模式应用了一个QoS策略,则此位置上将不能再以共享模式应用ACL进行报文过滤,反之亦然。
有关QoS策略及其共享模式的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”;有关策略路由及其共享模式的详细介绍,请参见“三层技术-IP路由命令参考”中的“策略路由”。
preemtion模式仅对执行qos-acl resource share-mode命令后新应用的QoS策略生效,如果希望对执行命令前已经应用的QoS策略也生效,请选择如下方式操作:
· 执行save命令保存当前配置,然后重启设备。
【举例】
# 配置QoS和ACL资源的共享模式为preemption。
<Sysname> system-view
[Sysname] qos-acl resource share-mode inbound preemption
Please save the running configuration and reboot the device to activate the sett
ings.
reset acl counter命令用来清除ACL的统计信息。
【命令】
reset acl [ ipv6 | mac | user-defined ] counter { acl-number | all | name acl-name }
【视图】
用户视图
【缺省用户角色】
network-admin
【参数】
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
acl-number:清除指定编号ACL的统计信息。acl-number表示ACL的编号,取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
all:清除指定类型中全部ACL的统计信息。
name acl-name:清除指定名称ACL的统计信息。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写。
【使用指导】
当通过acl-number指定ACL时:
· 如果acl-number在2000~3999范围内,对于IPv6 ACL,必须输入ipv6关键字,否则表示IPv4 ACL。
· 如果acl-number在4000~4999范围内,可以不输入mac关键字,直接指定acl-number。
· 如果acl-number在5000~5999范围内,可以不输入user-defined关键字,直接指定acl-number。
当通过acl-name指定ACL时,对于IPv6、二层或用户自定义ACL,必须输入ipv6、mac或user-defined关键字,否则表示IPv4 ACL。
【举例】
# 清除IPv4基本ACL 2001的统计信息。
<Sysname> reset acl counter 2001
【相关命令】
· display acl
reset packet-filter statistics命令用来清除ACL在报文过滤中应用的统计信息。
【命令】
reset packet-filter statistics { global | interface [ interface-type interface-number ] } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name }]
【视图】
用户视图
【缺省用户角色】
network-admin
【参数】
global:清除全局(即所有物理接口)统计信息。
interface [ interface-type interface-number ]:清除指定接口上的统计信息。interface-type interface-number表示接口类型和接口编号。若未指定接口类型和接口编号,将清除所有接口上的统计信息。
inbound:清除入方向上的统计信息。
outbound:清除出方向上的统计信息。
ipv6:指定ACL类型为IPv6 ACL。
mac:指定ACL类型为二层ACL。
user-defined:指定ACL类型为用户自定义ACL。
acl-number:清除指定编号ACL在报文过滤中应用的统计信息。acl-number表示ACL的编号,取值范围及其代表的ACL类型如下:
· 2000~2999:表示基本ACL。
· 3000~3999:表示高级ACL。
· 4000~4999:表示二层ACL。
· 5000~5999:表示用户自定义ACL。
name acl-name:清除指定名称ACL在报文过滤中应用的统计信息。acl-name表示ACL的名称,为1~63个字符的字符串,不区分大小写。
【使用指导】
如果未指定acl-number、name acl-name和ACL类型(ipv6、mac、user-defined)参数,将清除全部ACL在报文过滤中应用的统计信息。
如果未指定ipv6、mac或user-defined参数,则表示IPv4 ACL。
【举例】
# 清除在接口Ten-GigabitEthernet1/0/1入方向上IPv4基本ACL 2001在报文过滤中应用的统计信息。
<Sysname> reset packet-filter statistics interface ten-gigabitethernet 1/0/1 inbound 2001
【相关命令】
· display packet-filter statistics
· display packet-filter statistics sum
rule icmp命令用来为IPv4高级ACL创建一条协议类型为ICMP的规则。
undo rule icmp命令用来为IPv4高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } { protocol-number | icmp } [ counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | { dscp dscp | { precedence precedence | tos tos } * } | fragment | icmp-type { icmp-type [ icmp-code ] | icmp-message } | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ counting | destination | { dscp | { precedence | tos } * } | fragment| icmp-type | [ flow-logging | logging ] | source | time-range | vpn-instance ] *
undo rule { deny | permit } { protocol-number | icmp } [ counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | { dscp dscp | { precedence precedence | tos tos } * } | fragment| icmp-type { icmp-type [ icmp-code ] | icmp-message } | [ flow-logging | logging ] | source { source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv4高级ACL内不存在任何规则。
【视图】
IPv4高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv4高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
protocol-number:icmp的protocol-number为1。
protocol之后可配置如表1-8所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
source { object-group address-group-name | source-address source-wildcard | any } |
源地址信息 |
指定ACL规则的源地址信息 |
address-group-name:源地址对象组的名称 source-address:源IP地址 source-wildcard:源IP地址的通配符掩码(为0表示主机地址) any:任意源IP地址 |
|
destination { object-group address-group-name | dest-address dest-wildcard | any } |
目的地址信息 |
指定ACL规则的目的地址信息 |
address-group-name:目的地址对象组的名称 dest-address:目的IP地址 dest-wildcard:目的IP地址的通配符掩码(为0表示主机地址) any:任意目的IP地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
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) |
|
fragment |
分片信息 |
仅对分片报文的非首个分片有效,而对非分片报文和分片报文的首个分片无效 |
若未指定任何分片相关的参数,则表示该规则对所有报文(包括非分片报文和分片报文的每个分片)均有效 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
vpn-instance vpn-instance-name |
VPN实例 |
对指定VPN实例中的报文有效 |
vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写 应用ACL规则进行报文匹配时,ACL规则中未指定VPN实例时,该规则对非VPN报文和VPN报文均有效 其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明 |
|
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-9所示 |
表1-9 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命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl all命令可以查看所有已存在的IPv4高级ACL规则和IPv4基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv4高级ACL 3001创建规则如下:允许IP报文通过,但拒绝发往192.168.1.0/24网段的ICMP报文通过。
<Sysname> system-view
[Sysname] acl advanced 3001
[Sysname-acl-ipv4-adv-3001] rule deny icmp destination 192.168.1.0 0.0.0.255
[Sysname-acl-ipv4-adv-3001] rule permit ip
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule udp命令用来为IPv4高级ACL创建一条协议类型为UDP规则。
undo rule udp命令用来为IPv4高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } { protocol-number | udp } [ counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | { dscp dscp | { precedence precedence | tos tos } * } | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-wildcard | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ counting | destination | destination-port | { dscp | { precedence | tos } * } | fragment|[ flow-logging | logging ] | source | source-port | time-range | vpn-instance ] *
undo rule { deny | permit } { protocol-number | udp } [ counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | { dscp dscp | { precedence precedence | tos tos } * } | fragment | [ flow-logging | logging ] | source { source-address source-wildcard | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv4高级ACL内不存在任何规则。
【视图】
IPv4高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv4高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
protocol-number:udp的protocol-number为17。
其他可配置如表1-10所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
source { object-group address-group-name | source-address source-wildcard | any } |
源地址信息 |
指定ACL规则的源地址信息 |
address-group-name:源地址对象组的名称 source-address:源IP地址 source-wildcard:源IP地址的通配符掩码(为0表示主机地址) any:任意源IP地址 |
|
destination { object-group address-group-name | dest-address dest-wildcard | any } |
目的地址信息 |
指定ACL规则的目的地址信息 |
address-group-name:目的地址对象组的名称 dest-address:目的IP地址 dest-wildcard:目的IP地址的通配符掩码(为0表示主机地址) any:任意目的IP地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
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) |
|
fragment |
分片信息 |
仅对分片报文的非首个分片有效,而对非分片报文和分片报文的首个分片无效 |
若未指定任何分片相关的参数,则表示该规则对所有报文(包括非分片报文和分片报文的每个分片)均有效 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
vpn-instance vpn-instance-name |
VPN实例 |
对指定VPN实例中的报文有效 |
vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写 应用ACL规则进行报文匹配时,ACL规则中未指定VPN实例时,该规则对非VPN报文和VPN报文均有效 其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明 |
|
source-port { object-group port-group-name | operator port1 [ port2 ] } |
源端口 |
定义UDP报文的源端口信息 |
port-group-name:端口对象组的名称 operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其它的只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用数字表示时,取值范围为0~65535;用字符表示时,TCP端口号可以选取chargen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、dns(53)、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 { object-group port-group-name | operator port1 [ port2 ] } |
目的端口 |
定义UDP报文的目的端口信息 |
【使用指导】
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl all命令可以查看所有已存在的IPv4高级ACL规则和IPv4基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv4高级ACL 3003创建规则如下:在出、入双方向上都允许SNMP报文和SNMP Trap报文通过。
<Sysname> system-view
[Sysname] acl advanced 3003
[Sysname-acl-ipv4-adv-3003] rule permit udp source-port eq snmp
[Sysname-acl-ipv4-adv-3003] rule permit udp source-port eq snmptrap
[Sysname-acl-ipv4-adv-3003] rule permit udp destination-port eq snmp
[Sysname-acl-ipv4-adv-3003] rule permit udp destination-port eq snmptrap
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule tcp命令用来为IPv4高级ACL创建一条协议类型为TCP的规则。
undo rule tcp命令用来为IPv4高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } { protocol-number | tcp } [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | { dscp dscp | { precedence precedence | tos tos } * } | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-wildcard | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ { { ack | fin | psh | rst | syn | urg } * | established } | counting | destination | destination-port | { dscp | { precedence | tos } * } | fragment | [ flow-logging | logging ] | source | source-port | time-range | vpn-instance ] *
undo rule { deny | permit } { protocol-number | tcp } [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | { dscp dscp | { precedence precedence | tos tos } * } | fragment| [ flow-logging | logging ] | source { source-address source-wildcard | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv4高级ACL内不存在任何规则。
【视图】
IPv4高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv4高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
protocol-number:tcp的protocol-number为6。
其他可配置如表1-11所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
source { object-group address-group-name | source-address source-wildcard | any } |
源地址信息 |
指定ACL规则的源地址信息 |
address-group-name:源地址对象组的名称 source-address:源IP地址 source-wildcard:源IP地址的通配符掩码(为0表示主机地址) any:任意源IP地址 |
|
destination { object-group address-group-name | dest-address dest-wildcard | any } |
目的地址信息 |
指定ACL规则的目的地址信息 |
address-group-name:目的地址对象组的名称 dest-address:目的IP地址 dest-wildcard:目的IP地址的通配符掩码(为0表示主机地址) any:任意目的IP地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
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) |
|
fragment |
分片信息 |
仅对分片报文的非首个分片有效,而对非分片报文和分片报文的首个分片无效 |
若未指定任何分片相关的参数,则表示该规则对所有报文(包括非分片报文和分片报文的每个分片)均有效 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
vpn-instance vpn-instance-name |
VPN实例 |
对指定VPN实例中的报文有效 |
vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写 应用ACL规则进行报文匹配时,ACL规则中未指定VPN实例时,该规则对非VPN报文和VPN报文均有效 其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明 |
|
source-port { object-group port-group-name | operator port1 [ port2 ] } |
源端口 |
定义TCP报文的源端口信息 |
port-group-name:端口对象组的名称 operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其它的只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用数字表示时,取值范围为0~65535;用字符表示时,TCP端口号可以选取chargen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、dns(53)、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 { object-group port-group-name | operator port1 [ port2 ] } |
目的端口 |
定义TCP报文的目的端口信息 |
|
|
{ ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * |
TCP报文标识 |
定义对携带不同标志位(包括ACK、FIN、PSH、RST、SYN和URG六种)的TCP报文的处理规则 |
表示匹配携带不同标志位的TCP报文,各value的取值可为0或1(0表示不携带此标志位,1表示携带此标志位) 如果在一条规则中设置了多个TCP标志位的匹配值,则这些匹配条件之间的关系为“与”。譬如:当配置为ack 0 psh 1时,表示匹配不携带ACK且携带PSH标志位的TCP报文 |
|
established |
TCP连接建立标识 |
定义对TCP连接报文的处理规则 |
- |
【使用指导】
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl all命令可以查看所有已存在的IPv4高级ACL规则和IPv4基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv4高级ACL 3000创建规则如下:允许129.9.0.0/16网段内的主机与202.38.160.0/24网段内主机的WWW端口(端口号为80)建立连接。
<Sysname> system-view
[Sysname] acl advanced 3000
[Sysname-acl-ipv4-adv-3000] 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
# 为IPv4高级ACL 3002创建规则如下:在出、入双方向上都允许建立FTP连接并传输FTP数据。
<Sysname> system-view
[Sysname] acl advanced 3002
[Sysname-acl-ipv4-adv-3002] rule permit tcp source-port eq ftp
[Sysname-acl-ipv4-adv-3002] rule permit tcp source-port eq ftp-data
[Sysname-acl-ipv4-adv-3002] rule permit tcp destination-port eq ftp
[Sysname-acl-ipv4-adv-3002] rule permit tcp destination-port eq ftp-data
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule { gre | igmp | ip | ipinip | ospf }命令用来为IPv4高级ACL创建一条协议类型为IP、IGMP、IPinIP或OSPF的规则。
undo rule { gre | igmp | ip | ipinip | ospf }命令用来为IPv4高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } { protocol-number | gre | igmp | ip | ipinip | ospf } [ counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | { dscp dscp | { precedence precedence | tos tos } * } | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ counting | destination | { dscp | { precedence | tos } * } | fragment | [ flow-logging | logging ] | source | time-range | vpn-instance ] *
undo rule { deny | permit } { protocol-number | gre | igmp | ip | ipinip | ospf } [ counting | destination { object-group address-group-name | dest-address dest-wildcard | any } | { dscp dscp | { precedence precedence | tos tos } * } | fragment | [ flow-logging | logging ] | source { source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv4高级ACL内不存在任何规则。
【视图】
IPv4高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv4高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
protocol-number:gre的protocol-number为47,igmp的protocol-number为2,ipinip的protocol-number为4,ospf的protocol-number为89。ip表示所有协议类型。具体介绍请参见表1-12。
|
数字 |
关键字 |
说明 |
|
- |
ip [ options ] |
匹配IP协议报文: · 指定options参数时,表示该规则仅对携带OPTIONS字段的IP协议报文生效 · 未指定options参数时,表示该规则对所有IP协议报文生效 |
|
2 |
igmp |
匹配IGMP协议报文 |
|
4 |
ipinip |
匹配IPinIP协议报文 |
|
47 |
gre [ gre-key key-value ] |
匹配GRE协议报文: · 指定gre-key key-value参数时,表示该规则仅对特定GRE Key的GRE协议报文生效 · 未指定gre-key key-value参数时,表示该规则对所有GRE协议报文生效 有关GRE的详细介绍请参见“三层技术-IP业务配置指导”中的“GRE” |
|
89 |
ospf |
匹配OSPF协议报文 |
其他可配置如表1-13所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
source { object-group address-group-name | source-address source-wildcard | any } |
源地址信息 |
指定ACL规则的源地址信息 |
address-group-name:源地址对象组的名称 source-address:源IP地址 source-wildcard:源IP地址的通配符掩码(为0表示主机地址) any:任意源IP地址 |
|
destination { object-group address-group-name | dest-address dest-wildcard | any } |
目的地址信息 |
指定ACL规则的目的地址信息 |
address-group-name:目的地址对象组的名称 dest-address:目的IP地址 dest-wildcard:目的IP地址的通配符掩码(为0表示主机地址) any:任意目的IP地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
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) |
|
fragment |
分片信息 |
仅对分片报文的非首个分片有效,而对非分片报文和分片报文的首个分片无效 |
若未指定任何分片相关的参数,则表示该规则对所有报文(包括非分片报文和分片报文的每个分片)均有效 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
vpn-instance vpn-instance-name |
VPN实例 |
对指定VPN实例中的报文有效 |
vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写 应用ACL规则进行报文匹配时,ACL规则中未指定VPN实例时,该规则对非VPN报文和VPN报文均有效 其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明 |
【使用指导】
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl all命令可以查看所有已存在的IPv4高级ACL规则和IPv4基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv4高级ACL 3004创建规则如下:匹配GRE Key为FFFF的GRE报文。
<Sysname> system-view
[Sysname] acl advanced 3004
[Sysname-acl-ipv4-adv-3004] rule permit gre gre-key ffff
# 为IPv4高级ACL 3004创建规则如下:匹配携带OPTIONS字段的IP报文。
<Sysname> system-view
[Sysname] acl advanced 3004
[Sysname-acl-ipv4-adv-3004] rule permit ip options
# 为IPv4高级ACL 3001创建规则如下:匹配目的地址为192.168.1.0/24的IP报文。
<Sysname> system-view
[Sysname] acl advanced 3001
[Sysname-acl-ipv4-adv-3001] rule permit ip destination 192.168.1.0 0.0.0.255
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule geneve命令用来为IPv4高级ACL创建一条GENEVE封装报文的规则。
undo rule geneve命令用来为IPv4高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } geneve [ destination { dest-address dest-wildcard | any } | source { source-address source-wildcard | any } | source-port operator port1 [ port2 ] | geneve-id geneve-id | option-header-length option-length ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-wildcard | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-wildcard | any } | { { inner-dscp inner-dscp | inner-ecn inner-ecn } * | { inner-ecn inner-ecn | inner-precedence inner-precedence } * | { inner-precedence inner-precedence | inner-tos inner-tos } * } | inner-source-port operator port1 [ port2 ] | [ flow-logging | logging ] | time-range time-range-name ] *
undo rule rule-id [ counting | destination | inner-destination | inner-destination-port | { { inner-ack | inner-fin | inner-psh | inner-rst | inner-syn | inner-urg } * | inner-established } | inner-source | inner-source-port | { { inner-dscp | inner-ecn } * | { inner-ecn | inner-precedence } * | { inner-precedence |inner-tos } * } | [ flow-logging | logging ] | source | source-port | time-range | geneve-id | option-header-length ] *
undo rule { deny | permit } geneve [ destination { dest-address dest-wildcard | any } | source { source-address source-wildcard | any } | source-port operator port1 [ port2 ] | geneve-id geneve-id | option-header-length option-length ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-wildcard | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-wildcard | any } | inner-source-port operator port1 [ port2 ] |{ { inner-dscp inner-dscp | inner-ecn inner-ecn } * | { inner-ecn inner-ecn | inner-precedence inner-precedence } * | { inner-precedence inner-precedence | inner-tos inner-tos } * } | [ flow-logging | logging ] | time-range time-range-name ] *
【缺省情况】
IPv4高级ACL内不存在任何规则。
【视图】
IPv4高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv4高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
geneve:表示报文是GENEVE(Generic Network Virtualization Encapsulation,通用网络虚拟化封装)封装。只有指定本参数后才可指定geneve-id和option-header-length参数。
geneve-id geneve-id:GENEVE ID即VNI(Virtual Network Identifier,虚拟网络标识符),取值范围为0~16777215。
option-header-length option-length:表示GENEVE报文可选协议头长度,取值范围为0~252且必须是4的倍数。
inner-protocol:表示IPv4承载的内层协议类型,可输入的形式如下:
· 数字:取值范围为0~255;
· 名称(括号内为对应的数字):可选取gre(47)、icmp(1)、igmp(2)、ip、ipinip(4)、ospf(89)、tcp(6)或udp(17)。
inner-protocol之后可配置如表1-17所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
inner-source { source-address source-wildcard | any } |
内层源地址信息 |
指定ACL规则的内层源地址信息 |
source-address:内层源IP地址 source-wildcard:内层源IP地址的通配符掩码(为0表示主机地址) any:任意源IP地址 |
|
inner-destination { dest-address dest-wildcard | any } |
内层目的地址信息 |
指定ACL规则的内层目的地址信息 |
dest-address:内层目的IP地址 dest-wildcard:内层目的IP地址的通配符掩码(为0表示主机地址) any:任意目的IP地址 |
|
inner-precedence inner-precedence |
内层报文优先级 |
指定内层报文的IP优先级 |
inner-precedence用数字表示时,取值范围为0~7;用字符表示时,分别对应routine(0)、priority(1)、immediate(2)、flash(3)、flash-override(4)、critical(5)、internet(6)、network(7) |
|
inner-tos inner-tos |
内层报文优先级 |
指定内层报文的ToS优先级 |
inner-tos用数字表示时,取值范围为0~15;用字符表示时,可以选取max-reliability(2)、max-throughput(4)、min-delay(8)、min-monetary-cost(1)、normal(0) |
|
inner-ecn inner-ecn |
内层报文ECN通知信息 |
指定内层报文的ECN标志 |
inner-ecn取值范围为0~3,对应IP报文头部DS域的最后两个比特为(00~11) 有关DS域以及ECN功能的详细介绍,请参见“ACL和QoS配置指导”中的“QoS” |
|
inner-dscp inner-dscp |
内层报文优先级 |
指定内层报文的DSCP优先级 |
inner-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) |
当inner-protocol为tcp(6)或udp(17)时,用户还可配置如表1-18所示的规则信息参数。
表1-15 TCP/UDP特有的规则信息参数
|
参数 |
类别 |
作用 |
说明 |
|
inner-established |
内层TCP连接建立标识 |
定义对内层TCP连接报文的处理规则 |
内层TCP协议特有的参数,用于定义TCP报文中ACK或RST标志位为1的报文 |
|
inner-source-port operator port1 [ port2 ] |
内层源端口 |
定义内层TCP/UDP报文的源端口信息 |
operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其它的只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用数字表示时,取值范围为0~65535;用字符表示时,TCP端口号可以选取chargen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、dns(53)、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) 如果使用domain关键字来指定TCP端口号,在配置文件中保存时关键字将显示为dns |
|
inner-destination-port operator port1 [ port2 ] |
内层目的端口 |
定义内层TCP/UDP报文的目的端口信息 |
其他参数参见表1-19。
|
参数 |
类别 |
作用 |
说明 |
|
source { source-address source-wildcard | any } |
源地址信息 |
指定ACL规则的源地址信息 |
source-address:源IP地址 source-wildcard:源IP地址的通配符掩码(为0表示主机地址) any:任意源IP地址 |
|
destination { dest-address dest-wildcard | any } |
目的地址信息 |
指定ACL规则的目的地址信息 |
dest-wildcard:目的IP地址的通配符掩码(为0表示主机地址) any:任意目的IP地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
source-port { operator port1 [ port2 ] } |
源端口 |
定义TCP/UDP报文的源端口信息 |
operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其它的只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用数字表示时,取值范围为0~65535;用字符表示时,TCP端口号可以选取chargen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、dns(53)、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) |
【使用指导】
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl all命令可以查看所有已存在的IPv4高级ACL规则和IPv4基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv4高级ACL 3004创建规则如下:允许来自内层源IP为192.168.1.0/24网段的geneve报文通过。
<Sysname> system-view
[Sysname] acl number 3004
[Sysname-acl-adv-3004] rule permit geneve inner-protocol ip inner-source 192.168.1.0 0.0.0.255
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule命令用来为IPv4基本ACL创建一条规则。
undo rule命令用来为IPv4基本ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } [ counting | fragment | [ flow-logging | logging ] logging | source { object-group address-group-name | source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ counting | fragment | [ flow-logging | logging ] | source | time-range | vpn-instance ] *
undo rule { deny | permit } [ counting | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv4基本ACL内不存在任何规则。
【视图】
IPv4基本ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv4基本ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
counting:表示开启规则匹配软件统计功能,缺省为关闭。
fragment:表示仅对非首片分片报文有效,而对非分片报文和首片分片报文无效。若未指定本参数,表示该规则对非分片报文和分片报文均有效。
flow-logging:表示对符合条件的报文记录流日志信息,包括匹配报文的规则、匹配报文的个数、源IP和目的IP。该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤。目前,本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效。
logging:表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数。该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤。
source { object-group address-group-name | source-address source-wildcard | any }:指定规则的源IP地址信息。address-group-name表示源IP地址对象组的名称,source-address表示报文的源IP地址,source-wildcard表示源IP地址的通配符掩码(为0表示主机地址),any表示任意源IP地址。
time-range time-range-name:指定本规则生效的时间段。time-range-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段”。
vpn-instance vpn-instance-name:表示对指定VPN实例中的报文有效。vpn-instance-name表示MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。应用ACL进行报文过滤,ACL规则中未指定VPN实例时,表示该规则对非VPN报文和VPN报文均有效;其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明。
【使用指导】
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl all命令可以查看所有已存在的IPv4高级ACL规则和IPv4基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
counting关键字用于开启本规则的匹配统计功能,而packet-filter命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能。
【举例】
# 为IPv4基本ACL 2000创建规则如下:仅允许来自10.0.0.0/8、172.17.0.0/16和192.168.1.0/24网段的报文通过,而拒绝来自所有其它网段的报文通过。
<Sysname> system-view
[Sysname] acl basic 2000
[Sysname-acl-ipv4-basic-2000] rule permit source 10.0.0.0 0.255.255.255
[Sysname-acl-ipv4-basic-2000] rule permit source 172.17.0.0 0.0.255.255
[Sysname-acl-ipv4-basic-2000] rule permit source 192.168.1.0 0.0.0.255
[Sysname-acl-ipv4-basic-2000] rule deny source any
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule icmpv6命令用来为IPv6高级ACL创建一条协议类型为ICMPv6的规则。
undo rule icmpv6命令用来为IPv6高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } { protocol-number | icmpv6 } [ counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | dscp dscp | flow-label flow-label-value | fragment | icmp6-type { icmp6-type icmp6-code | icmp6-message } | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ counting | destination | dscp | flow-label | fragment | icmp6-type | [ flow-logging | logging ] | source | time-range | vpn-instance ] *
undo rule { deny | permit } { protocol-number | icmpv6 } [ counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | dscp dscp | flow-label flow-label-value | fragment | icmp6-type { icmp6-type icmp6-code | icmp6-message } | [ flow-logging | logging ] | | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv6高级ACL内不存在任何规则。
【视图】
IPv6高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv6高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
protocol-number:icmpv6的protocol-number为58。
其他可配置如表1-20所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } |
源IPv6地址 |
指定ACL规则的源IPv6地址信息 |
address-group-name:源地址对象组的名称 source-address:源IPv6地址 source-prefix:源IPv6地址的前缀长度,取值范围1~128 any:任意源IPv6地址 |
|
destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } |
目的IPv6地址 |
指定ACL规则的目的IPv6地址信息 |
address-group-name:目的地址对象组的名称 dest-address:目的IPv6地址 dest-prefix:目的IPv6地址的前缀长度,取值范围1~128 any:任意目的IPv6地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter ipv6命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
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) |
|
flow-label flow-label-value |
流标签字段 |
指定IPv6基本报文头中流标签字段的值 |
flow-label-value:流标签字段的值,取值范围为0~1048575 |
|
fragment |
报文分片 |
仅对分片报文的非首个分片有效,而对非分片报文和分片报文的首个分片无效 |
若未指定任何分片相关的参数,表示该规则对所有报文(包括非分片报文和分片报文的每个分片)均有效 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
vpn-instance vpn-instance-name |
VPN实例 |
对指定VPN实例中的报文有效 |
vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写 应用ACL进行报文过滤,ACL规则中未指定VPN实例时,表示该规则对非VPN报文和VPN报文均有效 其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明 |
|
icmp6-type { icmp6-type icmp6-code | icmp6-message } |
ICMPv6报文的消息类型和消息码 |
指定本规则中ICMPv6报文的消息类型和消息码信息 |
icmp6-type:ICMPv6消息类型,取值范围为0~255 icmp6-code:ICMPv6消息码,取值范围为0~255 icmp6-message:ICMPv6消息名称。可以输入的ICMPv6消息名称,及其与消息类型和消息码的对应关系如表1-21所示 |
表1-18 ICMPv6消息名称与消息类型和消息码的对应关系
|
ICMPv6消息名称 |
ICMPv6消息类型 |
ICMPv6消息码 |
|
echo-reply |
129 |
0 |
|
echo-request |
128 |
0 |
|
err-Header-field |
4 |
0 |
|
frag-time-exceeded |
3 |
1 |
|
hop-limit-exceeded |
3 |
0 |
|
host-admin-prohib |
1 |
1 |
|
host-unreachable |
1 |
3 |
|
neighbor-advertisement |
136 |
0 |
|
neighbor-solicitation |
135 |
0 |
|
network-unreachable |
1 |
0 |
|
packet-too-big |
2 |
0 |
|
port-unreachable |
1 |
4 |
|
redirect |
137 |
0 |
|
router-advertisement |
134 |
0 |
|
router-solicitation |
133 |
0 |
|
unknown-ipv6-opt |
4 |
2 |
|
unknown-next-hdr |
4 |
1 |
【使用指导】
如果QoS策略或报文过滤功能应用于出方向,则不支持配置flow-label参数。
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
新创建或修改的规则若指定对象组,则该对象组必须存在,否则将提示出错,并导致该操作失败。display acl ipv6 all命令可以查看所有已存在的IPv6高级ACL规则和IPv6基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv6高级ACL 3001创建规则如下:允许IPv6报文通过,但拒绝发往FE80:5060:1001::/48网段的ICMPv6报文通过。
<Sysname> system-view
[Sysname] acl ipv6 advanced 3001
[Sysname-acl-ipv6-adv-3001] rule deny icmpv6 destination fe80:5060:1001:: 48
[Sysname-acl-ipv6-adv-3001] rule permit ipv6
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule tcp命令用来为IPv6高级ACL创建一条协议类型为TCP的规则。
undo rule tcp命令用来为IPv6高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } { protocol-number | tcp } [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | dscp dscp | flow-label flow-label-value | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ { { ack | fin | psh | rst | syn | urg } * | established } | counting | destination | destination-port | dscp | flow-label | fragment | [ flow-logging | logging ] | source | source-port | time-range | vpn-instance ] *
undo rule { deny | permit } { protocol-number | tcp } [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | dscp dscp | flow-label flow-label-value | fragment | [ flow-logging | logging ] | | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv6高级ACL内不存在任何规则。
【视图】
IPv6高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv6高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
protocol-number:tcp的protocol-number为6。
其他可配置如表1-22所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } |
源IPv6地址 |
指定ACL规则的源IPv6地址信息 |
address-group-name:源地址对象组的名称 source-address:源IPv6地址 source-prefix:源IPv6地址的前缀长度,取值范围1~128 any:任意源IPv6地址 |
|
destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } |
目的IPv6地址 |
指定ACL规则的目的IPv6地址信息 |
address-group-name:目的地址对象组的名称 dest-address:目的IPv6地址 dest-prefix:目的IPv6地址的前缀长度,取值范围1~128 any:任意目的IPv6地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter ipv6命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
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) |
|
flow-label flow-label-value |
流标签字段 |
指定IPv6基本报文头中流标签字段的值 |
flow-label-value:流标签字段的值,取值范围为0~1048575 |
|
fragment |
报文分片 |
仅对分片报文的非首个分片有效,而对非分片报文和分片报文的首个分片无效 |
若未指定任何分片相关的参数,表示该规则对所有报文(包括非分片报文和分片报文的每个分片)均有效 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
vpn-instance vpn-instance-name |
VPN实例 |
对指定VPN实例中的报文有效 |
vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写 应用ACL进行报文过滤,ACL规则中未指定VPN实例时,表示该规则对非VPN报文和VPN报文均有效 其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明 |
|
source-port { object-group port-group-name | operator port1 [ port2 ] } |
源端口 |
定义TCP报文的源端口信息 |
port-group-name:端口对象组的名称 operator:操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有range操作符需要两个端口号做操作数,其它操作符只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用数字表示时,取值范围为0~65535;用名称表示时,TCP端口号可选取chargen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、dns(53)、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 { object-group port-group-name | operator port1 [ port2 ] } |
目的端口 |
定义TCP报文的目的端口信息 |
|
|
{ ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * |
TCP报文标识 |
定义对携带不同标志位(包括ACK、FIN、PSH、RST、SYN和URG六种)的TCP报文的处理规则 |
表示匹配携带不同标志位的TCP报文,各value的取值可为0或1(0表示不携带此标志位,1表示携带此标志位) 如果在一条规则中设置了多个TCP标志位的匹配值,则这些匹配条件之间的关系为“与”。譬如:当配置为ack 0 psh 1时,表示匹配不携带ACK且携带PSH标志位的TCP报文 |
|
established |
TCP连接建立标识 |
定义对TCP连接报文的处理规则 |
- |
【使用指导】
如果QoS策略或报文过滤功能应用于出方向,则不支持配置flow-label参数。
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
新创建或修改的规则若指定对象组,则该对象组必须存在,否则将提示出错,并导致该操作失败。display acl ipv6 all命令可以查看所有已存在的IPv6高级ACL规则和IPv6基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv6高级ACL 3000创建规则如下:允许2030:5060::/64网段内的主机与FE80:5060::/96网段内主机的WWW端口(端口号为80)建立连接。
<Sysname> system-view
[Sysname] acl ipv6 advanced 3000
[Sysname-acl-ipv6-adv-3000] rule permit tcp source 2030:5060::/64 destination fe80:5060::/96 destination-port eq 80
# 为IPv6高级ACL 3002创建规则如下:在出、入双方向上都允许建立FTP连接并传输FTP数据。
<Sysname> system-view
[Sysname] acl ipv6 advanced 3002
[Sysname-acl-ipv6-adv-3002] rule permit tcp source-port eq ftp
[Sysname-acl-ipv6-adv-3002] rule permit tcp source-port eq ftp-data
[Sysname-acl-ipv6-adv-3002] rule permit tcp destination-port eq ftp
[Sysname-acl-ipv6-adv-3002] rule permit tcp destination-port eq ftp-data
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule udp命令用来为IPv6高级ACL创建一条协议类型为UDP的规则。
undo rule udp命令用来为IPv6高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } { protocol-number | udp } [ counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | dscp dscp | flow-label flow-label-value | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ counting | destination | destination-port | dscp | flow-label | fragment | [ flow-logging | logging ] | source | source-port | time-range | vpn-instance ] *
undo rule { deny | permit } { protocol-number | udp } [ counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | dscp dscp | flow-label flow-label-value | fragment | [ flow-logging | logging ] | | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv6高级ACL内不存在任何规则。
【视图】
IPv6高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv6高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
protocol-number:udp的protocol-number为17。
其他可配置如表1-23所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } |
源IPv6地址 |
指定ACL规则的源IPv6地址信息 |
address-group-name:源地址对象组的名称 source-address:源IPv6地址 source-prefix:源IPv6地址的前缀长度,取值范围1~128 any:任意源IPv6地址 |
|
destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } |
目的IPv6地址 |
指定ACL规则的目的IPv6地址信息 |
address-group-name:目的地址对象组的名称 dest-address:目的IPv6地址 dest-prefix:目的IPv6地址的前缀长度,取值范围1~128 any:任意目的IPv6地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter ipv6命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
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) |
|
flow-label flow-label-value |
流标签字段 |
指定IPv6基本报文头中流标签字段的值 |
flow-label-value:流标签字段的值,取值范围为0~1048575 |
|
fragment |
报文分片 |
仅对分片报文的非首个分片有效,而对非分片报文和分片报文的首个分片无效 |
若未指定任何分片相关的参数,表示该规则对所有报文(包括非分片报文和分片报文的每个分片)均有效 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
vpn-instance vpn-instance-name |
VPN实例 |
对指定VPN实例中的报文有效 |
vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写 应用ACL进行报文过滤,ACL规则中未指定VPN实例时,表示该规则对非VPN报文和VPN报文均有效 其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明 |
|
source-port { object-group port-group-name | operator port1 [ port2 ] } |
源端口 |
定义UDP报文的源端口信息 |
port-group-name:端口对象组的名称 operator:操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有range操作符需要两个端口号做操作数,其它操作符只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用数字表示时,取值范围为0~65535;用名称表示时,TCP端口号可选取chargen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、dns(53)、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 { object-group port-group-name | operator port1 [ port2 ] } |
目的端口 |
定义UDP报文的目的端口信息 |
【使用指导】
如果QoS策略或报文过滤功能应用于出方向,则不支持配置flow-label参数。
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
新创建或修改的规则若指定对象组,则该对象组必须存在,否则将提示出错,并导致该操作失败。display acl ipv6 all命令可以查看所有已存在的IPv6高级ACL规则和IPv6基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv6高级ACL 3003创建规则如下:在出、入双方向上都允许SNMP报文和SNMP Trap报文通过。
<Sysname> system-view
[Sysname] acl ipv6 advanced 3003
[Sysname-acl-ipv6-adv-3003] rule permit udp source-port eq snmp
[Sysname-acl-ipv6-adv-3003] rule permit udp source-port eq snmptrap
[Sysname-acl-ipv6-adv-3003] rule permit udp destination-port eq snmp
[Sysname-acl-ipv6-adv-3003] rule permit udp destination-port eq snmptrap
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule { gre | ipv6 | ipv6-ah | ipv6-esp | ospf }命令用来为IPv6高级ACL创建一条协议类型为GRE、IPv6、IPv6-ah、IPv6-esp、OSPF的规则。
undo rule { gre | ipv6 | ipv6-ah | ipv6-esp | ospf }命令用来为IPv6高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } { protocol-number | gre | ipv6 | ipv6-ah | ipv6-esp | ospf } [ counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | dscp dscp | flow-label flow-label-value | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ counting | destination | dscp | flow-label | fragment | [ flow-logging | logging ] | source | time-range | vpn-instance ] *
undo rule { deny | permit } { protocol-number | gre | ipv6 | ipv6-ah | ipv6-esp | ospf } [ counting | destination { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | dscp dscp | flow-label flow-label-value | fragment | [ flow-logging | logging ] | | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv6高级ACL内不存在任何规则。
【视图】
IPv6高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv6高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
protocol-number:具体介绍请参见表1-24。
|
protocol-number |
关键字 |
说明 |
|
- |
ipv6 [ options ] |
匹配IPv6协议报文: · 指定options参数时,表示该规则仅对携带OPTIONS字段的IPv6协议报文生效 · 未指定options参数时,表示该规则对所有IPv6协议报文生效 |
|
47 |
gre [ gre-key key-value ] |
匹配GRE协议报文: · 指定gre-key key-value参数时,表示该规则仅对特定GRE Key的GRE协议报文生效 · 未指定gre-key key-value参数时,表示该规则对所有GRE协议报文生效 有关GRE的详细介绍请参见“三层技术-IP业务”中的“GRE” |
|
50 |
ipv6-esp |
匹配IPv6-esp协议报文 |
|
51 |
ipv6-ah |
匹配IPv6-ah协议报文 |
|
89 |
ospf |
匹配OSPF协议报文 |
其他可配置如表1-25所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } |
源IPv6地址 |
指定ACL规则的源IPv6地址信息 |
address-group-name:源地址对象组的名称 source-address:源IPv6地址 source-prefix:源IPv6地址的前缀长度,取值范围1~128 any:任意源IPv6地址 |
|
destination {object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } |
目的IPv6地址 |
指定ACL规则的目的IPv6地址信息 |
address-group-name:目的地址对象组的名称 dest-address:目的IPv6地址 dest-prefix:目的IPv6地址的前缀长度,取值范围1~128 any:任意目的IPv6地址 |
|
counting |
统计 |
开启规则匹配软件统计功能,缺省为关闭 |
本参数用于开启本规则的匹配统计功能,而packet-filter ipv6命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能 |
|
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) |
|
flow-label flow-label-value |
流标签字段 |
指定IPv6基本报文头中流标签字段的值 |
flow-label-value:流标签字段的值,取值范围为0~1048575 |
|
fragment |
报文分片 |
仅对分片报文的非首个分片有效,而对非分片报文和分片报文的首个分片无效 |
若未指定任何分片相关的参数,表示该规则对所有报文(包括非分片报文和分片报文的每个分片)均有效 |
|
flow-logging |
流日志操作 |
记录规则匹配报文的流日志信息,包括匹配报文的规则、匹配报文的个数、源IP、目的IP、源端口号和目的端口号 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效 |
|
logging |
日志操作 |
表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数 |
该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤 |
|
time-range time-range-name |
时间段 |
指定本规则生效的时间段 |
time-range-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段” |
|
vpn-instance vpn-instance-name |
VPN实例 |
对指定VPN实例中的报文有效 |
vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写 应用ACL进行报文过滤,ACL规则中未指定VPN实例时,表示该规则对非VPN报文和VPN报文均有效 其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明 |
【使用指导】
如果QoS策略或报文过滤功能应用于出方向,则不支持配置flow-label参数。
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
新创建或修改的规则若指定对象组,则该对象组必须存在,否则将提示出错,并导致该操作失败。display acl ipv6 all命令可以查看所有已存在的IPv6高级ACL规则和IPv6基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv6高级ACL 3005创建规则如下:匹配IPv6报文。
<Sysname> system-view
[Sysname] acl ipv6 advanced 3005
[Sysname-acl-ipv6-adv-3005] rule permit ipv6
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule { geneve | geneve-ipv6 }命令用来为IPv6高级ACL创建一条IPv4 GENEVE封装报文或IPv6 GENEVE封装报文的规则。
undo rule命令用来为IPv6高级ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } geneve [ geneve-id geneve-id | option-header-length option-length ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-prefix | dest-address/dest-prefix | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-prefix | source-address/source-prefix | any } | inner-source-port operator port1 [ port2 ] | { inner-dscp inner-dscp | inner-ecn inner-ecn } * | [ flow-logging | logging ] | time-range time-range-name ] *
rule [ rule-id ] { deny | permit } geneve-ipv6 [ destination { dest-address dest-prefix | dest-address/dest-prefix | any } | source { source-address source-prefix | source-address/source-prefix | any } | source-port operator port1 [ port2 ] | geneve-id geneve-id | option-header-length option-length ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-prefix | dest-address/dest-prefix | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-prefix | source-address/source-prefix | any } | inner-source-port operator port1 [ port2 ] | { inner-dscp inner-dscp | inner-ecn inner-ecn } * | [ flow-logging | logging ] | time-range time-range-name ] *
undo rule rule-id [ counting | destination-port | inner-destination | inner-destination-port | { { inner-ack | inner-fin | inner-psh | inner-rst | inner-syn | inner-urg } * | inner-established } | inner-source | inner-source-port | { inner-dscp | inner-ecn } * | [ flow-logging | logging ] | source | source-port | time-range | geneve-id | option-header-length ] *
undo rule { deny | permit } geneve [ geneve-id geneve-id | option-header-length option-length ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-prefix | dest-address/dest-prefix | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-prefix | source-address/source-prefix | any } | inner-source-port operator port1 [ port2 ] | { inner-dscp inner-dscp | inner-ecn inner-ecn } * | [ flow-logging | logging ] | time-range time-range-name ] *
undo rule { deny | permit } geneve-ipv6 [ destination { dest-address dest-prefix | dest-address/dest-prefix | any } | source { source-address source-prefix | source-address/source-prefix | any } | source-port operator port1 [ port2 ] | geneve-id geneve-id | option-header-length option-length ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-prefix | dest-address/dest-prefix | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-prefix | source-address/source-prefix | any } | inner-source-port operator port1 [ port2 ] | { inner-dscp inner-dscp | inner-ecn inner-ecn } * | [ flow-logging | logging ] | time-range time-range-name ] *
【缺省情况】
IPv6高级ACL内不存在任何规则。
【视图】
IPv6高级ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv6高级ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
geneve:表示报文是GENEVE(Generic Network Virtualization Encapsulation,通用网络虚拟化封装)封装,外层封装IP报文头是IPv4。
geneve-ipv6:表示报文是GENEVE(Generic Network Virtualization Encapsulation,通用网络虚拟化封装)封装,外层封装IP报文头是IPv6。
geneve-id geneve-id:GENEVE ID即VNI(Virtual Network Identifier,虚拟网络标识符),取值范围为0~16777215。
option-header-length option-length:表示GENEVE报文可选协议头长度,取值范围为0~252且必须是4的倍数。
inner-protocol:表示IPv6承载的内层协议类型,可输入的形式如下:
· 数字:取值范围为0~255;
· 名称(括号内为对应的数字):可选取gre(47)、icmpv6(58)、ipv6、ospf(89)、tcp(6)或udp(17)。
inner-protocol之后可配置如表1-29所示的规则信息参数。
|
参数 |
类别 |
作用 |
说明 |
|
inner-source { source-address source-prefix | any } |
报文内层源地址信息 |
指定ACL规则的内层源地址信息 |
source-address:源IPv6地址 source-prefix:源IPv6地址的前缀长度,取值范围1~128 any:任意源IPv6地址 |
|
inner-destination { dest-address dest-prefix | any } |
报文内层目的地址信息 |
指定ACL规则的内层目的地址信息 |
dest-address:目的IPv6地址 dest-prefix:目的IPv6地址的前缀长度,取值范围1~128 any:任意目的IP地址 |
|
inner-dscp inner-dscp |
报文内层报文优先级 |
指定DSCP优先级 |
inner-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) |
|
inner-ecn inner-ecn |
报文内层ECN通知信息 |
指定ECN标志 |
inner-ecn的取值范围为0~3,对应IP报文头部DS域的最后两个比特位的取值(00~11) 有关DS域以及ECN功能的详细介绍,请参见“ACL和QoS配置指导”中的“QoS” |
当inner-protocol为tcp(6)或udp(17)时,用户还可配置如表1-30所示的规则信息参数。
表1-24 TCP/UDP特有的规则信息参数
|
参数 |
类别 |
作用 |
说明 |
|
{ inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * |
报文内层TCP标识 |
定义对携带不同标志位(包括ACK、FIN、PSH、RST、SYN和URG六种)的TCP报文的处理规则 |
TCP协议特有的参数。表示匹配携带不同标志位的TCP报文,各value的取值可为0或1(0表示不携带此标志位,1表示携带此标志位) 如果在一条规则中设置了多个TCP标志位的匹配值,则这些匹配条件之间的关系为“与”。譬如:当配置为ack 0 psh 1时,表示匹配不携带ACK且携带PSH标志位的TCP报文 |
|
inner-established |
报文内层TCP连接建立标识 |
定义对内层TCP连接报文的处理规则 |
TCP协议特有的参数,用于定义TCP报文中ACK或RST标志位为1的报文 |
|
inner-source-port operator port1 [ port2 ] |
内层源端口 |
定义内层TCP/UDP报文的源端口信息 |
operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其它的只需要一个端口号做操作数 port1、port2:TCP或UDP的端口号,用数字表示时,取值范围为0~65535;用字符表示时,TCP端口号可以选取chargen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、dns(53)、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) 如果使用domain关键字来指定TCP端口号,在配置文件中保存时关键字将显示为dns |
|
inner-destination-port operator port1 [ port2 ] |
内层目的端口 |
定义内层TCP/UDP报文的目的端口信息 |
【使用指导】
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl ipv6 all命令可以查看所有已存在的IPv6高级ACL规则和IPv6基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
【举例】
# 为IPv6高级ACL 3004创建规则如下:允许来自内层源IPv6为1::1网段的IPv4 GENEVE封装报文通过。
<Sysname> system-view
[Sysname] acl ipv6 advanced 3004
[Sysname-acl-ipv6-adv-3004] rule permit geneve inner-protocol ipv6 inner-source 1::1 64
# 为IPv6高级ACL 3004创建规则如下:允许来自内层源IPv6为1::1网段的IPv6 GENEVE封装报文通过。
<Sysname> system-view
[Sysname] acl ipv6 advanced 3004
[Sysname-acl-ipv6-adv-3004] rule permit geneve-ipv6 inner-protocol ipv6 inner-source 1::1 64
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule命令用来为IPv6基本ACL创建一条规则。
undo rule命令用来为IPv6基本ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } [ counting | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
undo rule rule-id [ counting | fragment | [ flow-logging | logging ] | source | time-range | vpn-instance ] *
undo rule { deny | permit } [ counting | fragment | [ flow-logging | logging ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
【缺省情况】
IPv6基本ACL内不存在任何规则。
【视图】
IPv6基本ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定IPv6基本ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
counting:表示开启规则匹配软件统计功能,缺省为关闭。
fragment:表示仅对非首片分片报文有效,而对非分片报文和首片分片报文无效。若未指定本参数,表示该规则对非分片报文和分片报文均有效。
flow-logging:表示对符合条件的报文记录流日志信息,包括匹配报文的规则、匹配报文的个数、源IP和目的IP。该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤。目前,本参数仅在入方向报文过滤中引用的ACL中创建的rule deny规则中生效。
logging:表示记录规则匹配报文的日志信息,包括匹配报文的规则和匹配报文的个数。该功能需要使用该ACL的模块支持日志记录功能,例如报文过滤。
source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any }:指定规则的源IPv6地址信息。address-group-name表示源IP地址对象组的名称,source-address表示报文的源IPv6地址,source-prefix表示源IPv6地址的前缀长度,取值范围为1~128,any表示任意源IPv6地址。
time-range time-range-name:指定本规则生效的时间段。time-range-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段”。
vpn-instance vpn-instance-name:表示对指定VPN实例中的报文有效。vpn-instance-name表示MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。应用ACL进行报文过滤,ACL规则中未指定VPN实例时,表示该规则对非VPN报文和VPN报文均有效;其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明。
【使用指导】
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl ipv6 all命令可以查看所有已存在的IPv6高级ACL规则和IPv6基本ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
counting关键字用于开启本规则的匹配统计功能,而packet-filter ipv6命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能。
【举例】
# 为IPv6基本ACL 2000创建规则如下:仅允许来自1001::/16、3124:1123::/32和FE80:5060:1001::/48网段的报文通过,而拒绝来自所有其它网段的报文通过。
<Sysname> system-view
[Sysname] acl ipv6 basic 2000
[Sysname-acl-ipv6-basic-2000] rule permit source 1001:: 16
[Sysname-acl-ipv6-basic-2000] rule permit source 3124:1123:: 32
[Sysname-acl-ipv6-basic-2000] rule permit source fe80:5060:1001:: 48
[Sysname-acl-ipv6-basic-2000] rule deny source any
【相关命令】
· acl
· acl logging interval
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule命令用来为二层ACL创建一条规则。
undo rule命令用来为二层ACL删除一条规则或删除规则中的部分内容。
【命令】
rule [ rule-id ] { deny | permit } [ cos dot1p | counting | dest-mac dest-address dest-mask | type protocol-type protocol-type-mask | source-mac source-address source-mask | time-range time-range-name ] *
rule [ rule-id ] { deny | permit } geneve [ counting | dest-mac dest-address dest-mask | inner-dest-mac inner-dest-address inner-dest-mask | inner-source-mac inner-source-address inner-source-mask | inner-type inner-protocol-type inner-protocol-type-mask | source-mac source-address source-mask | time-range time-range-name | type protocol-type protocol-type-mask | geneve-id geneve-id | option-header-length option-length ] *
undo rule rule-id [ counting | time-range ] *
undo rule { deny | permit } [ cos dot1p | counting | dest-mac dest-address dest-mask | type protocol-type protocol-type-mask | source-mac source-address source-mask | time-range time-range-name ] *
undo rule { deny | permit } geneve [ counting | dest-mac dest-address dest-mask | inner-dest-mac inner-dest-address inner-dest-mask | inner-source-mac inner-source-address inner-source-mask | inner-type inner-protocol-type inner-protocol-type-mask | source-mac source-address source-mask | time-range time-range-name | type protocol-type protocol-type-mask | geneve-id geneve-id | option-header-length option-length ] *
【缺省情况】
二层ACL内不存在任何规则。
【视图】
二层ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定二层ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
cos dot1p:指定802.1p优先级。dot1p表示802.1p优先级,可输入的形式如下:
· 数字:取值范围为0~7;
· 名称:best-effort、background、spare、excellent-effort、controlled-load、video、voice和network-management,依次对应于数字0~7。
counting:表示开启规则匹配软件统计功能,缺省为关闭。
dest-mac dest-address dest-mask:指定目的MAC地址范围。dest-address表示目的MAC地址,格式为H-H-H。dest-mask表示目的MAC地址的掩码,格式为H-H-H。
type protocol-type protocol-type-mask:指定链路层协议类型。protocol-type表示数据帧类型,对应Ethernet_II类型和Ethernet_SNAP类型帧中的type域,取值范围为十六进制数0~ffff。protocol-type-mask表示类型掩码,用于指定屏蔽位,取值为十六进制数ffff。
source-mac source-address source-mask:指定源MAC地址范围。source-address表示源MAC地址,格式为H-H-H。source-mask表示源MAC地址的掩码,格式为H-H-H。
time-range time-range-name:指定本规则生效的时间段。time-range-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段”。
geneve:表示报文是GENEVE(Generic Network Virtualization Encapsulation,通用网络虚拟化封装)封装。只有指定本参数后才可指定geneve-id和option-header-length参数。
geneve-id geneve-id:GENEVE ID即VNI(Virtual Network Identifier,虚拟网络标识符),取值范围为0~16777215。
option-header-length option-length:表示GENEVE报文可选协议头长度,取值范围为0~252且必须是4的倍数。
inner-type inner-protocol-type inner-protocol-type-mask:指定内层链路层协议类型。inner-protocol-type表示16比特的十六进制数表征的内层数据帧类型,对应Ethernet_II类型和Ethernet_SNAP类型帧中的type域。inner-protocol-type-mask表示类型掩码,为16比特的十六进制数,用于指定屏蔽位。
inner-source-mac inner-source-mac-address inner-source-mask:指定内层源MAC地址范围。inner-source-mac-address表示内层源MAC地址,格式为H-H-H。inner-source-mask表示内层源MAC地址的掩码,格式为H-H-H。
inner-dest-mac inner-dest-mac-address inner-dest-mask:指定内层目的MAC地址范围。inner-dest-mac-address表示内层目的MAC地址,格式为H-H-H。inner-dest-mask表示内层目的MAC地址的掩码,格式为H-H-H。
【使用指导】
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
新创建或修改的规则不能与已有规则的内容完全相同,否则将提示出错,并导致该操作失败。
当ACL的规则匹配顺序为配置顺序时,允许修改该ACL内的任意一条已有规则;当ACL的规则匹配顺序为自动排序时,不允许修改该ACL内的已有规则,否则将提示出错。
display acl mac all命令可以查看所有已存在的二层ACL规则。
删除规则时需要注意的是:
· 使用undo rule rule-id命令时,如果没有指定任何可选参数,则删除整条规则;如果指定了可选参数,则只删除该参数所对应的内容。
· undo rule { deny | permit }命令无法删除规则中的部分内容,使用undo rule { deny | permit }命令时,必须输入已存在规则的完整形式。
counting关键字用于开启本规则的匹配统计功能,而packet-filter命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能。
若匹配对象为IPv6报文时,source-mac、dest-mac、cos须配合type关键字使用,且protocol-type的取值为86dd。
【举例】
# 为二层ACL 4000创建规则如下:允许ARP报文通过,但拒绝RARP报文通过。
<Sysname> system-view
[Sysname] acl mac 4000
[Sysname-acl-mac-4000] rule permit type 0806 ffff
[Sysname-acl-mac-4000] rule deny type 8035 ffff
【相关命令】
· acl
· display acl
· step
· time-range(ACL和QoS命令参考/时间段)
rule命令用来为用户自定义ACL创建一条规则。
undo rule命令用来为用户自定义ACL删除一条规则。
【命令】
命令形式一
rule [ rule-id ] { deny | permit } [ { { ipv4 | ipv6 | l2 | l4 } rule-string rule-mask offset }&<1-8> ] [ counting | time-range time-range-name ] *
undo rule rule-id
undo rule { deny | permit } [ { { ipv4 | ipv6 | l2 | l4 } rule-string rule-mask offset }&<1-8> ] [ counting | time-range time-range-name ] *
命令形式二
rule [ rule-id ] { deny | permit } [ ipv6-protocol ] protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | destination { object-group address-group-name | dest-address dest-wildcard | any } | destination-port { operator port1 [ port2 ] } | { { precedence precedence | tos tos } * | { precedence precedence | ecn ecn } * | { dscp dscp | ecn ecn } * } | source { object-group address-group-name | source-address source-wildcard | any } | source-port { operator port1 [ port2 ] } | vpn-instance vpn-instance-name ] * [ { { ipv4 | ipv6 | l2 | l4 } rule-string rule-mask offset }&<1-8> ] [ counting | time-range time-range-name ] *
undo rule rule-id [ ipv6-protocol ] [ { { ack | fin | psh | rst | syn | urg } * | established } | destination | destination-port | { { precedence | tos } * | { precedence | ecn } * | { dscp | ecn } * } | source | source-port | vpn-instance | ipv4 | ipv6 | l2 | l4 | counting | time-range ] *
undo rule { deny | permit } [ ipv6-protocol ] protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | destination { object-group address-group-name | dest-address dest-wildcard | any } | destination-port { operator port1 [ port2 ] } | { { precedence precedence | tos tos } * | { precedence precedence | ecn ecn } * | { dscp dscp | ecn ecn } * } | source { object-group address-group-name | source-address source-wildcard | any } | source-port { operator port1 [ port2 ] } | vpn-instance vpn-instance-name ] * [ { { ipv4 | ipv6 | l2 | l4 } rule-string rule-mask offset }&<1-8> ] [ counting | time-range time-range-name ] *
【缺省情况】
用户自定义ACL内不存在任何规则。
【视图】
用户自定义ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定用户自定义ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将按照步长为5从0开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
ipv4:表示从IPv4报文头开始偏移。
ipv6:表示从IPv6报文头开始偏移。
l2:表示从L2帧头开始偏移。
l4:表示从L4报文头开始偏移。
rule-string:指定用户自定义的规则字符串,必须是16进制数组成,字符长度必须是偶数。
rule-mask:指定规则字符串的掩码,用于和报文作“与”操作,必须是16进制数组成,字符长度必须是偶数,且必须与rule-string的长度相同。
offset:指定偏移量,它以用户指定的报文头部为基准,指定从第几个字节开始进行比较。
&<1-8>:表示前面的参数最多可以输入8次。
counting:表示开启规则匹配软件统计功能,缺省为关闭。
time-range time-range-name:指定本规则生效的时间段。time-range-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段”。
ipv6-protocol:指定匹配IPv6报文。
· 若选择本参数,表示匹配IPv6报文,此时请不要再选择后续偏移量中的ipv4。
· 若不选择本参数,表示匹配IPv4报文,此时请不要再选择后续偏移量中的ipv6。
protocol:表示网络层承载的协议类型,可输入的形式如下:
· 对于IPv4:
¡ 数字:取值范围为0~255;
¡ 名称(括号内为对应的数字):可选取gre(47)、icmp(1)、igmp(2)、ip、ipinip(4)、ospf(89)、tcp(6)或udp(17)。ip表示所有协议类型。
· 对于IPv6:
¡ 数字:取值范围为0~255;
¡ 名称(括号内为对应的数字):可选取gre(47)、icmpv6(58)、ipv6、ipv6-ah(51)、ipv6-esp(50)、ospf(89)、tcp(6)或udp(17)。ipv6表示所有协议类型。
当protocol为tcp(6)时,用户还可配置如表1-31所示的规则信息参数。
表1-25 TCP特有规则信息参数
|
参数 |
说明 |
|
ack ack-value |
匹配是否携带对应标志位的TCP报文 各value为0时表示不携带此标志位,为1时表示携带此标志位 如果在一条规则中设置了多个TCP标志位的匹配值,则这些匹配条件之间的关系为“与”。譬如:当配置为ack 0 psh 1时,将匹配不携带ACK标志位且携带PSH标志位的TCP报文 |
|
fin fin-value |
|
|
psh psh-value |
|
|
rst rst-value |
|
|
syn syn-value |
|
|
urg urg-value |
|
|
established |
匹配TCP连接报文 表示匹配TCP报文中ACK或RST标志位为1的报文 |
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优先级,可输入的形式如下:
· 数字:取值范围为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)。
ecn ecn:指定ECN标志。ecn取值范围为0~3,对应IP报文头部DS域的最后两个比特为00~11。有关DS域以及ECN功能的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。
source { source-address source-wildcard | any }:指定规则的源IP地址信息。source-address表示报文的源IP地址,source-wildcard表示源IP地址的通配符掩码(为0表示主机地址),any表示任意源IP地址。
destination { dest-address dest-wildcard | any }:指定规则的目的IP地址信息。dest-address表示报文的目的IP地址,dest-wildcard表示目的IP地址的通配符掩码(为0表示主机地址),any表示任意目的IP地址。
source object-group address-group-name:指定规则的源地址对象组的名称,如果同时指定了ipv6-protocol参数和本参数,则表示IPv6地址对象组,否则表示IPv4地址对象组。指定的对象组名称必须已经存在,否则无法配置。
destination object-group address-group-name:指定规则的目的地址对象组的名称,如果同时指定了ipv6-protocol参数和本参数,则表示IPv6地址对象组,否则表示IPv4地址对象组。指定的对象组名称必须已经存在,否则无法配置。
source-port { operator port1 [ port2 ] }:指定规则的源端口信息。其中:
· operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。
· port1、port2表示TCP或UDP的端口号,取值范围为0~65535。当使用range操作符时,必须指定port2参数,使用其它操作符时,不需要指定port2参数。
destination-port { operator port1 [ port2 ] }:指定规则的目的端口信息。其中:
· operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其它的只需要一个端口号做操作数。
· port1、port2表示TCP或UDP的端口号,取值范围为0~65535。当使用range操作符时,必须指定port2参数,使用其它操作符时,不需要指定port2参数。
vpn-instance vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。应用ACL进行报文过滤,ACL规则中未指定VPN实例时,表示该规则对非VPN报文和VPN报文均有效。其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明。
【使用指导】
新创建的规则不能与已有规则的内容完全相同,否则将提示出错,并导致创建失败。
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即在其原有内容的基础上叠加新的内容。
用户自定义ACL只能匹配报文的前128个字节。
undo rule { deny | permit }命令可在不指定rule-id情况下删除整条规则,但无法删除规则中的部分内容;使用其删除整条规则时,必须输入已存在规则的完整形式;本命令适用于删除通过脚本文件在未指定rule-id情况下创建的规则。
对于命令形式二:
· 创建的规则除可以通过用户自定义的字符串对报文进行匹配外,还可以通过源地址、目的地址、端口号及承载的协议类型等条件对报文进行匹配。
· 使用rule命令对UDP报文进行匹配时,protocol需配置为udp,且必须从L4报文头开始偏移。
· 使用rule命令对IP报文进行匹配时,protocol需配置为ip,且必须从L4报文头开始偏移。
· 使用undo rule rule-id命令即可以删除整条规则,也可以删除指定规则中的部分内容。
· 请勿在一条规则中同时配置匹配IPv4及IPv6属性,否则该规则将不生效。
· 使用rule命令对IPv6报文进行匹配时,不支持precedence和tos。
counting关键字用于开启本规则的匹配统计功能,而packet-filter命令中的hardware-count关键字则用于开启指定ACL内所有规则的规则匹配硬件统计功能。
display acl user-defined all命令可以查看所有已存在的用户自定义ACL规则。
【举例】
# 为用户自定义ACL 5005创建规则如下:允许从L2帧头的0字节开始算起第12、13两字节的内容为0x0806的报文(即ARP报文)通过。
<Sysname> system-view
[Sysname] acl user-defined 5005
[Sysname-acl-user-5005] rule permit l2 0806 ffff 12
# 为用户自定义ACL 5006创建规则如下:允许129.9.0.0/16网段内的主机与202.38.160.0/24网段内的主机的HTTP服务端口(端口号为80)建立连接。
<Sysname> system-view
[Sysname] acl user-defined 5006
[Sysname-acl-user-5006] rule permit tcp source 129.9.0.0 0.0.255.255 destination 202.38.160.0 0.0.0.255
# 为用户自定义ACL 5007创建规则如下:允许2030:5060::/64网段内的主机与FE80:5060::/96网段内主机的HTTP服务端口(端口号为80)建立连接。
<Sysname> system-view
[Sysname] acl user-defined 5007
[Sysname-acl-user-5007] rule permit ipv6-protocol tcp source 2030:5060::/64 destination fe80:5060::/96
# 为用户自定义ACL 5009创建规则如下:允许携带ACK标志位的TCP报文通过。
<Sysname> system-view
[Sysname] acl user-defined 5009
[Sysname-acl-user-5009] rule permit tcp ack 1
【相关命令】
· acl
· display acl
· object-group(安全命令参考/对象组)
· time-range(ACL和QoS命令参考/时间段)
rule dual-stack命令用来为用户自定义ACL创建一条双栈匹配规则。
undo rule dual-stack命令用来为用户自定义ACL删除一条双栈匹配规则。
【命令】
rule [ rule-id ] { deny | permit } dual-stack { tcp | udp } [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | destination any | destination-port { operator port1 [ port2 ] } | source any | source-port { operator port1 [ port2 ] } | vpn-instance vpn-instance-name ] * [ counting | time-range time-range-name ] *
undo rule [ rule-id ] { deny | permit } dual-stack { tcp | udp } [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | destination any | destination-port { operator port1 [ port2 ] } | source any | source-port { operator port1 [ port2 ] } | vpn-instance vpn-instance-name ] * [ counting | time-range time-range-name ] *
【缺省情况】
用户自定义ACL内不存在任何规则。
【视图】
用户自定义ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定用户自定义ACL规则的编号,取值范围为0~65534。若未指定本参数,系统将按照步长为5从0开始,自动分配一个大于现有最大编号的步长最小倍数。譬如现有规则的最大编号为28,步长为5,那么自动分配的新编号将是30。
deny:表示拒绝符合条件的报文。
permit:表示允许符合条件的报文。
counting:表示开启规则匹配软件统计功能,缺省为关闭。
time-range time-range-name:指定本规则生效的时间段。time-range-name表示时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。若该时间段尚未配置,该规则仍会成功创建但系统将给出提示信息,并在该时间段的配置完成后此规则才会生效。有关时间段的详细介绍和具体配置过程,请参见“ACL和QoS配置指导”中的“时间段”。
udp:指定协议类型为UDP。
tcp:指定协议类型为TCP。协议类型为TCP时,还可配置如表1-32所示的规则信息参数。
表1-26 TCP特有规则信息参数
|
参数 |
说明 |
|
ack ack-value |
匹配是否携带对应标志位的TCP报文 各value为0时表示不携带此标志位,为1时表示携带此标志位 如果在一条规则中设置了多个TCP标志位的匹配值,则这些匹配条件之间的关系为“与”。譬如:当配置为ack 0 psh 1时,将匹配不携带ACK标志位且携带PSH标志位的TCP报文 |
|
fin fin-value |
|
|
psh psh-value |
|
|
rst rst-value |
|
|
syn syn-value |
|
|
urg urg-value |
|
|
established |
匹配TCP连接报文 表示匹配TCP报文中ACK或RST标志位为1的报文 |
source any:指定任意源IP地址。
destination any:指定任意目的IP地址。
source-port { operator port1 [ port2 ] }:指定规则的源端口信息。其中:
· operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。
· port1、port2表示TCP或UDP的端口号,取值范围为0~65535。当使用range操作符时,必须指定port2参数,使用其它操作符时,不需要指定port2参数。
destination-port { operator port1 [ port2 ] }:指定规则的目的端口信息。其中:
· operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)或者range(在范围内,包括边界值)。只有操作符range需要两个端口号做操作数,其它的只需要一个端口号做操作数。
· port1、port2表示TCP或UDP的端口号,取值范围为0~65535。当使用range操作符时,必须指定port2参数,使用其它操作符时,不需要指定port2参数。
vpn-instance vpn-instance-name:MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。应用ACL进行报文过滤,ACL规则中未指定VPN实例时,表示该规则对非VPN报文和VPN报文均有效。其他特性引用ACL,ACL规则中未指定VPN实例时,不同业务模块的处理方式有所不同,请参见业务模块中的相关说明。
【使用指导】
双栈匹配,即可以匹配IPv4报文和IPv6报文。
使用rule命令时,如果指定编号的规则不存在,则创建一条新的规则;如果指定编号的规则已存在,则对旧规则进行修改,即与原规则冲突的参数会被覆盖,而原规则中不存在的参数,则会新增。
【举例】
# 为用户自定义ACL 5010创建规则如下:允许UDP源端口号为100的IPv4和IPv6报文通过。
<Sysname> system-view
[Sysname] acl user-defined 5010
[Sysname-acl-user-5010] rule permit dual-stack udp source-port eq 100
【相关命令】
· acl
· display acl
· time-range(ACL和QoS命令参考/时间段)
rule comment命令用来为规则配置描述信息。
undo rule comment命令用来删除指定规则的描述信息。
【命令】
rule rule-id comment text
undo rule rule-id comment
【缺省情况】
规则没有描述信息。
【视图】
IPv4基本ACL视图/IPv4高级ACL视图
IPv6基本ACL视图/IPv6高级ACL视图
二层ACL视图
用户自定义ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定规则的编号,该规则必须存在。取值范围为0~65534。
text:表示规则的描述信息,为1~127个字符的字符串,区分大小写。
【使用指导】
使用rule comment命令时,如果指定的规则没有描述信息,则为其添加描述信息,否则修改其描述信息。
【举例】
# 为IPv4基本ACL 2000配置规则0,并为该规则配置描述信息。
<Sysname> system-view
[Sysname] acl basic 2000
[Sysname-acl-ipv4-basic-2000] rule 0 deny source 1.1.1.1 0
[Sysname-acl-ipv4-basic-2000] rule 0 comment This rule is used on ten-gigabitethernet 1/0/1.
【相关命令】
· display acl
rule remark命令用来创建一条规则注释信息。
undo rule remark命令用来删除一条或多条规则注释信息。
【命令】
rule [ rule-id ] remark text
undo rule [ rule-id ] remark [ text ]
【缺省情况】
ACL内没有任何规则注释信息。
【视图】
IPv4基本ACL视图/IPv4高级ACL视图
IPv6基本ACL视图/IPv6高级ACL视图
二层ACL视图
用户自定义ACL视图
【缺省用户角色】
network-admin
【参数】
rule-id:指定规则的编号(该编号对应的规则可以存在也可以不存在),取值范围为0~65534。该编号用来确定规则注释信息显示的位置:
· 在配置顺序下:若该编号与现有某规则的编号相同,则该注释信息将紧邻该规则之前显示;否则,将按照编号由小到大显示。
· 在自动排序下:若该编号与现有某规则的编号相同,则该注释信息将紧邻该规则之前显示;否则,将在所有规则的最后显示。
text:表示规则注释信息,为1~127个字符的字符串,区分大小写。
【使用指导】
需要注意的是:
· 使用rule remark命令时,如果没有指定rule-id参数,系统将按照步长从0开始,自动分配一个大于现有规则中最大编号的最小编号。
· 使用undo rule remark命令时,如果没有指定rule-id和text参数,将删除所有规则注释信息;如果没有指定rule-id但指定了text参数,则只删除指定内容的规则注释信息。
【举例】
# 假设规则编号为10~25的这四条规则是为VIP用户制定的,为方便后续维护,对这四条规则进行如下注释:开头和结尾分别注释为“Rules for VIP_start”和“Rules for VIP_end”。
<Sysname> system-view
[Sysname] acl basic 2000
[Sysname-acl-basic-2000] rule 10 remark Rules for VIP_start
[Sysname-acl-basic-2000] rule 26 remark Rules for VIP_end
[Sysname-acl-basic-2000] display this
#
acl number 2000
rule 0 permit source 14.1.1.0 0.0.0.255
rule 5 permit source 10.1.1.1 0 time-range work-time
rule 10 remark Rules for VIP_start
rule 10 permit source 192.168.0.0 0.0.0.255
rule 15 permit source 1.1.1.1 0
rule 20 permit source 10.1.1.1 0
rule 25 permit counting
rule 26 remark Rules for VIP_end
#
return
【相关命令】
· display acl
step命令用来配置规则编号的步长。
undo step命令用来恢复缺省情况。
【命令】
step step-value [ start start-value ]
undo step
【缺省情况】
规则编号的步长为5,起始值为0。
【视图】
IPv4基本ACL视图/IPv4高级ACL视图
IPv6基本ACL视图/IPv6高级ACL视图
二层ACL视图
【缺省用户角色】
network-admin
【参数】
step-value:表示规则编号的步长值,取值范围为1~20。
start-value:表示规则编号的起始值。取值范围为0~20。
【使用指导】
系统为规则自动分配编号的方式如下:系统从规则编号的起始值开始,自动分配一个大于现有最大编号的步长最小倍数的编号。譬如原有编号为0、5、9、10和12的五条规则,步长为5,此时如果创建一条规则且不指定编号,那么系统将自动为其分配编号15。
如果步长或规则编号的起始值发生了改变,ACL内原有全部规则的编号都将自动从规则编号的起始值开始按步长重新排列。譬如,某ACL内原有编号为0、5、9、10和15的五条规则,当修改步长为2之后,这些规则的编号将依次变为0、2、4、6和8。
【举例】
# 将IPv4基本ACL 2000的规则编号的步长配置为2。
<Sysname> system-view
[Sysname] acl basic 2000
[Sysname-acl-ipv4-basic-2000] step 2
【相关命令】
· display acl
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
