发明内容
本发明实施例提供一种ISSU的软重启升级过程中的链路保护方法和设备,以避免拓扑震荡,且避免网络内的数据环路或数据转发中断等。
为了达到上述目的,本发明实施例提供一种不中断业务升级ISSU的软重启升级过程中的链路保护方法,应用于包括本端设备和对端设备的网络中,所述本端设备与所述对端设备通过聚合口连接,且所述聚合口在所述本端设备和所述对端设备上分别包括多个成员端口,该方法包括以下步骤:
所述本端设备在进行ISSU的软重启升级之前,所述本端设备通过用于发送协议报文的成员端口向所述对端设备发送检测报文,所述检测报文用于指示所述本端设备需要进行ISSU的软重启升级;
所述本端设备接收所述对端设备向所述本端设备发送的通知报文,所述通知报文为所述对端设备获知所述本端设备需要进行ISSU的软重启升级,并确定收到所述检测报文的成员端口所在链路DOWN时向所述本端设备发送,以指示所述本端设备上用于发送协议报文的成员端口所在链路DOWN;
所述本端设备在收到所述通知报文之后,从其他UP成员端口中重新选择用于发送协议报文的成员端口。
所述本端设备通过用于发送协议报文的成员端口向所述对端设备发送检测报文,具体包括:
所述本端设备在获知自身需要使用ISSU进行接口板的软重启升级时,获得当前自身用于发送协议报文的成员端口,并通过所述用于发送协议报文的成员端口向所述对端设备发送所述检测报文。
所述对端设备确定收到所述检测报文的成员端口所在链路DOWN,具体包括:所述对端设备在收到所述检测报文之后,记录收到所述检测报文的成员端口的端口标识;当所述对端设备检测到自身有成员端口所在链路DOWN时,通过比较所在链路DOWN的成员端口的端口标识以及自身记录的端口标识确定是否为收到所述检测报文的成员端口所在链路DOWN。
所述本端设备接收所述对端设备向所述本端设备发送的通知报文,具体包括:
所述本端设备接收所述对端设备通过收到所述检测报文的成员端口之外的其他UP成员端口向所述本端设备发送的通知报文。
本发明实施例提供一种不中断业务升级ISSU的软重启升级过程中的链路保护设备,作为对端设备应用于包括本端设备和所述对端设备的网络中,所述本端设备与所述对端设备通过聚合口连接,且所述聚合口在所述本端设备和所述对端设备上分别包括多个成员端口,所述链路保护设备包括:
接收模块,用于在所述本端设备进行ISSU的软重启升级之前,接收所述本端设备通过用于发送协议报文的成员端口发送的检测报文,所述检测报文用于指示所述本端设备需要进行ISSU的软重启升级;
确定模块,用于在获知所述本端设备需要进行ISSU的软重启升级之后,确定收到所述检测报文的成员端口所在链路DOWN;
发送模块,用于当确定收到所述检测报文的成员端口所在链路DOWN时,向所述本端设备发送通知报文,所述通知报文用于指示所述本端设备上用于发送协议报文的成员端口所在链路DOWN;以使所述本端设备在收到所述通知报文之后,从其他UP成员端口中重新选择用于发送协议报文的成员端口。
所述确定模块,具体用于在收到所述检测报文之后,记录收到所述检测报文的成员端口的端口标识;当本设备检测到自身有成员端口所在链路DOWN时,通过比较所在链路DOWN的成员端口的端口标识以及自身记录的端口标识确定是否为收到所述检测报文的成员端口所在链路DOWN。
所述发送模块,具体用于通过收到所述检测报文的成员端口之外的其他UP成员端口向所述本端设备发送通知报文。
本发明实施例提供一种不中断业务升级ISSU的软重启升级过程中的链路保护设备,作为本端设备应用于包括所述本端设备和对端设备的网络中,所述本端设备与所述对端设备通过聚合口连接,且所述聚合口在所述本端设备和所述对端设备上分别包括多个成员端口,所述链路保护设备包括:
发送模块,用于在本设备进行ISSU的软重启升级之前,通过用于发送协议报文的成员端口向所述对端设备发送检测报文,所述检测报文用于指示本设备需要进行ISSU的软重启升级;
接收模块,用于接收所述对端设备向本设备发送的通知报文,所述通知报文为所述对端设备获知所述本端设备需要进行ISSU的软重启升级,并确定收到所述检测报文的成员端口所在链路DOWN时向所述本端设备发送,以指示本设备上用于发送协议报文的成员端口所在链路DOWN;
选择模块,用于在收到所述通知报文之后,从其他UP成员端口中重新选择用于发送协议报文的成员端口。
所述发送模块,具体用于在获知本设备需要使用ISSU进行接口板的软重启升级时,获得当前本端设备上用于发送协议报文的成员端口,并通过所述用于发送协议报文的成员端口向所述对端设备发送所述检测报文。
所述接收模块,具体用于接收所述对端设备通过收到所述检测报文的成员端口之外的其他UP成员端口向本设备发送的通知报文。
与现有技术相比,本发明实施例至少具有以下优点:
本发明实施例中,在聚合口包含多个成员端口,且用于发送协议报文的成员端口所在链路DOWN时,即使本端设备正在进行ISSU的软重启升级,也可以将用于发送协议报文的成员端口所在链路DOWN的信息通知给本端设备,从而有效地加强ISSU的软重启升级的可靠性,实现业务的不间断升级,并且可以避免拓扑震荡,以及避免网络内的数据环路或数据转发中断等。
具体实施方式
本发明实施例提供了一种ISSU的软重启升级过程中的链路保护方法,该方法可以应用于包括本端设备和对端设备的网络中,针对链路聚合的应用场景,该本端设备与对端设备通过聚合口连接,且该聚合口在本端设备和对端设备上分别包括了多个成员端口;本发明实施例中,需要进行ISSU的软重启升级的设备为本端设备,其另一端则为对端设备。
以图3为本发明实施例的应用场景示意图,设备A和设备B通过聚合口Agg1相连,且设备A的聚合口Agg1分别包含3个成员端口A_1、A_2和A_3,设备B的聚合口Agg1分别包含3个成员端口B_1、B_2和B_3;假设设备A需要进行ISSU的软重启升级,则设备A为本端设备,设备B为对端设备。
基于上述应用场景,如图4所示,该方法包括以下步骤:
步骤401,设备A在获知自身需要使用ISSU进行接口板的软重启升级时,在进行ISSU的软重启升级之前,获得当前自身用于发送协议报文的成员端口(后续以成员端口A_1为例),并通过该成员端口A_1向设备B发送检测报文;其中,该检测报文用于指示设备A需要进行ISSU的软重启升级。
步骤402,设备B接收设备A通过成员端口A_1发送的检测报文,并利用该检测报文获知设备A需要进行ISSU的软重启升级。
步骤403,设备B在确定出收到检测报文的成员端口(即成员端口B_1)所在链路DOWN(故障)之后,向设备A发送通知报文,该通知报文用于指示设备A上用于发送协议报文的成员端口(即成员端口A_1)所在链路DOWN。
本发明实施例中,如果设备B获知设备A需要进行ISSU的软重启升级,则在确定出收到检测报文的成员端口B_1所在链路DOWN之后,需要向设备A发送通知报文。其中,通知报文的发送端口为设备B从收到检测报文的成员端口(成员端口B_1)之外的其他UP(正常)成员端口中任意选择的一个;在一种优选的实施方式中,设备B可以通过收到检测报文的成员端口之外的其他UP成员端口中端口标识(即端口号)最小的成员端口向设备A发送通知报文;当然,也可以通过其他UP成员端口进行发送,在此不再赘述。
进一步的,设备B确定收到检测报文的成员端口所在链路DOWN的过程,包括:设备B在收到检测报文之后,记录收到检测报文的成员端口的端口标识(即成员端口B_1);当设备B检测到自身有成员端口所在链路DOWN时,通过比较所在链路DOWN的成员端口的端口标识以及自身记录的端口标识确定是否为收到检测报文的成员端口所在链路DOWN;例如,当所在链路DOWN的成员端口的端口标识为成员端口B_1时,确定收到检测报文的成员端口所在链路DOWN;否则不是收到检测报文的成员端口所在链路DOWN。
步骤404,设备A在收到通知报文之后,确定用于发送协议报文的成员端口(成员端口A_1)所在链路DOWN,并从其他UP成员端口中重新选择用于发送协议报文的成员端口,具体的选择方式在此不再赘述。
基于上述过程,当设备A使用ISSU进行接口板的软重启升级时,如果聚合口包含了多个成员端口,则即使用于发送协议报文的成员端口所在链路DOWN,正在进行软重启升级的该设备A也可以立即切换到其他成员端口上,从而保证了网络的可靠性,实现业务的不间断升级。
为了实现上述过程,本发明实施例的一种具体实施方式中,可以通过在设备A和设备B上设置链路检测模块实现;针对图3所示的应用场景,假设需要进行软重启升级的设备A的聚合口Agg1中,选中成员端口A_1为用于发送协议报文的成员端口,以下结合图5所示的流程图对此进行详细说明。
步骤501,设备A的链路检测模块向软重启模块注册软重启预处理事件,该软重启预处理事件用于指示当设备A需要进行软重启升级时,软重启模块需要将升级的信息通知给本设备上的链路检测模块。
步骤502,设备A的链路检测模块在收到软重启预处理通知(其携带软重启模块通知的设备A需要进行软重启升级的信息)后,从设备A的聚合模块中获得当前用于发送协议报文的成员端口(即成员端口A_1)。
步骤503,设备A的链路检测模块通过成员端口A_1向设备B发送检测报文,该检测报文用于指示设备A需要进行ISSU的软重启升级。
步骤504,设备B从成员端口A_1对应的成员端口B_1收到检测报文之后,记录收到检测报文的成员端口的端口标识(即端口号B_1)。
步骤505,设备B的链路检测模块向设备B的接口管理模块注册接口DOWN通知事件,该接口DOWN通知事件用于指示当设备B检测到有成员端口所在链路DOWN时,需要将所在链路DOWN的成员端口的端口标识通知给本设备上的链路检测模块。
步骤506,在设备A进行软重启升级过程中,如果设备A的成员端口A_1所在链路DOWN,设备B的接口管理模块会立刻检测到成员端口B_1所在链路DOWN,并将成员端口B_1所在链路DOWN的信息通知给链路检测模块。
步骤507,设备B的链路检测模块在收到链路DOWN的信息后,确定是否为收到检测报文的成员端口所在链路DOWN;如果是,则执行步骤508;如果否,则不进行处理。本应用场景下,由于之前记录的收到检测报文的成员端口为端口号B_1,且成员端口B_1所在链路DOWN,因此设备B的链路检测模块可以确定出收到检测报文的成员端口所在链路DOWN。
步骤508,设备B的链路检测模块从成员端口B_1之外的其他UP成员端口中选择端口号最小的成员端口(以成员端口B_2为例进行说明),并通过该选择的成员端口B_2向设备A发送通知报文,该通知报文用于指示设备A上用于发送协议报文的成员端口A_1所在链路DOWN。
步骤509,设备A在收到设备B的通知报文之后,通过主控板的处理,通知本设备的聚合模块,聚合口Agg1上的用于发送协议报文的成员端口A_1所在链路DOWN。
步骤510,设备A的聚合模块从成员端口A_1之外的其他UP成员端口中选择新的用于发送协议报文的成员端口。
本发明实施例中,设备A在软重启升级结束之后,设备A的链路检测模块将通知软重启模块取消软重启预处理事件;此外,设备B的链路检测模块将通知接口管理模块取消接口DOWN通知事件;在取消上述事件之后,设备A和设备B将不再执行上述流程,采用现有技术的处理。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种不中断业务升级ISSU的软重启升级过程中的链路保护设备,作为对端设备应用于包括本端设备和所述对端设备的网络中,所述本端设备与所述对端设备通过聚合口连接,且所述聚合口在所述本端设备和所述对端设备上分别包括多个成员端口,如图6所示,所述链路保护设备包括:
接收模块11,用于在所述本端设备进行ISSU的软重启升级之前,接收所述本端设备通过用于发送协议报文的成员端口发送的检测报文,所述检测报文用于指示所述本端设备需要进行ISSU的软重启升级;
确定模块12,用于在获知所述本端设备需要进行ISSU的软重启升级之后,确定收到所述检测报文的成员端口所在链路DOWN;
发送模块13,用于当确定收到所述检测报文的成员端口所在链路DOWN时,向本端设备发送通知报文,所述通知报文用于指示所述本端设备上用于发送协议报文的成员端口所在链路DOWN;以使所述本端设备在收到所述通知报文之后,从其他UP成员端口中重新选择用于发送协议报文的成员端口。
所述确定模块12,具体用于在收到所述检测报文之后,记录收到所述检测报文的成员端口的端口标识;当本设备检测到自身有成员端口所在链路DOWN时,通过比较所在链路DOWN的成员端口的端口标识以及自身记录的端口标识确定是否为收到所述检测报文的成员端口所在链路DOWN。
所述发送模块13,具体用于通过收到所述检测报文的成员端口之外的其他UP成员端口向所述本端设备发送通知报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种不中断业务升级ISSU的软重启升级过程中的链路保护设备,作为本端设备应用于包括所述本端设备和对端设备的网络中,所述本端设备与所述对端设备通过聚合口连接,且所述聚合口在所述本端设备和所述对端设备上分别包括多个成员端口,如图7所示,所述链路保护设备包括:
发送模块21,用于在本设备进行ISSU的软重启升级之前,通过用于发送协议报文的成员端口向所述对端设备发送检测报文,所述检测报文用于指示本设备需要进行ISSU的软重启升级;
接收模块22,用于接收所述对端设备向本设备发送的通知报文,所述通知报文为所述对端设备获知所述本端设备需要进行ISSU的软重启升级,并确定收到所述检测报文的成员端口所在链路DOWN时向所述本端设备发送,以指示本设备上用于发送协议报文的成员端口所在链路DOWN;
选择模块23,用于在收到所述通知报文之后,从其他UP成员端口中重新选择用于发送协议报文的成员端口。
所述发送模块21,具体用于在获知本设备需要使用ISSU进行接口板的软重启升级时,获得当前本端设备上用于发送协议报文的成员端口,并通过所述用于发送协议报文的成员端口向所述对端设备发送所述检测报文。
所述接收模块23,具体用于接收所述对端设备通过收到所述检测报文的成员端口之外的其他UP成员端口向本设备发送的通知报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。