Asymetric VALN 学习

在学习 Asymmetric VLAN 前先学习下IVL 和 SVL,对于一点基础都没有的人估计不能看得很明白。我这里从交换机收到packet开始讲两种情况交换机的行为。

IVLindependent vlan learning网 上大部分资料都说为每个vlan建一个表,看起来好像有很多表,其实这里所说的表是指逻辑上的表,实际上在交换机中还是只有一个表,如果将VID相同的记 录都提取出来组成一个表,那么就一个物理上的表在逻辑上就可以认为是多个表了。

IVLindependent vlan learning:

MAC表中以MACVID为主键进行储存。这样,同一个MAC就可能由于VID的不同而在MAC表中存在多条记录。

1.根据MACVIDMAC表中寻找,找不到转3

2.向找到的port转发packetend.

3.packet携带的vid对应的整个VLANport转发,end. (广播封包,若单播报则会被Drop)

 

SVLshared valn learning:

MAC表中以MAC为主键进行储存,也就是说同一个MACSVL方式下只能存在一个记录在MAC表中。

1.MAC中先根据MAC寻找相应的记录,找不到转4

2.基于port在相应VLAN中转发,若port不在VLAN 中则5

3.packet转发到相应的portend.

4.packet携带的vid对应的整个VLANport转发,end.(广播封包,若单播报则会被Drop)

5.dropend.

MAC表中主要的参数:
MAC    VID    PORT


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


考虑以下的场景: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的通信过程一样,不再赘述。


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层交换机和路由器可都是价格不菲的哦。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值