分类: 系统运维
2011-10-20 08:53:22
用户自定义ACL可以以报文的二层报文头、IP报文头等为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文,然后进行相应的处理。用户自定义ACL的序号取值范围为5000~5999。
如果要配置带有时间段参数的规则,则需要定义相应的时间段。参见19.2.1节。
1. 用户自定义AC L的配置方法
用户自定义AC L的具体配置方法如表19-9所示。
19-9 用户自定义ACL配置步骤
|
命令 |
说明 |
Step 1 |
system-view |
进入系统视图 |
Step 2 |
适用于S5600及以前系列:acl number acl-number [ name acl-name ] 适用于S7500及以后系列:acl { number acl-number | name acl-name [ advanced | basic | link | user ] } [ match-order { config | auto } ] |
创建用户自定义ACL并进入用户自定义ACL视图(二者选其一)。如果用户在创建ACL时指定了名称,则之后可以通过acl name acl-name命令进入指定名称的ACL视图 |
Step 3 |
适用于S3600、S5510等端支持用户自定义ACL的低端系列:rule [ rule-id ] { deny | permit } [ { { ipv4 | ipv6 | l2 | l4 | start } rule-string rule-mask offset }&<1-8> ] [ time-range time-name ] 适用于S5600、S7500等支持用户自定义ACL的中高端系列:rule [ rule-id ] { permit | deny } { rule-string rule-mask offset } &<1-8> [ time-range time-name ] |
创建用户自定义ACL规则(二者选其一)。可以重复本步骤创建多条规则 |
Step 4 |
description text |
(可选)定义ACL的描述信息。缺省情况下,ACL没有描述信息 |
Step 5 |
rule rule-id comment text |
(可选)定义规则的描述信息。缺省情况下,规则没有描述信息 |
适用于S3600、S5510等端支持用户自定义ACL的低端系列交换机的rule命令与适用于S5600、S7500等支持用户自定义ACL的中高端系列交换机的rule命令相比,只是后者的命令格式中少了{ ipv4 | ipv6 | l2 | l4 | start }这几个可选项,但基本功能是一样,都是用来定义一个用户自定义ACL规则。可用“undo rule rule-id”命令删除一个用户自定义ACL规则。它们的可选项和参数解释如下:
n rule-id:用户自定义ACL规则编号,取值范围为0~65534。
n deny:表示丢弃符合条件的报文。
n permit:表示允许符合条件的报文通过。
n ipv4:从IPv4报文头开始偏移。
n ipv6:从IPv6报文头开始偏移。
n l2:从L2帧头开始偏移。
n l4:从L4报文头开始偏移。
n start:从报文头开始偏移。
n rule-string:用户自定义的规则字符串,必须是16进制数组成,字符长度必须是偶数。
n rule-mask:规则字符串的掩码,用于和报文作“与”操作,必须是16进制数组成,字符长度必须是偶数,且rule-mask的长度必须和rule-string的长度相同。
n offset:偏移量,它以用户指定的报文头部为基准,指定从第几个字节开始进行比较。
n &<1-8>:表示一次最多可以定义8个这样的规则。
n time-name:时间段的名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,时间段的名字不可以使用英文单词all。
在删除一条规则时,需要指定该规则的编号。如果用户不知道规则的编号,可以使用display acl命令来查看。
下面是一个使用用户自定义的rule命令定义一条用户自定义ACL规则,允许从L2帧头开始算起第13、14两个字节的内容为0x0806的报文(ARP报文)通过的示例。
[Sysname] acl number 5000
[Sysname-acl-user-5000] rule 0 permit l2 0806 ffff 12
【注意】在配置用户自定义ACL时,需要注意以下事项:
n 用户自定义ACL需要和扩展型用户自定义流模板配合使用,用户自定义ACL中设置的偏移范围必须包含在扩展型用户自定义流模板中设置的偏移范围之内,否则用户自定义ACL不能成功应用。
n 如果指定编号对应的规则已经存在,系统将编辑该规则,但规则的描述信息保持不变。
n 新创建的规则不能和已经存在的规则相同,否则会导致创建不成功。
n 在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。
n 用户自定义ACL需要和扩展型用户自定义流模板配合使用,用户自定义ACL中设置的偏移范围必须包含在扩展型用户自定义流模板中设置的偏移范围之内,否则用户自定义ACL不能成功应用。
n 在使用rule comment命令为规则定义描述信息时,该规则必须存在。
用户自定义ACL配置示例本示例要配置一个用户自定义ACL 5000,允许在t1时间段内,从L2帧头开始算起第13、14两个字节的内容为0x0806的报文(ARP报文)通过。具体配置命令和显示信息如下所示:
[Sysname] acl number 5000
[Sysname-acl-user-5000] rule 0 permit l2 0806 ffff 12 time-range t1
[Sysname-acl-user-5000] display acl 5000
User defined ACL 5000, named -none-, 1 rule,
ACL's step is 5
rule 0 permit l2 0806 ffff 12 time-range t1 (Active)