计算机网络误区——二层网络中不同VLAN不通的问题

你真的了解VLAN吗?很多学过计算机网络的同学都对VLAN的知识学习过,也做过相应的实验,简单的实现了不同VLAN隔离、相同VLAN互通的要求,自认为对VLAN了解的同学可以先看一下下面这个拓扑,本文会让你对VLAN有更加深入的了解。

 PC终端和交换机端口配置如上图所示。请问,在该拓扑中,两个PC是否可以通信呢?

如果您认为可以通信,那么恭喜您,您对VLAN的了解已经比较深入了,可以跳过本文;如果您认为不能通信,那么还请您耐心的看完本文

首先,上述的配置是可以让两个PC之间相互通信的。当然实际的网络环境中一般也没有人会这样配置。但是了解这个反应了我们对VLAN配置中Access和Trunk的掌握程度。

 我们都知道,在网路配置中,与PC直接相连的端口一般用Access,表示把该PC加入端口对应的VLAN,而交换机之间互联的端口一般用Trunk,并且配置允许交换机互联的VLAN ID通过,这是我们常见的经典配置,但是不知道大家有没有想过为什么这样配置呢?

这涉及到VLAN中Access端口和Trunk端口对数据包的具体处理问题。我们先来了解一下VLAN是功能了,VLAN的功能是隔离广播域,那么他为什么能隔离广播域呢,原来,为了能够实现隔离广播域的效果,交换机在接受到的每个数据包上打上了一个特殊的“标签”,该”标签“标识了数据包属于哪个VLAN。不同的Access、Trunk端口对VLAN标签的处理是不同的,下面我们来看一下Access和Trunk对不同数据包VLAN标签处理情况。

Access数据包处理情况:

Trunk数据包处理情况:

我们总结一下,交换机在转发数据时遵守的原则是进入打标签,出去剥标签,剥标签是掉和PVID相同的标签,PVID就是上面我们提到的特殊“标识”,如果和PVID不同,看是否允许通过,允许则放行,反之丢弃。我们可以简单记忆“进打出剥”。

接下来回到我们一开始的问题,为什么两个PC之间可以相互通信的?我们来分析一下:

PC1开始发出的数据包是裸标签,到达LSW1的g0/0/1口时,因为该接口是Access且PVID为10,会被打上VLAN10的标签,到达LSW1的g0/0/2口时,因为该接口是Trunk且PVID为10,会被剥掉VLAN10的标签,这时数据包在两台交换机是裸标签传输,到达LSW1的g0/0/2会被打上VLAN20的标签,到达LSW2的g0/0/1时会剥掉VLAN20的标签,最后PC2收到的数据包就是没有打标签的数据了,反过来回包也是如此,这样就实现了PC1与PC2的互相通信了。

我们来看一下简易图,有助于理解:

这就是为什么不同VLAN也可以通信的全过程了。

猜你喜欢

转载自blog.csdn.net/w2685797168/article/details/129830812