一种退出平滑重启的方法及装置与流程

文档序号:12822014阅读:212来源:国知局
一种退出平滑重启的方法及装置与流程

本发明涉及通信路由技术,尤指一种退出平滑重启(gr)的方法及装置。



背景技术:

平滑重启(gr,gracefulrestart)是一种用于在路由协议重启时保证数据转发层面功能正常,确保关键业务不中断的技术。如果没有使用gr技术,主备切换可能因为路由协议重启或其他原因造成一定时长的流量转发中断,并在全网中形成路由震荡。由于gr包含的冗余容错、链路保证、节点故障修复等功能,gr已被广泛地应用与主备切换和系统升级等场景,实现主备切换或系统升级时关键业务不间断转发。

开放式最短路径优先(ospf,openshortestpathfirst)主备倒换重启后,邻居路由器会协助重启路由器完成平滑重启,主要职责包括协助重启路由器完成链路状态数据库的同步,期间不管重启路由器的邻居状态如何,都会在自己产生的路由器链路状态通告(lsa,linkstateadvertisement)中保持指向重启路由器的连接。当重启路由器和倒换前的所有邻居路由器完成链路状态数据库同步,即邻居状态到达full时,重启路由器会退出平滑重启过程,接口发送老化年龄时间的平滑重启lsa通知邻居路由器退出gr协助过程。路由器倒换重启后,邻居路由器会协助重启路由器完成平滑重启过程。当所有邻居路由器完成协助链路状态数据库同步后,重启路由器已经获取到重启前数据库中所有的链路状态信息,此时重启路由器退出平滑重启过程,发送老化年龄时间的平滑重启lsa通知邻居路由器退出gr协助过程。

上述gr过程中,只要还有邻居路由器未完成协助链路状态数据库同步,重启路由器就不会通知其他已完成协助链路状态数据库同步的邻居路由器退出gr协助过程,使得已完成协助链路状态数据库同步的邻居路由器退出gr协助过程滞后。



技术实现要素:

为了解决上述技术问题,本发明提供一种实现退出平滑重启的方法及装置,能够避免已完成协助链路状态数据库同步的邻居路由器退出gr协助过程滞后。

为了达到本发明目的,本发明提供了一种退出平滑重启的方法,包括:

分别判断实例下包含的各接口是否进行退出平滑重启gr处理;

对确定进行退出gr处理的接口完成退出gr处理后,通知该接口对应的邻居路由器退出gr协助过程。

可选的,分别判断实例下包含的各接口是否进行退出gr处理具体包括:

对实例下各接口,

当接口的一个邻居路由器状态到达完整full时,获取倒换前产生的链路状态通告lsa;

从所述lsa获得倒换前的所有邻居路由器信息;

根据获得的倒换前的所有邻居路由器信息确定所有邻居路由器状态均到达full时,确定对该接口进行退出gr处理;

所述lsa包括路由器lsa和/或网络lsa。

可选的,从lsa获得倒换前的所有邻居路由器信息具体包括:

根据所述lsa中的连接信息确定实例中的接口及各接口对应的邻居路由器信息。

可选的,该方法还包括:

当区域内各所述接口均完成退出gr处理时,对所述区域进行退出gr处理;

当实例下各所述区域均完成退出gr处理时,对所述实例进行退出gr处理。

可选的,对区域进行退出gr处理之前,该方法还包括:

在所述区域内出现接口完成退出gr处理时,检测并确定区域内所有接口是否均完成退出gr处理。

可选的,对实例进行退出gr处理之前,该方法还包括:

在实例下出现区域完成退出gr处理时,检测并确定实例下的所有区域是否均完成退出gr处理。

可选的,该方法还包括:

当区域完成退出gr处理时,触发区域内最短路径优先spf计算获得区域内路由信息;

当实例完成退出gr处理时,触发实例下各区域间的路由计算、和外部路由的路由计算;

根据计算获得的区域内路由信息、各区域间的路由计算及外部路由的路由计算对路由表进行更新,以重新产生链路状态通告报文并发送给其他邻居路由器。

可选的,该方法还包括:

对根据lsa确定的各个接口添加相应的gr标识,对完成退出gr处理的各个接口添加相应的接口gr完成标识;

实例中各区域完成退出gr处理时,添加相应的区域gr完成标识。

可选的,

当接口的一个邻居路由器状态到达full时,如果不包含可获取的所述倒换前产生的lsa,该方法还包括:对实例直接进行退出gr处理。

另一方面,本申请还提供一种退出平滑重启的装置,至少包括接口退出单元,接口退出单元包括:接口退出判断模块和邻居路由器处理模块;其中,

接口退出判断模块,用于分别判断实例下包含的各接口是否进行退出平滑重启gr处理;

邻居路由器处理模块,用于对确定进行退出gr处理的接口完成退出gr处理后,通知该接口对应的邻居路由器退出gr协助过程。

可选的,接口退出判断模块具体用于,对实例下各接口,

当接口的一个邻居路由器状态到达full时,获取倒换前产生的链路状态通告lsa;

从lsa获得倒换前的所有邻居路由器信息;

根据获得的倒换前的所有邻居路由器信息确定所有邻居路由器状态均到达完整full时,确定对该接口进行退出gr处理;

所述lsa包括路由器lsa和/或网络lsa。

可选的,接口退出判断模块具体用于,对实例下各接口,

当接口的一个邻居路由器状态到达full时,获取倒换前产生的链路状态通告lsa;

根据lsa中的连接信息确定实例中的接口及各接口对应的邻居路由器信息;

根据获得的倒换前的所有邻居路由器信息确定所有邻居路由器状态均到达完整full时,确定对该接口进行退出gr处理。

可选的,该装置还包括:区域退出单元和实例退出单元;其中,

区域退出单元,用于当区域内各所述接口均完成退出gr处理时,对区域进行退出gr处理;

实例退出单元,用于当实例下各所述区域均完成退出gr处理时,对实例进行退出gr处理。

可选的,该装置还包括区域退出判断单元,用于在区域内出现接口完成退出gr处理时,检测并确定区域内所有接口是否均完成退出gr处理,并在区域内各接口均完成退出gr处理时,发送区域内各接口均完成退出gr处理的信息到区域退出单元。

可选的,该装置还包括实例退出判断单元,用于在实例下出现区域完成退出gr处理时,检测并确定实例下的所有区域是否均完成退出gr处理,并在实例下各区域均完成退出gr处理时,发送实例下各区域均完成退出gr处理的信息到实例退出单元。

可选的,该装置还包括:路由更新单元,用于当区域完成退出gr处理时,触发区域内最短路径优先spf计算获得区域内路由信息;

当实例完成退出gr处理时,触发实例下各区域间的路由计算、和外部路由的路由计算;

根据计算获得的区域内路由信息、各区域间的路由计算及外部路由的路由计算对路由表进行更新,以重新产生链路状态通告报文并发送给其他邻居路由器。

可选的,该装置还包括添加标识单元,用于对根据lsa确定的各个接口添加相应的gr标识,对完成退出gr处理的各个接口添加相应的接口gr完成标识;

实例中各区域完成退出gr处理时,添加相应的区域gr完成标识。

可选的,接口退出判断模块还用于,当接口的一个邻居路由器状态到达full时,如果不包含可获取倒换前产生的lsa,发送不包含可获取倒换前产生的lsa到实例退出单元;

实例退出单元还用于,根据来自接口退出判断模块的不包含可获取倒换前产生的lsa的信息,直接对实例进行退出gr处理。

与现有技术相比,本申请技术方案包括:分别判断实例下包含的各接口是否进行退出平滑重启(gr)处理;对确定进行退出gr处理的接口完成退出gr处理后,通知该接口对应的邻居路由器退出gr协助过程。本发明方法通过对实例下的各个接口分别进行退出gr处理,各接口在退出gr处理时,通知接口的邻居路由器退出gr协助过程,避免了已完成协助链路状态数据库同步的邻居路由器退出gr协助过程滞后。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明退出平滑重启的方法的流程图;

图2为本发明退出平滑重启的装置的结构程图。

图3为本发明第一实施例的方法流程图;

图4为本发明第二实施例的方法流程图;

图5为本发明第三实施例的方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

发明人发现,当邻居路由器协助重启路由器完成链路状态数据库同步后,邻居路由器已经完成gr期间协助重启方路由器同步链路状态数据库的任务,邻居路由器可以退出gr协助过程。

图1为本发明退出平滑重启的方法的流程图,如图1所示,包括:

步骤100、分别判断实例下包含的各接口是否进行退出平滑重启(gr)处理;

需要说明的是,实施例下包含若干区域,各区域包含相应的若干接口,实施例下包含的接口为实例下包含的区域所包含的接口,为本领域技术人员的公知常识。

分别判断实例下包含的各接口是否进行退出gr处理具体包括:

对实例下各接口,

当接口的一个邻居路由器状态到达full时,获取倒换前产生的链路状态通告lsa;

从lsa获得倒换前的所有邻居路由器信息;

根据获得的倒换前的所有邻居路由器信息确定所有邻居路由器状态均到达完整full时,确定对该接口进行退出gr处理;

所述lsa包括路由器lsa和/或网络lsa。

需要说明的是,判断邻居路由器状态是否到达full具体包括:获取倒换前的所有邻居路由器信息是否已经和先前所有邻居完成了链路状态数据库同步,同步时即确定邻居路由器状态到达full,属于本领域技术人员的惯用技术手段,在此不再赘述。另外,网络lsa是接口为dr接口时的lsa,其他类型接口时为路由器lsa,为本领域技术人员的公知常识。

步骤101、对确定进行退出gr处理的接口完成退出gr处理后,通知 该接口对应的邻居路由器退出gr协助过程。

从lsa获得倒换前的所有邻居路由器信息具体包括:

根据lsa中的连接信息确定实例中的接口及各接口对应的邻居路由器信息。这里,lsa中包含的连接可以是点到点的连接、虚链的连接,还可以是与传输网络的连接。

本发明方法还包括:

当区域内各接口均完成退出gr处理时,对区域进行退出gr处理;

优选的,对区域进行退出gr处理之前,本发明方法还包括:

在区域内出现接口完成退出gr处理时,检测并确定区域内所有接口是否均完成退出gr处理。

当实例下各区域均完成退出gr处理时,对实例进行退出gr处理。

对实例进行退出gr处理之前,本发明方法还包括:

在实例下出现区域完成退出gr处理时,检测并确定实例下的所有区域是否均完成退出gr处理。

当接口的一个邻居路由器状态到达full时,如果不包含可获取倒换前产生的lsa,本发明方法还包括:对实例直接进行退出gr处理。

本发明方法还包括:

当区域完成退出gr处理时,触发区域内最短路径优先(spf)计算获得区域内路由信息;

当实例完成退出gr处理时,触发实例下各区域间的路由计算、和外部路由的路由计算;

根据计算获得的区域内路由信息、各区域间的路由计算及外部路由的路由计算对路由表进行更新,以重新产生链路状态通告报文并发送给其他邻居路由器。

本发明方法还包括:

根据lsa确定的各个接口添加相应的gr标识,对完成退出gr处理的各个接口添加相应的接口gr完成标识;

实例中各区域完成退出gr处理时,添加相应的区域gr完成标识。

本发明方法通过对实例下的各个接口分别进行退出gr处理,各接口在退出gr处理时,通知接口的邻居路由器退出gr协助过程,避免了已完成协助链路状态数据库同步的邻居路由器退出gr协助过程滞后。

图2为本发明退出平滑重启的装置的结构程图,如图2所示,至少包括接口退出单元,接口退出单元包括:接口退出判断模块和邻居路由器处理模块;其中,

接口退出判断模块,用于分别判断实例下包含的各接口是否进行退出平滑重启gr处理;

接口退出判断模块具体用于,对实例下各接口,

当接口的一个邻居路由器状态到达full时,获取倒换前产生的链路状态通告lsa;

从lsa获得倒换前的所有邻居路由器信息;

根据获得的倒换前的所有邻居路由器信息确定所有邻居路由器状态均到达完整full时,确定对该接口进行退出gr处理;

所述lsa包括路由器lsa和/或网络lsa。

接口退出判断模块具体用于,对实例下各接口,

当接口的一个邻居路由器状态到达full时,获取倒换前产生的链路状态通告lsa;

根据lsa中的连接信息确定实例中的接口及各接口对应的邻居路由器信息;

根据获得的倒换前的所有邻居路由器信息确定所有邻居路由器状态均到达完整full时,确定对该接口进行退出gr处理。

邻居路由器处理模块,用于对确定进行退出gr处理的接口完成退出gr处理后,通知该接口对应的邻居路由器退出gr协助过程。

本发明装置还包括:区域退出单元和实例退出单元;其中,

区域退出单元,用于当区域内各接口均完成退出gr处理时,对区域进 行退出gr处理;

实例退出单元,用于当实例下各区域均完成退出gr处理时,对实例进行退出gr处理。

本发明装置还包括区域退出判断单元,用于在区域内出现接口完成退出gr处理时,检测并确定区域内所有接口是否均完成退出gr处理,并在区域内各接口均完成退出gr处理时,发送区域内各接口均完成退出gr处理的信息到区域退出单元。

本发明装置还包括实例退出判断单元,用于在实例下出现区域完成退出gr处理时,检测并确定实例下的所有区域是否均完成退出gr处理,并在实例下各区域均完成退出gr处理时,发送实例下各区域均完成退出gr处理的信息到实例退出单元。

本发明装置还包括:路由更新单元,用于当区域完成退出gr处理时,触发区域内最短路径优先spf计算获得区域内路由信息;

当实例完成退出gr处理时,触发实例下各区域间的路由计算、和外部路由的路由计算;

根据计算获得的区域内路由信息、各区域间的路由计算及外部路由的路由计算对路由表进行更新,以重新产生链路状态通告报文并发送给其他邻居路由器。

本发明装置还包括添加标识单元,用于对根据lsa确定的各个接口添加相应的gr标识,对完成退出gr处理的各个接口添加相应的接口gr完成标识;

实例中各区域完成退出gr处理时,添加相应的区域gr完成标识。

接口退出判断模块还用于,当接口的一个邻居路由器状态到达full时,如果不包含可获取倒换前产生的lsa,发送不包含可获取倒换前产生的lsa到实例退出单元;

实例退出单元还用于,根据来自接口退出判断模块的不包含可获取倒换前产生的lsa的信息,直接对实例进行退出gr处理。

本发明装置可以直接设置在重启路由器,或与重启路由器进行连接或交 互实现。具体设置或连接不需要本领域技术人员付出创造性劳动。

以下通过具体实施例对本发明方法进行清楚详细的说明,实施例仅用于陈述本发明,并不用于限定本发明方法的保护范围。

实施例1

本实施例以接口退出gr处理为例进行清楚详细的说明,本实施例将本发明装置设置在重启路由器中,图3为本发明第一实施例的方法流程图,如图3所示,包括:

步骤300、重启路由器发现接口下的一个邻居路由器状态达到full;

步骤301、重启路由器搜索该接口所属区域的区域数据库,获取接口倒换前产生的路由器链路状态通告lsa;如果获取倒换前产生的lsa成功,执行步骤3030;如果获取倒换前产生的lsa失败,执行步骤3020;

步骤3020、实例进行退出gr处理;

需要说明的是,当出现接口的邻居路由器邻居状态到达full,说明邻居路由器已经完成协助重启路由器完成数据库信息的同步,如果此时没有得到重启方倒换前产生的lsa和网络lsa,也就无法得到倒换前的邻居信息,说明两端数据库出现了不一致,重启方路由器立刻退出gr过程。

步骤3030、从lsa获得倒换前的所有邻居路由器信息;

具体包括:根据lsa中的连接信息确定实例中的接口及各接口对应的邻居路由器信息。

本实施例中,lsa中包含的连接可以是点到点的连接、虚链的连接,还可以是与传输网络的连接。lsa中包含的连接通过linkdate字段的接口地址可以进行确认。如果接口类型为点到点或者虚链,连接中的linkid字段就是对应的邻居,如果接口类型为广播网并且接口不为dr,连接中的linkid字段就是对应的邻居(邻居是dr),如果接口类型为广播网并且接口为dr,需要在数据库中找出重启路由器倒换前产生的网络lsa,网络lsa中的连接邻居字段就是接口上对应的邻居;

步骤3031、根据获得的倒换前的所有邻居路由器信息确定所有邻居路由器状态均到达完整full时,确定对接口进行退出gr处理;

优选的,根据lsa中连接种类的不同,分别进行确定所有邻居路由器状态均到达完整full的判断和,对接口进行退出gr处理;具体包括以下遍历过程:

当接口为点到点的连接时,确定该接口是否所有邻居路由器状态均到达完整full,如果所有邻居路由器状态均到达完整full,对接口进行退出gr处理;如果存在邻居路由器状态未到达full,则继续进行监测。为了避免重复进行lsa的分析获得接口,对分析lsa获得的接口可以进行添加标识或状态编码的处理,对完成退出gr处理的接口也添加相应的完成标识或状态编码。添加标识或状态编码的方法为本领域技术人员的惯用技术手段。

当接口为与传输网络的连接时,确定该接口是否所有邻居路由器状态均到达完整full,如果所有邻居路由器状态均到达完整full,对接口进行退出gr处理;如果存在邻居路由器状态未到达full,则继续进行监测。

当接口为虚链的连接时,确定该接口是否所有邻居路由器状态均到达完整full,如果所有邻居路由器状态均到达完整full,对接口进行退出gr处理;如果存在邻居路由器状态未到达full,则继续进行监测。

需要说明的是,如果实例中的接口是dr接口,那么本实施例方法需要重启路由器获取倒换前产生的网络lsa,通过倒换前产生的网络lsa来获取重启前的邻居路由器信息;

从网络lsa中获取重启前的邻居路由器信息的方法为本领域技术人员的惯用技术手段,对网络lsa分析获取接口及接口的邻居路由器信息后,进行是否退出gr处理的过程和本实施例lsa的方法一致,在此不再赘述。

步骤3032、接口完成退出gr处理后,通知该接口对应的邻居路由器退出gr协助过程。

实施例2

本实施例以接口完成退出gr处理时添加接口gr完成标识为基础,对区域是否进行退出gr处理为例进行清楚详细的说明。

图4为本发明第二实施例的方法流程图,如图4所示,包括:

步骤400、当区域内的一个接口完成gr处理时,检测并确定区域内所 有接口是否均完成退出gr处理;

需要说明的是,本实施例在接口完成gr处理时添加接口gr完成标识,因此通过标识可以确定接口是否完成退出gr处理。区域内各接口均完成退出gr处理时,执行步骤401;否则,重新执行步骤400。

步骤401、确定区域内各接口均完成退出gr处理时,对区域进行退出gr处理。本实施例具体通过统计添加接口gr完成标识的接口数量与区域内添加gr标识的接口数目是否一致,确定区域内各接口是否均完成退出gr处理。

需要说明的是,如果本实施例区域内包含未完成退出gr处理的接口,则重复执行步骤400,直至各接口均完成退出gr处理时,进行后续处理。

步骤402、区域完成退出gr处理时,触发区域内最短路径优先spf计算,获得区域内路由信息;获得的区域内路由信息主要用于后续实例退出gr过程时对路由表进行更新。

实施例3

本实施例基于实例下的区域完成退出gr处理时,添加区域gr完成标识为基础,对实例退出gr进行清楚详细的说明。

图5为本发明第三实施例的方法流程图,如图5所示,包括:

步骤500、在实例下出现区域完成退出gr处理时,检测并确定实例下的所有区域是否均完成退出gr处理;

所有区域均完成退出gr处理是,执行步骤501;否则,重新执行步骤500。

步骤501、在实例下各区域均完成退出gr处理时,对实例进行退出gr处理。

步骤502、实例完成退出gr处理时,触发实例下各区域间的路由计算、和外部路由的路由计算;

步骤503、根据区域完成退出gr处理时计算获得的区域内路由信息,和实例下所有区域完成退出gr处理时各区域间的路由计算及外部路由的路由计算对路由表进行更新,并重新产生链路状态通告报文并发送给其他邻居 路由器。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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