18-ACL操作
本章节下载 (310.51 KB)
ACL(Access Control List,访问控制列表)是用来实现流识别功能的。网络设备为了过滤报文,需要配置一系列的匹配规则,以识别出特定的报文,然后根据预先设定的策略允许或禁止该报文通过。
ACL通过一系列的匹配条件对报文进行分类,这些条件可以是报文的源地址、目的地址、端口号等。
由ACL定义的报文匹配规则,可以被其它需要对流量进行区分的场合引用,如QoS中流分类规则的定义。
& 说明:
本手册中,IPv4 ACL指用于过滤IPv4报文的ACL,IPv6 ACL指用于过滤IPv6报文的ACL。
基于时间段的ACL使用户可以区分时间段对报文进行ACL控制。
ACL中的每条规则都可选择一个时间段,这条规则只在该指定的时间段内生效。如果规则引用的时间段未配置,则系统给出提示信息,并允许这样的规则创建成功。但是规则不能立即生效,直到用户配置了引用的时间段,并且系统时间在指定时间段范围内才能生效。
IPv4 ACL根据ACL序号来区分不同的ACL,IPv4 ACL分为下列四种类型:
l 基本IPv4 ACL(ACL序号为2000~2999):只根据报文的源IP地址信息制定规则。
l 高级IPv4 ACL(ACL序号为3000~3999):根据报文的源IP地址信息、目的IP地址信息、IP承载的协议类型、协议的特性等三、四层信息制定规则。
l 二层IPv4 ACL(ACL序号为4000~4999):根据报文的源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等二层信息制定规则。
l 用户自定义IPv4 ACL(ACL序号为5000~5999):可以以报文的二层报文头、三层IP报文头等为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。
IPv4 ACL可能会包含多个规则,而每个规则都指定不同的报文匹配选项。当一条报文命中多条规则时,在匹配报文时就会出现匹配顺序的问题。
IPv4 ACL支持两种匹配顺序:
l 配置顺序:按照用户配置规则的先后顺序进行规则匹配。
l 自动排序:按照“深度优先”的顺序进行规则匹配。
“深度优先”的具体原则如下:
l 基本IPv4 ACL的深度优先以源IP地址反掩码中“0”位的数量排序,反掩码中“0”位越多的规则匹配位置越靠前。例如,源IP地址反掩码为0.0.0.255的规则比源IP地址反掩码为0.0.255.255的规则匹配位置靠前。若反掩码中“0”位的数量相等,则先配置的规则匹配位置靠前。
l 高级IPv4 ACL的深度优先以源IP地址反掩码中“0”位的数量和目的IP地址反掩码中“0”位的数量排序,反掩码中“0”位越多的规则匹配位置越靠前。排序时,先比较源IP地址反掩码中“0”位的数量。例如,源IP地址反掩码为0.0.0.255的规则比源IP地址反掩码为0.0.255.255的规则匹配位置靠前。若源IP地址反掩码中“0”位的数量相等,则比较目的IP地址反掩码中“0”位的数量,若目的IP地址反掩码中“0”位的数量也相等,则先配置的规则匹配位置靠前。
l 二层IPv4 ACL的深度优先以源MAC地址掩码中“1”位的数量和目的MAC地址掩码中“1”位的数量排序,掩码中“1”位越多的规则匹配位置越靠前。例如,源MAC地址掩码为FFFF-FFFF-0000的规则比源MAC地址掩码为FFFF-0000-0000的规则匹配位置靠前。当掩码中“1”位的数量都相等时,则先配置的规则匹配位置靠前。
& 说明:
用户自定义IPv4 ACL的匹配顺序只能为配置顺序。
在匹配报文时,一旦有一条规则被匹配,报文就不再继续去匹配其它规则,设备将对该报文执行第一次匹配的规则指定的动作。
IPv4 ACL由一系列规则构成。在配置IPv4 ACL规则之前,首先需要创建IPv4 ACL。
创建IPv4 ACL时需要指定如下参数:
l 数字型IPv4 ACL编号。
l IPv4 ACL的匹配顺序,此参数为可选参数。
创建IPv4 ACL后可进入IPv4 ACL视图。
传统的报文过滤并不处理所有IP报文分片,而是只对第一个(首片)分片报文进行匹配处理,后续分片一律放行。这样,网络攻击者可能构造后续的分片报文进行流量攻击,就带来了安全隐患。
在ACL的规则配置项中,通过关键字fragment来标识该ACL规则仅对非尾片分片报文有效,而对非分片报文和尾片分片报文无效。不包含此关键字的配置规则项对非分片报文和分片报文均有效。
IPv6 ACL根据ACL序号来区分不同的ACL,IPv6 ACL分为下列两种类型:
l 基本IPv6 ACL(ACL序号为2000~2999):只根据三层IPv6源地址信息制定规则。
l 高级IPv6 ACL(ACL序号为3000~3999):根据报文的IPv6源地址信息、IPv6目的地址信息、IP承载的协议类型、协议的特性等三层、四层信息来制定规则。
IPv6 ACL可能会包含多个规则,而每个规则都指定不同的报文匹配选项。当一条报文命中多条规则时,在匹配报文时就会出现匹配顺序的问题。
IPv6 ACL支持两种匹配顺序:
l 配置顺序:按照用户配置规则的先后顺序进行规则匹配。
l 自动排序:按照“深度优先”的顺序进行规则匹配。
IPv6 ACL的“深度优先”原则是:把指定报文地址范围最小的规则排在最前面。这一点可以通过比较前缀长度来实现,越长的前缀指定的地址范围越小。例如,2050:6070::/96比2050:6070::/64指定的地址范围小,按照自动排序原则,2050:6070::/96范围优先匹配。
如果同一个IPv6 ACL中有两个或两个以上的规则包含相同的前缀,就要根据它们的配置顺序来进行匹配。
在匹配报文时,一旦有一条规则被匹配,报文就不再继续匹配其它规则,设备将对该报文执行第一次匹配的规则指定的动作。
IPv6 ACL由一系列规则构成。在配置IPv6 ACL规则之前,首先需要创建IPv6 ACL。
创建IPv6 ACL时需要指定如下参数:
l 数字型IPv6 ACL编号。
l IPv6 ACL的匹配顺序,此参数为可选参数。
创建IPv6 ACL后可进入IPv6 ACL视图。
对时间段的配置有如下两种情况:
l 配置周期时间段:采用每个星期固定时间段的形式,例如从星期一至星期五的8:00至18:00。
l 配置绝对时间段:采用从某年某月某日某时某分起至某年某月某日某时某分结束的形式,例如从2000年1月28日15:00起至2004年1月28日15:00结束。
注意:
S3610&S5510系列以太网交换机支持的绝对时间段范围从1970/1/1 00:00起至2100/12/31 24:00结束。
表2-1 配置时间段
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个时间段 |
time-range time-name { start-time to end-time days [ from time1 date1 ] [ to time2 date2 ] | from time1 date1 [ to time2 date2 ] | to time2 date2 } |
必选 |
需要注意的是:
l 如果用户通过命令time-range time-name start-time to end-time days定义了一个周期时间段,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。
l 如果用户通过命令time-range time-name { from time1 date1 [ to time2 date2 ] | to time2 date2 }定义了一个绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。
l 如果用户通过命令time-range time-name start-time to end-time days { from time1 date1 [ to time2 date2 ] | to time2 date2 }同时定义了绝对时间段和周期时间段,则只有系统时钟同时满足绝对时间段和周期时间段的定义时,该时间段才进入激活状态。例如,一个时间段定义了绝对时间段:从2004年1月1日0点0分到2004年12月31日24点0分,同时定义了周期时间段:每周三的12:00到14:00。该时间段只有在2004年内每周三的12:00到14:00才进入激活状态。
l 在同一个名字下可以配置多个时间段,来共同描述一个特殊时间,通过名字来引用该时间。在同一个名字下配置的多个周期时间段之间是“或”的关系,多个绝对时间段之间是“或”的关系,而周期时间段和绝对时间段之间是“与”的关系。
l 如果不配置开始日期,时间段就是从系统可表示的最早时间起到结束日期为止。如果不配置结束日期,时间段就是从配置生效之日起到系统可以表示的最大时间为止。
l 最多可以定义256个时间段。
# 配置周期时间段,时间范围为每星期一到星期五的8:00到18:00。
<Sysname> system-view
[Sysname] time-range test1 8:00 to 18:00 working-day
[Sysname] display time-range test1
Current time is 13:27:32 4/16/2005 Saturday
Time-range : test1 ( Inactive )
08:00 to 18:00 working-day
# 配置绝对时间段,时间范围为从2000年1月28日15:00起至2004年1月28日15:00结束。
<Sysname> system-view
[Sysname] time-range test2 from 15:00 2000/1/28 to 15:00 2004/1/28
[Sysname] display time-range test2
Current time is 13:27:32 4/16/2005 Saturday
Time-range : test2 ( Inactive )
from 15:00 1/28/2000 to 15:00 1/28/2004
基本IPv4 ACL只根据三层源IP地址信息制定规则,对报文进行相应的分析处理。
基本IPv4 ACL的序号取值范围为2000~2999。
如果要配置带有时间段参数的规则,则需要预先定义相应的时间段。
表2-2 配置基本IPv4 ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入基本IPv4 ACL视图 |
acl number acl-number [ match-order { config | auto } ] |
必选 缺省情况下,匹配顺序为config |
配置规则 |
rule [ rule-id ] { permit | deny } [ rule-string ] |
必选 rule-string的具体内容请参见命令手册 |
配置步长 |
step step-value |
可选 缺省情况下,步长为5 |
配置基本IPv4 ACL的描述信息 |
description text |
可选 缺省情况下,基本IPv4 ACL没有描述信息 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有描述信息 |
需要注意的是:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 在定义规则的时候,用户可以不指定规则编号,这时系统会从0开始,按照指定的步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 新创建或用户编辑后的规则不能和已经存在的规则相同,否则创建或编辑不成功,系统提示该规则已经存在。
l 当匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
注意:
l 在使用rule comment命令为规则定义描述信息时,该规则必须存在。
l 用户可以通过命令acl number acl-number match-order { config | auto }修改IPv4 ACL的匹配顺序为config或者auto,但必须在IPv4 ACL中没有规则存在时修改,对已经有规则的IPv4 ACL是无法修改其匹配顺序的。
# 配置基本IPv4 ACL 2000,禁止源地址为1.1.1.1的报文通过。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000] rule deny source 1.1.1.1 0
[Sysname-acl-basic-2000] display acl 2000
Basic ACL 2000, 1 rule,
ACL's step is 5
rule 0 deny source 1.1.1.1 0 (0 times matched)
高级IPv4 ACL可以使用报文的源IP地址信息、目的IP地址信息、IP承载的协议类型、协议的特性(例如TCP或UDP的源端口、目的端口,ICMP协议的消息类型、消息码等)等信息来制定规则。
高级IPv4 ACL支持对三种报文优先级的分析处理:
l ToS(Type of Service,服务类型)优先级
l IP优先级
l DSCP(Differentiated Services Codepoint Priority,差分服务编码点优先级)
用户可以利用高级IPv4 ACL定义比基本IPv4 ACL更准确、更丰富、更灵活的规则。
高级IPv4 ACL的序号取值范围为3000~3999。
& 说明:
l 当一条规则同时配置IP优先级和ToS优先级时,两者同时生效;
l 当一条规则同时配置IP优先级、ToS优先级和DSCP时,只有DSCP生效。
如果要配置带有时间段参数的规则,则需要预先定义相应的时间段。
表2-3 配置高级IPv4 ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入高级IPv4 ACL视图 |
acl number acl-number [ match-order { config | auto } ] |
必选 缺省情况下,匹配顺序为config |
配置规则 |
rule [ rule-id ] { permit | deny } protocol [ rule-string ] |
必选 protocol和rule-string的具体内容请参见命令手册 |
配置步长 |
step step-value |
可选 缺省情况下,步长为5 |
配置高级IPv4 ACL的描述信息 |
description text |
可选 缺省情况下,高级IPv4 ACL没有描述信息 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有描述信息 |
需要注意的是:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 在定义规则的时候,用户可以不指定规则编号,这时系统会从0开始,按照指定的步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 新创建或用户编辑后的规则不能和已经存在的规则相同,否则创建或编辑不成功,系统提示该规则已经存在。
l 当匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
注意:
l 在使用rule comment命令为规则定义描述信息时,该规则必须存在。
l 用户可以通过命令acl number acl-number match-order { config | auto }修改IPv4 ACL的匹配顺序为config或者auto,但必须在IPv4 ACL中没有规则存在时修改,对已经有规则的IPv4 ACL是无法修改其匹配顺序的。
# 配置高级IPv4 ACL 3000,允许从129.9.0.0网段的主机向202.38.160.0网段的主机发送端口号为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
[Sysname-acl-adv-3000] display acl 3000
Advanced ACL 3000, 1 rule,
ACL's step is 5
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)
二层IPv4 ACL根据报文的源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等二层信息制定规则,对报文进行相应的分析处理。
二层IPv4 ACL的序号取值范围为4000~4999。
如果要配置带有时间段参数的规则,则需要预先定义相应的时间段。
表2-4 配置二层IPv4 ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入二层IPv4 ACL视图 |
acl number acl-number [ match-order { config | auto } ] |
必选 缺省情况下,匹配顺序为config |
配置规则 |
rule [ rule-id ] { permit | deny } [ rule-string ] |
必选 rule-string的具体内容请参见命令手册 |
配置步长 |
step step-value |
可选 缺省情况下,步长为5 |
配置二层IPv4 ACL的描述信息 |
description text |
可选 缺省情况下,二层IPv4 ACL没有描述信息 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有描述信息 |
需要注意的是:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 在定义规则的时候,用户可以不指定规则编号,这时系统会从0开始,按照指定的步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 新创建或用户编辑后的规则不能和已经存在的规则相同,否则创建或编辑不成功,系统提示该规则已经存在。
l 当匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
注意:
l 在使用rule comment命令为规则定义描述信息时,该规则必须存在。
l 用户可以通过命令acl number acl-number match-order { config | auto }修改IPv4 ACL的匹配顺序为config或者auto,但必须在IPv4 ACL中没有规则的时候修改,对已经有规则的IPv4 ACL是无法修改其匹配顺序的。
# 配置二层IPv4 ACL 4000,禁止802.1p优先级为3的报文通过。
<Sysname> system-view
[Sysname] acl number 4000
[Sysname-acl-ethernetframe-4000] rule deny cos 3
[Sysname-acl-ethernetframe-4000] display acl 4000
Ethernet frame ACL 4000, 1 rule,
ACL's step is 5
rule 0 deny cos excellent-effort(0 times matched)
用户自定义IPv4 ACL可以使用报文的二层报文头、三层IP报文头等为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文,然后进行相应的处理。
用户自定义IPv4 ACL的序号取值范围为5000~5999。
如果要配置带有时间段参数的规则,则需要预先定义相应的时间段。
表2-5 配置用户自定义IPv4 ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入用户自定义ACL视图 |
acl number acl-number |
必选 |
创建用户自定义IPv4 ACL规则 |
rule [ rule-id ] { permit | deny } [ [ start | ipv4 | ipv6 | l2 | l4 ] { rule-string rule-mask offset }&<1-8> ] [ time-range time-name ] |
必选 rule-string的具体内容请参见命令手册 |
配置用户自定义IPv4 ACL的描述信息 |
description text |
可选 缺省情况下,用户自定义IPv4 ACL没有描述信息 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有描述信息 |
需要注意的是:
l 如果指定编号对应的规则已经存在,系统将编辑该规则,但规则的描述信息保持不变。
l 新创建的规则不能和已经存在的规则相同,否则会导致创建不成功。
l 在定义规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 用户自定义IPv4 ACL的匹配顺序为配置顺序。
注意:
在使用rule comment命令为规则定义描述信息时,该规则必须存在。
# 配置用户自定义IPv4 ACL 5500,在指定的时间段内匹配ARP报文。
<Sysname> system-view
[Sysname] acl number 5500
[Sysname-acl-user-5500] rule permit l2 0806 ffff 12 time-range t1
[Sysname-acl-user-5500] display acl 5500
User defined ACL 5500, 1 rule,
ACL's step is 5
rule 0 permit l2 0806 ffff 12 time-range t1 (Active)
完成上述配置后,在任意视图下执行display命令,可以显示配置IPv4 ACL后的运行情况。通过查看显示信息,用户可以验证配置的效果。
在用户视图下可以执行reset命令清除IPv4 ACL统计信息。
表2-6 IPv4 ACL显示和维护
配置 |
命令 |
显示配置的IPv4 ACL信息 |
display acl { all | acl-number } |
显示时间段的配置和状态 |
display time-range { all | time-name } |
清除IPv4 ACL统计信息 |
reset acl counter { all | acl-number } |
公司企业网通过Switch的端口实现各部门之间的互连。研发部门由Ethernet1/0/1接入交换机,工资查询服务器的地址为192.168.1.2。要求正确配置ACL,禁止研发部门在工作日8:00至18:00访问工资查询服务器。
# 定义星期一至星期五的8:00至18:00的周期时间段。
<Sysname> system-view
[Sysname] time-range trname 8:00 to 18:00 working-day
# 进入高级IPv4 ACL视图,编号为3000。
[Sysname] acl number 3000
# 定义研发部门到工资服务器的访问规则。
[Sysname-acl-adv-3000] rule 0 deny ip source any destination 192.168.1.2 0.0.0.0 time-range trname
[Sysname-acl-adv-3000] quit
# 将IPv4 ACL 3000应用于Ethernet1/0/1入方向的包过滤。
[Sysname] traffic classifier test
[Sysname-classifier-test] if-match acl 3000
[Sysname-classifier-test] quit
[Sysname] traffic behavior test
[Sysname-behavior-test] filter deny
[Sysname-behavior-test] quit
[Sysname] qos policy test
[Sysname-qospolicy-test] classifier test behavior test
[Sysname-qospolicy-test] quit
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] qos apply policy test inbound
IPv6 ACL时间段的配置与IPv4 ACL的配置类似,请参见“2.1 配置时间段”。
基本IPv6 ACL只根据三层IPv6源地址信息制定规则,对报文进行相应的分析处理。
基本IPv6 ACL的序号取值范围为2000~2999。
如果要配置带有时间段参数的规则,则需要预先定义相应的时间段。
表3-1 配置基本IPv6 ACL
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
创建并进入基本IPv6 ACL视图 |
acl ipv6 number acl6-number [ match-order { config | auto } ] |
必选 缺省情况下,匹配顺序为config |
配置规则 |
rule [ rule-id ] { permit | deny } [ rule-string ] |
必选 rule-string的具体内容请参见命令手册 |
配置步长 |
step step-value |
可选 缺省情况下,步长为5 |
配置基本IPv6 ACL的描述信息 |
description text |
可选 缺省情况下,基本IPv6 ACL没有描述信息 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有描述信息 |
需要注意的是:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 在定义规则的时候,用户可以不指定规则编号,这时系统会从0开始,按照指定的步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 新创建或用户编辑后的规则不能和已经存在的规则相同,否则创建或编辑不成功,系统提示该规则已经存在。
l 当匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
注意:
l 在使用rule comment命令为规则定义描述信息时,该规则必须存在。
l 用户可以通过命令acl ipv6 number acl-number match-order { config | auto }修改IPv6 ACL的匹配顺序为config或者auto,但必须在IPv6 ACL中没有规则的时候修改,对已经有子规则的IPv6 ACL是无法修改其匹配顺序的。
# 配置基本IPv6 ACL 2000,禁止源地址为fe80:5060::8050/96的报文通过,允许源地址为2030:5060::9050/64的报文通过。
<Sysname> system-view
[Sysname] acl ipv6 number 2000
[Sysname-acl6-basic-2000] rule permit source 2030:5060::9050/64
[Sysname-acl6-basic-2000] rule deny source fe80:5060::8050/96
[Sysname-acl6-basic-2000] display acl ipv6 2000
Basic IPv6 ACL 2000, 2 rules,
ACL's step is 5
rule 0 permit source 2030:5060::9050/64 (0 times matched)
rule 5 deny source FE80:5060::8050/96 (0 times matched)
高级IPv6 ACL可以使用报文的IPv6源地址信息、IPv6目的地址信息、IP承载的协议类型、协议的特性(例如TCP或UDP的源端口、目的端口,ICMP协议的消息类型、消息码等)等信息来制定规则。
用户可以利用高级IPv6 ACL定义比基本IPv6 ACL更准确、更丰富、更灵活的规则。
高级IPv6 ACL的序号取值范围3000~3999。
如果要配置带有时间段参数的规则,则需要预先定义相应的时间段。
表3-2 配置高级IPv6 ACL
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并进入高级IPv6 ACL视图 |
acl ipv6 number acl6-number [ match-order { config | auto } ] |
必选 缺省情况下,匹配顺序为config |
配置规则 |
rule [ rule-id ] { permit | deny } protocol [ rule-string ] |
必选 protocol和rule-string的具体内容请参见命令手册 |
配置步长 |
step step-value |
可选 缺省情况下,步长为5 |
配置高级IPv6 ACL的描述信息 |
description text |
可选 缺省情况下,高级IPv6 ACL没有描述信息 |
配置规则的描述信息 |
rule rule-id comment text |
可选 缺省情况下,规则没有描述信息 |
需要注意的是:
l 当匹配顺序为config时,如果指定编号对应的规则已经存在,系统将编辑该规则,没有编辑的部分仍旧保持原来的状态;当匹配顺序为auto时,用户不能编辑任何一个已经存在的规则,否则系统会提示错误信息。
l 在定义规则的时候,用户可以不指定规则编号,这时系统会从0开始,按照指定的步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
l 新创建或用户编辑后的规则不能和已经存在的规则相同,否则创建或编辑不成功,系统提示该规则已经存在。
l 当匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
注意:
l 对于指定的协议号参数,只能匹配IPv6报文头部的Next Header字段,而不是真正的四层协议号。
l 在使用rule comment命令为规则定义描述信息时,该规则必须存在。
l 用户可以通过命令acl ipv6 number acl6-number match-order { config | auto }修改IPv6 ACL的匹配顺序为config或者auto,但必须在IPv6 ACL中没有规则的时候修改,对已经有规则的IPv6 ACL是无法修改其匹配顺序的。
# 配置高级IPv6 ACL 3000,允许源地址为2030:5060::9050/64的TCP报文通过。
<Sysname> system-view
[Sysname] acl ipv6 number 3000
[Sysname-acl6-adv-3000] rule permit tcp source 2030:5060::9050/64
[Sysname-acl6-adv-3000] display acl ipv6 3000
Advanced IPv6 ACL 3000, 1 rule,
ACL's step is 5
rule 0 permit tcp source 2030:5060::9050/64 (0 times matched)
完成上述配置后,在任意视图下执行display命令,可以显示配置IPv6 ACL后的运行情况。通过查看显示信息,用户可以验证配置的效果。
在用户视图下可以执行reset命令清除IPv6 ACL统计信息。
表3-3 IPv6 ACL显示和维护
操作 |
命令 |
显示配置的IPv6 ACL信息 |
display acl ipv6 { all | acl6-number } |
清除IPv6 ACL统计信息 |
reset acl ipv6 counter { all | acl6-number } |
在端口Ethernet1/0/2配置IPv6报文过滤,允许接收源地址为4050::9000到4050::90FF的报文通过,禁止接收其他报文。
(1) 配置IPv6 ACL
# 进入系统视图。
<Sysname> system-view
# 配置源地址为4050::9000到4050::90FF的访问规则。
[Sysname] acl ipv6 number 2000
[Sysname-acl6-basic-2000] rule permit source 4050::9000/120
# 配置其他源地址的访问规则。
[Sysname] acl ipv6 number 2001
[Sysname-acl6-basic-2001] rule deny source any
(2) 配置端口Ethernet1/0/2入方向的IPv6报文过滤。
# 配置允许接收源地址为4050::9000到4050::90FF的类和流行为。
[Sysname] traffic classifier c_permit
[Sysname-classifier-c_permit] if-match acl ipv6 2000
[Sysname-classifier-c_permit] quit
[Sysname] traffic behavior b_permit
[Sysname-behavior-b_permit] filter permit
[Sysname-behavior-b_permit] quit
# 配置拒绝其他源地址的类和流行为。
[Sysname] traffic classifier c_deny
[Sysname-classifier-c_deny] if-match acl ipv6 2001
[Sysname-classifier-c_deny] quit
[Sysname] traffic behavior b_deny
[Sysname-behavior-b_deny] filter deny
[Sysname-behavior-b_deny] quit
# 配置并应用策略。
[Sysname] qos policy test
[Sysname-qospolicy-test] classifier c_permit behavior b_permit
[Sysname-qospolicy-test] classifier c_deny behavior b_deny
[Sysname-qospolicy-test] quit
[Sysname] interface Ethernet 1/0/2
[Sysname-Ethernet1/0/2] qos apply policy test inbound
流模板的主要功能是对应用的ACL规则中所能包含的信息进行限制。在以太网端口应用的ACL规则中包含的信息必须是该端口应用的流模板中定义信息的子集。比如,流模板定义了源IP地址、目的IP地址、源TCP端口、目的TCP端口等限制,只有在上述范围内的ACL规则可以正确应用,用于包过滤、QoS等功能;否则该ACL规则将不能应用。
设备支持的流模板包括缺省流模板和用户自定义流模板。其中,用户自定义流模板又可分为标准型和扩展型。初始状态下,端口下默认应用缺省流模板。
流模板在全局配置,在端口应用。
注意:
流模板只对基于硬件处理的ACL有效,对基于软件处理的ACL不生效。
表4-1 配置流模板
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置用户自定义流模板 |
配置标准型用户自定义流模板 |
flow-template flow-template-name basic { sip | dip | sipv6 | dipv6 | smac | dmac | sport | dport | ethernet-protocol | ip-protocol | ipv6-protocol | custom-cos | custom-vlan-id | icmp-type | icmp-code | fragments | ipv6-fragment | tcp-flag | tos | dscp | ipv6-dscp | ip-precdence | icmpv6-type | icmpv6-code | service-cos | service-vlan-id }* |
可选 二者选其一 |
配置扩展型用户自定义流模板 |
flow-template flow-template-name extend { [ start ] offset-max-value length-max-value | l2 offset-max-value length-max-value | l4 offset-max-value length-max-value | ipv4 offset-max-value length-max-value | ipv6 offset-max-value length-max-value }* |
||
进入端口视图或端口组视图 |
进入端口视图 |
interface interface-type interface-number |
二者必选其一 进入端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
应用用户自定义流模板 |
flow-template flow-template-name |
可选 缺省情况下,端口下应用缺省流模板 |
& 说明:
l 用户自定义ACL需要和扩展型用户自定义流模板配合使用,当某一端口应用了扩展型流模板后,不能再应用包含基本或高级ACL的策略。
l 在端口上应用用户自定义流模板之前,必须先配置一个用户自定义流模板;一个端口上只能应用一个流模板。
l 在端口上应用流模板时,请关闭如下功能:802.1x功能、集群功能(NDP、NTDP、HABP、Cluster)、DHCP Snooping、端口隔离、MAC+IP端口绑定、灵活QinQ、Voice VLAN,否则流模板将不能成功应用。同时建议用户不要在端口上应用流模版后使能这些功能。
完成上述配置后,在任意视图下执行display命令,可以显示配置流模板后的运行情况。通过查看显示信息,用户可以验证配置的效果。
表4-2 流模板显示
操作 |
命令 |
显示指定名称的用户自定义流模板配置信息 |
display flow-template user-defined [ flow-template-name ] |
显示用户自定义流模板在端口上的应用情况 |
display flow-template interface [ interface-type interface-number ] |
配置用户自定义流模板,并在端口上应用。
# 配置标准型流模板aaa。
<Sysname> system-view
[Sysname] flow-template aaa basic customer-cos smac customer-vlan-id
# 在端口Ethernet 1/0/1上应用流模板aaa。
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] flow-template aaa
[Sysname-Ethernet1/0/1] quit
# 创建用户自定义ACL 5000,配置扩展型流模板bbb,匹配ARP报文。
[Sysname] acl number 5000
[Sysname-acl-user-5000] rule deny l2 0806 ffff 12
[Sysname] flow-template bbb extend l2 12 2
# 在端口Ethernet 1/0/2上应用流模板bbb。
[Sysname] interface Ethernet 1/0/2
[Sysname-Ethernet1/0/2] flow-template bbb
[Sysname-Ethernet1/0/2] quit
# 显示所有用户自定义流模板的信息。
[Sysname] display flow-template user-defined
user-defined flow template: extend
name:bbb, index:1, total reference counts:0
fields: l2 12 2
user-defined flow template: basic
name:aaa, index:2, total reference counts:0
fields: smac customer-vlan-id customer-cos
# 显示所有端口上流模板的信息。
[Sysname] display flow-template interface
Interface: Ethernet1/0/1
user-defined flow template: basic
name:aaa, index:1, total reference counts:1
fields: smac customer-vlan-id customer-cos
Interface: Ethernet1/0/2
user-defined flow template: extend
name:bbb, index:2, total reference counts:1
fields: l2 12 2
# 删除流模板aaa。如果流模板已在端口应用,必须先在端口取消应用。
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] undo flow-template
[Sysname-Ethernet1/0/1] quit
[Sysname] undo flow-template name aaa
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!