25-ACL操作
本章节下载: 25-ACL操作 (332.21 KB)
l 新增“IPv6 ACL”特性,请参见1.2.6 定义IPv6 ACL。
l 仅S3600-SI系列交换机支持IPv6 ACL。
随着网络规模的扩大和流量的增加,对网络安全的控制和对带宽的分配成为网络管理的重要内容。通过对数据包进行过滤,可以有效防止非法用户对网络的访问,同时也可以控制流量,节约网络资源。ACL(Access Control List,访问控制列表)即是通过配置对报文的匹配规则和处理操作来实现包过滤的功能。
当交换机的端口接收到报文后,即根据当前端口上应用的ACL规则对报文的字段进行分析,在识别出特定的报文之后,根据预先设定的策略允许或禁止相应的数据包通过。
由ACL定义的数据包匹配规则,也可以被其它需要对流量进行区分的功能引用,如QoS中流分类规则的定义。
ACL通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源MAC地址、目的MAC地址、源IP地址、目的IP地址、端口号等。根据应用目的,可将ACL分为以下几种:
l 基本ACL:只根据数据包的源IP地址制定规则。
l 高级ACL:根据数据包的源IP地址、目的IP地址、IP承载的协议类型、协议特性等三、四层信息制定规则。
l 二层ACL:根据数据包的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定规则。
l 用户自定义ACL:以数据包的头部为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。
l IPv6 ACL:根据IPv6报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址、是否具有双Tag头、IPv6报文的流量类型、报文的下一报头信息、VLAN Tag信息、TCP或UDP协议目的端口信息等信息制定规则。
一条ACL中可以包含多个规则,而每个规则都指定不同的报文范围。这样,在匹配报文时就会出现匹配顺序的问题。
ACL支持两种匹配顺序:
l 配置顺序:根据用户配置规则的先后顺序进行匹配。
l 自动排序:根据“深度优先”的顺序进行匹配(二层ACL、用户自定义ACL和IPv6 ACL不支持根据“深度优先”的顺序进行匹配)。
(1) 先比较源IP地址范围,源IP地址范围小(反掩码中“0”位的数量多)的规则优先;
(2) 如果源IP地址范围相同,则比较是否带有fragment参数,带有fragment参数的规则优先;
(3) 如果源IP地址范围、是否带有fragment参数这两个判断条件也相同,则先配置的规则优先。
(1) 首先比较协议范围,指定了IP协议承载的协议类型的规则优先;
(2) 如果协议范围相同,则比较源IP地址范围,源IP地址范围小(反掩码中“0”位的数量多)的规则优先;
(3) 如果协议范围、源IP地址范围相同,则比较目的IP地址范围,目的IP地址范围小(反掩码中“0”位的数量多)的规则优先;
(4) 如果协议范围、源IP地址范围、目的IP地址范围相同,则比较四层端口号(TCP/UDP端口号)范围,四层端口号范围小的规则优先;
(5) 如果协议范围、源IP地址范围、目的IP地址范围、四层端口号范围相同,则比较规则中参数的个数,参数个数多的规则优先。
如果规则A与规则B的协议范围、源IP地址范围、目的IP地址范围、四层端口号范围完全相同,并且其它的参数个数也相同,将按照加权规则进行排序。交换机为每个参数设定一个固定的权值,最终的匹配顺序由各个参数的权值和参数的取值来决定。各个参数自身的权值从大到小排列为icmp-type、established、dscp、tos、precedence、fragment。比较规则如下:
l 交换机以一个固定权值依次减去规则中所配置的各个参数自身的权值,所得结果小的规则优先;
l 如果各个规则中参数种类完全相同,则这些参数取值的累加和小的规则优先。
ACL可以直接下发到交换机的硬件,用于数据转发过程中的报文过滤和流分类。此时一条ACL中多个规则的匹配顺序是由交换机的硬件决定的,对于S3600系列以太网交换机,匹配顺序为后下发的规则先匹配。
ACL直接下发到硬件的情况包括:通过ACL过滤转发数据、配置QoS功能时引用ACL等。
ACL也可以用来对由软件处理的报文进行过滤和流分类。此时ACL规则的匹配顺序有两种:
l config:按用户配置的先后顺序进行匹配。
l auto:按“深度优先”的顺序进行匹配(二层ACL、用户自定义ACL和IPv6 ACL不支持根据“深度优先”的顺序进行匹配)。
用户可以在定义ACL的时候指定一条ACL中多个规则的匹配顺序。用户一旦指定某一条ACL的匹配顺序,就不能再更改该顺序。只有把该ACL中所有的规则全部删除后,才能重新指定其匹配顺序。
ACL被上层软件引用的情况包括:路由策略引用ACL、对Telnet、SNMP和WEB登录用户进行控制时引用ACL等。
l 当ACL直接下发到硬件对报文进行过滤时,如果报文没有与ACL中的规则匹配,此时交换机对此类报文采取的动作为permit,即允许报文通过。
l 当ACL被上层软件引用,对Telnet、SNMP和WEB登录用户进行控制时,如果报文没有与ACL中的规则匹配,此时交换机对此类报文采取的动作为deny,即拒绝报文通过。
S3600系列以太网交换机支持的ACL如下:
l 基本ACL
l 高级ACL
l 二层ACL
l 用户自定义ACL
l IPv6 ACL
S3600系列以太网交换机上定义的ACL支持下发到硬件和被上层软件引用。
表1-1 ACL配置任务简介
配置任务 |
说明 |
详细配置 |
配置时间段 |
可选 |
|
定义基本ACL |
必选 |
|
定义高级ACL |
必选 |
|
定义二层ACL |
必选 |
|
定义用户自定义ACL |
必选 |
|
定义IPv6 ACL |
必选 |
|
在端口上应用ACL |
必选 |
|
在VLAN上应用ACL |
必选 |
用户可以根据时间段对报文进行控制。ACL中的每条规则都可以选择一个时间段,这条规则只在该指定的时间段内生效。如果规则引用的时间段未配置,则系统给出提示信息,并允许这样的规则创建成功,但是规则不能立即生效,直到用户配置了引用的时间段,并且系统时间在指定时间段范围内才能生效。
对时间段的配置有如下两种情况:
l 配置周期时间段:采用每个星期固定时间段的形式,例如从星期一至星期五的8:00至18:00。
l 配置绝对时间段:采用从某年某月某日某时某分起至某年某月某日某时某分结束的形式,例如从2000年1月28日15:00起至2004年1月28日15:00结束。
H3C S3600系列以太网交换机支持的绝对时间段范围从1970/1/1 00:00起至2100/12/31 24:00结束。
配置步骤 |
命令 |
说明 |
进入系统视图 |
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 } |
必选 |
需要注意的是:
l 如果一个时间段只定义了周期时间段,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个周期时间段,则这些周期时间段之间是“或”的关系。
l 如果一个时间段只定义了绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个绝对时间段,则这些绝对时间段之间是“或”的关系。
l 如果一个时间段同时定义了绝对时间段和周期时间段,则只有同时满足绝对时间段和周期时间段的定义时,该时间段才进入激活状态。例如,一个时间段定义了绝对时间段:从2004年1月1日0点0分到2004年12月31日23点59分,同时定义了周期时间段:每周三的12:00到14:00。该时间段只有在2004年内每周三的12:00到14:00才进入激活状态。
l 配置绝对时间段时,如果不配置开始日期,时间段就是从1970/1/1 00:00起到配置的结束日期为止。如果不配置结束日期,时间段就是从配置的开始日期起到2100/12/31 23:59为止。
# 配置周期时间段,时间范围为周一到周五每天8:00到18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 working-day
[Sysname] display time-range test
Current time is 13:27:32 Apr/16/2005 Saturday
Time-range : test ( Inactive )
08:00 to 18:00 working-day
# 配置绝对时间段,时间范围为2006年1月28日15:00起至2008年1月28日15:00结束。
<Sysname> system-view
[Sysname] time-range test from 15:00 1/28/2006 to 15:00 1/28/2008
[Sysname] display time-range test
Current time is 13:30:32 Apr/16/2005 Saturday
Time-range : test ( Inactive )
From 15:00 Jan/28/2006 to 15:00 Jan/28/2008
基本ACL只根据源IP地址制定规则,对数据包进行相应的分析处理。
基本ACL的序号取值范围为2000~2999。
l 如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2.1 配置时间段。
l 确定了规则中的源IP地址。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入基本ACL视图 |
acl number acl-number [ match-order { auto | config } ] |
必选 缺省情况下,匹配顺序为config |
定义ACL规则 |
rule [ rule-id ] { deny | permit } [ rule-string ] |
必选 rule-string的具体内容请参见命令手册 |
定义ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有描述信息 |
需要注意的是:
l 当基本ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当基本ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示无法修改该规则。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示无法创建该规则,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
l 当基本ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
# 配置基本ACL 2000,禁止源IP地址为192.168.0.1的报文通过。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000] rule deny source 192.168.0.1 0
# 显示基本ACL 2000的配置信息。
[Sysname-acl-basic-2000] display acl 2000
Basic ACL 2000, 1 rule
Acl's step is 1
rule 0 deny source 192.168.0.1 0
高级ACL可以使用数据包的源IP地址、目的IP地址、IP承载的协议类型、针对协议的特性(例如TCP或UDP的源端口、目的端口,ICMP协议的消息类型、消息码等)内容定义规则,对数据包进行相应的分析处理。
高级ACL的序号取值范围3000~3999(3998与3999是系统为集群管理预留的编号,用户无法配置)。
高级ACL支持对三种报文优先级的分析处理:ToS(Type of Service,服务类型)优先级、IP优先级和DSCP(Differentiated Services CodePoint,差分服务编码点)优先级。
用户可以利用高级ACL定义比基本ACL更准确、更丰富、更灵活的规则。
l 如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2.1 配置时间段。
l 确定了规则中源IP地址、目的IP地址、IP承载的协议类型、针对协议的特性等参数的取值。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入高级ACL视图 |
acl number acl-number [ match-order { auto | config } ] |
必选 缺省情况下,匹配顺序为config |
定义ACL规则 |
rule [ rule-id ] { permit | deny } protocol [ rule-string ] |
必选 protocol和rule-string的具体内容请参见命令手册 |
定义ACL规则的注释信息 |
rule rule-id comment text |
可选 缺省情况下,ACL规则没有注释信息 |
定义ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有描述信息 |
需要注意的是:
l 当高级ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当高级ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示无法修改该规则。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示无法创建该规则,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
l 当高级ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
# 配置高级ACL 3000,允许从129.9.0.0/16网段的主机向202.38.160.0/24网段的主机发送的端口号为80的TCP报文通过。
<Sysname> system-view
[Sysname] acl number 3000
[Sysname-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
# 显示高级ACL 3000的配置信息。
[Sysname-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
二层ACL根据源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定规则,对数据包进行相应的分析处理。
二层ACL的序号取值范围为4000~4999。
l 如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2.1 配置时间段。
l 确定了规则中源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等参数的取值。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入二层ACL视图 |
acl number acl-number |
必选 |
定义ACL规则 |
rule [ rule-id ] { permit | deny } [ rule-string ] |
必选 rule-string的具体内容请参见命令手册 |
定义ACL规则的注释信息 |
rule rule-id comment text |
可选 缺省情况下,ACL规则没有注释信息 |
定义ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有描述信息 |
需要注意的是:
l 用户可以修改二层ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示无法创建该规则,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
# 配置二层ACL 4000,禁止从MAC地址000d-88f5-97ed发送到MAC地址0011-4301-991e且802.1p优先级为3的报文通过。
<Sysname> system-view
[Sysname] acl number 4000
[Sysname-acl-ethernetframe-4000] rule deny cos 3 source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff
# 显示二层ACL 4000的配置信息。
[Sysname-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
用户自定义ACL以数据包的头部为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文,然后进行相应的处理。
用户自定义ACL的序号取值范围为5000~5999。
如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2.1 配置时间段。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入用户自定义ACL视图 |
acl number acl-number |
必选 |
定义ACL规则 |
rule [ rule-id ] { permit | deny } [ rule-string rule-mask offset ] &<1-8> [ time-range time-name ] |
必选 rule-string的具体内容请参见命令手册 |
定义ACL规则的注释信息 |
rule rule-id comment text |
可选 缺省情况下,ACL规则没有注释信息 |
定义ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有描述信息 |
在配置用户自定义ACL规则匹配报文的特定字段时,偏移量的取值一定要考虑如下情况:
l 如果没有开启VLAN-VPN功能,交换机内部处理的报文都带有1层VLAN tag,1层VLAN tag占4个字节。
l 如果某一端口上开启了VLAN-VPN功能,交换机内部处理的报文都带有2层VLAN tag,2层VLAN tag占8个字节。
需要注意的是:
l 用户可以修改用户自定义ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,如果用户的修改只涉及动作或时间段部分,则该规则中没有修改到的部分仍旧保持原来的状态;如果用户修改了自定义字符串部分的内容,则修改后的自定义字符串会覆盖原有的自定义字符串。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示无法创建该规则,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
# 配置用户自定义ACL 5000,禁止所有的TCP报文通过(假设没有端口开启VLAN-VPN功能)。其中06为TCP的协议号,ff为规则的掩码,27为交换机内部处理的IP报文中协议字段的偏移量。
<Sysname> system-view
[Sysname] acl number 5000
[Sysname-acl-user-5000] rule deny 06 ff 27
# 显示用户自定义ACL 5000的配置信息。
[Sysname-acl-user-5000] display acl 5000
User defined ACL 5000, 1 rule
Acl's step is 1
rule 0 deny 06 ff 27
用户可以通过IPv6 ACL匹配IPv6数据包,以便对特定的报文进行相应的处理。IPv6 ACL的序号取值范围为5000~5999。
S3600-SI以太网交换机支持的匹配字段如下:
l cos:IPv6报文中的CoS字段;
l dest-ip:IPv6报文中的目的IP地址字段;
l dest-mac:IPv6报文中的目的MAC地址字段;
l double-tag:匹配具有双Tag头的IPv6报文;
l dscp:IPv6报文中的流量类型(Traffic-class)字段;
l ip-protocol:IPv6报文中的下一报头(Next header)字段;
l ipv6-type:二层协议类型为IPv6的报文;
l src-ip:IPv6报文中的源IP地址字段;
l src-mac:IPv6报文中的源MAC地址字段;
l src-port:IPv6报文中TCP或UDP协议的源端口字段;
l dest-port:IPv6报文中TCP或UDP协议的目的端口字段;
l icmpv6-type:IPv6报文中ICMP协议的消息类型字段;
l icmpv6-code:IPv6报文中ICMP协议的消息码字段;
l vlan: IPv6报文的VLAN Tag字段。
IPV6 ACL不支持匹配带扩展头的IPV6报文。
在配置IPv6 ACL规则时需要注意如下事项:
l 如果需要配置src-port或dest-port字段,则必须配置ip-protocol为TCP或UDP(即0x06或0x11);如果需要配置icmpv6-type或icmpv6-code字段,则必须配置ip-protocol为ICMPv6(即0x3a)。
l 当一条rule规则要定义多个字段时,要确保一条rule定义的字段对应的字节总数不能超过32字节、否则该rule规则配置不能成功。例如:如果rule 1中同时配置了src-ip(128个bit位,占用16个字节)和dest-ip字段(128个bit位,占用16个字节),一个IPv6报文仅对src-ip字段和dest-ip字段进行匹配、就已经需要匹配32个字节,因此该rule 1中不能再定义其它字段了,否则配置不能成功。
l 如果要配置带有时间段参数的规则,则需要定义相应的时间段。定义时间段的配置请参见1.2.1 配置时间段。
l 确定了规则中参数的取值。
表1-7 定义IPv6 ACL
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入IPv6 ACL视图 |
acl number acl-number |
必选 |
定义ACL规则 |
rule [ rule-id ] { deny | permit } [ cos rule-string rule-mask ] [ dest-ip ipv6-address prefix-length ] [ dest-mac rule-string rule-mask ] [ double-tag ] [ dscp rule-string rule-mask ] [ ip-protocol rule-string rule-mask ] [ ipv6-type ] [ src-ip ipv6-address prefix-length ] [ src-mac rule-string rule-mask ] [ vlan rule-string rule-mask ] [ [ src-port rule-string rule-mask | dest-port rule-string rule-mask ] * | [ icmpv6-type rule-string rule-mask | icmpv6-code rule-string rule-mask ] * ] [ time-range time-name ] |
必选 需要注意的是,如果用户需要配置src-port/dest-port,则必须配置ip-protocol为TCP或UDP,即0x06或0x11;如果用户需要配置icmpv6-type/icmpv6-code,则必须配置ip-protocol为ICMPv6,即0x3a |
定义ACL规则的注释信息 |
rule rule-id comment text |
可选 缺省情况下,ACL规则没有注释信息 |
定义ACL的描述信息 |
description text |
可选 缺省情况下,ACL没有描述信息 |
需要注意的是:
l 用户可以修改IPv6 ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,如果用户的修改只涉及动作或时间段部分,则该规则中没有修改到的部分仍旧保持原来的状态;如果用户修改了自定义字符串部分的内容,则修改后的自定义字符串会覆盖原有的自定义字符串。
l 在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示无法创建该规则,此时用户必须指定规则的编号才能创建成功。
l 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
IPv6 ACL不支持匹配带有扩展报文头的IPv6报文。
# 配置IPv6 ACL 5000,禁止从源IPv6地址3001::1/64发送到目的IPv6地址3002::1/64的报文通过。
<Sysname> system-view
[Sysname] acl number 5000
[Sysname-acl-user-5000] rule deny src-ip 3001::1 64 dest-ip 3002::1 64
# 显示IPv6 ACL 5000的配置信息。
[Sysname-acl-user-5000] display acl 5000
User defined ACL 5000, 1 rule
Acl's step is 1
rule 0 deny src-ip 3001::1 64 dest-ip 3002::1 64
在端口上应用ACL可以实现报文过滤的功能,用户可在每个端口上对报文进行过滤。
在端口上应用ACL之前需要首先定义ACL。定义ACL的配置请参见1.2.2 定义基本ACL,1.2.3 定义高级ACL,1.2.4 定义二层ACL,1.2.5 定义用户自定义ACL,1.2.6 定义IPv6 ACL。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
在端口上应用ACL |
packet-filter { inbound | outbound } acl-rule |
必选 acl-rule的具体内容请参见命令手册 |
# 在端口Ethernet 1/0/1的入方向上应用ACL 2000进行包过滤。
<Sysname> system-view
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] packet-filter inbound ip-group 2000
在VLAN上应用ACL可以实现报文过滤的功能。用户可对VLAN内所有端口上的报文进行过滤。
执行packet-filter vlan命令后、只有执行此命令时对应VLAN中所包含的端口会根据应用的ACL进行报文过滤。
l 如果后续该VLAN内新增了端口,新增的端口不会像VLAN内原有端口那样应用该ACL进行报文过滤。
l 如果后续该VLAN内删除了端口,被删除的端口依旧根据应用的ACL进行报文过滤。
在VLAN上应用ACL之前需要首先定义ACL。定义ACL的配置请参见1.2.2 定义基本ACL,1.2.3 定义高级ACL,1.2.4 定义二层ACL,1.2.5 定义用户自定义ACL,1.2.6 定义IPv6 ACL。
表1-9 在VLAN上应用ACL
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
在VLAN上应用ACL |
packet-filter vlan vlan-id { inbound | outbound } acl-rule |
必选 acl-rule的具体内容请参见命令手册 |
# 在VLAN 1的入方向上应用ACL 2000进行包过滤。
<Sysname> system-view
[Sysname] packet-filter vlan 1 inbound ip-group 2000
完成上述配置后,在任意视图下执行display命令,可以显示配置ACL后的运行情况。通过查看显示信息,用户可以验证配置的效果。
表1-10 ACL的显示
操作 |
命令 |
说明 |
显示配置的ACL规则 |
display acl { all | acl-number } |
display命令可以在任意视图下执行 |
显示时间段 |
display time-range { all | time-name } |
|
显示包过滤的应用信息 |
display packet-filter { interface interface-type interface-number | unitid unit-id } |
|
显示ACL表项资源 |
display drv qacl_resource |
通过源IP地址对Telnet登录用户进行控制,仅允许IP地址为10.110.100.52的Telnet用户登录到交换机。
图1-1 通过源IP对Telnet登录用户进行控制组网图
# 定义基本ACL 2000。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000] rule 1 permit source 10.110.100.52 0
[Sysname-acl-basic-2000] quit
# 在VTY用户界面引用基本ACL 2000,对Telnet登录用户进行控制。
[Sysname] user-interface vty 0 4
[Sysname-ui-vty0-4] acl 2000 inbound
通过源IP地址对WEB登录用户进行控制,仅允许IP地址为10.110.100.46的WEB用户通过HTTP方式访问交换机。
图1-2 通过源IP对WEB登录用户进行控制组网图
# 定义基本ACL 2001。
<Sysname> system-view
[Sysname] acl number 2001
[Sysname-acl-basic-2001] rule 1 permit source 10.110.100.46 0
[Sysname-acl-basic-2001] quit
# 配置WEB服务器引用基本ACL 2001,对WEB登录用户进行控制。
[Sysname] ip http acl 2001
PC 1和PC 2通过端口Ethernet1/0/1接入交换机,PC 1的IP地址为10.1.1.1。要求配置基本ACL,实现在每天8:00~18:00的时间段内对PC 1发出的IP报文进行过滤。
图1-3 基本ACL配置组网图
# 定义周期时间段test,时间范围为每天的8:00~18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 daily
# 定义基本ACL 2000,配置源IP地址为10.1.1.1的访问规则。
[Sysname] acl number 2000
[Sysname-acl-basic-2000] rule 1 deny source 10.1.1.1 0 time-range test
[Sysname-acl-basic-2000] quit
# 在端口Ethernet1/0/1上应用ACL 2000。
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] packet-filter inbound ip-group 2000
公司企业网通过交换机实现各部门之间的互连。研发部门由端口Ethernet1/0/1接入交换机,工资查询服务器的地址为192.168.1.2。要求配置高级ACL,禁止研发部门在工作日8:00~18:00的时间段内访问工资查询服务器。
图1-4 高级ACL配置组网图
# 定义周期时间段test,时间范围为工作日的8:00~18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 working-day
# 定义高级ACL 3000,配置目的IP地址为工资查询服务器的访问规则。
[Sysname] acl number 3000
[Sysname-acl-adv-3000] rule 1 deny ip destination 192.168.1.2 0 time-range test
[Sysname-acl-adv-3000] quit
# 在端口Ethernet1/0/1上应用ACL 3000。
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] packet-filter inbound ip-group 3000
PC 1和PC 2通过端口Ethernet1/0/1接入交换机,PC 1的MAC地址为0011-0011-0011。要求配置二层ACL,在每天8:00~18:00的时间段内,对PC 1发出的目的MAC为0011-0011-0012的报文进行过滤。
图1-5 二层ACL配置组网图
# 定义周期时间段test,时间范围为每天的8:00~18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 daily
# 定义二层ACL 4000,配置源MAC为0011-0011-0011,目的MAC为0011-0011-0012的访问规则。
[Sysname] acl number 4000
[Sysname-acl-ethernetframe-4000] rule 1 deny source 0011-0011-0011 ffff-ffff-ffff dest 0011-0011-0012 ffff-ffff-ffff time-range test
[Sysname-acl-ethernetframe-4000] quit
# 在端口Ethernet 1/0/1上应用ACL 4000。
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] packet-filter inbound link-group 4000
网络环境描述如下:
l PC 1的IP地址为192.168.0.2,通过端口Ethernet1/0/1接入交换机;PC 2的IP地址为192.168.0.3,通过端口Ethernet1/02接入交换机。
l PC 1和PC 2属于VLAN 1,二者的网关都设置为192.168.0.1(交换机VLAN 1接口的IP地址),通过交换机访问Internet。
要求配置用户自定义ACL,在每天8:00~18:00的时间段内,对PC 1发出的仿冒网关IP地址的ARP报文进行过滤。
图1-6 用户自定义ACL配置组网图
# 定义周期时间段test,时间范围为每天的8:00~18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 daily
# 定义用户自定义ACL 5000,配置源IP地址为192.168.0.1的ARP报文的访问规则(假设没有端口启动VLAN-VPN功能)。其中0806为ARP协议号,16为交换机内部处理的以太网报文中协议类型字段的偏移量,c0a80001为192.168.0.1的十六进制形式,32为交换机内部处理的ARP报文中源IP地址字段的偏移量。
[Sysname] acl number 5000
[Sysname-acl-user-5000] rule 1 deny 0806 ffff 16 c0a80001 ffffffff 32 time-range test
# 在端口Ethernet 1/0/1上应用ACL 5000。
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] packet-filter inbound user-group 5000
PC 1和PC 2通过端口Ethernet1/0/1接入交换机,PC 1的IPv6地址为3001::1/64。要求配置IPv6 ACL,在每天8:00~18:00的时间段内,对PC 1发出的目的IPv6地址为3002::1/64的报文进行过滤。
图1-7 IPv6 ACL配置组网图
# 定义周期时间段test,时间范围为每天的8:00~18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 daily
# 定义IPv6 ACL 5000,配置源地址为3001::1/64,目的地址为3002::1/64的访问规则。
[Sysname] acl number 5000
[Sysname-acl-user-5000] rule deny src-ip 3001::1 64 dest-ip 3002::1 64 time-range test
[Sysname-acl-user-5000] quit
# 在端口Ethernet 1/0/1上应用IPv6 ACL 5000。
[Sysname] interface Ethernet1/0/1
[Sysname-Ethernet1/0/1] packet-filter inbound user-group 5000
PC 1、PC 2和PC 3属于VLAN 10,分别通过端口Ethernet 1/0/1、Ethernet 1/0/2和Ethernet 1/0/3接入交换机,数据库服务器的IP地址为192.168.1.2。要求配置高级ACL 3000,禁止VLAN 10内的PC在工作日8:00~18:00的时间段内访问数据库服务器。
图1-8 在VLAN上应用ACL配置组网图
# 定义周期时间段test,时间范围为工作日的8:00~18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 working-day
# 定义高级ACL 3000,配置目的IP地址为数据库服务器的访问规则。
[Sysname] acl number 3000
[Sysname-acl-adv-3000] rule 1 deny ip destination 192.168.1.2 0 time-range test
[Sysname-acl-adv-3000] quit
# 在VLAN 10上应用ACL 3000。
[Sysname] packet-filter vlan 10 inbound ip-group 3000
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!