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

H3C S3600系列以太网交换机 命令手册-Release 1602(V1.02)

25-ACL命令

本章节下载 25-ACL命令  (237.72 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S3600/S3600-EI/Command/Command_Manual/H3C_S3600_Release_1602_CM(V1.02)/200906/637673_30005_0.htm

25-ACL命令


1 ACL命令

l    ACL命令新增“在VLAN上应用ACL”特性,请参见1.1.8  packet-filter vlan

l    ACL命令新增“为二层ACL配置内层VLAN信息”特性,请参见1.1.11  rule(二层ACL)

 

1.1  ACL命令

1.1.1  acl

【命令】

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

undo acl { all | number acl-number }

【视图】

系统视图

【参数】

all:所有的ACL(Access Control List,访问控制列表)。

number acl-number:ACL序号,取值范围为:

l              2000~2999:表示基本ACL。

l              3000~3999:表示高级ACL(3998与3999是系统为集群管理预留的编号,用户无法配置)。

l              4000~4999:表示二层ACL。

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

match-order:指定对该ACL规则的匹配顺序,匹配顺序如下:

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

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

关于autoconfig这两种匹配顺序的详细介绍请参见“ACL操作”中的描述。

需要注意的是,在定义二层ACL及用户自定义ACL时没有match-order参数,二层ACL及用户自定义ACL的匹配顺序为config

【描述】

acl命令用来定义ACL,并进入相应的ACL视图。undo acl命令用来删除指定的ACL,或者删除全部ACL。

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

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

进入相应的ACL视图之后,可以用rule命令增加此ACL的规则。

相关配置可参考命令rule

【举例】

# 定义基本ACL 2000,并配置其匹配顺序为“深度优先”。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] acl number 2000 match-order auto

# 为基本ACL 2000创建三条源IP地址范围(反掩码中“0”位的数量)不同的规则。

[Sysname-acl-basic-2000] rule 1 permit source 1.1.1.1 0.255.255.255

[Sysname-acl-basic-2000] rule 2 permit source 2.2.2.2 0.0.255.255

[Sysname-acl-basic-2000] rule 3 permit source 3.3.3.3 0.0.0.255

# 使用display acl命令查看基本ACL 2000的配置信息。

[Sysname-acl-basic-2000] display acl 2000

Basic ACL  2000, 3 rules, match-order is auto

Acl's step is 1

 rule 3 permit source 3.3.3.0 0.0.0.255

 rule 2 permit source 2.2.0.0 0.0.255.255

 rule 1 permit source 1.0.0.0 0.255.255.255

以上信息表明,交换机按照“深度优先”的原则对基本ACL 2000内的规则进行排序,即按照规则反掩码中“0”位的数量由多到少的顺序排列。

1.1.2  description

【命令】

description text

undo description

【视图】

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

【参数】

text:ACL的描述信息,取值范围为1~127个字符,可以包含空格和特殊字符。

【描述】

description命令用来定义ACL的描述信息,描述该ACL的具体用途、应用于哪些端口等信息,方便用户对ACL进行区分和识别。undo description命令用来删除ACL的描述信息。

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

【举例】

# 定义高级ACL 3000的描述信息为“This acl is used for filtering all HTTP packets”。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] acl number 3000

[Sysname-acl-adv-3000] description This acl is used for filtering all HTTP packets

# 使用display acl命令查看高级ACL 3000的配置信息。

[Sysname-acl-adv-3000] display acl 3000

Advanced ACL  3000, 0 rule

This acl is used for filtering all HTTP packets

Acl's step is 1

# 删除高级ACL 3000的描述信息。

[Sysname-acl-adv-3000] undo description

1.1.3  display acl

【命令】

display acl { all | acl-number }

【视图】

任意视图

【参数】

all:所有的ACL。

acl-number:指定ACL的序号,取值范围为2000~5999。

【描述】

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

需要注意的是,如果用户在配置ACL的时候指定了match-order参数,则在使用display acl命令时,显示的是交换机按照auto(深度优先)或config(配置顺序)对ACL中的规则进行排序后的结果。

【举例】

# 显示基本ACL 2000的配置信息。

<Sysname> display acl 2000

Basic ACL  2000, 3 rules, match-order is auto

This acl is used in eth 1/0/1

Acl's step is 1

 rule 3 permit source 3.3.3.0 0.0.0.255

 rule 2 permit source 2.2.0.0 0.0.255.255

 rule 1 permit source 1.0.0.0 0.255.255.255

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

字段

描述

Basic ACL  2000

该ACL属于基本ACL,序号为2000

3 rules

该基本ACL包含3条规则

match-order is auto

该基本ACL的匹配顺序为“深度优先”,如果不显示此字段,则表示匹配顺序为config(配置顺序)

This acl is used in eth 1/0/1

该基本ACL的描述信息

Acl's step is 1

该基本ACL的规则序号的步长值为1

rule 3 permit source 3.3.3.0 0.0.0.255

该基本ACL包含的规则的详细信息

 

1.1.4  display drv qacl_resource

【命令】

display drv qacl_resource

【视图】

任意视图

【参数】

【描述】

display drv qacl_resource命令用来显示交换机上ACL资源的使用情况。

用户可以根据该命令的输出信息来了解ACL规则消耗的资源数目,确认ACL无法下发的原因是否与资源耗尽有关。

【举例】

# 显示当前交换机的ACL资源使用情况。

<Sysname> display drv qacl_resource

         block   used-mask used-rule spare-mask  spare-rule

          0         7         45        9         211

          1         7         45        9         211

          2         7         45        9         211

          6         8         128       8         0

          7         7         17        9         111

          8         7         17        9         111

          9         7         17        9         111

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

字段

描述

block

l      对于百兆以太网端口,从交换机前面板左侧开始,每4列为一个block(8个百兆以太网端口),从0开始编号,即0表示Ethernet1/0/1~Ethernet1/0/8,1表示Ethernet1/0/9~Ethernet1/0/16,2表示Ethernet1/0/17~Ethernet1/0/24

l      对于千兆以太网端口,每个端口为一个block,从6开始编号,即6表示GigabitEthernet1/1/1,7表示GigabitEthernet1/1/2,8表示GigabitEthernet1/1/3,9表示GigabitEthernet1/1/4

used-mask

已经使用的MASK资源数目

used-rule

已经使用的RULE资源数目

spare-mask

剩余的MASK资源数目

spare-rule

剩余的RULE资源数目

 

# 在端口GigabitEthernet 1/1/1上下发基本ACL 2001。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] interface GigabitEthernet 1/1/1

[Sysname-GigabitEthernet1/1/1] packet-filter inbound ip-group 2001

Applying Acl 2001 rule 0 failed!  Reason: Resource unavailable!(GigabitEthernet1/1/1)

以上显示信息表明,因为端口GigabitEthernet 1/1/1上剩余的可用RULE数量为0,所以规则下发失败。

1.1.5  display packet-filter

【命令】

display packet-filter { interface  interface-type interface-number | unitid unit-id }

【视图】

任意视图

【参数】

interface interface-type interface-number:端口类型和端口编号。

unitid unit-id交换机的Unit ID。如果交换机没有形成Fabric,则unit-id参数的取值只能为1,表示显示当前交换机上所有端口的包过滤的应用信息;如果交换机已经形成Fabric,则unit-id参数的取值范围为1~8,表示显示指定Unit上所有端口的包过滤的应用信息。

【描述】

display packet-filter命令用来显示包过滤的应用信息。

【举例】

# 交换机没有形成Fabric,显示当前交换机所有端口上包过滤的应用信息。

<Sysname> display packet-filter unitid 1

Ethernet1/0/1

 Inbound:

 Acl 2000 rule 0  running

Ethernet1/0/2

 Outbound:

 Acl 2001 rule 0  not running

表1-3 display packet-filter命令显示信息描述表

字段

描述

Ethernet1/0/1

应用包过滤的端口

Inbound

应用包过滤的方向,包含以下两种:

l      Inbound:表示入方向

l      Outbound:表示出方向

Acl 2000 rule 0

过滤规则为基本ACL 2000的0号规则

running

规则的下发状态,包含以下两种:

l      running:表示激活

l      not running:表示没有激活,通常是由于此规则引用的时间段不生效所致

 

1.1.6  display time-range

【命令】

display time-range { all | time-name }

【视图】

任意视图

【参数】

all:所有的时间段。

time-name:为时间段的名称,以英文字母a~z或A~Z为起始字母的字符串,取值范围为1~32个字符。

【描述】

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

相关配置可参考命令time-range

【举例】

# 显示所有的时间段。

<Sysname> display time-range all

Current time is 17:01:34 May/21/2007 Monday

 

Time-range : tr ( Active )

 12:00 to 18:00 working-day

 

Time-range : tr1 ( Inactive )

 From 12:00 Jan/1/2008 to 12:00 Jun/1/2008

表1-4 display time-range命令显示信息描述表

字段

描述

Current time is 17:01:34 May/21/2007 Monday

系统的当前时间

Time-range

时间段的名称

Active

时间段的状态,包含以下两种:

l      Active:表示此时间段处于激活状态,已经生效

l      Inactive:表示此时间段处于非激活状态,没有生效

12:00 to 18:00 working-day

周期时间段,范围为工作日的12点到18点

From 12:00 Jan/1/2008 to 12:00 Jun/1/2008

绝对时间段,范围为2008年1月1日12点到2008年6月1日12点

 

1.1.7  packet-filter

【命令】

packet-filter { inbound | outbound } acl-rule

undo packet-filter { inbound | outbound } acl-rule

【视图】

以太网端口视图

【参数】

inbound:表示对端口接收的数据包进行过滤。

outbound:表示对端口发送的数据包进行过滤。

acl-rule:应用的ACL规则,可以是多种ACL的组合。组合方式如表1-5所示。

表1-5 组合应用ACL的方式

组合方式

acl-rule的形式

单独应用一个IP型ACL(基本ACL或高级ACL)中的所有规则

ip-group acl-number

单独应用一个IP型ACL中的一条规则

ip-group acl-number rule rule-id

单独应用一个二层ACL中的所有规则

link-group acl-number

单独应用一个二层ACL中的一条规则

link-group acl-number rule rule-id

单独应用一个用户自定义ACL中的所有规则

user-group acl-number

单独应用一个用户自定义ACL中的一条规则

user-group acl-number rule rule-id

同时应用IP型ACL中一条规则和二层型ACL的一条规则

ip-group acl-number rule rule-id link-group acl-number rule rule-id

 

ip-group acl-number:表示基本或高级ACL序号,取值范围为2000~3999。

link-group acl-number:表示二层ACL序号,取值范围为4000~4999。

user-group acl-number:表示用户自定义ACL序号,取值范围为5000~5999。

rule rule-id:ACL规则编号,取值范围为0~65534。如果不指定规则编号则表示ACL中的所有规则。

【描述】

packet-filter命令用来在端口上应用ACL,对数据包进行过滤。undo packet-filter命令用来取消ACL在端口上的应用。

【举例】

# 在端口Ethernet 1/0/1上应用基本ACL 2000中的所有规则,对端口接收的数据包进行过滤。假设基本ACL 2000已经创建并且相关规则已经存在。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] interface Ethernet 1/0/1

[Sysname-Ethernet1/0/1] packet-filter inbound ip-group 2000

[Sysname-Ethernet1/0/1] quit

# 在端口Ethernet 1/0/2上应用二层ACL 4000中的规则1,对端口发送的数据包进行过滤。假设二层ACL 4000已经创建并且相关规则已经存在。

[Sysname] interface Ethernet 1/0/2

[Sysname-Ethernet1/0/2] packet-filter outbound link-group 4000 rule 1

[Sysname-Ethernet1/0/2] quit

# 在端口Ethernet 1/0/3上应用用户自定义ACL 5000中的规则2,对端口接收的数据包进行过滤。假设用户自定义ACL 5000已经创建并且相关规则已经存在。

[Sysname] interface Ethernet 1/0/3

[Sysname-Ethernet1/0/3] packet-filter inbound user-group 5000 rule 2

[Sysname-Ethernet1/0/3] quit

# 在端口Ethernet 1/0/4上应用高级ACL 3000中的规则1和二层ACL 4000中的规则2,对端口接收的数据包进行过滤。假设高级ACL 3000和二层ACL 4000已经创建并且相关规则已经存在。

[Sysname] interface Ethernet 1/0/4

[Sysname-Ethernet1/0/4] packet-filter inbound ip-group 3000 rule 1 link-group 4000 rule 2

完成上述配置后,用户可以使用display packet-filter命令来查看包过滤的应用信息。

1.1.8  packet-filter vlan

【命令】

packet-filter vlan vlan-id { inbound | outbound } acl-rule

undo packet-filter vlan vlan-id { inbound | outbound } acl-rule

【视图】

系统视图

【参数】

vlan-id:VLAN编号。

inbound:表示对VLAN内所有端口接收的数据包进行过滤。

outbound:表示对VLAN内所有端口发送的数据包进行过滤。

acl-rule:应用的ACL,可以是多种ACL的组合。组合方式说明如表1-5所示。

【描述】

packet-filter vlan命令用来在当前VLAN中所有端口上应用ACL,对VLAN中的所有端口上的数据包进行过滤。undo packet-filter vlan命令用来取消ACL在当前VLAN中所有端口上的应用。

当用户需要在某一个VLAN内的所有端口上应用同一条ACL时,可以使用packet-filter vlan命令来批量下发ACL,减少配置的工作量。

【举例】

# 在VLAN 10上应用基本ACL 2000中的所有规则,对VLAN 10中的所有端口接收的数据包进行过滤。假设VLAN 10和基本ACL 2000已经创建并且相关规则已经存在。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] packet-filter vlan 10 inbound ip-group 2000

# 在VLAN 20上应用二层ACL 4000中的规则1,对VLAN 20中的所有端口发送的数据包进行过滤。假设VLAN 20和二层ACL 4000已经创建并且相关规则已经存在。

[Sysname] packet-filter vlan 20 outbound link-group 4000 rule 1

# 在VLAN 30上应用用户自定义ACL 5000中的规则2,对VLAN 30中的所有端口接收的数据包进行过滤。假设VLAN 30和用户自定义ACL 5000已经创建并且相关规则已经存在。

[Sysname] packet-filter vlan 30 inbound user-group 5000 rule 2

# 在VLAN 40上应用高级ACL 3000中的规则1和二层ACL 4000中的规则2,对VLAN 40中的所有端口接收的数据包进行过滤。假设VLAN 40、高级ACL 3000和二层ACL 4000已经创建并且相关规则已经存在。

[Sysname] packet-filter vlan 40 inbound ip-group 3000 rule 1 link-group 4000 rule 2

完成上述配置后,用户可以使用display packet-filter命令来查看包过滤的应用信息。

1.1.9  rule(基本ACL)

【命令】

rule [ rule-id ] { deny | permit } [ rule-string ]

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

【视图】

基本ACL视图

【参数】

1. rule命令的参数

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

deny:表示丢弃符合条件的数据包。

permit:表示允许符合条件的数据包通过。

rule-string:ACL规则信息,具体参数说明如表1-6所示。

表1-6 基本ACL规则信息

参数

类别

作用

说明

fragment

分片信息

定义规则仅对非尾片分片报文有效

-

source { sour-addr sour-wildcard | any }

源地址信息

定义基本ACL规则的源地址信息

sour-addr为指定源IP地址,采用点分十进制表示;sour-wildcard为目标子网掩码的反码,采用点分十进制表示;sour-wildcard可以为0,代表主机地址

any代表任意源IP地址

time-range time-name

时间段信息

定义规则生效的时间段

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

 

sour-wildcard为目标子网掩码的反码,采用点分十进制表示。例如,如果用户想指定子网掩码255.255.0.0,则需要输入0.0.255.255。

 

2. undo rule命令的参数

rule-id:ACL规则编号,必须是一个已经存在的ACL规则编号。如果用户不知道ACL规则的编号,可以使用display acl命令来查看。

fragment:删除编号对应的ACL规则的对非尾片分片报文有效的设置。

source:删除编号对应的ACL规则的源IP地址的设置。

time-range:删除编号对应的ACL规则的时间段的设置。

【描述】

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

在删除一条ACL规则时,如果不指定其他参数,交换机将这个ACL规则完全删除;否则交换机只删除该ACL规则中相应的属性信息。

需要注意的是:

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

l              在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。

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

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

【举例】

# 创建基本ACL 2000,定义规则1,禁止源IP地址为192.168.0.1的报文通过。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] acl number 2000

[Sysname-acl-basic-2000] rule 1 deny source 192.168.0.1 0

[Sysname-acl-basic-2000] quit

# 创建基本ACL 2001,定义规则1,禁止非尾片分片报文通过。

[Sysname] acl number 2001

[Sysname-acl-basic-2001] rule 1 deny fragment

[Sysname-acl-basic-2001] quit

# 创建基本ACL 2002,定义规则1,禁止所有报文在时间段trname所表示的时间范围内通过。

[Sysname] acl number 2002

[Sysname-acl-basic-2002] rule 1 deny time-range trname

完成上述配置后,用户可以使用display acl命令查看ACL的配置信息。

1.1.10  rule(高级ACL)

【命令】

rule [ rule-id ] { deny | permit } protocol [ rule-string ]

undo rule rule-id  [ destination | destination-port | dscp | fragment | icmp-type | precedence | source | source-port | time-range | tos ]*

【视图】

高级ACL视图

【参数】

1. rule命令的参数说明

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

deny:表示丢弃符合条件的数据包。

permit:表示允许符合条件的数据包通过。

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

rule-string:ACL规则信息,具体参数说明如表1-7所示。

表1-7 高级ACL规则信息

参数

类别

作用

说明

source { sour-addr sour-wildcard | any }

源地址信息

定义ACL规则的源地址信息

sour-addr sour-wildcard用来确定数据包的源地址,点分十进制表示;sour-wildcard可以为0,表示主机地址

any代表任意源地址

destination { dest-addr dest-wildcard | any }

目的地址信息

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

dest-addr dest-wildcard用来确定数据包的目的地址,点分十进制表示;dest-wildcard可以为0,表示主机地址

any代表任意目的地址

precedence precedence

报文优先级

IP优先级

用数字表示时,取值范围为0~7

tos tos

报文优先级

ToS优先级

用数字表示时,取值范围为0~15

dscp dscp

报文优先级

DSCP优先级

用数字表示时,取值范围为0~63

fragment

分片信息

定义规则仅对非尾片分片报文有效

-

time-range time-name

时间段信息

定义规则生效的时间段

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

 

sour-wildcarddest-wildcard为目标子网掩码的反码,点分十进制表示。例如,如果用户想指定子网掩码255.255.0.0,则需要输入0.0.255.255。

 

如果选择dscp关键字,除了直接输入数值0~63外,用户也可输入如表1-8所示的关键字。

表1-8 DSCP值说明

关键字

DSCP值(十进制)

DSCP值(二进制)

af11

10

001010

af12

12

001100

af13

14

001110

af21

18

010010

af22

20

010100

af23

22

010110

af31

26

011010

af32

28

011100

af33

30

011110

af41

34

100010

af42

36

100100

af43

38

100110

be

0

000000

cs1

8

001000

cs2

16

010000

cs3

24

011000

cs4

32

100000

cs5

40

101000

cs6

48

110000

cs7

56

111000

ef

46

101110

 

如果选择precedence关键字,除了直接输入数值0~7外,用户也可输入如表1-9所示的关键字。

表1-9 IP precedence值说明

关键字

IP Precedence(十进制)

IP Precedence(二进制)

routine

0

000

priority

1

001

immediate

2

010

flash

3

011

flash-override

4

100

critical

5

101

internet

6

110

network

7

111

 

如果选择tos关键字,除了直接输入数值0~15外,用户也可输入如表1-10所示的关键字。

表1-10 ToS值说明

关键字

ToS(十进制)

ToS(二进制)

normal

0

0000

min-monetary-cost

1

0001

max-reliability

2

0010

max-throughput

4

0100

min-delay

8

1000

 

当协议类型选择为TCP或者UDP时,用户还可以定义如表1-11所示信息。

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

参数

类别

作用

说明

source-port operator port1 [ port2 ]

源端口

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

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

port1port2:TCP或UDP的端口号,用名字或数字表示,数字的取值范围为0~65535

配置操作符为range时,port2的取值不需要一定大于port1的取值,交换机会自动识别取值范围;当port1port2的取值相同时,交换机会将操作符range转换为eq

另外需要注意的是,当用户配置操作符为lt 1或gt 65534时,交换机会将其转换为eq 0或eq 65535

destination-port operator port1 [ port2 ]

目的端口

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

established

TCP连接建立标识

表示此条规则仅对TCP建立连接的第一个SYN报文有效

TCP协议特有的参数

 

H3C S3600系列以太网交换机在端口或VLAN上应用高级ACL时,如果ACL规则中包含TCP/UDP的端口信息,则operator操作符的取值只能为eq(等于)。

 

当TCP或UDP的端口号用名字表示时,用户还可以定义如表1-12所示信息。

表1-12 TCP或UDP端口取值信息

协议类型

取值信息

TCP

CHARgen(19)、bgp(179)、cmd(514)、daytime(13)、discard(9)、domain(53)、echo(7)、exec(512)、finger(79)、ftp(21)、ftp-data(20)、gopher(70)、hostname(101)、irc(194)、klogin(543)、kshell(544)、login(513)、lpd(515)、nntp(119)、pop2(109)、pop3(110)、smtp(25)、sunrpc(111)、tacacs(49)、talk(517)、telnet(23)、time(37)、uucp(540)、whois(43)、www(80)

UDP

biff(512)、bootpc(68)、bootps(67)、discard(9)、dns(53)、dnsix(90)、echo(7)、mobilip-ag(434)、mobilip-mn(435)、nameserver(42)、netbios-dgm(138)、netbios-ns(137)、netbios-ssn(139)、ntp(123)、rip(520)、snmp(161)、snmptrap(162)、sunrpc(111)、syslog(514)、tacacs-ds(65)、talk(517)、tftp(69)、time(37)、who(513)、xdmcp(177)

 

当协议类型选择为ICMP时,用户还可以定义如表1-13所示信息。

表1-13 ICMP特有的规则信息

参数

类别

作用

说明

icmp-type icmp-type icmp-code

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

定义规则中ICMP报文的类型和消息码信息

icmp-type:ICMP消息类型,取值为0~255

icmp-code:ICMP的消息码,取值为0~255

 

当协议类型选择为ICMP时,用户也可以直接在icmp-type参数后输入ICMP的消息名称,如表1-14所示。

表1-14 ICMP消息

名称

ICMP TYPE

ICMP CODE

echo

Type=8

Code=0

echo-reply

Type=0

Code=0

fragmentneed-DFset

Type=3

Code=4

host-redirect

Type=5

Code=1

host-tos-redirect

Type=5

Code=3

host-unreachable

Type=3

Code=1

information-reply

Type=16

Code=0

information-request

Type=15

Code=0

net-redirect

Type=5

Code=0

net-tos-redirect

Type=5

Code=2

net-unreachable

Type=3

Code=0

parameter-problem

Type=12

Code=0

port-unreachable

Type=3

Code=3

protocol-unreachable

Type=3

Code=2

reassembly-timeout

Type=11

Code=1

source-quench

Type=4

Code=0

source-route-failed

Type=3

Code=5

timestamp-reply

Type=14

Code=0

timestamp-request

Type=13

Code=0

ttl-exceeded

Type=11

Code=0

 

2. undo rule命令的参数说明

rule-id:ACL规则编号,必须是一个已经存在的ACL规则编号。如果用户不知道ACL规则的编号,可以使用display acl命令来查看。

source:删除编号对应的ACL规则的源IP地址的设置。

source-port:删除编号对应的ACL规则的源端口的设置,本参数仅在规则定义的协议是TCP或者UDP的情况下有效。

destination:删除编号对应的ACL规则的目的IP地址的设置。

destination-port:删除编号对应的ACL规则的目的端口的设置,本参数仅在规则定义的协议是TCP或者UDP的情况下有效。

icmp-type:删除编号对应的ACL规则的ICMP类型和消息码的设置,本参数仅在规则定义的协议是ICMP的情况下有效。

precedence:删除编号对应的ACL规则的IP Precedence的设置。

tos:删除编号对应的ACL规则的ToS的设置。

dscp:删除编号对应的ACL规则的DSCP的设置。

time-range:删除编号对应的ACL规则的时间段的设置。

fragment:删除编号对应的ACL规则的对非尾片分片报文有效的设置。

【描述】

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

在删除一条ACL规则时,如果不指定其他参数,交换机将这个ACL规则完全删除;否则交换机只删除该ACL规则中相应的属性信息。

需要注意的是:

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

l              在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。

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

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

【举例】

# 创建高级ACL 3000,定义规则1,拒绝源IP地址为192.168.0.1并且DSCP优先级为46的IP报文通过。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] acl number 3000

[Sysname-acl-adv-3000] rule 1 deny ip source 192.168.0.1 0 dscp 46

[Sysname-acl-adv-3000] quit

# 创建高级ACL 3001,定义规则1,允许从129.9.0.0/16网段的主机向202.38.160.0/24网段的主机发送的目的端口号为80的TCP报文通过。

[Sysname] acl number 3001

[Sysname-acl-adv-3001] rule 1 permit tcp source 129.9.0.0 0.0.255.255 destination 202.38.160.0 0.0.0.255 destination-port eq 80

完成上述配置后,用户可以使用display acl命令查看ACL的配置信息。

1.1.11  rule(二层ACL)

【命令】

rule [ rule-id ] { deny | permit } [ rule-string ]

undo rule rule-id

【视图】

二层ACL视图

【参数】

rule-idACL规则编号,取值范围为0~65534。

deny:表示丢弃符合条件的数据包。

permit:表示允许符合条件的数据包通过。

rule-string:ACL规则信息,具体参数说明如表1-15所示。

表1-15 二层ACL规则信息

参数

类别

作用

说明

format-type

链路层封装类型

定义规则中的链路层封装类型

format-type:取值可以为802.3/802.2802.3ether_iisnap

lsap lsap-code lsap-wildcard

LSAP字段

定义规则的LSAP字段

lsap-code:数据帧的封装格式,16比特的十六进制数

lsap-wildcard:lsap值的掩码, 16比特的十六进制数,用于指定屏蔽位

source { source-mac-addr source-mac-mask | vlan-id }*

MAC信息或源VLAN信息

定义规则的源MAC地址范围或源VLAN ID

source-mac-addr:源MAC地址,格式为H-H-H

source-mac-mask:源MAC地址的掩码,格式为H-H-H

vlan-id:源VLAN ID,取值范围为1~4094

dest dest-mac-addr dest-mac-mask

目的MAC信息

定义规则的目的MAC地址范围

dest-mac-addr:目的MAC地址,格式为H-H-H

dest-mac-mask:目的MAC地址的掩码,格式为H-H-H

cos vlan-pri

802.1p优先级

定义规则的802.1p优先级

vlan-pri:取值范围为0~7

c-tag-vlan c-tag-vlan-begin [ to c-tag-vlan-end ]

内层VLAN信息

定义规则的内层VLAN信息

c-tag-vlan-beginc-tag-vlan-end:VLAN ID,取值范围为1~4094

c-tag-vlan参数通常与QinQ功能配合使用,关于QinQ功能的详细介绍请参见“VLAN-VPN”部分

time-range time-name

时间段信息

定义规则生效的时间段

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

type protocol-type protocol-mask

以太网帧的协议类型

定义以太网帧的协议类型

protocol-type:协议类型

protocol-mask:协议类型掩码

 

H3C S3600系列以太网交换机在端口或VLAN上应用二层ACL时,不支持配置format-typelsap参数。

 

【描述】

rule命令用来定义ACL规则。undo rule命令用来删除ACL规则。

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

需要注意的是:

l              用户可以修改二层ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态。

l              在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。

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

【举例】

# 创建二层ACL 4000,定义规则1,禁止从MAC地址000d-88f5-97ed发送到MAC地址0011-4301-991e且802.1p优先级为3的报文通过。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] acl number 4000

[Sysname-acl-ethernetframe-4000] rule 1 deny cos 3 source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff

[Sysname-acl-ethernetframe-4000] quit

# 创建二层ACL 4001,定义规则1,允许内层VLAN编号为2~10的报文通过。

[Sysname] acl number 4001

[Sysname-acl-ethernetframe-4001] rule 1 permit c-tag-vlan 2 to 10

完成上述配置后,用户可以使用display acl命令查看ACL的配置信息。

1.1.12  rule(用户自定义ACL)

【命令】

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

undo rule rule-id

【视图】

用户自定义ACL视图

【参数】

rule-idACL规则编号,取值范围为0~65534。

rule-string:用户自定义的规则字符串,取值范围为2~160个16进制数,且长度个数必须为偶数。

rule-mask:用户自定义的规则掩码,用于和数据包作“与”操作,取值范围为2~160个16进制数,个数必须为偶数,且必须与rule-string的长度相同。

offset:规则掩码的偏移量,它指定以数据包的头部为基准,从第几个字节开始与掩码进行“与”操作,取值范围为0~79字节。

l              rule-string的长度每增加两个16进制数,规则掩码偏移量的最大值减小1字节。例如,如果定义了包含两个16进制数的rule-string,规则掩码偏移量的最大值为79字节;如果定义了包含四个16进制数的rule-string,规则掩码偏移量的最大值为78字节;以此类推。

l              规则掩码偏移量的有效长度为128个16进制数(64个字节)。例如,用户定义了规则字符串为aa,偏移量取值为2,当用户继续定义规则字符串bb时,其偏移量取值范围只能为3~65字节;如果规则字符串aa的偏移量取值为3,则规则字符串bb的偏移量取值范围为4~66字节;以此类推。但是规则字符串bb的偏移量取值范围最大不能超过79个字节。

l              表1-16中所示,S3600系列以太网交换机的硬件规则将用户自定义字符串的规则掩码偏移量从逻辑上划分成了若干个偏移量单元,每个偏移量单元为4个字节。这些规则掩码偏移量单元被划分为8个组,编号为Offset1~Offset8。

l              在下发用户自定义ACL时,S3600的硬件限定了交换机支持用户自定义规则字符串的最大长度为32个字节(这32字节可以是连续的字符串、也可以是多个不连续的字符串),但这32个字节的字符串最多能占用8个规则掩码偏移量单元,且任意两个偏移量单元不能属于同一个Offset组。

表1-16 用户自定义字符串偏移量取值范围

偏移量所占用的单元

Offset1

Offset2

Offset3

Offset4

Offset5

Offset6

Offset7

Offset8

0~3

4~7

8~11

12~15

16~19

20~23

24~27

28~31

2~5

6~9

10~13

14~17

18~21

22~25

26~29

30~33

6~9

10~13

14~17

18~21

22~25

26~29

30~33

34~37

12~15

16~19

20~23

24~27

28~31

32~35

36~39

40~43

20~23

24~27

28~31

32~35

36~39

40~43

44~47

48~51

30~33

34~37

38~41

42~45

46~49

50~53

54~57

58~61

42~45

46~49

50~53

54~57

58~61

62~65

66~69

70~73

56~59

60~63

64~67

68~71

72~75

76~79

0~3

4~7

 

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

time-range time-name:这条ACL规则在该时间段内有效。

【描述】

rule命令用来定义ACL规则。undo rule命令用来删除ACL规则。

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

需要注意的是:

l              用户可以修改用户自定义ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,如果用户的修改只涉及动作或时间段部分,则该规则中没有修改到的部分仍旧保持原来的状态;如果用户修改了自定义字符串部分的内容,则修改后的自定义字符串会覆盖原有的自定义字符串。

l              在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。

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

在使用用户自定义ACL匹配报文的特定字段时,偏移量的取值一定要考虑如下情况:

l              如果没有端口开启VLAN-VPN功能,交换机内部处理的报文都带有1层VLAN tag,1层VLAN tag占4个字节。

l              如果某一端口上开启了VLAN-VPN功能,交换机内部处理的报文都带有2层VLAN tag,2层VLAN tag占8个字节。

常用的协议类型以及其所使用的偏移量如下表所示。

表1-17 常用协议类型号以及偏移量

协议类型

协议号(十六进制)

没有端口开启VLAN-VPN功能时的偏移量

端口开启VLAN-VPN功能后的偏移量

ARP

0x0806

16

20

RARP

0x8035

16

20

IP

0x0800

16

20

IPX

0x8137

16

20

AppleTalk

0x809B

16

20

ICMP

0x01

27

31

IGMP

0x02

27

31

TCP

0x06

27

31

UDP

0x11

27

31

 

【举例】

# 创建用户自定义ACL 5000,定义规则1,禁止所有的TCP报文通过(假设没有端口开启VLAN-VPN功能)。其中06为TCP的协议号,ff为规则的掩码,27为交换机内部处理的IP报文中协议字段的偏移量。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] acl number 5000

[Sysname-acl-user-5000] rule 1 deny 06 ff 27

[Sysname-acl-user-5000] quit

# 创建用户自定义ACL 5001,定义规则1,禁止源IP地址为192.168.0.1的ARP报文通过(假设没有端口启动VLAN-VPN功能)。其中0806为ARP协议号,16为交换机内部处理的以太网报文中协议类型字段的偏移量,c0a80001为192.168.0.1的十六进制形式,32为交换机内部处理的ARP报文中源IP地址字段的偏移量。

[Sysname] acl number 5001

[Sysname-acl-user-5001] rule 1 deny 0806 ffff 16 c0a80001 ffffffff 32

[Sysname-acl-user-5001] quit

完成上述配置后,用户可以使用display acl命令查看ACL的配置信息。

# 创建用户自定义ACL 5002,定义规则1,字符串长度为32字节,规则掩码为全F,偏移量取值为4,在端口Ethernet 1/0/1上下发。

[Sysname] acl number 5002

[Sysname-acl-user-5002] rule 1 deny 1234567890123456789012345678901234567890123456789012345678901234 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 4

[Sysname-acl-user-5002] quit

[Sysname] interface Ethernet 1/0/1

[Sysname-Ethernet1/0/1] packet-filter inbound user-group 5002

这种情况下,32个字节的字符串占用了表1-16中4~7(Offset2)、8~11(Offset3)、12~15(Offset4)、16~19(Offset5)、20~23(Offset1)、24~27(Offset7)、28~31(Offse8)和32~35(Offset6)共8个单元,此时可以下发成功。

# 创建用户自定义ACL 5003,定义规则1,字符串长度为32字节,规则掩码为全F,偏移量取值为24,在端口Ethernet 1/0/2上下发。

[Sysname] acl number 5003

[Sysname-acl-user-5003] rule 1 deny 1234567890123456789012345678901234567890123456789012345678901234 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 24

[Sysname-acl-user-5003] quit

[Sysname] interface Ethernet 1/0/2

[Sysname-Ethernet1/0/2] packet-filter inbound user-group 5003

Applying Acl 5003 rule 1 failed!

 Reason: This type of ACL rule is not supported by the command which is attempting to use the ACL!(Ethernet1/0/2)

这种情况下,32个字节的字符串所占用的偏移量单元不符合前文提到的“最多能占用8个规则掩码偏移量单元,且任意两个偏移量单元不能属于同一个Offset”的要求,此时不能下发成功。

1.1.13  rule comment

【命令】

rule rule-id comment text

undo rule rule-id comment

【视图】

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

【参数】

rule-idACL规则编号,取值范围为0~65534。

text:ACL规则的注释信息,取值范围为1~127个字符,可以包含空格和特殊字符。

【描述】

rule comment命令用来定义ACL规则的注释信息。undo rule comment命令用来删除ACL规则的注释信息。

用户可以使用rule comment命令来描述ACL规则的具体用途、应用于哪些端口等信息,方便用户对ACL规则进行区分和识别。

缺省情况下,ACL规则没有注释信息。

需要注意的是,在定义ACL规则的注释信息之前,该ACL规则必须已经存在。

【举例】

# 定义高级ACL 3001的rule 0的注释信息为“This rule is to be applied to eth 1/0/1”。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] acl number 3001

[Sysname-acl-adv-3001] rule 0 comment This rule is to be applied to eth 1/0/1

# 使用display acl命令查看高级ACL 3001的配置信息。

[Sysname-acl-adv-3001] display acl 3001

Advanced ACL  3001, 1 rule

Acl's step is 1

 rule 0 deny IP source 1.1.1.1 0 destination 2.2.2.2 0

 rule 0 comment This rule is to be applied to eth 1/0/1

1.1.14  time-range

【命令】

time-range time-name { start-time to end-time days-of-the-week [ from start-time start-date ] [ to end-time end-date ] | from start-time start-date [ to end-time end-date ] | to end-time end-date }

undo time-range { all | name time-name [ start-time to end-time days-of-the-week [ from start-time start-date ] [ to end-time end-date ] | from start-time start-date [ to end-time end-date ] | to end-time end-date ] }

【视图】

系统视图

【参数】

all:所有的时间段。

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

start-time:可选参数,周期时间段的开始时间,表示形式为hh:mm。

end-time:可选参数,周期时间段的结束时间,表示形式为hh:mm。结束时间必须大于起始时间。

days-of-the-week:可选参数,参数表示该周期时间在每周几有效。可以输入如下参数及其组合:

l              数字(0~6);

l              星期一到星期日(Mon,Tue,Wed,Thu,Fri,Sat,Sun);

l              工作日(working-day),包括从星期一到星期五五天;

l              休息日(off-day),包括星期六和星期日;

l              每一天(daily),一个星期中的每一天。

from start-time start-date:可选参数,绝对时间段的开始日期,和end-time end-date共同表示该绝对时间在某一段日期中生效,表示形式为hh:mm MM/DD/YYYY或hh:mm YYYY/MM/DD。如果不指定开始日期,则开始日期为1970年1月1日0点0分。

to end-time end-date:可选参数,绝对时间段的结束日期,和start-time start-date共同表示该绝对时间在某一段日期中生效,表示形式为hh:mm MM/DD/YYYY或hh:mm YYYY/MM/DD。如果不指定结束日期,则结束日期为2100年12月31日23点59分。

【描述】

time-range命令用来配置一个时间段。undo time-range命令用来删除一个时间段或删除所有的时间段。

需要注意的是:

l              交换机最多支持配置256个时间段,一个时间段下最多可以配置32个周期时间段和12个绝对时间段。

l              如果一个时间段只定义了周期时间段,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个周期时间段,则这些周期时间段之间是“或”的关系。

l              如果一个时间段只定义了绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个绝对时间段,则这些绝对时间段之间是“或”的关系。

l              如果一个时间段同时定义了绝对时间段和周期时间段,则只有同时满足绝对时间段和周期时间段的定义时,该时间段才进入激活状态。例如,一个时间段定义了绝对时间段:从2004年1月1日零点零分到2004年12月31日23点59分,同时定义了周期时间段:每周三的12:00到14:00。该时间段只有在2004年内每周三的12:00到14:00才进入激活状态。

【举例】

# 定义周期时间段,时间范围为每周一到周五的08:00至12:00。

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] time-range tr1 08:00 to 12:00 working-day

# 定义绝对时间段,时间范围为2008年1月1日12:00至2008年6月1日12:00。

[Sysname] time-range tr2 from 12:00 1/1/2008 to 12:00 6/1/2008

# 显示时间段的配置信息。

[Sysname] display time-range all

Current time is 17:37:23 Nov/27/2007 Tuesday

 

Time-range : tr1 ( Inactive )

 08:00 to 12:00 working-day

 

Time-range : tr2 ( Inactive )

 From 12:00 Jan/1/2008 to 12:00 Jun/1/2008

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

新华三官网
联系我们