其实就是不打tag的VLAN,因为你想,一个VLAN在经过交换设备老是打tag,然后再脱掉tag。。。这个很浪费计算资源,尤其是在转发的报文量相当大的时候。
如何解决:
可以定义一种vlan,也就是在众多的vlan中指定一种vlan,当然一般是指定那个报文量大的vlan,作为 native vlan。
如上图所以,将两个交换机的一个端口都指定为native vlan 10 ,也就是当没有tag的报文,从该端口出去时,他不会打tag ,会被默认指定为vlan 10。当接收到一个没有打tag的报文时,会认为它是vlan 10的报文
PC1和PC2能通信么,(这里PC1与PC2在同一网段内哈)?
首先答案是肯定的。
来分析下这个过程,当PC1发报文到 左边的转发设备,由于入端口是Trunk Native 10,本征VLAN,当该转发设备收到该报文时,以为是VLAN 10的报文(因为该报文开始没有打tag),转发的时候还是不打tag,但当被配置为Trunk Native 20接收到报文时,因为该报文是被属于vlan 10的,于是会被打上vlan 10的标签再发送(毕竟 本征vlan 端口首先得是Trunk口,且该报文不属于vlan 20)。
然后右边的转发设备收到该打有vlan 10报文时,由于端口是Trunk native 30,因此不处理该报文,然后从access vlan 10转发出该打有vlan 10的报文时,会打掉该打有vlan 10的标签,再发出去,于是PC2就能收到该报文了。
当报文从PC2发往PC1时,就更加方便了,进入access vlan 10的时候被打上vlan 10的标签.然后做下一步处理。这个标签会一直跟着到左边的交换机转发该报文时,也就是从Trunk Native 10 发出,会去掉该标签。
这样,PC1与PC2是互通的。
来源:https://www.cnblogs.com/yml435/p/5944855.html