分类:
2012-12-03 08:56:34
对于不是很常用的MAC VLAN,许多读者都感到很陌生,读者QQ群中也经常见到有读者提到这方面的问题,希望我给予解答。现从笔者编著,目前在全国热销的(与之配套的姊妹篇为)一书中摘选一部分H3C交换机MAC VLAN内容,希望对这些读者有所帮助。如要全面了解Cisco和H3C交换机的MAC VLAN相关知识和配置方法,请参见Cisco/H3C交换机配置与管理完全手册》(第二版)。
我们在第一篇学习Cisco IOS交换机基于MAC地址划分VLAN时已体会到,总体来说还是比较麻烦的,要配置VMPS服务器,还要配置VPMS客户端,而且VMPS服务器目前来说只能由CatOS系统交换机担当,所以要实现基于MAC地址来划分VLAN网络中必须同时有两种操作系统的Cisco交换机,条件也是比较比较苛刻的。相比之下,本节介绍的H3C交换机基于MAC地址的VLAN划分就简单许多。它是按照报文的源MAC地址来定义VLAN成员,将指定报文加入该VLAN的标记后发送。但在H3C以太网交换机中,支持基于MAC地址的VLAN不多,与前面介绍的基于IP子网VLAN一样,主要有S5500、S5510、S7500E等交换机系列。
与前面介绍的基于协议VLAN和基于IP子网VLAN一样,基于MAC地址的VLAN功能也只能在Hybrid端口配置,而且也主要用于在用户的接入设备的下行端口上进行配置(基于协议VLAN和基于IP子网VLAN也仅在接入设备的下行端口上配置),因此不和聚合功能同时使用。
基于MAC地址VLAN的实现机制
在支持基于MAC地址划分VLAN的H3C交换机中,划分方式又有三种形式:手动配置静态MAC VLAN、动态触发端口加入静态MAC VLAN和动态MAC VLAN。
在手动配置静态MAC VLAN方式中,管理员需要手动配置MAC VLAN表项,启动基于MAC划分VLAN的功能,然后手动将对应的端口加入MAC VLAN。这种方式显然工作量比较大,常用于MAC VLAN中用户相对较少的网络环境。在该方式下,MAC VLAN的划分原理如下:
l 当端口收到的报文为不带VLAN标记的报文时,会根据报文的源MAC匹配MAC VLAN表项。首先进行模糊匹配,即查询表中MASK(MAC地址掩码)不是全为F(只比较非F的位)的表项。将源MAC和MASK进行逻辑与运算后再与MAC VLAN表项中的MAC地址匹配,如果完全相同,则匹配成功,给报文添加表项中指定的VLAN ID并转发该报文;如果模糊匹配失败,则进行精确匹配,即查询表中MASK为全F的表项。如果报文中的源MAC与MAC VLAN表项中的MAC地址完全相同,则匹配成功,给报文添加表项中指定的VLAN ID并转发该报文;如果没有找到匹配MAC VLAN表项,则继续按照基于IP子网VLAN、协议VLAN、端口VLAN的先后顺序进行匹配。
l 当端口收到的报文为带有VLAN标记的报文时,如果VLAN ID在端口中允许通过的VLAN ID列表里时,则接收该报文;否则丢弃该报文。
在手动配置静态MAC VLAN划分方式中,管理员需要把端口一一加入相应的MAC VLAN,但这里有一个问题,那就是我们有时往往根本不能确定交换机从哪些端口收到属于MAC VLAN的报文,这时我们就不能通过手动方式把相应端口加入到MAC VLAN。此时,就需要借助另一种更加智能的MAC VLAN配置方式,使用动态触发端口加入静态MAC VLAN中。在这种MAC VLAN配置方式中,配置MAC VLAN表项后,管理员只需在端口上启用基于MAC的VLAN划分功能和MAC VLAN动态触发功能,在端口收到与MAC VLAN表项匹配的报文后,可以通过此报文动态触发端口加入MAC VLAN。其划分原理如下:
l 当端口收到的报文为不带VLAN标记的报文时,按图19-11所示流程进行处理。
l 当收到的报文为带VLAN标记的报文时,处理方式和基于端口的VLAN一样:如果端口允许携带该VLAN标记的报文通过,则正常转发;如果不允许,则丢弃该报文。
【说明】如果用户在同一端口上同时启用了手动配置静态MAC VLAN和动态触发端口加入静态MAC VLAN,此时端口对收到的非精确匹配的报文将做丢弃处理。
图19-11 在收到不带VLAN标记报文时,动态触发端口加入静态MAC VLAN的处理流程
动态MAC VLAN需要和接入认证(比如基于MAC地址的802.1x认证)配合使用,以实现终端的安全、灵活接入。用户在交换机上配置动态MAC VLAN功能以后,还需要在接入认证服务器上配置MAC地址和VLAN的关联关系,这种MAC VLAN的配置就比较麻烦了,本书不做介绍。
19.6.2 手动配置静态MAC VLAN配置(略)
19.6.3 动态触发端口加入静态MAC VLAN配置(略)
使用时,Laptop1和Laptop2要分别用于两个部门的员工,两个部门间使用VLAN100和VLAN200进行隔离。现要求这两台笔记本电脑无论在哪个会议室使用,均只能访问自己部门的服务器,即Server1和Server2。
图19-11 手动配置静态MAC VLAN示例拓扑结构
本示例配置所适用的H3C交换机系列和对应的软/硬件版本如表19-18所示。
表19-18 示例适用的H3C交换机系列及软/硬件版本
H3C交换机系列 | 软件版本 | 硬件版本 |
S5500-SI系列以太网交换机 | Release 1207软件版本 | 全系列硬件版本(除S5500-20TP-SI) |
Release 1301软件版本 | S5500-20TP-SI | |
S5500-EI系列以太网交换机 | Release 2102软件版本 | 全系列硬件版本 |
S7500E系列以太网交换机 | Release 6100,Release 6300软件版本 | 全系列硬件版本 |
1. SwitchA的配置。
(1)创建VLAN100和VLAN200,并将GigabitEthernet1/0/2配置为Trunk端口,允许VLAN100和VLAN200的报文通过。
[SwitchA] vlan 100
[SwitchA-vlan100] quit
[SwitchA] vlan 200
[SwitchA-vlan200] quit
[SwitchA] interface GigabitEthernet1/0/2
[SwitchA-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-GigabitEthernet1/0/2] port trunk permit vlan 100 200
[SwitchA-GigabitEthernet1/0/2] quit
(2)将GigabitEthernet1/0/1配置为Hybrid端口,并使其在发送VLAN 100和VLAN 200的报文时去掉VLAN Tag。
[SwitchA] interface GigabitEthernet1/0/1
[SwitchA-GigabitEthernet1/0/1] port link-type hybrid
[SwitchA-GigabitEthernet1/0/1] port hybrid vlan 100 200 untagged
[SwitchA-GigabitEthernet1/0/1] quit
(3)创建Laptop1的MAC地址与VLAN 100的关联,创建Laptop2的MAC地址与VLAN 200的关联,开启GigabitEthernet1/0/1端口的MAC-VLAN功能。
[SwitchA] mac-vlan mac-address 000d-88f8-4e71 vlan 100
[SwitchA] mac-vlan mac-address 0014-222c-aa69 vlan 200
[SwitchA] interface GigabitEthernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] mac-vlan enable
2. SwitchB的配置。
SwitchB的配置与SwitchA完全一致,这里不再赘述。
3. Core Switch的配置
(1)创建VLAN100和VLAN200,并将GigabitEthernet1/0/13和GigabitVLANEthernet
1/0/14端口分别加入这两个VLAN。
[CoreSwitch] vlan 100
[CoreSwitch-vlan100] port gigabitethernet 1/0/13
[CoreSwitch-vlan100] quit
[CoreSwitch] vlan 200
[CoreSwitch-vlan200] port gigabitethernet 1/0/14
[CoreSwitch-vlan200] quit
(2)配置GigabitEthernet1/0/3和GigabitEthernet1/0/4端口为Trunk端口,均允许VLAN100和VLAN200的报文通过。从这里也可以看出,同一个VLAN中可以基于多种VLAN划分方式来添加端口,因为在VLAN 100和VLAN 200中,上一步已通过基于端口VLAN划分方式添加了gigabitethernet 1/0/13和gigabitethernet 1/0/14两个Access端口。而此处添加的了Trunk端口(在SwitchA和SwitchB中还通过基于MAC地址划分方式添加了Hybird端口)。
[CoreSwitch] interface GigabitEthernet1/0/3
[CoreSwitch-GigabitEthernet1/0/3] port link-type trunk
[CoreSwitch-GigabitEthernet1/0/3] port trunk permit vlan 100 200
[CoreSwitch-GigabitEthernet1/0/3] quit
[CoreSwitch] interface GigabitEthernet1/0/4
[CoreSwitch-GigabitEthernet1/0/4] port link-type trunk
[CoreSwitch-GigabitEthernet1/0/4] port trunk permit vlan 100 200
[CoreSwitch-GigabitEthernet1/0/4] quit