重要前提,交換機內部的幀都是會打tag的ide
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,祛tag。
code
VID: vlan id vid是報文上的vlan tag的意思.tag裏面包含vid
在網上發現一個比較好的解釋是:PVID並非加在幀頭的標記,而是端口的屬性,用來標識端口接收到的未標記的幀。也就是說,當端口收到一個未標記的幀時,則把該幀轉發到VID和本端口PVID相等的VLAN中去。blog
下圖是一個有趣的情景:
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的幀)。
最後附上:交換機收到幀後的處理方式接口