一种ecmp方式下链路故障的保护切换方法和设备的制作方法

文档序号:7777053阅读:261来源:国知局
一种ecmp方式下链路故障的保护切换方法和设备的制作方法
【专利摘要】本发明公开了一种ECMP方式下链路故障的保护切换方法和设备,该方法包括:本端设备通过遍历第一flow?hash表得到flow?hash值;本端设备通过flow?hash值对应的路径向对端设备发送第一CCM;对端设备利用第一CCM的接收情况确定所述flow?hash值对应的路径是否故障;在所述flow?hash值对应的路径发生故障时,本端设备接收来自所述对端设备的第二CCM;所述本端设备从第二flow?hash表中删除故障路径对应的flow?hash值;所述本端设备利用业务报文的信息从所述第二flow?hash表中匹配到对应的flow?hash值,并通过所述flow?hash值对应的路径将所述业务报文发送给所述对端设备。本发明实施例中,缩短了故障转移时间,避免流量出现断流,保证业务不中断。
【专利说明】一种ECMP方式下链路故障的保护切换方法和设备
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其是涉及一种ECMP (Equal Cost Multiple Paths,等价多路径)方式下链路故障的保护切换方法和设备。
【背景技术】
[0002]SPB (Shortest Path Bridging,最短路径桥)支持两种不同的途径实现流量负载分担。(I)ECT (Equal Cost Tree,等价路径树)VLANs (Virtual Local AreaNetwork,虚拟局域网):通过将服务实例映射至B-VLAN (运营商虚拟局域网),继而根据该B-VLAN所指定的ECT算法从SPT (Shortest Path Tree,最短路径树)集合中选择一颗SPT树,以使不同的服务实例可以映射至不同的B-VLAN,从而实现流量的负载分担。(2) ECMP:这种ECMP方式下,单播流量在转发时从一组等价路径中动态选择一条路径。其中,该ECMP提供了一种只用一个B-VLAN将流量在一组等价路径上进行负载分担的办法,且该ECMP通过使用HASH算法实现基于流的负载分担,即可以根据源MAC (Media Access Control,介质访问控制)、目的MAC、用户VLAN等信息进行负载分担。
[0003]当设备支持流分类时,ECMP使用HASH算法实现基于流的负载分担。具体的,在控制平面计算时,生成存在多条等价路径的单播转发表项;在数据平面转发时,根据特定HASH算法从多条等价路径中选择一个等价路径。
[0004]现有技术中,当连接两个设备的某条路径上的某链路或某中间设备出现故障时,在拓扑重新收敛前,即使网络中存在其它等价路径可用,故障路径的业务也将出现中断,而拓扑收敛的时间取决于SPB网络中节点数量、拓扑类型、故障类型、故障在拓扑中的位置等因素,因此业务恢复时间较长。
[0005]如图1所不的存在多条等价路径的组网不意图,设备A和设备E之间存在二条等价路径,分别为路径I (设备A、设备B、设备E)、路径2 (设备A、设备C、设备E)、路径3 (设备A、设备D、设备E)。在ECMP方式下,用户流量从设备A进入SPB网络到达设备E时,将在三条等价路径上进行负载分担。如果路径2上链路或设备出现故障,在拓扑重新收敛前,所有经过路径2的流量出现断流。

【发明内容】

[0006]本发明实施例提供一种ECMP方式下链路故障的保护切换方法和设备,以在等价路径故障时,避免该等价路径上的流量出现断流,保证业务不中断。
[0007]为达到上述目的,本发明实施例提供一种等价多路径ECMP方式下链路故障的保护切换方法,该方法应用于包括本端设备和对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,所述方法包括以下步骤:
[0008]所述本端设备通过遍历第一 flow hash表得到flow hash值,所述第一 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径;
[0009]所述本端设备通过flow hash值对应的路径向对端设备发送第一连接检测报文CCM,所述第一 CCM中携带所述flow hash值;由对端设备利用携带flow hash值的第一 CCM的接收情况确定所述flow hash值对应的路径是否故障;
[0010]在所述flow hash值对应的路径发生故障时,所述本端设备接收来自所述对端设备的第二 CCM,所述第二 CCM中携带故障路径对应的flow hash值;
[0011]所述本端设备在利用所述第二 CCM获知当前存在故障路径时,从第二 flow hash表中删除所述故障路径对应的flow hash值,所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径;
[0012]所述本端设备在需要向所述对端设备发送业务报文时,利用所述业务报文的信息从所述第二 flow hash表中匹配到对应的flow hash值,并通过所述flow hash值对应的路径将所述业务报文发送给所述对端设备。
[0013]所述本端设备接收来自所述对端设备的第二 CCM后,所述方法还包括:
[0014]所述本端设备在感知到拓扑变化之前,继续通过遍历第一 flow hash表得到flowhash值,并通过flow hash值对应的路径向对端设备发送第一 CCM ;
[0015]在所述flow hash值对应的路径故障恢复时,所述本端设备接收来自对端设备的第三CCM,所述第三CCM中携带故障恢复路径对应的flow hash值;
[0016]所述本端设备在利用所述第三CCM获知当前存在故障恢复路径时,将所述故障恢复路径对应的flow hash值添加到所述第二 flow hash表中;
[0017]或者,
[0018]如果所述flow hash值对应的故障路径未恢复,则在所述本端设备感知到拓扑变化之后,从所述第一 flow hash表中删除所述故障路径对应的flow hash值,且不再通过所述flow hash值对应的故障路径向对端设备发送第一 CCM。
[0019]本发明实施例提供一种等价多路径ECMP方式下链路故障的保护切换方法,该方法应用于包括本端设备和对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,所述方法包括以下步骤:
[0020]所述对端设备接收所述本端设备通过flow hash值对应的路径向所述对端设备发送的第一连接检测报文CCM ;其中,所述第一 CCM中携带了第一 flow hash表中的所述flowhash值,且所述第一 flow hash表中的每个flow hash值对应所述本端设备与所述对端设备之间的一条路径;
[0021]所述对端设备利用第一 CCM的接收情况确定所述flow hash值对应的路径是否故障,并在所述flow hash值对应的路径发生故障时,向本端设备发送第二 CCM,且第二 CCM中携带故障路径对应的flow hash值;由本端设备从第二 flow hash表中删除所述故障路径对应的flow hash值,且所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径。
[0022]所述对端设备利用第一 CCM的接收情况确定所述flow hash值对应的路径是否故障,具体包括:
[0023]如果所述对端设备在预设时间内未收到来自本端设备的携带所述f 1whash值的第一 CCM,则确定所述flow hash值对应的路径发生故障;或者,
[0024]如果所述对端设备在预设时间内未收到来自本端设备的携带路径ID的第一 CCM,则确定所述路径ID对应的路径发生故障;其中,flow hash值对应的路径ID携带于所述第一 CCM的指定类型长度值TLV字段中。
[0025]所述对端设备利用第一 CCM的接收情况确定所述flow hash值对应的路径发生故障之后,所述方法还包括:
[0026]如果所述对端设备收到来自本端设备的携带所述flow hash值的第一 CCM,则确定所述flow hash值对应的路径故障恢复,并向本端设备发送第三CCM,所述第三CCM中携带故障恢复路径对应的flow hash值;由本端设备将所述故障恢复路径对应的flow hash值添加到所述第二 flow hash表中;或者,
[0027]如果所述对端设备收到来自本端设备的携带所述路径ID的第一 CCM,则确定所述路径ID对应的路径故障恢复,并向本端设备发送第三CCM,所述第三CCM中携带故障恢复路径对应的flow hash值;由本端设备将所述故障恢复路径对应的flow hash值添加到所述第二 flow hash 表中。
[0028]本发明实施例提供一种用于等价多路径ECMP方式下链路故障的保护切换的本端设备,应用于包括所述本端设备和对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,所述本端设备具体包括:
[0029]第一发送模块,用于通过遍历第一 flow hash表得到flow hash值,并通过所述flow hash值对应的路径向对端设备发送第一连接检测报文CCM ;其中,所述第一 flowhash表中的每个flow hash值对应本端设备与对端设备之间的一条路径;所述第一 CCM中携带所述flow hash值;由对端设备利用携带flow hash值的第一 CCM的接收情况确定所述flow hash值对应的路径是否故障;
[0030]接收模块,用于在所述flow hash值对应的路径发生故障时,接收来自所述对端设备的第二 CCM,所述第二 CCM中携带故障路径对应的flow hash值;
[0031]处理模块,用于在利用所述第二 CCM获知当前存在故障路径时,从第二 flow hash表中删除所述故障路径对应的flow hash值;其中,所述第二 flow hash表中的每个flowhash值对应本端设备与对端设备之间的一条路径;
[0032]第二发送模块,用于在需要向所述对端设备发送业务报文时,利用所述业务报文的信息从所述第二 flow hash表中匹配到对应的flow hash值,并通过所述flow hash值对应的路径将所述业务报文发送给所述对端设备。
[0033]所述第一发送模块,还用于在收到来自所述对端设备的第二 CCM之后,在感知到拓扑变化之前,继续通过遍历第一 flow hash表得到flow hash值,并通过flow hash值对应的路径向对端设备发送第一 CCM ;
[0034]所述接收模块,还用于在flow hash值对应的路径故障恢复时,接收来自对端设备的第三CCM,该第三CCM中携带故障恢复路径对应的flow hash值;
[0035]所述处理模块,还用于在利用所述第三CCM获知当前存在故障恢复路径时,将所述故障恢复路径对应的flow hash值添加到所述第二 flow hash表中;
[0036]或者,
[0037]所述处理模块,还用于当flow hash值对应的故障路径未恢复,则在感知到拓扑变化之后,从第一 flow hash表中删除所述故障路径对应的flow hash值,且不再通过所述flow hash值对应的故障路径向对端设备发送第一 CCM。
[0038]本发明实施例提供一种用于等价多路径ECMP方式下链路故障的保护切换的对端设备,应用于包括本端设备和所述对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,所述对端设备具体包括:
[0039]接收模块,用于接收所述本端设备通过flow hash值对应的路径向所述对端设备发送的第一连接检测报文CCM ;其中,所述第一 CCM中携带了第一 flow hash表中的所述flow hash值,且所述第一flow hash表中的每个flow hash值对应所述本端设备与所述对端设备之间的一条路径;
[0040]确定模块,用于利用所述接收模块对所述第一 CCM的接收情况确定所述flowhash值对应的路径是否发生故障;
[0041]发送模块,用于在所述flow hash值对应的路径发生故障时,向本端设备发送第二CCM,且第二 CCM中携带故障路径对应的flow hash值;由本端设备从第二 flow hash表中删除所述故障路径对应的flow hash值,且所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径。
[0042]所述确定模块,具体用于如果在预设时间内未收到来自本端设备的携带所述flowhash值的第一 CCM,则确定所述flow hash值对应的路径发生故障;或者,如果在预设时间内未收到来自本端设备的携带路径ID的第一 CCM,则确定所述路径ID对应的路径发生故障;其中,flow hash值对应的路径ID携带于所述第一 CCM的指定类型长度值TLV字段中。
[0043]所述确定模块,还用于在利用第一 CCM的接收情况确定flow hash值对应的路径发生故障后,如果收到来自本端设备的携带所述flow hash值的第一 CCM,确定所述flowhash值对应的路径故障恢复;或者,如果收到来自本端设备的携带所述路径ID的第一 CCM,确定所述路径ID对应的路径故障恢复;
[0044]所述发送模块,还用于在flow hash值对应的路径故障恢复时,向本端设备发送第三CCM,该第三CCM中携带故障恢复路径对应的flow hash值;由本端设备将所述故障恢复路径对应的flow hash值添加到第二 flow hash表中。
[0045]与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,当本端设备与对端设备之间存在多条等价路径时,本端设备通过flow (流)hash值对应的路径向对端设备发送CCM(Continuity Check Message,连接检测报文),由对端设备利用CCM的接收情况确定flow hash值对应的路径是否故障,在flow hash值对应的路径发生故障时,本端设备从flow hash表中删除故障路径对应的flow hash值,在需要向对端设备发送业务报文时,从flow hash表中匹配到对应的flow hash值,通过flow hash值对应的路径将业务报文发送给对端设备。上述方式能将故障路径对应的flow hash值从flow hash表中删除,从而在等价路径故障时,将需要在该等价路径上传输的业务报文切换到其它等价路径上,缩短了故障转移时间,避免流量出现断流,保证业务不中断。
【专利附图】

【附图说明】
[0046]图1是现有技术中的存在多条等价路径的组网不意图;
[0047]图2是本发明实施例提出的一种ECMP方式下链路故障的保护切换方法流程示意图;
[0048]图3是本发明实施例提出的一种本端设备的结构示意图;
[0049]图4是本发明实施例提出的一种对端设备的结构示意图。【具体实施方式】
[0050]针对现有技术中存在的问题,本发明实施例提供一种ECMP方式下链路故障的保护切换方法,该方法应用于包括本端设备和对端设备的网络(如SPB网络)中,且本端设备与对端设备之间存在多条等价路径,以图1为本发明实施例的应用场景示意图,本端设备为设备A,对端设备为设备E,设备A和设备E之间存在三条等价路径,分别为路径I (设备A、设备B、设备E)、路径2 (设备A、设备C、设备E)、路径3 (设备A、设备D、设备E)。
[0051]在上述应用场景下,如图2所示,该保护切换方法包括以下步骤:
[0052]步骤201,本端设备通过遍历第一 flow hash表得到flow hash值,并通过该flowhash值对应的路径向对端设备发送第一 CCM。
[0053]本发明实施例中,本端设备需要在控制层面(如内存)维护第一 flow hash表,且第一 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径。在图1所示的应用场景下,第一 flow hash表为{1,2,3}, flow hash值为I表示设备A和设备E之间的路径I (设备A、设备B、设备E),flow hash值为2表示设备A和设备E之间的路径
2(设备A、设备C、设备E), flow hash值为3表不设备A和设备E之间的路径3 (设备A、设备D、设备E)。
[0054]本发明实施例中,为了使得等价路径上的各设备均能够准确的通过相应的路径将第一 CCM发送给对端设备,则该第一 CCM中还可以携带flow hash值,从而使得等价路径上的各设备利用该flow hash值获知该flow hash值对应的路径,并通过该flow hash值对应的路径将第一 CCM发送给对端设备。
[0055]综上所述,在图1所示的应用场景下,设备A通过遍历第一 flow hash表得到flowhash值I,并通过该flow hash值I对应的路径I (设备A、设备B、设备E)向设备E发送第一 CCM,且该第一 CCM中携带flow hash值I ;设备A通过遍历第一 flow hash表得到flowhash值2,并通过该flow hash值2对应的路径2 (设备A、设备C、设备E)向设备E发送第
一CCM,且该第一 CCM中携带flow hash值2 ;设备A通过遍历第一 flow hash表得到flowhash值3,并通过该flow hash值3对应的路径3 (设备A、设备D、设备E)向设备E发送第
一CCM,且该第一 CCM中携带flow hash值3。
[0056]CFM (Connectivity Fault Management,连通错误管理)是一种二层网络中的端到端的 0AM (Operation Administration and Maintenance,操作管理和维护)机制,主要用于在二层网络中检测链路的连通性,以及在故障发生时确认故障并定位。本发明实施例中,通过在SPB网络中对CFM机制进行扩展,使得CFM机制可以在ECMP方式下对本端设备与对端设备之间的多条等价路径进行故障检测。在进行故障检测的过程中,当在本端设备和对端设备上使能CFM功能后,本端设备通过轮询第一 flow hash表,使得本端设备能够基于第
一flow hash表中的每个flow hash值对应的等价路径向对端设备发送CCM,并在该CCM中携带相应的flow hash值,且不同的flow hash值决定了该CCM所经过的路径,从而实现对本端设备与对端设备之间的各等价路径进行故障检测。
[0057]步骤202,对端设备利用第一 CCM的接收情况确定flow hash值对应的路径是否发生故障,并在该flow hash值对应的路径发生故障时,向本端设备发送第二 CCM,且该第二CCM中携带故障路径对应的flow hash值。[0058]本发明实施例中,对端设备等待接收本端设备通过flow hash值对应的路径向对端设备发送的第一 CCM,并检测是否收到本端设备通过flow hash值对应的路径向对端设备发送的第一 CCM,继而利用该第一 CCM的接收情况确定flow hash值对应的路径是否发生故障,在flow hash值对应的路径发生故障时,向本端设备发送第二CCM,且第二CCM中携带故障路径对应的flow hash值。
[0059]本发明实施例中,对端设备利用第一 CCM的接收情况确定flow hash值对应的路径是否发生故障的过程,具体包括但不限于以下方式:方式一、如果对端设备在预设时间内未收到来自本端设备的携带flow hash值的第一 CCM,则确定该flow hash值对应的路径发生故障。方式二、如果对端设备在预设时间内未收到来自本端设备的携带路径ID(标识)的第一 CCM,则确定该路径ID对应的路径发生故障;其中,flow hash值对应的路径ID携带于第一 CCM的指定TLV (Type Length Value,类型长度值)字段中。
[0060]针对上述方式一,对端设备在接收来自本端设备的携带flow hash值的第一 CCM时,需要记录下该flow hash值。进一步的,如果对端设备在预设时间内收到来自本端设备的携带flow hash值的第一 CCM,则确定该flow hash值对应的路径未发生故障;如果对端设备在预设时间内未收到来自本端设备的携带flow hash值的第一 CCM,则确定该flowhash值对应的路径发生故障。
[0061]针对上述方式二,需要在第一 CCM中扩展指定类型TLV,该指定类型TLV用于携带flow hash值对应的路径ID,即该路径ID标识发送该第一 CCM的路径;基于此,第一 CCM中将携带flow hash值以及flow hash值对应的路径ID,且对端设备基于路径ID确定flowhash值对应的路径是否发生故障。进一步的,如果对端设备在预设时间内收到来自本端设备的携带路径ID的第一 CCM,则确定该路径ID对应的路径未发生故障;如果对端设备在预设时间内未收到来自本端设备的携带路径ID的第一 CCM,则确定该路径ID对应的路径发生故障。
[0062]需要指出的是,在采用上述方式二(即第一 CCM新增TLV用于携带路径ID)时,如果在初始情况时该路径ID对应的路径便发生故障了,则对端设备也可以确定出该路径ID对应的路径发生故障,即对端设备无论在什么情况下都可以知道哪个路径ID对应的路径发生故障,并依此进行后续处理。
[0063]本发明实施例中,对端设备在向本端设备发送第二 CCM时,对端设备可以通过所有等价路径分别向本端设备发送第二 CCM,以保证第二 CCM能够发送至本端设备上。其中,对端设备在通过各等价路径分别向本端设备发送第二 CCM时,该第二 CCM中还可以携带故障路径对应的flow hash值。此外,对端设备在通过故障路径向本端设备发送第二 CCM时,还可以将第二 CCM报文的RDI (远程故障指示)字段置位,且将RDI字段置位用于指示本端设备至对端设备的该路径(即本端设备收到第二 CCM的路径)上存在故障。
[0064]综上所述,在图1所示的应用场景下,假设路径2 (设备A、设备C、设备E)上存在故障,则设备A通过flow hash值2对应的路径2 (设备A、设备C、设备E发送携带flow hash值2的第一 CCM时,设备E在预设时间内将不会收到来自设备A的携带flowhash值2的第一 CCM,继而确定flow hash值2对应的路径2 (设备A、设备C、设备E)发生故障,并向设备A发送携带故障路径2对应的flow hash值2的第二 CCM,且设备A可以获知路径2发生故障。[0065]步骤203,本端设备在利用第二 CCM(该第二 CCM中携带故障路径对应的flow hash值)获知当前存在故障路径(即flow hash值对应的路径发生故障)时,本端设备从第二 flowhash表中删除该故障路径对应的flow hash值。
[0066]本发明实施例中,本端设备需要在数据平面(如硬件转发芯片)维护第二 flowhash表,且第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径。在图1所示的应用场景下,第二 flow hash表为{1,2,3}, flow hash值为I表示设备A和设备E之间的路径I (设备A、设备B、设备E),flow hash值为2表示设备A和设备E之间的路径2 (设备A、设备C、设备E),flow hash值为3表示设备A和设备E之间的路径3 (设备A、设备D、设备E)。在此基础上,本端设备在收到第二 CCM(该第二 CCM中携带故障路径2对应的flow hash值2)时,从第二 flow hash表中删除该故障路径2对应的flowhash 值 2,此时第二 flow hash 表为{1,3}。
[0067]步骤204,本端设备在需要向对端设备发送业务报文(即业务数据流)时,利用该业务报文的信息从第二 flow hash表中匹配到对应的flow hash值,并通过该flow hash值对应的路径将该业务报文发送给对端设备。
[0068]其中,该业务报文的信息具体包括但不限于:该业务报文的源MAC、目的MAC、用户VLAN等信息;在利用该业务报文的信息从第二 flow hash表中匹配flow hash值时,本端设备可以通过预设HASH算法实现。
[0069]在图1所示的应用场景下,假设路径2 (设备A、设备C、设备E)上存在故障,在经过上述步骤的处理后,第二 flow hash表为{1,3}, flow hash值为I表示设备A和设备E之间的路径I (设备A、设备B、设备E),flow hash值为3表示设备A和设备E之间的路径
3(设备A、设备D、设备E)。因此,本端设备在利用业务报文的信息从第二 flow hash表中匹配flow hash值时,只能匹配到flow hash值I或者flow hash值3,因此本端设备在通过flow hash值对应的路径将业务报文发送给对端设备时,只会通过路径I (设备A、设备B、设备E)或者路径3 (设备A、设备D、设备E)将业务报文发送给对端设备,从而避免通过路径2 (设备A、设备C、设备E)将业务报文发送给对端设备,使得本端设备在等价路径2发生故障时,能够将需要在等价路径2上传输的业务报文切换到其它等价路径(路径I或者路径3)上,继而缩短了故障转移时间,避免了流量出现断流,并且能够保证业务不发生中断。
[0070]本发明实施例中,为了使得等价路径上的各设备均能够准确的通过相应路径将业务报文发送给对端设备,则在对业务报文进行封装时,还需要在封装后的内容中携带flowhash值,从而使得等价路径上的各设备利用该flow hash值获知该flow hash值对应的路径,并通过该flow hash值对应的路径将业务报文发送给对端设备。具体的,本端设备对业务报文进行F-TAG封装时,封装后的业务报文中携带F-TAG信息,且该F-TAG信息中包括flow hash 值。
[0071 ] 本发明实施例中,本端设备在感知到拓扑变化之前(此时设备A和设备E之间仍然存在路径1、路径2和路径3),需要继续通过遍历第一 flow hash表得到flow hash值,并通过flow hash值对应的路径向对端设备发送第一 CCM (即设备A通过路径1、路径2和路径3分别向设备E发送第一 CCM)。此时如果flow hash值对应的路径故障恢复(如路径2故障恢复),则对端设备将收到来自本端设备的携带flow hash值的第一 CCM,并确定flowhash值对应的路径故障恢复(如设备E可以确定路径2故障恢复);或者,对端设备将收到来自本端设备的携带路径ID的第一 CCM,并确定路径ID对应的路径故障恢复(如设备E可以确定路径2故障恢复)。之后,对端设备向本端设备发送第三CCM,且该第三CCM中携带故障恢复路径对应的flow hash值。
[0072]进一步的,在flow hash值对应的路径故障恢复(如路径2故障恢复)时,本端设备将接收到来自对端设备的第三CCM,且该第三CCM中携带故障恢复路径对应的flow hash值;本端设备在利用第三CCM获知当前存在故障恢复路径时,将该故障恢复路径对应的flow hash值添加到第二 flow hash表(如本端设备将路径2对应的flow hash值添加到第
二flow hash 表)中。
[0073]在后续处理过程中,由于第二 flow hash表为{1,2,3},因此,本端设备在利用业务报文的信息从第二 flow hash表中匹配flow hash值时,能够匹配到flow hash值1、或者flow hash值2、或者flow hash值3,继而使得本端设备可以通过路径I (设备A、设备B、设备E)、或者路径2 (设备A、设备C、设备E)、或者路径3 (设备A、设备D、设备E)将业务报文发送给对端设备,从而在路径1、路径2和路径3之间实现业务报文的负载分担。
[0074]本发明实施例中,如果flow hash值对应的故障路径未恢复(如路径2故障未恢复),则在本端设备感知到拓扑变化之后(此时设备A和设备E之间只存在路径I和路径3),还需要从第一 flow hash表中删除故障路径对应的f1whash值(如故障路径2对应的flowhash值2),之后本端设备将不再通过该flow hash值对应的故障路径(即故障路径2)向对端设备发送第一 CCM。
[0075]具体的,本端设备在感知到拓扑变化之后,此时拓扑将重新收敛,即设备A和设备E之间存在如下等价路径:路径I (设备A、设备B、设备E)、路径2 (设备A、设备D、设备E)。基于此,本端设备维护的第一 flow hash表和第二 flow hash表均为{1,2}, flow hash值为I表示设备A和设备E之间的路径I (设备A、设备B、设备E),flow hash值为2表示设备A和设备E之间的路径2(设备A、设备D、设备E)。在后续处理过程中,与第一 flow hash表和第二 flow hash表均为{1,2,3}的处理类似,在此不再重复赘述。
[0076]基于与上述方法同样的发明构思,本发明实施例中还提供了一种用于等价多路径ECMP方式下链路故障的保护切换的本端设备,应用于包括所述本端设备和对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,如图3所示,所述本端设备具体包括:
[0077]第一发送模块11,用于通过遍历第一 flow hash表得到flow hash值,并通过所述flow hash值对应的路径向对端设备发送第一连接检测报文CCM ;所述第一 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径;所述第一 CCM中携带所述flow hash值;由对端设备利用携带flow hash值的第一 CCM的接收情况确定所述flowhash值对应的路径是否故障;
[0078]接收模块12,用于在所述flow hash值对应的路径发生故障时,接收来自对端设备的第二 CCM,所述第二 CCM中携带故障路径对应的flow hash值;
[0079]处理模块13,用于在利用所述第二 CCM获知当前存在故障路径时,从第二 flowhash表中删除所述故障路径对应的flow hash值;其中,所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径;
[0080]第二发送模块14,用于在需要向所述对端设备发送业务报文时,利用所述业务报文的信息从所述第二 flow hash表中匹配到对应的flow hash值,并通过所述flow hash值对应的路径将所述业务报文发送给所述对端设备。
[0081]所述第一发送模块11,还用于在收到来自所述对端设备的第二 CCM之后,在感知到拓扑变化之前,继续通过遍历第一 flow hash表得到flow hash值,并通过flow hash值对应的路径向对端设备发送第一 CCM ;
[0082]所述接收模块12,还用于在flow hash值对应的路径故障恢复时,接收来自对端设备的第三CCM,第三CCM中携带故障恢复路径对应的flow hash值;
[0083]所述处理模块13,还用于在利用第三CCM获知当前存在故障恢复路径时,将所述故障恢复路径对应的flow hash值添加到所述第二 flow hash表中;
[0084]或者,
[0085]所述处理模块13,还用于当flow hash值对应的故障路径未恢复,则在感知到拓扑变化之后,从第一 flow hash表中删除所述故障路径对应的flow hash值,且不再通过所述flow hash值对应的故障路径向对端设备发送第一 CCM。
[0086]其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0087]基于与上述方法同样的发明构思,本发明实施例中还提供了一种用于等价多路径ECMP方式下链路故障的保护切换的对端设备,应用于包括本端设备和所述对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,如图4所示,所述对端设备具体包括:
[0088]接收模块21,用于接收所述本端设备通过flow hash值对应的路径向所述对端设备发送的第一连接检测报文CCM ;其中,所述第一 CCM中携带了第一 flow hash表中的所述flow hash值,且所述第一flow hash表中的每个flow hash值对应所述本端设备与所述对端设备之间的一条路径;
[0089]确定模块22,用于利用所述接收模块21对所述第一 CCM的接收情况确定所述flowhash值对应的路径是否发生故障;
[0090]发送模块23,用于在所述flow hash值对应的路径发生故障时,向本端设备发送第二 CCM,且第二 CCM中携带故障路径对应的flow hash值;由本端设备从第二 flow hash表中删除所述故障路径对应的flow hash值,且所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径。
[0091]所述确定模块22,具体用于如果在预设时间内未收到来自本端设备的携带所述flow hash值的第一 CCM,则确定所述flow hash值对应的路径发生故障;或者,如果在预设时间内未收到来自本端设备的携带路径ID的第一 CCM,则确定所述路径ID对应的路径发生故障;其中,flow hash值对应的路径ID携带于所述第一 CCM的指定类型长度值TLV字段中。
[0092]所述确定模块22,还用于在利用第一 CCM的接收情况确定flow hash值对应的路径发生故障后,如果收到来自本端设备的携带所述flow hash值的第一 CCM,确定所述flowhash值对应的路径故障恢复;或,如果收到来自本端设备的携带所述路径ID的第一 CCM,确定所述路径ID对应的路径故障恢复;
[0093]所述发送模块23,还用于在flow hash值对应的路径故障恢复时,向本端设备发送第三CCM,该第三CCM中携带故障恢复路径对应的flow hash值;由本端设备将故障恢复路径对应的flow hash值添加到第二 flow hash表中。
[0094]其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0095]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0096]本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0097]本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0098]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0099]以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
【权利要求】
1.一种等价多路径ECMP方式下链路故障的保护切换方法,该方法应用于包括本端设备和对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,其特征在于,所述方法包括以下步骤: 所述本端设备通过遍历第一 flow hash表得到flow hash值,所述第一 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径; 所述本端设备通过flow hash值对应的路径向对端设备发送第一连接检测报文CCM,所述第一 CCM中携带所述flow hash值;由对端设备利用携带flow hash值的第一 CCM的接收情况确定所述flow hash值对应的路径是否故障; 在所述flow hash值对应的路径发生故障时,所述本端设备接收来自所述对端设备的第二 CCM,所述第二 CCM中携带故障路径对应的flow hash值; 所述本端设备在利用所述第二 CCM获知当前存在故障路径时,从第二 flow hash表中删除所述故障路径对应的flow hash值,所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径; 所述本端设备在需要向所述对端设备发送业务报文时,利用所述业务报文的信息从所述第二 flow hash表中匹配到对应的flow hash值,并通过所述flow hash值对应的路径将所述业务报文发送给所述对端设备。
2.如权利要求1所述的方法,其特征在于,所述本端设备接收来自所述对端设备的第二 CCM之后,所述方法进一步包括: 所述本端设备在感知 到拓扑变化之前,继续通过遍历第一 flow hash表得到flow hash值,并通过flow hash值对应的路径向对端设备发送第一 CCM ; 在所述flow hash值对应的路径故障恢复时,所述本端设备接收来自对端设备的第三CCM,所述第三CCM中携带故障恢复路径对应的flow hash值; 所述本端设备在利用所述第三CCM获知当前存在故障恢复路径时,将所述故障恢复路径对应的flow hash值添加到所述第二 flow hash表中; 或者, 如果所述flow hash值对应的故障路径未恢复,则在所述本端设备感知到拓扑变化之后,从所述第一 flow hash表中删除所述故障路径对应的flow hash值,且不再通过所述flow hash值对应的故障路径向对端设备发送第一 CCM。
3.一种等价多路径ECMP方式下链路故障的保护切换方法,该方法应用于包括本端设备和对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,其特征在于,所述方法包括以下步骤: 所述对端设备接收所述本端设备通过flow hash值对应的路径向所述对端设备发送的第一连接检测报文CCM ;其中,所述第一CCM中携带了第一flow hash表中的所述flow hash值,且所述第一 flow hash表中的每个flow hash值对应所述本端设备与所述对端设备之间的一条路径; 所述对端设备利用第一 CCM的接收情况确定所述flow hash值对应的路径是否故障,并在所述flow hash值对应的路径发生故障时,向本端设备发送第二 CCM,且第二 CCM中携带故障路径对应的flow hash值;由本端设备从第二 flow hash表中删除所述故障路径对应的flow hash值,且所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径。
4.如权利要求3所述的方法,其特征在于,所述对端设备利用第一CCM的接收情况确定所述flow hash值对应的路径是否故障,具体包括: 如果所述对端设备在预设时间内未收到来自本端设备的携带所述flow hash值的第一CCM,则确定所述flow hash值对应的路径发生故障;或者, 如果所述对端设备在预设时间内未收到来自本端设备的携带路径ID的第一 CCM,则确定所述路径ID对应的路径发生故障;其中,flow hash值对应的路径ID携带于所述第一CCM的指定类型长度值TLV字段中。
5.如权利要求4所述的方法,其特征在于,所述对端设备利用第一CCM的接收情况确定所述flow hash值对应的路径发生故障之后,所述方法还包括: 如果所述对端设备收到来自本端设备的携带所述flow hash值的第一 CCM,则确定所述flow hash值对应的路径故障恢复,并向本端设备发送第三CCM,所述第三CCM中携带故障恢复路径对应的flow hash值;由本端设备将所述故障恢复路径对应的flow hash值添加到所述第二 flow hash表中;或者, 如果所述对端设备收到来自本端设备的携带所述路径ID的第一 CCM,则确定所述路径ID对应的路径故障恢复,并向本端设备发送第三CCM,所述第三CCM中携带故障恢复路径对应的flow hash值;由本端设备将所述故障恢复路径对应的flow hash值添加到所述第二flow hash 表中。
6.一种用于等价多路径ECMP方式下链路故障的保护切换的本端设备,应用于包括所述本端设备和对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,其特征在于,所述本端设备具体包括: 第一发送模块,用于通过遍历第一 flow hash表得到flow hash值,并通过所述flowhash值对应的路径向对端设备发送第一连接检测报文CCM ;其中,所述第一 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径;所述第一 CCM中携带所述flow hash值;由对端设备利用携带flow hash值的第一 CCM的接收情况确定所述flowhash值对应的路径是否故障; 接收模块,用于在所述flow hash值对应的路径发生故障时,接收来自所述对端设备的第二 CCM,所述第二 CCM中携带故障路径对应的flow hash值; 处理模块,用于在利用所述第二 CCM获知当前存在故障路径时,从第二 flow hash表中删除所述故障路径对应的flow hash值;其中,所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径; 第二发送模块,用于在需要向所述对端设备发送业务报文时,利用所述业务报文的信息从所述第二 flow hash表中匹配到对应的flow hash值,并通过所述flow hash值对应的路径将所述业务报文发送给所述对端设备。
7.如权利要求6所述的本端设备,其特征在于, 所述第一发送模块,还用于在收到来自所述对端设备的第二 CCM之后,在感知到拓扑变化之前,继续通过遍历第一 flow hash表得到flow hash值,并通过flow hash值对应的路径向对端设备发送第一 CCM ; 所述接收模块,还用于在flow hash值对应的路径故障恢复时,接收来自对端设备的第三CCM,该第三CCM中携带故障恢复路径对应的flow hash值; 所述处理模块,还用于在利用所述第三CCM获知当前存在故障恢复路径时,将所述故障恢复路径对应的flow hash值添加到所述第二 flow hash表中; 或者, 所述处理模块,还用于当f 1w hash值对应的故障路径未恢复,则在感知到拓扑变化之后,从第一 flow hash表中删除所述故障路径对应的flow hash值,且不再通过所述flowhash值对应的故障路径向对端设备发送第一 CCM。
8.一种用于等价多路径ECMP方式下链路故障的保护切换的对端设备,应用于包括本端设备和所述对端设备的网络中,所述本端设备与所述对端设备之间存在多条等价路径,其特征在于,所述对端设备具体包括: 接收模块,用于接收所述本端设备通过flow hash值对应的路径向所述对端设备发送的第一连接检测报文CCM ;其中,所述第一 CCM中携带了第一 flow hash表中的所述flowhash值,且所述第一 flow hash表中的每个flow hash值对应所述本端设备与所述对端设备之间的一条路径; 确定模块,用于利用所述接收模块对所述第一 CCM的接收情况确定所述flow hash值对应的路径是否发生故障; 发送模块,用于在所述flow hash值对应的路径发生故障时,向本端设备发送第二CCM,且第二 CCM中携带故障路径对应的flow hash值;由本端设备从第二 flow hash表中删除所述故障路径对应的flow hash值,且所述第二 flow hash表中的每个flow hash值对应本端设备与对端设备之间的一条路径。
9.如权利要求8所述的对端设备,其特征在于, 所述确定模块,具体用于如果在预设时间内未收到来自本端设备的携带所述flowhash值的第一 CCM,则确定所述flow hash值对应的路径发生故障;或者,如果在预设时间内未收到来自本端设备的携带路径ID的第一 CCM,则确定所述路径ID对应的路径发生故障;其中,flow hash值对应的路径ID携带于所述第一 CCM的指定类型长度值TLV字段中。
10.如权利要求9所述的对端设备,其特征在于, 所述确定模块,还用于在利用第一 CCM的接收情况确定flow hash值对应的路径发生故障后,如果收到来自本端设备的携带所述flow hash值的第一 CCM,确定所述flow hash值对应的路径故障恢复;或者,如果收到来自本端设备的携带所述路径ID的第一 CCM,确定所述路径ID对应的路径故障恢复; 所述发送模块,还用于在flow hash值对应的路径故障恢复时,向本端设备发送第三CCM,该第三CCM中携带故障恢复路径对应的flow hash值;由本端设备将所述故障恢复路径对应的flow hash值添加到第二 flow hash表中。
【文档编号】H04L12/703GK103607301SQ201310583042
【公开日】2014年2月26日 申请日期:2013年11月18日 优先权日:2013年11月18日
【发明者】杨裕斌 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1