一种网络设备的升级方法及装置与流程

文档序号:19182792发布日期:2019-11-20 01:11阅读:355来源:国知局
一种网络设备的升级方法及装置与流程

本发明实施例涉及通信技术领域,具体涉及一种网络设备的升级方法及装置。



背景技术:

在实际使用中,经常需要对嵌入式网络设备进行升级,而升级失败也是在所难免的,目前针对嵌入式网络设备升级可靠性的解决方法有以下几种:

1、设备分区备份法

该类方法通常将设备的闪存flash分区分为两部分,一个为主分区,一个为备份分区,两个分区都有能够保证设备顺利运行的主程序文件。在设备升级刷写flash的阶段,只刷写设备主分区,如果出现异常导致刷写失败,无法正常运行主分区的程序,则通过备份分区进入设备主程序,再重新在备份分区的主程序下进行升级。

2、升级文件保存法

该类方法在设备升级时,不直接在主程序下将程序文件刷写到flash上,而是将升级程序文件保存到flash的一个单独分区中。升级文件下载完成后,对文件信息进行校验,如果文件完整,则整机重启到引导程序boot下,再在boot下将程序文件刷写到flash中。使用这种方法,如果是在主程序下载升级文件保存阶段出现异常,本身不影响主程序的运行,可以重新下载进行设备升级;如果是在boot下刷写flash阶段出现异常,boot无法正常引导进入主程序,但是本身不影响之前下载保存的升级文件,可以重新再从保存升级文件的分区中读取,重新刷写升级。

3、boot自动升级法

该类方法首先需要网络管理员手动在文件服务器上配置好设备的升级文件,设备在启动引导阶段,在boot下通过引导程序协议(bootstrapprotocol,bootp)申请ip地址,再通过简单文件传输协议(trivialfiletransferprotocol,tftp)向文件服务器下载升级文件,升级文件下载成功后再在boot下进行主程序升级。因为整个升级过程都在boot下进行,即使下载或者升级失败,也能够由boot重新请求程序升级,不会出现设备无法启动的问题。

上述3种方案,前两种都是使用额外的flash空间进行升级可靠性的保障,而对于网络设备,通常因为设备成本的考虑,硬件上flash大小有限,不能保证都有额外空间进行主程序分区或者升级文件的备份。而第3种方法,直接让设备升级都在boot下通过简单文件传输协议进行,boot下每次启动,都需要先获取地址,再尝试连接升级服务器,判断是否需要设备升级,导致设备正常启动进入主程序的时间变的更久。



技术实现要素:

针对现有技术中的缺陷,本发明实施例提供了一种网络设备的升级方法及装置。

第一方面,本发明实施例提供一种网络设备的升级方法,包括:

从升级服务器下载待升级软件对应的升级文件之后,在环境变量中保存所述升级服务器的地址和所述升级文件的名称,其中所述环境变量为网络设备的引导程序可访问的环境变量且所述环境变量分区不属于网络设备的主程序分区;

若升级失败,则在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址和所述升级文件的名称;

根据所述升级服务器的地址重新获取与所述升级文件的名称相对应的升级文件;

在所述引导程序引导下,安装所述升级文件对应的待升级软件。

如上述方法,可选地,若所述网络设备的地址为静态地址,则在所述环境变量中保存所述升级服务器的地址、所述升级文件的名称和所述静态地址;

相应地,所述在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址和所述升级文件的名称,包括:

在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址、所述升级文件的名称和所述静态地址;

相应地,所述根据所述升级服务器的地址重新获取与所述升级文件的名称相对应的升级文件,包括:

根据所述静态地址和所述升级服务器的地址建立连接,根据所述网络设备与所述升级服务器之间的通信协议重新获取与所述升级文件的名称相对应的升级文件。

如上述方法,可选地,若所述网络设备的地址为动态地址,则在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址和所述升级文件的名称,还包括:

通过引导程序协议获取网络设备的动态地址;

相应地,所述根据所述升级服务器的地址重新获取与所述升级文件的名称相对应的升级文件,包括:

根据所述动态地址和所述升级服务器的地址建立连接,根据所述网络设备与所述升级服务器之间的通信协议重新获取与所述升级文件的名称相对应的升级文件。

如上述方法,可选地,还包括:

在下载所述升级文件之后,判断所述环境变量中是否已经保存了上次升级的升级服务器的地址和升级文件的名称;

若是,则删除已经保存的上次升级的升级服务器的地址和升级文件的名称;

在所述环境变量中保存本次升级的升级服务器的地址和升级文件的名称。

如上述方法,可选地,还包括:

若所述网络设备升级成功,则从所述环境变量中删除已经保存的升级服务器的地址和升级文件的名称。

如上述方法,可选地,若所述网络设备为无线访问接入点,则所述升级服务器为已经开启简单文件传输协议服务器的无线网络控制器。

第二方面,本发明实施例提供一种网络设备的升级装置,包括:

保存模块,用于从升级服务器下载待升级软件对应的升级文件之后,在环境变量中保存所述升级服务器的地址和所述升级文件的名称,其中所述环境变量为网络设备的引导程序可访问的环境变量且所述环境变量分区不属于网络设备的主程序分区;

获取模块,用于若升级失败,则在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址和所述升级文件的名称;

下载模块,用于根据所述升级服务器的地址重新获取与所述升级文件的名称相对应的升级文件;

安装模块,用于在所述引导程序引导下,安装所述升级文件对应的待升级软件。

如上述装置,可选地,若所述网络设备的地址为静态地址,则所述保存模块还用于在环境变量中保存所述静态地址;

相应地,所述获取模块具体用于:

在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址、所述升级文件的名称和所述静态地址;

相应地,所述下载模块具体用于:

根据所述静态地址和所述升级服务器的地址建立连接,根据所述网络设备与所述升级服务器之间的通信协议重新获取与所述升级文件的名称相对应的升级文件。

如上述装置,可选地,若所述网络设备的地址为动态地址,则所述获取模块还用于:

通过引导程序协议获取网络设备的动态地址;

相应地,所述下载模块具体用于:

根据所述动态地址和所述升级服务器的地址建立连接,根据所述网络设备与所述升级服务器之间的通信协议重新获取与所述升级文件的名称相对应的升级文件。

如上述装置,可选地,还包括:

判断模块,用于在下载所述升级文件之后,判断所述环境变量中是否已经保存了上次升级的升级服务器的地址和升级文件的名称;

第一删除模块,用于若所述环境变量中已经保存了上次升级的升级服务器的地址和升级文件的名称,则删除已经保存的上次升级的升级服务器的地址和升级文件的名称;

相应地,所述保存模块具体用于在所述环境变量中保存本次升级的升级服务器的地址和升级文件的名称。

如上述装置,可选地,还包括:

第二删除模块,用于若所述网络设备升级成功,则从所述环境变量中删除已经保存的升级服务器的地址和升级文件的名称。

本发明实施例提供的网络设备的升级方法,在升级前在引导程序可访问的环境变量中保存升级文件名称以及升级服务器地址信息,如果升级过程出现异常导致升级失败,能够自动在引导程序下恢复,不需要网络管理员手动恢复,提升了网络设备升级的可靠性,降低了网络维护成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的网络设备的升级方法流程示意图;

图2为本发明实施例提供的无线接入点ap的升级方法流程示意图;

图3为本发明实施例提供的网络设备的升级装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的网络设备的升级方法流程示意图,如图1所示,该方法包括:

步骤s11、从升级服务器下载待升级软件对应的升级文件之后,在环境变量中保存所述升级服务器的地址和所述升级文件的名称,其中所述环境变量为网络设备的引导程序可访问的环境变量且所述环境变量分区不属于网络设备的主程序分区;

具体地,对于需要通过升级服务器下载文件进行升级的网络设备而言,当网络设备与升级服务器建立通信连接之后,会向升级服务器上报运行的软件版本号,升级服务器判断当前网络设备运行的软件版本与升级服务器保存的软件版本是否一致,若不一致,则通过消息将升级服务器上保存的网络设备软件版本号传递到网络设备端,网络设备比较升级服务器下发的软件版本号与本机当前的软件版本号,如果版本不一致,则向升级服务器请求软件版本下载,在网络设备下载完整的软件版本后,会将软件程序刷写到设备的闪存flash上,刷写完成后设备重新启动,如果软件程序刷写成功,则能够运行与升级服务器要求一致的软件版本。

但是在实际的网络设备升级过程中,可能出现各种意外情况,例如网络设备升级软件版本在刷写flash时出现设备运行死机、设备断电等异常,会导致网络设备软件升级失败,网络设备主程序无法正常运行,自然也不能重新向升级服务器请求版本重新升级。

为了解决这一问题,本申请在网络设备从升级服务器下载待升级软件对应的升级文件之后进行升级之前,网络设备将升级服务器的地址和升级文件的名称保存到引导程序boot可访问的环境变量中,该环境变量的分区不属于网络设备的主程序分区,以便在升级失败无法进入主程序仅可运行引导程序时,也可以获取到升级服务器的地址和升级文件的名称。如果升级过程出现异常导致升级失败,网络设备能够自动在boot下恢复,不需要网络管理员手动恢复。

步骤s12、若升级失败,则在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址和所述升级文件的名称;

具体地,网络设备在环境变量中保存升级服务器地址和升级文件名称之后,开始升级,若升级过程出现异常,将导致升级失败,网络设备重启,重启之后首先在引导程序的引导下,需要进入主程序,由于升级失败,无法正常进入主程序,此时,在引导程序的引导下,网络设备可以从引导程序可访问的环境变量中获取已经保存的升级服务器的地址和升级文件的名称,这样,网络设备就可以在引导程序下,重新请求软件版本下载。

步骤s13、根据所述升级服务器的地址重新获取与所述升级文件的名称相对应的升级文件;

步骤s14、在所述引导程序引导下,安装所述升级文件对应的待升级软件。

具体地,网络设备获取升级服务器的地址之后,可以与升级服务器进行连接,然后向升级服务器发送升级文件的名称,重新下载升级文件,下载完成之后,在引导程序引导下,安装升级文件对应的待升级软件。升级成功之后,重启网络设备,此时在引导程序的引导下,网络设备就可以正常进入主程序,与升级服务器重新建立连接,此时升级服务器中保存的软件版本与网络设备保存的软件版本一致。

本发明实施例提供的网络设备的升级方法,在升级前在引导程序可访问的环境变量中保存升级文件名称以及升级服务器地址信息,如果升级过程出现异常导致升级失败,能够自动在引导程序下恢复,不需要网络管理员手动恢复,提升了网络设备升级的可靠性,降低了网络维护成本。

在上述实施例的基础上,进一步地,若所述网络设备的地址为静态地址,则在所述环境变量中保存所述升级服务器的地址、所述升级文件的名称和所述静态地址;

相应地,所述在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址和所述升级文件的名称,包括:

在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址、所述升级文件的名称和所述静态地址;

相应地,所述根据所述升级服务器的地址重新获取与所述升级文件的名称相对应的升级文件,包括:

根据所述静态地址和所述升级服务器的地址建立连接,根据所述网络设备与所述升级服务器之间的通信协议重新获取与所述升级文件的名称相对应的升级文件。

具体地,如果网络设备使用的静态地址,例如使用静态ip地址配置,则在将升级服务器的地址和升级文件的名称保存到引导程序可访问的环境变量时,还可以把网络设备的静态地址,例如静态ip地址和默认网关也写入环境变量中。当网络设备升级失败后,在引导程序的引导下,从环境变量中获取升级服务器的地址、升级文件的名称和本机静态地址,然后根据本机静态地址和升级服务器的地址建立通信连接,根据两者之间的通信协议重新获取与升级文件的名称相对应的升级文件。通信协议包括但不限于:文件传输协议(filetransferprotocol,ftp)、简单文件传输协议(trivialfiletransferprotocol,tftp)、超文本传输协议(hypertexttransferprotocol,http)等。

在上述各实施例的基础上,进一步地,若所述网络设备的地址为动态地址,则在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址和所述升级文件的名称,还包括:

通过引导程序协议获取网络设备的动态地址;

相应地,所述根据所述升级服务器的地址重新获取与所述升级文件的名称相对应的升级文件,包括:

根据所述动态地址和所述升级服务器的地址建立连接,根据所述网络设备与所述升级服务器之间的通信协议重新获取与所述升级文件的名称相对应的升级文件。

具体地,如果网络设备使用的动态地址,例如使用动态主机配置协议(dynamichostconfigurationprotocol,dhcp)配置地址,则在从环境变量中获取升级服务器的地址和升级文件的名称时,还可以通过引导程序协议获取网络设备的动态地址。当网络设备升级失败后,在引导程序的引导下,从环境变量中获取升级服务器的地址、升级文件的名称和本机动态地址,然后根据本机动态地址和升级服务器的地址建立通信连接,根据两者之间的通信协议重新获取与升级文件的名称相对应的升级文件。通信协议包括但不限于:ftp、tftp、http等。

本发明实施例提供的网络设备的升级方法,在升级前在引导程序可访问的环境变量中保存升级文件名称以及升级服务器地址信息,如果升级过程出现异常导致升级失败,根据网络设备和升级服务器的地址建立通信连接,根据通信协议重新获取升级文件,能够自动在引导程序下恢复,不需要网络管理员手动恢复,进一步提升了网络设备升级的可靠性,降低了网络维护成本。

在上述各实施例的基础上,进一步地,该方法还包括:

在下载所述升级文件之后,判断所述环境变量中是否已经保存了上次升级的升级服务器的地址和升级文件的名称;

若是,则删除已经保存的上次升级的升级服务器的地址和升级文件的名称;

在所述环境变量中保存本次升级的升级服务器的地址和升级文件的名称。

具体地,网络设备在下载升级文件并判断升级文件无错误后,在向环境变量写入升级服务器的地址和升级文件的名称之前,首先判断环境变量中是否已经保存了上次升级的升级服务器的地址和升级文件的名称,如果环境变量中已经存储了上次升级的升级服务器的地址和升级文件的名称,则删除这些信息,并在环境变量中保存本次升级的升级服务器的地址和升级文件的名称,以保持升级的软件版本号与升级服务器的软件版本号的一致性。

在上述各实施例的基础上,进一步地,该方法还包括:

若所述网络设备升级成功,则从所述环境变量中删除已经保存的升级服务器的地址和升级文件的名称。

具体地,为了保持升级的软件版本号与升级服务器的软件版本号的一致性,还可以在判断网络设备升级成功之后,例如升级之后可正常进入主程序,则从环境变量中删除已经保存的升级服务器的地址和升级文件的名称,这样,下次需要升级时,直接在环境变量中保存当前升级服务器的地址和升级文件的名称即可。

在上述各实施例的基础上,进一步地,若所述网络设备为无线访问接入点,则所述升级服务器为已经开启简单文件传输协议服务器的无线网络控制器。

具体地,无线局域网(wirelesslocalareanetworks,wlan)技术已经从单一的无线接入点(accesspoint,ap)演进为以无线网络控制器(accesscontroller,ac)为中心,通过有线网络集中控制下联的所有ap的瘦ap架构。在瘦ap网络架构中,一台ac下可以连接成百上千台ap,ac通过专门的通信协议无线接入点控制和配置(controlandprovisioningofwirelessaccesspoints,capwap)协议管理和配置ap。在实际使用中,经常需要对ap进行升级,而升级配置的下发也是由ac进行统一配置和管理。

但是在实际的ap升级过程中,可能出现各种意外情况,例如ap升级软件版本在刷写flash时出现设备运行死机、设备断电等异常,会导致ap软件升级失败,ap主程序无法正常运行,自然也不能通过capwap协议重新向ac请求版本重新升级。此时往往需要网络管理员对升级失败的ap设备进行人工恢复,在引导程序下下通过简单文件传输协议tftp或者其他传输方式重新下载设备主程序进行恢复。但是瘦ap架构网络下,同时升级的ap有成百上千台,而升级失败也是在所难免的,要对升级失败的ap设备进行人工恢复会大大增加网络维护成本。为了解决这一问题,在ac下发升级文件之前,开启简单文件传输协议tftp服务器功能,这样ac就可以作为升级服务器,通过本发明提供的网络设备升级方法,对升级失败的ap进行重新升级。

图2为本发明实施例提供的无线接入点ap的升级方法流程示意图,如图2所示,该方法包括:

步骤s201、导入ap升级文件到ac设备上,ac上默认开启tftp服务器功能;

步骤s202、ap接入ac后,上报本机的软件版本号;

步骤s203、ac判断上报的软件版本号与自身存储的软件版本号不一致,需要对ap进行升级,ac上进行ap升级配置,ac将ap升级文件名称通过消息元素下发给ap,ap通过capwap隧道下载ap升级文件,通过capwap隧道升级可以通过分布式升级或者组播广播升级提升效率;

步骤s204、ap下载升级文件结束,并且升级文件完整无错误,准备进行升级;

步骤s205、ap将ac的地址、升级文件名称写入boot可访问的环境变量,该环境变量文件分区不属于主程序分区,不受到主程序升级影响。如果ap使用静态ip地址配置,将ap的静态ip地址以及默认网关也写入环境变量;

步骤s206、ap判断自身是否升级成功,若是则跳转至步骤s210,否则执行步骤s207;

步骤s207、ap升级过程出现异常,导致升级失败,ap设备重启,ap由于升级失败,无法正常进入主程序,在boot下进入自动升级;

步骤s208、通过bootp(bootstrapprotocol,引导程序协议)获取到本机ip地址,读取ap在升级前保存的环境变量信息,获取到ac的ip地址以及ac端保存的ap升级文件名称;

步骤s209、根据上述获取的信息,通过tftp协议,向ac下载ap升级文件;

步骤s210、ap升级文件下载完成,boot下启动升级,设备升级成功;升级成功后设备重启,通过boot引导正常进入主程序,ap重新接入ac,此时ap运行的软件版本与ac要求的版本一致,ap顺利上线。

本发明实施例提供的网络设备的升级方法,ap在主程序下升级失败后,能够在boot下重新通过tftp向ac请求软件版本,进行自动恢复,解决了瘦ap设备在硬件flash空间不足的情况下,出现异常导致升级失败无法重新进入主程序重新升级的问题,能够自动在boot下恢复,不需要网络管理员人工干预,提升了瘦ap升级的可靠性,降低了网络维护成本。

基于同样的发明构思,本发明实施例还提供一种网络设备的升级装置,图3为本发明实施例提供的网络设备的升级装置的结构示意图,如图3所示,包括:保存模块31、获取模块32、下载模块33和安装模块34,其中:

保存模块31用于从升级服务器下载待升级软件对应的升级文件之后,在环境变量中保存所述升级服务器的地址和所述升级文件的名称,其中所述环境变量为网络设备的引导程序可访问的环境变量且所述环境变量分区不属于网络设备的主程序分区;获取模块32用于若升级失败,则在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址和所述升级文件的名称;下载模块33用于根据所述升级服务器的地址重新获取与所述升级文件的名称相对应的升级文件;安装模块34用于在所述引导程序引导下,安装所述升级文件对应的待升级软件。

如上述装置,可选地,若所述网络设备的地址为静态地址,则所述保存模块还用于在环境变量中保存所述静态地址;

相应地,所述获取模块具体用于:

在所述引导程序引导下,从所述环境变量中获取所述升级服务器的地址、所述升级文件的名称和所述静态地址;

相应地,所述下载模块具体用于:

根据所述静态地址和所述升级服务器的地址建立连接,根据所述网络设备与所述升级服务器之间的通信协议重新获取与所述升级文件的名称相对应的升级文件。

如上述装置,可选地,若所述网络设备的地址为动态地址,则所述获取模块还用于:

通过引导程序协议获取网络设备的动态地址;

相应地,所述下载模块具体用于:

根据所述动态地址和所述升级服务器的地址建立连接,根据所述网络设备与所述升级服务器之间的通信协议重新获取与所述升级文件的名称相对应的升级文件。

如上述装置,可选地,还包括:

判断模块,用于在下载所述升级文件之后,判断所述环境变量中是否已经保存了上次升级的升级服务器的地址和升级文件的名称;

第一删除模块,用于若所述环境变量中已经保存了上次升级的升级服务器的地址和升级文件的名称,则删除已经保存的上次升级的升级服务器的地址和升级文件的名称;

相应地,所述保存模块具体用于在所述环境变量中保存本次升级的升级服务器的地址和升级文件的名称。

如上述装置,可选地,还包括:

第二删除模块,用于若所述网络设备升级成功,则从所述环境变量中删除已经保存的升级服务器的地址和升级文件的名称。

本发明实施例提供的装置,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。

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