如果理解本征vlan,即native vlan(h3c/hauwei的pvid:基于端口的VLAN ID)
首先给大家看一张我自己画的图,这是我自己的理解
首先在交换机中trunk的接口我们一般称之为干道接口(思科叫中继接口),在H3C交换机,干道接口(思科叫中继接口)是允许所有带VLAN的标签(tag)的帧通过,即permit any all(默认即是允许所有),如果遇到没有打标签的流量,交换机也会将其打上vlan1的tag(默认本征vlan为vlan1)
但是有时候这些流量我们并不想它以vlan1的身份进行传输,所以我们可以配置本征vlan,使得这个流量以其他VLAN身份进行传输!h3c的命令为port trunk pvid vlan 30,思科native vlan
如图所示:
我们在交换机的一个端口上打了trunk,使其变为干道接口(思科叫中继接口),接着我们配置了本征vlan20,当遇到了一个带有vlan10标记的tag,交换机并没有做什么措施,所以交换允许他通过,这没问题,那么这时候我们遇到了一个没有tag的流量,由于我们配置了本征vlan的原因(native vlan 20),这时候没有标记的流量就会给我们打上vlan20的tag,在传输过程中,这个流量始终以vlan20的身份进行传输!!!
=========================
VID 与 PVID 的简单概述
提示,交换机内部的帧都是会打tag的
PVID:port-based vlan id
pvid是交换机上的概念,说的是进入该端口的报文如果没有打vlan id就按pvid的值打上;
PVID是基于端口的VLAN ID,一个端口可以属于多个vlan(trunk 口),但是只能
有一个PVID(对trunk 口而言,就是native vlan;对access口而言,就是access vlan-id = pvid),
收到一个不带tag头的数据包时,会打上PVID所表示的vlan号,视同该vlan的数据包处理,所以也有人说PVID就是某个端口默认的vlan ID号
native vlan的作用之一是减轻交换机的负担,不用老是打tag
在网上发现一个比较好的解释是:PVID并不是加在帧头的标记,而是端口的属性,用来标识端口接收到的未标记的帧。也就是说,当端口收到一个未标记的帧时,则把该帧转发到VID和本端口PVID相等的VLAN中去。
pc1 ping pc2的过程是这样的:
·sw1的接口收到pc1的ping包,因为给他打上包含vid=10的tag,
·然后在sw1的trunk因为设置了native vlan 10(亦就是PVID=10),对该ping包拆掉进来时打的tag,不打tag的发出去,
·然后到sw2的trunk口时,因为sw2在该trunk设置了native vlan 20(亦就是PVID=20),所以ping包进入后会打上vid=20的tag,
·然后交换机查看 vlan 20 MAC address table,决定从连接了pc2 的access vlan 20口发出去,
·但是在发出去之前,要把ping包里面的tag去掉(因为pc2无法识别还有tag的帧)。