Asymmetric VLAN学习

Asymmetric VLAN

在开发DLINK交换机的管理端软件时遇到了Asymmetric VLAN这个概念,google了一下发现好像只有DLINK的交换机上才有这个叫法。研究了一下,了解了 Asymmetric VLAN的应用场景以及封包的走向流程,记录在这里给其他还不太清楚Asymmetric VLAN的朋友们一点参考(需要了解VLAN的基本知识和2层数据包转发原理)。

 

Asymmetric VLAN翻译成中文就是非对称VLAN,为什么叫做非对称呢?它的适用场景是什么?

考虑以下的场景:PC A和PC B之间需要隔离开,但他们又要共享Server C的资源,并且只有一台2层交换机可用,这种情况下能否达到需求?

显然,PC A和PC B应分属不同的VLAN,这样才能做到隔离,共享Server C则还需要另外划分一个VLAN,并且PC A PC B和Server C都要在这个VLAN中。假设PC A PC B和Server C都是VLAN tag un-aware的,我们做如下的配置:

1)PC A连接交换机的port1,PC B连接交换机的port2,Server C连接交换机的port3

2)划分port1 port3 为VLAN 10, port 2 port3为VLAN 20, port 1 port2 port 3为VLAN 30. 显然port1在VLAN 10中必须是untagged port,port2在VLAN 20中必须是untagged port, port3在VLAN 30中必须是untagged port。 前面说了, PC A PC B和Server C都是不认识带VLAN标签的封包的,如果不是untagged port那根本无法通信。

 

OK,下面分析封包的走向流程。假设交换机的转发表中还没有学习到任何信息,PC A向Server C发送一个请求,封包进入port1,交换机为这个封包打上pvid = 10,交换机学习到一条vid 10 MAC A port 1的信息记录到转发表中,这个封包被转发到port 3(vlan 10),Server C收到这个请求开始回复,Server C发出的封包进入port 3,封包被交换机打上pvid = 30,但转发表中有关vlan 30的目的MAC和port都找不到,因此交换机将这个回复在vlan 30中广播,这样PC A和PC B都收到了Server C的回复(它们都在vlan 30中)。这样就没有做到PC A和PC B的隔离。从这里就可以看出,如果按照这样的方式是不可能在只有一台2层交换机的情况下做到Server C被共享,且PC A和PC B还能隔离开来的。PC B同Server C的通信过程一样,不再赘述。

 

SVL & IVL learning

Asymmetric VLAN的应用正在于此。考虑上面的封包走向,只要Server C在回复时不去考虑vlan id,那就没问题了。这就要说到SVL(Shared VLAN Learning)和IVL(Independent VLAN Learning)了。在默认情况下交换机转发表的学习方式是IVL的,转发表中包含3项:vid MAC port,也就是每一个VLAN都维护一份独立的转发表。而SVL方式下所有的VLAN共享同一份转发表,vid在这里不被列入参考范围了。因此使能 Asymmetric VLAN实际上就是将IVL方式转为SVL,封包转发时不去考虑它的vid,只根据MAC和port来决定往哪一个port转发。因此上面的Server C在回复时交换机看到转发表中的MAC A和port1(在PC A往Server C发送请求时就学习到了)就知道应该转发到port1,而不会发给port2。这样就做到了PC A和PC B的隔离。SVL方式下共享端只会往某一个VLAN回复,看起来就是非对称的,这也是 Asymmetric VLAN的名称由来。
那么为什么交换机默认情况下是采用IVL而不是SVL呢?这是因为不同VLAN中的设备可能拥有相同的MAC,这样同一个VLAN中的设备可能会出现通信问题。参考下图:

VLAN 10的PC A发送给PC B的封包由于MAC地址查找结果是port 3而会转发给port 3,但port 3属于VLAN 20,因此这个封包会被丢弃,PC A与PC B的通信会失败。而当MAC B学习到port 2时,VLAN 20的PC D与 PC C之间也会出现同样的通信问题。这样,虽然不同的主机被隔离在了不同的冲突域和广播域中,但是MAC地址却可能导致同一个VLAN内的通信受到影响。而IVL根据vid的匹配能够解决这个问题。

在实际应用中SVL的应用很少,DLINK交换机为了解决前面提到的共享同一个服务器资源,并做到不同VLAN的隔离,采用了SVL方式来解决,这样只用一台2层的交换机就能够实现,节省了设备的费用,3层交换机和路由器可都是价格不菲的哦。

 

 

posted on 2010-04-24 04:16  红字  阅读(3905)  评论(1编辑  收藏  举报

导航