• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

H3C E152以太网交换机 操作手册-RELEASE 1500(V1.01)

20-ACL操作

本章节下载  (249.64 KB)

20-ACL操作


第1章  ACL配置

1.1  ACL简介

ACL(Access Control List,访问控制列表)主要用来实现流识别功能。网络设备为了过滤数据包,需要配置一系列的匹配规则,以识别需要过滤的报文。在识别出特定的报文之后,才能根据预先设定的策略允许或禁止相应的数据包通过。

ACL通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源地址、目的地址、端口号等。

由ACL定义的数据包匹配规则,可以被其它需要对流量进行区分的功能引用,如QoS中流分类规则的定义。

根据应用目的,可将ACL分为下面几种:

l              基本ACL:只根据三层源IP地址制定规则。

l              高级ACL:根据数据包的源IP地址信息、目的IP地址信息、IP承载的协议类型、协议特性等三、四层信息制定规则。

l              二层ACL:根据源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等二层信息制定规则。

l              用户自定义ACL:以数据包的头部为基准,指定从第几个字节开始进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。

1.1.1  ACL被上层模块引用

交换机使用ACL来对由软件处理的报文进行过滤和流分类。此时ACL规则的匹配顺序有两种:config(指定匹配该规则时按用户的配置顺序)和auto(指定匹配该规则时系统自动排序,即按“深度优先”的顺序)。这种情况下用户可以在定义ACL的时候指定一条ACL中多个规则的匹配顺序。用户一旦指定某一条ACL的匹配顺序,就不能再更改该顺序。只有把该列表中所有的规则全部删除后,才能重新指定其匹配顺序。

ACL被软件引用的情况包括:路由策略引用ACL、对登录用户进行控制时引用ACL等。

1.1.2  ACL匹配顺序

ACL可能会包含多个规则,而每个规则都指定不同的报文范围。这样,在匹配报文时就会出现匹配顺序的问题。

ACL支持两种匹配顺序:

l              配置顺序:根据配置顺序匹配ACL规则。

l              自动排序:根据“深度优先”规则匹配ACL规则。

深度优先顺序的判断原则如下:

(1)        先比较规则的协议范围。IP协议的范围为1~255,其他协议的范围就是自己的协议号;协议范围小的优先;

(2)        再比较源IP地址范围。源IP地址范围小(掩码长)的优先;

(3)        然后比较目的IP地址范围。目的IP地址范围小(掩码长)的优先;

(4)        最后比较四层端口号(TCP/UDP端口号)范围。四层端口号范围小的优先;

如果规则A与规则B按照原有匹配顺序进行配置时,协议范围、源IP地址范围、目的IP地址范围、四层端口号范围完全相同,并且其它的元素个数相同,将按照加权规则进行排序。加权规则如下:

l              设备为每个元素设定一个固定的权值,最终的匹配顺序由各个元素的权值和元素取值来决定。各个元素自身的权值从大到小排列:DSCP、ToS、ICMP、established、VPN-instance、precedence、fragment。

l              设备以一个固定权值依次减去规则各个元素自身的权值,剩余权值越小的规则越优先。

l              如果各个规则中元素个数、元素种类完全相同,则这些元素取值的累加和越小越优先。

1.1.3  基于时间段的ACL

基于时间段的ACL使用户可以区分时间段对报文进行ACL控制。

ACL中的每条规则都可选择一个时间段。如果规则引用的时间段未配置,则系统给出提示信息,并允许这样的规则创建成功。但是规则不能立即生效,直到用户配置了引用的时间段,并且系统时间在指定时间段范围内才能生效。如果用户手工删除ACL规则引用的时间段,则在ACL规则定时器刷新后,该规则将失效。

1.1.4  以太网交换机支持的ACL

交换机支持的ACL如下:

l              基本ACL

l              高级ACL

l              二层ACL

l              用户自定义ACL

1.2  配置时间段

在同一个名字下可以配置多个时间段,这些时间段之间是“或”的关系。

对时间段的配置有如下内容:配置周期时间段和绝对时间段。配置周期时间段采用的是每周的周几的形式,配置绝对时间段采用从起始时间到结束时间的形式。

1.2.1  配置过程

表1-1 配置时间段

配置步骤

命令

说明

进入系统视图

system-view

-

创建一个时间段

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 }

必选

显示时间段

display time-range { all | time-name }

可选

display命令可以在任意视图下执行

 

如果一个时间段只定义了周期时间段,则只有在该周期时间段内,该时间段才进入激活状态。

如果一个时间段只定义了绝对时间段,则只有在该绝对时间段内,该时间段才进入激活状态。

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

如果不配置开始日期,时间段就是从当前时间起到结束日期为止。

如果不配置结束日期,时间段就是从配置生效之日起到系统可以表示的最大时间为止。

1.2.2  配置举例

# 配置时间段,取值为周一到周五每天8:00到18:00。

<H3C> system-view

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

[H3C] display time-range test

Current time is 13:27:32 4/16/2005 Saturday

Time-range : test ( Inactive )

 08:00 to 18:00 working-day

1.3  定义基本ACL

基本ACL只根据三层源IP制定规则,对数据包进行相应的分析处理。

基本ACL的序号取值范围为2000~2999。

1.3.1  配置准备

如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2  配置时间段

确定了规则中源IP地址信息的取值。

1.3.2  配置过程

表1-2 定义基本ACL规则

配置步骤

命令

说明

进入系统视图

system-view

-

创建或进入基本ACL视图

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

缺省情况下匹配顺序为config

定义ACL规则

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

必选

定义ACL的描述信息

description text

可选

显示ACL信息

display acl { all | acl-number }

可选

display命令可以在任意视图下执行

 

对于在定义ACL规则时指定编号的情况:

l              如果指定编号对应的规则已经存在,用户将编辑该规则,规则中编辑后的部分将覆盖原来的内容,未被编辑的部分保持不变;

l              如果指定编号对应的规则不存在,用户将创建并定义一个新的规则。

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

在定义ACL规则时如果不指定编号,用户将创建并定义一个新规则,设备将自动为这个规则分配一个编号。

1.3.3  配置举例

# 配置一个ACL 2000,禁止源地址为1.1.1.1的报文通过。

<H3C> system-view

[H3C] acl number 2000

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

[H3C-acl-basic-2000] display acl 2000

Basic ACL  2000, 1 rule

Acl's step is 1

rule 0 deny source 1.1.1.1 0

1.4  定义高级ACL

高级ACL可以使用数据包的源地址信息、目的地址信息、IP承载的协议类型、针对协议的特性,例如TCP或UDP的源端口、目的端口,TCP标记,ICMP协议的类型、code等内容定义规则。

高级ACL序号取值范围3000~3999。

高级ACL支持对三种报文优先级的分析处理:ToS(Type Of Service,服务类型)优先级、IP优先级和DSCP(Differentiated Services Codepoint Priority,差分服务编码点优先级)。

用户可以利用高级ACL定义比基本ACL更准确、更丰富、更灵活的规则。

1.4.1  配置准备

如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2  配置时间段

确定了规则中源IP地址信息、目的IP信息、IP承载的协议类型、针对协议的特性等参数的取值。

1.4.2  配置过程

表1-3 定义高级ACL规则

配置步骤

命令

说明

进入系统视图

system-view

-

创建或进入高级ACL视图

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

缺省情况下匹配顺序为config

定义ACL规则

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

必选

定义ACL规则的注释字符串

rule rule-id comment text

可选

定义ACL的描述信息

description text

可选

显示ACL信息

display acl { all | acl-number }

可选

display命令可以在任意视图下执行

 

rule-string:ACL规则信息,可以由表1-4中的参数组合而成,具体参数说明如表1-4所示。ACL规则信息中必须首先配置protocol参数,然后才能配置其他参数。

表1-4 ACL规则信息

参数

类别

作用

说明

protocol

协议类型

IP承载的协议类型

用数字表示时取值范围为1~255

用名字表示时,可以选取GRE、ICMP、IGMP、IP、IPinIP、OSPF、TCP、UDP

source { sour-addr sour-wildcard | any }

源地址信息

指定ACL规则的源地址信息

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

any代表任意源地址

destination { dest-addr dest-wildcard | any }

目的地址信息

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

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

any代表任意目的地址

precedence precedence

报文优先级

IP优先级

取值范围0~7

tos tos

报文优先级

ToS优先级

取值范围0~15

dscp dscp

报文优先级

DSCP优先级

取值范围0~63

fragment

分片信息

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

-

time-range time-name

时间段信息

指定规则生效的时间段

-

 

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

表1-5 DSCP值说明

关键字

DSCP值(十进制)

DSCP值(二进制)

ef

46

101110

af11

10

001010

af12

12

001100

af13

14

001110

af21

18

010010

af22

20

010100

af23

22

010110

af31

26

011010

af32

28

011100

af33

30

011110

af41

34

100010

af42

36

100100

af43

38

100110

cs1

8

001000

cs2

16

010000

cs3

24

011000

cs4

32

100000

cs5

40

101000

cs6

48

110000

cs7

56

111000

be (default)

0

000000

 

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

表1-6 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-7所示的关键字。

表1-7 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-8 TCP/UDP特有的ACL规则信息

参数

类别

作用

说明

source-port operator port1 [ port2 ]

源端口

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

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

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

destination-port operator port1 [ port2 ]

目的端口

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

established

TCP连接建立标识

定义规则匹配带有ack或者rst标志的TCP连接报文

TCP协议特有的参数

 

当协议类型选择为ICMP时,用户还可以定义如下信息。

表1-9 ICMP特有的ACL规则信息

参数

类别

作用

说明

icmp-type icmp-type icmp-code

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

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

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

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

 

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

表1-10 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

 

对于在定义ACL规则时指定编号的情况:

l              如果指定编号对应的规则已经存在,用户将编辑该规则,规则中编辑后的部分将覆盖原来的内容,未被编辑的部分保持不变;

l              如果指定编号对应的规则不存在,用户将创建并定义一个新的规则。

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

在定义ACL规则时如果不指定编号,用户将创建并定义一个新规则,设备将自动为这个规则分配一个编号。

1.4.3  配置举例

# 配置ACL 3000,允许从129.9.0.0网段的主机向202.38.160.0网段的主机发送的端口号为80的报文通过。

<H3C>system-view

[H3C] acl number 3000

[H3C-acl-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

[H3C-acl-adv-3000] display acl 3000

Advanced ACL  3000, 1 rule

Acl's step is 1

 rule 0 permit tcp source 129.9.0.0 0.0.255.255 destination 202.38.160.0 0.0.0.255 destination-port eq www

1.5  定义二层ACL

二层ACL根据源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等二层信息制定规则,对数据进行相应处理。

二层ACL的序号取值范围为4000~4999。

1.5.1  配置准备

如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2  配置时间段

确定了规则中源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等参数的取值。

1.5.2  配置过程

表1-11 定义二层ACL规则

配置步骤

命令

说明

进入系统视图

system-view

-

创建或进入二层ACL视图

acl number acl-number

必选

定义ACL规则

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

必选

定义ACL规则的注释字符串

rule rule-id comment text

可选

定义ACL的描述信息

description text

可选

显示ACL信息

display acl { all | acl-number }

可选

display命令可以在任意视图下执行

 

rule-string:ACL规则信息,可以由表1-12中的参数组合而成,具体参数说明如表1-12所示。

表1-12 ACL规则信息

参数

类别

作用

说明

format-type

链路层封装类型

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

format-type:取值可以为802.3/802.2、802.3、ether_ii、snap

lsap lsap-code lsap-wildcard

lsap字段

定义规则中的lsap字段

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

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

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

源MAC信息

定义规则的源MAC地址范围

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

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

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

dest dest-addr dest-mask

目的MAC信息

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

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

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

cos vlan-pri

优先级

定义规则的802.1p优先级

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

time-range time-name

时间段信息

指定规则生效的时间段

time-name:指定规则生效的时间段名称,字符串格式,长度为1~32

type protocol-type protocol-mask

以太网帧的协议类型

定义以太网帧的协议类型

protocol-type:协议类型

protocol-mask:协议类型掩码

 

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

表1-13 CoS值说明

关键字

CoS(十进制)

CoS(二进制)

best-effort

0

000

background

1

001

spare

2

010

excellent-effort

3

011

controlled-load

4

100

video

5

101

voice

6

110

network-management

7

111

 

对于在定义ACL规则时指定编号的情况:

l              如果指定编号对应的规则已经存在,用户将编辑该规则,规则中编辑后的部分将覆盖原来的内容,未被编辑的部分保持不变;

l              如果指定编号对应的规则不存在,用户将创建并定义一个新的规则。

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

在定义ACL规则时如果不指定编号,用户将创建并定义一个新规则,设备将自动为这个规则分配一个编号。

1.5.3  配置举例

# 配置ACL 4000,禁止从MAC地址000d-88f5-97ed发送到MAC地址011-4301-991e且802.1p优先级为3的报文通过。

<H3C> system-view

[H3C] acl number 4000

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

[H3C-acl-ethernetframe-4000] display acl 4000

Ethernet frame ACL  4000, 1 rule

Acl's step is 1

 rule 0 deny cos excellent-effort source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff

1.6  定义用户自定义ACL

用户自定义ACL以数据包的头部为基准,指定从第几个字节开始进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文,然后进行相应的处理。

用户自定义ACL的序号取值范围为5000~5999。

1.6.1  配置准备

如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2  配置时间段

1.6.2  配置过程

表1-14 定义用户自定义ACL规则

配置步骤

命令

说明

进入系统视图

system-view

-

创建或进入用户自定义ACL视图

acl number acl-number

必选

定义ACL规则

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

必选

定义ACL的描述信息

description text

可选

定义ACL规则的注释字符串

rule rule-id comment text

可选

显示ACL信息

display acl { all | acl-number }

可选

display命令可以在任意视图下执行

 

&  说明:

用户在设置偏移量offset的数值时一定要考虑如下情况:

l      交换机内部处理的报文都带有VLAN tag,1层VLAN tag占4个字节。

l      如果没有使能VLAN VPN功能,交换机内部处理的报文都带有1层VLAN tag。

l      如果端口上使能了VLAN VPN功能,交换机会给该端口接收的报文再打1层VLAN tag,无论报文原来是否带有VLAN tag,报文都将具有2层VLAN tag。

 

对于在定义ACL规则时指定编号的情况:

l              如果指定编号对应的规则已经存在,用户将编辑该规则,规则中编辑后的部分将覆盖原来的内容,未被编辑的部分保持不变;

l              如果指定编号对应的规则不存在,用户将创建并定义一个新的规则。

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

在定义ACL规则时如果不指定编号,用户将创建并定义一个新规则,设备将自动为这个规则分配一个编号。

1.6.3  配置举例

# 配置ACL 5001,禁止所有的TCP报文通过。

<H3C> system-view

[H3C] time-range t1 18:00 to 23:00 sat

[H3C] acl number 5001

[H3C-acl-user-5001] rule 25 deny 06 ff 35 time-range t1

[H3C-acl-user-5001] display acl 5001

User defined ACL  5001, 1 rules

Acl's step is 1

rule 25 deny 06 ff 35 time-range t1 (Inactive)

1.7  ACL的显示

在完成上述配置后,在任意视图下执行display命令可以显示ACL配置后的运行情况,通过查看显示信息验证配置的效果。

表1-15 ACL的显示

操作

命令

说明

显示配置的ACL规则

display acl { all | acl-number }

可选

display命令可以在任意视图下执行

显示时间段

display time-range { all | time-name }

 

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

新华三官网
联系我们