支持VLAN的二层交换机,其二层转发和MAC地址维护方式都发生了一定的变化,下面分别讨论两种不同的MAC地址维护方式的交换机。
<wbr></wbr>
SVL方式的二层交换机
SVL(Shared VLAN Learning)方式的二层交换机在学习MAC地址并建立MAC地址表的过程中并不附加VLAN ID,或者说它的MAC地址表是为所有VLAN共享使用的。它的二层转发基本流程如下:
(1)<wbr><wbr><wbr><wbr><wbr> 根据接收到的以太网帧的源MAC信息添加或刷新MAC地址表项;</wbr></wbr></wbr></wbr></wbr>
(2)<wbr><wbr><wbr><wbr><wbr> 根据目的MAC信息查找MAC地址表,如果没有找到匹配项,那么在报文对应的VLAN内广播;</wbr></wbr></wbr></wbr></wbr>
(3)<wbr><wbr><wbr><wbr><wbr> 如果找到匹配项,但是表项对应的端口并不属于报文对应的VLAN,那么丢弃该帧;</wbr></wbr></wbr></wbr></wbr>
(4)<wbr><wbr><wbr><wbr><wbr> 如果找到匹配项,且表项对应的端口属于报文对应的VLAN,那么将报文转发到该端口,但是如果表项对应端口与收到以太网帧的端口相同,则丢弃该帧。</wbr></wbr></wbr></wbr></wbr>
这种类型的二层交换机转发与普通二层交换机转发基本相同,只是多了转发过程中的VLAN检查。这样的交换机可能遇到下述问题:位于不同VLAN的主机(或网络设备)具有相同的MAC地址,由于SVL交换机所有VLAN共享一个MAC表,这样对应的MAC表项中端口就会不断的变化,而且两个VLAN的报文转发也会受到影响,这种情况如图7所示。
图7中,VLAN 10的PC A发送给PC B的报文由于MAC地址表查找结果与VLAN不符而被丢弃了;同理,当MAC B学习到PORT 2时,VLAN 20的PC D和PC C之间的通信就会出现问题。这样,虽然不同的主机被隔离在了不同的冲突域和广播域中,但是MAC地址却可能导致不同VLAN的通信相互影响。
在实际应用中,SVL方式的二层交换机已经比较少见了。
<wbr></wbr>
IVL方式的二层交换机
IVL(Independent VLAN Learning)方式的交换机在学习MAC地址并建立MAC地址表的过程中同时附加VLAN ID,同一个MAC地址可以出现在不同的VLAN中,这样的方式也可以理解为每个VLAN都有自己独立的MAC地址表。它的二层转发基本流程如下:
(1)<wbr><wbr><wbr><wbr><wbr> 根据接收到的以太网帧的源MAC+VLAN-ID信息添加或刷新MAC地址表项;</wbr></wbr></wbr></wbr></wbr>
(2)<wbr><wbr><wbr><wbr><wbr> 根据目的MAC+VLAN-ID查找MAC地址表项,如果没有找到匹配项,那么在VLAN-ID对应的VLAN内广播;</wbr></wbr></wbr></wbr></wbr>
(3)<wbr><wbr><wbr><wbr><wbr> 如果能够找到匹配表项,则向表项所示的对应端口转发,但是如果表项所示端口与收到以太网帧的端口相同,则丢弃该帧。</wbr></wbr></wbr></wbr></wbr>
SVL方式交换机上可能遇到的转发问题,在IVL交换机中得以解决,如图8所示
IVL方式的二层交换机转发流程更加清晰,VLAN之间不会互相影响,目前实际应用中的二层交换机大多采用这种方式。