背景技术
多协议标签交换(MPLS,Multi-Protocol Label Switching)能够支持多层标签和面向连接,且具有良好的扩展性,使在统一的MPLS/IP基础网络架构上为客户提供各类服务成为可能。标签分发协议(LDP,Label DistributionProtocol)是MPLS的控制协议,负责转发等价类(FEC,Forwarding EquivalenceClass)的分类、标签的分配以及标签交换路径(LSP,Label Switched Path)的建立和维护等一系列操作。
通过LDP或基于约束路由的标签分发协议(CR-LDP,Constrained Route-Label Distribution Protocol),标签交换路由器(LSR,Label Switched Router)可以将网络层的路由信息直接映射到数据链路层的LSP上,进而建立起网络层上的LSP。LSP既可以建立在两个相邻的LSR之间,也可以终止于网络出口节点,从而在网络的所有节点上可以使用标签交换。
下面结合附图介绍MPLS体系结构,参见图1,该图为现有技术MPLS体系结构图。
MPLS体系结构分为控制平面100和转发平面200。控制平面100通过信令协议单元103生成LSP102,并将生成的LSP102信息同时发送至标签信息库101和转发平面200的标签转发信息库201。转发平面200用于指导标签转发信息库201转发控制信息。
所谓优雅重启(GR,Graceful Restart),是指重启端(Restarter)的控制平面100进行重启时,转发平面200保持标签转发信息库201不变,从而保持标签转发不中断。具体是指,控制平面100被重启,在GR期间,标签信息库101中的信息会被打上“Stale”标志,但不通知转发平面200的标签转发信息库201,使标签转发信息库201的信息与重启之前保持一致。控制平面100正常工作后,重新生成LSP,并更新标签信息库101和标签转发信息库201。如果在指定时间内,标签信息库101中的信息没有恢复,则应该退出LDP GR,并删除还未恢复的标签信息。
RFC3478规定,控制平面重启时,Restarter启动一个MPLS定时器。该定时器超时之前,转发平面保留控制平面重启前的标签转发信息,同时控制平面进行标签信息的恢复工作。定时器超时之后,如果还存在没有被恢复的标签信息,转发平面将其删除。
协助端(Helper)启动一个重连接(Reconnect)定时器。如果Helper和Restarter之间的LDP会话没有在Reconnect定时器超时之前重新建立,那么超时之后Helper会退出GR,并将相关标签信息删除。如果LDP会话在超时之前已经建立,那么Helper会在建立LDP会话时删除Reconnect定时器,再启动一个恢复(Recovery)定时器,并在Recovery定时器超时后退出GR,将未恢复的标签信息删除。
上述三个定时器的间隔均可以由用户进行配置,并在建立LDP Session时协商Reconnect定时器和Recovery定时器的间隔。
设立上述三个定时器的目的是为了控制Restarter和Helper退出GR的时间。但LSR恢复重启前所有LSP所需的时间不仅与LSP的数量有关,而且与路由器的处理速度、网络状态和拓扑环境均有关系。实际应用中,Restarter和Helper上的定时器超时时刻不同步,会导致两者的转发表项不会及时被删除,从而出现转发不通的情况。
综上所述,现有技术中利用上述三个定时器无法控制Restarter和Helper及时退出GR。
发明内容
本发明实施例提供一种退出优雅重启的方法、设备及系统,能够控制Restarter和Helper及时退出LDP GR。
本发明实施例提供一种退出优雅重启的方法,包括:重启端启动第一定时器;若所述第一定时器超时,退出优雅重启,并向所有邻居协助端分别发送第一通知消息,通知所述所有邻居协助端退出优雅重启;和/或,若收到所有邻居协助端发送的退出了优雅重启的第二通知消息,退出所述优雅重启。
本发明实施例还提供一种退出优雅重启的方法,包括:协助端启动第二定时器;若第二定时器超时,退出优雅重启,并向邻居重启端发送所述协助端退出了优雅重启的第二通知消息;和/或,若收到邻居重启端发送的通知协助端退出优雅重启的第一通知消息,退出所述优雅重启。
本发明实施例还提供一种退出优雅重启的重启端,包括:第一判断单元,第一通知单元、第一检测单元和第一退出单元;
所述第一判断单元,用于判断重启端的第一定时器是否超时,和/或,用于判断是否收到所有邻居协助端发送的退出了优雅重启的第二通知消息;
所述第一退出单元,用于当所述第一判断单元判断重启端的第一定时器超时时,和/或,当所述第一判断单元判断收到所有邻居协助端发送的第二通知消息时,退出所述优雅重启;
所述第一通知单元,用于当所述第一判断单元判断重启端的第一定时器超时时,向所有邻居协助端分别发送退出优雅重启的第一通知消息,通知所述所有邻居协助端退出优雅重启。
本发明实施例还提供一种退出优雅重启的协助端,包括:第二判断单元,第二通知单元和第二退出单元;
所述第二判断单元,用于判断所述协助端的第二定时器是否超时,和/或,用于判断是否收到所述邻居重启端发送的通知协助端退出优雅重启的第一通知消息;
所述第二退出单元,用于当所述第二判断单元判断所述协助端的的第二定时器超时时,和/或,当所述第二判断单元判断收到所述邻居重启端发送的通知协助端退出优雅重启的第一通知消息时,退出所述优雅重启;
所述第二通知单元,用于当收到所述第二判断单元判断所述协助端的第二定时器超时时,向邻居重启端发送所述协助端退出了优雅重启的第二通知消息。
本发明实施例还提供一种退出优雅重启的系统,包括:包括重启端和协助端;
当所述重启端的第一定时器超时时,所述重启端退出优雅重启,并向所有邻居协助端分别发送通知协助端退出优雅重启的第一通知消息;所述邻居协助端收到所述第一通知消息后,退出所述优雅重启;
当所述协助端的第二定时器超时时,所述协助端退出所述优雅重启,并向邻居重启端发送所述协助端退出了优雅重启的第二通知消息;所述重启端收到所有邻居协助端发送的退出了优雅重启的第二通知消息后,退出所述优雅重启。
以上技术方案,保证了重启端和协助端可以及时退出优雅重启,从而避免两者的转发表项未被及时删除,出现转发不通的情况。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图2,该图为本发明实施例中重启端和协助端的系统结构图。
一般网络中的重启端(Restarter)对应多个协助端(Helper)。如图2所示一个Restarter对应三个协助端,分别是Helper 1、Helper 2和Helper 3。
方法实施例一:
参见图3,该图为基于本发明方法第一实施例流程图。
本实施例以重启端为例说明本发明退出优雅重启的方法。
S301:当控制平面重启时,Restarter启动第一定时器。
在本发明实施例中,Restarter启动的第一定时器为MPLS定时器。在第一定时器超时前,转发平面会保留控制平面重启前的标签转发信息,控制平面进行标签信息的恢复工作。在第一定时器超时后,如果存在没有被恢复的标签信息,转发平面会将没有被恢复的标签信息删除。
S302a:若第一定时器超时,Restarter退出GR,并向所有邻居Helper发送第一通知消息,该第一通知消息用于通知邻居Helper退出GR。
S302b:若Restarter收到所有邻居Helper发送的第二通知消息,Restarter退出GR,其中该第二通知消息用于通知Restarter,发送该第二通知消息的Helper已退出GR。
需要说明的是,S302a和S302b均是Restarter退出GR的判断条件,即第一定时器超时和/或收到所有邻居Helper发送的退出GR的第二通知消息,Restarter需要退出GR。
以图2一个Restarter对应着多个邻居Helper为例进行说明:
若Restarter的第一定时器超时,Restarter退出GR,并分别向Helper1、Helper2、Helper3发送第一通知消息,通知Helper1、Helper2、Helper3退出GR,即只要Restarter退出GR,则该Restarter的所有邻居Helper也需要退出GR。
若Restarter收到了有的邻居Helper发送过来的退出了GR的第二通知消息,例如Restarter只收到了Helper1发送过来的退出了GR的第二通知消息,此时Restarter并不退出GR;Restarter需要等待收到Helper2和Helper3发送的退出了GR的第二通知消息后,Restarter退出GR;即Restarter需要收到所有邻居Helper发送的退出GR的第二通知消息才退出GR。
本发明提供的退出GR的方法,增加了退出GR的通知消息,可以使Restarter和其所有邻居Helper及时退出GR,从而避免两者的转发表项未被及时删除,出现转发不通的情况。
S303:将未恢复的标签信息删除。
删除未恢复的标签信息是为了使标签信息重新建立后,不受重启前的影响。
方法实施例二:
参见图4,该图为基于本发明方法第二实施例流程图。
本实施例是以协助端为例说明本发明退出GR的方法。
S401:当控制平面重启时,Helper启动第二定时器。
S402a:若第二定时器超时,Helper退出GR,并向其邻居Restarter发送该Helper退出了GR的第二通知消息。
S402b:若收到邻居Restarter发送的通知Helper退出GR的第一通知消息,Helper退出GR。
上述S402a和S402b均是Helper退出GR的判断条件,即第二定时器超时和/或收到邻居Restarter发送的退出GR的第一通知消息,Helper需要退出GR。
需要说明的是,一个Helper退出GR,仅发送退出GR的第二通知消息至邻居Restarter。但是,此时邻居Restarter不退出GR,邻居Restarter需要收到所有Helper退出GR的第二通知消息才退出GR。如果Helper收到邻居Restarter发送的退出GR的通知消息,则需要退出GR。这样保证了Restarter和Helper及时退出GR,从而避免两者的转发表项未被有效删除,出现转发不通的情况。
S403:将未恢复的标签信息删除。
删除未恢复的标签信息是为了使标签信息重新建立后,不受重启前的影响。
下面详细说明Helper根据定时器超时退出GR的具体过程。
在本实施例中第二定时器具体为Reconnect定时器和/或Recovery定时器。
Helper首先启动一个Reconnect定时器。
如果Helper和Restarter之间的LDP会话在Reconnect定时器超时之前没有重新建立,那么超时之后Helper会退出GR,并将相关标签信息删除。
如果LDP会话在Reconnect定时器超时之前已经建立,那么Helper会在建立LDP会话时删除Reconnect定时器,再启动一个Recovery定时器,并在Recovery定时器超时后退出GR,将未恢复的标签信息删除。需要说明的是,如果Recovery定时器没有超时,则Helper保持正常工作,不退出GR。
以上方法实施例均说明Restarter的第一定时器超时和/或收到所有邻居Helper发送的退出GR的第二通知消息,Restarter需要退出GR;Helper的第二定时器超时和/或收到邻居Restarter发送的退出GR的第一通知消息,Helper需要退出GR;若Restarter退出GR向Helper发送退出GR的第一通知消息,Helper在接收到该第一通知消息时及时退出GR;而若Helper退出GR向Restarter发送该Helper退出了GR的第二通知消息,Restarter在接收到该第二通知消息时要判断是否其邻居所有Helper都退出了GR,当所有Helper都退出了GR,Restarter才退出GR。
本发明还提供一种退出GR的重启端。
重启端实施例一:
参见图5,该图为基于本发明实施例中重启端的结构图。
本实施例提供的退出GR的Restarter包括:第一判断单元501,第一退出单元502和第一通知单元503。
第一判断单元501,用于判断当控制平面重启时,Restarter启动的第一定时器是否超时;若第一定时器超时,向第一退出单元502和第一通知单元503发送第一定时器超时的消息;和/或第一判断单元501,用于判断是否收到所有邻居Helper发送的第二通知消息,该第二通知消息用于通知Restarter,发送该第二通知消息的Helper已退出GR。
第一退出单元502,用于当第一判断单元501判断第一定时器超时和/或当第一判断单元501收到所有邻居Helper发送的第二通知消息的消息时,退出GR。
第一通知单元503,用于当接收到第一判断单元501发送的第一定时器超时的消息后,向所有邻居Helper发送第一通知消息,该第一通知消息用于通知邻居Helper退出GR。
本实施例提供的Restarter,当第一退出单元502收到第一判断单元501超时的消息时,退出GR,并且第一通知单元503通知所有邻居Helper也退出GR。这样保证了Restarter的第一定时器超时时,Restarter和Helper可以及时退出GR。当第一退出单元502收到第一判断单元501发送的所有邻居Helper退出了GR的消息时,第一退出单元502也退出GR。这样也保证了Restarter和Helper可以及时退出GR。以上两种情况均可以避免Restarter和Helper的转发表项未被及时删除,出现转发不通的情况。
本实施例提供的Restarter还包括第一删除单元504,当第一退出单元502退出GR以后,第一删除单元504,用于删除未恢复的标签信息。删除未恢复的标签信息是为了使标签信息重新建立后,不受重启前的影响。
以上实施例提供的Restarter可以使Restarter和邻居Helper及时退出GR,这样可以避免Restarter和Helper的转发表项未被及时删除,出现转发不通的情况。
本发明还提供一种退出GR的Helper。
协助端实施例一:
参见图6,该图为基于本发明实施例中协助端的结构图。
本实施例提供一种退出GR的Helper,包括:第二判断单元601,第二退出单元602和第二通知单元603。
第二判断单元601,用于判断当控制平面重启时,Helper启动的第二定时器是否超时,当第二定时器超时时,向第二退出单元602和第二通知单元603发送第二定时器超时的消息。
第二退出单元602,用于当第二判断单元601判断第二定时器超时和/或第二判断单元601检测到邻居Restarter发送的通知Helper退出GR的第一通知消息时,退出所述GR。
第二通知单元603,用于当第二判断单元601判断第二定时器超时的消息时,向邻居Restarter发送退出GR的通知消息,通知邻居Restarter退出GR。
需要说明的是,一个Helper退出GR时,仅发送退出GR的通知消息至邻居Restarter。但是,此时邻居Restarter不退出GR。如果Helper收到邻居Restarter发送的退出GR的通知消息,则退出GR。这样保证了Restarter和Helper及时退出GR,从而避免两者的转发表项未被及时删除,出现转发不通的情况。
下面详细说明Helper根据定时器超时退出GR的具体过程。
Helper首先启动一个Reconnect定时器。
如果Helper和Restarter之间的LDP会话没有在Reconnect定时器超时之前重新建立,那么超时之后Helper会退出GR,并将相关标签信息删除。
如果LDP会话在Reconnect定时器超时之前已经建立,那么Helper会在建立LDP会话时删除Reconnect定时器,再启动一个恢复(Recovery)定时器,并在Recovery定时器超时后退出GR,将未恢复的标签信息删除。
本实施例提供的Helper还包括第二删除单元604,当第二退出单元602退出优雅重启以后,第二删除单元604,用于删除未恢复的标签信息。删除未恢复的标签信息是为了使标签信息重新建立后,不受重启前的影响。
以上实施例提供的Helper可以使Helper和邻居Restarter及时退出GR,这样可以避免Restarter和Helper的转发表项未被及时删除,出现转发不通的情况。
本发明还提供一种退出GR的系统。
系统实施例一:
参见图2,该图为基于本发明实施例的系统结构图。
一种退出优雅重启的系统,包括重启端和协助端;
当重启端的第一定时器超时时,重启端退出优雅重启,并向所有邻居协助端分别发送通知协助端退出优雅重启的第一通知消息;邻居协助端收到所述第一通知消息后,退出所述优雅重启;
当协助端的第二定时器超时时,协助端退出所述优雅重启,并向邻居重启端发送协助端退出了优雅重启的第二通知消息;重启端收到所有邻居协助端发送的退出了优雅重启的第二通知消息后,退出优雅重启。
需要说明的是,本实施例以一个重启端Restarter和三个邻居协助端Helper1、Helper2、Helper3为例来说明,一般一个Restarter对应着多个Helper,并不局限于三个。
当控制平面重启时,Restarter启动第一定时器。若Restarter的第一定时器超时,Restarter退出优雅重启;并且,Restarter发送退出优雅重启的第一通知消息至所有邻居协助端Helper1、Helper2、Helper3。
所有邻居Helper1、Helper2、Helper3收到第一通知消息后,退出所述优雅重启。即,只要Restarter退出GR,则其所有邻居Helper也需要退出GR。
当控制平面重启时,Helper启动第二定时器,若Helper的第二定时器超时,该Helper退出GR;并且,该Helper发送退出了GR的第二通知消息至其邻居Restarter。
需要说明的是,上述协助端可能是Helper1、Helper2、Helper3中的任意一个或多个。例如,仅Helper1的定时器超时需要退出GR,则Helper1发送退出GR的通知消息至Restarter。但是Restarter得到通知消息后并不需要退出GR。即,只有一个协助端退出GR时,其他协助端和重启端不需要退出GR。当收到所有邻居Helper1、Helper2、Helper3发送的退出优雅重启的通知消息时,Restarter才需要退出GR。即,重启端在所有Helper退出GR之后才退出GR。
当Restarter和Helper退出GR以后,均将未恢复的标签信息删除。
本发明提供的退出GR的系统,定时器超时和退出GR的通知消息只要满足其一就退出GR,保证了Restarter和Helper可以及时退出GR,从而避免Restarter和Helper的转发表项未被及时删除,出现转发不通的情况。
需要说明的是,上述系统中的Restarter和Helper包括装置实施例中Restarter和Helper实施例中的具体单元。
本发明所述方法、设备和系统不仅应用于CR-LDP使用定时器来控制退出GR的时间的信令,而且同样适用于资源预留协议(RSVP,ResourceRe-Servation Protocol)使用定时器来控制退出GR的时间的信令。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,可以包括前述的通信方法各个实施方式的内容。这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:重启端启动第一定时器;若所述第一定时器超时,退出优雅重启,并向所有邻居协助端分别发送第一通知消息,通知所述所有邻居协助端退出优雅重启;和/或,若收到所有邻居协助端发送的退出了优雅重启的第二通知消息,退出所述优雅重启。