链路切换方法、装置、网络设备及网络系统与流程

文档序号:16630064发布日期:2019-01-16 06:29阅读:1736来源:国知局
链路切换方法、装置、网络设备及网络系统与流程
本申请涉及通信
技术领域
,具体而言,涉及一种链路切换方法、装置、网络设备及网络系统。
背景技术
:两台网络设备之间,为了保障通信的可靠,通常会建立多条链路,链路互为备份或者均衡,当一条链路故障的时候,切换到另一条链路上,则这两台网络设备通过切换后的链路进行通信,而现有技术中,由于两台网络设备之间运行ipsec协议,所以两台网络设备均会设置定期发送保活报文对当前通信链路的通信状态进行检测,以检测当前通信链路是否发生故障。但是现有技术中,由于两台网络设备设置的检测周期可能不一致,则很可能导致其中一台网络设备先检测到链路故障,另一台网络设备后检测到链路故障,这就使得先检测到链路故障的网络设备可以先将链路切换在备链路,而此时后检测到链路故障的网络设备由于还未检测到链路故障,该网络设备则继续通过此时已经故障的链路向对端网络设备发送报文,而对端网络设备由于该链路故障则无法接收到该报文,出现持续的流量单通,而该网络设备只有在自己检测到链路故障时,才会将当前通信链路切换至备链路,所以,这种情况下,由于链路故障导致两台网络设备无法及时切换到备链路导致网络通信中断的问题。技术实现要素:本申请实施例的目的在于提供一种链路切换方法、装置、网络设备及网络系统。第一方面,本申请实施例提供了一种链路切换方法,所述方法包括:本端网络设备在判断与对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路;所述本端网络设备通过所述第二链路向所述对端网络设备发送ipsec故障通知报文,以使所述对端网络设备通过所述第二链路与所述本端网络设备进行通信。在上述实现过程中,在第一链路出现故障时,本端网络设备通过第二链路向对端网络设备发送ipsec故障通知报文,对端网络设备可基于该ipsec故障通知报文知晓第一链路出现故障,从而对端网络设备可通过第二链路与本端网络设备进行通信,进而使得对端网络设备可及时对链路进行切换,保证了本端网络设备与对端网络设备之间的即时通信。可选地,在所述本端网络设备通过所述第二链路向所述对端网络设备发送故障通知报文之前,还包括:所述本端网络设备生成ipsec故障通知报文,所述ipsec故障通知报文包括第一地址字段和第二地址字段,所述第一地址字段用于携带所述第一链路的地址信息,所述第二地址字段用于携带所述第二链路的地址信息。在上述实现过程中,ipsec故障通知报文中包括有第一链路的地址信息以及所述第二链路的地址信息,由此对端网络设备可基于第二链路的地址信息将当前通信链路切换至第二链路。可选地,所述ipsec故障通知报文还包括报文类型字段和报文长度字段,所述报文类型字段用于携带用于表示所述ipsec故障通知报文的报文类型信息,所述报文长度字段用于携带所述ipsec故障通知报文的报文长度信息。可选地,所述本端网络设备通过所述第二链路向所述对端网络设备发送故障通知报文之后,所述方法还包括:所述本端网络设备在检测到所述第一链路恢复正常时,将所述当前通信链路从所述第二链路切换为所述第一链路。在上述实现过程中,当第一链路恢复正常时,可及时将当前通信链路切换为第一链路,从而可使得本端网络设备与对端网络设备之间可继续通过第一链路进行通信。可选地,所述本端网络设备在检测到所述第一链路恢复正常时,将所述当前通信链路从所述第二链路切换为所述第一链路之后,所述方法还包括:所述本端网络设备通过所述第一链路发送ipsec故障恢复通知报文至所述对端网络设备。在上述实现过程中,当第一链路恢复正常时,本端网络设备向对端网络设备发送ipsec故障恢复通知报文,使得对端网络设备可及时将链路切换为第一链路,从而保证了本端网络设备与对端网络设备之间的即时通信。第二方面,本申请实施例提供了一种链路切换方法,所述方法包括:对端网络设备接收本端网络设备发送的ipsec故障通知报文,所述ipsec故障通知报文为所述本端网络设备在判断与所述对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路后通过所述第二链路发送的;所述对端网络设备通过所述第二链路与所述本端网络设备进行通信。第三方面,本申请实施例提供一种链路切换装置,应用于本端网络设备,所述装置包括:链路切换模块,用于在判断所述本端网络设备与对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路;故障通知报文发送模块,用于通过所述第二链路向所述对端网络设备发送ipsec故障通知报文,以使所述对端网络设备通过所述第二链路与所述本端网络设备进行通信。可选地,所述装置还包括:故障通知报文生成模块,用于生成ipsec故障通知报文,所述ipsec故障通知报文包括第一地址字段和第二地址字段,所述第一地址字段用于携带所述第一链路的地址信息,所述第二地址字段用于携带正所述第二链路的地址信息。可选地,所述ipsec故障通知报文还包括报文类型字段和报文长度字段,所述报文类型字段用于携带用于表示所述ipsec故障通知报文的报文类型信息,所述报文长度字段用于携带所述ipsec故障通知报文的报文长度信息。可选地,所述链路切换模块,还用于在检测到所述第一链路恢复正常时,将所述当前通信链路从所述第二链路切换为所述第一链路。可选地,所述装置还包括:故障恢复报文发送模块,用于通过所述第一链路发送ipsec故障恢复通知报文至所述对端网络设备。第四方面,本申请实施例提供一种链路切换装置,运行于对端网络设备,所述装置包括:故障通知报文接收模块,用于接收本端网络设备发送的ipsec故障通知报文,所述ipsec故障通知报文为所述本端网络设备在判断与所述对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路后通过所述第二链路发送的;通信模块,用于通过所述第二链路与所述本端网络设备进行通信。第五方面,本申请实施例提供一种网络设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如第一方面提供的所述方法中的步骤。第六方面,本申请实施例提供一种网络系统,包括本端设备与对端设备,所述本端设备与所述本端设备之间建立有第一链路和第二链路;所述本端设备包括第三方面提供的链路切换装置,所述对端设备包括第四方面提供的链路切换装置。本申请实施例提供一种链路切换方法、装置、网络设备及网络系统,该方法通过本端网络设备在判断与对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路,然后通过所述第二链路向所述对端网络设备发送ipsec故障通知报文,以使所述对端网络设备通过所述第二链路与所述本端网络设备进行通信,所以,本方案中,在第一链路出现故障时,本端网络设备可将链路切换至第二链路后,通过第二链路向对端网络设备发送ipsec故障通知报文,对端网络设备可基于该ipsec故障通知报文知晓第一链路出现故障,从而对端网络设备可通过第二链路与本端网络设备进行通信,进而使得对端网络设备可及时对链路进行切换,保证了本端网络设备与对端网络设备之间的即时通信。本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请实施例提供的一种两端网络设备的通信链路示意图;图2为本申请实施例提供的一种链路切换方法的流程图;图3为本申请实施例提供的另一种链路切换方法的流程图;图4为本申请实施例提供的一种链路切换装置的结构框图;图5为本申请实施例提供的另一种链路切换装置的结构框图;图6为本申请实施例提供的一种网络设备的结构示意图。具体实施方式下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。现有技术中,两台网络设备之间,为了保障通信的可靠,通常会建立多条链路,链路互为备份或者均衡,当一条链路故障的时候,切换到另一条链路上,如图1所示,网络设备a和网络设备b建立了两条链路,网络设备a上的a1口(地址为ipa1)和网络设备b上的b1(ipb1)口建立链路,网络设备a上的a2口(ipa2)和网络设备b上的b2(ipb2)口建立链路。通常,在a1和b1之间建立的链路上,网络设备a和网络设备b会定期发送保活报文,以便检测链路状态是通还是断(包括设备侧接口的状态以及网络的状态),如果发现a1和b1链路断开,会切换到a2和b2建立的链路上,同样,a2和b2之间的链路断开后,也会切换到a1和b1之间的链路上。当然,网络设备a和网络设备b之间不只建立两条链路,还可以建立多条链路。但是由于4g的普及,在4g拨号结合ipsec的组网方案,很多路由器部署的首选解决方案,先做4g拨号,4g拨号通过后,再建立ipsec隧道,这样既可以利用4g线路的便利性,也可以利用ipsec的安全性,这也是一种通用的解决方案,从网络部署的可靠性方面考虑,通常会部署多条4g+ipsec链路,当一条链路出现故障的时候,快速切换到另外一条链路,达到提高可靠性的目的。但是如果两端网络设备配置的保活报文的检测时间很长,则当当前通信链路出现故障时,两端网络设备可能都不能立刻发现当前通信链路故障,使得两端网络设备可能依然通过故障链路继续互相发送报文,但是如果配置的时间很短,则会加大网络设备a和网络设备b的压力,这也是通过保活报文定期探测的弊端。针对4g+ipsec的场景,如果不能很快切换到另一条可靠的链路上,就会出现持续的流量单通(一方往另一方故障的端口发送报文),如果配置的探测周期很短,给通讯双方的压力就很大。若两端网络设备配置的保活报文检测周期不一致时,如本端网络设备检测周期短,对端网络设备检测周期长,则在当前通信链路出现故障时,很可能本端网络设备先检测到,则本端网络设备先将当前通信链路切换至另外的一条链路,对端网络设备后检测到,此时由于对端网络设备还没有检测到当前通信链路故障,所以,对端网络设备还会继续通过当前通信链路与本端网络设备进行通信,则本端网络设备无法接收到对端网络设备发送的报文,只有在对端网络设备检测到当前通信链路故障时,对端网络设备才将当前通信链路切换至另外的一条链路,然后对端网络设备才通过另外的一条链路与本端网络设备通信,这就使得两端网络设备切换链路的时间相差较长,造成流量单通的情况,继而无法保证两端网络设备的即时通信。所以,为了改善上述问题,本申请实施例提供了一种链路切换方法。请参照图2,图2为本申请实施例提供的一种链路切换方法的流程图,该方法包括如下步骤:步骤s110:本端网络设备在判断与对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路。本端网络设备与对端网络设备之间运行ipsec协议,本端网络设备与对端网络设备均会定期发送保活报文来检测当前通信链路是否故障,但是由于,两端网络设备设置的保活报文检测时间可能不一致,例如,若本端网络设备设置的保活报文检测周期为2s,对端网络设备设置的保活报文检测周期为5s,此时,为了保证两个网络设备之间的通信不被中断,则若本端网络设备在检测到作为当前通信链路的第一链路出现故障时,将当前通信链路切换至第二链路,以使得本端网络设备通过第二链路与对端网络设备进行通信。其中,本端网络设备检测到第一链路出现故障的方式可以为:本端网络设备通过周期发送的保活报文进行检测到第一链路出现故障,获取本端网络设备检测到本端网络设备上处于第一链路的端口出现故障,即判定第一链路出现故障。需要说明的是,本实施中的本端网络设备与对端网络设备只是对两个网络设备进行区分,即本端网络设备在接收报文时也可作为对端网络设备,对端网络设备在发送报文时也可作为本端网络设备。其中,在本实施例中,第一链路可指本端网络设备与对端网络设备之间的主链路,第二链路可指本端网络设备与对端网络设备之间的备链路。步骤s120:所述本端网络设备通过所述第二链路向所述对端网络设备发送ipsec故障通知报文,以使所述对端网络设备通过所述第二链路与所述本端网络设备进行通信。本端网络设备在将当前通信链路切换至第二链路后,还通过第二链路向对端网络设备发送ipsec故障通知报文,由于对端网络设备在接收到ipsec故障通知报文前,对端网络设备依然通过第一链路与本端网络设备进行通信,则对端网络设备在接收到ipsec故障通知报文后知晓第一链路出现故障,从而对端网络设备将当前通信链路切换为第二链路,使得对端网络设备可以及时从当前通信链路切换至第二链路,由此,保证了对端网络设备与本端网络设备之间的即时通信,使得对端网络设备与本端网络设备之间的通信不会由于没有及时切换链路而导致中断。其中,本端网络设备在向对端网络设备发送ipsec故障通知报文之前,本端网络设备还需生成ipsec故障通知报文,所述ipsec故障通知报文包括第一地址字段和第二地址字段,所述第一地址字段用于携带所述第一链路的地址信息,所述第二地址字段用于携带正所述第二链路的地址信息。另外,所述ipsec故障通知报文还包括报文类型字段和报文长度字段,所述报文类型字段用于携带用于表示所述ipsec故障通知报文的报文类型信息,所述报文长度字段用于携带所述ipsec故障通知报文的报文长度信息。如下表格所示,下表所示为ipsec故障通知报文的格式:nexttyperesvepayloadlengtherrordstlinkaddrcorrectdstlinkaddr其中,nexttype这个字段为报文类型,表示这个报文的下一个报文类型,对于ipsec故障通知报文而言,选择一个没有用的类型,例如200,那么ipsec故障通知报文的上一个报文中,nexttype就填充200。resve为保留位,1个字节(ipsec报文有特定的格式要求)。payloadlength为报文长度字段,2个字节,表明报文的长度,如果是ipv4,就写8,如果是ipv6,就写32。errordstlinkaddr为第一地址字段,即错误的链路地址,如本实施例中是第一链路ipa1出现故障了,则这个字段填充第一链路的地址信息。correctdstlinkaddr为第二地址字段,即正确的链路地址,如本实施例中是第二链路ipa2,则这个字段填充第二链路的地址信息。所以,对端网络设备在接收到ipsec故障通知报文后,对ipsec故障通知报文进行解析,从中获得出现故障的链路的地址,然后对端网络设备设置这条链路地址为不可发送报文,然后从中获取到第二链路的地址,将第二链路设置为有效链路,后续与本端网络设备之间的报文发送都走这条第二链路。需要说明的是,本端网络设备与对端网络设备之间不只可以有主第二链路两条链路,本端网络设备与对端网络设备之间还可以有多条第二链路,在第一链路出现故障时,本端网络设备可以从多条第二链路中选择其中一条第二链路与对端网络设备进行通信,然后将选择的第二链路的地址信息封装在ipsec故障通知报文中,由此对端网络设备可从ipsec故障通知报文中获取到本端网络设备选择的第二链路的地址信息,从而可将当前通信链路切换至该第二链路,对端网络设备以通过第二链路与本端网络设备进行通信。另外,在本端网络设备检测到出现故障的第一链路恢复正常时,将所述当前通信链路从所述第二链路切换为所述第一链路。本端网络设备将当前通信链路从第二链路切换为第一链路后,在通过所述第一链路发送ipsec故障恢复通知报文至所述对端网络设备,该ipsec故障恢复通知报文的格式与上述ipsec故障通知报文一致,使得对端网络设备可从ipsec故障恢复通知报文中获取到第一链路的地址,然后将当前通信链路从第二链路切换为第一链路,从而可完成链路的快速切换,保证了本端网络设备与对端网络设备之间的即时通信。请参照图3,图3为本申请实施例提供的另一种链路切换方法的流程图,所述方法包括如下步骤:步骤s210:对端网络设备接收本端网络设备发送的ipsec故障通知报文。其中,所述ipsec故障通知报文为所述本端网络设备在判断与所述对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路后通过所述第二链路发送的。步骤s220:所述对端网络设备通过所述第二链路与所述本端网络设备进行通信。该实施例的具体实现过程可参照上述实施例的具体实现过程,为了描述的简洁,在此不再过多赘述。请参照图4,图4为本申请实施例提供的一种链路切换装置200的结构框图,该装置运行于本端网络设备,所述装置包括:链路切换模块210,用于在判断所述本端网络设备与对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路;故障通知报文发送模块220,用于通过所述第二链路向所述对端网络设备发送ipsec故障通知报文,以使所述对端网络设备通过所述第二链路与所述本端网络设备进行通信。可选地,所述装置还包括:故障通知报文生成模块,用于生成ipsec故障通知报文,所述ipsec故障通知报文包括第一地址字段和第二地址字段,所述第一地址字段用于携带所述第一链路的地址信息,所述第二地址字段用于携带正所述第二链路的地址信息。可选地,所述ipsec故障通知报文还包括报文类型字段和报文长度字段,所述报文类型字段用于携带用于表示所述ipsec故障通知报文的报文类型信息,所述报文长度字段用于携带所述ipsec故障通知报文的报文长度信息。可选地,所述链路切换模块210,还用于在检测到所述第一链路恢复正常时,将所述当前通信链路从所述第二链路切换为所述第一链路。可选地,所述装置还包括:故障恢复报文发送模块,用于通过所述第一链路发送ipsec故障恢复通知报文至所述对端网络设备。请参照图5,图5为本申请实施例提供的另一种链路切换装置300的结构框图,该装置运行于对端网络设备,所述装置包括:故障通知报文接收模块310,用于接收本端网络设备发送的ipsec故障通知报文,所述ipsec故障通知报文为所述本端网络设备在判断与所述对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路后通过所述第二链路发送的;通信模块320,用于通过所述第二链路与所述本端网络设备进行通信。请参照图6,图6为本申请实施例提供的一种网络设备的结构示意图,所述网络设备可以包括:至少一个处理器410,例如cpu,至少一个通信接口420,至少一个存储器430和至少一个通信总线440。其中,通信总线440用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口420用于与其他节点设备进行信令或数据的通信。存储器430可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器430可选的还可以是至少一个位于远离前述处理器的存储装置。存储器430中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器410执行时,可编程逻辑控制器执行上述图2所示方法过程。本申请实施例还提供一种网络系统,该网络系统包括上述的对端设备与本端设备,所述本端设备与所述本端设备之间建立有第一链路和第二链路,所述本端设备包括如图4所示的链路切换装置,所述对端设备包括如图5所示的链路切换装置。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。综上所述,本申请实施例提供一种链路切换方法、装置、网络设备及网络系统,该方法通过本端网络设备在判断与对端网络设备之间的作为当前通信链路的第一链路出现故障时,将所述当前通信链路切换至第二链路,然后通过所述第二链路向所述对端网络设备发送ipsec故障通知报文,以使所述对端网络设备通过所述第二链路与所述本端网络设备进行通信,所以,本方案中,在第一链路出现故障时,本端网络设备可将链路切换至第二链路后,通过第二链路向对端网络设备发送ipsec故障通知报文,对端网络设备可基于该ipsec故障通知报文知晓第一链路出现故障,从而对端网络设备可通过第二链路与本端网络设备进行通信,进而使得对端网络设备可及时对链路进行切换,保证了本端网络设备与对端网络设备之间的即时通信。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1