為什麼trunk模式下打了pvid,接著還要允許這個pvid通過,兩邊才能ping通?

這兩個交換機的1口的配置相同,都在上面


計算機通信協議里有這麼一條潛規則:「嚴於律己,寬以待人」,意思是對於協議標準,要嚴格執行,而如果對端沒有嚴格遵守標準,要寬容對方,至少可以通信,不會引起不知所措的情況發生(事先想好應對措施)。

題主互聯埠A1、B1,被配置成trunk口,trunk 口一定是以802.1Q幀形式出現的,換句話說,trunk鏈路上一定會有VLAN TAG,既然兩個PC屬於 VLAN 10, 它們之間的流量會以VLAN ID 10 出現在trunk鏈路上。

那麼PVID應該是非Cisco廠家的配置方式,對應Cisco 的Native VLAN,這個就是「寬以待人」,什麼意思呢?交換機A做好最壞的打算,如果在A1口接到一個裸體幀(比如,不支持VLAN交換機發出的幀),說明對端沒有遵守標準,丟了嗎? 不,寬容一點!默認其為PVID(Native VLAN)的幀,當然交換機B也是這麼想的!

其實題主只需要配置 「 port link-type trunk」 就可以ping 通,這時默認的PVID = 1,然後你做實驗又加上了PVID,也應該可以通,因為trunk口默認allow all vlan,但是你又加了一個ACL,ACL的末尾有一個隱含(implicit) deny,所以你必須明確(explicit)允許 vlan 10 通過,即 port trunk allow-vlan 10。

這最後一條命令,是用來修剪spanning tree的,將spanning tree修剪到最小規模。


第一條配置表示流量在介面出方向是需要帶tag的;

第二條配置表示收到untag報文是在vlan10中轉發。(untag報文在設備內部處理的時候,攜帶vlan10)

第三條配置表示此介面加入vlan10。

綜上,兩邊設備最少配置第一條和第三條才能ping通。


這個問題很簡單,你交換機兩端,畫的應該是PC吧?

PVID 是啥意思?就是把沒有標籤的包給打成哪個VLAN。

你的PC發的包肯定是不帶標籤的(廢話,又不是網路設備)。

所以,必須給一個默認的標籤,且兩邊匹配,才可以通。

沒事多抓包,這些可以很快懂


完全是取決於各廠商的CLI commad是如何實現的。。。


需要區分pvid和vid還有tag。

pvid是交換機埠的邏輯屬性。

vid是交換機的vlan屬性。

tag是數據的屬性。

我們知道,交換機是二層設備。OSI的第二層,在乙太網交換機上,表現為交換機建立mac地址-vid-埠的映射關係,show mac-address-table可見。

交換機有手動配置的vlan-埠映射關係,show vlan可見(基於mac和基於ip的vlan是另一種映射關係)。

埠上有pvid,專門處理沒有tag欄位的數據,並隨之而來的逆運算也需要處理,即不帶tag的數據報文和tag與pvid相等的數據報文進出埠的規則。

mac從數據報文源mac欄位來,埠由數據報文的入介面得到。

vid由數據報文tag得到,沒有tag的數據報文由上面說的專門的機制處理,tag和vid不等,到不了這個階段。


推薦閱讀:

IT人 提問與答問的藝術(上)
CCIE lab H3 CFG案例2
我的網路工程師自學之路
網路工程師如何避免走彎路(二)
H3C SE考出來有什麼發展前途?行業內環境怎麼樣!

TAG:計算機網路 | VLAN | 網路工程 | 網路工程師 |