在《車載乙太網交換機入門基本功(2)》中提到,報文透過攜帶Tag欄位,表明報文所屬的VLAN。本文將介紹攜帶Tag報文在VLAN下的轉發過程。而在實際轉發過程中,交換機的埠屬性起到關鍵作用。
交換機埠屬性
交換機的埠屬性包括三大屬性:VID、PVID、Tag/Untag。
- VID
埠所屬的VLAN。只有處在同一個VLAN下才能通訊。當攜帶特定VID的廣播報文傳送至交換機時,交換機會查詢埠的VID屬性,轉發到具有同一個VID屬性的埠。同一個埠可以同時處在不同VLAN下,即一個埠的VID屬性可能有多個;而不同埠也可以在同一個VLAN下,即同個VID下也可能有多個埠。
- PVID
Port VLAN ID,埠的入口屬性。當不帶tag的報文進入交換機時,埠會給報文加上tag,加上的VID是該埠的PVID值。不同於VID屬性,一個埠只能有一個PVID屬性。PVID屬性使得交換機內部的報文都帶tag。
- Tag/Untag
埠的出口屬性,決定了從交換機埠發出的報文是否攜帶tag。Tag 屬性會保留報文的tag,Untag屬性會剝除報文的tag。
報文從進入交換機、轉發、從交換機發出的過程中,都受到這三個屬性的影響——PVID影響進入過程;VID影響轉發過程;而Tag/Untag影響發出過程。
轉發過程
涉及到傳送、轉發和接收三個過程。下面將著眼於報文在這三個過程中的變化,細緻瞭解VLAN是如何起到限制廣播域的作用。
- 轉發
裝置發出的報文分為帶tag和不帶tag兩種,都會傳送到交換機上。
根據報文是否帶tag,交換機的處理方式有兩種:
- 不帶tag報文進入交換機時,會根據交換機埠的PVID屬性,加上相應的tag,之後按照帶tag報文的轉發規則進行轉發。
- 帶tag報文進入交換機後,根據tag轉發到具有相同VID屬性的埠上,從該埠向外轉發。
- 接收
根據報文tag,從相同VID屬性的埠上向外轉發。交換機向外轉發時,根據埠的Tag/Untag屬性,決定向外傳送的報文是否攜帶tag。
以下圖的報文轉發為例:首先,不帶tag報文進入交換機埠1,埠1根據自身的PVID屬性,給報文加上tag;接著,根據報文tag的VID,查詢具有相同VID屬性的埠(這裡是埠2),發給埠2;最後,埠2根據自身的Tag/Untag屬性,對報文的tag進行保留/剝除處理,並把報文從埠2發出。
圖 攜帶VLAN的MAC報文格式
以上的轉發過程能夠保證同一VLAN下的正常通訊,並隔離不同VLAN的通訊。看起來無懈可擊,但其中存在一個小問題:當埠收到帶tag報文,其VID和埠的VID屬性不一致時,交換機會採取什麼措施嗎?答案是:如果沒有特殊設定,交換機照收不誤。因為在上述VLAN轉發過程中,著重關注的是報文“去向何處”,而對於報文是否來自同一VLAN下的裝置,並不太在意,這就容易造成“敵我不分”。過多的非同一VLAN下的報文進入交換機,會影響交換機處理效率,導致通訊受阻;更甚者,一旦線路被攔截並偽造資訊,這些資訊無阻礙的進入交換機後,很可能傳送到其他裝置上,造成無法估量的損失。因此,對進入交換機的報文,應該進行一定的審查,這就是埠過濾功能:進門前先對暗號!
開啟埠過濾功能後,上圖的轉發過程中,報文從埠1進入交換機的過程發生變化:埠1先提取報文的VID,判斷自身的VID屬性是否存在該值,如果存在則接收,報文順利進入交換機;否則丟棄報文。這樣確保報文的傳送和接收都來自同一VLAN,提高安全性和效率。
埠過濾功能還可以針對源地址和目的地址進行設定,過濾特定的MAC地址,保證線路的專用性。
透過VLAN ID、埠屬性和埠過濾功能,能夠實現廣播域的有效限制。但是,當多個報文需要進行轉發時,會出現擁塞情況。此時,前文提到的PCP優先順序就可以派上用場!在《車載乙太網交換機入門基本功(4)》中將詳細介紹,這也是該系列的最後一篇,敬請期待!
經緯恆潤作為OPEN聯盟會員和AUTOSAR聯盟的高階合作伙伴,長期為國內外各大OEM和供應商提供涵蓋TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技術領域的設計和測試諮詢服務,積極研發和探索車載網路前沿技術和工程應用。透過多個專案的實踐經驗,已建立了高質量、本土化的設計與測試一體化解決方案,為整車網路架構提供可靠支援。
瞭解更多
請致電 010-64840808轉6116或發郵件至market_dept@hirain.com(聯絡時請說明來自部落格園)