Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020135445 - METHOD OF LOCATING ROUTE FLAPPING

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14  

附图

1   2A   2B   2C   2D   3   4   5   6   7   8   9   10  

说明书

发明名称 : 对路由震荡的定位

技术领域

[0001]
本公开涉及网络通信技术领域,尤其涉及一种路由震荡定位方法、服务器及机器可读存储介质。

背景技术

[0002]
互联网实现万物互联的核心在于网络设备实现报文转发,网络设备的正常转发在于路由表的稳定完整。如果路由表中条目出现震荡,轻则会导致源设备到目的设备的转发过程出现丢包,速率低等问题;重则导致业务处于停滞状态,带来的损失难以估量。
[0003]
因此,当发生路由震荡时,如何实现路由震荡定位成为一个亟待解决的问题。

附图说明

[0004]
图1是本公开实施例提供的一种路由震荡定位方法的流程示意图;
[0005]
图2A是本公开实施例提供的另一种路由震荡定位方法的流程示意图;
[0006]
图2B是本公开实施例提供的另一种路由震荡定位方法的流程示意图;
[0007]
图2C是本公开实施例提供的另一种路由震荡定位方法的流程示意图;
[0008]
图2D是本公开实施例提供的一种定位震荡源的方法的流程示意图;
[0009]
图3是本公开实施例提供的一种路由信息收集时间间隔和路由震荡周期的示意图;
[0010]
图4是本公开实施例提供的一种震荡现象与震荡原因的对应关系的示意图;
[0011]
图5是本公开实施例提供的一种路由震荡定位方法的流程示意图;
[0012]
图6是本公开实施例提供的一种网络管理平台对待检测设备进行轮询的流程示意图;
[0013]
图7是本公开实施例提供的一种等待检测队列的示意图;
[0014]
图8是本公开实施例提供的一种震荡路由的信息收集的流程示意图;
[0015]
图9是本公开实施例提供的一种服务器的硬件结构示意图;
[0016]
图10是本公开实施例提供的一种路由震荡定位控制逻辑的功能结构图。

具体实施方式

[0017]
为了使本技术领域的人员更好地理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中技术方案作进一步详细的说明。
[0018]
图1为本公开实施例提供的一种路由震荡定位方法的流程示意图,其中,该路由震荡定位方法 可以应用于网络管理平台,例如,运行有特定网络管理软件的服务器,如图1所示,该路由震荡定位方法可以包括步骤101~步骤103。
[0019]
步骤101、对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备。
[0020]
本公开实施例中,考虑到路由震荡通常会涉及到较多的网络设备,而各网络设备上的路由信息也通常会较多,若发生路由震荡时,直接通过分析所有网络设备的全部路由信息来定位震荡路由,则工作量会很大,效率会很低,因此,为了提高路由震荡定位的效率,并减少路由震荡的工作量,当需要进行路由震荡定位时,可以先对待检测设备进行预检测,以筛选出满足震荡路由检测条件的待检测设备,满足震荡路由检测条件的待检测设备在本文中称为目标设备。
[0021]
在本公开一个实施方式中,上述步骤101,对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备,如图2A所示,可以包括步骤1011~步骤1013。
[0022]
步骤1011,按照待检测设备的轮询时间间隔对待检测设备进行轮询。
[0023]
步骤1012,对于任一待检测设备,当检测到该待检测设备的路由表条目数量发生变化时,通过将该待检测设备的轮询时间间隔减去第一预设时间,更新所述轮询时间间隔。
[0024]
步骤1013,当该更新的轮询时间间隔等于预设触发检测时间时,执行对目标设备进行震荡路由检测的步骤。
[0025]
具体的,在该实施例中,网络管理平台可以通过轮询的方式,即每隔一定的轮询时间间隔,对待检测设备进行预检测。
[0026]
相应地,可以预先设置各待检测设备的轮询时间间隔的初始值,网络管理平台可以根据各待检测设备的轮询时间间隔的初始值对对应的待检测设备进行预检测。
[0027]
其中,不同的待检测设备的轮询时间间隔可以不同。
[0028]
当然,各待检测设备的轮询时间间隔也可以相同。例如,网络管理平台可以每隔30秒,即各待检测设备的轮询时间间隔均为30秒,对各待检测设备进行预检测。
[0029]
在该实施例中,网络管理平台对待检测设备进行预检测可以包括获取该待检测设备的路由条目的数量,并判断该待检测设备的路由条目的数量是否发生变化,即此次(非首次)获取到的该待检测设备的路由条目的数量与上一次获取到的该待检测的路由条目的数量是否相同。当网络管理平台确定该待检测设备的路由条目的数量发生变化时,将该待检测设备的轮询时间间隔减去第一预设时间。该第一预设时间可以根据实际场景设定,如3秒、5秒等。
[0030]
其中,对于网络管理平台第一次获取到某个待检测设备的路由条目的数量时,网络管理平台可以仅记录该路由条目的数量,而不需要去判断该待检测设备的路由条目的数量是否发生变化。
[0031]
在该实施例中,对于任一待检测设备,当该待检测设备的轮询时间间隔等于预设触发检测时间时,该预设触发检测时间可以根据实际场景设定,如15秒、20秒等,网络管理平台可以确定该待检测设备满足震荡路由检测条件,进而,网络管理平台可以确定该待检测设备为目标设备,并执行 步骤102,即执行对目标设备进行震荡路由检测的步骤。
[0032]
在本公开实施例中,上述根据待检测设备的轮询时间间隔确定待检测设备是否满足震荡路由检测条件仅仅是本公开实施例中确定待检测设备是否满足震荡路由检测条件的一个具体示例,而并不是对本公开保护范围的限定,即在本公开实施例中,也可以通过其他方式确定待检测设备是否满足震荡路由检测条件,例如,可以将路由条目的数量发生变化的待检测设备直接确定为满足震荡路由检测条件的目标设备,本公开实施例对此不做限定。
[0033]
进一步地,在本公开实施例中,为了避免网络管理平台一直实时监测各待检测设备是否需要进行预检测,网络管理平台可以每隔第二预设时间判断一次各待检测设备是否需要进行预检测。该第二预设时间可以根据实际场景设定,如3秒、5秒等。
[0034]
相应地,在一个示例中,如图2B所示,上述步骤1011,按照待检测设备的轮询时间间隔对待检测设备进行轮询,可以包括步骤10111和步骤10112。
[0035]
步骤10111,每经过第二预设时间,将待检测设备的剩余检测时间减去第二预设时间,更新所述剩余检测时间;其中,对于单个待检测设备而言,待检测设备的剩余检测时间的初始值可以与轮询时间间隔的初始值设置的相同;
[0036]
步骤10112,当更新的剩余检测时间小于等于0时,对该待检测设备进行预检测,并将该待检测设备的剩余检测时间置为该待检测设备的轮询时间间隔。
[0037]
举例来说,假设第二预设时间为5秒,网络管理平台可以每经过5秒,将待检测设备的剩余检测时间减去5秒。
[0038]
对于任一待检测设备,当该待检测设备的剩余检测时间小于等于0时,对该待检测设备进行预检测,并将该待检测设备的剩余检测时间置为待检测设备的轮询时间间隔。
[0039]
举例来说,以待检测设备A为例,假设待检测设备A的轮询时间间隔的初始值为30秒,剩余检测时间为18秒,第一预设时间为5秒,第二预设时间为5秒,预设触发检测时间为15秒,则网络管理平台可以每隔5秒,将待检测设备A的剩余检测时间减去5秒,由此剩余检测时间依次变化为13秒、8秒、3秒、-2秒。当待检测设备A的剩余检测时间为-2秒(即小于等于0)时,网络管理平台一方面可以继续对待检测设备A进行预检测,另一方面将待检测设备A的剩余检测时间置为待检测设备A的轮询时间间隔(此时为30秒)。
[0040]
其中,如前面步骤1012所述,网络管理平台对待检测设备A进行预检测可以包括:获取待检测设备A的路由表条目数量,并比较该路由表条目数量和上一次获取到的待检测设备A的路由表条目数量,若相同,则保持待检测设备A的轮询时间间隔不变;否则,将待检测设备A的轮询时间间隔减去5秒,此时轮询时间间隔更新变为25秒。
[0041]
以待检测设备A的轮询时间间隔变为25秒为例,网络管理平台将待检测设备A的剩余检测时间置为30秒之后,可以每隔5秒将待检测设备A的剩余检测时间减去5秒,由此剩余检测时间依次变为25秒、15秒、10秒、5秒、0秒;当待检测设备A的剩余检测时间为0(即小于等于0)秒 时,网络管理平台一方面可以将待检测设备A的剩余检测时间置为轮询时间间隔(即25秒),另一方面,对待检测设备A继续进行预检测。
[0042]
按照上述方式,当待检测设备A的轮询时间间隔为15秒时,网络管理平台可以确定待检测设备A为目标设备,并执行对目标设备进行震荡路由检测的步骤。
[0043]
进一步地,在本公开实施例中,为了更合理的利用网络管理平台的设备资源,避免网络管理平台对于各待检测设备的预检测过于集中,在设置剩余检测时间的初始值时,不同待检测设备的剩余检测时间可以设置成不完全相同。
[0044]
举例来说,不同的待检测设备的剩余检测时间的初始值可以通过以下公式:
[0045]
Ti=DevIDi%T0
[0046]
其中,Ti为待检测设备i的剩余检测时间的初始值,1≤i≤N1,其中N1为大于等于1的自然数,N1为待检测设备的数量;DevIDi为待检测设备i的设备标识;T0为最大轮询时间间隔,该最大轮询时间间隔,可以根据实际场景设定,如30秒;符号“%”为取余运算。
[0047]
在本公开实施例中,当各待检测设备的剩余检测时间的初始值不完全相同时,若网络管理平台始终根据各待检测设备的剩余检测时间的初始值确定是否对各待检测设备进行轮询,则各待检测设备进行预检测的频率会不相同,导致相同时间内部分待检测设备被预检测的次数较多,而另一部分待检测设备被预检测的次数较少,因此,为了在避免各待检测设备进行预检测的时间过于集中的情况下,保证各待检测设备进行预检测的时间间隔尽量保持一致,网络管理平台根据各待检测设备的剩余检测时间的初始值对各待检测设备进行预检测之后,可以将各待检测设备的剩余检测时间置为轮询时间间隔。其中,各待检测设备的轮询时间间隔的初始值可以相同,在后续流程中,根据各待检测设备的路由表条目数量的变化情况分别对各检测设备的轮询时间间隔进行调整,其具体实现将在下文中结合具体实例进行说明,本公开实施例在此不做赘述。
[0048]
进一步地,在本公开实施例中,考虑到网络设备的路由表条目数量的变化并不一定是由于路由震荡引起的,也有可能是由于用户配置的原因导致的,如用户添加或删除路由,因此,为了提高所确定的满足震荡路由检测的目标设备的准确性,对于任一待检测设备,当网络管理平台连续N2次(N2为大于1的自然数)检测到该待检测设备的路由表条目数量未发生变化时,将该待检测设备的轮询时间加上第三预设时间,直至该待检测设备的轮询时间间隔达到预设最大轮询时间间隔。其中,第三预设时间可以根据实际场景设定,如3秒、5秒等;最大轮询间隔时间可以由管理员根据需求进行配置。
[0049]
在本公开实施例中,对于任一待检测设备,最大轮询时间间隔与前述的轮询时间间隔的初始值可以相同,也可以不同,本公开实施例对此不做限定。
[0050]
步骤102、对目标设备进行震荡路由检测,以确定是否存在震荡路由。
[0051]
本公开实施例中,网络管理平台通过对待检测设备进行预检测,确定了满足震荡路由条件的目标设备之后,可以对目标设备进行震荡路由检测,以确定是否存在震荡路由。在一个示例中,对所 述目标设备进行震荡路由检测,包括:当确定出存在多个目标设备时,依次对所述目标设备进行震荡路由检测。
[0052]
在本公开一个实施例中,如图2C所示,上述步骤102,对目标设备进行震荡路由检测,可以包括步骤1021和步骤1022。
[0053]
步骤1021,对于任一待检测设备,当确定该待检测设备为满足震荡路由检测条件的目标设备时,将该目标设备加入到等待检测队列的尾部;
[0054]
步骤1022,按照从等待检测队列的头部到尾部的顺序,依次对等待检测队列中的目标设备进行震荡路由检测。
[0055]
在该实施例中,考虑到一台网络设备上的路由表条目的数量可能会很多,若网络管理平台同时对多台网络设备进行震荡路由检测,会导致网络管理平台资源压力过载,进而可能会导致处理卡顿,甚至后台崩溃,因此,为了降低网络管理平台的负载,提高网络管理平台的可靠性,网络管理平台可以每次对一台网络设备进行震荡路由检测。
[0056]
相应地,在该实施例中,对于任一待检测设备,当网络管理平台确定该待检测设备为满足震荡路由检测条件的目标设备时,网络管理平台可以将该目标设备加入等待检测队列。
[0057]
当需要对目标设备进行震荡路由检测时,网络管理平台可以按照从等待检测队列的头部到尾部的顺序,依次从等待检测队列中取出目标设备进行震荡路由检测。
[0058]
本公开实施例中,对于任一进行震荡路由检测的目标设备,网络管理平台可以根据该目标设备的路由信息确定该目标设备上是否存在震荡路由;其中,该路由信息可以包括目的地址以及路由表条目出现时间。
[0059]
其中,目的地址用于标识路由表条目,不同的目的地址对应不同的路由表条目。
[0060]
在本公开一个实施例中,上述根据该目标设备的路由信息确定该目标设备上是否存在震荡路由,可以包括:
[0061]
根据路由信息收集时间间隔轮询M次该目标设备的路由表,以收集得到路由信息,M为大于等于1的自然数;
[0062]
对于任一路由表条目,当该路由表条目的震荡次数大于等于第一预设震荡次数阈值时,执行步骤103中确定与震荡路由相关的震荡源的步骤;或,当该路由表条目的震荡次数小于第一预设震荡次数阈值,且该路由表条目出现的总时间小于第一预设时间阈值时,执行步骤103中确定与震荡路由相关的震荡源的步骤。其中,当一个路由表条目的出现状态发生变化时,该路由表条目的震荡次数加1。
[0063]
在该实施例中,对于任一目标设备,网络管理平台可以按照路由信息收集时间间隔(可以根据实际场景设定)轮询若干次(可以根据实际场景设定,本文中以M次为例)该目标设备的路由表,以收集路由信息。
[0064]
在该实施例中,网络管理平台可以根据目标设备的路由信息,统计目标设备上的各路由表条目的震荡次数。
[0065]
其中,对于任一路由表条目,当该路由表条目在相邻两次收集的目标设备的路由信息中的出现状态发生变化例如从有到无或从无到有时,网络管理平台可以将该路由表条目的震荡次数加1。
[0066]
举例来说,假设网络管理平台收集了5次目标设备的路由信息,若在该5次收集的目标设备的路由信息中,路由表条目a在第1~3次出现,第4次未出现,第5次出现,则路由表条目a的震荡次数为2。
[0067]
在该实施例中,网络管理平台确定了各路由表条目的震荡次数之后,可以将震荡次数大于等于第一预设震荡次数阈值的路由表条目对应的路由确定为震荡路由,并执行步骤103中的确定与震荡路由相关的震荡源的步骤。第一预设震荡次数阈值可以根据实际场景设定,如2次、3次等。
[0068]
此外,在该实施例中,考虑到当发生路由震荡时,路由震荡出现的时间一般会小于特定时间(通常为15秒),因此,还可以进一步根据震荡次数小于上述第一预设震荡次数阈值的路由表条目出现的时间确定对应的路由是否为震荡路由。
[0069]
相应地,对于任一路由表条目,当网络管理平台确定该路由表条目的震荡次数小于第一预设震荡次数阈值时,网络管理平台还可以进一步确定该路由表条目出现的总时间,即M次收集的该目标设备的路由信息中该路由表条目的出现时间的和。
[0070]
举例来说,假设共收集了5次目标设备的路由信息,路由表条目b在5次收集中均出现,且5次收集中所获取到的该路由表条目b的出现时间分别为t1~t5,则该路由表条目b出现的总时间为t1+t2+t3+t4+t5。
[0071]
在该实施例中,当网络管理平台确定该路由表条目的出现的总时间小于第一预设时间阈值时,网络管理平台也可以确定该路由表条目对应的路由为震荡路由,并执行步骤103中确定与震荡路由相关的震荡源的步骤。第一预设时间阈值可以根据实际场景设定。
[0072]
进一步地,在本公开实施例中,考虑到当路由震荡周期与路由信息收集时间间隔相同时,可能会检测不出存在的震荡路由。
[0073]
举例来说,请参见图3,假设两个方形节点之间的时间长度为路由信息收集时间间隔(以30秒为例),三角节点之间的时间长度为路由震荡周期(假设也是30秒)。在圆形节点处,某路由由于震荡原因消失,在三角节点处,该路由由于震荡原因重新出现,若路由信息收集时间间隔始终保持为30秒,由于路由震荡周期与路由信息收集时间间隔相同,每次在收集路由信息的节点处收集的结果都是此路由不存在,检测得到的结果是此路由不存在,并不是此路由震荡。
[0074]
为了避免上述问题的发生,路由收集时间间隔可以动态变化,而不是一直保持不变。
[0075]
相应地,在本公开一个实施例中,路由信息收集时间间隔随着已完成的路由信息收集次数的增多而增大或减小。
[0076]
举例来说,路由信息收集时间间隔可以通过以下公式:
[0077]
T3=T2–△T1×N3
[0078]
其中,T3为当前使用的路由信息收集时间间隔,T2为初始路由信息收集时间间隔,△T1为第一预设衰减时间,N3为已完成的路由信息收集次数。
[0079]
在该实施例中,可以预先设置第一预设衰减时间(即上述△T1),当网络管理平台进行路由信息收集时,可以根据预先设置的初始路由信息收集时间间隔以及该第一预设衰减时间△T1确定每一次进行路由信息收集的时间间隔。
[0080]
上述根据第一预设衰减时间以及已完成的路由信息收集次数更新路由信息收集时间间隔的实现方式仅仅是本公开实施例中使多次进行路由信息收集的时间间隔不完全相同的一种具体实现,而并不是对本公开保护范围的限定,即在本公开实施例中,也可以通过其他方式实现使多次进行路由信息收集的时间间隔不完全相同,例如,可以按照预设增长时间以及已完成的路由信息收集次数更新路由信息收集时间间隔,即路由信息收集时间间隔随着路由信息收集次数的增多而增大,或者,可以直接设置多个不同的路由信息收集时间间隔,并按照该多个不同的路由信息收集时间间隔进行多次路由信息收集,其具体实现在此不做赘述。
[0081]
步骤103、对于任一目标设备,当该目标设备上存在震荡路由时,确定与该震荡路由相关的震荡源,并确定震荡原因。
[0082]
本公开实施例中,考虑到在发生路由震荡的情况下,往往有多台网络设备同时处于震荡,且大多数网络设备是处于被动引起震荡的状态。如果不分优先级的将所有网络设备一起检测,网络管理设备在性能上就会遇到瓶颈,且无法快速确定引起路由震荡的原因,因此,为了降低网络管理平台的负荷,并提高确定震荡原因的效率,可以采用寻找造成路由震荡的源头设备的方式实现路由震荡定位。造成路由震荡的源设备,在本公开中称为震荡源,即网络中多台网络设备的震荡均是由于震荡源产生了问题而导致的。
[0083]
相应地,在本公开实施例中,当网络管理平台确定存在震荡路由时,可以确定该震荡路由相关的震荡源,并从源头分析引起路由震荡的原因。
[0084]
在本公开一个实施例中,如图2D所示,上述确定该震荡路由的震荡源,可以包括步骤201~步骤203。
[0085]
步骤201,对于任一震荡路由,判断该震荡路由是否为该目标设备的直连路由;若是,则转至步骤202;否则,转至步骤203。
[0086]
步骤202,确定该目标设备为该震荡路由的震荡源。
[0087]
步骤203,根据该震荡路由对应的路由协议信息确定与该震荡路由相关的震荡源。
[0088]
其中,路由协议表为记录经由某一路由协议,如OSPF(Open Shortest Path First开放式最短路径优先)协议、BGP(Border Gateway Protocol,边界网关协议)协议等,传播的路由的表。具体的, 可以通过收集待检测设备的MIB(Management Information Base)中的链路状态数据库表ospfLsdbTable、外部引入链路状态数据库表ospfExtLsdbTable以及BGP接收路径属性表bgp4PathAttrEntry等收集得到路由协议信息,进而根据震荡路由对应的路由协议信息确定震荡源。
[0089]
在该实施例中,当网络管理平台确定某一目标设备上存在震荡路由时,对于该目标设备上的任一震荡路由,网络管理平台可以判断该震荡路由是否为该目标设备的直连路由。若该震荡路由为该目标设备的直连路由,则网络管理平台可以确定该目标设备为该震荡路由的震荡源;若该震荡路由不为该目标设备的直连路由,网络管理平台可以根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源。
[0090]
其中,对于任一震荡路由,网络管理平台可以根据该震荡路由对应的路由表条目中的ipRouteType(路由类型)字段确定该震荡路由是否为目标设备的直连路由。例如,当ipRouteType的值为3时,表明对应的路由为直连路由;否则,为非直连路由。
[0091]
在一个示例中,上述根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源,包括:
[0092]
判断该震荡路由对应的路由协议表条目是否处于震荡状态;
[0093]
若该震荡路由对应的路由协议表条目处于震荡状态,则在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测,直至确定该震荡路由的震荡源;
[0094]
若该震荡路由对应的路由协议表条目未处于震荡状态,则执行步骤103中的确定震荡原因的步骤。
[0095]
在该示例中,当网络管理平台确定震荡路由不是目标设备上的直连路由时,网络管理平台可以查询该震荡路由对应的路由协议表条目,并判断该震荡路由对应的路由协议表条目是否处于震荡状态。
[0096]
在该示例中,当网络管理平台确定该震荡路由对应的路由协议表条目处于震荡状态时,网络管理平台可以将该震荡路由对应的处于震荡状态的路由协议表条目中对应的发布者设备加入到等待检测队列的头部。
[0097]
其中,网络管理平台对等待检测队列中的设备的检测顺序为从头部到尾部的顺序。
[0098]
网络管理平台完成对当前的目标设备的检测之后,可以对该震荡路由的发布者设备进行震荡路由检测,直至确定该震荡路由的震荡源。
[0099]
其中,若该震荡路由为该震荡路由的发布者设备的直连路由,或者,该震荡路由的发布者设备上对应该震荡路由的路由协议表条目未处于震荡状态,则可以确定该震荡路由的发布者设备为该震荡路由的震荡源;若该震荡路由不是该震荡路由的发布者设备的直连路由,且该震荡路由的发布者设备上对应该震荡路由的路由协议表条目处于震荡状态,则可以进一步根据该震荡路由的发布者设备上的路由协议表条目信息确定该震荡路由的发布者设备,并按照上述步骤201~步骤203中描述的 方式继续进行溯源检测,直至确定该震荡路由的震荡源。
[0100]
举例来说,假设网络设备A上的路由表条目a对应的路由为震荡路由,且路由表条目a对应的路由协议表条目a也处于震荡状态,则网络管理平台可以根据该路由协议表条目a确定该震荡路由的发布者设备(假设为网络设备B),网络管理平台可以进一步确定该震荡路由在网络设备B上对应的路由(即网络设备B上与该震荡路由的目的地址相同的路由)是否是网络设备B上的直连路由。若该震荡路由在网络设备B上对应的路由不是网络设备B的直连路由,且该路由(即震荡路由在网络设备B上对应的路由)对应的路由协议表条目b在网络设备B上处于震荡状态,则网络管理平台可以根据该路由协议表条目b确定该震荡路由的发布者设备(假设为网络设备C),当该震荡路由在网络设备C上对应的路由(即网络设备C上与该震荡路由的目的地址相同的路由)为网络设备C的直连路由,或,该震荡路由在网络设备C上对应的路由不是网络设备C的直连路由且该路由(即震荡路由在网络设备C上对应的路由)对应的路由协议表条目c在网络设备C上未处于震荡状态,则网络管理平台可以确定该震荡路由的震荡源为网络设备C。
[0101]
在该示例中,当网络管理平台确定震荡路由对应的路由协议表条目未处于震荡状态时,则网络管理平台可以确定目标设备为该震荡路由的震荡源。
[0102]
在本公开实施例中,一条震荡路由对应的路由协议表条目可以有多条,如可以同时存在BGP(Border Gateway Protocol,边界网关协议)协议的路由协议表条目和OSPF(Open Shortest Path First开放式最短路径优先)协议的路由协议表条目,当该多条路由协议表条目中任一处于震荡状态时,即可确定该震荡路由对应的路由协议表条目处于震荡状态,并根据该处于震荡状态的路由协议表条目确定震荡路由的发布者,其具体实现在此不做赘述。
[0103]
在本公开一个实施例中,确定目标设备上是否存在震荡状态的路由协议表条目,可以包括:
[0104]
对于任一目标设备,根据路由协议信息收集时间间隔轮询P次该目标设备的路由协议表,以收集得到路由协议信息;其中,路由协议信息包括目的地址以及路由协议表条目出现时间;
[0105]
对于任一路由协议表条目,当该路由协议表条目的震荡次数大于等于第二预设震荡次数阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测的步骤;或,当该路由协议表条目的震荡次数小于第二预设震荡次数阈值,且该路由协议表条目出现的总时间小于第二预设时间阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测的步骤;其中,当一个路由协议表条目的出现状态发生变化时,该路由协议表条目的震荡次数加1。
[0106]
在一个示例中,路由协议信息收集时间间隔随着已完成的路由协议信息收集次数的增多而增大或减小。
[0107]
举例来说,路由协议信息收集时间间隔可以通过以下公式:
[0108]
T5=T4–△T2×N4,
[0109]
其中,T5为当前使用的路由协议信息收集时间间隔,T4为初始路由协议信息收集时间间隔,△T2 为第二预设衰减时间,N4为已完成的路由协议信息收集次数。
[0110]
其中,网络管理平台确定目标设备上是否存在震荡状态的路由协议表条目的具体实现与网络管理平台确定目标设备上是否存在震荡路由的具体实现相类似,本公开实施例在此不做赘述。
[0111]
在本公开实施例中,为了提高路由震荡定位的效率,网络管理平台可以并行地进行路由信息的收集(确定是否存在震荡路由)以及路由协议信息的收集(确定是否存在震荡状态的路由协议表条目),其具体实现,在此不做赘述。
[0112]
相应地,上述初始路由信息收集时间间隔以及初始路由协议信息收集间隔可以相同,且路由信息收集时间间隔以及路由协议信息收集间隔可以按照相同方式进行增大或减少,以便网络管理平台可以同步完成路由信息的收集和路由协议信息的收集,进一步提高路由震荡定位的效率,其具体实现在此不做赘述。
[0113]
进一步地,在本公开实施例中,网络管理平台确定了震荡路由的震荡源之后,还可以确定引起震荡路由的震荡原因。
[0114]
在本公开一个实施例中,上述确定震荡原因,可以包括:收集震荡源的震荡现象;根据震荡源的震荡现象确定震荡原因。
[0115]
在该实施例中,网络管理平台确定了震荡路由的震荡源之后,可以收集震荡源的震荡现象,并根据震荡源的震荡现象确定震荡原因。
[0116]
其中,震荡现象可以根据收集的路由信息和路由协议信息确定。具体的,震荡现象可以包括但不限于路由表条目间隔性出现或不断被刷新(路由表条目不断刷新特指每一次收集路由信息时该路由表条目都存在,路由出现时间始终是一个小于等于15s的值)、发布者设备是否不断更新、路由协议是否不断切换(例如,同一路由表条目,其对应的路由在一次收集中出现在BGP协议表中,下一次出现在OPSF协议中,再下一次又出现在BGP协议表中,则认为路由协议在不断切换)、路由下一跳是否不断变化、是否存在发布者整体路由均在震荡(即同一Router ID对应的发布者发布的OSPF路由均处于震荡状态,其通常由Router ID重复导致)等。
[0117]
震荡原因可以包括但不限于物理上或者协议层面的联通性、物理链路不稳定、OSPFtimer(OSPF计时器)不一致、两端MTU(Maximum Transmission Unit,最大传输单元)不匹配、路由在不同的路由协议间相互引入情况下,引入路由的源头优先级设置不正确、路由重复发布、RouterID(路由器标识)重复或唯一标识符重复引起震荡、NQA(Network Quality Analyzer,网络质量分析)和静态路由联动引起震荡等。
[0118]
在一个示例中,上述根据震荡源的震荡现象确定震荡原因,可以包括:根据震荡源的震荡现象,查询预先配置的震荡现象与震荡原因的对应关系,以确定与震荡源的震荡现象匹配的震荡原因。
[0119]
在该示例中,可以预先配置震荡现象与震荡原因的对应关系。
[0120]
例如,该震荡现象与震荡原因的对应关系可以如图4所示,其中,大框中为震荡原因,小框中为震荡现象;实线小框为发生的震荡现象,虚线小框为未发生的震荡现象;竖虚线左侧是针对一个震荡路由来说,竖虚线右侧是对于发布者设备整体来说的。
[0121]
在该示例中,可以使用一定数量的比特位来记录震荡现象与震荡原因的对应关系,其中比特位的数量可与震荡现象的数量匹配。
[0122]
以图4第二行所示震荡现象与震荡原因的对应关系为例,路由相互引入对应的震荡现象可以使用“011100”来表示,震荡现象发生了对应的bit位值为1,震荡现象未发生对应的bit位值为0。第三行所示的路由重复发布对应的震荡现象可以使用“110100”来表示。
[0123]
当网络管理平台确定了震荡路由的震荡源之后,可以收集震荡源的震荡现象,并根据震荡源的震荡现象,查询预先配置的震荡现象与震荡源的对应关系,以确定与震荡源的震荡现象匹配的震荡原因。可选的,震荡现象可以按照上述比特位的方式记录。
[0124]
其中,收集震荡源的震荡现象是指针对震荡路由对应的震荡现象的收集;其中,在针对震荡路由对应的震荡现象的收集过程中,对于与发布者关联的震荡现象,需要确定是否同一Router ID对应的发布者发布的OSPF路由是否均处于震荡状态。
[0125]
在本公开实施例中,当根据震荡源的震荡现象未查询到匹配的震荡原因时,可以记录该震荡源的震荡现象,由用户如网络管理员在后续流程中分析对应的震荡原因,并增加新的震荡现象与震荡原因的对应关系。
[0126]
此外,当存在两个不同的震荡原因对应的震荡现象完全相同时,可以拓展震荡现象集合,即增加新的震荡现象,并更新所配置的震荡现象和震荡原因的对应关系,其具体实现在此不做赘述。
[0127]
再者,在本公开实施例中,考虑到当网络中一个网络设备上的一条路由发生震荡时,可能会引起多台网络设备的多条路由发生震荡,相应地,当一条震荡路由的震荡源和震荡原因确定并采取相应措施之后,网络中多台网络设备的多条路由的震荡可能均会恢复正常,因此,当满足震荡路由检测条件的目标设备存在多台时,网络管理平台可以仅需检测出一台存在震荡路由的目标设备,并针对该目标设备上的其中一条震荡路由进行溯源检测,以确定震荡源和震荡原因即可,并记录所确定的震荡源和震荡原因,如记录到告警日志中,由用户如网络管理员采取相应措施。
[0128]
其中,若用户采取相应措施之后,网络中仍然存在路由震荡,则网络管理平台可以重新按照上文中描述的预检测、检测以及溯源分析结果的方式进行路由震荡定位,其具体实现在此不做赘述。
[0129]
为了使本领域技术人员更好地理解本公开实施例提供的技术方案,下面结合具体实例对本公开实施例提供的技术方案进行说明。
[0130]
请参见图5,在该实施例中,路由震荡定位方法可以包括以下步骤。
[0131]
一、获取设备列表
[0132]
网络管理平台从本地数据库中读取出待检测设备的设备ID(简称为DevID),并初始化,加入轮询队列中。其中,DevID为待检测设备在网络管理平台上的唯一标识,例如待检测设备i的标识为DevIDi,且DevID是一个32位的unsigned int(无符号整形)类型值。
[0133]
二、轮询待检测设备
[0134]
在该实施例中,为了实现待检测设备的轮询,网络管理平台可以维护表1所示的属性字段。
[0135]
表1
[0136]
[0137]
[0138]
在该实施例中,网络管理平台初始化过程中,可以从配置文件中读取出初始的轮询时间间隔InitCyclingTime和触发检测时间InitTriggerTime这两个初始值,再将每个待检测设备的轮询时间间隔DevCyclingtime赋值为初始化的轮询时间间隔InitCyclingTime(本文中以30s为例)。
[0139]
其中,每个待检测设备的剩余检测时间DevLeftTime的初始值为DevID%T0,实施例中以最大轮询时间间隔T0=30秒为例进行说明。最大轮询时间间隔可等于轮询时间间隔的初始值,也可不等于轮询时间间隔的初始值。利用这一设置初始值的方式有效分散轮询待检测设备,避免一次性轮询过多的设备。
[0140]
举例而言,对于待检测设备i,其剩余检测时间的初始值为DevIDi%30。
[0141]
以系统轮询计时器时间设置为5s为例,即网络管理平台每隔5s,将待检测设备的剩余检测时间减去5s,则待检测设备的预检测被划分为6个批次,其中,剩余检测时间的初始值为0~5秒的一个批次,剩余检测时间的初始值6~10秒的一个批次…剩余检测时间的初始值为26~29秒的一个批次。
[0142]
为了避免各待检测设备的进行预检测的时间间隔差异性过大,在按照待检测设备的剩余检测时间DevLeftTime的初始值触发对待检测设备进行预检测之后,可以将各待检测设备的剩余检测时间DevLeftTime的值置为待检测设备的轮询时间间隔。
[0143]
其中,各待检测设备的轮询时间间隔的初始值均为30s,轮询时间间隔会随着预检测过程中路由表条目数的变化情况而更新。
[0144]
在该实施例中,系统轮询计时器时间设置为5s,即每隔5s轮询所有待检测设备的剩余检测时间DevLeftTime;若轮询到DevLeftTime小于等于0的待检测设备,对该待检测设备进行预检测。
[0145]
其中,预检测流程通过SNMP(Simple Network Management Protocol,简单网络管理协议) GET(获取)的方式获取待检测设备的路由表条目数。对于任一待检测设备,若发现该待检测设备的路由表条目数不同于上次的路由表条目数,则将该待检测设备的轮询时间间隔DevCyclingtime减少5s,即缩短对这一待检测设备的预检测周期,并将稳定剩余次数DevStableLeft这一数值置为5。后续每次发现路由表条目数与上一次比没有变化,即将DevStableLeft减1,如果连续5次路由表条目数没有变化,则将轮询时间间隔DevCyclingtime恢复5s(即加5s),直到恢复到初始的轮询时间间隔30s。
[0146]
在该实施例中,对于任一待检测设备,若该待检测设备的轮询时间间隔DevCyclingtime减小到触发检测时间InitTriggerTime,例如15s时,则表明该待检测设备至少出现了3次路由表条目数发生变化的情况,此时,可以触发对该待检测设备进行震荡路由检测。
[0147]
其中,网络管理平台对待检测设备进行轮询的实现流程可以如图6所示。
[0148]
三、震荡路由检测
[0149]
对于在预检测过程确定需要触发震荡路由检测的待检测设备(即目标设备),可以将其加入等待检测队列(Wait2CheckList),其中,该等待检测队列中的目标设备按照从头部到尾部的顺序进行检测,即每次进行震荡路由检测时,从等待检测队列的头部取出一台目标设备进行检测,新加入该等待检测队列的目标设备(通过预检测流程确定需要触发震荡路由检测的待检测设备)加入到等待检测队列尾部。
[0150]
举例来说,如图7所示,假设等待检测队列中包括目标设备A~E,当目标设备F在预检测流程中被确定为需要触发震荡路由检测时,可以将目标设备F加入到等待检测队列的尾部,当等待检测队列中的目标设备A~E均完成检测后,可以对目标设备F进行检测。
[0151]
在该实施例中,通过使用队列的方式,保证同一时间只有一台设备处于检测状态,避免了同一时间有多台设备同时处于震荡状态时,多台设备同一时间检测导致的网络管理平台的设备资源压力过载,轻则导致处理卡顿,重则导致设备崩溃,提高了网络管理平台的可靠性。
[0152]
1、震荡路由的信息收集
[0153]
在该实施例中,震荡路由的信息收集可以包括两个重复收集信息过程(b,c)并行进行,分别是重复收集目标设备的路由信息和路由协议信息,并根据所收集的路由信息和路由协议信息确定震荡路由以及定位震荡路由的震荡源。
[0154]
如图8所示,震荡路由的信息收集可以包括以下步骤:
[0155]
a、初始化检测参数
[0156]
在该实施例中,为了实现震荡路由的信息收集,网络管理平台可以维护表2所示的属性字段。
[0157]
表2
[0158]
[0159]
在该实施例中,初始信息收集时间间隔InitIntervalTime、衰减时间ReduceTime、收集次数CollectNum三项可以由网络管理平台直接从配置文件读取,InitIntervalTime是信息收集时间间隔的初始值。CollectNum是收集次数,为了达到收集信息的准确性,默认CollectNum取值为10次,即默认收集10次设备的路由信息和路由协议信息。ReduceTime为衰减时间。
[0160]
在该实施例中,以路由信息收集时间间隔的初始值和路由协议信息收集时间间隔的初始值相同(均为InitIntervalTime)、路由信息的收集次数和路由协议信息的收集次数相同(均为CollectNum)、第一预设衰减时间和第二预设衰减时间相同(均为ReduceTime)为例进行说明。
[0161]
以路由信息收集为例,网络管理平台对任一目标设备进行路由信息收集时,当前使用的路由信息收集时间间隔CurInterValTime=初始间隔收集设备信息时间InitIntervalTime–衰减时间ReduceTime×已完成的路由信息收集次数DevRouteTblCollectTimes,以避免路由震荡周期与路由信息收集时间间隔相同的情况而导致的检测不出路由震荡。
[0162]
b、路由信息收集
[0163]
在该实施例中,单次收集的路由信息可以如表3所示。
[0164]
表3
[0165]
[0166]
网络管理平台收集了10次路由信息之后,可以合并10次收集的路由信息,并得到表4所示的信息。
[0167]
表4
[0168]
[0169]
c、路由协议信息收集
[0170]
在该实施例中,网络管理平台对路由协议信息的收集的实现与路由信息收集的实现相类似,网络管理平台合并10次收集的路由协议信息,并得到表5所示的信息。
[0171]
表5
[0172]
[表0001]
属性名称 属性解释
strRouteDest 目的地址
EmergeTime 路由协议表条目出现次数统计
strRouteAdvID 发布者路由ID
LSDBAgeSum; 路由协议表条目出现时间总和

[0173]
2、筛选震荡路由
[0174]
在该实施例中,确定路由震荡的方式可以主要包括:
[0175]
查看震荡次数oTurnTimes;其中,对于任一路由表条目,若oTurnTimes≥2,则确定该路由表条目对应的路由震荡;而当路由表条目的oTurnTimes≤1时,则查看路由出现时间总和RouteAgeSum,若RouterAgeSum≥GetTimes×15s,则确定该路由表条目对应的路由未发生震荡,反之,当路由表条目的oTurnTimes≤1,且RouterAgeSum<GetTimes×15s,则确定该路由表条目对应的路由震荡。
[0176]
其中,对于震荡路由,可以放置在FlapRouteInfoList(震荡路由信息链表)中。
[0177]
在该实施例中,对于任一震荡路由,可以根据对应的路由协议信息确定该路由的发布者设备,并确定该震荡路由对应的路由协议表条目是否处于震荡状态,若是,则将该震荡路由的发布者设备加入到等待检测队列的头部。
[0178]
在该实施例中,考虑到在全网发生路由震荡的情况下,往往有多台网络设备同时发生路由震荡,且大多数网络设备是处于被动引起路由震荡的状态。如果不分优先级的将所有网络设备一起检测,后台检测程序在性能上就会遇到瓶颈,通过队列(等待检测队列)的方式有效地解决了该问题。
[0179]
但是考虑到每次对一台网络设备进行震荡路由检测的方式在进行震荡路由定位的效率上可能会比较差,因此,该实施例可以通过溯源检测的方式实现震荡路由的定位。
[0180]
在该实施例中,当震荡路由对应的路由协议表也处于震荡状态时,网络管理平台可以将该震荡路由的发布者设备加入到等待检测队列的头部,即下一个进行震荡路由检测的就是震荡路由的发布者设备。
[0181]
由于震荡路由的发布者设备理论上就是引起路由震荡的震荡源,因此下一个进行震荡路由检测的目标设备指向震荡源,可以更快速找出震荡原因,提高震荡路由定位的效率。
[0182]
在该实施例中,当网络管理平台通过上述方式定位到震荡路由时,可以进一步确定震荡原因,其具体实现在下文中描述;当网络管理平台检测到不存在震荡路由时,则结束当前流程,并将进行震荡路由检测的目标设备重新加入轮询队列,按照上文中描述的方式进行预检测。
[0183]
在该实施例中,对于任一目标设备,若在对该目标设备进行震荡路由检测的过程中出现错误时,可以停止对该目标设备进行震荡路由检测。此时,网络管理平台可以生成对应的错误日志, 以便用户诸如网络管理员采取相应的措施。
[0184]
四、确定震荡原因
[0185]
在该实施例中,可以预先配置如图3所示的震荡原因与震荡现象的对应关系。
[0186]
网络管理平台按照上述方式定位了震荡源之后,可以根据震荡源的震荡现象查询图3所示的震荡原因与震荡现象的对应关系,确定与震荡源的震荡现象匹配的震荡原因。
[0187]
在该实施例中,通过配置震荡原因与震荡现象的对应关系,并根据震荡源的震荡现象在该对应关系查询匹配的震荡原因,仅需通过SNMP协议的标准MIB(Management Information Base,管理信息库)库即可实现震荡原因的定位,其震荡原因定位的效率较高,且工作量较少。
[0188]
通过以上描述可以看出,在本公开实施例提供的技术方案中,通过对待检测设备进行预检测,确定满足震荡路由检测条件的目标设备,并对目标设备进行震荡路由检测,确定是否存在震荡路由,对于任一目标设备,当该目标设备上存在震荡路由时,确定该震荡路由的震荡源,并确定震荡原因,实现了路由震荡定位。
[0189]
以上对本公开提供的方法进行了描述。下面对本公开提供的装置进行描述。
[0190]
图9为本公开实施例提供的一种服务器的硬件结构示意图。该服务器可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,通过读取并执行机器可读存储介质902中与路由震荡定位控制逻辑对应的机器可执行指令,处理器901可执行上文描述的路由震荡定位方法。
[0191]
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0192]
如图10所示,从功能上划分,上述路由震荡定位控制逻辑可以包括:预检测单元1001、检测单元1002以及定位单元1003。
[0193]
预检测单元1001,用于对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备;
[0194]
检测单元1002,用于对所述目标设备进行震荡路由检测,以确定是否存在震荡路由;
[0195]
定位单元1003,用于对于任一所述目标设备,当该目标设备上存在震荡路由时,确定所述震荡路由的震荡源,并确定震荡原因。
[0196]
在可选实施例中,预检测单元1001,具体用于按照所述待检测设备的轮询时间间隔对所述待检测设备进行轮询;对于任一待检测设备,当检测到该待检测设备的路由表条目数量发生变化时,将该待检测设备的轮询时间间隔减去第一预设时间;当该待检测设备的轮询时间间隔等于预设触发 检测时间时,执行对所述目标设备进行震荡路由检测的步骤。
[0197]
在可选实施例中,预检测单元1001,具体用于每经过第二预设时间,将所述待检测设备的剩余检测时间减去所述第二预设时间;当所述待检测设备的剩余检测时间小于等于0时,对所述待检测设备进行预检测,并将所述待检测设备的剩余检测时间置为所述待检测设备的轮询时间间隔。
[0198]
在可选实施例中,检测单元1002,具体用于对于任一进行震荡路由检测的目标设备,根据该目标设备的路由信息确定该目标设备上是否存在震荡路由;其中,所述路由信息包括目的地址以及路由表条目出现时间。
[0199]
在可选实施例中,检测单元1002,具体用于根据路由信息收集时间间隔轮询M次该目标设备的路由表,以收集得到路由信息,其中M为大于等于1的自然数;对于任一路由表条目,当该路由表条目的震荡次数大于等于第一预设震荡次数阈值时,所述路由表条目对应的路由被确定为震荡路由;当该路由表条目的震荡次数小于第一预设震荡次数阈值,且该路由表条目出现的总时间小于第一预设时间阈值时,所述路由表条目对应的路由被确定为震荡路由;其中,当一个路由表条目的出现状态发生变化时,该路由表条目的震荡次数加1。
[0200]
在可选实施例中,所述路由信息收集时间间隔随着已完成的路由信息收集次数的增多而增大或减小。
[0201]
在可选实施例中,定位单元1003,具体用于对于任一震荡路由,判断该震荡路由是否为该目标设备的直连路由;若是,则确定该目标设备为该震荡路由的震荡源;否则,根据该震荡路由对应的路由协议信息确定该震荡路由的震荡源。
[0202]
在可选实施例中,定位单元1003,具体用于判断该震荡路由对应的路由协议表条目是否处于震荡状态;若是,则在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测,直至确定该震荡路由的震荡源;若否,则执行确定震荡原因的步骤。
[0203]
在可选实施例中,定位单元1003,还用于对于任一目标设备,根据路由协议信息收集时间间隔轮询P次该目标设备的路由协议表,以收集得到路由协议信息,其中P为大于等于1的自然数;其中,所述路由协议信息包括目的地址以及路由协议表条目出现时间;对于任一路由协议表条目,当该路由协议表条目的震荡次数大于等于第二预设震荡次数阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测的步骤;或,当该路由协议表条目的震荡次数小于第二预设震荡次数阈值,且该路由协议表条目出现的总时间小于第二预设时间阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测的步骤;其中,当一个路由协议表条目的出现状态发生变化时,该路由协议表条目的震荡次数加1。
[0204]
在可选实施例中,所述路由协议信息收集时间间隔随着已完成的路由协议信息收集次数的增多而增大或减小。
[0205]
在可选实施例中,定位单元1003,具体用于收集所述震荡源的震荡现象;根据所述震荡源的震荡现象确定震荡原因。
[0206]
在可选实施例中,定位单元1003,具体用于根据所述震荡源的震荡现象,查询预先配置的震荡现象与震荡原因的对应关系,以确定与所述震荡源的震荡现象匹配的震荡原因。
[0207]
本公开实施例还提供了一种存储有计算机可执行指令的机器可读存储介质,例如图9中的存储器902,所述计算机可执行指令可由图9所示电子设备中的处理器901执行以实现上文描述的路由震荡定位方法。
[0208]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0209]
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

权利要求书

[权利要求 1]
一种路由震荡定位方法,包括: 对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备; 对所述目标设备进行震荡路由检测,以确定是否存在震荡路由; 对于任一所述目标设备,当该目标设备上存在震荡路由时,确定与所述震荡路由相关的震荡源,并确定震荡原因。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,所述对待检测设备进行预检测,以确定满足震荡路由检测条件的目标设备包括: 按照所述待检测设备的轮询时间间隔对所述待检测设备进行轮询; 对于任一待检测设备, 当检测到该待检测设备的路由表条目数量发生变化时,通过将该待检测设备的轮询时间间隔减去第一预设时间,更新所述轮询时间间隔; 当该更新的轮询时间间隔等于预设触发检测时间时,执行对所述目标设备进行震荡路由检测的步骤。
[权利要求 3]
根据权利要求2所述的方法,其特征在于,所述按照所述待检测设备的轮询时间间隔对所述待检测设备进行轮询,包括: 每经过第二预设时间,通过将所述待检测设备的剩余检测时间减去所述第二预设时间,更新所述剩余检测时间; 当所述更新的剩余检测时间小于等于0时,对所述待检测设备进行预检测,并将所述待检测设备的剩余检测时间置为所述待检测设备的轮询时间间隔。
[权利要求 4]
根据权利要求1所述的方法,其特征在于,所述对所述目标设备进行震荡路由检测,包括: 对于任一目标设备,根据该目标设备的路由信息确定该目标设备上是否存在震荡路由; 其中,所述路由信息包括目的地址以及路由表条目出现时间。
[权利要求 5]
根据权利要求4所述的方法,其特征在于,所述根据该目标设备的路由信息确定该目标设备上是否存在震荡路由,包括: 根据路由信息收集时间间隔轮询M次该目标设备的路由表,以收集得到路由信息,其中M为大于等于1的自然数; 对于任一路由表条目, 当该路由表条目的震荡次数大于等于第一预设震荡次数阈值时,所述路由表条目对应的路由被确定为震荡路由;其中,当一个路由表条目的出现状态发生变化时,该路由表条目的震荡次数加1; 或,当该路由表条目的震荡次数小于第一预设震荡次数阈值,且该路由表条目出现的总时间小于第一预设时间阈值时,所述路由表条目对应的路由被确定为震荡路由;其中,当一个路由表条目的出现状态发生变化时,该路由表条目的震荡次数加1。
[权利要求 6]
根据权利要求5所述的方法,其特征在于,所述路由信息收集时间间隔随着已完成的路由信 息收集次数的增多而增大或减小。
[权利要求 7]
根据权利要求1所述的方法,其特征在于,所述确定与所述震荡路由相关的震荡源,包括: 对于任一震荡路由, 判断该震荡路由是否为该目标设备的直连路由; 若是,则确定该目标设备为与该震荡路由相关的震荡源; 否则,根据该震荡路由对应的路由协议信息确定与该震荡路由相关的震荡源。
[权利要求 8]
根据权利要求7所述的方法,其特征在于,所述根据该震荡路由对应的路由协议信息确定与该震荡路由相关的震荡源,包括: 判断该震荡路由对应的路由协议表条目是否处于震荡状态; 若是,则在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测,直至确定与该震荡路由相关的震荡源; 若否,则执行确定震荡原因的步骤。
[权利要求 9]
根据权利要求8所述的方法,其特征在于,所述方法还包括: 对于任一目标设备,根据路由协议信息收集时间间隔轮询P次该目标设备的路由协议表,以收集得到路由协议信息,P为大于等于1的自然数;其中,所述路由协议信息包括目的地址以及路由协议表条目出现时间; 对于任一路由协议表条目, 当该路由协议表条目的震荡次数大于等于第二预设震荡次数阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测的步骤;其中,当一个路由协议表条目的出现状态发生变化时,该路由协议表条目的震荡次数加1; 或,当该路由协议表条目的震荡次数小于第二预设震荡次数阈值,且该路由协议表条目出现的总时间小于第二预设时间阈值时,执行在当前的目标设备完成检测之后,对处于震荡状态的路由协议表条目中对应的发布者设备进行震荡路由检测的步骤;其中,当一个路由协议表条目的出现状态发生变化时,该路由协议表条目的震荡次数加1。
[权利要求 10]
根据权利要求9所述的方法,其特征在于,所述路由协议信息收集时间间隔随着已完成的路由协议信息收集次数的增多而增大或减小。
[权利要求 11]
根据权利要求1所述的方法,其特征在于,所述确定震荡原因,包括: 收集所述震荡源的震荡现象; 根据所述震荡源的震荡现象确定震荡原因。
[权利要求 12]
根据权利要求11所述的方法,其特征在于,所述根据所述震荡源的震荡现象确定震荡原因,包括: 根据预先配置的震荡现象与震荡原因的对应关系,确定与所述震荡源的震荡现象匹配的震荡原因。
[权利要求 13]
一种服务器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述 处理器执行的机器可读指令,所述处理器被所述机器可读指令促使执行如权利要求1-12任一项所述的路由震荡定位方法。
[权利要求 14]
一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器执行如权利要求1-12任一项所述的路由震荡定位方法。

附图

[ 图 1]  
[ 图 2A]  
[ 图 2B]  
[ 图 2C]  
[ 图 2D]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]  
[ 图 7]  
[ 图 8]  
[ 图 9]  
[ 图 10]