分类: 系统运维
2011-10-20 08:52:46
二层ACL根据报文的源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息制定匹配规则,对报文进行相应的分析处理。二层ACL的序号取值范围为4000~4999。
如果要配置带有时间段参数的规则,则需要定义相应的时间段。请参见19.2.1节介绍。
1. 二层ACL的配置方法配置二层ACL的具体步骤如表19-7所示。
19-7 配置二层ACL的步骤
|
命令 |
说明 |
Step 1 |
system-view |
进入系统视图 |
Step 2 |
适用于S5600及以前系列:acl number acl-number [ name acl-name ] [ match-order { auto | config } ] 适用于S7500及以后系列:acl { number acl-number | name acl-name [ advanced | basic | link | user ] } [ match-order { config | auto } ] |
创建二层ACL并进入二层ACL视图(二者选其一)。缺省情况下,匹配顺序为config 如果用户在创建ACL时指定了名称,则之后可以通过acl name acl-name命令进入指定名称的ACL视图 |
Step 3 |
适用于S3600、S5500-EI、S5510、S7500E等系列:rule [ rule-id ] { deny | permit } [ cos vlan-pri | dest-mac dest-addr dest-mask | lsap lsap-code lsap-wildcard | source-mac sour-addr source-mask | time-range time-name | type type-code type-wildcard ] 适用于S5600、S7500等系列:rule [ rule-id ] { deny | permit } [ rule-string ] |
定义规则(二者选其一)。可以重复本步骤创建多条规则 |
Step 4 |
step step-value |
(可选)定义步长。缺省情况下,步长为5 |
Step 5 |
description text |
(可选)定义ACL的描述信息。缺省情况下,ACL没有描述信息 |
Step 6 |
rule rule-id comment text |
(可选)定义规则的描述信息/缺省情况下,规则没有描述信息 |
表19-7中的两个rule命令尽管适用于不同的交换机系列,但其实两者是差不多的,只是可选项和参数有些区别。在S5600、S7500系列中,是以“rule-string”参数替代了原来在S3600、S5500-EI、S5510等列中使用的一大串可选项和参数。但在实际的命令使用中,“rule-string”参数还是要以相应的可选项和参数来替代的。当然每个交换机型号所支持的可选项和参数并不完全一样,这在配置时要特别注意了。rule命令的可选项和参数如下:
n rule-id:ACL规则编号,取值范围为0~65534。
n deny:表示丢弃符合条件的数据包。
n permit:表示允许符合条件的数据包通过。
n rule-string:ACL规则信息,具体参数说明如表19-8所示。适用于S3600、S5500-EI、S5510、S7500E等列中的rule命令后面的可参数也可参照表中说明。
表19-8 二层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-mac-addr source-mac-mask | vlan-id }* |
源MAC信息或源VLAN信息 |
定义规则的源MAC地址范围或源VLAN ID |
source-mac-addr:源MAC地址,格式为H-H-H source-mac-mask:源MAC地址的掩码,格式为H-H-H vlan-id:源VLAN ID,取值范围为1~4094 |
dest dest-mac-addr dest-mac-mask |
目的MAC信息 |
定义规则的目的MAC地址范围 |
dest-mac-addr:目的MAC地址,格式为H-H-H dest-mac-mask:目的MAC地址的掩码,格式为H-H-H |
cos vlan-pri |
802.1p优先级 |
定义规则的802.1p优先级 |
vlan-pri:取值范围为0~7 |
c-tag-vlan c-tag-vlan-begin [ to c-tag-vlan-end ] |
内层VLAN信息 |
定义规则的内层VLAN信息 |
c-tag-vlan-begin,c-tag-vlan-end:VLAN ID,取值范围为1~4094 c-tag-vlan参数通常与QinQ功能配合使用,关于QinQ功能的详细介绍请参见“VLAN-VPN”部分 |
time-range time-name |
时间段信息 |
定义规则生效的时间段 |
time-name:指定规则生效的时间段名称,为1~32个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,为避免混淆,时间段的名字不可以使用英文单词all |
type protocol-type protocol-mask |
以太网帧的协议类型 |
定义以太网帧的协议类型 |
protocol-type:协议类型 protocol-mask:协议类型掩码 |
在删除一条ACL规则时,需要指定该ACL规则的编号。如果用户不知道ACL规则的编号,可以使用display acl命令来查看。
需要注意的是:
n 用户可以修改二层ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态。
n 在创建一条ACL规则的时候,用户可以不指定规则的编号,交换机将自动为这个规则分配一个编号:如果此ACL中没有规则,编号为0;如果此ACL中已有规则,编号为现有规则的最大编号+1;如果此ACL中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。
n 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
下面是一个使用rule命令创建二层ACL 4000,定义规则1,禁止从MAC地址000d-88f5-97ed发送到MAC地址0011-4301-991e且802.1p优先级为3的报文通过的示例。
System View: return to User View with Ctrl+Z.
[H3C] acl number 4000
[H3C-acl-ethernetframe-4000] rule 1 deny cos 3 source 000d-88f5-97ed ffff-ffff-ffff dest 0011-4301-991e ffff-ffff-ffff
[H3C-acl-ethernetframe-4000] quit
下面是一个使用rule命令创建二层ACL 4001,定义规则1,允许内层VLAN编号为2~10的报文通过的示例。
[H3C] acl number 4001
[H3C-acl-ethernetframe-4001] rule 1 permit c-tag-vlan 2 to 10
完成上述配置后,用户可以使用display acl命令查看ACL的配置信息。
表中的其他命令在本章前面已有介绍,在此不再赘述。但要注意的是,表19-7中的acl number的表表号一定要在4000~4999范围之中。
【注意】在进行二层ACL创建时,要注意以下事项:
n 当ACL的匹配顺序为config时,用户可以修改该ACL中的任何一条已经存在的规则,在修改ACL中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当ACL的匹配顺序为auto时,用户不能修改该ACL中的任何一条已经存在的规则,否则系统会提示错误信息。
n 在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照一定的编号步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,编号步长是5,那么系统分配给新定义的规则的编号将是30。关于步长的详细介绍请参考step命令。
n 新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
n 当ACL的匹配顺序为auto时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
n 用户可以通过命令acl number acl-number [ name acl-name ] match-order { auto | config }修改ACL的匹配顺序为auto或者config,但必须在ACL中没有规则的时候修改,对已经有规则的ACL是无法修改其匹配顺序的。
n 在使用rule comment命令为规则定义描述信息时,该规则必须存在。
2. 二层ACL配置示例
本示例是要配置一个二层ACL 4000,禁止802.1p优先级为3的报文通过。具体配置命令和显示信息如下:
[Sysname] acl number 4000
[Sysname-acl-ethernetframe-4000] rule deny cos 3
[Sysname-acl-ethernetframe-4000] display acl 4000
Ethernet frame ACL 4000, named -none-, 1 rule,
ACL's step is 5
rule 0 deny cos excellent-effort