CN112491720B - 一种平滑升级方法及系统 - Google Patents
一种平滑升级方法及系统 Download PDFInfo
- Publication number
- CN112491720B CN112491720B CN202011245869.4A CN202011245869A CN112491720B CN 112491720 B CN112491720 B CN 112491720B CN 202011245869 A CN202011245869 A CN 202011245869A CN 112491720 B CN112491720 B CN 112491720B
- Authority
- CN
- China
- Prior art keywords
- tunnel
- application
- upgrade
- upgrading
- service
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Abstract
本发明实施例提供一种平滑升级方法及系统,该方法包括:第一设备确定第一隧道为待升级的隧道;第一隧道是第一设备与第二设备之间基于第一应用建立的;第一设备建立与第二设备之间的第二隧道,第二隧道是基于第二应用建立的;第一设备将第一隧道承载的业务服务切换至第二隧道;第一设备在成功升级第一应用后,建立与第二设备之间的第三隧道;第三隧道是基于升级后的第一应用建立的;第一设备将第二隧道承载的业务服务切换至第三隧道。相比于现有技术中的StrongSwan升级,本申请在虚拟网络隧道升级的同时,保证客户端业务的正常运行,提升了虚拟网络的应用性。可以实现自动化虚拟网络升级,降低虚拟网络隧道升级的作业成本。
Description
技术领域
本申请涉及虚拟网络技术领域,尤其涉及一种平滑升级方法及系统。
背景技术
随着互联网的迅速发展,虚拟网络在不断的完善以提升其性能,也因此,虚拟网络更迭的较为频繁。例如,很多实现三层隧道的软件,StrongSwan(是一个完整的2.4和2.6的Linux内核下的IPsec和IKEv1的实现;IPsec:Internet Protocol Security,网络传输协议;IKEv1:Internet Key Exchange-v1,因特网密钥交换协议)、OpenVPN(是一个基于OpenSSL库的应用层虚拟网络实现;OpenSSL是一个开放源代码的软件库包)等,都会因为各种需求而需要升级。
以StrongSwan在基于SD-WAN(Software Defined Wide Area Network,软件定义广域网)技术实现的组网连接场景中的应用为例,在现有技术中,POP(point-of-presence,入网点)和POP之间,CPE(Customer Premise Equipment,客户终端设备)和POP之间通过运行StrongSwan建立多条IPsec隧道,用于传输业务数据,当设备上的StrongSwan需要升级时,相应的IPsec隧道就会被断开,因此在升级期间,由于该些IPsec隧道无法正常进行业务传输,所以需要停止业务服务,待升级完成后,才能恢复业务服务,这样会影响客户端业务的正常运行,导致用户体验差。且现有技术中,当StrongSwan需要升级时,需要人工分别在两台设备上进行升级操作,浪费人力与时间等作业成本。
发明内容
本发明实施例提供一种平滑升级方法及装置,用于在虚拟网络隧道软件升级的同时,保证客户端业务的正常运行,实现平滑升级,且实现软件自动升级,降低人工作业成本。
第一方面,本发明实施例提供一种平滑升级方法,该方法包括:第一设备确定第一隧道为待升级的隧道;所述第一隧道是所述第一设备与第二设备之间基于所述第一应用建立的;在所述第一设备与所述第二设备之间建立与所述第一隧道对应的第二隧道,所述第二隧道是基于第二应用建立的;将所述第一隧道承载的业务服务切换至所述第二隧道;所述第一设备对所述第一应用进行升级;所述第一设备在成功升级所述第一应用后,建立与所述第二设备之间的第三隧道;所述第三隧道是基于升级后的所述第一应用建立的;将所述第二隧道承载的业务服务切换至所述第三隧道。
上述方法中,在第一设备确定第一隧道为待升级的隧道后,建立第二隧道,并将第一隧道所承载的业务切换至第二隧道;之后,在第一应用成功升级后,再将第二隧道所承载的业务切换回第三隧道。相比于现有技术中的StrongSwan需要升级时,摧毁当前IPsec隧道之后,建立升级StrongSwan对应的IPsec隧道,使得在此过程中,客户端没有隧道可以支持业务进行,导致客户端的业务无法正常运行;本申请通过建立第二隧道,并在第一应用升级过程中,将原来第一隧道所承载的业务切换到第二隧道中,由第二隧道支持客户端的业务正常运行,进一步,在第三隧道成功建立后,将第二隧道所承载的业务切换至第三隧道;如此,客户端的业务一直可以正常运行,第一应用的升级不会对客户端造成影响。在虚拟网络隧道升级的同时,保证客户端业务的正常运行,提升了虚拟网络的应用性。且相比于现有技术中的人工StrongSwan升级,本申请可以实现自动化虚拟网络升级,降低虚拟网络隧道升级的作业成本。
可选的,所述第一设备可根据接收到的升级指令,获知待升级的第一应用;所述升级指令由升级管理设备发出。
上述方法中,第一设备接收升级管理设备发出的升级指令,进而对该升级指令对应的待升级的第一应用进行升级。如此,工作人员只需在升级管理设备中对升级的应用进行配置管理等操作,即可实现对设备上的应用的升级。简化设备上应用升级的操作,缩短应用升级周期。
可选的,所述第一设备基于所述第一应用确定出所有所述第一隧道,并基于所述第一隧道确定出所有配合升级的所述第二设备。
可选的,所述第二应用与所述第一应用不同;或者,所述第二应用与所述第一应用相同的,但分别安装和运行在不同的隔离空间中。
上述方法中,第二应用不同于第一应用,则对应第二应用的第二隧道类型也不同于第一应用的第一隧道。如此,可以通过使得建立的第二隧道的类型与第一隧道的类型不同,达到在两种隧道同时存在时,由于两种隧道所应用的隧道环境、协议不同,而不会相互产生影响,进一步保证客户端业务的正常运行。或者,第二应用也可以与第一应用相同,对应的建立的第二隧道的类型与第一隧道的类型相同,此时可以将第一隧道和第二隧道所运行的相关内容存放在不同的容器内,而使得即使第一隧道和第二隧道类型相同,也可以保证互不影响,使得客户端业务的正常运行。另外,在第一设备建立第二隧道之前,可以基于与第二设备的交互,确定第一隧道的类型,进一步,根据第一隧道的类型确定包括第二隧道的类型的信息。
可选的,在所述第一设备对所述第一应用进行升级前,所述第一设备确认所有所述第一隧道上承载的业务服务都已切换至对应的所述第二隧道。
上述方法中,第一设备确认所有第一隧道上承载的业务服务都已切换至对应的第二隧道之后,将第一应用进行升级。可以防止出现第一隧道上承载的业务服务未切换至第二隧道,而对第一应用进行升级导致的,该未切换完成的业务失去承载,无法正常运行,影响用户使用。
可选的,在所述建立与所述第一隧道对应的所述第二隧道步骤前,所述方法还包含确认所述第一隧道可用,且所述第一隧道上承载有业务服务。
上述方法中,由于第二隧道起到作为客户端业务运行备用隧道的作用,因此,在建立与第一隧道对应的第二隧道步骤前,需要确认第一隧道可用。若不可用,则可以认为当前第一隧道没有承载业务服务,则无需浪费网络资源建立第二隧道。若第一隧道可用,还需要确定第一隧道承载有业务服务。如此,避免第一隧道可用,但没有承载业务服务的情况下,而建立第二隧道,使得第二隧道的建立没有起到承载业务服务的作用,浪费网络资源。
可选的,在所述建立与所述第一隧道对应的所述第二隧道步骤前,所述方法还包含所述第一设备和所述第二设备基于所述第一隧道交换各自的隧道信息,其中,所述隧道信息包含业务网段路由;所述第一设备根据业务网段路由,可进一步确认与第二设备之间承载有业务服务的第一隧道的数量,从而对应创建相应数量的所述第二隧道。
上述方法中,隧道信息包含业务网段路由,则第一设备和第二设备交换各自的隧道信息后,第一设备和第二设备可以获知对方的业务网段路由,可以确定当前第一设备和第二设备之间的第一隧道的数量,进而创建相应数量的第二隧道。保证创建匹配的第二隧道,对第一隧道中的业务服务对应承载。例如,业务服务是通过一条第一隧道承载第一设备和第二设备交互的业务数据;还可以通过两条第一隧道,分别承载第一设备发送的业务数据,以及承载第二设备发送的业务数据。如此,建立两条第二隧道,分别用于承载第一设备发送的业务数据,以及第二设备发送的业务数据。以实现自动化获取第二隧道的建立信息,并建立匹配业务服务运行规则的第二隧道。
可选的,在所述建立与所述第一隧道对应的所述第二隧道步骤前,所述方法还包含,所述第一设备与所述第二设备确定自身是否具有建立所述第二隧道的应用环境,当所述第一设备或所述第二设备不具备应用环境时,通知对方退出升级,并记录错误信息。
上述方法中,第一设备确定自身是否具有建立第二隧道的应用环境,若否,则无法建立可正常应用的第二隧道,通知对方退出升级,并记录错误信息。可以防止第一设备在不具有建立第二隧道的应用环境的情况下,仍然建立第二隧道,进行第一应用的升级。如此,保证了第二隧道建立后的可应用性。
可选的,在所述建立与所述第一隧道对应的所述第二隧道步骤后,所述方法还包含,所述第一设备确认所述第二隧道是否可用,若可用,则关闭系统的反向路由检测功能。
上述方法中,在建立第二隧道之后,且第二隧道可用,业务服务切换至第二隧道之前,第一设备和第二设备之间可能会发生数据包传输,第一设备和\或第二设备在数据包中封装的源地址可能是第一隧道的地址,也可能是第二隧道的地址。因此,若开启反向路由检测功能,则该功能可能会检查数据包来源的合法性,其基本原理是根据包的源地址查找路由的出接口,然后比较包的原始入接口是否和查到的出接口一致,如果一致则放过,如果不一致,则会将该数据包丢弃。因此,为了防止反向路由检测功能开启时,发生数据包丢失,关闭该反向路由检测功能,保证虚拟网络隧道升级的正常进行。
可选的,所述将所述第一隧道承载的业务服务切换至所述第二隧道包含将所述业务服务对应的动态路由和静态路由的切换。
可选的,所述方法更包含所述第一设备确认第三隧道是否可用,若不可用,则将所述第一应用回退至升级前的版本,并通知所述第二设备退出升级,记录错误信息,继续使用所述第二隧道进行业务服务传输。
可选的,在退出升级后,所述第一设备将所述错误信息发送至所述升级管理设备。
上述方法中,将错误信息发送至升级设备升级管理设备,可以使得技术人员确定异常所在的升级流程步骤,便于准确定位异常原因,实现升级过程的‘可视化’。
本发明实施例中,通过根据第一设备中的待升级的第一应用,确定第二应用,并基于第二应用建立第一设备与第二设备的第二隧道,使得在第一应用升级过程中,第一应用对应的第一隧道所承载的业务服务,由第二隧道承载。保证在第一应用升级过程中用户业务不中断。第一应用升级成功,在第一设备与第二设备之间创建第三隧道,则将第二隧道承载的业务服务切换至第三隧道承载。实现不影响用户业务服务运行的,第一应用的平滑升级。
第二方面,本发明实施例提供一种平滑升级系统,该系统包括:升级管理设备,用于接收升级指令,并根据网络拓扑确定待升级的第一设备以及配合升级的第二设备,生成升级指令和配合升级指令,分别发送至所述第一设备和所述第二设备;
所述第一设备接收所述升级指令,执行升级程序;
所述第二设备接收所述配合升级指令,执行配合升级程序;
其中,所述第一设备和所述第二设备分别通过执行所述升级程序和所述配合升级程序实现如第一方面的各种可能的设计中所述的平滑升级方法。
第三方面,本发明实施例还提供一种计算设备,包括:存储器,用于存储计算机程序;处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如第一方面的各种可能的设计中所述的方法。
本发明的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种平滑升级方法的应用架构示意图;
图2为本发明实施例提供的一种平滑升级方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种平滑升级方法的应用架构示意图。图1所示的应用架构可以是基于SD-WAN技术实现的组网架构,其中101和106可以是布设在相同或不同客户局域网内的CPE设备,用于接收所在客户局域网内客户发出的业务请求;107为加速网络,由布设在公网的102、103、104和105等POP设备组成,用于对业务请求进行加速传输。101、102、103、104、105、106可以是交换机、路由器或服务器等网络设备,用于网络的接入、访问,以及连接两个或多个网络的硬件设备等,在网络间起网关作用,为数据包的传送路由的网络设备,它们之间可根据组网需求建立网络连接,以生成对应的网络拓扑,并基于网络连接建立虚拟网络隧道,通过虚拟网络隧道实现业务数据的传输,在一些实施例中,两台存在网络连接的设备间,可建立多条虚拟网络隧道,用于传输不同客户的业务数据,从而实现不同客户间的数据隔离。
升级管理设备108与各CPE设备及POP设备通过网络进行通信,用于接收管理员下发的升级指令,根据升级指令确定出需要升级的第一设备以及配合升级的第二设备,并通知第一设备和第二设备执行升级程序。其中,第一设备和第二设备可以是CPE设备,也可以是POP设备。
例如,升级管理设备108接收对第一设备101上的目标软件进行升级的指示后,可根据当前的网络拓扑关系,确定与第一设备101存在虚拟网络隧道(第一隧道)的所有第二设备(如图示中的102),向第一设备101发送升级指令,并向这些第二设备发送配合升级指令,以使第一设备101和第二设备执行相应的升级程序。
如此一来,第一设备和第二设备在接收到升级管理设备发送的升级指令后,执行对应的升级程序,从而实现平滑升级方法。
具体而言,第一设备101和第二设备102可先确定自身具有建立第二隧道的应用环境,以及第一隧道承载有业务服务,则可协商建立第二隧道,并在第二隧道建立成功后,将第一隧道所承载的业务服务切换至第二隧道,之后,在第一设备对需要升级的软件进行升级,并在升级完成后,第一设备101和第二设备102可进行协商,以将第二隧道所承载的业务服务切换回第三隧道(基于第一应用升级后建立的,对应第一隧道的第三隧道)。以此,在第一设备软件升级的同时,为客户端提供业务服务,保证客户端业务的正常运行,且实现自动化升级,降低升级的作业成本。
基于此,本申请实施例提供了一种平滑升级方法的流程,如图2所示,包括:
步骤201、第一设备根据待升级的第一应用确定出第一隧道;所述第一隧道是所述第一设备与第二设备之间基于所述第一应用建立的。
在实施中,第一设备可根据接收到的升级指令,获知待升级的第一应用,并确定出本地基于第一应用与其他设备(第二设备)建立的第一隧道,进而可基于第一隧道确定出需要配合升级的第二设备。值得注意的是,第一设备基于第一应用建立的第一隧道可以为一条,也可以为多条,在本发明所提供的实施例中,针对每一条第一隧道,均需确定出对应的第二设备,并根据本实施例所提供的方法进行升级处理。在本发明的其他实施例中,升级管理设备发送的升级指令中可包含配合第一设备升级的第二设备信息,第一设备可根据升级指令确定出配合升级的第二设备。
第一应用运行在第一设备和第二设备上,可以用于建立虚拟网络隧道,例如StrongSwan、openVPN、VPN、Linux系统中的gre内核模块、Linux系统中的vxlan内核模块等。
第一隧道是基于第一应用建立的虚拟网络隧道,例如,基于StrongSwan建立的IPsec隧道、openVPN中的Socket(套接字,不同主机的应用进程间并进行双向通信的,利用网络协议交换数据的机制)隧道、VPN中的GRE(Generic Routing Encapsulation,通用路由封装)隧道、VXLAN(Virtual eXtensible Local Area Network)隧道等。
步骤202、在所述第一设备与所述第二设备之间建立与所述第一隧道对应的第二隧道,所述第二隧道是基于第二应用建立的。
在实施中,第二应用可以是在升级前已安装在第一设备和第二设备上的,也可以是根据升级指令安装在第一设备和第二设备上的,可以是与第一应用不同,例如,当第一应用为StrongSwan时,第二应用可以是openVPN、VPN、Linux系统中的gre内核模块、Linux系统中的vxlan内核模块中的任意一种。在本发明的其他实施例中,第二应用也可以与第一应用相同,但分别安装和运行在不同的隔离空间中,例如,第一应用和第二应用可均为StrongSwan,但分别安装和运行在第一设备上的两个容器中。如此,可保证基于第二应用建立的第二隧道不受第一应用的影响。
第二隧道是基于第二应用建立的隧道,例如,基于StrongSwan建立的IPsec隧道、openVPN中的SSL隧道、VPN中的GRE(Generic Routing Encapsulation,通用路由封装)隧道、VXLAN(Virtual eXtensible Local Area Network)隧道等。
步骤203、将所述第一隧道承载的业务服务切换至所述第二隧道。
在图1的示例中第一设备101可以是一个企业的路由器或服务器等,则该企业的业务的网络数据通过第一隧道承载,以实现对该企业的业务服务。当第一设备和第二设备间完成第二隧道的建立之后,可将第一隧道承载的业务服务切换至第二隧道,进而该些业务服务可继续基于第二隧道进行数据传输。
在实施中,第一设备的所有第一隧道上承载的业务服务都切换至对应的第二隧道后,第一设备才开始对第一应用进行升级,从而确保在升级前,第一设备的第一隧道上的所有业务服务均可基于第二隧道正常传输。
在实施中,当第一设备确认升级准备工作已完成后,可开始对第一应用进行升级,即安装并启用第一应用的更新版本,之后便可进入步骤204。步骤204、所述第一设备在成功升级所述第一应用后,建立与所述第二设备之间的第三隧道;所述第三隧道是基于升级后的第一应用建立的。其中,由于第三隧道是基于升级后的第一应用建立的,因此,第三隧道与第一隧道为同类型隧道,例如,第一隧道为IPsec隧道,第三隧道也为IPsec隧道。
步骤205、将所述第二隧道承载的业务服务切换至所述第三隧道。
通过上述方法,在第一设备确定出配合升级的第二设备后,基于第二应用与第二设备间建立第二隧道,并将第一隧道所承载的业务切换至第二隧道;之后,在第一应用成功升级后,再将第二隧道所承载的业务切换回基于升级后的第一应用建立的第三隧道。相比于现有技术而言,本发明实施例所提供的方法,可在第一应用升级过程中,保证客户端的业务一直可以正常运行,从而实现平滑升级,并且本发明所提供的方法中,可直接基于升级指令自动执行相应的步骤,从而实现升级自动化,降低升级的作业成本。
在一实施中,所述第一设备在确定出第一隧道后,更包括:检测第一隧道的状态,以确定是否要建立对应的第二隧道。具体而言,第一设备在根据第一应用确定出第一隧道后,可先确认对第一隧道是否可用,例如,通过往第一隧道发送ping包,来确认第一隧道是否可正常传输数据;若第一隧道可用,则可进一步确认,第一隧道上是否承载有对应的业务服务,例如,可通过检查主路由表和策略路由表来确定第一隧道是否配置有业务路由网段,若有,则为第一隧道建立对应的第二隧道,即进入上述步骤202;若第一隧道不可用,或第一隧道上没有配置业务路由网络,则第一设备则无需为该第一隧道建立对应的第二隧道。
在一实施中,在第一设备与第二设备之间建立与第一隧道对应的第二隧道之前,第一设备和第二设备基于第一隧道交换各自的隧道信息,其中,隧道信息包含业务网段路由,根据业务网段路由,可进一步确认第一设备与第二设备之间已建立,并承载有业务服务的第一隧道的数量,从而在后续步骤中,对应创建相应的第二隧道。在本发明的实施例中,若在隧道信息交换过程中,第一设备没有正常接收到第二设备的响应信息,则退出升级流程,记录错误信息。
在一实施中,在第一设备建立与第二设备之间的第二隧道之前,所述第一设备与第二设备需确定自身是否具有建立所述第二隧道的应用环境,也就是说,第一设备和第二设备需在准备建立第二隧道时,首先确认自身是否满足建立第二隧道所需要的条件。例如,若第二隧道为GRE隧道,第一设备和第二设备需检查内核GRE模块是否可以正常应用、是否已安装用于数据的采集和分析的TcpDump(Linux中的网络数据采集分析工具),以便于后续基于内核GRE模块建立GRE隧道,以及通过TcpDump进行数据的采集和分析。在本发明的实施例中,当第一设备或第二设备发现不具备应用环境时,可通知对方退出升级,并记录错误信息。
在一实施中,在所述第一设备建立与所述第二设备之间的第二隧道之后,且所述第一设备将所述第一隧道承载的业务服务切换至所述第二隧道之前,所述方法还包括,确认第二隧道是否可用,若确认第二隧道不可用,则摧毁第二隧道,并通知第二设备摧毁第二隧道,退出升级流程,记录错误信息;若确认第二隧道可用,则可关闭系统的反向路由检测功能,以防止业务服务切换过程中,由于一端切换完成另一端还未切换时,数据包被反向路由检测机制丢弃,具体地,可将反向路由检测功能中的rp_filter参数设置为0。
在一实施中,将所述第一隧道承载的业务服务切换至所述第二隧道可包含将业务服务的动态路由和静态路由的切换,在切换过程中,可先基于动态路由协议机制来实现动态路由的切换,例如,可基于ospf(Open Shortest Path First,OSPF)协议的机制来实现动态业务路由的切换,具体包括:设置所述第二隧道端口的路径网络消耗值COST为第二COTS值,其中,所述第二COST值小于所述第一隧道的第一COST值,在修改完成后,ospf将根据修改后的cost值,自动更新本地路由表,将业务网段路由切换到cost值更小的第二隧道,从而完成动态路由切换。
第一设备可通过检查本地路由表的方式来确认第一隧道上的业务网段路由已全部切换至第二隧道,并在确认切换完成后,通知第二设备进行动态路由切换,其中,第二设备将使用相同的方法对动态路由进行切换,并在切换完成后,响应给第一设备。
第一设备在确认第二设备完成动态路由切换后,可对静态路由进行切换,即对本地策略路由中与第一隧道相关的业务网段路由切换至第二隧道,从而完成静态路由切换,至此,完成了第一隧道上的业务服务切换至第二隧道,后续第一设备与第二设备之间,将可基于第二隧道对该业务服务进行传输。
在本实施中,在动态路由切换阶段,若第一设备发现本地路由表中的记录未按预期更新或者没有正常接收到第二设备的响应,则可确定动态路由切换识失败,并进行自动修复,其中自动修复的过程包含重新配置网口,并对OSPF配置进行复位,从而基于OSPF机制重新进行路由切换,若在自动修复后,仍未切换成功,则退出升级流程,并将业务网段路由都切换回第一隧道并摧毁第二隧道,同时通知第二设备将业务网段路由切换回第一隧道并摧毁第二隧道,同时记录错误信息。
在一实施中,在基于升级后的第一应用建立第三隧道后,需确认第三隧道是否可用,其中,可通过发送ping包来检测第三隧道是否可用,若可用,则可进一步进行后续的业务服务切换,若不可用,则将第一应用回退至升级前的版本,并通知第二设备退出升级流程,记录错误信息,继续使用第二隧道进行业务服务传输,从而保证即时在升级中断时,业务服务依然能正常运行。
在一实施中,将第二隧道承载的业务服务切换至所述第三隧道可包含将动态路由的切换新和静态路由的切换,在切换过程中,可先基于动态路由协议机制来实现动态路由的切换,例如,可基于ospf(Open Shortest Path First,OSPF)协议的机制来实现动态业务路由的切换,具体包括:设置所述第三隧道端口的路径网络消耗值COST为第三COTS值,其中,所述第三COST值小于所述第二隧道的第二COST值,在修改完成后,ospf将根据修改后的cost值,自动更新本地路由表,将业务网段路由切换到cost值更小的第三隧道,从而完成动态路由切换。
第一设备可通过检查本地路由表的方式来确认第二隧道上的业务网段路由已全部切换至第三隧道,并在确认切换完成后,通知第二设备进行动态路由切换,其中,第二设备将使用相同的方法对动态路由进行切换,并在切换完成后,响应给第一设备。
第一设备在确认第二设备完成动态路由切换后,可对静态路由进行切换,即对本地策略路由中与第二隧道相关的业务网段路由切换至第三隧道,从而完成静态路由切换,至此,完成了第二隧道上的业务服务切换至第三隧道,后续第一设备与第二设备之间,将可基于第三隧道对该业务服务进行传输。
在本实施中,在动态路由切换阶段,若第一设备发现本地路由表中的记录未按预期更新或者没有正常接收到第二设备的响应,则可确定动态路由切换识失败,并进行自动修复,其中自动修复的过程包含重新配置网口,并对OSPF配置进行复位,从而基于OSPF机制重新进行路由切换,若在自动修复后,仍未切换成功,则退出升级流程,并将业务网段路由都切换回第二隧道,并通知第二设备将业务网段路由切换回第二隧道,同时记录错误信息。
在一实施中,当完成了业务服务切换至第三隧道时,第一设备可对系统配置进行恢复并摧毁第二隧道,包含恢复rp_filter值为原值,同时,通知第二设备对系统配置进行恢复并摧毁第二隧道,从而完成升级流程。
在一实施中,第一设备可为SD-WAN网络中的CPE设备,也可以是POP设备,当第一设备为CPE设备时,可通知第二设备主动发起第二隧道的建立,而当第一设备为POP设备时,可主动发起第二隧道的建立。同时,记录第一隧道对应的系统配置,用于后续的恢复。在本发明的实施中,当第二设备连接第一设备需要通过NAT(Network Address Translation,网络地址转换)设备,则第一设备需要通知第二设备主动发器第二隧道的建立。当第一设备连接第二设备需要通过NAT设备,或者第二设备连接第一设备不需要通过NAT设备,或者第一设备连接第二设备不需要通过NAT设备,第一设备可以主动发起第二隧道当建立。
在一实施中,当升级流程无法正常完成时,第一设备可将记录的错误信息发送至所述升级管理设备。升级管理设备可以基于接收到的错误信息监控第一设备的升级的进程,若虚拟网络隧道升级的进程发生异常,则可以准确确定升级异常的环节,进一步快速确定异常原因,便于升级维护。
基于同样的构思,本申请实施例提供一种平滑升级系统,所述系统包括:升级管理设备,用于接收升级指令,并根据网络拓扑确定待升级的第一设备以及配合升级的第二设备,生成升级指令和配合升级指令,分别发送至所述第一设备和所述第二设备;所述第一设备接收所述升级指令,执行升级程序;所述第二设备接收所述配合升级指令,执行配合升级程序;其中,所述第一设备和所述第二设备分别通过执行所述升级程序和所述配合升级程序实现本发明实施例所提供的平滑升级方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种平滑升级方法,其特征在于,所述方法包括:
第一设备根据待升级的第一应用确定出第一隧道;所述第一隧道是所述第一设备与第二设备之间基于所述第一应用建立的;
在所述第一设备与所述第二设备之间建立与所述第一隧道对应的第二隧道,所述第二隧道是基于第二应用建立的;
将所述第一隧道承载的业务服务切换至所述第二隧道;
所述第一设备对所述第一应用进行升级;
所述第一设备在成功升级所述第一应用后,建立与所述第二设备之间的第三隧道;所述第三隧道是基于升级后的所述第一应用建立的;
将所述第二隧道承载的业务服务切换至所述第三隧道。
2.如权利要求1所述的方法,其特征在于,其中,所述第一设备可根据接收到的升级指令,获知待升级的第一应用;所述升级指令由升级管理设备发出。
3.如权利要求1所述的方法,其特征在于,所述第一设备基于所述第一应用确定出所有所述第一隧道,并基于所述第一隧道确定出所有配合升级的所述第二设备。
4.如权利要求2所述的方法,其特征在于,所述第一设备基于所述升级指令确定出所有配合升级的第二设备。
5.如权利要求1所述的方法,其特征在于,其中,所述第二应用与所述第一应用不同;或者,所述第二应用与所述第一应用相同的,但分别安装和运行在不同的隔离空间中。
6.如权利要求1所述的方法,其特征在于,所述方法在所述第一设备对所述第一应用进行升级前,所述第一设备确认所有所述第一隧道上承载的业务服务都已切换至对应的所述第二隧道。
7.如权利要求1所述的方法,其特征在于,在所述建立与所述第一隧道对应的所述第二隧道步骤前,所述方法还包含确认所述第一隧道可用,且所述第一隧道上承载有业务服务。
8.如权利要求1所述的方法,其特征在于,在所述建立与所述第一隧道对应的所述第二隧道步骤前,所述方法还包含所述第一设备和所述第二设备基于所述第一隧道交换各自的隧道信息,其中,所述隧道信息包含业务网段路由;所述第一设备根据业务网段路由,可进一步确认与第二设备之间承载有业务服务的第一隧道的数量,从而对应创建相应数量的所述第二隧道。
9.如权利要求1所述的方法,其特征在于,在所述建立与所述第一隧道对应的所述第二隧道步骤前,所述方法还包含,所述第一设备与所述第二设备确定自身是否具有建立所述第二隧道的应用环境,当所述第一设备或所述第二设备不具备应用环境时,通知对方退出升级,并记录错误信息。
10.如权利要求1所述的方法,其特征在于,在所述建立与所述第一隧道对应的所述第二隧道步骤后,所述方法还包含,所述第一设备确认所述第二隧道是否可用,若可用,则关闭系统的反向路由检测功能。
11.如权利要求1所述的方法,其特征在于,所述将所述第一隧道承载的业务服务切换至所述第二隧道包含将所述业务服务对应的动态路由和静态路由的切换。
12.如权利要求1所述的方法,其特征在于,所述方法更包含所述第一设备确认第三隧道是否可用,若不可用,则将所述第一应用回退至升级前的版本,并通知所述第二设备退出升级,记录错误信息,继续使用所述第二隧道进行业务服务传输。
13.如权利要求9或12所述的方法,其特征在于,还包括:
在退出升级后,所述第一设备将所述错误信息发送至升级管理设备。
14.一种平滑升级系统,其特征在于,所述系统包括:
升级管理设备,用于接收升级指令,并根据网络拓扑确定待升级的第一设备以及配合升级的第二设备,生成升级指令和配合升级指令,分别发送至所述第一设备和所述第二设备;
所述第一设备接收所述升级指令,执行升级程序;
所述第二设备接收所述配合升级指令,执行配合升级程序;
其中,所述第一设备和所述第二设备分别通过执行所述升级程序和所述配合升级程序实现如权利要求1至13所述的平滑升级方法。
15.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如权利要求1至13任一权利要求所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011245869.4A CN112491720B (zh) | 2020-11-10 | 2020-11-10 | 一种平滑升级方法及系统 |
PCT/CN2021/073589 WO2022099936A1 (zh) | 2020-11-10 | 2021-01-25 | 一种平滑升级方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011245869.4A CN112491720B (zh) | 2020-11-10 | 2020-11-10 | 一种平滑升级方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112491720A CN112491720A (zh) | 2021-03-12 |
CN112491720B true CN112491720B (zh) | 2022-02-15 |
Family
ID=74929260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011245869.4A Active CN112491720B (zh) | 2020-11-10 | 2020-11-10 | 一种平滑升级方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112491720B (zh) |
WO (1) | WO2022099936A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422431B (zh) * | 2021-12-23 | 2023-11-28 | 网络通信与安全紫金山实验室 | 网络隧道配置方法、装置、计算机设备、存储介质 |
CN115037573B (zh) * | 2022-05-25 | 2023-08-08 | 天翼云科技有限公司 | 一种网络互联方法、装置、设备及存储介质 |
CN116820527B (zh) * | 2023-08-31 | 2024-01-02 | 腾讯科技(深圳)有限公司 | 程序升级方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582773A (zh) * | 2008-05-13 | 2009-11-18 | 株式会社日立国际电气 | 冗余切换系统、冗余管理装置以及应用程序处理装置 |
CN101626337A (zh) * | 2009-06-18 | 2010-01-13 | 南京联创科技股份有限公司 | 基于虚拟网卡技术的多隧道并发模型实现方法 |
CN106027313A (zh) * | 2016-06-30 | 2016-10-12 | 上海携程商务有限公司 | 基于vpn的网络链路容灾系统及方法 |
US9590821B2 (en) * | 2014-02-12 | 2017-03-07 | Hob Gmbh & Co. Kg | Communication system for transmitting data under a tunnel protocol between at least two data computers via a wide area network and a method for running such a communication system |
CN110661632A (zh) * | 2018-06-28 | 2020-01-07 | 中兴通讯股份有限公司 | 一种隧道处理方法、网络设备和存储介质 |
CN111049668A (zh) * | 2019-10-29 | 2020-04-21 | 深圳市启海仓储有限公司 | 一种三网冗余高可用网络系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399753A (zh) * | 2007-09-28 | 2009-04-01 | 华为技术有限公司 | 一种数据转发的方法、系统和装置 |
CN102761481A (zh) * | 2012-06-29 | 2012-10-31 | 杭州华三通信技术有限公司 | 一种基于evi网络的版本升级方法和设备 |
GB2534563A (en) * | 2015-01-26 | 2016-08-03 | Telesoft Tech Ltd | Data retention probes and related methods |
US10819562B2 (en) * | 2018-07-24 | 2020-10-27 | Zscaler, Inc. | Cloud services management systems utilizing in-band communication conveying situational awareness |
-
2020
- 2020-11-10 CN CN202011245869.4A patent/CN112491720B/zh active Active
-
2021
- 2021-01-25 WO PCT/CN2021/073589 patent/WO2022099936A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582773A (zh) * | 2008-05-13 | 2009-11-18 | 株式会社日立国际电气 | 冗余切换系统、冗余管理装置以及应用程序处理装置 |
CN101626337A (zh) * | 2009-06-18 | 2010-01-13 | 南京联创科技股份有限公司 | 基于虚拟网卡技术的多隧道并发模型实现方法 |
US9590821B2 (en) * | 2014-02-12 | 2017-03-07 | Hob Gmbh & Co. Kg | Communication system for transmitting data under a tunnel protocol between at least two data computers via a wide area network and a method for running such a communication system |
CN106027313A (zh) * | 2016-06-30 | 2016-10-12 | 上海携程商务有限公司 | 基于vpn的网络链路容灾系统及方法 |
CN110661632A (zh) * | 2018-06-28 | 2020-01-07 | 中兴通讯股份有限公司 | 一种隧道处理方法、网络设备和存储介质 |
CN111049668A (zh) * | 2019-10-29 | 2020-04-21 | 深圳市启海仓储有限公司 | 一种三网冗余高可用网络系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2022099936A1 (zh) | 2022-05-19 |
CN112491720A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112491720B (zh) | 一种平滑升级方法及系统 | |
US11223514B2 (en) | Method and system of a dynamic high-availability mode based on current wide area network connectivity | |
US10545750B2 (en) | Distributed upgrade in virtualized computing environments | |
US11201782B1 (en) | Automation of maintenance mode operations for network devices | |
US10938660B1 (en) | Automation of maintenance mode operations for network devices | |
US10318335B1 (en) | Self-managed virtual networks and services | |
US9264402B2 (en) | Systems involving firewall of virtual machine traffic and methods of processing information associated with same | |
US11395189B2 (en) | State machine handling at a proxy node in an Ethernet-based fronthaul network | |
CN102291455B (zh) | 分布式集群处理系统及其报文处理方法 | |
CN106911648B (zh) | 一种环境隔离方法及设备 | |
EP1444806B1 (en) | Scalable router | |
US10972337B2 (en) | Method and apparatus for split-brain avoidance in sub-secondary high availability systems | |
US11128663B2 (en) | Synchronizing link and event detection mechanisms with a secure session associated with the link | |
US10581669B2 (en) | Restoring control-plane connectivity with a network management entity | |
US20210297416A1 (en) | Continuing a media access control security (macsec) key agreement (mka) session upon a network device becoming temporarily unavailable | |
CN110995829B (zh) | 实例调用方法、装置及计算机存储介质 | |
CN109302328B (zh) | 一种vxlan网络热备切换方法及系统 | |
CN116762318A (zh) | 架构可用性和同步 | |
JPH09186718A (ja) | ネットワークの経路を制御する経路制御装置および方法 | |
US11902083B1 (en) | Techniques to provide a flexible witness in a distributed system | |
US10237122B2 (en) | Methods, systems, and computer readable media for providing high availability support at a bypass switch | |
US20240039958A1 (en) | Compliant node identification | |
WO2016062085A1 (zh) | 虚拟网络实现的方法、nve、nva装置及系统 | |
JP4477318B2 (ja) | 経路制御方法、そのデータ集約装置および経路制御システム | |
WO2023136755A1 (en) | Method and apparatus for tailored data monitoring of microservice executions in mobile edge clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |