如果理解本征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的幀)。