什么是ERPS
ERPS(Ethernet Ring Protection Switching,以太网环保护),是ITU-T定义的一种二层破环协议标准,标准号为ITU-T G.8032/Y1344,因此又称为G.8032。它定义了RAPS(Ring Auto Protection Switching,环自动保护)协议报文和保护倒换机制。
为什么需要ERPS
以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路(如环形网络)。但是使用冗余链路会在网络中产生环路,可能会引起广播风暴以及MAC地址表不稳定等现象,从而影响用户通信质量,甚至导致通信中断。
ERPS作为ITU-T发布的破环标准协议,解决了STP/RSTP/MSTP协议的缺陷,不仅具有收敛速度快,满足电信级可靠性和支持多种组网方式的优点,还具备良好的兼容性,可以实现与其他制造商设备的互通,因此ERPS协议被广泛的应用在二层环路组网中。
ERPS和其他环网协议的对比
环网协议 |
优点 |
局限性 |
|---|---|---|
RRPP |
收敛速度快,满足电信级可靠性。 |
|
STP/RSTP/MSTP |
|
生成树协议收敛速度慢,且收敛速度受网络大小影响,无法满足收敛速度达到电信级可靠性要求。 |
SEP |
|
SEP是华为公司的私有协议,无法实现与其他制造商设备的互通。 |
ERPS |
|
需要预先规划好网络拓扑,配置相对复杂。 |
ERPS基本概念
ERPS是一个用于破除以太网链路层环路的协议。它以ERPS环为基本单位,通过阻塞环保护链路RPL(Ring Protection Link) Owner端口,并控制其他普通端口,使得端口的状态在Forwarding(转发)和Discarding(丢弃)之间切换,达到消除环路的目的。ERPS目前有ERPSv1和ERPSv2两个版本,ERPSv2完全兼容ERPSv1,并在ERPSv1的基础上进行了功能扩展,更好地发挥了ERPS的优势。
如下图所示,为了提高链路可靠性,DeviceA~DeviceD组成双归链路,接入上级网络,这样的接入方式将在整个网络中引入新的环路。为了消除网络中的冗余环路,有效地保证链路连通性,需要启动破除环路机制。我们可以在如下图所示的网络中部署ERPS协议,下面结合该图介绍ERPS协议的基本概念。
ERPS单环示意图
ERPS环
ERPS环由一组配置了相同的控制VLAN且互连的二层交换设备(节点)构成,是ERPS协议的基本单位。ERPS环分为主环和子环。缺省情况下,ERPS环都是主环。主环是封闭的环,子环是非封闭的环,需要通过命令进行配置。如下图所示,DeviceA~DeviceD组成的ERPS环是主环,DeviceC~DeviceF组成的环是子环。子环的配置只有ERPSv2版本支持,ERPSv1版本不支持。
ERPS主环和子环示意图
ERPS端口
RPL owner端口
一个ERPS环只有一个RPL owner端口,由用户配置决定,通过阻塞RPL owner端口转发用户流量来防止ERPS环中产生环路。当RPL owner端口所在设备收到故障报文得知ERPS环上其他节点或链路故障时,会自动放开RPL owner端口,此端口恢复流量的接收和发送,保证流量不会中断。RPL owner端口所在的链路即为环保护链路RPL。
RPL neighbour端口
RPL neighbour端口指的是与RPL owner端口直连的端口。引入RPL neighbour端口角色可以减少RPL neighbour端口所在设备刷新FDB表项的次数。正常情况下,RPL owner端口和RPL neighbour端口都会被阻塞,以防止环路产生,当ERPS环出现故障时,RPL owner端口和RPL neighbour端口都会被放开。
普通端口
在ERPS环中,除RPL owner端口和RPL neighbour端口以外的端口都是普通端口,普通端口负责监测自己直连的ERPS协议的链路状态,并把链路状态的变化消息及时通知给其他端口。
Forwarding:在Forwarding状态下,端口既转发用户流量又接收/发送ERPS协议报文。
Discarding:在Discarding状态下,端口不转发用户流量,但可以发送和接收ERPS协议报文。
VLAN
ERPS中有两种类型的VLAN,数据VLAN和控制VLAN。数据VLAN用来传递数据报文;控制VLAN用来传递ERPS协议报文,每个ERPS环必须配置控制VLAN。当端口加入已经配置控制VLAN的ERPS环后,端口将自动加入控制VLAN。不同ERPS环不能使用相同ID的控制VLAN。
保护实例
对于运行ERPS协议的二层设备,传递ERPS协议报文和数据报文的VLAN必须映射到保护实例中,这样ERPS协议才会按照其阻塞原则对这些报文进行转发或阻塞,否则,VLAN报文可能会在成环的网络中产生广播风暴导致网络不可用。
定时器
Guard Timer
链路故障或节点故障所涉及到的设备在故障恢复或执行清除操作后,向其他设备发送NR(No Request) RAPS报文,并同时启动Guard Timer定时器,在该定时器超时前不处理NR RAPS报文,目的是防止收到过期的NR RAPS报文。如果定时器超时后还能收到其他端口发送的NR RAPS报文,则本端口的转发状态变为Forwarding状态。
WTR Timer
当设备或链路发生故障时,RPL owner端口会被放开,当故障恢复时,原故障端口可能还未由Down状态变为Up状态。为了防止系统立即阻塞RPL owner端口而引起网络震荡,当RPL owner端口收到某端口的NR RAPS报文后,系统会启动WTR Timer定时器。如果在定时器超时前收到其他端口的SF(Signal Failed)RAPS报文,则关闭WTR Timer定时器,不阻塞RPL owner端口。如果在WTR Timer定时器超时前始终没有收到其他端口的SF RAPS报文,则当WTR Timer定时器超时后,阻塞RPL owner端口,发送NRRB(No Request RPL Blocked) RAPS报文。其他端口在收到该报文后,再将自己端口的转发状态设置为Forwarding状态。
Holdoff Timer
对于运行ERPS的二层网络,保护倒换的顺序可能会有不同的要求,例如,多层业务的应用中,服务器出现故障后,用户可能会希望能有一段时间恢复服务器的故障,而客户端感知不到,即不会立即进行保护倒换。这种情况下,可设置合适的Holdoff Timer定时器,当发生故障时,故障并不会立即上报ERPS,而只有当Holdoff Timer定时器超时后,如果故障仍未能恢复才会上报。
WTB Timer
当清除端口的切换状态(强制切换或手工切换)时,启用WTB Timer定时器,因为ERPS环内可能存在多个手工切换阻塞节点,只有当定时器超时后,清除操作才起作用,这样可以防止立即阻塞RPL owner端口而引起阻塞点震荡。
WTB Timer定时器不支持配置,该定时器的值为Guard Timer定时器的值加5s,缺省值为7s。
回切/非回切模式
当ERPS链路恢复正常后,可以通过设置ERPS的回切/非回切模式来决定是否重新阻塞RPL owner端口。
- 在回切模式下,如果故障链路恢复,等待WTR时间后,会重新阻塞RPL owner端口。阻塞链路会重新切回到RPL上。
- 在非回切模式下,如果故障链路恢复,不启动WTR Timer定时器,而且阻塞链路还保持在原来的故障链路上,不会重新切回到RPL上。
缺省情况下,ERPS环处于回切模式。
ERPSv1版本只支持回切模式,ERPSv2版本两种模式都支持。
阻塞点切换方式
- 强制切换:配置了强制切换的端口会马上被阻塞,不管环上其他链路是否存在故障等情况。
- 手工切换:对ERPS环上端口执行手工切换阻塞操作的流程和强制切换类似,区别在于如果环的状态不是Idle或者Pending时,手工切换操作将不发挥作用。
- 清除本地配置的手工切换和强制切换功能。
- 当ERPS环处于回切模式时,在WTB Timer定时器或WTR Timer定时器超时之前,手工触发回切动作。
- 当ERPS环处于非回切模式时,手工触发回切动作。
阻塞点手工切换仅在ERPSv2版本上支持,ERPSv1版本不支持。
子环RAPS报文传输方式
ERPSv2版本除了支持单环组网,还支持相交环等多环组网方式。在相交环组网中,子环RAPS报文传输方式分为虚通道VC(Virtual Channel)和非虚通道NVC(Non Virtual Channel)两种方式。
- 虚通道方式:子环的RAPS协议报文会通过相交节点在主环内运行。即相交节点不终结子环的协议报文。子环的阻塞端口会同时阻塞子环的RAPS协议报文和数据流量。
- 非虚通道方式:子环的RAPS协议报文会在相交节点上终结,子环的阻塞端口仅阻塞数据流量,不阻塞子环的RAPS协议报文。
如下图所示,一个主环分别和两个子环相交,其中左边子环的RAPS报文传输方式为虚通道方式,右边子环的RAPS报文传输方式为非虚通道方式。
虚通道和非虚通道相交环示意图
缺省情况下,子环RAPS报文传输方式为非虚通道方式,除了如下图所示的特殊组网场景(子环的链路是不连续的多个部分)下必须使用虚通道方式外,其他组网建议采用缺省的非虚通道方式。如下图所示,链路b和链路d分别属于主环1和主环2,只有链路a和链路c属于子环,链路a和链路c是独立的两条链路,无法感知到对方的链路变化,所以此时需要采用虚通道来传输RAPS报文。
虚通道特殊应用组网图
子环RAPS报文传输方式 |
优点 |
缺点 |
|---|---|---|
虚通道 |
可应用于虚通道特殊应用组网。 |
子网的RAPS通道受相连的网络拓扑影响,需要在RAPS通道所在网络为虚通道预留资源、分配控制VLAN ID等。 |
非虚通道 |
不需要相邻网络预留资源、分配控制VLAN ID等。 |
不能应用于虚通道特殊应用组网。 |
ERPSv1与ERPSv2
功能 |
ERPSv1 |
ERPSv2 |
|---|---|---|
创建环 |
只支持创建单环,不支持配置子环。 |
支持创建多环,可以配置主环和子环。 |
配置端口角色 |
支持配置RPL owner和普通端口。 |
在支持配置RPL owner和普通端口基础上,还支持配置RPL neighbour端口。 |
配置网络拓扑变化通告 |
不支持该功能。 |
支持该功能。 |
子环传输R-APS报文采用虚通道或非虚通道 |
不支持该功能。 |
支持该功能。 |
回切\非回切模式 |
默认为回切模式,不支持配置,不支持非回切模式。 |
支持配置为回切模式或非回切模式。 |
手工切换阻塞点 |
不支持该功能。 |
支持该功能,且支持强制切换和手工切换。 |
由于ERPSv2完全兼容ERPSv1,所以如果当前ERPS环内所有设备同时支持ERPSv1和ERPSv2,建议配置ERPSv2。
ERPS协议报文
ERPS协议的报文只有一种,即RAPS PDU报文。RAPS PDU报文包含ERPS环信息,在ERPS环上传递以实现各设备端口信息的互通。RAPS PDU报文基本格式如图1-6所示:
各字段含义如下表所示:
字段名称 |
长度 |
说明 |
|---|---|---|
MEL |
3位 |
标识维护实例等级。 |
Version |
5位 |
|
OpCode |
8位 |
固定值0x28,标识该PDU是RAPS PDU。 |
Flags |
8位 |
固定值0x00,该字段在接收的过程中会被忽略。 |
TLV(type-length-value) Offset |
8位 |
固定值0x20,表示报文中的TLV从该字段之后偏移32个字节后开始。 |
R-APS Specific Information |
32x8位 |
该字段携带RAPS环信息,是RAPS PDU的核心字段。对于该字段,ERPSv1版本和ERPSv2版本在某些子字段上存在一定的差异。 |
TLV |
无限制 |
描述报文中需要加载的信息,其中End TLV是固定值0x00。 |
ERPSv1版本RAPS Specific Information格式
ERPSv2版本RAPS Specific Information格式
字段名称 |
长度 |
说明 |
|---|---|---|
Request/State |
4位 |
标识该信息是请求信息或当前状态信息:
|
Reserved 1 |
4位 |
对于ERPSv1,该字段是“Reserved 1”,表示保留字段,留作以后报文应答或是保护类型标识。
对于ERPSv2,该字段是“Sub-code”:
|
Sub-code |
||
Status |
8位 |
标识状态信息:
|
Node ID |
6x8位 |
标识RAPS环节点设备的MAC地址,该字段属于提示信息,不影响RAPS环的保护切换操作。 |
Reserved 2 |
24x8位 |
保留字段,在发送过程中,此字段全置为0,且在接收的过程中会被忽略。 |
ERPS单环
ERPS是一种专用于以太网链路层的标准环网协议,以ERPS环为基本单位。在ERPS环中,为了防止出现环路,可以启动破除环路机制,阻塞RPL owner端口,消除环路。当环网发生链路故障时,运行ERPS协议的设备可以迅速地放开阻塞端口,进行链路保护倒换,恢复环网上各节点间链路通信。ERPS单环是指在ERPS组网中只配置一个ERPS环。ERPSv1和ERPSv2均支持配置ERPS单环。
本节主要以示例的形式按照链路正常->链路故障->链路恢复的过程(包括保护倒换操作),介绍基本的单环组网下ERPS的实现原理。
链路正常
- 为防止环路产生,ERPS首先会阻塞RPL owner端口,如果配置了RPL neighbour端口,该端口同样会被阻塞,其他端口可以正常转发业务流量。
- ERPS环上的RPL owner端口以5s的时间间隔为周期向环中其他节点发送NRRB RAPS报文,表示ERPS环当前链路一切正常。
ERPS的单环组网图(链路正常)
链路故障
如下图所示,当DeviceD和DeviceE之间的链路发生故障时,ERPS协议启动保护倒换机制,将故障链路的两端端口阻塞,然后放开RPL owner端口和RPL neighbour端口,这两个端口重新恢复用户流量的接收和发送,从而保证了流量不中断。具体处理过程如下:
- DeviceD和DeviceE检测到链路故障,将故障链路上的端口阻塞,并刷新本设备的FDB表项。
- DeviceD和DeviceE向外发送携带本地端口链路故障消息的SF RAPS报文,即一旦感知到链路故障,DeviceD和DeviceE会连续发送3个相同的SF RAPS报文,然后以5s的时间间隔持续稳定发送。
- 其他设备收到DeviceD和DeviceE发送的SF RAPS报文后,会刷新本设备的FDB表项。当收到该RAPS报文后,DeviceC设备(RPL owner端口所在设备)会放开RPL owner端口,并刷新自己的FDB表项。同样,当DeviceB设备(RPL neighbour端口所在设备)收到RAPS报文后,会放开RPL neighbour端口,并刷新自己的FDB表项。
ERPS的单环组网图(链路故障)
链路恢复
链路恢复正常后,如果ERPS环配置的是回切模式,RPL owner端口所在设备会重新阻塞RPL链路上的流量,故障链路重新被用来完成用户流量的传送。如果ERPS环配置的是非回切模式,阻塞链路还保持在原来的故障链路上,不会重新切回到RPL上。以回切模式为例,具体恢复过程如下:
- 当DeviceD和DeviceE之间的链路恢复后,DeviceD和DeviceE为了防止收到过期的NR RAPS协议报文,分别启动Guard Timer定时器,在该定时器超时前不接收其他NR RAPS协议报文。同时DeviceD和DeviceE会向外发送NR RAPS报文。
- 当DeviceC(RPL owner端口所在设备)收到NR RAPS报文后,设备启动WTR Timer定时器。当该定时器超时后,RPL owner端口被阻塞,同时向外发送NRRB RAPS报文。
- 当收到DeviceC发送的NRRB RAPS协议报文后,DeviceD和DeviceE将自己设备上原来阻塞的端口放开,停止发送NR RAPS协议报文并且完成FDB表项的刷新。其他设备收到DeviceC发送的NRRB RAPS协议报文后,也完成FDB表项的刷新。
ERPS多环
ERPS多环是指在ERPS组网中配置多个ERPS环。ERPSv1只支持单环组网,ERPSv2不仅支持基本的单环组网,还支持多环组网方式。在ERPS多环组网中,既有主环也有子环。子环RAPS报文传输方式根据报文是否会进入主环分为虚通道传输和非虚通道传输。
本节主要以相交环组网,子环RAPS报文传输方式为非虚通道方式为例,按照链路正常->链路故障->链路恢复的过程,介绍多环组网下ERPS的实现原理。
链路正常
如下图所示,由DeviceA~DeviceE组成的ERPS环为主环,DeviceB、DeviceC和DeviceF组成的ERPS环为子环1,DeviceC、DeviceD和DeviceG组成的ERPS环为子环2,各个环路都通信正常。
- 为防止环路产生,ERPS的三个环分别阻塞自己的RPL owner端口。
- 主环的RPL owner端口以5s的时间间隔为周期向主环其他节点发送NRRB RAPS报文。同样,子环1和子环2的RPL owner端口也以5s的时间间隔为周期向自己环中其他节点发送NRRB RAPS报文。主环的协议报文只在主环上传输,两个子环的报文会在相交节点终结,也不会进入主环。
PC1和上层网络之间的流量走向为PC1<->DeviceF<->DeviceB<->DeviceA<->Router1,PC2和上层网络之间的流量走向为PC2<->DeviceG<->DeviceD<->DeviceE<->Router2。
ERPS的多环组网图(链路正常)
链路故障
如下图所示,当DeviceD和DeviceG之间的链路发生故障时,ERPS协议启动保护倒换机制,将故障链路的两端端口阻塞,子环2会将RPL owner端口放开,重新恢复用户流量的接收和发送,PC1的用户流量不受影响,为了保证PC2的下行流量不中断,需要在相交节点DeviceC和DeviceD将子环2的拓扑变化信息通告到主环。最终PC2和上层网络之间的流量走向为PC2<->DeviceG<->DeviceC<->DeviceB<->DeviceA<->DeviceE<->Router2。具体处理过程如下:
- DeviceD和DeviceG检测到链路故障,将故障链路上的端口阻塞,并刷新本设备的FDB表项。
- DeviceG在子环2内部发送携带本地端口链路故障消息的SF RAPS报文,即一旦感知到链路故障,DeviceG连续发送3个相同的SF RAPS报文,然后以5s的时间间隔持续稳定发送SF RAPS报文。
- DeviceG设备(RPL owner端口所在设备)放开RPL owner端口,并刷新自己的FDB表项。
- 主环的相交节点DeviceC收到该SF RAPS报文后,刷新自己的FDB表项。而DeviceC和DeviceD在感知到这个网络拓扑变化后,在主环内发送Event报文,通告子环2的网络拓扑发生变化。
- 其他主环节点收到Event报文后,会刷新自己的FDB表项。
ERPS的多环组网图(链路故障)
链路恢复
链路恢复后,如果各个ERPS环配置的是回切模式,RPL owner端口所在设备会重新阻塞RPL链路上的流量,故障链路重新被用来完成报文的传送。如果ERPS环配置的是非回切模式,阻塞链路还保持在原来的故障链路上,不会重新切回到RPL上。以回切模式为例,具体恢复过程如下:
- 当DeviceD和DeviceG之间的链路恢复后,DeviceD和DeviceG为了防止收到过期的RAPS协议报文,分别启动Guard Timer,在该定时器超时前不接收其他RAPS协议报文。同时DeviceD和DeviceG会在子环2内部发送NR RAPS报文。
- DeviceG(RPL owner端口所在设备)启动WTR Timer。当WTR Timer超时后,DeviceG阻塞RPL owner端口,放开故障恢复链路的端口,同时向外发送NRRB RAPS报文。
- 当DeviceD收到DeviceG发送的NRRB RAPS报文后,将自己设备上原来阻塞的端口放开,停止发送NR RAPS报文并且完成FDB表项的刷新。DeviceC收到DeviceG发送的NRRB RAPS报文后,也完成FDB表项的刷新。
- 相交节点DeviceC和DeviceD完成自身的FDB表项刷新以后,会在主环内发送Event报文,通告子环2的拓扑变化情况。
- 其他主环节点收到Event报文后,会刷新自己的FDB表项。
最终PC2的用户流量又会切换到链路正常的走向。
ERPS快速检测
ERPS快速检测是指在ERPS组网中配置快速检测模式以进行高性能保护倒换。ERPSv1不支持此模式,ERPSv2支持基本的单环组网和子环非虚通道场景部署此模式。
在ERPS快速检测模式下,单环场景RPL owner端口所在设备通过持续向组网发送双向检测报文以实现毫秒级的故障检测;多环场景则通过边缘节点设备向子环上设备发送检测报文。一旦设备链路发生故障,预期接收检测报文的端口收到硬件上报的中断以感知设备发生故障,进而快速实现保护倒换。
本节按照链路正常->链路故障->链路恢复的过程,介绍ERPS快速检测模式下实现快速检测的原理。
单环场景
- 链路正常
如下图所示,DeviceA ~ DeviceD四台设备组成ERPS环网,各设备均处于IDLE状态。其中DeviceA(RPL owner端口所在设备)通过环上的两个ERPS成员口分别从两个方向(Direction_W、Direction_E)向外周期性发送检测报文,环上其他设备的两个ERPS成员口均能收到此报文并将此报文从相邻接口转发出去回到DeviceA。
ERPS的单环组网图 - 链路故障
当DeviceB上与DeviceC相连的端口发生故障时,在Direction_E方向上的DeviceA、DeviceB,在Direction_W方向上的DeviceC、DeviceD、DeviceA会分别收到超时事件,以快速使设备感知故障,此时DeviceA的RPL owner端口将被放开,并刷新MAC地址,恢复流量的接收和发送,保证流量不会中断。
- 链路恢复
当DeviceB上与DeviceC相连的端口故障恢复时,所有设备上的检测报文正常接收,经过WTR Timer计时结束之后,配置RPL owner端口的DeviceA通过检测报文触发回切事件,以快速使设备感知故障恢复,此时DeviceA的RPL owner的端口将被阻塞。
ERPS快速检测仅对设备的保护倒换性能有增益,不会对设备及端口本身的ERPS状态造成影响。
多环场景
- 链路正常
如下图所示,DeviceA ~ DeviceD四台设备组成ERPS环网主环,DeviceC~DeviceF四台设备组成ERPS环网子环。
主、子环各设备均处于IDLE状态。其中DeviceC和DeviceD通过指定的ERPS子环边缘端口,分别从两个方向(Direction_W、Direction_E)向外周期性发送检测报文,环上其他设备的两个ERPS成员口均能收到此报文并将此报文从相邻接口转发出去,最终,Direction_E方向的报文由DeviceD的子环边缘端口接收并终结,Direction_W方向的报文由DeviceC的子环边缘端口接收并终结。
ERPS的多环组网图 - 链路故障
当DeviceD上与DeviceE相连的端口发生故障时,在Direction_E方向上的DeviceD,在Direction_W方向上的DeviceE、DeviceF、DeviceC会分别收到超时事件,以快速使设备感知故障,此时DeviceE的RPL owner端口和DeviceF的RPL Neighbour端口将被放开,并刷新MAC地址,恢复流量的接收和发送,保证流量不会中断。
- 链路恢复
当DeviceD上与DeviceE相连的端口故障恢复时,所有设备上的检测报文正常接收,经过WTR Timer计时结束之后,配置RPL owner端口的DeviceE通过检测报文触发回切事件,以快速使设备感知故障恢复,此时DeviceA的RPL owner的端口将被阻塞。
ERPS快速检测仅对设备的保护倒换性能有增益,不会对设备及端口本身的ERPS状态造成影响。
- 作者: 朱玥
- 最近更新: 2026-01-15
- 浏览次数: 2350
- 平均得分:
导出PDF