CN104717147B - 快速环网保护协议负载分担方法和装置 - Google Patents
快速环网保护协议负载分担方法和装置 Download PDFInfo
- Publication number
- CN104717147B CN104717147B CN201310676607.7A CN201310676607A CN104717147B CN 104717147 B CN104717147 B CN 104717147B CN 201310676607 A CN201310676607 A CN 201310676607A CN 104717147 B CN104717147 B CN 104717147B
- Authority
- CN
- China
- Prior art keywords
- rrpp
- subring
- protection
- forwarding
- port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了快速环网保护协议子环负载分担方法和装置。本申请中,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点通过设置所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding,这相比于在执行本发明之前仅依赖于在主节点的副端口阻塞所有RRPP保护实例的流量所形成的流量拓扑,能够最大程度上降低子环与主环之间公共链路的流量转发负担,避免公共链路出现流量拥塞。
Description
技术领域
本申请涉及网络通信技术,特别涉及快速环网保护协议(RRPP:Rapid RingProtection Protocol)负载分担方法和装置。
背景技术
RRPP是一个专门应用于以太网环的链路层协议。它在以太网环完整时能够防止数据环路引起的广播风暴,而当以太网环上一条链路断开时能迅速恢复环网上各个节点之间的通信通路,具备较高的收敛速度。
为使本申请容易理解,下面先描述本申请主要涉及的RRPP的关键术语:
RRPP域,具有相同的域ID和控制VLAN,并且相互连通的设备构成一个RRPP域。一个RRPP域具有RRPP环、节点、主端口和副端口、公共端口、公共链路和边缘端口,下面分别进行描述:
RRPP环,一个环形连接的以太网网络拓扑称为一个RRPP环。RRPP环分为主环和子环,环的角色可以通过指定RRPP环的级别来设定。一个RRPP域可以包含一个或多个RRPP环,但只能有一个主环,其它均为子环。如图1所示,如图1所示,RRPP域Domain1中包含了三个RRPP环:Ring1、Ring2、Ring3。Ring1为主环,Ring2、Ring3为子环。
节点,RRPP环上的每台设备都称为一个节点。节点角色由用户的配置来决定,分为下列几种:
主节点:每个RRPP环上有且仅有一个主节点。主节点是RRPP环网状态主动检测机制的发起者,也是网络拓扑发生改变后执行操作的决策者。
传输节点:主环上除主节点以外的其它所有节点,以及子环上除主节点、子环与主环相交节点以外的其它所有节点都为传输节点。传输节点负责监测自己的直连RRPP链路的状态,并把链路变化通知主节点,然后由主节点来决策如何处理。
边缘节点:同时位于主环和子环的链路上两端的节点之一。是一种特殊的传输节点,它在主环上是传输节点,而在子环上则是边缘节点。
辅助边缘节点:同时位于主环和子环的链路上两端的节点之一,也是一种特殊的传输节点,它在主环上是传输节点,而在子环上则是辅助边缘节点。辅助边缘节点与边缘节点成对使用,把哪台交换机配置成边缘节点或辅助边缘节点没有特殊要求,其中,边缘节点发送边缘(edge)hello报文,辅助边缘节点接收edge hello报文,用于对边缘节点与辅助边缘节点之间的公共链路进行检测。以图1所示RRPP域为例,Ring1为主环,Ring2、Ring3为子环。DUT1为Ring1的主节点,DUT2、DUT3和DUT4为Ring1的传输节点;DUT5为Ring2的主节点,DUT2为Ring2的边缘节点,DUT3为Ring2的辅助边缘节点,DUT6为Ring3的主节点,DUT2为Ring3的边缘节点,DUT3为Ring3的辅助边缘节点。边缘节点DUT2发送edge hello报文,辅助边缘节点DUT3接收DUT2发送的edge hello报文,以检测DUT2与DUT3之间的公共链路。
主端口和副端口,主节点和传输节点各自有两个端口接入RRPP环,其中一个为主端口,另一个为副端口。端口的角色由用户的配置来决定。主节点的主端口和副端口在功能上有所区别:当RRPP环处于正常状态时,主节点的副端口在逻辑上阻塞数据VLAN,只允许控制VLAN的报文通过;当RRPP环处于断裂状态时,主节点的副端口将解除数据VLAN的阻塞状态,转发数据VLAN的报文。传输节点的主端口和副端口在功能上没有区别,都用于RRPP环上协议报文和数据报文的传输。如图1所示,DUT1为Ring1的主节点,P1和P2分别为其在Ring1上的主端口与副端口;DUT2为Ring1的传输节点,其在Ring1上的P3和P6分别为传输节点DUT2在Ring1上的主端口和副端口。
公共端口和边缘端口,公共端口是边缘节点和辅助边缘节点上接入主环的端口,即边缘节点和辅助边缘节点分别在主环上配置的两个端口。边缘端口是边缘节点和辅助边缘节点上只接入子环的端口。如图1所示,DUT2、DUT3同时位于Ring1、Ring2和Ring3上,DUT2、DUT3各自接入主环Ring1的端口即DUT2的端口P3和P6、DUT3的P7和P10是接入主环的端口,因此是公共端口,而DUT2和DUT3各自接入子环的端口,以子环Ring2为例,DUT2的端口P5、DUT3的P9是接入子环Ring2的端口,因此是边缘端口。
公共链路:为边缘节点上的公共端口和辅助边缘节点上的公共端口之间的同时位于主环和子环的连通链路。如图1所示,DUT2、DUT3分别为Ring3的边缘节点、辅助边缘节点,则公共链路为DUT2的公共端口P6连接DUT3的公共端口P7之间的连通链路。
公共链路承担的流量比较多,除了承担主环的流量外,还要承担子环的流量,因此,在公共链路上合理分配流量,以避免公共链路出现流量拥塞是亟待解决的技术问题。
发明内容
本申请提供了快速环网保护协议负载分担方法和装置,以实现在公共链路上合理分配流量,避免公共链路出现流量拥塞。
本申请提供的技术方案包括:
一种快速环网保护协议RRPP负载分担方法,该方法应用于子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,包括:
识别所述Hello报文是否携带第一标识,子环中主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态的准备;
如果否,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点发送携带第一标识的Hello报文;
如果是,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并修改所述Hello报文中的第一标识为第二标识,将修改后的Hello报文通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点将其副端口对应本子环绑定的RRPP保护实例的数据转发状态从阻塞discarding修改为转发forwarding或维持为forwarding或从forwarding修改为discarding,并比较所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding,如果否,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。
一种快速环网保护协议RRPP负载分担方法,,该方法应用于子环中的主节点,包括:
通过本主节点的副端口接收Hello报文;
依据所述Hello报文携带的用于确定本子环当前绑定的RRPP保护实例的相关信息确定本子环当前绑定的RRPP保护实例,并在接下来发送Hello报文的周期到达时,通过本主节点的主端口发送携带第一标识的Hello报文;本主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态的准备;
并且,在所述Hello报文未携带第二标识时,将确定出的本子环当前绑定的RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录;
在所述Hello报文携带第二标识时,比较本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为转发forwarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态为forwarding,如果否,从本主节点副端口对应本子环绑定的数据转发状态为forwarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将本主节点副端口对应该识别出的RRPP保护实例的数据转发状态从forwarding修改为阻塞discarding,并针对本子环当前绑定的每一RRPP保护实例,识别本主节点副端口对应该RRPP保护实例的数据转发状态,如果为forwarding,维持forwarding,如果为discarding,判断已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中是否存在该RRPP保护实例,如果是,将本主节点副端口对应该RRPP保护实例的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除该RRPP保护实例,如果否,维持discarding,将该RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录。
一种快速环网保护协议RRPP负载分担装置,该装置应用于子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,包括:
识别单元,用于识别所述Hello报文是否携带第一标识,子环中主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态的准备;
第一处理单元,用于在所述识别单元的识别结果为否时,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点发送携带第一标识的Hello报文;
第二处理单元,用于在所述识别单元的识别结果为是时,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并修改所述Hello报文中的第一标识为第二标识,将修改后的Hello报文通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点将其副端口对应本子环绑定的RRPP保护实例的数据转发状态从阻塞discarding修改为转发forwarding或维持为forwarding或从forwarding修改为discarding,并比较所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding,如果否,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。
一种快速环网保护协议RRPP负载分担装置,该装置应用于子环中的主节点,包括:
接收单元,用于通过本主节点的副端口接收Hello报文;
第一处理单元,用于依据所述Hello报文携带的用于确定本子环当前绑定的RRPP保护实例的相关信息确定本子环当前绑定的RRPP保护实例,并在接下来发送Hello报文的周期到达时,通过本主节点的主端口发送携带第一标识的Hello报文;本主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态的准备;
第二处理单元,用于当所述接收单元接收的所述Hello报文未携带第二标识时,将所述第一处理单元确定出的本子环当前绑定的RRPP保护实例作为需要在本主节点的副端口上改变数据转发状态的RRPP保护实例记录;以及当所述接收单元接收的所述Hello报文携带第二标识时,比较本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为转发forwarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态为forwarding,如果否,从本主节点副端口对应本子环绑定的数据转发状态为forwarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将本主节点副端口对应该识别出的RRPP保护实例的数据转发状态从forwarding修改为阻塞discarding,并针对本子环当前绑定的每一RRPP保护实例,识别本主节点副端口对应该RRPP保护实例的数据转发状态,如果为forwarding,维持forwarding,如果为discarding,判断已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中是否存在该RRPP保护实例,如果是,将本主节点副端口对应该RRPP保护实例的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除该RRPP保护实例,如果否,维持discarding,将该RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录。
由以上技术方案可以看出,本发明中,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点通过将所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态设置为discarding,这相比于在执行本发明之前仅依赖于在主节点的副端口阻塞所有RRPP保护实例的流量所形成的流量拓扑,能够实现在公共链路上合理分配流量,避免公共链路出现流量拥塞,进而避免流量丢包,同时,也能实现RRPP域内不同RRPP保护实例的不同路径转发。
附图说明
图1为现有RRPP域组网示意图;
图2为本发明实施例提供的方法流程图;
图3为本发明实施例提供的实例流程图;
图4为应用本发明实施例的流量转发拓扑图;
图5为应用现有RRPP机制的流量转发拓扑图;
图6为本发明实施例提供的装置结构图;
图7为本发明实施例提供的另一装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
参见图2,图2为本发明实施例提供的方法流程图。如图2所示,该流程可包括以下步骤:
步骤201,RRPP域中每一子环的主节点通过本主节点的主端口发送属于本子环的Hello报文。
以图1所示的RRPP域为例,在图1所示的RRPP域中存在两个子环:Ring2和Ring3,则执行到本步骤201时,Ring2中的主节点DUT6发送属于Ring2的Hello报文,Ring3中的主节点DUT5发送属于Ring3的Hello报文。
本发明实施例中,每一子环的主节点发送的Hello报文携带了本子环的标识,子环的主节点通过在Hello报文中携带本子环的标识,目的是便于标识该Hello报文所属的子环。
需要说明的是,本发明实施例中,可通过对现有RRPP协议规定的Hello报文进行改进,使Hello报文携带第一标识,其中,子环的主节点发送的Hello报文第一标识,表示子环中主节点已作好针对本子环绑定的RRPP保护实例改变在本主节点副端口的数据转发状态的准备;
而如果子环中主节点还未作好针对本子环绑定的RRPP保护实例改变在本主节点副端口的数据转发状态的准备比如在初始阶段,则子环中主节点发送的Hello报文就不携带第一标识,此时,该发送的Hello报文就是现有RRPP协议规定的Hello报文。
步骤202,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,识别收到的所述Hello报文是否携带第一标识,如果否,执行步骤203,如果是,执行步骤204。
以图1所示,RRPP域中子环Ring3的主节点DUT5发送Hello报文为例,则如图1所示,子环Ring3中的辅助边缘节点DUT3是通过公共端口P7接收到Ring3的主节点DUT5发送的Hello报文,如此,执行到步骤202时,DUT3就执行识别收到的所述Hello报文是否携带第一标识的步骤。而子环Ring3中的边缘节点DUT2是通过边缘端口P4接收到Ring3的主节点DUT5发送的Hello报文,按照本实施例,其不会执行识别收到的所述Hello报文是否携带第一标识的步骤。
同样地,以图1所示,RRPP域中子环Ring2的主节点DUT6发送Hello报文为例,则如图1所示,子环Ring2中的边缘节点DUT2是通过公共端口P6接收到Ring2的主节点DUT6发送的Hello报文,如此,执行到步骤202时,DUT2就执行识别收到的所述Hello报文是否携带第一标识的步骤。而子环Ring2中的辅助边缘节点DUT3是通过边缘端口P9接收到Ring2的主节点DUT3发送的Hello报文,按照本发明,其不会执行识别收到的所述Hello报文是否携带第一标识的步骤。
步骤203,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送。之后执行步骤205。
本步骤203是在收到的Hello报文不携带第一标识的前提下执行的。
其中,本步骤203之所以将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中发送,目的是便于本子环主节点收到该Hello报文后确定出本子环绑定的RRPP保护实例,以便作好针对本子环绑定的RRPP保护实例改变在本主节点副端口的数据转发状态的准备,发送携带第一标识的Hello报文。
步骤204,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并修改所述Hello报文中的第一标识为第二标识,将修改后的Hello报文通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点将其副端口对应本子环绑定的RRPP保护实例的数据转发状态从阻塞(discarding)修改为转发(forwarding)或维持为forwarding或从forwarding修改为discarding,并比较所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding,如果否,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。之后执行步骤205。
本步骤204是在收到的Hello报文携带第一标识的前提下执行的。
在本步骤204中,第一标识、第二标识不同,其可为RRPP协议中未被规定的两个不同值。
还有,在本步骤204中,公共端口对应本子环绑定的RRPP保护实例其为前次确定出本子环绑定的RRPP保护实例;这里所说的前次,是指距离当前确定本子环绑定的RRPP保护实例最近的一次。特殊情况:在当前之前从未确定本子环绑定的RRPP保护实例,则可默认公共端口对应本子环绑定的RRPP保护实例不存在,为空,或者,在当前之前已确定本子环绑定的RRPP保护实例,但所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态均为forwarding,针对这两种情况,则认为所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是不存在的,如此当前比较所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致时,其比较结果必然是不一致。
通过步骤204可以看出,当子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点识别出收到的Hello报文携带第一标识时,其通过比较所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例是是否与本子环当前绑定的RRPP保护实例一致,能够将本节点公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态从forwarding修改为discarding,或维持discarding,这样,就能够保证不同子环绑定的不同RRPP保护实例对应不同的流量转发拓扑路径,避免了现有一个RRPP域中所有RRPP保护实例全在公共链路转发。
步骤205,子环中的主节点通过本主节点的副端口接收Hello报文。
步骤206,子环中的主节点依据所述Hello报文携带的用于确定本子环当前绑定的RRPP保护实例的相关信息确定本子环当前绑定的RRPP保护实例,在接下来发送Hello报文的周期到达时,通过本主节点的主端口发送携带第一标识的Hello报文,并且,在所述Hello报文未携带第二标识时,执行步骤207,在所述Hello报文携带第二标识时,执行步骤208。
对应步骤203,此时子环中的主节点通过本主节点的副端口接收的Hello报文就未携带第二标识;
对应步骤204,此时子环中的主节点通过本主节点的副端口接收的Hello报文就携带第二标识。
步骤207,将确定出的本子环当前绑定的RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录。
步骤208,比较本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为转发forwarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态为forwarding,如果否,从本主节点副端口对应本子环绑定的数据转发状态为forwarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将本主节点副端口对应该识别出的RRPP保护实例的数据转发状态从forwarding修改为阻塞discarding,并针对本子环当前绑定的每一RRPP保护实例,识别本主节点副端口对应该RRPP保护实例的数据转发状态,如果为forwarding,维持forwarding,如果为discarding,判断已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中是否存在该RRPP保护实例,如果是,将本主节点副端口对应该RRPP保护实例的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除该RRPP保护实例,如果否,维持discarding,将该RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录。
在本步骤208中,本主节点副端口对应本子环绑定的RRPP保护实例是前次确定出本子环绑定的RRPP保护实例。这里所说的前次,是指距离当前确定本子环绑定的RRPP保护实例最近的一次。特殊情况即在当前之前从未确定本子环绑定的RRPP保护实例,则可默认本主节点副端口对应本子环绑定的RRPP保护实例不存在,为空,或者,在当前之前确定本子环绑定的RRPP保护实例,但本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态均为discarding,针对这两种情况,则认为本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为forwarding的RRPP保护实例是不存在的,如此在当前比较本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为forwarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致时,比较结果必然是不一致的。
通过步骤208,再结合子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点执行的上述的步骤204,能够实现不同子环绑定的不同RRPP保护实例对应不同的流量转发拓扑路径,减轻了公共链路转发流量的负担。
下面通过一个实施例对图2所示流程进行详细描述:
当RRPP域中的主环和子环开始进入正常工作状态时,主环和子环各自的主节点均在自身副端口将本RRPP域内每一RRPP保护实例的数据转发状态设置为discarding,以阻塞本RRPP域中所有RRPP保护实例内数据VLAN的报文,仅允许控制VLAN内的报文通过。
以图1所示的RRPP域为例,图1所示的RRPP域存在三个RRPP环,依次为:Ring1、Ring2、Ring3,其中,Ring1为RRPP域的主环,DUT1为主环Ring1的主节点,Ring2、Ring3为RRPP域的子环,DUT6为子环Ring2的主节点,DUT5为子环Ring3的主节点,假如图1所示的RRPP域中存在四个RRPP保护实例,分别是实例1至实例4,则图1中主环Ring1的主节点DUT1、子环Ring2的主节点DUT6、子环Ring3的主节点DUT5均设置其副端口对应实例1至实例4的数据转发状态为discarding,即均阻塞实例1至实例4内数据VLAN的报文,仅允许控制VLAN内的报文通过。
在当RRPP域中的主环和子环开始进入正常工作状态,子环的主节点在自身副端口将本RRPP域内每一RRPP保护实例的数据转发状态设置为discarding之后,执行如图3所示的流程:
步骤301,RRPP域中每一子环的主节点通过本主节点的主端口发送属于本子环的Hello报文。
仍以图1所示的RRPP域为例,在图1所示的RRPP域中存在两个子环:Ring2和Ring3,则执行到本步骤301时,Ring2中的主节点DUT6发送属于Ring2的Hello报文,Ring3中的主节点DUT5发送属于Ring3的Hello报文。
本实施例中,每一子环的主节点发送的Hello报文携带了本子环的标识,子环的主节点通过在Hello报文中携带本子环的标识,目的是便于标识该Hello报文所属的子环。
步骤302,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点识别该接收的Hello报文是否携带第一标识,如果否,执行步骤303,如果是,执行步骤306。
如前所述,子环中主节点发送的Hello报文如果携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态的准备。
以图1所示RRPP域中子环Ring3的主节点DUT5发送Hello报文为例,如图1所示,子环Ring3中的辅助边缘节点DUT3是通过公共端口P7接收到Ring3的主节点DUT5发送的Hello报文,如此,执行到步骤302时,DUT3就执行识别接收的所述Hello报文是否携带第一标识的操作。而子环Ring3中的边缘节点DUT2是通过边缘端口P4接收到Ring3的主节点DUT5发送的Hello报文,按照本实施例,其不会执行识别接收的所述Hello报文是否携带第一标识的操作。
同样地,以图1所示RRPP域中子环Ring2的主节点DUT6发送Hello报文为例,如图1所示,子环Ring2中的边缘节点DUT2是通过公共端口P6接收到Ring2的主节点DUT6发送的Hello报文,如此,执行到步骤302时,DUT2就执行识别接收的所述Hello报文是否携带第一标识的操作。而子环Ring2中的辅助边缘节点DUT3是通过边缘端口P9接收到Ring2的主节点DUT3发送的Hello报文,按照本实施例,其不会执行识别接收的所述Hello报文是否携带第一标识的操作。
步骤303,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点判断本RRPP域中RRPP保护实例总数量和RRPP环总数量均为两个以上,则执行步骤304。
本步骤303、以及后续的步骤304至步骤305是子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点在收到的Hello报文未携带第一标识的前提下执行的。
本发明实施例中,RRPP域中的边缘节点、辅助边缘节点都会在本地配置本RRPP域中存在的所有RRPP环。基于此,本步骤303基于本地配置识别出本RRPP域存在的RRPP环总数量,同时,RRPP域中的边缘节点、辅助边缘节点也会在本地配置本RRPP域中存在的所有RRPP保护实例,因此,本步骤303也会根据配置识别出本RRPP域中存在的RRPP保护实例数量。当本步骤303依据本地配置识别出本RRPP域中存在的RRPP保护实例数量和RRPP环总数量均为两个以上时,就执行步骤304。
以图1所示RRPP域为例,RRPP域中存在以下三个RRPP环:Ring1至Ring3,Ring1至Ring3这三个RRPP环按照从小到大排名的编号依次为:1,2,3。并且,假如图1所示的RRPP域中存在四个RRPP保护实例,分别是实例1至实例4,即,RRPP域中RRPP保护实例总数量、以及处于正常状态的RRPP环总数量均为两个以上时,继续执行下述步骤304。
需要说明的是,作为本发明的一个实施例,当子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点判断出本RRPP域中RRPP保护实例总数量和RRPP环总数量中至少一个没有达到两个以上时,可按照现有方式实现,即,对接收的Hello报文不进行任何处理,直接通过连接本子环的边缘端口向本子环主节点的副端口发送;
作为本发明的另一个实施例,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点也可不执行步骤303的判断,直接执行下述的步骤304。本发明实施例以执行上述步骤303为例,不执行步骤303的实例不再描述。
步骤304,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点从本RRPP域存在的所有RRPP保护实例中确定出本子环当前绑定的RRPP保护实例。
本实施例,可按照取模规则确定本子环当前绑定的RRPP保护实例。以图1所示RRPP域中子环Ring3的主节点DUT5发送Hello报文为例,则如图1所示,Ring3中的辅助边缘节点DUT3是通过公共端口P7接收到Ring3的主节点DUT5发送的Hello报文,如此,执行到本步骤304时,DUT3按照取模规则确定Ring3绑定的RRPP保护实例:
假设图1所示RRPP域中存在以下三个RRPP环:Ring1至Ring3,Ring1至Ring3这三个RRPP环按照从小到大排名的序号依次为:1,2,3;并且,假如图1所示的RRPP域中存在四个RRPP保护实例,分别是实例1至实例4,实例1至实例4的序号依次为:1、2、3、4;则计算实例1至实例4中哪些实例的序号与RRPP域中的RRPP环数量“3”进行模运算得到的模结果与Ring3的序号“3”对应,将该计算出的实例确定为与Ring3绑定的RRPP保护实例。其中,假如预先做出如下定义:
模结果“0”与Ring3的序号“3”对应;
模结果“1”与Ring1的序号“1”对应;
模结果“2”与Ring2的序号“2”对应;
如上做出的定义,Ring3的序号“3”与模结果“0”对应,则就会计算实例1至实例4中哪些实例的序号与RRPP域中的RRPP环数量“3”进行模运算得到模结果0,结果发现实例3的序号“3”与RRPP域中的RRPP环数量“3”进行模运算得到模结果0,正好与Ring3的序号“3”对应,如此,就确定实例3与Ring3绑定。
同样的计算方法,图1所示RRPP域中Ring2绑定的RRPP保护实例为实例2,Ring1绑定的RRPP保护实例为实例1、实例4。
需要说明的是,上述按照取模规为子环确定绑定的RRPP保护实例只是本实施例的一种举例,并不限定本发明,在不影响本发明保护范围的前提下,也可以采用其他方式为子环选择绑定的RRPP保护实例。
步骤305,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点将本RRPP域中的RRPP环总数量、本子环在RRPP域中所有RRPP环的序号携带在收到的Hello报文中,并通过连接本子环的边缘端口发送。之后执行步骤311。
仍以图1所示RRPP域中的Ring3为例,中主节点DUT5发送Hello报文后,Ring3中的辅助边缘节点DUT3会通过公共端口P7收到Ring3中主节点DUT5发送的Hello报文,则执行到本步骤305时,DUT3将图1所示RRPP域中的RRPP环数量3、以及Ring3在RRPP域中所有RRPP环的序号“3”携带在收到的来自Ring3中主节点DUT5发送的Hello报文中,并通过连接Ring3的边缘端口即P8发送。
Hello报文中通常有一些保留位,本实施例中,可以占用Hello报文的任意一个保留位,在该占用的保留位的第一个字节内填写本RRPP域中的RRPP环总数量,即代表该RRPP域总共拥有的RRPP环个数;在该占用的保留位的第二个字节内填写本子环在RRPP域中所有RRPP环的序号,即代表该子环在RRPP域中所有RRPP环中的排名。
需要说明的是,本步骤305中,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点之所以在收到的Hello报文中携带本RRPP域中RRPP环总数量、以及本子环在RRPP域中所有RRPP环的序号并发送,目的是便于本子环中的主节点确定本子环当前绑定的RRPP保护实例。因此,该携带的本RRPP域中RRPP环总数量、以及本子环在RRPP域中所有RRPP环的序号可称为用于确定本子环当前绑定的RRPP实例的相关信息。
本实施例中,由于子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点在步骤304已确定出本子环绑定的RRPP保护实例,基于此,本步骤305中,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点也可以直接携带本子环绑定的RRPP保护实例的序号并发送,以便本子环中的主节点依据收到的Hello报文中的本子环绑定的RRPP保护实例的序号直接确定本子环绑定的RRPP保护实例。也即,Hello报文携带的本子环绑定的RRPP保护实例的序号也可称为用于确定本子环绑定的RRPP保护实例的相关信息。
本实施例以在Hello报文携带RRPP域中RRPP环总数量、以及本子环在RRPP域中所有RRPP环的序号为例进行说明的,而Hello报文携带本子环绑定的RRPP保护实例的序号的原理类似,不再一一赘述。
作为一个优选方案,本发明实施例中,也可先不通过步骤304确定本子环当前绑定的RRPP保护实例,而是直接将步骤305替代步骤304。基于此,本步骤305中,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点在通过连接本子环的边缘端口发送Hello报文时,将用于确定本子环绑定的RRPP实例的相关信息即本RRPP域中的RRPP环总数量、以及本子环在RRPP域中所有RRPP环的序号携带在Hello报文中发送。
步骤306,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,从本RRPP域存在的所有RRPP保护实例中确定本子环当前绑定的RRPP保护实例。
本步骤306、以及后续的步骤307至步骤310是子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点在收到的Hello报文携带第一标识的前提下执行的。
在本步骤306中,确定本子环当前绑定的RRPP保护实例的方式类似上述步骤304确定本子环当前绑定的RRPP保护实例的方式,这里不再赘述。
在本步骤306中,之所以在收到Hello报文时,再次确定本子环当前绑定的RRPP保护实例,原因为:RRPP域中子环动态变化,比如RRPP域中子环增加、减少或故障,这种变化会导致子环绑定的RRPP保护实例发生变化,因此,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点在再次收到Hello报文时,需要再次确定本子环当前绑定的RRPP保护实例,目的是适应这种变化,精确确定出本子环当前绑定的RRPP保护实例。
步骤307,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,比较所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,执行步骤308,如果是,执行步骤309。
如前面步骤204所述,本步骤307中公共端口对应本子环绑定的RRPP保护实例其为前次确定出本子环绑定的RRPP保护实例;这里所说的前次,是指距离当前确定本子环绑定的RRPP保护实例最近的一次。由于本步骤307是在子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点在收到的Hello报文携带第一标识的前提下执行的,基于上述步骤303至步骤305的描述,在当前,所述公共端口对应本子环绑定的RRPP保护实例肯定存在,但有可能因为RRPP域子环的变化,所述公共端口对应本子环绑定的RRPP保护实例与当前确定的本子环当前绑定的RRPP保护实例不一致,并且,所述公共端口对应本子环绑定的RRPP保护实例中数据转发状态为discarding的RRPP保护实例是否存在,以及在存在时,该存在的RRPP保护实例是否与当前确定的本子环当前绑定的RRPP保护实例一致,这都需要经过步骤307中的比较实现。
步骤308,维持本子环当前绑定的RRPP保护实例在所述公共端口的数据转发状态为discarding。之后执行步骤310。
本步骤308是在步骤307的比较结果为一致时执行的。
步骤309,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别所述公共端口对应本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。之后执行步骤310。
本步骤309是在步骤307的比较结果为不一致时执行的。
通过步骤307至步骤309,能够使得在RRPP域中子环动态变化时,保证子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点仅将所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态设置为discarding,而所述公共端口对应其他RRPP保护实例的数据转发状态依然为forwarding。
作为本发明实施例的一个特殊情况,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点如果是第二次收到Hello报文,此时,所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例是不存在的,针对这种情况,会认为所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例与本子环当前绑定的RRPP保护实例不一致,即步骤307的比较结果为不一致,如此执行到步骤309时,可直接将所述公共端口对应本子环当前绑定的每一RRPP保护实例在的数据转发状态从forwarding修改为discarding。
步骤310,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,将本RRPP域中的RRPP环总数量、以及本子环在RRPP域中所有RRPP环的序号携带在所述Hello报文中并修改所述Hello报文中的第一标识为第二标识,将修改后的Hello报文通过连接本子环的边缘端口向本子环主节点的副端口发送。之后执行步骤311。
本实施例中,该第二标识可为RRPP协议中未被规定的、且不同于第一标识的值,比如为0x0002。
这里,通过公共端口收到本子环中主节点发送的携带第一标识的Hello报文的边缘节点或者辅助边缘节点将接收的所述Hello报文中的第一标识修改为第二标识,目的是将本节点公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态即将设置为discarding或者已设置为discarding的消息告知本子环中的主节点。
由于RRPP域中子环动态变化,子环绑定的RRPP保护实例也会动态变化,为适应这种变化,本步骤310在Hello报文中仍然携带本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号,以便子环主节点收到该Hello报文时,正确确定本子环当前绑定的RRPP保护实例。
仍以图1所示RRPP域中的Ring3为例,Ring3中主节点DUT5发送携带第一标识的Hello报文后,Ring3中的辅助边缘节点DUT3会通过公共端口P7收到Ring3中主节点DUT5发送的携带第一标识的Hello报文,执行到本步骤310时,DUT3会将接收的所述Hello报文中的第一标识修改为第二标识,将图1所示RRPP域中RRPP环数量3、以及Ring3在RRPP域中所有RRPP环的序号“3”携带在第一标识修改为第二标识的Hello报文中,通过连接本子环的边缘端口P8发送。
如上所述,在步骤305中Hello报文中携带的不是本RRPP域中的RRPP环总数量、以及本子环在RRPP域中所有RRPP环的序号,而是确定的本子环当前绑定的RRPP保护实例的序号时,则在本步骤310中,将步骤306确定的本子环当前绑定的RRPP保护实例的序号携带在所述Hello报文中,具体实现原理与将本RRPP域中的RRPP环总数量、以及本子环在RRPP域中所有RRPP环的序号来携带在所述Hello报文中的实现原理类似,这里不再赘述。
需要说明的是,上面描述的步骤307至步骤309,与步骤310并不存在固定的时间先后顺序,步骤310可先于步骤307至步骤309执行,也可后于步骤307至步骤309执行,本发明并不具体限定。本实施例只是以步骤310后于步骤307至步骤309执行为例描述。
步骤311,子环的主节点通过副端口接收到Hello报文后,依据该Hello报文携带的本RRPP域中的RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号确定本子环当前绑定的所有RRPP保护实例。
如前描述的,RRPP域中子环动态变化,比如子环增加、减少或故障,这种变化会导致子环绑定的RRPP保护实例发生变化,基于此,子环的主节点每次通过副端口接收到Hello报文后,可以重新确定本子环当前绑定的所有RRPP保护实例,以应对这种变化。
以图1所示的子环Ring3中的DUT为例,当DUT5通过副端口接收到DUT3通过边缘端口P8发送的Hello报文后,从该收到的Hello报文中解析出该Hello报文携带的本RRPP域中的RRPP环总数量、以及本子环在RRPP域中所有RRPP环的序号,按照解析出的信息确定本子环当前绑定的所有RRPP保护实例。
具体地,本步骤311中,确定本子环当前绑定的所有RRPP保护实例的方式类似于上文描述的步骤304确定子环绑定的RRPP保护实例的方式。
以取模规则为例,假如子环Ring3中的主节点DUT5从收到的Hello报文中解析出该Hello报文携带的RRPP域中RRPP环总数量为3、以及本子环Ring3在RRPP域中所有RRPP环的序号为“3”,则DUT5从本主节点配置的本RRPP域保护的所有RRPP保护实例中即实例1至实例4中找出哪些实例的序号与解析出的RRPP域中的RRPP环总数量“3”进行模运算得到与解析出的Ring3的序号“3”对应的模结果,基于上面在步骤304做出的定义,Ring3的序号“3”与模结果“0”对应,则就会计算实例1至实例4中哪些实例的序号与RRPP域中的RRPP环数量“3”进行模运算得到模结果0,结果发现实例3的序号“3”与解析出的RRPP域中的RRPP环总数量“3”进行模运算得到模结果“0”,基于此,DUT5就确定本子环Ring3当前与实例3绑定。
优选地,本实施例中,当边缘节点或者辅助边缘节点发送的用于确定本子环绑定的RRPP保护实例的相关信息为本子环绑定的RRPP保护实例的序号时,则可以直接通过序号确定本子环保护的实例。
步骤312,子环的主节点判断通过副端口接收的Hello报文是否携带第二标识,如果否,执行步骤313,如果是,执行步骤315。
步骤313,子环的主节点将确定出的本子环当前绑定的RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例并记录。之后执行步骤314。
本步骤313是在子环的主节点判断通过副端口接收的Hello报文未携带第二标识的前提下执行的。
步骤314,子环的主节点在接下来通过主端口发送Hello报文的周期到达时,通过本主节点的主端口发送携带第一标识的Hello报文。返回步骤302。
本实施例中,主节点都是周期发送Hello报文的,当子环主节点确定出本子环当前绑定的RRPP保护实例后,如果到达发送Hello报文的周期,则子环主节点就会发送Hello报文,此时该Hello报文携带了第一标识。
步骤315,比较本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为forwarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态为forwarding,如果否,从本主节点副端口对应本子环绑定的数据转发状态为forwarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将本主节点副端口对应该识别出的RRPP保护实例的数据转发状态从forwarding修改为discarding,并针对本子环当前绑定的每一RRPP保护实例,识别本主节点副端口对应该RRPP保护实例的数据转发状态,如果为forwarding,维持forwarding,如果为discarding,判断已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中是否存在该RRPP保护实例,如果是,将本主节点副端口对应该RRPP保护实例的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除该RRPP保护实例,如果否,维持discarding,将该RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录。返回执行上述的步骤314。
本步骤315是在子环的主节点判断通过副端口接收的Hello报文携带第二标识的前提下执行的。
下面举例描述步骤315:
举例:假如在执行步骤315之前,子环主节点设置本主节点副端口对应实例1、实例2的数据转发状态为forwarding;则,
若执行到步骤311时,子环中主节点在步骤311确定出本子环当前绑定的RRPP保护实例为实例1、实例2,基于此,子环中主节点会在步骤315中发现本主节点副端口对应的数据转发状态为forwarding的RRPP保护实例即实例1、实例2与当前确定出的本子环当前绑定的RRPP保护实例即实例1、实例2一致,基于此,子环中主节点会维持本主节点副端口对应实例1、实例2的数据转发状态为forwarding;
若执行到步骤311时,子环中主节点在步骤311确定出本子环当前绑定的RRPP保护实例为实例1、实例3,因为本主节点副端口对应的数据转发状态为forwarding的RRPP保护实例为实例1、实例2,而当前确定出的本子环当前绑定的RRPP保护实例为实例1、实例3,基于此,子环中主节点会在步骤315中发现本主节点副端口对应的数据转发状态为forwarding的RRPP保护实例即实例1、实例2与当前确定出的本子环当前绑定的RRPP保护实例即实例1、实例3不一致,针对这种不一致,子环中主节点就识别出已在本主节点副端口的数据转发状态为forwarding的实例2,其不再属于本子环当前绑定的实例,将该实例2在本主节点副端口的数据转发状态从forwarding修改为discarding,同时,还针对本子环当前绑定的每一RRPP实例,即实例1、实例3,识别本主节点副端口对应该每一RRPP实例的数据转发状态,结果发现本主节点副端口对应实例1的数据转发状态为forwarding,则就继续维持本主节点副端口对应实例1的数据转发状态为forwarding,而本主节点副端口对应该实例3的数据转发状态为discarding,且该实例3不在已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中,则维持本主节点副端口对应实例3的数据转发状态为discarding,并记录该实例3为需要在本主节点的副端口改变数据转发状态的RRPP保护实例。
再举例:假如在执行步骤315之前,子环主节点设置本主节点副端口对应实例1、实例2的数据转发状态为forwarding,且实例5被记录作为需要在本主节点的副端口上改变数据转发状态的RRPP保护实例,实例5此时在本主节点副端口的数据转发状态为discarding,则执行到步骤311时,若子环中主节点确定出的本子环当前绑定的RRPP保护实例为实例1、实例5,因为本主节点副端口对应的数据转发状态为forwarding的RRPP保护实例为实例1、实例2,而当前确定出的本子环当前绑定的RRPP保护实例为实例1、实例5,基于此,在本步骤315中,子环中主节点会发现本主节点副端口对应的数据转发状态为forwarding的RRPP保护实例即实例1、实例2与当前确定出的本子环当前绑定的RRPP保护实例即实例1、实例5不一致,针对这种不一致,子环中主节点就识别出已在本主节点副端口的数据转发状态为转发forwarding的实例2,其不再属于本子环当前绑定的实例,将该实例2在本主节点副端口的数据转发状态从forwarding修改为discarding,同时,还针对本子环当前绑定的每一RRPP实例,即实例1、实例5,识别本主节点副端口对应该每一RRPP实例的数据转发状态,结果发现本主节点副端口对应实例1的数据转发状态为forwarding,则就继续维持本主节点副端口对应实例1的数据转发状态为forwarding,而本主节点副端口对应实例5的数据转发状态为discarding,但已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中存在实例5,则将本主节点副端口对应实例5的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除实例5。
再举例:假如在执行步骤315之前,子环主节点副端口对应任何一个RRPP保护实例的数据转发状态均为discarding,即不存在子环主节点副端口对应数据转发状态为forwarding的RRPP保护实例,但实例1、2被记录作为需要在本主节点的副端口上改变数据转发状态的RRPP保护实例,则执行到步骤311时,若子环中主节点确定出的本子环当前绑定的RRPP保护实例为实例1、实例3,因为本主节点副端口对应的数据转发状态为forwarding的RRPP保护实例不存在,而当前确定出的本子环当前绑定的RRPP保护实例为实例1、实例3,基于此,在本步骤315中,子环中主节点会认为本主节点副端口对应的数据转发状态为forwarding的RRPP保护实例与当前确定出的本子环当前绑定的RRPP保护实例即实例1、实例3不一致,针对这种不一致,子环中主节点就针对本子环当前绑定的每一RRPP实例,即实例1、实例3,识别本主节点副端口对应该每一RRPP实例的数据转发状态,结果发现本主节点副端口对应实例1的数据转发状态为discarding,但已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中存在实例1,就将本主节点副端口对应实例1的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除实例1,至于实例3,本主节点副端口对应实例3的数据转发状态为discarding,但已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中不存在实例3,则就继续维持本主节点副端口对应实例3的数据转发状态为discarding,并记录该实例3为需要在本主节点的副端口改变数据转发状态的RRPP保护实例。至于实例2,继续维持本主节点副端口对应实例2的数据转发状态为discarding。
至此,完成图3所示流程。。
以图1所示RRPP域的子环Ring3为例,按照图3所示流程的步骤301至步骤315,则子环Ring3绑定的实例3的流量拓扑变化具体如图4所示。这相比于在执行本发明之前仅依赖于在主节点的副端口阻塞实例3的流量所形成的如图5所示的流量拓扑,公共链路P6-P7链路的流量转发负担可缓解,避免公共链路P6-P7链路出现流量拥塞,进而避免流量丢包,同时,也能实现RRPP域内不同RRPP保护实例的不同路径转发。
另外,当边缘节点或辅助边缘节点将所述公共端口对应的本子环当前绑定的RRPP保护实例的数据转发状态设置为discarding后,还提供了根据RRPP链路故障进行动态调整RRPP实例转发路径的方法,下面进行描述:
1、公共端口故障,或者当所述公共端口收到连接的公共链路上的传输节点发送的链路故障通知报文时,将所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口,由所述另一公共端口依据被迁移的本子环当前绑定的RRPP保护实例的数据转发状态执行流量转发;
以图1所示RRPP域中的子环Ring3为例,辅助边缘节点DUT3会通过公共端口P6接收到Ring3上主节点DUT5发送的Hello报文,如此,假如图1所示的辅助边缘节点DUT3感知到公共端口P6故障,则DUT3就将公共端口P6对应子环Ring3绑定的各个RRPP保护实例的数据转发状态比如实例3的数据转发状态discarding迁移到DUT3的另一公共端口P10,由另一公共端口P10依据被迁移的各个RRPP保护实例的数据转发状态执行各个RRPP保护实例的流量转发。
2,当感知到本子环不完整时,识别所述公共端口对应本子网当前绑定的每一RRPP保护实例的数据转发状态,如果为discarding,将该discarding修改为forwarding,如果为forwarding,继续维持forwarding。
其中,所述感知到子环不完整包括以下任一情况:
所述公共端口接收到本子环中除连接的公共链路上的传输节点之外的其他传输节点发送的链路故障通知报文Link-down报文;
所述公共端口接收到本子环中主节点发送的转发数据库FDB通知报文(Common-flush-fdb)报文;
所述公共端口超时未接收到本子环中主节点发送的Hello报文。
3、在将所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口之后,如果通过该另一公共端口接收到主环中传输节点发送的链路故障通知(Link-down)报文时,识别所述另一公共端口上RRPP保护实例的数据转发状态,如果为discarding,将discarding修改为forwarding,如果为forwarding,继续维持forwarding。
以图1所示RRPP域中的Ring3为例,在Ring3中的辅助边缘节点DUT3感知到公共端口P6故障,且将公共端口P6对应Ring3绑定的各个RRPP保护实例的数据转发状态比如实例3的discarding等迁移到DUT3的另一公共端口P10后,当DUT3通过公共端口P10收到DUT4发送的Link-down报文即来自主环的Link-down报文,DUT3都会逐一识别从公共端口P6迁移至公共端口P10上各个RRPP保护实例的数据转发状态,如果识别出迁移的实例3的数据转发状态为discarding,则将discarding修改为forwarding,以保证实例3的流程正常转发。
4,当所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口之后,所述另一公共端口感知到本子环不完整时,识别所述另一公共端口上RRPP保护实例的数据转发状态,如果为discarding,将discarding修改为forwarding,如果为forwarding,继续维持forwarding;
其中,所述另一公共端口感知到本子环不完整包括以下任一情况:
所述另一公共端口接收到本子环中传输节点发送的链路故障通知报文;
所述另一公共端口接收到本子环中主节点发送的转发数据库FDB通知报文;
所述另一公共端口超时未接收到本子环中主节点发送的Hello报文。
5、当RRPP链路故障恢复后,亦恢复动态调整的RRPP实例转发路径。
基于同样的构思,本申请还提出了如下的装置:
参见图6,图6为本申请实施例提供的装置结构图。该装置应用于子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,包括:
识别单元,用于识别所述Hello报文是否携带第一标识,子环中主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态的准备;
第一处理单元,用于在所述识别单元的识别结果为否时,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点发送携带第一标识的Hello报文;
第二处理单元,用于在所述识别单元的识别结果为是时,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并修改所述Hello报文中的第一标识为第二标识,将修改后的Hello报文通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点将其副端口对应本子环绑定的RRPP保护实例的数据转发状态从阻塞discarding修改为转发forwarding或维持为forwarding或从forwarding修改为discarding,并比较所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding,如果否,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。
优选地,所述第一处理单元进一步在将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送之前,判断本RRPP域中的RRPP保护实例总数量以及RRPP环总数量是否均为两个以上,如果是,继续执行将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送。
优选地,所述第一处理单元在将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文之前,进一步从本RRPP域的RRPP保护实例中确定本子环当前绑定的RRPP保护实例;
所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:
本子环当前绑定的RRPP保护实例的序号;或者,
本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号。
优选地,所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号。
优选地,所述第一处理单元通过以下步骤从本RRPP域的RRPP保护实例中确定本子环当前绑定的RRPP保护实例包括:
对本RRPP域中所有RRPP环按照预定的环排列顺序进行排序;
对本RRPP域中所有RRPP保护实例按照预定的实例排列顺序依次进行排序;
按照取模规则从本RRPP域中的所有RRPP保护实例中确定出哪些RRPP保护实例的序号与本RRPP域中的RRPP环总数量进行取模运算得到的模结果与本子环的序号对应,将对应的RRPP保护实例确定为本子环当前绑定的RRPP保护实例。
优选地,该装置进一步包括:
第一故障单元,用于当所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding时,
如果所述公共端口故障,或者所述公共端口收到连接的公共链路上的传输节点发送的链路故障通知报文,将所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口,由所述另一公共端口依据被迁移的本子环当前绑定的RRPP保护实例的数据转发状态执行流量转发;
如果感知到本子环不完整,识别所述公共端口对应本子网当前绑定的每一RRPP保护实例的数据转发状态,如果为discarding,将该discarding修改为forwarding,如果为forwarding,继续维持forwarding;
其中,感知到子环不完整包括以下任一情况:
所述公共端口接收到本子环中除连接的公共链路上的传输节点之外的其他传输节点发送的链路故障通知报文;
所述公共端口接收到本子环中主节点发送的转发数据库FDB通知报文;
所述公共端口超时未接收到本子环中主节点发送的Hello报文。
优选地,该装置进一步包括:
第二故障单元,用于在所述第一故障单元将所述公共端口对应的本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口之后,当通过所述另一公共端口接收到主环中传输节点发送的链路故障通知报文时,或者,当通过所述另一公共端口感知到子环不完整时,识识别所述另一公共端口上被迁移的RRPP保护实例的数据转发状态,如果为discarding,将discarding修改为forwarding,如果为forwarding,继续维持forwarding;
其中,所述另一公共端口感知到本子环不完整包括以下任一情况:
所述另一公共端口接收到本子环中传输节点发送的链路故障通知报文;
所述另一公共端口接收到本子环中主节点发送的转发数据库FDB通知报文;
所述另一公共端口超时未接收到本子环中主节点发送的Hello报文。
至此,完成图6所示的装置描述。
参见图7,图7为本发明实施例提供的另一装置结构图。该装置应用于子环中的主节点,包括:
接收单元,用于通过本主节点的副端口接收Hello报文;
第一处理单元,用于依据所述Hello报文携带的用于确定本子环当前绑定的RRPP保护实例的相关信息确定本子环当前绑定的RRPP保护实例,并在接下来发送Hello报文的周期到达时,通过本主节点的主端口发送携带第一标识的Hello报文;本主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态的准备;
第二处理单元,用于当所述接收单元接收的所述Hello报文未携带第二标识时,将所述第一处理单元确定出的本子环当前绑定的RRPP保护实例作为需要在本主节点的副端口上改变数据转发状态的RRPP保护实例记录;以及当所述接收单元接收的所述Hello报文携带第二标识时,比较本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为转发forwarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态为forwarding,如果否,从本主节点副端口对应本子环绑定的数据转发状态为forwarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将本主节点副端口对应该识别出的RRPP保护实例的数据转发状态从forwarding修改为阻塞discarding,并针对本子环当前绑定的每一RRPP保护实例,识别本主节点副端口对应该RRPP保护实例的数据转发状态,如果为forwarding,维持forwarding,如果为discarding,判断已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中是否存在该RRPP保护实例,如果是,将本主节点副端口对应该RRPP保护实例的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除该RRPP保护实例,如果否,维持discarding,将该RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录。
优选地,所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:本子环当前绑定的RRPP保护实例的序号;或者,本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号;
其中,当所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号时,所述第一处理单元确定本子环当前绑定的RRPP保护实例包括:
从收到的Hello报文中解析出该Hello报文携带的RRPP环总数量、以及本子环的序号;
按照取模规则从本RRPP域中的所有RRPP保护实例中确定出哪些RRPP保护实例的序号与解析出的RRPP环总数量进行取模运算得到的模结果与本子环的序号对应,将找出的RRPP保护实例确定为本子环当前绑定的RRPP保护实例。
至此,完成图7所示的装置。
由以上技术方案可以看出,本发明中,子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点通过将所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态设置为discarding,这相比于在执行本发明之前仅依赖于在主节点的副端口阻塞所有RRPP保护实例的流量所形成的流量拓扑,能够实现在公共链路上合理分配流量,避免公共链路出现流量拥塞,进而避免流量丢包,同时,也能实现RRPP域内不同RRPP保护实例的不同路径转发。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (18)
1.一种快速环网保护协议RRPP负载分担方法,其特征在于,该方法应用于子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,包括:
识别所述Hello报文是否携带第一标识,子环中主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态的准备;
如果否,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点发送携带第一标识的Hello报文;
如果是,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并修改所述Hello报文中的第一标识为第二标识,将修改后的Hello报文通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点将其副端口对应本子环当前绑定的RRPP保护实例的数据转发状态从阻塞discarding修改为转发forwarding或维持为forwarding或从forwarding修改为discarding,并比较所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,所述公共端口对应本子环绑定的RRPP保护实例为距离当前确定本子环绑定的RRPP保护实例最近的一次确定出本子环绑定的RRPP保护实例,如果是,维持所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding,如果否,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。
2.根据权利要求1所述的方法,其特征在于,在识别出所述Hello报文未携带第一标识之后,且在将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送之前,包括:
判断本RRPP域中的RRPP保护实例总数量以及RRPP环总数量是否均为两个以上,如果是,继续执行将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送。
3.根据权利要求1所述的方法,其特征在于,在将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送之前,进一步包括:
从本RRPP域的RRPP保护实例中确定本子环当前绑定的RRPP保护实例;
所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:
本子环当前绑定的RRPP保护实例的序号;或者,
本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号。
4.根据权利要求1所述的方法,其特征在于,所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:
本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号。
5.根据权利要求3所述的方法,其特征在于,所述从本RRPP域的RRPP保护实例中确定本子环当前绑定的RRPP保护实例包括:
对本RRPP域中所有RRPP环按照预定的环排列顺序进行排序;
对本RRPP域中所有RRPP保护实例按照预定的实例排列顺序依次进行排序;
按照取模规则从本RRPP域中的所有RRPP保护实例中确定出哪些RRPP保护实例的序号与本RRPP域中的RRPP环总数量进行取模运算得到的模结果与本子环的序号对应,将对应的RRPP保护实例确定为本子环当前绑定的RRPP保护实例。
6.根据权利要求1所述的方法,其特征在于,当所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding时,该方法进一步包括:
当所述公共端口故障,或者当所述公共端口收到连接的公共链路上的传输节点发送的链路故障通知报文时,将所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口,由所述另一公共端口依据被迁移的本子环当前绑定的RRPP保护实例的数据转发状态执行流量转发;
当感知到本子环不完整时,识别所述公共端口对应本子网当前绑定的每一RRPP保护实例的数据转发状态,如果为discarding,将该discarding修改为forwarding,如果为forwarding,继续维持forwarding;
其中,所述感知到子环不完整包括以下任一情况:
所述公共端口接收到本子环中除连接的公共链路上的传输节点之外的其他传输节点发送的链路故障通知报文;
所述公共端口接收到本子环中主节点发送的转发数据库FDB通知报文;
所述公共端口超时未接收到本子环中主节点发送的Hello报文。
7.根据权利要求6所述的方法,其特征在于,在所述公共端口对应的本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口之后,该方法进一步包括:
当所述另一公共端口接收到主环中传输节点发送的链路故障通知报文时,或者,当所述另一公共端口感知到本子环不完整时,识别所述另一公共端口上被迁移的RRPP保护实例的数据转发状态,如果为discarding,将discarding修改为forwarding,如果为forwarding,继续维持forwarding;
其中,所述另一公共端口感知到本子环不完整包括以下任一情况:
所述另一公共端口接收到本子环中传输节点发送的链路故障通知报文;
所述另一公共端口接收到本子环中主节点发送的转发数据库FDB通知报文;
所述另一公共端口超时未接收到本子环中主节点发送的Hello报文。
8.一种快速环网保护协议RRPP负载分担方法,其特征在于,包括:
通过本主节点的副端口接收Hello报文;
所述本主节点依据所述Hello报文携带的用于确定本子环当前绑定的RRPP保护实例的相关信息确定本子环当前绑定的RRPP保护实例,并在接下来发送Hello报文的周期到达时,通过本主节点的主端口发送携带第一标识的Hello报文;本主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态的准备;
并且,在所述Hello报文未携带第二标识时,将确定出的本子环当前绑定的RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录;
在所述Hello报文携带第二标识时,比较本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为转发forwarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态为forwarding,如果否,从本主节点副端口对应本子环绑定的数据转发状态为forwarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将本主节点副端口对应该识别出的RRPP保护实例的数据转发状态从forwarding修改为阻塞discarding,并针对本子环当前绑定的每一RRPP保护实例,识别本主节点副端口对应该RRPP保护实例的数据转发状态,如果为forwarding,维持forwarding,如果为discarding,判断已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中是否存在该RRPP保护实例,如果是,将本主节点副端口对应该RRPP保护实例的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除该RRPP保护实例,如果否,维持discarding,将该RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录;
边缘节点或者辅助边缘节点比较公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,所述公共端口对应本子环绑定的RRPP保护实例为距离当前确定本子环绑定的RRPP保护实例最近的一次确定出本子环绑定的RRPP保护实例,如果是,维持所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding,如果否,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。
9.根据权利要求8所述的方法,其特征在于,所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:本子环当前绑定的RRPP保护实例的序号;或者,本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号;
其中,当所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号时,所述确定本子环当前绑定的RRPP保护实例包括:
从收到的Hello报文中解析出该Hello报文携带的RRPP环总数量、以及本子环的序号;
按照取模规则从本RRPP域中的所有RRPP保护实例中确定出哪些RRPP保护实例的序号与解析出的RRPP环总数量进行取模运算得到的模结果与本子环的序号对应,将找出的RRPP保护实例确定为本子环当前绑定的RRPP保护实例。
10.一种快速环网保护协议RRPP负载分担装置,其特征在于,该装置应用于子环中通过公共端口收到本子环中主节点发送的Hello报文的边缘节点或者辅助边缘节点,包括:
识别单元,用于识别所述Hello报文是否携带第一标识,子环中主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态的准备;
第一处理单元,用于在所述识别单元的识别结果为否时,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点发送携带第一标识的Hello报文;
第二处理单元,用于在所述识别单元的识别结果为是时,将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并修改所述Hello报文中的第一标识为第二标识,将修改后的Hello报文通过连接本子环的边缘端口向本子环主节点的副端口发送,以使本子环主节点将其副端口对应本子环当前绑定的RRPP保护实例的数据转发状态从阻塞discarding修改为转发forwarding或维持为forwarding或从forwarding修改为discarding,并比较所述公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,所述公共端口对应本子环绑定的RRPP保护实例为距离当前确定本子环绑定的RRPP保护实例最近的一次确定出本子环绑定的RRPP保护实例,如果是,维持所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding,如果否,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。
11.根据权利要求10所述的装置,其特征在于,所述第一处理单元进一步在将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送之前,判断本RRPP域中的RRPP保护实例总数量以及RRPP环总数量是否均为两个以上,如果是,继续执行将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文中并通过连接本子环的边缘端口向本子环主节点的副端口发送。
12.根据权利要求10所述的装置,其特征在于,所述第一处理单元在将用于确定本子环当前绑定的RRPP保护实例的相关信息携带在所述Hello报文之前,进一步从本RRPP域的RRPP保护实例中确定本子环当前绑定的RRPP保护实例;
所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:
本子环当前绑定的RRPP保护实例的序号;或者,
本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号。
13.根据权利要求10所述的装置,其特征在于,所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号。
14.根据权利要求12所述的装置,其特征在于,所述第一处理单元通过以下步骤从本RRPP域的RRPP保护实例中确定本子环当前绑定的RRPP保护实例包括:
对本RRPP域中所有RRPP环按照预定的环排列顺序进行排序;
对本RRPP域中所有RRPP保护实例按照预定的实例排列顺序依次进行排序;
按照取模规则从本RRPP域中的所有RRPP保护实例中确定出哪些RRPP保护实例的序号与本RRPP域中的RRPP环总数量进行取模运算得到的模结果与本子环的序号对应,将对应的RRPP保护实例确定为本子环当前绑定的RRPP保护实例。
15.根据权利要求10所述的装置,其特征在于,该装置进一步包括:
第一故障单元,用于当所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding时,
如果所述公共端口故障,或者所述公共端口收到连接的公共链路上的传输节点发送的链路故障通知报文,将所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口,由所述另一公共端口依据被迁移的本子环当前绑定的RRPP保护实例的数据转发状态执行流量转发;
如果感知到本子环不完整,识别所述公共端口对应本子网当前绑定的每一RRPP保护实例的数据转发状态,如果为discarding,将该discarding修改为forwarding,如果为forwarding,继续维持forwarding;
其中,感知到子环不完整包括以下任一情况:
所述公共端口接收到本子环中除连接的公共链路上的传输节点之外的其他传输节点发送的链路故障通知报文;
所述公共端口接收到本子环中主节点发送的转发数据库FDB通知报文;
所述公共端口超时未接收到本子环中主节点发送的Hello报文。
16.根据权利要求15所述的装置,其特征在于,该装置进一步包括:
第二故障单元,用于在所述第一故障单元将所述公共端口对应的本子环当前绑定的RRPP保护实例的数据转发状态迁移到本节点的另一公共端口之后,当通过所述另一公共端口接收到主环中传输节点发送的链路故障通知报文时,或者,当通过所述另一公共端口感知到子环不完整时,识识别所述另一公共端口上被迁移的RRPP保护实例的数据转发状态,如果为discarding,将discarding修改为forwarding,如果为forwarding,继续维持forwarding;
其中,所述另一公共端口感知到本子环不完整包括以下任一情况:
所述另一公共端口接收到本子环中传输节点发送的链路故障通知报文;
所述另一公共端口接收到本子环中主节点发送的转发数据库FDB通知报文;
所述另一公共端口超时未接收到本子环中主节点发送的Hello报文。
17.一种快速环网保护协议RRPP负载分担装置,其特征在于,主节点包括接收装置、第一处理单元和第二处理单元:
接收单元,用于通过本主节点的副端口接收Hello报文;
第一处理单元,用于依据所述Hello报文携带的用于确定本子环当前绑定的RRPP保护实例的相关信息确定本子环当前绑定的RRPP保护实例,并在接下来发送Hello报文的周期到达时,通过本主节点的主端口发送携带第一标识的Hello报文;本主节点发送的Hello报文携带第一标识,表示子环中主节点已作好改变本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态的准备;
第二处理单元,用于当所述接收单元接收的所述Hello报文未携带第二标识时,将所述第一处理单元确定出的本子环当前绑定的RRPP保护实例作为需要在本主节点的副端口上改变数据转发状态的RRPP保护实例记录;以及当所述接收单元接收的所述Hello报文携带第二标识时,比较本主节点副端口对应本子环绑定的RRPP保护实例的数据转发状态为转发forwarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,如果是,维持本主节点副端口对应本子环当前绑定的RRPP保护实例的数据转发状态为forwarding,如果否,从本主节点副端口对应本子环绑定的数据转发状态为forwarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将本主节点副端口对应该识别出的RRPP保护实例的数据转发状态从forwarding修改为阻塞discarding,并针对本子环当前绑定的每一RRPP保护实例,识别本主节点副端口对应该RRPP保护实例的数据转发状态,如果为forwarding,维持forwarding,如果为discarding,判断已记录的需要在本主节点的副端口改变数据转发状态的RRPP保护实例中是否存在该RRPP保护实例,如果是,将本主节点副端口对应该RRPP保护实例的数据转发状态从discarding修改为forwarding,并从已记录的需要在本主节点的副端口上改变数据转发状态的RRPP保护实例中删除该RRPP保护实例,如果否,维持discarding,将该RRPP保护实例作为需要在本主节点的副端口改变数据转发状态的RRPP保护实例记录;
所述装置还包括边缘节点或者辅助边缘节点,边缘节点或者辅助边缘节点比较公共端口对应本子环绑定的RRPP保护实例的数据转发状态为discarding的RRPP保护实例是否与本子环当前绑定的RRPP保护实例一致,所述公共端口对应本子环绑定的RRPP保护实例为距离当前确定本子环绑定的RRPP保护实例最近的一次确定出本子环绑定的RRPP保护实例,如果是,维持所述公共端口对应本子环当前绑定的RRPP保护实例的数据转发状态为discarding,如果否,从所述公共端口对应本子环绑定的数据转发状态为discarding的RRPP保护实例中识别出当前不与本子环绑定的RRPP保护实例,将所述公共端口对应该识别出的RRPP保护实例的数据转发状态从discarding修改为forwarding,并识别本子环当前绑定的每一RRPP保护实例的数据转发状态,如果为forwarding,将forwarding修改为discarding,如果为discarding,继续维持discarding。
18.根据权利要求17所述的装置,其特征在于,所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括:本子环当前绑定的RRPP保护实例的序号;或者,本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号;
其中,当所述用于确定本子环当前绑定的RRPP保护实例的相关信息包括本RRPP域中RRPP环总数量、以及本子环在本RRPP域中所有RRPP环的序号时,所述第一处理单元确定本子环当前绑定的RRPP保护实例包括:
从收到的Hello报文中解析出该Hello报文携带的RRPP环总数量、以及本子环的序号;
按照取模规则从本RRPP域中的所有RRPP保护实例中确定出哪些RRPP保护实例的序号与解析出的RRPP环总数量进行取模运算得到的模结果与本子环的序号对应,将找出的RRPP保护实例确定为本子环当前绑定的RRPP保护实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310676607.7A CN104717147B (zh) | 2013-12-11 | 2013-12-11 | 快速环网保护协议负载分担方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310676607.7A CN104717147B (zh) | 2013-12-11 | 2013-12-11 | 快速环网保护协议负载分担方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104717147A CN104717147A (zh) | 2015-06-17 |
CN104717147B true CN104717147B (zh) | 2018-06-15 |
Family
ID=53416125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310676607.7A Active CN104717147B (zh) | 2013-12-11 | 2013-12-11 | 快速环网保护协议负载分担方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104717147B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107070721B (zh) * | 2017-04-27 | 2020-11-03 | 新华三技术有限公司 | 一种虚拟局域网保护方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628654B1 (en) * | 1999-07-01 | 2003-09-30 | Cisco Technology, Inc. | Dispatching packets from a forwarding agent using tag switching |
CN101141367A (zh) * | 2007-09-20 | 2008-03-12 | 华为技术有限公司 | 提高快速环网可靠性的方法、系统和节点设备 |
CN103414591A (zh) * | 2013-08-19 | 2013-11-27 | 杭州华三通信技术有限公司 | 一种端口故障恢复时的快速收敛方法和系统 |
-
2013
- 2013-12-11 CN CN201310676607.7A patent/CN104717147B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628654B1 (en) * | 1999-07-01 | 2003-09-30 | Cisco Technology, Inc. | Dispatching packets from a forwarding agent using tag switching |
CN101141367A (zh) * | 2007-09-20 | 2008-03-12 | 华为技术有限公司 | 提高快速环网可靠性的方法、系统和节点设备 |
CN103414591A (zh) * | 2013-08-19 | 2013-11-27 | 杭州华三通信技术有限公司 | 一种端口故障恢复时的快速收敛方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104717147A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9665530B2 (en) | Method and system for implementing elastic network interface and interconnection | |
US8588060B2 (en) | E-spring (G.8032) interworking to provide access protection | |
CN102474454B (zh) | 节点间链路聚合系统和方法 | |
CN105871674B (zh) | 环保护链路故障保护方法、设备及系统 | |
EP2911355B1 (en) | Method and device for flow path negotiation in link aggregation group | |
CN103795570B (zh) | 环形拓扑的堆叠交换机系统的单播报文恢复方法及装置 | |
JP7092813B2 (ja) | パケット伝送方法及び装置 | |
CN104125088A (zh) | Drni中同一端内系统之间交互信息的方法和系统 | |
CN104767680B (zh) | 路由快速切换的方法和装置 | |
EP2804343B1 (en) | Method for mapping a network topology request to a physical network, computer program product, mobile communication system, and network configuration platform | |
CN101741670A (zh) | 一种多环以太网的保护方法 | |
CN104009903B (zh) | 弹性分组环环网中的流量转发方法及装置 | |
CN101197733A (zh) | 网络连通性的自动检测方法及装置 | |
CN104518936B (zh) | 链路动态聚合方法和装置 | |
Lee et al. | Efficient ethernet ring mesh network design | |
WO2013127414A1 (en) | Technique for bundling in link aggregation | |
US20100165831A1 (en) | Load balancing and fault protection in aggregation networks | |
CN103200107B (zh) | 一种报文的传输方法和设备 | |
CN102014035A (zh) | 基于以太环网的组网方法及装置 | |
CN103580932A (zh) | 基于以太网线性保护倒换的状态切换方法及系统 | |
CN104717147B (zh) | 快速环网保护协议负载分担方法和装置 | |
CN102215165B (zh) | 一种相切环网的报文处理方法及以太网交换机 | |
CN102209001A (zh) | 以太网线性保护方法和装置 | |
CN102014006B (zh) | 一种混合网络的以太环网保护倒换方法 | |
WO2015032203A1 (zh) | 网元和环网保护的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |