在《車載以太網交換機入門基本功(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的通信??雌饋頍o懈可擊,但其中存在一個小問題:當端口收到帶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等技術領域的設計和測試咨詢服務,積極研發和探索車載網絡前沿技術和工程應用。通過多個項目的實踐經驗,已建立了高質量、本土化的設計與測試一體化解決方案,為整車網絡架構提供可靠支持。