在《车载以太网交换机入门基本功(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等技术领域的设计和测试咨询服务,积极研发和探索车载网络前沿技术和工程应用。通过多个项目的实践经验,已建立了高质量、本土化的设计与测试一体化解决方案,为整车网络架构提供可靠支持。