基于rrpp的环网保护方法及装置的制造方法_2

文档序号:9828041阅读:来源:国知局
端口(Sec),这样,子环的Hello报文的转发路径是节点G —节点B —节点A —节点C —节点D —节点G。只有当主环中路径为节点B-节点D的链路以及路径为节点B-节点A-节点C-节点D的链路都Down 了,子环的主节点G的副端口才会因为超时没有收到本节点发出的Hell报文而被开启。
[0049]RRPP组网多子环的情况如图6所示,子环I和子环2双归属于主环,当主环中路径为节点B-节点D的链路以及路径为节点B-节点A-节点C-节点D的链路都Down 了时,子环I的主节点E和子环2的主节点F的副端口都被开启,此时,数据报文沿着节点E —节点B—节点F —节点D —节点E的方向成环。
[0050]如图7所示,边缘节点B会每隔0.5s分别通过本节点的两个公共端口发送Edge-Hell0(边缘握手)报文,以便对边缘节点B与辅助边缘节点D之间的主环链路(即,路径为节点B-节点A-节点C-节点D的链路和路径为节点B-节点D的链路)进行检测。辅助边缘节点D接收Edge-Hell0报文,如果辅助边缘节点D在2s内没有收到Edge-Hello报文,则表示边缘节点B与辅助边缘节点D之间的主环链路Down( S卩,路径为节点B-节点A-节点C-节点D的链路和路径为节点B-节点D的链路均Down),辅助边缘节点D会沿子环方向发送Major-Fault (主环故障)报文,边缘节点B收到Major-Fault报文后会阻塞本节点的边缘端口,这样可以防止子环成环。
[0051]由上可以看出,当主环链路Down时,如图6所示,主环上边缘节点B与辅助边缘节点之D间的两条链路:路径为节点B-节点D的链路和路径为节点B-节点A-节点C-节点D的链路的状态均为Down时,子环的主节点E在预定时间段(假设记为T)内没有从副端口上收到本节点发出的He I 1报文,才会开启副端口,这样会使得某些节点间的数据流中断一段时间(最长达到T时间),例如,节点E与节点C之间的数据流中断,从而导致子环不能快速收敛。
[0052]为了解决现有技术中存在的子环收敛较慢的问题,本申请以下实施例中提供了一种基于RRPP的环网保护方法,以及一种可以应用该方法的基于RRPP的环网保护装置。
[0053]如图8所示,环网中包括:主环和至少一个子环(图8中只示出了一个子环)。
[0054]本申请以下实施例中引入了以下概念:
[0055]节点ID(IDentity,标识):主环上的每一个节点都具有自己的唯一标识,可以配置节点的名称或者MAC(Media Access Control,媒体访问控制)地址作为该节点的节点ID0
[0056]主链路和备链路:主环上边缘节点与辅助边缘节点之间有两条链路,其中,主环上与子环重叠的链路称为备链路,主环上的另一条链路称为主链路。如图8所示,路径为节点B-节点D-节点F的链路为备链路,路径为节点B-节点A-节点C-节点E-节点F的链路为主链路。
[0057]边缘节点和辅助边缘节点的主端口和副端口:边缘节点和辅助边缘节点上接入主链路的公共端口为主端口,接入备链路的公共端口为副端口。如图8所示,边缘节点B的Pri端口为主端口、Sec端口为副端口,辅助边缘节点F的Pri端口为主端口、Sec端口为副端口。
[0058]节点的类型:在边缘节点上将主环上的节点归为三类:主链路节点,即主链路上除边缘节点和辅助边缘节点以外的节点,如图8中的节点A、节点C、节点E ;备链路节点,SP备链路上除边缘节点和辅助边缘节点以外的节点,如图8中的节点D ;辅助边缘节点,如图8中的节点F。
[0059]另外,本申请以下实施例中还对RRPP协议报文进行了以下扩展:
[0060](I)在现有的LinkDown报文中携带发出该LinkDown报文的节点的节点ID,且LinkDown报文能够在边缘节点上送CPU处理并转发;
[0061](2)新增了 Link Query (链路查询)报文和Link Reply (链路应答)报文,即,边缘节点主动查询主链路和备链路的状态时,分别通过主端口和副端口发送Link Query报文,该Link Query报文中携带的VLAN为主控制VLAN、源MAC地址为边缘节点的MAC地址、目的MAC地址为一种特殊的MAC地址,用于指示只有辅助边缘节点才需要上送CPU处理LinkQuery报文;途径的节点收到Link Query报文之后直接进行转发;辅助边缘节点收到LinkQuery报文后,上送CPU进行处理,通过该Link Query报文的入端口回复Link Reply报文,其中,该Link Reply报文中携带的VLAN为主控制VLAN、目的MAC地址为边缘节点的MAC地址。
[0062]如图9所示,本申请实施例的基于RRPP的环网保护方法包括以下步骤:
[0063]步骤S102,边缘节点检测本节点与辅助边缘节点之间的主链路和备链路的状态,之后执行步骤S104 ;
[0064]当RRPP环上的任一节点的一个端口 Down时,该节点会从另一个端口发送LinkDown报文,本申请以下实施例中,边缘节点可以利用该机制,检测主链路和备链路的状态。具体的,在步骤S102中,边缘节点检测主链路和备链路的状态的方法如图10所示,包括以下步骤:
[0065]步骤S202,判断是否接收到了 LinkDown报文,若是,则执行步骤S204,否则,返回步骤S202 ;
[0066]其中,LinkDown报文中携带有发出该LinkDown报文的节点的节点ID ;
[0067]步骤S204,获取该LinkDown报文中携带的节点ID ;
[0068]步骤S206,根据获取到的节点ID判断发出该LinkDown报文的节点是否是主链路节点,若是,则执行步骤S208,否则,执行步骤S214 ;
[0069]步骤S208,确定主链路的状态为Down ;
[0070]具体的,置位主链路节点标示MasterNode_flag为1,用以记录主链路的状态为Down0
[0071]步骤S210,判断备链路的状态是否Down,若是,则执行步骤S212,否则,返回步骤S202 ;
[0072]具体的,判断备链路节点标示SeCN0de_falg是否置位为1,若为1,则备链路状态为 Down。
[0073]步骤S212,执行步骤S104 ;
[0074]步骤S214,根据获取到的节点ID判断发出该LinkDown报文的节点是否是备链路节点,若是,则执行步骤S216,否则,执行步骤S220 ;
[0075]步骤S216,确定备链路的状态为Down ;
[0076]具体的,置位备链路节点标示SecNode_flag为1,用以记录备链路的状态为Down。
[0077]步骤S218,判断主链路的状态是否Down,若是,则执行步骤S212,否则,返回步骤S202 ;
[0078]步骤S220,根据获取到的节点ID判断发出该LinkDown报文的节点是否是辅助边缘节点,若是,则执行步骤S222,否则,结束本流程;
[0079]步骤S222,判断该LinkDown报文的入端口是主端口还是副端口,若是主端口,则执行步骤S216,若是副端口,则执行步骤S208。
[0080]另外,还有一种情况是:边缘节点本身的端口故障,此时,若检测到本节点的主端口故障,则确定主链路的状态为Down ;若检测到本节点的副端口故障,则确定备链路的状态为Down。
[0081]步骤S104,当检测到主链路和备链路的状态均为Down时,边缘节点阻塞边缘端口,并通过边缘端口向子环的主节点发送LinkDown报文,用于通知子环的主节点开启副端口。子环的主节点收到LinkDown报文后,会以为子环发生了故障,则立即开启副端口。
[0082]其中,端口被阻塞后,该阻塞的端口收到报文后会丢弃该报文,并且,不会继续转发该报文。
[0083]后续,当主链路或备链路变为Up时,子环的主节点会收到本节点发出的Hello报文,并发送Complete-Flush-FDB (完整刷新转发表项)报文,以通知子环和主环上的各个节点删除在边缘节点与辅助边缘节点之间的主链路和备链路的状态均为Down时学习到的MAC地址表项。本申请实施例中,边缘节点可以利用该机制,在接收到子环的主节点发来的Complete-Flush-FDB报文之后,开启本节点的边缘端口,并分别通过主端口和副端口发送Link Query报文;辅助边缘节点在接收到边缘节点发来的Link Query报文之后,通过该Link Query报文的入端口回复Link Reply报文;边缘节点接收到辅助边缘节点回复的Link Reply报文之后,在该Link Reply报文的入端口是主端口时,确定主链路的状态为Up,在该Link Reply报文的入端口是副端口时,确定备链路的状态为Up。
[0084]本申请上述实施例的方法中,边缘节点检测出主链路和备链路的状态都为Down后,此时,主环故障,边缘节点会阻塞边缘端口并主动通过发送Li
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1