24-ACL操作
本章节下载 (376.12 KB)
A型业务板指如下业务板:LS81FT48A、LS81FM24A、LS81FS24A、LS81GB8UA、LS81GT8UA、LS81FT48、LS81FM24、LS81FS24、LS81GB8U、LS81GT8U。
ACL(Access Control List,访问控制列表)主要用来实现流识别功能。网络设备为了过滤数据包,需要配置一系列的匹配规则,以识别需要过滤的报文。在识别出特定的报文之后,才能根据预先设定的策略允许或禁止相应的数据包通过。
ACL通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源地址、目的地址、端口号等。
由ACL定义的数据包匹配规则,可以被其它需要对流量进行区分的功能引用,如QoS中流分类规则的定义。
根据应用目的,可将ACL分为下面几种:
l 基本ACL:只根据三层源IP地址制定规则。
l 高级ACL:根据数据包的源IP地址信息、目的IP地址信息、IP承载的协议类型、协议特性等三、四层信息制定规则。
l 二层ACL:根据源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等二层信息制定规则。
l 用户自定义ACL:以数据包的头部为基准,指定从第几个字节开始进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。
ACL可能会包含多个规则,而每个规则都指定不同的报文范围。这样,在匹配报文时就会出现匹配顺序的问题。
ACL支持两种匹配顺序:
l 配置顺序:根据配置顺序匹配ACL规则。
l 自动排序:根据“深度优先”规则匹配ACL规则。
IP ACL(基本和高级ACL)深度优先顺序的判断原则如下:
(1) 先比较ACL规则的协议范围。IP协议的范围为1~255,承载在IP上的其他协议范围就是自己的协议号;协议范围小的优先;
(2) 再比较源IP地址范围。源IP地址范围小(掩码长)的优先;
(3) 然后比较目的IP地址范围。目的IP地址范围小(掩码长)的优先;
(4) 最后比较四层端口号(TCP/UDP端口号)范围。四层端口号范围小的优先;
如果规则A与规则B按照原有匹配顺序进行配置时,协议范围、源IP地址范围、目的IP地址范围、四层端口号范围完全相同,并且其它的元素个数相同,将按照加权规则进行排序。加权规则如下:
l 设备为每个元素设定一个固定的权值,最终的匹配顺序由各个元素的权值和元素取值来决定。各个元素自身的权值从大到小排列:DSCP、ToS、ICMP、established、precedence、fragment。
l 设备以一个固定权值依次减去规则各个元素自身的权值,剩余权值越小的规则越优先。
l 如果各个规则中元素个数、元素种类完全相同,则这些元素取值的累加和越小越优先。
二层ACL的深度优先以源MAC地址掩码长度和目的MAC地址掩码长度排序,掩码越长的规则匹配位置越靠前,当掩码长度都相等时,则先配置的规则匹配位置靠前。例如,源MAC地址掩码为FFFF-FFFF-0000的规则比源MAC地址掩码为FFFF-0000-0000的规则匹配位置靠前。
交换机中ACL可以直接下发到交换机的硬件中用于数据转发过程中报文的过滤和流分类。用户可以使用acl order命令来指定规则下发到硬件后的匹配顺序,具体配置请参见1.3 。
ACL直接下发到硬件的情况包括:交换机实现QoS功能时引用ACL、通过ACL过滤转发数据等。
交换机也使用ACL来对由软件处理的报文进行过滤和流分类。此时ACL规则的匹配顺序有两种:config(指定匹配该规则时按用户的配置顺序)和auto(指定匹配该规则时系统自动排序,即按“深度优先”的顺序)。这种情况下用户可以在定义ACL的时候指定一条ACL中多个规则的匹配顺序。用户一旦指定某一条ACL的匹配顺序,就不能再更改该顺序。只有把该列表中所有的规则全部删除后,才能重新指定其匹配顺序。
ACL被软件引用的情况包括:路由策略引用ACL、对登录用户进行控制时引用ACL等。
基于时间段的ACL使用户可以区分时间段对报文进行ACL控制。
ACL中的每条规则都可选择一个时间段。如果规则引用的时间段未配置,则系统给出提示信息,并允许这样的规则创建成功。但是规则不能立即生效,直到用户配置了引用的时间段,并且系统时间在指定时间段范围内才能生效。如果用户手工删除ACL规则引用的时间段,则在ACL规则定时器刷新后,该规则将失效。
交换机支持的ACL如下:
l 基本ACL
l 高级ACL
l 二层ACL
l 用户自定义ACL
交换机只能选择一种流分类规则模式:二层ACL模式或者三层ACL模式。在二层ACL模式下,只有二层ACL可以激活或者被其他应用引用,三层ACL模式类似。
表1-1 选择流分类规则模式配置
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
选择流分类规则模式 |
acl mode { ip-based | link-based } |
必选 缺省情况下,设备选择ip-based流分类规则模式,即基于三层信息进行流分类 |
显示设备的流分类规则模式 |
display acl mode |
可选 display命令可以在任意视图下执行 |
& 说明:
本配置只对A型业务板有效。
# 配置设备的流分类规则模式为link-based。
<H3C> system-view
[H3C] acl mode link-based
[H3C] display acl mode
The current acl mode: link-based.
acl match-order { config | auto }命令可以ACL规则下发前预先确定其在整个ACL内的匹配顺序,而acl order命令用来指定规则下发到硬件后的匹配顺序。交换机支持三种下发到硬件的ACL规则生效顺序:深度优先、先下发先生效、后下发先生效。用户可以指定一种。
表1-2 设置下发的ACL规则生效顺序
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置下发的ACL规则生效顺序 |
acl order { auto | first-config-first-match | last-config-first-match } |
必选 缺省情况下,下发的ACL规则按深度优先原则生效,即auto方式 |
显示下发的ACL规则生效顺序 |
display acl order |
可选 display命令可以在任意视图下执行 |
# 配置下发到硬件的ACL规则生效顺序为先下发先生效。
<H3C> system-view
[H3C] acl order first-config-first-match
[H3C] display acl order
the current order is first-config-first-match
对时间段的配置有如下内容:配置周期时间段和绝对时间段。配置周期时间段采用的是每周的周几的形式,配置绝对时间段采用从起始时间到结束时间的形式。
& 说明:
H3C S7500系列以太网交换机支持的绝对时间段范围从1970/1/1 00:00起至2100/12/31 23:59结束。
配置步骤 |
命令 |
说明 |
进入系统视图 |
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才进入激活状态。
配置绝对时间段时,如果不配置开始日期,时间段就是从系统支持的最早时间起到配置的结束日期为止。如果不配置结束日期,时间段就是从配置的开始日期起到2100/12/31 23:59为止。
# 配置周期时间段,取值为周一到周五每天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
# 配置绝对时间段,取值为2000年1月28日15:00起至2004年1月28日15:00结束。
<H3C> system-view
[H3C] time-range test from 15:00 1/28/2000 to 15:00 1/28/2004
[H3C] display time-range test
Current time is 13:30:32 4/16/2005 Saturday
Time-range : test ( Inactive )
From 15:00 Jan/28/2000 to 15:00 Jan/28/2004
基本ACL只根据三层源IP制定规则,对数据包进行相应的分析处理。
基本ACL的序号取值范围为2000~2999。
l 如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.4 配置时间段。
l 确定了规则中源IP地址信息的取值。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建或进入基本ACL视图 |
acl { number acl-number | name acl-name [ advanced | basic | link | user ] } [ match-order { config | auto } ] |
必选 缺省情况下匹配顺序为config |
定义ACL规则 |
rule [ rule-id ] { permit | deny } [ source { source-addr wildcard | any } | fragment | time-range time-name ]* |
必选 |
显示ACL信息 |
display acl config { all | acl-number | acl-name } |
可选 display命令可以在任意视图下执行 |
对于在定义ACL规则时指定编号的情况:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 如果指定编号对应的规则不存在,用户将创建并定义一个新的规则。
l 编辑后或新创建的规则不能和已经存在的规则内容完全相同,否则会导致编辑或创建不成功,系统会提示该规则已经存在。
在定义ACL规则时如果不指定编号,用户将创建并定义一个新规则,设备将自动为这个规则分配一个编号。
# 配置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 config 2000
Basic ACL 2000, 1 rule
rule 0 deny source 1.1.1.1 0 (0 times matched)
高级ACL可以使用数据包的源地址信息、目的地址信息、IP承载的协议类型、针对协议的特性,例如TCP或UDP的源端口、目的端口,TCP标记,ICMP协议的类型、code等内容定义规则。
高级ACL序号取值范围3000~3999(ACL 3998与3999是系统为集群管理预留的编号,用户无法配置)。
高级ACL支持对三种报文优先级的分析处理:ToS(Type Of Service,服务类型)优先级、IP优先级和DSCP(Differentiated Services Codepoint Priority,差分服务编码点优先级)。
用户可以利用高级ACL定义比基本ACL更准确、更丰富、更灵活的规则。
l 如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.4 配置时间段。
l 确定了规则中源IP地址信息、目的IP信息、IP承载的协议类型、针对协议的特性等参数的取值。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建或进入高级ACL视图 |
acl { number acl-number | name acl-name [ advanced | basic | link | user ] } [ match-order { config | auto } ] |
必选 缺省情况下匹配顺序为config |
定义ACL规则 |
rule [ rule-id ] { permit | deny } rule-string |
必选 |
显示ACL信息 |
display acl config { all | acl-number | acl-name } |
可选 display命令可以在任意视图下执行 |
rule-string:ACL规则信息,可以由表1-6中的参数组合而成,具体参数说明如表1-6所示。ACL规则信息中必须首先配置protocol参数,然后才能配置其他参数。
表1-6 ACL规则信息
参数 |
类别 |
作用 |
说明 |
protocol |
协议类型 |
IP承载的协议类型 |
用数字表示时取值范围为1~255 用名字表示时,可以选取GRE、ICMP、IGMP、IP、IPinIP、OSPF、TCP、UDP |
source { sour-addr sour-wildcard | any } |
源地址信息 |
指定ACL规则的源地址信息 |
sour-addr sour-wildcard用来确定数据包的源地址,点分十进制表示 any代表所有源地址 |
destination { dest-addr dest-wildcard | any } |
目的地址信息 |
指定ACL规则的目的地址信息 |
dest-addr dest-wildcard用来确定数据包的目的地址,点分十进制表示 any代表所有目的地址 |
precedence precedence |
报文优先级 |
IP优先级 |
取值范围0~7 |
tos tos |
报文优先级 |
ToS优先级 |
取值范围0~15 |
dscp dscp |
报文优先级 |
DSCP优先级 |
取值范围0~63 |
fragment |
分片信息 |
定义ACL规则仅对非首片分片报文有效 |
- |
time-range time-name |
时间段信息 |
指定ACL规则生效的时间段 |
- |
& 说明:
sour-wildcard与dest-wildcard为目标子网掩码的反码,点分十进制表示。例如,如果用户想指定子网掩码255.255.0.0,则需要输入0.0.255.255。可以为0,表示主机地址。
如果选择dscp关键字,除了直接输入数值0~63外,用户也可输入如表1-7所示的关键字。
表1-7 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-8所示的关键字。
关键字 |
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-9所示的关键字。
表1-9 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-10所示信息。
表1-10 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连接建立标识 |
表示此条规则仅对TCP建立连接的第一个SYN报文有效 |
TCP协议特有的参数 |
& 说明:
只有A型业务板支持对TCP/UDP端口的range操作。
当协议类型选择为ICMP时,用户还可以定义如表1-11所示信息。
表1-11 ICMP特有的ACL规则信息
参数 |
类别 |
作用 |
说明 |
icmp-type icmp-type icmp-code |
ICMP报文的类型和消息码信息 |
指定ACL规则中ICMP报文的类型和消息码信息 |
icmp-type:ICMP消息类型,取值为0~255 icmp-code:ICMP的消息码,取值为0~255 |
当协议类型选择为ICMP时,用户也可以直接在icmp-type参数后输入ICMP的消息名称。在几种常见的ICMP消息如表1-12所示。
名称 |
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 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 如果指定编号对应的规则不存在,用户将创建并定义一个新的规则。
l 编辑后或新创建的规则不能和已经存在的规则内容完全相同,否则会导致编辑或创建不成功,系统会提示该规则已经存在。
在定义ACL规则时如果不指定编号,用户将创建并定义一个新规则,设备将自动为这个规则分配一个编号。
# 配置一个ACL 3000,允许从129.9.0.0网段的主机向202.38.160.0网段的主机发送的端口号为80的TCP报文通过。
<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 config 3000
Advanced ACL 3000, 1 rule
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 (0 times matched)
二层ACL根据源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等二层信息制定规则,对数据进行相应处理。
二层ACL的序号取值范围为4000~4999。
l 如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.4 配置时间段。
l 确定了规则中源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等参数的取值。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建或进入二层ACL视图 |
acl { number acl-number | name acl-name [ advanced | basic | link | user ] } [ match-order { config | auto } ] |
必选 缺省情况下匹配顺序为config |
定义ACL规则 |
rule [ rule-id ] { permit | deny } [ rule-string ] |
必选 如果用户不定义任何rule-string参数,则设备缺省会选ingress any egress any |
显示ACL信息 |
display acl config { all | acl-number | acl-name } |
可选 display命令可以在任意视图下执行 |
rule-string:ACL规则信息,可以由表1-14中的参数组合而成,具体参数说明如表1-14所示。
表1-14 ACL规则信息
参数 |
类别 |
作用 |
说明 |
protocol-type |
协议类型 |
以太网帧承载的协议类型 |
protocol-type:取值可以为ip、arp、rarp、ipx、nbx、pppoe-control、pppoe-data 当用户选择协议类型为arp时,不能匹配目的MAC地址为交换机三层接口的MAC地址的ARP报文 |
format-type |
链路层封装类型 |
定义ACL规则中的链路层封装类型 |
format-type:取值可以为802.3/802.2、802.3、ether_ii、snap |
ingress { { source-vlan-id | source-mac-addr [ source-mac-mask ] }* | any } |
源MAC信息 |
定义ACL规则的源MAC地址范围 |
source-mac-addr:源MAC地址,格式为H-H-H source-mac-mask:源MAC地址的掩码,格式为H-H-H,缺省为全f source-vlan-id:源VLAN ID,取值范围1~4094 any表示从所有端口接收到的所有报文 |
egress { dest-mac-addr [ dest-mac-mask ] | any } |
目的MAC信息 |
定义ACL规则的目的MAC地址范围 |
dest-mac-addr:目的MAC地址,格式为H-H-H dest-mac-mask:目的MAC地址的掩码,格式为H-H-H,缺省为全f any表示从所有端口转发的所有报文 |
cos cos |
优先级 |
定义ACL规则的802.1p优先级 |
cos:取值范围为0~7 |
time-range time-name |
时间段信息 |
指定ACL规则生效的时间段 |
time-name:指定ACL规则生效的时间段名称,字符串格式,长度为1~32 |
& 说明:
source-mac-mask与dest-mac-mask为MAC地址的掩码。例如,如果用户想指定MAC地址范围为0011-0011-0000至0011-0011-00ff,则需要输入ffff-ffff-ff00。掩码可以为全f,表示主机地址。
如果选择cos关键字,除了直接输入数值0~7外,用户也可输入如表1-15所示的关键字。
表1-15 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 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 如果指定编号对应的规则不存在,用户将创建并定义一个新的规则。
l 编辑后或新创建的规则不能和已经存在的规则内容完全相同,否则会导致编辑或创建不成功,系统会提示该规则已经存在。
在定义ACL规则时如果不指定编号,用户将创建并定义一个新规则,设备将自动为这个规则分配一个编号。
# 配置ACL 4000,禁止从MAC地址000d-88f5-97ed发送到MAC地址011-4301-991e且802.1p优先级为3的报文通过。
<H3C> system-view
[H3C] acl number 4000
[H3C-acl-link-4000] rule deny cos 3 source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff
[H3C-acl-link-4000] display acl config 4000
Ethernet frame ACL 4000, 1 rule
rule 0 deny cos excellent-effort source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff (0 times matched)
用户自定义ACL以数据包的头部为基准,指定从第几个字节开始进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文,然后进行相应的处理。
用户自定义ACL的序号取值范围为5000~5999。
如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.4 配置时间段。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建或进入用户自定义ACL视图 |
acl { number acl-number | name acl-name [ advanced | basic | link | user ] } [ match-order { config | auto } ] |
必选 缺省情况下匹配顺序为config |
定义ACL规则 |
rule [ rule-id ] { permit | deny } { rule-string rule-mask offset } &<1-8> [ time-range time-name ] |
必选 |
显示ACL信息 |
display acl config { all | acl-number | acl-name } |
可选 display命令可以在任意视图下执行 |
对于在定义ACL规则时指定编号的情况:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 如果指定编号对应的规则不存在,用户将创建并定义一个新的规则。
l 编辑后或新创建的规则不能和已经存在的规则内容完全相同,否则会导致编辑或创建不成功,系统会提示该规则已经存在。
在定义ACL规则时如果不指定编号,用户将创建并定义一个新规则,设备将自动为这个规则分配一个编号。
& 说明:
只有非A型业务板支持用户自定义ACL。
# 配置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 27 time-range t1
[H3C-acl-user-5001] display acl config 5001
User defined ACL 5001, 1 rules
rule 25 deny 06 ff 27 time-range t1 (0 times matched) (Inactive)
在端口上应用ACL可以实现报文过滤的功能。
在端口上应用ACL之前需要首先定义ACL。定义ACL的配置请参见1.5 定义基本ACL,1.6 定义高级ACL,1.7 定义二层ACL,1.8 定义用户自定义ACL。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
进入QoS视图 |
qos |
- |
在端口上应用ACL |
packet-filter { inbound | outbound } acl-rule [ system-index ] [ not-care-for-interface ] |
必选 A型业务板支持的命令形式 |
packet-filter inbound acl-rule [ system-index ] |
必选 非A型业务板支持的命令形式 |
|
显示ACL的下发信息 |
display acl running-packet-filter { all | interface interface-type interface-number } |
可选 display命令可以在任意视图下执行 |
acl-rule:应用的ACL,可以是多种ACL的组合。A型业务板的组合方式及相应参数说明如表1-18与表1-20;非A型业务板的组合方式及相应参数说明如表1-19与表1-20。
表1-18 A型业务板的组合应用ACL方式
组合方式 |
acl-rule的形式 |
单独应用一个IP型ACL中所有规则 |
ip-group { acl-number | acl-name } |
单独应用一个IP型ACL中一条规则 |
ip-group { acl-number | acl-name } rule rule-id |
单独应用一个Link型ACL中所有规则 |
link-group { acl-number | acl-name } |
单独应用一个Link型ACL中一条规则 |
link-group { acl-number | acl-name } rule rule-id |
表1-19 非A型业务板的组合应用ACL方式
组合方式 |
acl-rule的形式 |
单独应用一个IP型ACL中所有规则 |
ip-group { acl-number | acl-name } |
单独应用一个IP型ACL中一条规则 |
ip-group { acl-number | acl-name } rule rule-id |
单独应用一个Link型ACL中所有规则 |
link-group { acl-number | acl-name } |
单独应用一个Link型ACL中一条规则 |
link-group { acl-number | acl-name } rule rule-id |
单独应用一个用户自定义ACL中所有规则 |
user-group { acl-number | acl-name } |
单独应用一个用户自定义ACL中一条规则 |
user-group { acl-number | acl-name } rule rule-id |
同时应用IP型ACL中一条规则和一个Link型ACL的一条规则 |
ip-group { acl-number | acl-name } rule rule-id link-group { acl-number | acl-name } rule rule-id |
表1-20 ACL组合方式参数说明
参数 |
说明 |
ip-group { acl-number | acl-name } |
基本及高级ACL。acl-number:ACL序号,2000到3999之间的一个数值。acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写 |
link-group { acl-number | acl-name } |
二层ACL,acl-number:ACL序号,4000到4999之间的一个数值。acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写 |
user-group { acl-number | acl-name } |
用户自定义的ACL,acl-number:ACL序号,5000到5999之间的一个数值。acl-name:ACL名字,最多32个字符,必须以英文字母(即[a-z,A-Z])开始,而且中间不能有空格和引号;不区分大小写 |
rule-id |
ACL规则序号,取值范围为0~127。如果不指定则表示ACL中的所有规则 |
# 在Ethernet 2/0/1的入方向上应用ACL 2100进行包过滤。
<H3C> system-view
[H3C] interface Ethernet 2/0/1
[H3C-Ethernet2/0/1] qos
[H3C-qoss-Ethernet2/0/1] packet-filter inbound ip-group 2100
在完成上述配置后,在任意视图下执行display命令可以显示ACL配置后的运行情况,通过查看显示信息验证配置的效果。
表1-21 ACL的显示
操作 |
命令 |
说明 |
显示时间段 |
display time-range { all | time-name } |
可选 display命令可以在任意视图下执行 |
显示配置的ACL规则信息 |
display acl config { all | acl-number | acl-name } |
|
显示配置的ACL规则统计信息 |
display acl config statistics |
|
显示指定槽位的剩余ACL资源 |
display acl remaining entry slot slot-number |
|
显示设备的流分类规则模式 |
display acl mode |
|
ACL下发信息 |
display acl running-packet-filter { all | interface interface-type interface-number } |
|
显示下发的ACL规则生效顺序 |
display acl order |
通过基本ACL,实现在每天8:00~18:00时间段内对IP为10.1.1.1主机发出报文的过滤(该主机从交换机的Ethernet 2/0/1接入)。
& 说明:
以下的配置,只列出了与ACL配置相关的命令。
(1) 定义时间段
# 定义8:00至18:00的周期时间段。
<H3C> system-view
[H3C] time-range test 8:00 to 18:00 daily
(2) 定义源IP为10.1.1.1的ACL
# 创建并进入ACL 2000视图。
[H3C] acl number 2000
# 定义源IP为10.1.1.1的访问规则。
[H3C-acl-basic-2000] rule 1 deny source 10.1.1.1 0 time-range test
[H3C-acl-basic-2000] quit
(3) 在端口上应用ACL
# 在端口上应用ACL 2000。
[H3C] interface Ethernet2/0/1
[H3C-Ethernet2/0/1] qos
[H3C-qoss-Ethernet2/0/1] packet-filter inbound ip-group 2000
公司企业网通过Switch的端口实现各部门之间的互连。研发部门由Ethernet2/0/1接入交换机,工资查询服务器的地址为192.168.1.2。要求正确配置ACL,限制研发部门在工作日8:00至18:00访问工资服务器。
& 说明:
以下的配置,只列出了与ACL配置相关的命令。
(1) 定义时间段
# 定义8:00至18:00的周期时间段。
<H3C> system-view
[H3C] time-range test 8:00 to 18:00 working-day
(2) 定义到工资服务器的ACL
# 进入 ACL 3000视图。
[H3C] acl number 3000
# 定义研发部门到工资服务器的访问规则。
[H3C-acl-adv-3000] rule 1 deny ip destination 192.168.1.2 0 time-range test
[H3C-acl-adv-3000] quit
(3) 在端口上应用ACL
# 在Ethernet 2/0/1端口上应用ACL 3000。
[H3C] interface Ethernet2/0/1
[H3C-Ethernet2/0/1] qos
[H3C-qoss-Ethernet2/0/1] packet-filter inbound ip-group 3000
通过二层ACL,实现在每天8:00~18:00时间段内对源MAC为0011-0011-0101目的MAC为0011-0011-0303报文的过滤。在Ethernet2/0/1端口上应用该二层ACL。
& 说明:
以下的配置,只列出了与ACL配置相关的命令。
(1) 定义时间段
# 定义8:00至18:00的周期时间段。
<H3C> system-view
[H3C] time-range test 8:00 to 18:00 daily
(2) 定义源MAC为0011-0011-0101目的MAC为0011-0011-0303的ACL规则
# 进入ACL 4000视图
[H3C] acl number 4000
# 定义源MAC为0011-0011-0101目的MAC为0011-0011-0303的流分类规则。
[H3C-acl-link-4000] rule 1 deny ingress 0011-0011-0101 ffff-ffff-ffff egress 0011-0011-0303 ffff-ffff-ffff time-range test
[H3C-acl-link-4000] quit
(3) 在端口上应用ACL
# 在Ethernet 2/0/1端口上应用ACL 4000。
[H3C] interface Ethernet 2/0/1
[H3C-Ethernet2/0/1] qos
[H3C-qoss-Ethernet2/0/1] packet-filter inbound link-group 4000
通过用户自定义ACL,实现在每天8:00~18:00时间段内禁止所有的TCP报文通过。在Ethernet 2/0/1端口上应用该用户自定义ACL。
& 说明:
以下的配置,只列出了与ACL配置相关的命令。
(1) 定义时间段
# 定义8:00至18:00的周期时间段。
[H3C] time-range test 8:00 to 18:00 daily
(2) 定义TCP报文的ACL
# 进入ACL 5000视图。
[H3C] acl number 5000
# 定义TCP报文的流分类规则。
[H3C-acl-user-5000] rule 1 deny 06 ff 27 time-range test
(3) 在端口上应用ACL
# 在Ethernet 2/0/1端口上应用ACL 5000。
[H3C] interface Ethernet2/0/1
[H3C-Ethernet2/0/1] qos
[H3C-qosb-Ethernet2/0/1] packet-filter inbound user-group 5000
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!