ERPS技术白皮书
Copyright © 2024 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
目 录
在二层以太网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路(例如:环形网络)。然而,使用冗余链路可能引起环路问题,导致广播风暴以及其他不稳定现象,影响用户通信质量,甚至导致通信中断。
STP协议是一种常用的环路保护机制,但其收敛时间长且受网络拓扑影响,不能满足高传输质量的数据要求。为了解决这一问题,ITU-T组织提出ERPS(Ethernet Ring Protection Switching,以太环网保护倒换)技术,该技术主要用于缩短环网的收敛时间、消除网络规模的影响,并提高以太网环的可靠性和稳定性。
· 拓扑收敛速度快:ERPS协议的收敛速度非常快,通常低于50ms,当检测到环路中的链路故障或故障恢复时,可以快速切换链路,从而最大程度上减少网络中断时间,确保网络的连续性和可靠性。
· 支持多环拓扑:ERPS技术支持多环拓扑结构,这意味着当一个环拓扑结构发生变化时,其他环不会受到影响,从而确保了数据传输的稳定性和网络的可靠性。多环拓扑结构的支持使得网络设计可以更加复杂和灵活,适应不同的网络规模和业务需求。
· 负载分担:支持环网的负载分担,充分利用了物理链路的带宽,优化了网络资源的利用,提高了带宽利用率。
· 高兼容性:ERPS是ITU-T组织提出的标准协议,这使得用户能够在现有网络基础设施上直接应用ERPS技术,无需大规模更换设备或改造网络。现有的设备可以通过软件升级或配置变更来支持ERPS,节约了升级成本并简化了网络设计。
· 简化网络管理:相比于更为复杂的STP配置,ERPS的配置和管理相对简单直观,这为网络管理员降低了管理复杂性和运维成本。
如图1所示,ERPS采用环形组网。
图1 ERPS的基本组网模型
一个环形连接的以太网网络拓扑称为一个ERPS环。ERPS环分为主环和子环,ERPS环缺省为主环,也可手工配置ERPS环为子环。一个ERPS环可以由单个主环构成,也可以由多个环网构成,在多个环网中可以有多个主环和多个子环。如图1,Device A、Device B、Device C、Device D四个节点所围成的封闭环路为主环Major ring。子环Subring是由Device C与Device E、Device E与Device F、Device F与Device D这三段链路所构成,是个不封闭环。
ERPS组网中一个环可以支持多个实例,每个实例都是一个逻辑环。每个实例中有自己的协议通道和数据通道,以及Owner节点;每个实例作为一个独立的协议实体,维护各自的状态和数据。
不同环ID的报文通过目的MAC地址来区分(目的MAC地址的最后一个字节表示环ID);具有相同环ID报文,通过其携带的VLAN ID来区分其所属的ERPS实例,即报文中的环ID和VLAN ID唯一确定一个实例。
通过在同一个环网上配置多个ERPS实例,不同ERPS实例发送不同VLAN的流量,实现不同VLAN的数据流量在该环网中的拓扑不同,从而达到负载分担的目的。
控制VLAN用来传递ERPS协议报文。每个ERPS实例都有自己的控制VLAN。
保护VLAN用来传输数据报文。每个ERPS实例都有自己的保护VLAN。
ERPS环上的每台设备都称为一个节点。节点角色由用户的配置来决定,分为下列几种:
· Owner节点:主节点,负责阻塞和放开本节点上位于RPL上的端口,防止形成环路,从而进行链路倒换。Owner节点和Neighbor节点之间使用RPL(Ring Protection Link,环保护链路)。如图1,Device A与Device B、Device E与Device F间的链路就是RPL。
· Neighbor节点:邻居节点,RPL上和Owner节点相连的节点,协同Owner节点阻塞和放开本节点上位于RPL上的端口,进行链路倒换。
· Interconnection节点:互联节点,多环模型中连接多个环的节点,互联节点属于子环,主环无互联节点。在子环互联节点之间的链路的协议报文上送模式中,子环的协议报文在互联节点终结,数据报文不被终结。
· Normal节点:普通节点,除了上述介绍的三种节点之外的所有节点都为Normal节点。Normal节点负责接收和转发链路中的协议报文和数据报文。
每个节点上都有两种成员端口port0和port1,这两种端口在功能上没有区别,都用于ERPS环上协议报文和数据报文的传输。
如图1,在主环上Device A是Owner节点,Device B是Neighbor节点,在子环上Device E是Owner节点,Device F是Neighbor节点。Device C和Device D是Interconnection节点。
ERPS环成员端口类型由用户的配置来决定,分为以下三种:
· RPL端口:RPL两端的端口。环网健康状态下,RPL端口处于阻塞状态。
· Interconnection端口:互联节点端口是负责连接子环和主环的端口。
· Normal端口:Normal端口为缺省端口类型,可以接收和转发链路中的协议报文和数据报文,不具备特殊功能。
如图1所示,Device A、Device B、Device E和Device F上的端口Port A1、Port B1、Port E1和Port F1为RPL端口。Device C和Device D上的端口Port C3和Port D3为Interconnection端口。其余端口为Normal端口。
R-APS(Ring Automatic Protection Switching,环网自动保护倒换)报文是ERPS的协议报文。
图2 R-APS报文格式
R-APS报文各字段的含义如表1。
表1 R-APS报文各字段
字段 |
长度 |
说明 |
MEL |
3bits |
R-APS报文级别,协议提供了R-APS报文级别的设置功能。节点不处理R-APS报文级别比自己大的报文。同一环上同一实例内的节点R-APS报文级别必须相同 |
Version |
5bits |
ERPS协议版本号,目前为0x01 |
OpCode |
8bits |
标识该报文是R-APS报文,固定值0x28 |
Flags |
8bits |
固定值0x00 |
TLV Offset |
8bits |
固定值0x20,表示报文中的TLV的偏移量 |
Request/State |
4bits |
表示R-APS报文类型: · 1101:FS(Forced Switch) RAPS · 1110:Flush报文 · 1011:SF(Signal Failed) RAPS · 0111:MS(Manual Switch) RAPS · 0000:NR(No Request) RAPS · 其他:保留字段 |
Sub-code |
4bits |
目前取值为全0 |
Status |
8bits |
表示R-APS报文的状态信息: · RB(RPL Blocked),1bit:RB=1表示RPL链路被阻塞;RB=0表示RPL链路未阻塞。非Owner节点无此状态信息,表示为0 · DNF(Do Not Flush),1bit:DNF=1表示收到当前信息不刷新MAC地址表项;DNF=0表示收到当前信息刷新MAC地址表项 · BPR(Blocked Port Reference),1bit:该字段为0表示阻塞port0,该字段为1表示port1。如果是子环的互联节点发送的R-APS报文,该字段为0 · Status Reserved:保留字段,5bit |
Node ID |
48bits |
表示节点设备的MAC地址 |
Reserved |
192bits |
保留字段 |
R-APS报文各字段的含义如表2。
表2 R-APS报文类型及其作用
报文类型 |
说明 |
(NR, RB)(No Request, RPL Block,链路恢复,RPL阻塞)报文 |
由Owner节点在Idle状态下发送,通知其它节点RPL端口被阻塞。其它节点收到(NR, RB)报文后放开自身的无故障端口,更新各自MAC地址表项。链路稳定在Idle状态下时,Owner节点周期性发送(NR, RB)报文 |
NR(No Request,链路恢复)报文 |
当链路故障恢复后,由恢复端口所在节点发送,Owner节点收到NR报文后启动WTR定时器,在恢复端口所在节点收到(NR, RB)报文后停止发送NR报文 |
SF(Signal Fail,信号失败)报文 |
当链路出现信号收发失败时,由故障端口所在节点发送,Owner和Neighbor节点收到SF报文后,放开各自的RPL端口。故障未消除前,故障端口所在节点周期性发送SF报文 |
MS(Manual Switch,手工倒换)报文 |
由配置MS模式的节点发送,配置MS模式的端口被阻塞,其它节点收到MS报文后放开自身无故障端口,更新各自MAC地址表项。链路在MS状态下,MS报文周期性发送 |
FS(Forced Switch,强制倒换)报文 |
由配置FS模式的节点发送,配置FS模式的端口被阻塞,其它节点收到FS报文后放开自身所有端口,更新各自MAC地址表项。链路在FS状态下,FS报文周期性发送 |
Flush(泛洪)报文 |
如果子环拓扑有变化,互联节点以广播形式发送Flush报文通知主环刷新MAC地址表项 |
· 主环和子环的协议报文只能在自己的环内传输,子环上除Flush报文以外的其它协议报文在互联节点被终结。
· 子环的数据报文可以透传至主环。
ERPS定义了以下六种状态:
· Init状态:环端口不完整时(非互联节点的端口数量小于2或互联节点的端口数量小于1),处于Init状态。
· Idle状态:环初始化过后进入到稳定状态,当Owner节点进入Idle状态后,其它节点随之进入Idle状态。其中,Owner节点和Neighbor节点的RPL端口为阻塞状态,即RPL不通;Owner节点定时发送(NR, RB)报文。
· Protection状态:当环网某段链路出现故障,环路经过保护倒换,最终稳定到的状态。Owner节点和Neighbor节点的RPL端口放开,即RPL放开,保证整个环网仍然是通的。当链路中某个节点进入Protection状态后,其它节点随之进入Protection状态。
· MS状态:MS状态下可以手动倒换流量转发路径。当对链路中某个节点进行MS操作后,其它节点随之进入MS状态。
· FS状态:FS状态下可以强制倒换流量转发路径。当对链路中某个节点进行FS操作后,其它节点随之进入FS状态。
· Pending状态:Pending状态是一个不稳定的状态,是各状态在进行跳转时的一个过渡状态。
环路正常时,处于Idle状态;链路发生故障后,处于Proctection状态。
该定时器在端口检测到链路故障时启动,延迟故障上报的速度。当链路出现故障后,等待Hold-off超时后,如果故障依然存在,再上报。从而给服务层提供修复链路的机会,避免不必要的故障上报。该定时器的时长会影响链路故障上报的速度,影响故障发生时链路的倒换性能。
该定时器在端口检测到链路恢复时启动,用于防止环网上转发延时导致的原R-APS报文残留对网络造成不必要的震荡。在此定时器超时前,接口不再处理所有R-APS报文。该定时器对多点故障时的链路恢复性能有影响。
回切模式下,该定时器在Owner节点在Protection状态收到NR报文时启动,用于防止环网上存在间歇性故障链路导致网络频繁震荡。在此定时器超时前,RPL保持转发,故障恢复点维持临时阻塞,期间,如果Owner节点收到SF报文,说明环网中还存在故障链路,该定时器直接关闭,RPL仍然保持转发。否则,该定时器超时后,Owner节点阻塞RPL端口,发送(NR, RB)报文通知故障恢复节点,放开临时阻塞的端口,同时刷新MAC地址表项。
回切模式下,该定时器在Owner节点在MS或者FS状态收到NR报文时启动,用于防止环网上的RPL端口由于网络震荡而反复被阻塞、放开。在此定时器超时前,RPL保持转发,故障节点发送NR报文。期间,如果Owner节点再次收到SF报文,说明环网中还存在故障链路,该定时器直接关闭,RPL仍然保持转发。否则,该定时器超时后,Owner节点阻塞RPL,发送(NR, RB)报文通知临时阻塞点放开,同时刷新MAC地址表项。
当RPL端口处于阻塞状态时:
· 在主环中,不允许转发ERPS协议报文和数据报文。
· 在子环中,仅允许转发ERPS协议报文,不允许转发数据报文。
如图3所示,环网健康检测及处理机制的具体过程如下:
(1) Owner节点以5s的间隔,周期性地向其他节点发送(NR, RB)报文。
(2) 当Normal节点收到(NR, RB)报文后,会将此报文转发至相邻节点。
(3) 当所有节点收到(NR, RB)报文后,表示环网处于健康状态。
环网处于健康状态时,RPL端口处于阻塞状态,其他端口可以正常转发数据流量。
当链路中的节点发现自己任何一个属于ERPS环的端口down时,都会阻塞故障端口、刷新MAC地址表项并立刻发送SF报文通知链路上其它节点发生了故障,其它节点在收到此报文后放开非故障阻塞端口,并刷新MAC地址表项。如图4所示,环网故障检测及处理机制的具体过程如下:
(1) 当Device C和Device D检测到链路故障时,会阻塞故障端口、刷新MAC地址表项,并立即向外连续发送3个SF报文,然后以5s的间隔,周期性地发送SF报文。
(2) 当Normal节点收到SF报文后,会刷新MAC地址表项,并将此报文转发至相邻节点。
(3) 当Owner节点和Neighbor节点收到该报文后,放开RPL端口,并刷新MAC地址表项。
当故障链路恢复后,先阻塞之前处于故障状态的端口,启动Guard定时器并发送NR报文通知Owner节点故障链路已恢复。Owner节点在收到NR报文后,启动WTR定时器,如果定时器在超时前,没有收到SF报文,则当定时器超时后,Owner节点阻塞RPL端口,并向外周期性的发送(NR, RB)报文;故障恢复节点在收到(NR, RB)报文后放开临时阻塞的故障恢复端口;Neighbor节点收到(NR, RB)报文后阻塞RPL端口,链路恢复。如图5所示,环网故障恢复检测及处理机制的具体过程如下:
(1) 当Device C和Device D检测到它们之间的链路恢复后,临时阻塞之前处于故障状态的端口,分别启动Guard定时器并发送NR报文。
(2) 当Normal节点收到NR报文后,会将此报文转发至相邻节点。
(3) Device A(Owner节点)收到NR报文后,启动WTR定时器,定时器超时之后,阻塞RPL端口,并向外发送(NR, RB)报文。
(4) Device C和Device D收到(NR, RB)报文报文之后,放开临时阻塞的故障恢复端口。
(5) Device B(Neighbor节点)在收到(NR, RB)报文后阻塞RPL端口。
(6) 链路恢复到发生故障前的状态。
Owner节点在链路的恢复处理中,有如下两种方式。
· 回切模式(Revertive behaviour):Owner节点在故障消除收到NR报文后,会启动WTR/WTB定时器。在定时器超时之前,如果Owner节点没有收到SF报文,就倒换端口状态,阻塞RPL端口,清除MAC地址表项,发送(NR, RB)报文,其它节点放开非故障的阻塞端口,清除各自MAC地址表项。定时器超时后,倒换回Idle状态。
· 非回切模式(Non-revertive behaviour):Owner收到NR报文后,不执行任何动作,保持之前设置的端口状态。
在同一个环网中,如果同时存在多个VLAN的数据流量,可以在同一个环网上配置多个ERPS实例,不同ERPS实例转发不同VLAN(称之为保护VLAN)的流量,实现不同VLAN的数据流量在该环网中有不同的转发路径,从而达到负载分担的目的。
如图6所示,Instance 1和Instance 2为ERPS一个环内配置的两个实例,两个实例的RPL不同,Device A和Device B之间的链路为Instance 1的RPL,Device A为Instance 1的Owner节点;Device C和Device D之间的链路为Instance 2的RPL,Decive C为Instance 2的Owner节点。通过配置,不同的实例RPL阻塞不同的VLAN,从而实现单环的负载分担。
当RPL端口处于阻塞状态时:
· 在主环中,不允许转发ERPS协议报文和数据报文。
· 在子环中,仅允许转发ERPS协议报文,不允许转发数据报文。
如图7所示,环网健康检测及处理机制的具体过程如下:
(1) 主环和子环的Owner节点以5s的间隔,周期性地向各自环中的其他节点发送(NR, RB)报文。
(2) 主环和子环的Normal节点收到(NR, RB)报文后,会将此报文转发至相邻节点。
(3) 当Interconnection节点收到(NR, RB)报文后,会将此报文终结,不会将其转发至主环。
(4) 当所有节点收到(NR, RB)报文后,表示环网处于健康状态。
环网处于健康状态时,RPL端口处于阻塞状态,其他端口可以正常转发数据流量。
如图8所示,子环故障检测及处理机制的具体过程如下:
(1) 当子环的Device F和Device D检测到链路故障时,会阻塞故障端口、刷新MAC地址表项,并立即向外连续发送3个SF报文,然后以5s的间隔,周期性地发送SF报文。
(2) 当Normal节点收到SF报文后,会刷新MAC地址表项,并将此报文转发至相邻节点。
(3) 当Owner节点和Neighbor节点收到SF报文后,放开RPL端口,并刷新MAC地址表项。
(4) 当DeviceC和DeviceD(Interconnection节点)感知链路故障后,会向主环发送Flush报文,通告子环的网络链路的变化信息。
(5) 主环的节点收到Flush报文后,会刷新MAC地址表项。
如图9所示,子环故障恢复检测及处理机制的具体过程如下:
(1) 当Device F和Device D检测到它们之间的链路恢复后,临时阻塞之前处于故障状态的端口,分别启动Guard定时器并在子环内发送NR报文。
(2) 当Normal节点收到NR报文后,会将此报文转发至相邻节点。
(3) Device E(Owner节点)收到NR报文后,启动WTR定时器,定时器超时之后,阻塞RPL端口,并向外发送(NR, RB)报文。
(4) 当Normal节点在收到(NR, RB)报文后,会刷新MAC地址表,并将此报文转发至相邻节点。
(5) Device F和Device D收到(NR, RB)报文之后,放开临时阻塞的故障恢复端口,并停止发送NR报文,刷新MAC地址表。Device F(Neighbor节点)在收到(NR, RB)报文后阻塞RPL端口。
(6) 当Device C和Device D(Interconnection节点)感知链路故障恢复后,会向主环发送Flush报文,通告子环的网络链路的变化信息。
(7) 主环的节点收到Flush报文后,会刷新MAC地址表项。
(8) 链路恢复到发生故障前的状态。
Owner节点在链路的恢复处理中,有如下两种方式。
· 回切模式(Revertive behaviour):Owner节点在故障消除收到NR报文后,会启动WTR/WTB定时器。在定时器超时之前,如果Owner节点没有收到SF报文,就倒换端口状态,阻塞RPL端口,清除MAC地址表项,发送(NR, RB)报文,其它节点放开非故障的阻塞端口,清除各自MAC地址表项。定时器超时后,倒换回Idle状态。
· 非回切模式(Non-revertive behaviour):Owner收到NR报文后,不执行任何动作,保持之前设置的端口状态。
工作机制与单环类似,请参见“2.5.2 单环多实例负载分担”。
ERPS支持两个级别的手动配置,即MS和FS。
· MS允许用户选取当前环实例内的配置MS模式的ERPS环成员端口作为阻塞端口。用户在该端口所在节点配置erps switch manual命令后,该节点会向外发送MS消息。其它节点收到MS消息后会主动放开各自节点上的ERPS环成员端口,最终会稳定在整个链路上只有MS配置的端口被阻塞的状态。需要注意的是,MS状态可以响应链路事件,允许根据链路事件倒换到相应的状态:MS状态下,如果有其它链路出现故障,故障所在节点会向外发送SF报文,其它节点在收到SF报文后会放开各自节点上的ERPS环成员端口,包括MS配置阻塞端口。此时链路可正常倒换到保护状态。
· FS作用与MS类似,不同的是FS状态下,各节点不会响应链路故障事件,始终维持FS状态不变。
ERPS的正常运行依赖于用户正确的配置。下面介绍几种典型的组网。
如图10所示,网络拓扑中只有一个环,此时只需定义一个ERPS环。
如图11所示,网络拓扑中有两个环,两环之间有两个公共节点,选择其中一个环为主环,另一个环为子环。
如图12所示,网络拓扑中有三个或三个以上的环,每个子环与主环之间有两个公共节点。
如图13所示,网络拓扑中有三个或三个以上的环,在单子环拓扑的基础上,多个子环和子环1之间有两个公共节点。
如图14,图15所示,网络拓扑中有三个或三个以上的环,在单子环拓扑的基础上,至少有一个子环与其它两个环各有一个公共节点,分为以下两种情况。
图14 子环连接多环(子环2与主环、子环1同时相连)示意图
图15 子环连接多环(子环3与子环1、子环2同时相连)示意图
在网络中,为了提高以太环网中设备的可靠性,可以配置M-LAG组网下的以太环网。将以太环网中设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。
图16 M-LAG组网下的ERPS示意图