当前最新的车载网络广泛采用以太网作为主干网络,为了增强网络的可靠性,通常采用了环网拓扑结构,允许数据通过多条路径传输。然而,引入环网拓扑结构可能导致环路形成,进而带来广播风暴等潜在风险。为了规避这些问题,我们通常需要借助STP/RSTP等技术来防止环路形成,并在检测到通信链路故障时实现无缝切换,从而减小故障对网络通信的不良影响。然而,STP/RSTP等技术在链路切换时的收敛速度通常超过1秒,远远无法满足车载网络通信的要求。相比之下,ERPS技术为以太网环网提供了一种更快速的故障检测和切换解决方案,确保在发生故障时网络能够以更快的速度恢复正常,因此在车载网络中具有广泛应用的潜力。
什么是ERPS
ERPS全称是Ethernet Ring Protection Switching,即以太网环路保护切换,是ITU-T定义的一种二层破坏性协议标准,标准号为ITU-T G.8032/Y1344,因此又称为G.8032,它定义了R-APS(Ring Auto Protecting Switching)协议报文和保护切换机制。ERPS包含v1和v2两个版本,其中v2版本新增了子环等功能,且v2完全兼容v1。
以太网交换网络中为了进行链路备份,提高网络可靠性而引入的环网拓扑会使网络上产生环路,可能会引起广播风暴以及MAC地址表不稳定等现象,从而影响用户通信质量,甚至导致通信中断。为解决环路问题,引入了一系列的环网协议,包括RRPP、STP/RSTP/MSTP、SEP、ERPS等,其中ERPS旨在提供快速的故障检测和切换,以确保网络在出现故障时能够迅速地从备用路径传输数据,减小网络中断的时间,从而有效保证用户通信质量。
ERPS技术和STP/RSTP/MSTP、RRPP、SEP等其他二层环路协议比较,具有以下优势:
收敛速度快
ERPS吸取了STP/RSTP/MSTP等环网保护技术的优点,优化了检测机制,收敛速度更快,可以达到ms级。
兼容性高
ERPS是ITU-T发布的标准二层环路协议,如果环网内制造商的设备都支持该协议,则可以实现互通。
ERPS原理
1.ERPS基本概念
ERPS的基本原理是通过阻塞环路中的部分端口,达到消除环路的目的,并通过快速检测环路中的故障,选择备份路径并在切换后尽快恢复数据传输,以确保在发生故障时网络能够迅速而有效地继续运行。下面结合图1的单环结构,介绍ERPS涉及到的一些基本概念。
图1. ERPS单环示意图
环(Ethernet ring)
ERPS环是 ERPS协议的基本单位,是由一组配置了相同的控制 VLAN 且互连的交换设备构成。对于多环结构,则包含一个主环和至少一个子环。
节点(Ethernet ring node)
加入ERPS环的二层交换设备称之为节点,每个节点不能多于两个端口加入同一个ERPS环中,图1中的Switch A ~ Switch D即为此ERPS环中的4个节点。
环网保护链路(RPL - Ring Protection Link)
非故障状态下通过阻塞该链路两端的端口防止形成环路,其两端的端口分别为RPL owner端口与RPL neighbour端口。
端口角色(Port role)
ERPS协议中规定的端口角色主要有RPL owner端口、RPL neighbour端口和普通端口三种类型。其中RPL neighbour端口类型只有ERPSv2版本支持,v1版本不支持。
RPL owner端口
处于RPL链路一端的端口,由用户配置指定,一个ERPS环只有一个RPL owner端口。非故障状态下RPL owner 端口处于阻塞状态,以防止链路产生环路。含有RPL owner端口的节点又称为RPL owner节点。
RPL neighbour端口
处于RPL链路另一端的端口,RPL neighbour端口指的是与RPL owner端口直接相连的节点端口。非故障状态下,RPL neighbour端口处于阻塞状态,以防止产生环路。当 ERPS环网非RPL链路出现故障时,RPL owner端口和 RPL neighbour端口都会被打开。含有RPL neighbour端口的节点又称为RPL neighbour节点。
普通端口
在ERPS环中,除RPL owner和RPL neighbour以外的端口都是普通端口。普通端口负责监测自己直连的链路状态,并把链路状态变化及时通知环网中其他节点。
2.ERPS协议报文
ERPS协议传递消息使用的是R-APS PDU,其格式如图2所示,这是OAM消息定义中的一种,具体可参考IUT-T G.8013/Y1731的定义。R-APS PDU的目标MAC地址为0x01-0x19-0xA7-0x00-0x00-[Ring ID],其中Ring ID的默认值为0x01。
图2. R-APS PDU格式
MEL:标识维护实例等级。
Version:ERPS协议版本,0x00为v1版本,0x01为v2版本。
OpCode:取固定值0x28,表明这是R-APS PDU。
Flags:取固定值0x00,此字段在接收时会被忽略。
TLV Offset:取固定值0x20,表示此PDU中的TLV从本字段之后偏移32个字节后开始。
R-APS Specific Information:携带ERPS环的重要信息,后文再详细介绍。
Optional TLV:用户可自定义需要携带的额外信息,如无额外信息需要携带,则无此字段。
End TLV:取固定值0x00。
针对R-APS Specific Information,在ERPS v2版本中的定义如图3所示。
图3. R-APS specific information格式
Request/State:标识该信息是请求信息或当前状态信息。
表1. Request/status取值含义表
Sub-code:配合Request/status字段使用,当Request/status取值为1110时,本字段为0000表示FDB表项刷新请求。当Request/status取值为其他值时,本字段为保留字段,且在接收过程中会被忽略。
Status:包含特定的状态信息。
RB(RPL Blocked):对于RPL owner节点,取值为1表示RPL链路被阻塞,取值为0表示RPL链路解除阻塞。非RPL owner节点发送的R-APS PDU中此值为0。
DNF(Do Not Flush):取值为1表示接收方应执行FDB表切换,取值为0表示接收方不执行FDB表切换。
BPR(Blocked Port Reference):阻塞端口标志位,取值为0表示阻塞ERPS环的第一个端口,取值为1表示阻塞ERPS环的第二个端口。
Node ID:发送此消息的节点MAC地址,属于信息类字段,不影响ERPS环的保护切换过程。
Reserved 2:保留
3.ERPS单环链路故障保护切换过程
前文提到ERPS环是通过阻塞RPL Owner及RPL Neighbor端口达到消除环路的目的,并在检测到环路中出现故障时,通过更新FDB表和端口状态快速切换数据传输路径保证数据传输,接下来将按照非故障-故障-故障移除的过程分析ERPS环网的保护切换过程。
1.非故障状态如图4所示,在非故障状态下会阻塞RPL owner端口和RPL neighbour端口以防止形成环路,同时RPL owner节点会向其所在ERPS环的其他节点周期发送NRRB R-APS报文(即Request/State取值为0000,同时Status字段的RB位取值为1,表示RPL链路处于阻塞状态),表明当前ERPS环中无故障。
图4. ERPS单环非故障状态
2.链路故障如图5所示,当Switch C和Switch D之间的链路发生故障时(即检测到链路link down),启动保护切换机制,将故障链路两端的端口阻塞并刷新本设备的FDB表。然后Switch C和Switch D通过发送SF R-APS报文将故障信息发送给ERPS环中的其他节点。当Switch A和Switch B收到SF R-APS报文后,分别打开RPL owner端口和RPL neighbour端口并刷新FDB表,保证通信畅通。
图5. ERPS单环链路故障状态
3.链路故障移除如图6所示,当Switch C和Switch D之间的链路故障移除后(即检测到链路重新link up),启动故障回切模式,首先Switch C和Switch D停止发送SF R-APS报文并向外发送NR R-APS报文表明故障移除,Switch A和Switch B收到NR R-APS报文后,分别阻塞RPL owner端口和RPL neighbour端口并刷新FDB表,同时RPL owner节点向外发送NRRB R-APS报文,当Switch C和Switch D收到NRRB R-APS报文后,将原先故障状态下阻塞的端口打开,停止发送NR R-APS报文并刷新FDB表。
图6. ERPS单环链路故障移除状态
总结
ERPS是以太网环网技术中的一种,主要通过阻塞部分端口来避免环路带来的广播风暴风险等问题。同时,通过快速故障检测等机制实现通信链路的快速切换,可以满足车载网络等场景的应用需求。近些年出现的环网冗余技术中还有时间敏感网络TSN中的IEEE 802.1 CB协议,北汇信息针对CB协议的测试开发及测试实施也积累了丰富的经验,期待后续有机会与大家分享。
全部0条评论
快来发表一下你的评论吧 !