一种获取网络中两点间最短路由路径的方法及装置的制作方法

文档序号:7665939阅读:165来源:国知局
专利名称:一种获取网络中两点间最短路由路径的方法及装置的制作方法
技术领域
本发明涉及计算机网络测量和分析技术,特别涉及一种基于路由更新信息 的获取网络中两点间最短路由路径的方法及装置。
背景技术
在互联网络中, 一个自治系统就是处于一个管理机构控制之下的路由器和
网络群组。它可以是一个路由器直接连接到一个局域网(LAN)上,同时也连 到因特网(Internet)上;它可以是一个由企业骨干网互连的多个局域网。在 一个自治系统中的所有路由器必须相互连接,运行相同的路由协议,同时分配 同一个自治系统编号。
在开放最短路径优先(Open Shortest Path First, 0SPF)协议的定义中, 可以将一个路由域或者一个自治系统(AS)划分为几个区域。在开放式最 短路径优先(OSPF)协议中,由按照一定的开放最短路径优先(OSPF)路由法 则组合在一起的一组网络或路由器的集合称为区域(AREA)。图l是分为若 干区域的开放式最短路径优先(OSPF)协议自治系统的例子,其中表示出了 一 个自治系统分为3个区域,分别为区域0、区域1和区域2,每个区域中包括 多个路由器3,区域之间相邻接的位置上的路由器是分别加入不同区域的,这 些路由器是区域边界路由器4。自治系统边界路由器是负责与其他自治系统连 接的路由器,其上通常运行边界网关协议(BGP)。在开放式最短路径优先(OSPF) 协议中,数据包从发送方路由器到达接收方路由器所经过的中间路由器的集合 就是最短路由路径。
互联网(Internet)和服务提供商(ISP)的网络被划分为多个自治系统,
自治系统定义了管理控制的区域和作用于自治系统的路由策略,所以路由一般 被分为区域内和区域间两种。边界网关协议(BGP)是目前的事实标准,它运 行在自治系统的边界路由器上以交换网络可达性信息;在区域内路由中,目前 使用最广泛的是开放最短路径优先(OSPF)协议。路由系统是一个网络的核心,它决定了网络中各种交通的流向。在网络管 理和网络规划中,如果用户想要了解自己感兴趣的交通流量是否按照预期的网 络路径被传送以验证没有出现网络路由异常或者配置错误等,就需要掌握数据 包从发送方到达接收方的实际最短路由路径。这样从路由的角度对网络运行监 测和管理,就如同调试程序时拥有能够深入到每一行内核级源代码中去的能 力,有助于迅速轻松的定位网络故障,提供网络管理人员系统级的网络透视能 力,并对网络规划具有现实的指导意义。
然而,现有的路由器无法将数据包从发送方到接收方的实际最短路由路径 直接提供给用户即网络管理者来使用。现有的技术中,如果用户要获取最短路 由路径,那么用户必须采取登录到的各个路由器上或者以基于简单网络管理协 议(S丽P)的方式获取相关各路由器的路由表来间接地获得最短路由路径,这 个过程不但非常耗时费力,而且容易出错。

发明内容
本发明的目的是针对现有技术的上述不足,提供一种获取网络中两点间最 短路由路径的方法及装置,能够在不改变现有网络路由器的情况下,方便地使 用户获得最短路由路径。
为了上述目的,本发明采取如下技术方案
一种获取网络中两点间最短路由路径的装置,包括
路由信息采集探针,该路由信息采集探针部署到至少一个自治系统的至少 一个开放式最短路径优先协议区域中,用于实时采集每个开放式最短路径优先 协议区域泛洪的链路状态宣告报文;
存储器,用于存储所述路由信息采集探针为每个开放式最短路径优先协议
区域维护的链路状态信息数据库;
处理器,用于根据所述链路状态信息数据库计算用户输入的网络中两点间
最短路由路径;
输出单元,用于输出所述处理器的计算结果。
优选地,对所述路由信息采集探针进行的配置包括路由信息采集探针与 所处区域的接入路由器建立开放最短路径优先协议邻接关系采集本区域的开 放最短路径优先协议链路状态宣告报文信息,通过隧道的方式与本自治系统的其他区域或者其他自治系统的区域中的接入路由器相连并建立开放最短路径 优先协议邻接关系来采集相应区域的开放最短路径优先协议链路状态宣告报 文信息。
优选地,对所述路由信息采集探针进行的配置还包括通过传输控制协议 多跳的方式与需要监测的自治系统的边界路由器建立边界网关协议对等关系 来采集边界网关协议路由更新报文。
一种获取网络中两点间最短路由路径的方法,用于获取指定的源节点到目 的节点之间的最短路由路径,其特征是,包括如下步骤
步骤Sl,采集路由信息;所述路由信息包括为每个开放最短路径优先协 议区域维护的链路状态信息数据库;
步骤S2,利用所述路由信息构造以所述源节点为根节点的最短路由路径 优先树,并遍历所述最短路由路径优先树直到找到所述目的节点,以获得所述 源节点到所述目的节点之间的最短路由路径。
优选地,所述步骤S1中,所述路由信息还包括每个对等边界网关协议的 ii界路由器所能到达的前缀信息数据库;所述链路状态信息数据库包括在开放 式最短路径优先协议区域泛洪的链路状态宣告报文。
优选地,所述步骤S1具体包括如下步骤
步骤Sll,在至少一个自治系统的至少一个区域中部署路由信息采集探
针;
步骤S12,对所述路由信息采集探针进行配置;
步骤S13,采集每个开放式最短路径优先协议区域泛洪的链路状态宣告报文。
优选地,所述步骤S1.2中,对所述路由信息采集探针的配置包括路由
信息采集探针与所处区域的接入路由器建立开放最短路径优先协议邻接关系 采集本区域的开放最短路径优先协议链路状态宣告报文信息,通过隧道的方式 与本自治系统的其他区域或者其他自治系统的区域中的接入路由器相连并建 立开放最短路径优先协议邻接关系来采集相应区域的开放最短路径优先协议 链路状态宣告报文信息。
优选地,所述步骤S2中构造所述最短路由路径优先树具体包括如下步骤 步骤S21,以源节点为起点,从所述链路状态信息数据库中获取该源节点
8的所有链路;
步骤S22,针对每个链路计算所有未加入所述最短路径优先树的节点到所
述根节点的距离,并选择出最短路径的一个节点,作为最短路由路径优先树的 下一个节点;
步骤S23,将所述下一个节点作为新的源节点,反复执行步骤S21至S23, 直到最后一个节点停止。
优选地,步骤S2中,所述最短路由路径优先树的节点包括节点类型、 节点标识、节点所对应的链路状态宣告报文、节点到最短路由路径优先树根节 点的最短路由路径的距离值和该节点到所述根节点所经过的路由器有序集合。
优选地,步骤S2中在构造所述最短路由路径优先树之前还包括
位置判断步骤根据源节点和目的节点的节点标识,判断源节点和目的节 点的位置关系是否符合下列关系之一
第一种关系,源节点与目的节点在相同自治系统中的相同区域;
第二种关系,源节点与目的节点在相同自治系统的不同区域;
第三种关系,源节点与目的节点在不同自治系统;
如果源节点和目的节点符合第一种关系,则执行步骤S2。
优选地,如果源节点和目的节点符合第二种关系,还包括如下步骤
步骤S31,在源节点所在的区域中找出能够到达目的节点的区域边界路由
步骤S32,在所述区域边界路由器集合中找到目的区域边界路由器,该目 的区域边界路由器是从源节点到区域边界路由器集合的最短路由路径权值为
最小的区域边界路由器
步骤S33,以源节点、所述目的区域边界路由器和该目的区域边界路由器 所附着的子网作为源节点、目的节点和目的网段输入,执行步骤S2,获得从
源节点到目的节点最短路由路径在源节点所在区域中的部分;
步骤S34,将所述目的区域边界路由器作为新的源节点,重复执行步骤S31
到步骤S34,直到到达目的节点停止。
优选地,所述步骤S32具体包括如下步骤
遍历所述区域边界路由器集合中的所有区域边界路由器,执行步骤S2; 找出从源节点到区域边界路由器集合的最短路由路径权值为最小的区域边界路由器,作为目的区域边界路由器。
优选地,如果源节点和目的节点符合第三种关系,还包括如下步骤 步骤S41,寻找能够达到目的节点且路径最短的自治系统边界路由器集合.
步骤S42,在所述自治系统边界路由器集合中找到目的自治系统边界路由 器,该目的自治系统边界路由器是从源节点到自治系统边界路由器集合最短路 由路径权值为最小的自治系统边界路由器;
步骤S43,获得从源节点到目的节点最短路由路径在源节点所在系统中的 部分;
歩骤S44,将所述目的自治系统边界路由器作为新的源节点,重复执行步 骤S41到步骤S44,直到到达目的节点停止。
优选地,在所述步骤S41中,通过从维护的边界网关协议路由信息中寻找 宣告前缀为目的网段的路由信息,来寻找能够达到目的节点且路径最短的自治 系统边界路由器集合。
优选地,所述步骤S42包括如下步骤
步骤S421,以源节点和所述自治系统边界路由器为输入,执行歩骤 S31至步骤S34,获得源节点到所述自治系统边界路由器的最短路由路径;
步骤S422,反复执行步骤S421直到遍历所有自治系统边界路由器, 通过比较源节点到各所述自治系统边界路由器的最短路由路径,获得最短路由 路径最短的自治系统边界路由器作为目的自治系统边界路由器。
优选地,所述步骤S43具体包括如下步骤
在源节点所在自治系统中找到所述目的自治系统边界路由器附着的一个 子网;
以源节点标识、该目的自治系统边界路由器和该目的自治系统边界路由器 附着的一个子网分别作为源节点、目的节点和目的网段作为输入,执行步骤 S31至步骤S34,获得从源节点到目的节点最短路由路径在源节点所在自治系 统中的部分。
与现有技术相比,本发明产生了如下技术效果
本发明是基于被动式路由信息采集技术,由采集设备集中式地计算网络中 任意位置关系的两路由器间最短路由路径的方法和装置,从而本发明在不改变
10现有网络路由器的情况下,方便地使用户获得网络中两个节点之间的最短路由 路径,不仅实现简单而且节省时间。该发明可用于了解网络中两路由器间交通 流量的实际路径,监测特定路由路径,路由异常故障定位,保证特定路由路径 安全等方面。


图1是现有技术中的自治系统结构示意图2是本发明一实施例中路由信息采集探针部署示意图3是本发明的获取网络中两点间最短路由路径的方法流程图4是本发明的获取网络中两点间最短路由路径的方法中步骤Sl的流程
图5是本发明的获取网络中两点间最短路由路径的方法中步骤S2的流程
图6是本发明的获取网络中两点间最短路由路径的方法中步骤S3的流程
图7是本发明的获取网络中两点间最短路由路径的方法中步骤S4的流程图。
具体实施例方式
下面结合附图与具体实施方式
对本发明作进一步详细描述。
本发明提供一种基于被动式路由信息采集来获取网络中任意两节点路由 路径的方法和装置,所述节点是指网络中的路由器和由多个路由器组成的网络 类型节点。通过本发明的所述装置来采集网络路由信息,在采集到网络路由信 息的情况下,所述装置为开放式最短路径优先(0SPF)协议每个区域维护一个 链路状态信息数据库(LSDB)。用户选中网络中的任意位置关系的两个路由器, 所述装置通过查询链路状态信息数据库(LSDB)中的路由信息,采用本发明的 方法计算出两点间最短路由路径。
如图2所示,作为具体实施例, 一种获取网络中两点间最短路由路径的装 置,包括如下部分
路由信息采集探针11,该路由信息采集探针部署到至少一个自治系统的
ii至少一个开放式最短路径优先(0SPF)协议区域中,实时采集每个开放式最短路径优先(0SPF)协议区域(Area)泛洪的链路状态宣告(LSA)报文。在网络测量技术领域,通常把部署在网络中、通过主动发包或者被动监听方式获取网络中相关报文信息的软件或者硬件称为采集探针。路由信息采集探针模拟实现完整的边界网关协议(BGP)和开放最短路径优先(0SPF)协议,与真实路由器建立边界网关协议(BGP)会话并交换边界网关协议(BGP)路由更新报文,建立开放最短路径优先(0SPF)协议邻接关系并交互开放最短路径优先(0SPF)协议链路状态宣告(LSA)报文来采集路由信息。路由信息采集探针是本领域技术人员熟知的技术,例如软件的路由信息采集探针可以通过现有的开源路由软件GNU Zebra实现。
较佳地,如图2所示,对所述路由信息采集探针的配置包括:路由信息采集探针11与所处区域的接入路由器建立开放最短路径优先(0SPF)协议邻接关系12采集本区域的开放最短路径优先(0SPF)协议链路状态宣告(LSA)报文信息,通过隧道的方式,例如通用路由封装(GRE),与本自治系统的其他区域或者其他自治系统的区域中的接入路由器相连并建立开放最短路径优先(0SPF)协议邻接关系12来采集相应区域的开放最短路径优先(0SPF)协议链路状态宣告(LSA)报文信息;通过传输控制协议(TCP)多跳的方式与需要监测的自治系统的边界路由器建立边界网关协议(BGP)对等关系13来采集边界网关协议(BGP)路由更新报文。
存储器(图中未示出),所述路由信息采集探针为每个开放式最短路径优先(0SPF)协议区域(Area)维护一个链路状态信息数据库(LSDB)并存储到存储
器中;
处理器(图中未示出),用于根据用户的输入计算网络中两点间最短路由路径;
输出单元(图中未示出),用于输出所述处理器的计算结果。与上述获取网络中两点间最短路由路径的装置相对应地,作为具体实施例,本发明提供一种基于被动式路由信息采集的,获取网络中两点间最短路由路径的方法,在上面为每个开放式最短路径优先(0SPF)协议区域(Area)维护--个链路状态信息数据库(LSDB)的基础上,以用户提供的源节点、目的节点和目的网段为输入,给出从源节点到目的节点所经过的由中间路由器有序集合所组成的最短路由路径。对输入参数解释如下源节点(SourceNode)为用户决定作为最短路由路径计算的起始路由器,编号为SourceNodeID;目的节点(TargetNode)为用户决定作为最短路由路径计算的终点路由器,编号为TargetNodeID;以及该终点路由器所附着的一个目的网段(TargetPref ix)(注因一个路由器通常会有多个网段附着,所以需要用户确定具体是哪个目的网段)。本方法中,由源节点标识和目的节点标识,易得其所在的自治系统号,源节电所在自治系统为SourceAS,自治系统号为SourceASID;目的节点所在自治系统为TargetAS,自治系统号为TargetASID。下面对该方法进行详细描述。
一种获取网络中两点间最短路由路径的方法,用于获取指定的源节点到目的节点之间的最短路由路径,如图3所示,包括如下步骤
步骤Sl,采集路由信息的步骤;所述路由信息包括为每个开放最短路径优先协议区域维护的链路状态信息数据库;
较佳地,所述路由信息还包括所监测的每个对等边界网关协议(BGP)的边界路由器所能到达的前缀信息数据库;所述链路状态信息数据库包括在开放式最短路径优先(0SPF)协议区域(Area)泛洪的链路状态宣告(LSA)报文。
较佳地,如图4所示,所述步骤S1具体包括如下步骤
步骤Sl.l,在至少一个自治系统的至少一个区域中部署路由信息采集探
针;
步骤Sl. 2,对所述路由信息采集探针进行配置;
较佳地,对所述路由信息采集探针的配置包括路由信息采集探针与所处区域的接入路由器建立开放最短路径优先(0SPF)协议邻接关系采集本区域的开放最短路径优先(0SPF)协议链路状态宣告(LSA)报文信息,通过隧道的方式,例如通用路由封装(GRE),与本自治系统的其他区域或者其他自治系统的区域中的接入路由器相连并建立开放最短路径优先(0SPF)协议邻接关系来采集相应区域的开放最短路径优先(0SPF)协议链路状态宣告(LSA)报文信息;通过传输控制协议(TCP)多跳的方式与需要监测的自治系统的边界路由器建立边界网关协议(BGP)对等关系来采集边界网关协议(BGP)路由更新报文。
步骤SL3,采集每个开放式最短路径优先(0SPF)协议区域(Area)泛洪
13的链路状态宣告(LSA)报文。
步骤S2,利用所述路由信息构造以所述源节点为根节点的最短路由路径优先树,并遍历所述最短路由路径优先树直到找到所述目的节点,以获得所述源节点到所述目的节点之间的最短路由路径;
较佳地,如图5所示,所述步骤S2中构造所述最短路由路径优先树具体
包括如下步骤
步骤S21,以源节点为起点,从所述链路状态信息数据库中获取该源节点的所有链路。
步骤S22,针对每个链路计算所有未加入所述最短路径优先数的节点到所述根节点的距离,并选择出最短路径的一个节点,作为最短路由路径优先树的下一个节点;
步骤S23,将所述下一个节点作为新的源节点,反复执行步骤S21-S23,直到最后一个节点停止。
作为-一种可实施的方式,下面以源节点和目的节点在同一个开放式最短路径优先(0SPF)协议区域(Area)中为例来详细介绍构造最短路由路径优先树(SPF tree)的步骤。本发明的步骤S20对现有技术的开放最短路径优先路由(0SPF)协议中最短路由路径优先树(SPF tree)的构造进行了改进,改进内容包括相应数据结构的裁减、路由表操作的删除、最短路由路径优先树(SPF tree)第二阶段构造方法的裁减以及下一跳计算过程(Nexth叩Caculation)的删除。具体描述为
首先,单开放式最短路径优先(0SPF)协议区域(Area)中最短路由路径优先树(SPF tree)的构造方法定义其所构造的最短路由路径优先树由一系列节点构成,为了描述方便将该节点称作Vertex节点,其中每个Vertex节点包含五个属性
(a) VertexType: Vertex节点类型。最短路由路径优先树(SPF tree)中有两种类型的Vertex节点路由器类型(RouterType)和网络类型(NetworkType)。其中一个路由器类型的节点代表网络中的一个路由器, 一个网络类型的节点代表网络中的一个广播或者非广播多路访问网络。
(b) VertexID: Vertex节点标识。最短路由路径优先树(SPF tree)中每个Vertex节点都有一个32位无符号整数作为节点标识。对于路由器类型的Vertex节点,使节点标识(VertexID)为该节点所代表的路由器的路由器标识(RouterID);对于网络类型的Vertex节点,使节点标识(VertexID)为该节点所代表的广播或者非广播多路访问网络上指定路由器(DesignatedRouter)的IP地址;所述指定路由器是指在网络类型的节点的多个路由器中,通过协议规范选举出来的。
(c) VertexLSA: Vertex节点所对应的链路状态宣告报文。最短路由路径优先树(SPF tree)中每个Vertex节点在链路状态信息数据库(LSDB)中都有一条链路状态宣告(LSA)与之对应。每个链路状态宣告(LSA)条目头部信息包括链路状态类型,宣告路由器的地址,链路耗费和序列号(版本号)等。对于路由器类型的Vertex节点,链路状态宣告报文(VertexLSA)就是该节点所代表的路由器所发出的路由器链路状态宣告报文(RouterLSA);对于网络类型的Vertex节点,链路状态宣告报文(VertexLSA)是该节点所代表的广播或者非广播多路访问网络上指定路由器(Designated Router)所发出的网络链路状态宣告报文(NetworkLSA)。
(d) Distance: Vertex节点到最短路由路径优先树(SPF tree)根的最短路由路径的距离值。该距离值由该最短路由路径上的每条边的权值加和而得到,其中每条边上的权值是在路由器链路状态宣告报文(RouterLSA)和网络链路状态宣告报文(NetworkLSA)中包含的。这里规定最短路由路径优先树(SPFtree)中,网络类型Vertex节点到其所代表的广播或者非广播多路访问网络上的任何一个路由器类型Vertex节点的距离值为0。
(e) Path:源节点到Vertex节点的所经过的路由器有序集合。该集合是在构造最短路由路径优先树的过程中动态建立的,记录从源节点到目的节点的
每一跳伯息。
本发明对现有技术的最短路由路径优先树(SPF tree)构造的好处在于路
由表操作和计算下一跳操作的删除是因为本发明是给出两点间的最短路由路径而不是像路由器那样来生成转发表的;对于最短路由路径优先树第二阶段构造方法的裁剪是因为这个第二阶段主要是简单处理当源节点和目的节点是在同一个自治系统但是不同区域的,而本发明处理这种情况的时候是采用迭代单区域的情形,来提高算法的速度和准确度等。
根据上述对最短路由路径优先树的节点的属性的定义,作为一种可实施的方式,步骤S2具体包括如下步骤;
步骤S21,以源节点为起点,从所述链路状态信息数据库中获取该源节 点的所有链路。
在将用户指定的源节点为起点时,需要先初始化最短路由路径优先树
(SPF tree)的构造方法的数据结构,具体包括
步骤S211将最短路由路径优先树(SPF tree)和参选集合 (Candidate)置为空,其中最短路由路径优先树(SPF tree)与参选集合 (Candidate)中的元素均为Vertex节点。
步骤S212将选定的源节点所对应的Vertex节点放入参选集合 (Candidate)中,其中源节点所对应的Vertex节点的节点类型(VertexType) 为路由器类型(RouterType);节点标识(VertexID)为该源节点的路由器标 识(Router ID);节点的链路状态宣告报文(VertexLSA)为该源节点路由器 所发出的路由器链路状态宣告(RouterLSA),可以通过查找为每个开放式最短 路径优先(OSPF)协议区域(Area)维护的链路状态信息数据库(LSDB)获得;节 点的距离属性(Distance)为0。
在步骤S21中,当上述源节点是新加入最短路由路径优先树(SPF tree)中的、作为循环执行的新的源节点时,不需要再执行上述初始化步骤 S211和S212,这是本领域人员知道的。
步骤S22,针对每个链路计算所有未加入所述最短路径优先数的节点到 所述根节点的距离,并选择出最短路径的一个节点,作为最短路由路径优先树 的下一个节点,即每次从参选集合(Candidate)中取出距离(Distance)最 小的Vertex节点,放入最短路由路径优先树(SPF tree)中。具体包括如下 歩骤
设此刚加入最短路由路径优先树(SPF tree)的节点为节点V (Vertex V), 根据所判断节点V的不同类型分别执行步骤S221和步骤S222:
步骤S221,如果节点V为路由器类型(RouterType),执行如下步骤 步骤S (221a),取节点V中的链路状态宣告报文(VertexLSA)中 的下一条链路(Link),如果遍历完毕则返回步骤S22;
步骤S (221b),如果该链路(Link)类型为1,由此链路(Link)的 链路标识(linkid)在该开放式最短路径优先(OSPF)协议区域(Area)的链路
16状态信息数据库(LSDB)中查找对应的路由器链路状态宣告报文(RouterLSA), 为了描述的方便而设找到的该链路状态宣告报文(LSA)为findLSA,转步骤S
(221e);需要说明的是,关于链路类型是本领域技术人员熟知的,其中类型为 l表示点对点(point to point)的开放式最短路径优先(0SPF)协议网络类 型,类型为2表示临时网络(transient network)的开放式最短路径优先
(OSPF)协议网络类型,比如广播网或者非广播多路访问网络,类型为3表 示stub的运行开放最短路径优先(OSPF)协议的网络类型,即末梢网络,类 型为4表示虚链路。
步骤S(221c),如果该链路(Link)类型为2,由此链路(Link) 的链路标识(linkid)在该开放式最短路径优先(OSPF)协议区域(Area)的链 路状态信息数据库(LSDB)中査找对应的网络链路状态宣告报文(NetworkLSA), 为了描述的方便而设找到的该链路状态宣告报文(LSA)为findLSA,转步骤S
(221e);
步骤S (d),如果该链路(Link)类型为3和4,转步骤S (221a);
步骤S(e),如果findLSA为空,或者findLSA的年龄(Age)为最 大年龄(MaxAge),即findLSA的时间己经超过链路状态宣告报文(LSA)中规 定的有效期,或者findLSA中没有指回节点V的链路(Link),转步骤S(221a);
步骤S (f), 由findLSA生成相应的Vertex节点,其中距离 (Distance)置为0。为了描述方便设该Vertex节点为节点W (Vertex W)。
步骤S (g),如果节点W (Vertex W)已经存在于最短路由路径优 先树(SPF tree)中,转步骤S (221a)
步骤S (h), 计算节点W (Vertex W)的距离(Distance)。该距 离(Distance)等于节点V的距离(Distance)加上findLSA中所宣告的权值 (metric)。
步骤S (i), 如果参选集合(Candiadate)中还尚未包含节点W (Vertex W)或者该节点W的距离(Distance)值小于参选集合(Candidate) 中节点W的距离(Distance)值,则更新参选集合(Candidate),转步骤S(221a): 否则不作任何处理转步骤S (221a);所述更新包括将参选集合中尚未包含的 节点放入参选集合和/或对参选集合中的所有节点的路由器有序集合(Path) 属性进行更新。
17步骤S222,如果节点V为网络类型(NetworkType),执行如下步骤: 步骤S (222a),取节点V中的链路状态宣告报文(VertexLSA) 中的下一个附着路由器(AttachedRouter),如果遍历完毕则返回步骤S22;
步骤S (222b),由此附着路由器(AttachedRouter)在该开放式 最短路径优先(0SPF)协议区域(Area)的链路状态信息数据库(LSDB)中查找对 应的路由器链路状态宣告报文(RouterLSA),为了描述的方便而设找到的该链 路状态宣告报文(LSA)为findLSA;
步骤S (222c),如果findLSA为空,或者findLSA的年龄(Age) 为最大年龄(MaxAge),即findLSA的时间已经超过链路状态宣告报文(LSA) 中规定的有效期,或者findLSA中没有指回节点V的链路(Link),转步骤S (222a)
步骤S (222d), 由findLSA生成路由器类型(RouterType)的 Vertex节点,其中距离(Distance)置为0,为了描述方便设该Vertex节点 为节点W (Vertex W)。
步骤S (222e),如果节点W (Vertex W)已经存在于最短路由 路径优先树(SPF tree)中,转步骤S (222a);
步骤S (222f),计算节点W (Vertex W)的距离(Distance); 该距离(Distance)即等于节点V (Vertex V)的距离(Distance);
步骤S (222g),如果参选集合(Candiadate)中还尚未包含节 点W(VertexW)或者该节点W的距离(Distance)值小于参选集合(Candidate) 中节点W (Vertex W)的距离(Distance)值,则更新参选集合(Candidate), 转步骤S (222a);否则不作任何处理转步骤S (222a);所述更新包括将参选集 合中尚未包含的节点放入参选集合和/或对参选集合中的所有节点的路由器有 序集合(Path)属性进行更新。
步骤S23,将所述下一个节点作为新的源节点,反复执行步骤 S21-S23,直到找到目的节点停止,获得由源节点(SourceNode)作为起点, 目的节点(TargetNode)作为终点的一个有序路由器集合(RouterSet),该集 合为从源节点到目的节点的最短路由路径。
较佳地,本发明的获取网络中两点间最短路由路径的方法,其中步骤S2 中在构造所述最短路由路径优先树之前还包括
18位置判断步骤根据源节点和目的节点的节点标识,判断源节点和目的节 点的位置关系是否符合下列关系之一
(1) 源节点与目的节点在相同自治系统中的相同区域;如果源节点和目的 节点符合第一种关系,则执行步骤S2;
(2) 源节点与目的节点在相同自治系统的不同区域;
(3) 源节点与目的节点在不同自治系统。
较佳地,本发明的获取网络中两点间最短路由路径的方法,对于源节点和
目的节点在同一个自治系统(AS)的不同开放式最短路径优先(0SPF)协议区域 (Area)中的最短路由路径计算,如图6所示,还包括
步骤S31,如果源节点和目的节点属于同一个自治系统(AS)的不同开放式 最短路径优先(0SPF)协议区域(Area)中,则在源节点所在的区域中找出能够 到达目的节点的区域边界路由器集合。具体来说,获得源节点(SourceNode) 和目的节点(TargetNode)所在的区域号,其区域号分别是源节点区域号 (SourceAreaID),和目的节点区域号(TargetAreaID),若判断源节点区域号 与目的节点区域号相等(SourceAreaID=TargetAreaID)为是,则转向步骤S2; 若判断源节点区域号与目的节点区域号相等(SourceAreaID二TargetAreaID) 为否,则搜索源节点所在自治系统(SourceAS)链路状态信息数据库(LSDB) 中的全部链路状态宣告报文(SummaryLSA),从中找到宣告前缀为目的网段 (TargetPrefix)的区域边界路由器(ABR)集合(ABRSet)。
步骤S32,在所述区域边界路由器集合中找到目的区域边界路由器,该目 的区域边界路由器是从源节点到区域边界路由器集合的最短路由路径权值为 最小的区域边界路由器。具体包括如下步骤
步骤S321,设从源节点(SourceNode)到该区域边界路由器集合 (ABRSet)中最短路由路径权值为最小的区域边界路由器为目的边界路由器 (TargetABR),为了描述方便将最短路由路径权值称为minCost,目的边界路 由器(TargetABR)附着的子网为ABRPrefix,初始化其最短路由路径权值 (minCost)为无穷大;
步骤S322,取区域边界路由器集合(ABRSet)中的下一个区域边界 路由器(eachABR),如遍历完毕,则执行步骤S32;
步骤S323,以源节点标识(SourceNodeID)的源节点,和该区域边
19界路由器(eachABR)为目的节点作为输入,执行步骤S2,计算源节点和该区 域边界路由器之间最短路由路径权值,称该权值为cost,若权值cost小于 minCost,则更新目的边界路由器(TargetABR)为该区域边界路由器(eachABR), 更新minCost为权值cost,转向步骤S322;
步骤S33,获得从源节点到目的节点最短路由路径在源节点所在区域中的 部分。具体来说,以源节点(SourceNode)、目的区域边界路由器(TargetABR) 和该目的区域边界路由器所附着的子网(TargetPrefix)作为源节点、目的节 点和目的网段输入,执行步骤S2,获得从源节点(SourceNode)到目的节点 (TargetNode)最短路由路径在源节点所在区域(SourceArea)中的部分;
步骤S34,将所述目的区域边界路由器作为新的源节点,重复执行步骤S31 到步骤S34,直到到达目的节点停止,获得由源节点(SourceNode)作为起点, 目的节点(TargetNode)作为终点的一个有序路由器集合(RouterSet)。该集 合为从源节点到目的节点的跨区域的最短路由路径。
较佳地,本发明的获取网络中两点间最短路由路径的方法,对于源节点和 目的节点在不同自治系统(AS)中的最短路由路径计算,如图7所示,还包括
步骤S41,如果源节点和目的节点在不同自治系统,则寻找能够达到目的 节点且路径最短的自治系统边界路由器集合。具体来说,若判断源节点所在自 治系统号(SourceASID)与目的节点所在自治系统号(TargetASID)相等,转 向歩骤S31至步骤S34;否则从维护的边界网关协议(BGP)路由信息中寻找 宣告前缀为目的网段(TargetPrefix)的路由信息,通过该路由信息可获得从 源节点所在自治系统(SourceAS)中可达目的网段的自治系统边界路由器集合;
步骤S42,在所述自治系统边界路由器集合中找到目的自治系统边界路由 器,该目的自治系统边界路由器是从源节点到自治系统边界路由器集合最短路 由路径权值为最小的自治系统边界路由器。具体来说,包括如下步骤
步骤S421,以源节点和所述自治系统边界路由器为输入,执行步骤 S31至步骤S34,获得源节点到所述自治系统边界路由器的最短路由路径;
步骤S422,反复执行步骤S421直到遍历所有自治系统边界路由器, 通过比较源节点到各所述自治系统边界路由器的最短路由路径,获得最短路由 路径最短的自治系统边界路由器作为目的自治系统边界路由器(TargetASBR)。 步骤S43,获得从源节点到目的节点最短路由路径在源节点所在系统中的部分。具体来说,在源节点所在自治系统(SourceAS)中找到所述目的自治 系统边界路由器(TargetASBR)附着的一个子网(TargetASBRPrefix),以源 节点标识(SourceNodeID)、该目的自治系统边界路由器(TargetASBR)和该 目的自治系统边界路由器(TargetASBR)附着的一个子网(TargetASBRPrefix) 分别作为源节点、目的节点和目的网段作为输入,执行步骤S31至34,获得 从源节点(SourceNode)到目的节点最短路由路径在源节点所在自治系统中的 部分。
步骤S44,将所述目的自治系统边界路由器作为新的源节点,重复执行 步骤S41到步骤S44,直到到达目的节点停止,获得由源节点(SourceNode) 作为起点,目的节点(TargetNode)作为终点的 一个有序路由器集合 (RouterSet)。该集合为从源节点到目的节点的跨过至少一个自治系统的最短 路由路径。
本发明所产生的有益技术效果是本发明基于被动式路由信息采集,由采
集设备集中式地计算网络中任意位置关系的两路由器间最短路由路径,从而在
不改变现有网络路由器的情况下,方便地使用户获得网络中两个节点之间的最
短路由路径,不仅实现简单而且节省时间。
本发明可用于了解网络中两路由器间交通流量的实际路径,监测特定路由
路径,路由异常故障定位,保证特定路由路径安全等方面。如果用户想要了解
自己感兴趣的交通流量是否按照预期的网络路径被传送以验证没有出现网络
路由异常或者配置错误等,就可以采用本发朋的技术方案获得从数据包发送方
到接收方的实际最短路由路径。这样从路由的角度对网络运行监测和管理,就
如同调试程序时拥有能够深入到每一行内核级源代码中去的能力,有助于迅速
轻松的定位网络故障,提供网络管理人员系统级的网络透视能力,并对网络规 划具有现实的指导意义。
以上所述内容,仅为本发明具体的实施方式,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易 想到的变化或替换,都应涵盖在本发明的保护范围内。
权利要求
1、一种获取网络中两点间最短路由路径的装置,其特征是,包括路由信息采集探针,该路由信息采集探针部署到至少一个自治系统的至少一个开放式最短路径优先协议区域中,用于实时采集每个开放式最短路径优先协议区域泛洪的链路状态宣告报文;存储器,用于存储所述路由信息采集探针为每个开放式最短路径优先协议区域维护的链路状态信息数据库;处理器,用于根据所述链路状态信息数据库计算用户输入的网络中两点间最短路由路径;输出单元,用于输出所述处理器的计算结果。
2、 根据权利要求1所述的获取网络中两点伺最短路由路径的装置,其特 征是,对所述路由信息采集探针进行的配置包括:路由信息采集探针与所处区 域的接入路由器建立开放最短路径优先协议邻接关系采集本区域的开放最短 路径优先协议链路状态宣告报文信息,通过隧道的方式与本自治系统的其他区 域或者其他自治系统的区域中的接入路由器相连并建立开放最短路径优先协 议邻接关系来采集相应区域的开放最短路径优先协议链路状态宣告报文信息。
3、 根据权利要求2所述的获取网络中两点间最短路由路径的装置,其特征是,对所述路由信息采集探针进行的配置还包括通过传输控制协议多跳的 方式与需要监测的自治系统的边界路由器建立边界网关协议对等关系来采集 边界网关协议路由更新报文。
4、 一种获取网络中两点间最短路由路径的方法,用于获取指定的源节点 到目的节点之间的最短路由路径,其特征是,包括如下步骤步骤Sl,采集路由信息;所述路由信息包括为每个开放最短路径优先协 议区域维护的链路状态信息数据库;步骤S2,利用所述路由信息构造以所述源节点为根节点的最短路由路径 优先树,并遍历所述最短路由路径优先树直到找到所述目的节点,以获得所述 源节点到所述目的节点之间的最短路由路径。
5、 根据权利要求4所述的获取网络中两点间最短路由路径的方法,其特 征是,所述步骤S1中,所述路由信息还包括每个对等边界网关协议的边界路由器所能到达的前缀信息数据库;所述链路状态信息数据库包括在开放式最短 路径优先协议区域泛洪的链路状态宣告报文。
6、 根据权利要求4或5所述的获取网络中两点间最短路由路径的方法, 其特征是,所述步骤S1具体包括如下步骤步骤Sll,在至少一个自治系统的至少一个区域中部署路由信息采集探针;步骤S12,对所述路由信息采集探针进行配置;步骤S13,采集每个开放式最短路径优先协议区域泛洪的链路状态宣告报文。
7、 根据权利要求6所述的获取网络中两点间最短路由路径的方法,其特 征是,所述步骤S12中,对所述路由信息采集探针的配置包括路由信息采集 探针与所处区域的接入路由器建立开放最短路径优先协议邻接关系采集本区 域的开放最短路径优先协议链路状态宣告报文信息,通过隧道的方式与本自治 系统的其他区域或者其他自治系统的区域中的接入路由器相连并建立开放最 短路径优先协议邻接关系来采集相应区域的开放最短路径优先协议链路状态 宣告报文信息。
8、 根据权利要求4所述的获取网络中两点间最短路由路径的方法,其特 征是,所述步骤S2中构造所述最短路由路径优先树具体包括如下步骤步骤S21,以源节点为起点,从所述链路状态信息数据库中获取该源节点 的所有链路;步骤S22,针对每个链路计算所有未加入所述最短路径优先树的节点到所 述根节点的距离,并选择出最短路径的一个节点,作为最短路由路径优先树的 下一个节点;步骤S23,将所述下一个节点作为新的源节点,反复执行步骤S21至S23,直到最后一个节点停止。
9、 根据权利要求4所述的获取网络中两点间最短路由路径的方法,其特 征是,步骤S2中,所述最短路由路径优先树的节点包括节点类型、节点标 识、节点所对应的链路状态宣告报文、节点到最短路由路径优先树根节点的最 短路由路径的距离值和该节点到所述根节点所经过的路由器有序集合。
10、 根据权利要求4或9所述的获取网络中两点间最短路由路径的方法,其特征是,步骤S2中在构造所述最短路由路径优先树之前还包括位置判断步骤根据源节点和目的节点的节点标识,判断源节点和目的节点的位置关系是否符合下列关系之一第一种关系,源节点与目的节点在相同自治系统中的相同区域; 第二种关系,源节点与目的节点在相同自治系统的不同区域; 第三种关系,源节点与目的节点在不词自治系统; 如果源节点和目的节点符合第一种关系,则执行步骤S2。
11、 根据权利要求IO所述的获取网络中两点间最短路由路径的方法,其 特征是,如果源节点和目的节点符合第二种关系,还包括如下步骤-步骤S31,在源节点所在的区域中找出能够到达目的节点的区域边界路由 器集合;步骤S32,在所述区域边界路由器集合中找到目的区域边界路由器,该目 的区域边界路由器是从源节点到区域边界路由器集合的最短路由路径权值为 最小的区域边界路由器步骤S33,以源节点、所述百的区域边界路由器和该目的区域边界路由器 所附着的子网作为源节点、目的节点和目的网段输入,执行步骤S2,获得从 源节点到目的节点最短路由路径在源节点所在区域中的部分;步骤S34,将所述目的区域边界路由器作为新的源节点,重复执行步骤S31 到步骤S34,直到到达目的节点停止。
12、 根据权利要求11所述的获取网络中两点间最短路由路径的方法,其 特征是,所述步骤S32具体包括如下步骤遍历所述区域边界路由器集合中的所有区域边界路由器,执行步骤S2; 找出从源节点到区域边界路由器集合的最短路由路径权值为最小的区域 边界路由器,作为目的区域边界路由器。
13、 根据权利要求IO所述的获取网络中两点间最短路由路径的方法,其 特征是,如果源节点和目的节点符合第三种关系,还包括如下步骤步骤S41,寻找能够达到目的节点且路径最短的自治系统边界路由器集合.步骤S42,在所述自治系统边界路由器集合中找到目的自治系统边界路由 器,该目的自治系统边界路由器是从源节点到自治系统边界路由器集合最短路由路径权值为最小的自治系统边界路由器;步骤S43,获得从源节点到目的节点最短路由路径在源节点所在系统中的 部分;步骤S44,将所述目的自治系统边界路由器作为新的源节点,重复执行步 骤S41到步骤S44,直到到达目的节点停止。
14、 根据权利要求13所述的获取网络中两点间最短路由路径的方法,其 特征是,在所述步骤S41中,通过从维护的边界网关协议路由信息中寻找宣告 前缀为目的网段的路由信息,来寻找能够达到目的节点且路径最短的自治系统 边界路由器集合。
15、 根据权利要求13所述的获取网络中两点间最短路由路径的方法,其 特征是,所述步骤S42包括如下步骤:.步骤S421,以源节点和所述自治系统边界路由器为输入,执行步骤 S31至步骤S34,获得源节点到所述自治系统边界路由器的最短路由路径;步骤S422,反复执行步骤S421直到遍历所有自治系统边界路由器, 通过比较源节点到各所述自治系统边界路由器的最短路由路径,获得最短路由 路径最短的自治系统边界路由器作为目的自治系统边界路由器。
16、 根据权利要求13所述的获取网络中两点间最短路由路径的方法,其 特征是,所述步骤S43具体包括如下步骤在源节点所在自治系统中找到所述目的自治系统边界路由器附着的一个 子网;以源节点标识、该目的自治系统边界路由器和该目的自治系统边界路由器附着 的一个子网分别作为源节点、目的节点和目的网段作为输入,执行步骤S31 至步骤S34,获得从源节点到目的节点最短路由路径在源节点所在自治系统中 的部分。
全文摘要
本发明公开了一种获取网络中两点间最短路由路径的方法及装置。所述装置包括路由信息采集探针,用于实时采集每个开放式最短路径优先协议区域泛洪的链路状态宣告报文;存储器,用于存储所述路由信息采集探针为每个开放式最短路径优先协议区域维护的链路状态信息数据库;处理器,用于根据所述链路状态信息数据库计算用户输入的网络中两点间最短路由路径;输出单元,用于输出所述处理器的计算结果。所述方法包括采集路由信息的步骤;构造最短路由路径优先树的步骤。本发明的优点在于方便地使用户获得网络中两个节点之间的最短路由路径,不仅实现简单而且节省时间。本发明可用于监测特定路由路径、路由异常故障定位、保证特定路由路径安全等方面。
文档编号H04L12/56GK101465793SQ20071017980
公开日2009年6月24日 申请日期2007年12月18日 优先权日2007年12月18日
发明者伟 梁, 毕经平, 旭 许, 沫 陈 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1