Processing

Please wait...

PATENTSCOPE will be unavailable a few hours for maintenance reason on Tuesday 26.10.2021 at 12:00 PM CEST
Settings

Settings

Goto Application

1. CN110708207 - Routing oscillation positioning method, server and machine readable storage medium

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]
路由震荡定位方法、服务器及机器可读存储介质


技术领域
本发明涉及网络通信技术领域,尤其涉及一种路由震荡定位方法、服务器及机器可读存储介质。
背景技术
互联网实现万物互联的核心在于网络设备实现报文转发,网络设备的正常转发在于路由表的稳定完整。如果路由表中条目出现震荡,轻则会导致源设备到目的设备的转发过程出现丢包,速率低等问题;重则导致业务处于停滞状态,带来的损失难以估量。
因此,当发生路由震荡时,如何实现路由震荡定位成为一个亟待解决的问题。
发明内容
本发明提供一种路由震荡定位方法、服务器及机器可读存储介质,以解决目前无法实现路由震荡定位的问题。
根据本发明实施例的第一方面,提供一种路由震荡定位方法,包括:
对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备;
对所述目标设备进行震荡路由检测,以确定是否存在震荡路由;
对于任一所述目标设备,当该目标设备上存在震荡路由时,确定所述震荡路由的震荡源,并确定震荡原因。
结合第一方面,在第一种可能的实现方式中,所述对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备包括:
按照所述待检测设备的轮询时间间隔对所述待检测设备进行轮询;
对于任一待检测设备,当检测到该待检测设备的路由表条目数量发生变化时,将该待检测设备的轮询时间间隔减去第一预设时间;
当该待检测设备的轮询时间间隔等于预设触发检测时间时,执行对所述目标设备进行震荡路由检测的步骤。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述按照所述待检测设备的轮询时间间隔对所述待检测设备进行轮询,包括:
每隔第二预设时间,将所述待检测设备的剩余检测时间减去所述第二预设时间;
当所述待检测设备的剩余检测时间小于等于0时,对所述待检测设备进行预检测,并将所述待检测设备的剩余检测时间置为所述待检测设备的轮询时间间隔。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,不同待检测设备的剩余检测时间的初始值不完全相同。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述待检测设备的剩余检测时间的初始值通过以下公式确定:
Ti=DevIDi%T0
其中,Ti为待检测设备i的剩余检测时间的初始值,1≤i≤N1,N1为待检测设备的数量,DevIDi为待检测设备i的设备标识,T0为最大轮询时间间隔,%为取余运算。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
对于任一待检测设备,当连续N2次检测到该待检测设备的路由表条目数量未发生变化时,将该待检测设备的轮询时间间隔加上第三预设时间,直至该待检测设备的轮询时间间隔达到最大轮询时间间隔。
结合第一方面,在第六种可能的实现方式中,所述对所述目标设备进行震荡路由检测,包括:
当确定出存在多个目标设备时,依次对所述目标设备进行震荡路由检测。
结合第一方面,或第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述对所述目标设备进行震荡路由检测,包括:
对于任一进行震荡路由检测的目标设备,根据该目标设备的路由信息确定该目标设备上是否存在震荡路由;
其中,所述路由信息包括目的地址以及路由表条目出现时间。
结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述根据该目标设备的路由信息确定该目标设备上是否存在震荡路由,包括:
根据路由信息收集时间间隔轮询N3次该目标设备的路由表,以收集得到路由信息;
对于任一路由表条目,当该路由表条目的震荡次数大于等于第一预设震荡次数阈值时,执行确定所述震荡路由的震荡源的步骤;
或,当该路由表条目的震荡次数小于第一预设震荡次数阈值,且该路由表条目出现的总时间小于第一预设时间阈值时,执行确定所述震荡路由的震荡源的步骤;
其中,当一个路由表条目从有到无或从无到有时,该路由表条目的震荡次数加1。
结合第一方面的第八种可能的实现方式,在第九种可能的实现方式中,所述路由信息收集时间间隔随着已完成的路由信息收集次数的增多而增大或减小。
结合第一方面,在第十种可能的实现方式中,所述确定所述震荡路由的震荡源,包括:
对于任一震荡路由,判断该震荡路由是否为该目标设备的直连路由;
若是,则确定该目标设备为该震荡路由的震荡源;
否则,根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源。
结合第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,所述根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源,包括:
判断该震荡路由对应的路由协议表条目是否处于震荡状态;
若是,则在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测,直至确定该震荡路由的震荡源;
若否,则执行确定震荡原因的步骤。
结合第一方面的第十一种可能的实现方式,在第十二种可能的实现方式中,所述方法还包括:
对于任一目标设备,根据路由协议信息收集时间间隔轮询N4次该目标设备的路由协议表,以收集得到路由协议信息;其中,所述路由协议信息包括目的地址以及路由协议表条目出现时间;
对于任一路由协议表条目,当该路由协议表条目的震荡次数大于等于第二预设震荡次数阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测的步骤;
或,当该路由协议表条目的震荡次数小于第二预设震荡次数阈值,且该路由协议表条目出现的总时间小于第二预设时间阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测的步骤;
其中,当一个路由协议表条目从有到无或从无到有时,该路由协议表条目的震荡次数加1。
结合第一方面的第十二种可能的实现方式,在第十三种可能的实现方式中,所述路由协议信息收集时间间隔随着已完成的路由协议信息收集次数的增多而增大或减小。
结合第一方面,在第十四种可能的实现方式中,所述确定震荡原因,包括:
收集所述震荡源的震荡现象;
根据所述震荡源的震荡现象确定震荡原因。
结合第一方面的第十四种可能的实现方式,在第十五种可能的实现方式中,所述根据所述震荡源的震荡现象确定震荡原因,包括:
根据所述震荡源的震荡现象,查询预先配置的震荡现象与震荡原因的对应关系,以确定与所述震荡源的震荡现象匹配的震荡原因。
根据本发明实施例的第二方面,提供一种服务器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可读指令,所述处理器被所述机器可读指令促使执行上述路由震荡定位方法。
根据本发明实施例的第三方面,提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器执行上述路由震荡定位方法。
应用本发明实施例,通过对待检测设备进行预检测,确定满足震荡路由检测条件的目标设备,并对目标设备进行震荡路由检测,确定是否存在震荡路由,对于任一目标设备,当该目标设备上存在震荡路由时,确定该震荡路由的震荡源,并确定震荡原因,实现了路由震荡定位。
附图说明
图1是本发明实施例提供的一种路由震荡定位方法的流程示意图;
图2A是本发明实施例提供的另一种路由震荡定位方法的流程示意图;
图2B是本发明实施例提供的另一种路由震荡定位方法的流程示意图;
图2C是本发明实施例提供的另一种路由震荡定位方法的流程示意图;
图2D是本发明实施例提供的一种定位震荡源的方法的流程示意图;
图3是本发明实施例提供的一种路由信息收集时间间隔和路由震荡周期的示意图;
图4是本发明实施例提供的一种震荡现象与震荡原因的对应关系的示意图;
图5是本发明实施例提供的一种路由震荡定位方法的流程示意图;
图6是本发明实施例提供的一种网络管理平台对待检测设备进行轮询的流程示意图;
图7是本发明实施例提供的一种等待检测队列的示意图;
图8是本发明实施例提供的一种震荡路由的信息收集的流程示意图;
图9是本发明实施例提供的一种服务器的硬件结构示意图;
图10是本发明实施例提供的一种路由震荡定位控制逻辑的功能结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供的一种路由震荡定位方法的流程示意图,其中,该路由震荡定位方法可以应用于网络管理平台,例如,运行有特定网络管理软件的服务器,如图1所示,该路由震荡定位方法可以包括:
步骤101、对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备。
本发明实施例中,考虑到路由震荡通常会涉及到较多的网络设备,而各网络设备上的路由信息也通常会较多,若发生路由震荡时,直接通过分析所有网络设备的全部路由信息来定位震荡路由,则工作量会很大,效率会很低,因此,为了提高路由震荡定位的效率,并减少路由震荡的工作量,当需要进行路由震荡定位时,可以先对待检测设备进行预检测,以筛选出满足震荡路由检测条件的待检测设备(本文中称为目标设备)。
在本发明其中一个实施例中,上述步骤101,对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备,在一种实施方式中,如图2A所示,可以包括:
步骤1011,按照待检测设备的轮询时间间隔对待检测设备进行轮询;
步骤1012,对于任一待检测设备,当检测到该待检测设备的路由表条目数量发生变化时,将该待检测设备的轮询时间间隔减去第一预设时间;
步骤1013,当该待检测设备的轮询时间间隔等于预设触发检测时间时,执行对目标设备进行震荡路由检测的步骤。
具体的,在该实施例中,网络管理平台可以通过轮询的方式对待检测设备进行预检测。
相应地,可以预先设置各待检测设备的轮询时间间隔(即每隔该轮询时间间隔,对对应的待检测设备进行预检测),网络管理平台可以根据各待检测设备的轮询时间间隔对对应的待检测设备进行预检测。
其中,不同的待检测设备的轮询时间间隔可以不同。
当然,各待检测设备的轮询时间间隔也可以相同。例如,网络管理平台可以每隔30秒(即各待检测设备的轮询时间间隔均为30秒)对各待检测设备进行预检测。
在该实施例中,网络管理平台对待检测设备进行预检测可以包括获取该待检测设备的路由条目的数量,并判断该待检测设备的路由条目的数量是否发生变化,即此次(非首次)获取到的该待检测设备的路由条目的数量与上一次获取到的该待检测的路由条目的数量是否相同,并当网络管理平台确定该待检测设备的路由条目的数量发生变化时,将该待检测设备的轮询时间间隔减去预设时间(本文中称为第一预设时间,可以根据实际场景设定,如3秒、5秒等)。
其中,对于网络管理平台第一次获取到某个待检测设备的路由条目的数量时,网络管理平台可以仅记录该路由条目的数量,而不需要去判断该待检测设备的路由条目的数量是否发生变化。
在该实施例中,对于任一待检测设备,当该待检测设备的轮询时间间隔等于预设触发时间检测时间时(可以根据实际场景设定,如15秒、20秒等),网络管理平台可以确定该待检测设备满足震荡路由检测条件,进而,网络管理平台可以确定该待检测设备为目标设备,并执行步骤102,即执行对目标设备进行震荡路由检测的步骤。
应该认识到,在本发明实施例中,上述根据待检测设备的轮询时间间隔确定待检测设备是否满足震荡路由检测条件仅仅是本发明实施例中确定待检测设备是否满足震荡路由检测条件的一个具体实例,而并不是对本发明保护范围的限定,即在本发明实施例中,也可以通过其他方式确定待检测设备是否满足震荡路由检测条件,例如,可以将路由条目的数量发生变化的待检测设备即确定为满足震荡路由检测条件,本发明实施例对此不做进一步限定。
进一步地,在本发明实施例中,为了避免网络管理平台一直实时监测各待检测设备是否需要进行预检测,网络管理平台可以每隔一定时间(本文中称为第二预设时间,可以根据实际场景设定,如3秒、5秒等)判断一次各待检测设备是否需要进行预检测。
相应地,在一个示例中,如图2B所示,上述步骤1011,按照待检测设备的轮询时间间隔对待检测设备进行轮询,可以包括:
步骤10111,每隔第二预设时间,将待检测设备的剩余检测时间减去第二预设时间;其中,待检测设备的剩余检测时间的初始值为待检测设备的轮询时间间隔的初始值;
步骤10112,当待检测设备的剩余检测时间小于等于0时,对该待检测设备进行预检测,并将该待检测设备的剩余检测时间置为该待检测设备的轮询时间间隔。
举例来说,假设第二预设时间为5秒,网络管理平台可以每隔5秒,将待检测设备的剩余检测时间减去5秒。
对于任一待检测设备,当该待检测设备的剩余检测时间小于等于0时,对该待检测设备进行预检测,并将该待检测设备的剩余检测时间置为待检测设备的轮询时间时间间隔。
举例来说,以待检测设备A为例,假设待检测设备A的轮询时间间隔的初始值为30秒,剩余检测时间为18秒,第一预设时间为5秒,第二预设时间为5秒,预设触发检测时间为15秒,则网络管理平台可以每隔5秒,将待检测设备A的剩余检测时间减去5秒(依次变化为13秒、8秒、3秒、-2秒),当待检测设备A的剩余检测时间为-2秒(小于等于0)时,网络管理平台一方面可以对待检测设备A进行预检测,另一方面,网络管理平台可以将待检测设备A的剩余检测时间置为待检测设备A的轮询时间间隔(此时为30秒)。
其中,网络管理平台对待检测设备A进行预检测可以包括:获取待检测设备A的路由表条目数量,并比较该路由表条目数量和上一次获取到的待检测设备A的路由表条目数量,若相同,则保持待检测设备A的轮询时间间隔不变;否则,将待检测设备A的轮询时间间隔减去5秒(即变为25秒)。
以待检测设备A的轮询时间间隔变为25秒为例,网络管理平台将待检测设备A的剩余检测时间置为30秒之后,可以每隔5秒将待检测设备A的剩余检测时间减去5秒(依次变为25秒、15秒、10秒、5秒、0秒);当待检测设备A的剩余检测时间为0(小于等于0)秒时,网络管理平台一方面可以将待检测设备A的剩余检测时间置为轮询时间间隔(即25秒),另一方面,对待检测设备A进行预检测。
按照上述方式,当待检测设备A的轮询时间间隔为15秒时,网络管理平台可以确定待检测设备A为目标设备,并执行对目标设备进行震荡路由检测的步骤。
进一步地,在本发明实施例中,为了更合理的利用网络管理平台的设备资源,避免网络管理平台对于各待检测设备的预检测过于集中,在初始设置剩余检测时间时,不同待检测设备的剩余检测时间可以不完全相同。
举例来说,待检测设备的剩余检测时间的初始值可以通过以下公式确定:
Ti=DevIDi%T0
其中,Ti为待检测设备i的剩余检测时间的初始值,1≤i≤N1,N1为待检测设备的数量,DevIDi为待检测设备i的设备标识,T0为最大轮询时间间隔(可以根据实际场景设定,如30秒),%为取余运算。
需要说明的是,在本发明实施例中,当各待检测设备的剩余检测时间的初始值不完全相同时,若网络管理平台始终根据各待检测设备的剩余检测时间的初始值确定是否对各待检测设备进行轮询,则各待检测设备进行预检测的频率会不相同,导致相同时间内部分待检测设备被预检测的次数较多,而另一部分待检测设备被预检测的次数较少,因此,为了在避免各待检测设备进行预检测的时间过于集中的情况下,保证各待检测设备进行预检测的时间间隔尽量保持一致,网络管理平台根据各待检测设备的剩余检测时间的初始值对各待检测设备进行预检测之后,可以将各待检测设备的剩余检测时间置为轮询时间间隔。其中,各待检测设备的轮询时间间隔的初始值可以相同,在后续流程中,根据各待检测设备的路由表条目数量的变化情况分别对各检测设备的轮询时间间隔进行调整,其具体实现将在下文中结合具体实例进行说明,本发明实施例在此不做赘述。
进一步地,在本发明实施例中,考虑到网络设备的路由表条目数量的变化并不一定是由于路由震荡引起的,也有可能是由于用户配置的原因导致的,如用户添加或删除路由,因此,为了提高所确定的满足震荡路由检测的目标设备的准确性,对于任一待检测设备,当网络管理平台连续N2次检测到该待检测设备的路由表条目数量未发生变化时,将该待检测设备的轮询时间加上预设时间(本文中称为第三预设时间,可以根据实际场景设定,如3秒、5秒等),直至该待检测设备的轮询时间间隔达到预设最大轮询时间间隔。其中,最大轮询间隔时间可以由管理员根据需求进行配置。
需要说明的是,在本发明实施例中,对于任一待检测设备,预设最大轮询时间间隔可以与轮询时间间隔的初始值可以相同,也可以不同,本发明实施例对此不做限定。
步骤102、对目标设备进行震荡路由检测,以确定是否存在震荡路由。
本发明实施例中,网络管理平台通过对待检测设备进行预检测,确定了满足震荡路由条件的目标设备之后,可以对目标设备进行震荡路由检测,以确定是否存在震荡路由。
在本发明其中一个实施例中,如图2C所示,上述步骤102,对目标设备进行震荡路由检测,可以包括:
步骤1021,对于任一待检测设备,当确定该待检测设备为满足震荡路由检测条件的目标设备时,将该目标设备从尾部加入等待检测队列;
步骤1022,按照从等待检测队列的头部到尾部的顺序,依次对等待检测队列中的目标设备进行震荡路由检测。
在该实施例中,考虑到一台网络设备上的路由表条目的数量可能会很多,若网络管理平台同时对多台网络设备进行震荡路由检测,会导致网络管理平台资源压力过载,进而可能会导致处理卡顿,甚至后台崩溃,因此,为了降低网络管理平台的负载,提高网络管理平台的可靠性,网络管理平台可以每次对一台网络设备进行震荡路由检测。
相应地,在该实施例中,对于任一待检测设备,当网络管理平台确定该待检测设备为满足震荡路由检测条件的目标设备时,网络管理平台可以将该目标设备加入等待检测队列。
当需要对目标设备进行震荡路由检测时,网络管理平台可以按照从等待检测队列的头部到尾部的顺序,依次从等待检测队列中取出目标设备进行震荡路由检测。
本发明实施例中,对于任一进行震荡路由检测的目标设备,网络管理平台可以根据该目标设备的路由信息确定该目标设备上是否存在震荡路由;其中,该路由信息可以包括目的地址以及路由表条目出现时间。
其中,目的地址用于标识路由表条目,不同的目的地址对应不同的路由表条目。
在本发明其中一个实施例中,上述根据该目标设备的路由信息确定该目标设备上是否存在震荡路由,可以包括:
根据路由信息收集时间间隔轮询N3次该目标设备的路由表,以收集得到路由信息;
对于任一路由表条目,当该路由表条目的震荡次数大于等于第一预设震荡次数阈值时,执行步骤103中确定震荡路由的震荡源的步骤。
或,当该路由表条目的震荡次数小于第一预设震荡次数阈值,且该路由表条目出现的总时间小于第一预设时间阈值时,执行步骤103中确定震荡路由的震荡源的步骤;
其中,当一个路由表条目从有到无或从无到有时,该路由表条目的震荡次数加1。
在该实施例中,对于任一目标设备,网络管理平台可以按照一定的时间间隔(本文中称为路由信息收集时间间隔,可以根据实际场景设定)轮询若干次(可以根据实际场景设定,本文中以N3次为例)该目标设备的路由表,以收集路由信息。
在该实施例中,网络管理平台可以根据目标设备的路由信息,统计目标设备上的各路由表条目的震荡次数。
其中,对于任一路由表条目,当该路由表条目在相邻两次收集的目标设备的路由信息中从有到无或从无到有时,网络管理平台可以将该路由表条目的震荡次数加1。
举例来说,假设网络管理平台收集了5次目标设备的路由信息,若在该5次收集的目标设备的路由信息中,路由表条目a在第1~3次出现,第4次未出现,第5次出现,则路由表条目a的震荡次数为2。
在该实施例中,网络管理平台确定了各路由表条目的震荡次数之后,可以将震荡次数大于等于预设震荡次数阈值(本文中称为第一预设震荡次数阈值,可以根据实际场景设定,如2次、3次等)的路由表条目对应的路由确定为震荡路由,并执行步骤103中的确定震荡路由的震荡源的步骤。
此外,在该实施例中,考虑到当发生路由震荡时,震荡路由出现的时间一般会小于特定时间(通常为15秒),因此,对于震荡次数小于上述第一预设震荡次数阈值的路由表条目,还可以进一步根据路由表条目出现的时间确定对应的路由是否为震荡路由。
相应地,对于任一路由表条目,当网络管理平台确定该路由表条目的震荡次数小于第一预设震荡次数阈值时,网络管理平台还可以进一步确定该路由表条目出现的总时间,即N3次收集的该目标设备的路由信息中该路由表条目的出现时间的和。
举例来说,假设共收集了5次目标设备的路由信息,路由表条目b在5次收集中均出现,且5次收集中所获取到的该路由表条目b的出现时间分别为t1~t5,则该路由表条目b出现的总时间为t1+t2+t3+t4+t5。
在该实施例中,当网络管理平台确定该路由表条目的出现的总时间小于预设时间阈值(本文中称为第一预设时间阈值,可以根据实际场景设定)时,网络管理平台也可以确定该路由表条目对应的路由为震荡路由,并执行步骤103中确定震荡路由的震荡源的步骤。
进一步地,在本发明实施例中,考虑到当路由震荡周期与路由信息收集时间间隔相同时,可能会检测不出存在的震荡路由。
举例来说,请参见图3,假设两个方形节点之间的时间长度为路由信息收集时间间隔(以30秒为例),三角节点之间的时间长度为路由震荡周期(假设也是30秒)。在圆形节点处,某路由由于震荡原因消失,在三角节点处,该路由由于震荡原因重新出现,若路由信息收集时间间隔始终保持为30秒,由于路由震荡周期与路由信息收集时间间隔相同,每次在收集路由信息的节点处收集的结果都是此路由不存在,检测得到的结果是此路由不存在,并不是此路由震荡。
为了避免上述问题的发生,路由收集时间间隔可以动态变化,而不是一直保持不变。
相应地,在本发明其中一个实施例中,路由信息收集时间间隔随着已完成的路由信息收集次数的增多而增大或减小。
举例来说,路由信息收集时间间隔可以通过以下公式确定:
T3=T2–△T1×N5
其中,T3为当前使用的路由信息收集时间间隔,T2为初始路由信息收集时间间隔,△T1为第一预设衰减时间,N5为已完成的路由信息收集次数。
在该实施例中,可以预先设置一个路由信息收集时间间隔的衰减时间(本文中称为第一预设衰减时间,即上述△T1),当网络管理平台进行路由信息收集时,可以根据预先设置的初始路由信息收集时间间隔以及该衰减时间△T1确定每一次进行路由信息收集的时间间隔。
应该认识到,上述根据第一预设衰减时间以及已完成的路由信息收集次数更新路由信息收集时间间隔的实现方式仅仅是本发明实施例中使多次进行路由信息收集的时间间隔不完全相同的一种具体实现,而并不是对本发明保护范围的限定,即在本发明实施例中,也可以通过其他方式实现使多次进行路由信息收集的时间间隔不完全相同,例如,可以按照预设增长时间以及已完成的路由信息收集次数更新路由信息收集时间间隔(即路由信息收集时间间隔随着路由信息收集次数的增多而增大),或者,可以直接设置多个不同的路由信息收集时间间隔,并按照该多个不同的路由信息收集时间间隔进行多次路由信息收集,其具体实现在此不做赘述。
步骤103、对于任一目标设备,当该目标设备上存在震荡路由时,确定该震荡路由的震荡源,并确定震荡原因。
本发明实施例中,考虑到在发生路由震荡的情况下,往往有多台网络设备同时处于震荡,且大多数网络设备是处于被动引起震荡的状态。如果不分优先级的将所有网络设备一起检测,网络管理设备在性能上就会遇到瓶颈,且无法快速确定引起路由震荡的原因,因此,为了降低网络管理平台的负荷,并提高确定震荡原因的效率,可以采用寻找路由震荡源头(即溯源)的检测的方式实现路由震荡定位。
相应地,在本发明实施例中,当网络管理平台确定存在震荡路由时,可以确定该震荡路由的震荡源,并从源头分析引起路由震荡的原因。
在本发明其中一个实施例中,如图2D所示,上述确定该震荡路由的震荡源,可以包括:
步骤201,对于任一震荡路由,判断该震荡路由是否为该目标设备的直连路由;若是,则转至步骤202;否则,转至步骤203。
步骤202,确定该目标设备为该震荡路由的震荡源;
步骤203,根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源。
其中,路由协议表为记录经由某一路由协议(如OSPF(Open Shortest Path First开放式最短路径优先)协议、BGP(Border Gateway Protocol,边界网关协议)协议等)传播的路由的表。具体的,可以通过收集待检测设备的MIB(Management Information Base)中的链路状态数据库表ospfLsdbTable、外部引入链路状态数据库表ospfExtLsdbTable以及BGP接收路径属性表bgp4PathAttrEntry等收集得到路由协议信息,进而根据震荡路由对应的路由协议信息确定震荡源。
在该实施例中,当网络管理平台确定某一目标设备上存在震荡路由时,对于该目标设备上的任一震荡路由,网络管理平台可以判断该震荡路由是否为该目标设备的直连路由。若是,则网络管理平台可以确定该目标设备为该震荡路由的震荡源;否则,网络管理平台可以根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源。
其中,对于任一震荡路由,网络管理平台可以根据该震荡路由对应的路由表条目中的ipRouteType(路由类型)字段确定该震荡路由是否为目标设备的直连路由。
例如,当ipRouteType的值为3时,表明对应的路由为直连路由;否则,为非直连路由。
在一个示例中,上述根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源,包括:
判断该震荡路由对应的路由协议表条目是否处于震荡状态;
若是,则在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测,直至确定该震荡路由的震荡源;
若否,则执行步骤103中的确定震荡原因的步骤。
在该示例中,当网络管理平台确定震荡路由不是目标设备上的直连路由时,网络管理平台可以查询该震荡路由对应的路由协议表条目,并判断该震荡路由对应的路由协议表条目是否处于震荡状态。
在该示例中,当网络管理平台确定该震荡路由对应的路由协议表条目处于震荡状态时,网络管理平台可以将该震荡路由对应的震荡状态的路由协议表条目中包括的发布者设备加入到等待检测队列的头部。
其中,网络管理平台对等待检测队列中的设备的检测顺序为从头部到尾部的顺序。
网络管理平台完成对当前的目标设备的检测之后,可以对该震荡路由的发布者设备进行震荡路由检测,直至确定该震荡路由的震荡源。
其中,若该震荡路由为该震荡路由的发布者设备的直连路由,或者,该震荡路由的发布者设备上对应该震荡路由的路由协议表条目未处于震荡状态,则可以确定该震荡路由的发布者设备为该震荡路由的震荡源;若该震荡路由不是该震荡路由的发布者设备的直连路由,且该震荡路由的发布者设备上对应该震荡路由的路由协议表条目处于震荡状态,则可以进一步根据该震荡路由的发布者设备上的路由协议表条目信息确定该震荡路由的发布者设备,并按照上述步骤201~步骤203中描述的方式继续进行溯源检测,直至确定该震荡路由的震荡源。
举例来说,假设网络设备A上的路由表条目a对应的路由为震荡路由,且路由表条目a对应的路由协议表条目a也处于震荡状态,则网络管理平台可以根据该路由协议表条目a确定该震荡路由的发布者设备(假设为网络设备B),网络管理平台可以进一步确定该震荡路由在网络设备B上对应的路由(即网络设备B上与该震荡路由的目的地址相同的路由)是否是网络设备B上的直连路由,若不是网络设备B的直连路由,且该路由(即震荡路由在网络设备B上对应的路由)对应的路由协议表条目b在网络设备B上处于震荡状态,则网络管理平台可以根据该路由协议表条目b确定该震荡路由的发布者设备(假设为网络设备C),当该震荡路由在网络设备C上对应的路由(即网络设备C上与该震荡路由的目的地址相同的路由)为网络设备C的直连路由,或,该震荡路由在网络设备C上对应的路由不是网络设备C的直连路由且该路由(即震荡路由在网络设备C上对应的路由)对应的路由协议表条目c在网络设备C上未处于震荡状态,则网络管理平台可以确定该震荡路由的震荡源为网络设备C。
在该示例中,当网络管理平台确定震荡路由对应的路由协议表条目未处于震荡状态时,则网络管理平台可以确定目标设备为该震荡路由的震荡源。
需要说明的是,在本发明实施例中,一条震荡路由对应的路由协议表条目可以有多条,如可以同时存在BGP(Border Gateway Protocol,边界网关协议)协议的路由协议表条目和OSPF(Open Shortest Path First开放式最短路径优先)协议的路由协议表条目,当该多条路由协议表条目中任一处于震荡状态时,即可确定该震荡路由对应的路由协议表条目处于震荡状态,并根据该处于震荡状态的路由协议表条目确定震荡路由的发布者,其具体实现在此不做赘述。
在本发明其中一个实施例中,确定目标设备上是否存在震荡状态的路由协议表条目,可以包括:
对于任一目标设备,根据路由协议信息收集时间间隔轮询N4次该目标设备的路由协议表,以收集得到路由协议信息;其中,路由协议信息包括目的地址以及路由协议表条目出现时间;
对于任一路由协议表条目,当该路由协议表条目的震荡次数大于等于第二预设震荡次数阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测的步骤;
或,当该路由协议表条目的震荡次数小于第二预设震荡次数阈值,且该路由协议表条目出现的总时间小于第二预设时间阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测的步骤;
其中,当一个路由协议表条目从有到无或从无到有时,该路由协议表条目的震荡次数加1。
在一个示例中,路由协议信息收集时间间隔随着已完成的路由协议信息收集次数的增多而增大或减小。
举例来说,路由协议信息收集时间间隔可以通过以下公式确定:
T5=T4–△T2×N6
其中,T5为当前使用的路由协议信息收集时间间隔,T4为初始路由协议信息收集时间间隔,△T2为第二预设衰减时间,N6为已完成的路由协议信息收集次数。
其中,网络管理平台确定目标设备上是否存在震荡状态的路由协议表条目的具体实现与网络管理平台确定目标设备上是否存在震荡路由的具体实现相类似,本发明实施例在此不做赘述。
需要说明的是,在本发明实施例中,为了提高路由震荡定位的效率,网络管理平台可以并行地进行路由表信息的收集(确定是否存在震荡路由)以及路由协议信息的收集(确定是否存在震荡状态的路由协议表条目),其具体实现,在此不做赘述。
相应地,上述初始路由信息收集时间间隔以及初始路由协议信息收集间隔可以相同,且路由信息收集时间间隔以及路由协议信息收集间隔可以按照相同方式进行增大或减少,以便网络管理平台可以同步完成路由信息的收集和路由协议信息的收集,进一步提高路由震荡定位的效率,其具体实现在此不做赘述。
进一步地,在本发明实施例中,网络管理平台确定了震荡路由的震荡源之后,还可以确定引起震荡路由的震荡原因。
在本发明其中一个实施例中,上述确定震荡原因,可以包括:
收集震荡源的震荡现象;
根据震荡源的震荡现象确定震荡原因。
在该实施例中,网络管理平台确定了震荡路由的震荡源之后,可以收集震荡源的震荡现象,并根据震荡源的震荡现象确定震荡原因。
其中,震荡现象可以根据收集的路由信息和路由协议信息确定。具体的,震荡现象可以包括但不限于路由表条目间隔性出现或不断被刷新(路由表条目不断刷新特指每一次收集路由表信息时该路由表条目都存在,路由出现时间始终是一个小于等于15s的值)、发布者设备是否不断更新、路由协议是否不断切换(例如,同一路由表条目,其对应的路由在一次收集中出现在BGP协议表中,下一次出现在OPSF协议中,再下一次又出现在BGP协议表中,则认为路由协议在不断切换)、路由下一跳是否不断变化、是否存在发布者整体路由均在震荡(即同一Router ID对应的发布者发布的OSPF路由均处于震荡状态,其通常由RouterID重复导致)等。
震荡原因可以包括但不限于物理上或者协议层面的联通性、物理链路不稳定、OSPFtimer(OSPF计时器)不一致、两端MTU(Maximum Transmission Unit,最大传输单元)不匹配、路由在不同的路由协议间相互引入情况下,引入路由的源头优先级设置不正确、路由重复发布、RouterID(路由器标识)重复或唯一标识符重复引起震荡、NQA(Network QualityAnalyzer,网络质量分析)和静态路由联动引起震荡等。
在一个示例中,上述根据震荡源的震荡现象确定震荡原因,可以包括:
根据震荡源的震荡现象,查询预先配置的震荡现象与震荡原因的对应关系,以确定与震荡源的震荡现象匹配的震荡原因。
在该示例中,可以预先配置震荡现象与震荡原因的对应关系。
例如,该震荡现象与震荡原因的对应关系可以如图4所示,其中,大框中为震荡原因,小框中为震荡现象;实线小框为发生的震荡现象,虚线小框为未发生的震荡现象;竖虚线左侧是针对一个震荡路由来说,竖虚线右侧是对于发布者设备整体来说的。
在该示例中,可以使用一定数量(与震荡现象的数量匹配)的比特位来记录震荡现象与震荡原因的对应关系。
以图4第二行所示震荡现象与震荡原因的对应关系为例,路由相互引入对应的震荡现象可以使用“011100”来表示,震荡现象发生了对应的bit位值为1,未发生对应的bit位值为0。第三行所示的路由重复发布对应的震荡现象可以使用“110100”来表示。
当网络管理平台确定了震荡路由的震荡源之后,可以收集震荡源的震荡现象,并根据震荡源的震荡现象(可以按照上述比特位的方式记录),查询预先配置的震荡现象与震荡源的对应关系,以确定与震荡源的震荡现象匹配的震荡原因。
其中,收集震荡源的震荡现象是指针对震荡路由对应的震荡现象的收集;其中,针对震荡路由的震荡现象的收集过程中,对于与发布者关联的震荡现象,需要确定是否同一Router ID对应的发布者发布的OSPF路由是否均处于震荡状态。
需要说明的是,在本发明实施例中,当根据震荡源的震荡现象未查询到匹配的震荡原因时,可以记录该震荡源的震荡现象,由用户(如网络管理员)在后续流程中分析对应的震荡原因,并增加新的震荡现象与震荡原因的对应关系。
此外,当存在两个不同的震荡原因对应的震荡现象完全相同时,可以拓展震荡现象集合,即增加新的震荡现象,并更新所配置的震荡现象和震荡原因的对应关系,其具体实现在此不做赘述。
再者,在本发明实施例中,考虑到当网络中一个网络设备上的一条路由发生震荡时,可能会引起多台网络设备的多条路由发生震荡,相应地,当一条震荡的震荡源和震荡原因确定并采取相应措施之后,网络中多台网络设备的多条路由的震荡可能均会恢复正常,因此,当满足震荡路由检测条件的目标设备存在多台时,网络管理平台可以仅需检测出一台存在震荡路由的目标设备,并针对该目标设备上的其中一条震荡路由进行溯源检测,以确定震荡源和震荡原因即可,并记录所确定的震荡源和震荡原因,如记录到告警日志中,由用户(如网络管理员)采取相应措施。
其中,若用户采取相应措施之后,网络中仍然存在路由震荡,则网络管理平台可以重新按照上文中描述的预检测、检测以及溯源分析结果的方式进行路由震荡定位,其具体实现在此不做赘述。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实例对本发明实施例提供的技术方案进行说明。
请参见图5,在该实施例中,路由震荡定位方法可以包括以下步骤:
一、获取设备列表
网络管理平台从本地数据库中读取出待检测设备的设备ID(简称为DevID,其中,DevID为待检测设备在网络管理平台上的唯一标识(待检测设备i的标识为DevIDi),是一个32位的unsigned int(无符号整形)类型值),并初始化,加入轮询队列中。
二、轮询待检测设备
在该实施例中,为了实现待检测设备的轮询,网络管理平台可以维护表1所示的属性字段:
表1
在该实施例中,网络管理平台初始化过程中,可以从配置文件中读取出初始化的轮询时间间隔InitCyclingTime和触发检测时间InitTriggerTime这两个初始值,再将每个待检测设备的轮询时间间隔DevCyclingtime赋值为初始化的轮询时间间隔InitCyclingTime(本文中以30s为例)。
其中,每个待检测设备的剩余检测时间DevLeftTime的初始值为DevID%30,利用这一方式分散轮询待检测设备,避免一次性轮询过多的设备。
其中,对于待检测设备i,其剩余检测时间的初始值为DevIDi%30。
以系统轮询计时器时间设置为5s为例,即网络管理平台每隔5s,将待检测设备的剩余检测时间减去5s,则待检测设备的预检测被划分为6个批次,其中,剩余检测时间的初始值为0~5秒的一个批次,剩余检测时间的初始值6~10秒的一个批次…剩余检测时间的初始值为26~29秒的一个批次。
需要说明的是,为了避免各待检测设备的进行预检测的时间间隔差异性过大,在按照待检测设备的剩余检测时间DevLeftTime的初始值触发对待检测设备进行预检测之后,可以将各待检测设备的剩余检测时间DevLeftTime的值置为待检测设备的轮询时间间隔。
其中,各待检测设备的轮询时间间隔的初始值均为30s,轮询时间间隔会随着预检测过程中路由表条目数的变化情况而更新。
在该实施例中,系统轮询计时器时间设置为5s,即每隔5s轮询所有待检测设备的剩余检测时间DevLeftTime;若轮询到DevLeftTime小于等于0的待检测设备,对该待检测设备进行预检测。
其中,预检测流程通过SNMP(Simple Network Management Protocol,简单网络管理协议)GET(获取)的方式获取待检测设备的路由表条目数。对于任一待检测设备,若发现该待检测设备的路由表条目数与上次对比发生变化,则将该待检测设备的轮询时间间隔DevCyclingtime减少5s,即缩短对这一待检测设备的预检测周期,并将稳定剩余次数DevStableLeft这一数值置为5(后续每次发现路由表条目数与上一次比没有变化,即将DevStableLeft减1,如果连续5次路由表条目数没有变化,则将轮询时间间隔DevCyclingtime恢复5s(即加5s),直到恢复到初始化的轮询时间间隔30s)。
在该实施例中,对于任一待检测设备,若该待检测设备的轮询时间间隔DevCyclingtime减小到触发检测时间InitTriggerTime,例如15s时,则表明该待检测设备至少出现了3次路由表条目数发生变化的情况,此时,可以触发对该待检测设备进行震荡路由检测。
其中,网络管理平台对待检测设备进行轮询的实现流程可以如图6所示。
三、震荡路由检测
对于在预检测过程确定需要触发震荡路由检测的待检测设备(即目标设备),可以将其加入等待检测队列(Wait2CheckList),其中,该等待检测队列中的目标设备按照从头部到尾部的顺序进行检测,即每次进行震荡路由检测时,从等待检测队列的头部取出一台目标设备进行检测,新加入该等待检测队列的目标设备(通过预检测流程确定需要触发震荡路由检测的待检测设备)加入到等待检测队列尾部。
举例来说,如图7所示,假设等待检测队列中包括目标设备A~E,当目标设备F在预检测流程中被确定为需要触发震荡路由检测时,可以将目标设备F加入到等待检测队列的尾部,当等待检测队列中的目标设备A~E均完成检测后,可以对目标设备F进行检测。
在该实施例中,通过使用队列的方式,保证同一时间只有一台设备处于检测状态,避免了同一时间有多台设备同时处于震荡状态时,多台设备同一时间检测导致的网络管理平台的设备资源压力过载,轻则导致处理卡顿,重则导致设备崩溃,提高了网络管理平台的可靠性。
1、震荡路由的信息收集
在该实施例中,震荡路由的信息收集可以包括两个重复收集信息过程(b,c)并行进行,分别是重复收集目标设备的路由信息和路由协议信息,并根据所收集的路由信息和路由协议信息确定震荡路由以及定位震荡路由的震荡源。
如图8所示,震荡路由的信息收集可以包括以下步骤:
a、初始化检测参数
在该实施例中,为了实现震荡路由的信息收集,网络管理平台可以维护表2所示的属性字段:
表2
在该实施例中,初始信息收集时间间隔InitIntervalTime、衰减时间ReduceTime、收集次数CollectNum三项可以由网络管理平台直接从配置文件读取,InitIntervalTime是信息收集时间间隔的初始值。CollectNum是收集次数,为了达到收集信息的准确性,默认CollectNum取值为10次,即默认收集10次设备的路由表和路由协议信息。ReduceTime为衰减时间。
需要说明的是,在该实施例中,以路由信息收集时间间隔的初始值和路由协议信息收集时间间隔的初始值相同(均为InitIntervalTime)、路由信息的收集次数和路由协议信息的收集次数相同(均为CollectNum)、第一预设衰减时间和第二预设衰减时间相同(均为ReduceTime)为例进行说明。
以路由信息收集为例,网络管理平台对任一目标设备进行路由表信息收集时,当前使用的路由信息收集时间间隔CurInterValTime=初始间隔收集设备信息时间InitIntervalTime–衰减时间ReduceTime×已完成的路由信息收集次数DevRouteTblCollectTimes,以避免路由震荡周期与路由信息收集时间间隔相同的情况而导致的检测不出路由震荡。
b、路由信息收集
在该实施例中,单次收集的路由信息可以如表3所示:
表3
网络管理平台收集了10次路由信息之后,可以合并10次收集的路由信息,并得到表4所示的信息:
表4
c、路由协议信息收集
在该实施例中,网络管理平台对路由协议信息的收集的实现与路由信息收集的实现相类似,网络管理平台合并10次收集的路由协议信息,并得到表5所示的信息:
表5
属性名称 属性解释
strRouteDest 目的地址
EmergeTime 路由协议表条目出现次数统计
strRouteAdvID 发布者路由ID
LSDBAgeSum; 路由协议表条目出现时间总和
2、筛选震荡路由
在该实施例中,确定路由震荡的方式可以主要包括:
查看震荡次数oTurnTimes;其中,对于任一路由表条目,若oTurnTimes≥2,则确定该路由表条目对应的路由震荡;而当路由表条目的oTurnTimes≤1时,则查看路由出现时间总和RouteAgeSum,若RouterAgeSum≥GetTimes×15s,则确定该路由表条目对应的路由未发生震荡,反之,当路由表条目的oTurnTimes≤1,且RouterAgeSum
其中,对于震荡路由,可以放置在FlapRouteInfoList(震荡路由信息链表)链表中。
在该实施例中,对于任一震荡路由,可以根据对应的路由协议信息确定该路由的发布者设备,并确定该震荡路由对应的路由协议表条目是否处于震荡状态,若是,则将该震荡路由的发布者设备加入到等待检测队列的头部。
在该实施例中,考虑到在全网发生路由震荡的情况下,往往有多台网络设备同时发生路由震荡,且大多数网络设备是处于被动引起路由震荡的状态。如果不分优先级的将所有网络设备一起检测,后台检测程序在性能上就会遇到瓶颈,通过队列(等待检测队列)的方式有效地解决了该问题。
但是考虑到每次对一台网络设备进行震荡路由检测的方式在进行震荡路由定位的效率上可能会比较差,因此,该实施例可以通过溯源检测的方式实现震荡路由的定位。
在该实施例中,当震荡路由对应的路由协议表也处于震荡状态时,网络管理平台可以将该震荡路由的发布者设备加入到等待检测队列的头部,即下一个进行震荡路由检测的就是震荡路由的发布者设备。
由于震荡路由的发布者设备理论上就是引起路由震荡的震荡源,因此下一个进行震荡路由检测的目标设备指向震荡源,可以更快速找出震荡原因,提高震荡路由定位的效率。
在该实施例中,当网络管理平台通过上述方式定位到震荡路由时,可以进一步确定震荡原因,其具体实现在下文中描述;当网络管理平台检测到不存在震荡路由时,则结束当前流程,并将进行震荡路由检测的目标设备重新加入轮询队列,按照上文中描述的方式进行预检测。
需要说明的是,在该实施例中,对于任一目标设备,若在对该目标设备进行震荡路由检测的过程中出现错误时,可以停止对该目标设备进行震荡路由检测。此时,网络管理平台可以生成对应的错误日志,以便用户(网络管理员)采取相应的措施。
四、确定震荡原因
在该实施例中,可以预先配置如图3所示的震荡原因与震荡现象的对应关系。
网络管理平台按照上述方式定位了震荡源之后,可以根据震荡源的震荡现象查询图3所示的震荡原因与震荡现象的对应关系,确定与震荡源的震荡现象匹配的震荡原因。
在该实施例中,通过配置震荡原因与震荡现象的对应关系,并根据震荡源的震荡现象在该对应关系查询匹配的震荡原因,仅需通过SNMP协议的标准MIB(ManagementInformation Base,管理信息库)库即可实现震荡原因的定位,其震荡原因定位的效率较高,且工作量较少。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过对待检测设备进行预检测,确定满足震荡路由检测条件的目标设备,并对目标设备进行震荡路由检测,确定是否存在震荡路由,对于任一目标设备,当该目标设备上存在震荡路由时,确定该震荡路由的震荡源,并确定震荡原因,实现了路由震荡定位。
以上对本发明提供的方法进行了描述。下面对本发明提供的装置进行描述:
图9为本发明实施例提供的一种服务器的硬件结构示意图。该服务器可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,通过读取并执行机器可读存储介质902中与路由震荡定位控制逻辑对应的机器可执行指令,处理器901可执行上文描述的路由震荡定位方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
如图10所示,从功能上划分,上述路由震荡定位控制逻辑可以包括:预检测单元1001、检测单元1002以及定位单元1003;其中:
预检测单元1001,用于对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备;
检测单元1002,用于对所述目标设备进行震荡路由检测,以确定是否存在震荡路由;
定位单元1003,用于对于任一所述目标设备,当该目标设备上存在震荡路由时,确定所述震荡路由的震荡源,并确定震荡原因。
在可选实施例中,预检测单元1001,具体用于按照所述待检测设备的轮询时间间隔对所述待检测设备进行轮询;对于任一待检测设备,当检测到该待检测设备的路由表条目数量发生变化时,将该待检测设备的轮询时间间隔减去第一预设时间;当该待检测设备的轮询时间间隔等于预设触发检测时间时,执行对所述目标设备进行震荡路由检测的步骤。
在可选实施例中,预检测单元1001,具体用于每隔第二预设时间,将所述待检测设备的剩余检测时间减去所述第二预设时间;当所述待检测设备的剩余检测时间小于等于0时,对所述待检测设备进行预检测,并将所述待检测设备的剩余检测时间置为所述待检测设备的轮询时间间隔。
在可选实施例中,检测单元1002,具体用于对于任一进行震荡路由检测的目标设备,根据该目标设备的路由信息确定该目标设备上是否存在震荡路由;
其中,所述路由信息包括目的地址以及路由表条目出现时间。
在可选实施例中,检测单元1002,具体用于根据路由信息收集时间间隔轮询N3次该目标设备的路由表,以收集得到路由信息;对于任一路由表条目,当该路由表条目的震荡次数大于等于第一预设震荡次数阈值时,执行确定所述震荡路由的震荡源的步骤;
或,当该路由表条目的震荡次数小于第一预设震荡次数阈值,且该路由表条目出现的总时间小于第一预设时间阈值时,执行确定所述震荡路由的震荡源的步骤;
其中,当一个路由表条目从有到无或从无到有时,该路由表条目的震荡次数加1。
在可选实施例中,所述路由信息收集时间间隔随着已完成的路由信息收集次数的增多而增大或减小。
在可选实施例中,定位单元1003,具体用于对于任一震荡路由,判断该震荡路由是否为该目标设备的直连路由;若是,则确定该目标设备为该震荡路由的震荡源;否则,根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源。
在可选实施例中,定位单元1003,具体用于判断该震荡路由对应的路由协议表条目是否处于震荡状态;若是,则在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测,直至确定该震荡路由的震荡源;若否,则执行确定震荡原因的步骤。
在可选实施例中,定位单元1003,还用于对于任一目标设备,根据路由协议信息收集时间间隔轮询N4次该目标设备的路由协议表,以收集得到路由协议信息;其中,所述路由协议信息包括目的地址以及路由协议表条目出现时间;
对于任一路由协议表条目,当该路由协议表条目的震荡次数大于等于第二预设震荡次数阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测的步骤;
或,当该路由协议表条目的震荡次数小于第二预设震荡次数阈值,且该路由协议表条目出现的总时间小于第二预设时间阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中包括的发布者设备进行震荡路由检测的步骤;
其中,当一个路由协议表条目从有到无或从无到有时,该路由协议表条目的震荡次数加1。
在可选实施例中,所述路由协议信息收集时间间隔随着已完成的路由协议信息收集次数的增多而增大或减小。
在可选实施例中,定位单元1003,具体用于收集所述震荡源的震荡现象;根据所述震荡源的震荡现象确定震荡原因。
在可选实施例中,定位单元1003,具体用于根据所述震荡源的震荡现象,查询预先配置的震荡现象与震荡原因的对应关系,以确定与所述震荡源的震荡现象匹配的震荡原因。
本发明实施例还提供了一种存储有计算机可执行指令的机器可读存储介质,例如图9中的存储器902,所述计算机可执行指令可由图9所示电子设备中的处理器901执行以实现上文描述的路由震荡定位方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。