网络异常恢复方法、装置、设备及计算机可读存储介质与流程

文档序号:16685877发布日期:2019-01-22 18:18阅读:171来源:国知局
网络异常恢复方法、装置、设备及计算机可读存储介质与流程

本发明涉及网络通信技术领域,尤其涉及网络异常恢复方法、装置、设备及计算机可读存储介质。



背景技术:

现有的应用层网络系统一般分为控制平面(controlplane)和数据平面(dataplane,也称转发平面),其中控制平面指系统中用来传送消息、计算表项的部分,诸如协议报文转发、协议表项计算、维护等都属于控制平面的范畴,而转发平面指系统中用来进行数据报文的封装、转发的部分,诸如数据报文的接收、解封装、封装、转发等都属于转发平面的范畴。

现有技术中,转发平面可能会由于自身漏洞、受到外部攻击等原因而发生异常,当转发平面出现异常而退出时,只能通过重启转发平面或者转发进程的方式来恢复转发进程,而转发进程的重启包括一个从控制平面重新获取配置的过程,在配置较多的情况下,获取配置的时间会较长,这会导致整个网络转发业务中断较长时间,从而影响用户的上网体验。



技术实现要素:

本发明的主要目的在于提出一种网络异常恢复方法、装置、设备及计算机可读存储介质,旨在减少网络转发业务异常的恢复时间。

为实现上述目的,本发明提供一种网络异常恢复方法,所述网络异常恢复方法包括如下步骤:

当接收到控制平面下发的配置消息时,通过预设的配置备份进程和第一转发进程分别执行与所述配置消息对应的配置加载操作,其中,所述第一转发进程为所述配置备份进程的副本;

在执行所述配置加载操作的过程中,检测所述第一转发进程是否发生异常;

当检测到所述第一转发进程发生异常时,根据当前正在运行的配置备份进程创建一个第二转发进程,所述第二转发进程为当前正在运行的配置备份进程的副本,通过创建的所述第二转发进程执行所述配置加载操作。

优选地,所述当接收到控制平面下发的配置消息时,通过预设的配置备份进程和第一转发进程分别执行与所述配置消息对应的配置加载操作的步骤之前,还包括:

在转发平面系统启动时,启用一个预设的配置备份进程;

在所述配置备份进程中调用fork分叉函数,以创建一个以所述配置备份进程为父进程的第一转发进程;

初始化所述配置备份进程和所述第一转发进程的静态配置表项、网卡资源和内核交互资源。

优选地,所述当接收到控制平面下发的配置消息时,通过预设的配置备份进程和第一转发进程分别执行与所述配置消息对应的配置加载操作的步骤包括:

通过预设的配置备份进程接收控制平面下发的配置消息,并判断所述配置消息为同步消息还是异步消息;

当所述配置消息为同步消息时,将所述配置消息发送至所述第一转发进程,以使所述第一转发进程执行与所述配置消息对应的配置加载操作;通过所述配置备份进程接收所述第一转发进程返回的配置结果信息,并将所述配置结果信息反馈至所述控制平面;当所述配置结果信息为配置成功时,控制所述配置备份进程执行与所述配置消息对应的配置加载操作;

当所述配置消息为异步消息时,将所述配置消息发送至所述第一转发进程,并控制所述配置备份进程和所述第一转发进程同时执行与所述配置消息对应的配置加载操作。

优选地,所述同步消息包括接口创建消息,所述当所述配置消息为同步消息时,将所述配置消息发送至所述第一转发进程,以使所述第一转发进程执行与所述配置消息对应的配置加载操作的步骤包括:

当所述配置消息为接口创建消息时,将所述接口创建消息发送至所述第一转发进程,以使所述第一转发进程根据所述接口创建消息创建一个对应的内核虚拟网络设备接口,并得到与所述内核虚拟网络设备接口对应的文件描述符;

所述当所述配置结果信息为配置成功时,控制所述配置备份进程执行与所述配置消息对应的配置加载操作的步骤包括:

当所述内核虚拟网络设备接口创建成功时,控制所述配置备份进程从所述第一转发进程获取所述文件描述符,并将获取到的所述文件描述符进行保存。

优选地,所述在执行所述配置加载操作的过程中,检测所述第一转发进程是否发生异常的步骤之前,还包括:

在所述配置备份进程和所述第一转发进程之间建立一个父子管道;

所述在执行所述配置加载操作的过程中,检测所述第一转发进程是否发生异常的步骤包括:

在执行所述配置加载操作的过程中,通过所述父子管道对所述第一转发进程进行实时监听;

当监听到所述父子管道的破裂事件时,判定所述第一转发进程发生异常。

优选地,所述当检测到所述第一转发进程发生异常时,根据当前正在运行的配置备份进程创建一个第二转发进程的步骤包括:

当检测到所述第一转发进程发生异常时,在当前正在运行的配置备份进程中调用fork分叉函数,以创建一个以当前正在运行的配置备份进程为父进程的第二转发进程;

初始化所述第二转发进程。

优选地,在所述当检测到所述第一转发进程发生异常之后,所述根据当前正在运行的配置备份进程创建一个第二转发进程之前,还包括:

通过所述配置备份进程向所述控制平面发送阻止消息以阻止所述控制平面进行配置消息的下发;

所述通过创建的所述第二转发进程执行所述配置加载操作的步骤之前,还包括:

当所述第二转发进程创建成功时,通知所述控制平面放通配置消息的下发。

此外,为实现上述目的,本发明还提供一种网络异常恢复装置,所述网络异常恢复装置包括:

配置加载模块,用于当接收到控制平面下发的配置消息时,通过预设的配置备份进程和第一转发进程分别执行与所述配置消息对应的配置加载操作,其中,所述第一转发进程为所述配置备份进程的副本;

检测模块,用于在执行所述配置加载操作的过程中,检测所述第一转发进程是否发生异常;

恢复模块,用于当检测到所述第一转发进程发生异常时,根据当前正在运行的配置备份进程创建一个第二转发进程,所述第二转发进程为当前正在运行的配置备份进程的副本,通过创建的所述第二转发进程执行所述配置加载操作。

此外,为实现上述目的,本发明还提供一种网络异常恢复设备,所述网络异常恢复设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网络异常恢复程序,所述网络异常恢复程序被所述处理器执行时实现如上所述的网络异常恢复方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有网络异常恢复程序,所述网络异常恢复程序被处理器执行时实现如上所述的网络异常恢复方法的步骤。

本发明提出的网络异常恢复方法,由于配置备份进程执行了与第一转发进程相同的配置加载操作,因此其能够备份第一转发进程发生异常之前的所有配置,当第一转发进程异常时,只需根据当前正在运行的配置备份进程创建一个新的转发进程执行后续的配置加载操作,即可实现网络异常的恢复,相比于现有技术,本发明无需从配置平面重新获取配置,从而能够减少网络转发业务异常的恢复时间,提升用户的上网体验。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;

图2为本发明网络异常恢复方法第一实施例的流程示意图;

图3为本发明实施例中应用层网络系统的组成示意图;

图4为本发明网络异常恢复装置一实施例的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:当接收到控制平面下发的配置消息时,通过预设的配置备份进程和第一转发进程分别执行与所述配置消息对应的配置加载操作,其中,所述第一转发进程为所述配置备份进程的副本;在执行所述配置加载操作的过程中,检测所述第一转发进程是否发生异常;当检测到所述第一转发进程发生异常时,根据当前正在运行的配置备份进程创建一个第二转发进程,所述第二转发进程为当前正在运行的配置备份进程的副本,通过创建的所述第二转发进程执行所述配置加载操作。

现有技术中,转发平面可能会由于自身漏洞、受到外部攻击等原因而发生异常,当转发平面出现异常而退出时,只能通过重启转发平面或者转发进程的方式来恢复转发进程,而转发进程的重启包括一个从控制平面重新获取配置的过程,在配置较多的情况下,获取配置的时间会较长,这会导致整个网络转发业务中断较长时间,从而影响用户的上网体验。

本发明提出的网络异常恢复方法,由于配置备份进程执行了与第一转发进程相同的配置加载操作,因此其能够备份第一转发进程发生异常之前的所有配置,当第一转发进程异常时,只需根据当前正在运行的配置备份进程创建一个新的转发进程执行后续的配置加载操作,即可实现网络异常的恢复,相比于现有技术,本发明无需从配置平面重新获取配置,从而能够减少网络转发业务异常的恢复时间,提升用户的上网体验。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

本发明实施例网络异常恢复设备可以是pc机、服务器、交换机或网关设备。

如图1所示,该网络异常恢复设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及网络异常恢复程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的网络异常恢复程序,并执行以下网络异常恢复方法实施例中的操作。

基于上述硬件结构,提出本发明网络异常恢复方法实施例。

参照图2,图2为本发明网络异常恢复方法第一实施例的流程示意图,所述方法包括:

步骤s10,当接收到控制平面下发的配置消息时,通过预设的配置备份进程和第一转发进程分别执行与所述配置消息对应的配置加载操作,其中,所述第一转发进程为所述配置备份进程的副本;

参照图3,图3为本发明实施例中应用层网络系统的组成示意图。现有的应用层网络系统一般分为控制平面(controlplane)和数据平面(dataplane,也称转发平面),其中,控制平面负责对外的配置接口,以及配置检查存储等,转发平面负责网络业务,报文转发的处理等。本实施例网络异常恢复方法应用于应用层网络系统中的转发平面。

在本实施例中,转发平面中存在一个配置备份进程和一个第一转发进程,该配置备份进程用于对第一转发进程进行备份,该第一转发进程为该配置备份进程的副本。

在进行业务转发和处理时,转发平面首先接收控制平面下发的配置消息,然后通过预设的配置备份进程和第一转发进程分别执行与该配置消息对应的配置加载操作,其中,配置加载操作包括但不限于组件功能配置、路由接口配置及规则下发等。

进一步地,在上述步骤s10之前,还可以包括步骤:在转发平面系统启动时,启用一个预设的配置备份进程;在所述配置备份进程中调用fork分叉函数,以创建一个以所述配置备份进程为父进程的第一转发进程;初始化所述配置备份进程和所述第一转发进程的静态配置表项、网卡资源和内核交互资源。

本实施例中,在转发平面系统启动时,启用一个预设的配置备份进程,然后在该配置备份进程中调用fork分叉函数,由此可以创建一个以该配置备份进程为父进程的一个子进程,即第一转发进程,该第一转发进程为该配置备份进程的副本,它将获得父进程数据空间、堆、栈等资源的副本;之后,再初始化该配置备份进程和该转发进程的静态配置表项、网卡资源和内核交互资源,具体地,首先第一转发进程对网卡、转发表以及转发队列等进行初始化,而配置进程只对一些静态配置表项,如nat(networkaddresstranslation,网络地址转换)表进行初始化,然后第一转发进程发送一些网卡资源以及内核交互资源给配置备份进程,由配置备份进程进行保存,由此完成配置备份进程和第一转发进程的初始化。

通过调用fork分叉函数创建配置备份进程的副本,并将配置备份进程和创建的副本进程进行初始化处理,该方案简单易行,且为后续网络异常恢复提供了前提保证。当然,除fork分叉函数外,具体实施时也可灵活采用其它能够实现创建配置备份进程的副本的方式。

步骤s20,在执行所述配置加载操作的过程中,检测所述第一转发进程是否发生异常;

在执行配置加载操作的过程中,转发平面可以检测第一转发进程是否发生异常。在一实施方式中,转发平面可以通过一个预设监听程序对第一转发进程直接进行监听,以判断其是否发生异常;在另一实施方式中,在上述步骤s20之前,还可以包括:在所述配置备份进程和所述第一转发进程之间建立一个父子管道;此时步骤s20可以包括:在执行所述配置加载操作的过程中,通过所述父子管道对所述第一转发进程进行实时监听;当监听到所述父子管道的破裂事件时,判定所述第一转发进程发生异常。

其中,父子管道是父进程和子进程间的一种单向数据通道,它把一个进程的标准输出和另一个进程的标准输入连接在一起,在本实施例中,第一转发进程异常将会导致其与配置备份进程之间的父子管道破裂,因此,通过父子管道对第一转发进程进行实时监听,当监听到父子管道的破裂事件时,即可判定第一转发进程发生异常。通过这种方式,实现了对第一转发进程异常的准确检测。

步骤s30,当检测到所述第一转发进程发生异常时,根据当前正在运行的配置备份进程创建一个第二转发进程,所述第二转发进程为当前正在运行的配置备份进程的副本,通过创建的所述第二转发进程执行所述配置加载操作。

该步骤中,当检测到第一转发进程发生异常时,转发平面即根据当前正在运行的配置备份进程创建一个第二转发进程,该第二转发进程为当前正在运行的配置备份进程的副本。具体创建方式可以为:在当前正在运行的配置备份进行中调用fork分叉函数,以创建一个以当前正在运行的配置备份进程为父进程的第二转发进程,该第二转发进程为该当前正在运行的配置备份进程的副本,它将获得父进程数据空间、堆、栈等资源的副本,且继承了配置备份进程当前的所有配置信息;之后,再初始化第二转发进程,包括初始化接口信息和动态表项等,即可完成进程启动恢复。

进一步地,在所述当检测到所述第一转发进程发生异常之后,所述根据当前正在运行的配置备份进程创建一个第二转发进程之前,还可以包括:通过所述配置备份进程向所述控制平面发送阻止消息以阻止所述控制平面进行配置消息的下发;所述通过创建的所述第二转发进程执行所述配置加载操作的步骤之前,还可以包括:当所述第二转发进程创建成功时,通知所述控制平面放通配置消息的下发。

当检测到第一转发进程发生异常时,可以通过配置备份进程向控制平面发送阻止消息以阻止控制平面进行配置消息的下发,此时控制平面配置进程发送进程间通信配置消息时会被阻塞起来,配置消息将保存在进程间通信机制缓存里,以等待转发进程的恢复;当第二转发进程创建成功时,再通知控制平面放通配置消息的下发,以使网络恢复正常。通过这种在网络异常恢复期间阻止控制平面进行配置消息下发的方式,保证了在网络异常期间控制平面产生的配置消息不会丢失,从而提高了网络异常恢复的可靠性。

本实施例提出的网络异常恢复方法,由于配置备份进程执行了与第一转发进程相同的配置加载操作,因此其能够备份第一转发进程发生异常之前的所有配置,当第一转发进程异常时,只需根据当前正在运行的配置备份进程创建一个新的转发进程执行后续的配置加载操作,即可实现网络异常的恢复,相比于现有技术,本发明无需从配置平面重新获取配置,从而能够减少网络转发业务异常的恢复时间,提升用户的上网体验。

进一步地,基于本发明网络异常恢复方法第一实施例,提出本发明网络异常恢复方法第二实施例。

在本实施例中,所述当接收到控制平面下发的配置消息时,通过预设的配置备份进程和第一转发进程分别执行与所述配置消息对应的配置加载操作的步骤可以包括:

通过预设的配置备份进程接收控制平面下发的配置消息,并判断所述配置消息为同步消息还是异步消息;当所述配置消息为同步消息时,将所述配置消息发送至所述第一转发进程,以使所述第一转发进程执行与所述配置消息对应的配置加载操作;通过所述配置备份进程接收所述第一转发进程返回的配置结果信息,并将所述配置结果信息反馈至所述控制平面;当所述配置结果信息为配置成功时,控制所述配置备份进程执行与所述配置消息对应的配置加载操作;当所述配置消息为异步消息时,将所述配置消息发送至所述第一转发进程,并控制所述配置备份进程和所述第一转发进程同时执行与所述配置消息对应的配置加载操作。

具体地,正常的平台配置下发一般包括两种消息类型:1、同步消息,控制平面给转发平面发送一个配置消息,需要等待转发平面处理完成并返回结果后,才能下发下一个配置消息;2、异步消息,控制平面给转发平面发送配置管理消息,不关心消息的处理结果,不必等待转发平面处理完成并返回结果。

基于上述两种消息类型,转发平面可以通过配置备份进程接收控制平面下发的配置消息,并判断配置消息为同步消息还是异步消息。当配置消息为同步消息时,首先将配置消息发送至第一转发进程,以使第一转发进程执行与配置消息对应的配置加载操作,然后,通过配置备份进程接收第一转发进程返回的配置结果信息,并将配置结果信息反馈至控制平面,当配置结果信息为配置成功时,控制配置备份进程执行与该配置消息对应的配置加载操作,由此实现了同步消息类型下配置备份进程和第一转发进程的配置的同步。当配置消息为异步消息时,则将该配置消息发送至第一转发进程,并控制配置备份进程和第一转发进程同时执行与该配置消息对应的配置加载操作,异常实现了异步消息类型下配置备份进程和第一转发进程的配置的同步。

进一步地,上述同步消息包括接口创建消息,所述当所述配置消息为同步消息时,将所述配置消息发送至所述第一转发进程,以使所述第一转发进程执行与所述配置消息对应的配置加载操作的步骤可以包括:当所述配置消息为接口创建消息时,将所述接口创建消息发送至所述第一转发进程,以使所述第一转发进程根据所述接口创建消息创建一个对应的内核虚拟网络设备接口,并得到与所述内核虚拟网络设备接口对应的文件描述符;

所述当所述配置结果信息为配置成功时,控制所述配置备份进程执行与所述配置消息对应的配置加载操作的步骤包括:当所述内核虚拟网络设备接口创建成功时,控制所述配置备份进程从所述第一转发进程获取所述文件描述符,并将获取到的所述文件描述符进行保存。

具体地,当配置备份进程接收到接口创建消息时,首先将该接口创建消息发送至第一转发进程,以使第一转发进程根据该接口创建消息创建一个对应的内核虚拟网络设备接口,并得到与该内核虚拟网络设备接口对应的文件描述符,其中,内核虚拟网络设备接口包括但不限于tun/tap等接口;当内核虚拟网络设备接口创建成功时,控制配置备份进程从第一转发进程获取文件描述符,并将获取到的文件描述符进行保存,这样,由于两个进程同时持有这个内核虚拟网络设备接口对应的文件描述符,当转发进程异常退出时,这个内核资源也不会消亡,且之后根据配置备份进程重建的第二转发进程可以直接继承该内核资源,省去了内核资源重建的流程,进一步减少了网络异常恢复的时间。

上述网络异常恢复过程,省去了重新加载配置读取配置的操作,且省去了内核资源的重建和配置,实现了秒级以下的快速恢复机制。

本发明还提供一种网络异常恢复装置,参照图4,图4为本发明网络异常恢复装置一实施例的模块示意图,本实施例中,所述装置包括:

配置加载模块10,用于当接收到控制平面下发的配置消息时,通过预设的配置备份进程和第一转发进程分别执行与所述配置消息对应的配置加载操作,其中,所述第一转发进程为所述配置备份进程的副本;

检测模块20,用于在执行所述配置加载操作的过程中,检测所述第一转发进程是否发生异常;

恢复模块30,用于当检测到所述第一转发进程发生异常时,根据当前正在运行的配置备份进程创建一个第二转发进程,所述第二转发进程为当前正在运行的配置备份进程的副本,通过创建的所述第二转发进程执行所述配置加载操作。

上述各功能模块实现的方法可参照本发明网络异常恢复方法实施例,此处不再赘述。

本实施例提出的网络异常恢复装置,由于配置备份进程执行了与第一转发进程相同的配置加载操作,因此其能够备份第一转发进程发生异常之前的所有配置,当第一转发进程异常时,只需根据当前正在运行的配置备份进程创建一个新的转发进程执行后续的配置加载操作,即可实现网络异常的恢复,相比于现有技术,本实施例无需从配置平面重新获取配置,从而能够减少网络转发业务异常的恢复时间,提升用户的上网体验。

本发明还提供一种计算机可读存储介质。

本发明计算机可读存储介质上存储有网络异常恢复程序,所述网络异常恢复程序被处理器执行时实现如上所述的网络异常恢复方法的步骤。

其中,在所述处理器上运行的网络异常恢复程序被执行时所实现的方法可参照本发明网络异常恢复方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干消息用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1