时间总是过的很快,一转眼的时间,好久都没有写点东西了,实在是高手太多,有点怕写了。偶尔的一些东西也是写写自己对网络的个人体会和心得,瞬间的灵光我想记下来总是好的,可以在闲暇之余,感受一下当时的想法,也借此和同道交流交流。
昨天在坛子里面看到一个朋友发了一个讲述VLAN的帖子,静下心来研究了一下,发现有了新的体会,于是写了下来,便成此文。
网络拓扑环境是这样的,交换机SW0和SW1所有的接口都是接入端口,SW0的FA0/0和SW1的FA0/0相连,SW0的FA0/0属于VLAN2,SW1的FA0/0属于VLAN3 ,试问图中的哪几台PC可以互相通信?PT画的拓扑,大家莫笑。
答案是PC0可以和PC3进行通信。
clip_p_w_picpath001
现在我们来分析一下为什么只有VLAN2的PC0和VLAN3的PC3可以进行通信。
对于SW0来说,FA0/0属于access vlan 2,也就是说它只会转发VLAN 2的通信流量,从这点来说,主机1的数据包是不可能从SW0通过的,除非SW0有一条允许VLAN3的数据包通过的中继链路,或者是一条VLAN3的接入链路。对于SW1和主机2,亦是如此,拓扑所示的情况,只会转发VLAN3的数据包。
而对于SW0和SW1为什么能够通信,究其原因还是因为接入端口不会给不同的VLAN的数据包打上VLAN的标签的原因,当数据包从SW0转发到SW1时,因为数据包没有VLAN标识,SW1也就理所当然的认为这是VLAN3的数据包,也就只会转发给VLAN3的PC了。而对于SW0,它实际上不是这样认为,它认为自己发送的是VLAN2的数据包,但是只有SW0自己知道而已。
由此,我可以认为SW1对于其上层的交换机SW0来说,是透明的,当然前提条件是必须保证SW1的FA0/0端口的VLAN和其上其他端口所属vlan的一致性才能进行正常的通信。
现在我们在SW0和SW1之间添加一条接入链路,网络拓扑如下
clip_p_w_picpath002
毋庸置疑,在这种情况下,PC0 能够和PC2通信,PC1能够和PC3通信,原因我就不做多解释了。在这里,我们要注意的是SW0和SW1之间的链路,依然是接入链路,只是接口所属的VLAN是一致的。
此时我们再变换一下,请注意了。细节是很重要的。
clip_p_w_picpath003
现在请问哪几台PC之间可以通信呢?
答案是PC0能够和PC2通信,PC1能够和PC3通信。事实上,这个拓扑只是第一张拓扑的一个扩展而已。但是我的VLAN ID变了。
从这里我得出一个结论,在接入链路中,VLAN实际上只具有本地意义。只有在中继链路上,检查VLAN的tag字段时,VLAN才具有全局意义,也就是要保持VLAN的一致性。