為什麼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考出來有什麼發展前途?行業內環境怎麼樣!