一种自治系统内的拓扑处理系统和方法

文档序号:6463196阅读:114来源:国知局
专利名称:一种自治系统内的拓扑处理系统和方法
技术领域
本发明涉及网络测量和分析技术领±或,特别是涉及一种利用开放最短路径
优先协议的链路状态广播(OSPFLSA)对自治系统内的拓扑进行构建和更新 的系统和方法。
背景技术
今天的国际互联网(Internet)和较大的网络服务提供商(Internet Service Provider, ISP),自治系统(Autonomous System, AS)。自治系统设置了管 理控制的区域和作用于自治系统范围的路由策略。所以Internet级的路由结构 常被划分为域内和域间两种。
对于域内路由,有多种域内路由协议,目前开放最短路径优先协议(Open Shortest Path First, OSPF)有较广泛的应用。
OSPF是Open Shortest Path First (即"开放最短路由优先协议")的縮写。 它是IETF组织开发的一个基于链路状态的自治系统内部路由协议。在IP网络 上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。
每一台运行OSPF协议的路由器总是将本地网络的连接状态,(如可用接 口信息、可达邻居信息等)用链路状态广播(Link—State Advertisement,丄SA) 描述,并广播到整个自治系统中去。这样,每台路由器都收到了自治系统中所 有路由器生成的链路状态广播,这些链路状态广播的集合组成了链路状态数据 库(Link State Database, LSDB)。由于每一条链路状态广播是对一台路由器 周边网络拓扑的描述,则整个链路状态数据库就是对该自治系统网络拓扑的真 实反映。
网络拓扑是指网络元素之间的一种连接性信息,它对于网络管理和运营者 有着重要的意义。自治系统(AS)内网络拓扑就是指一个自动系统中各区域 内的路由连接性信息。
随着OSPF路由器种类概念的引入,OSPF路由协议又对其链路状态广播(OSPF LSA)报文做出了分类。OSPF将链路状态广播报文共分成5类,分
别为
类型1:又被称为路由器链路信息报文(OSPF Router LSA),所有的OSPF
路由器都会产生这种数据包,用于描述路由器上联接到某一个区域的链路或是 某一端口的状态信息。路由器链路信息报文只会在某一个特定的区域内广播, 而不会广播至其它的区域。
在类型1的链路报文中,OSPF路由器通过对报文中某些特定数据位的设 定,告诉其余的路由器自身是一个区域边界路由器或是一个自治系统(AS) 边界路由器。并且,类型1的链路状态报文在描述其所联接的链路时,会根据 各链路所联接的网络类型对各链路打上链路标识Link ID。
类型2:又被称为网络链路信息报文(OSPF Network LSA)。网络链路信 息报文是由指定路由器产生的,在一个广播性的、多点接入的网络,例如以太 网、令牌环网及FDDI网络环境中,这种链路状态报文用来描述该网段上所联 接的所有路由器的状态信息。
指定路由器(DR)只有在与至少一个路由器建立相邻关系后才会产生网 络链路信息报文,在该报文中含有对所有已经与指定路由器(DR)建立相邻 关系的路由器的描述,包括指定路由器(DR)本身。类型2的链路信息只会 在包含指定路由器(DR)所处的广播性网络的区域中广播,不会广播至其余 的OSPF路由区域。
类型3和类型4:类型3和类型4的链路状态广播在OSPF路由协议中又 称为总结链路信息报文(OSPF Summary LS A),该链路状态广播是由区域边 界路由器或AS边界路由器产生的。Summary LSA描述的是到某一个区域外部 的路由信息,这一个目的地地址必须是同一个自治系统(AS)中。Summary LSA 也只会在某一个特定的区域内广播。类型3与类型4两种总结性链路信息的区 别在于,类型3是由区域边界路由器产生的,用于描述到同一个自治系统(AS) 中不同区域之间的链路状态;而类型4是由自治系统(AS)边界路由器产生 的,用于描述不同自治系统(AS)的链路状态信息。
类型5:类型5的链路状态广播称为AS外部链路状态信息报文。类型5 的链路报文是由自治系统(AS)边界路由器产生的,用于描述到自治系统(AS) 外的目的地的路由信息,该数据包会在自治系统(AS)中除残域以外的所有区域中广播。 一般来说,这种链路状态信息描述的是到自治系统(AS)外部 某一特定网络的路由信息,在这种情况下,类型5的链路状态报文的链路标识 采用的是目的地网络的IP地址;在某些情况下,自治系统(AS)边界路由器
可以对自治系统(AS)内部广播默认路由信息,在这时,类型5的链路广播 数据包的链路标识采用的是默认网络号码0.0.0.0。
目前现有的利用OSPF链路状态广播(LSA)构建自治系统内拓扑方法都 是基于单边关系,与边建立原理不一致,并且由于没有为每个路由器维护链路 状态数据库(LSDB),因此现有方法不能反映出拓扑的变化,导致其构建的 域内拓扑对网络管理的借鉴性较差。

发明内容
本发明所要解决的问题是提供一种自治系统内的拓扑处理系统和方法,其 利用开放最短路径优先协议的链路状态广播(OSPFLSA),构建和更新自治 系统内的拓扑,将自治系统内拓扑形象化,方便网管人员工作。
为实现本发明目的而提供的一种自治系统内的拓扑处理系统,包括分析单 元,用于根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文, 解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据结构构建或者 更新自治系统内的拓扑图。
所述的自治系统内的拓扑处理系统,还包括路由信息采集探针,用于通过 物理上部署到自治系统的OSPF区域,并通过隧道连通到网络中,与网络中每 个OSPF区域的运行OSPF路由协议的路由器建立邻接关系,实时被动地采集 在该OSPF区域泛洪的链路状态广播报文,并将采集到的链路状态广播报文发 送给所述分析单元。
所述分析单元包括构建模块、更新模块,其中
所述构建模块,用于根据新接收到的路由信息采集探针采集的OSPF链路 状态广播报文,对OSPF Router LSA, OSPF Network LSA报文进行解析,获 得节点或边的信息,当判断为第--次收到的该自治系统中的路由器的报文时, 创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构得到OSPF报文列所述更新模块,用于根据新接收到的路由信息采集探针采集的OSPF链路
状态广播报文,对OSPF Router LSA, OSPF Network LSA报文进行解析,获 得节点或边的信息,当判断为非第一次收到该自治系统中的一路由器发送的报 文,通过比较前后两条同类型的链路状态广播报文,发现自治系统内拓扑的变 化,更新拓扑中的节点或者边的信息。
所述的自治系统内的拓扑处理系统,还包括报文区分模块,用于区分路由 信息采集探针和分析单元之间传输的报文类型。
所述报文类型一类是路由信息采集探针通过与网络中的OSPF路由器建 立邻居关系而得到的路由更新报文;另一类是路由采集探针所发送的与网络中 OSPF路由器之间的邻居关系建立或者丢失的应用层控制报文。
所述的自治系统内的拓扑处理系统,还包括配置模块,用于对路由信息采 集探针覆盖范围内的路由器进行OSPF配置,使路由信息采集探针与自汉系统 内建立隧道的路由器建立起OSPF全邻接关系,采集到区域内各路由器的报文
I n iK、 o
为实现本发明目的还提供一种自治系统内的拓扑处理方法,包括下列步

步骤A,分析单元根据新接收到的路由信息采集探针采集的OSPF链路状
态广播报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据 结构构建或者更新自治系统内的拓扑图。
所述步骤A之前还包括下列步骤
步骤A,,将路由信息采集探针通过物理上部署到自治系统的OSPF区域 中,实时被动地采集在该OSPF区域泛洪的链路状态广播报文,并传输给分析 单元。
所述步骤A中,所述数据结构包括
自治系统数据结构其包括该自治系统内区域列表,路由器列表,子网列
表;
区域数据结构其记录属于该区域的所有路由器列表,及该区域内路由器 的链路状态信息数据库;
路由器信息数据结构其包括路由器ID,类型,接口列表,OSPF RouterLSA 列表,OSPFNetworkLSA列表,单向邻居集合,双向邻居集合;记录网段及指定路由器信息的数据结构包括网段IP,DR接口, DR路
由器ID,通过该网段上普通路由器发出的RouterLSA与指定路由器建立单向 边关系的路由器集合,通过DR的NetworkLSA获得该网段上普通路由器放入 宣告路由器的单向邻居集合。 所述步骤A包括下列步骤
歩骤Al,根据新接收到的路由信息采集探针采集的OSPF链路状态广播 报文,对OSPF Router LSA, OSPF Network LSA报文进行解析,获得节点或 边的信息,当判断为第一次收到的该自治系统中的路由器的报文时,创建该节 点结构并在拓扑图中画出;
步骤A2,根据新接收到的路由信息采集探针采集的OSPF链路状态广播 报文,对OSPF Router LSA, OSPF Network LSA报文进行解析,获得节点或 边的信息,当判断为非第一次收到的该自治系统中的路由器的报文时,通过比 较前后两条同类型的链路状态广播报文,发现自治系统内拓扑的变化,更新拓 扑中的节点或者边的信息。
'所述步骤A1中,创建该节点结构并在拓扑图中画出,并根据拓扑的数据 结构得到OSPF报文列表,包括如下步骤
歩骤All,收到一条链路状态广播报文后,通过链路状态广播报文内容获 得宣告路由器所在区域号,在自治系统所维护的区域列表中检索所述区域号; 若检索到,转向步骤A12;否则,转向步骤A13;
步骤A12,判断收到的OSPF链路状态广播报文类型,如果是RouterLSA, 则转向步骤A14;如果是NetworkLSA,则转向步骤A16;否则,结束返回;
步骤A13,建立一所述区域号的区域结构,写入自治系统所维护的区域 OSPF报文列表中,转向步骤A12;
步骤A14,以宣告路由器ID为路由器ID建立路由器结构,并根据 RouterLSA中宣告的路由器类型填充路由器结构,并根据路由器ID和类型在 拓扑图中画出该路由器,并将其添加到所述区域号的路由器OSPF报文列表 中,转向歩骤A15;
步骤A15,遍历RouterLSA中的每条链路,分类型处理,直到最后一条, 然后结束返回;步骤A16,以宣告路由器ID为路由器ID建立路由器结构,根据路由器
ID在拓扑图中画出该路由器,并将其添加到所述区域号的路由器列表中;
步骤A17,查找记录网段及指定路由器信息的数据结构中是否有该指定路 由器信息;
若没有,创建一个新条目,将网段、DR接口、 DR路由器ID信息填入; 若己经存在,则填补信息空缺处,同时为单向边关系的路由器集合中的路 由器添加宣告路由器的单向邻居关系;
步骤A18,遍历NetworkLSA中的邻居路由器,记录到该路由器以所述区 域号为索引的OSPFNetworkLSA报文列表中,直到最后一条。 所述步骤A15中,所述分类型处理,包括下列步骤 步骤A151,对于点到点类型,如果linkData是宣告路由器的一个接口, linkID是邻居路由器的ID ,记为neighborRouterID ,则将neighborRouterID加 入宣告路由器的单向邻居集合,并检查宣告路由器是否存在于 neighborRouterID的单向邻居集合,若是,在拓扑图中画出边;否则,结束返 回;
歩骤A152,对于transit network类型,如果linkData是宣告路由器的-一个 接口, linkID是宣告路由器所在网段DR的接口,贝U:
若linkData与linkID相等,说明宣告路由器是一网段上的指定路由器,从 记录网段及指定路由器信息的数据结构中检索相应的指定路由器条目,若检索 到,则填充相应信息,并为宣告路由器的单向邻居集合中所有路由器建立它们 与指定路由器的单向邻居关系;若没有检索到,将该接口和宣告路由器ID放 入记录网段及指定路由器信息的数据结构;
若linkData与linkID不相等,说明宣告路由器是一网段上的普通路由器, 査询记录网段及指定路由器信息的数据结构中是否有该网段DR信息;
若没有,则结束返回;若有,则根据该接口获得网段指定路由器的ID, 记为neighborRouterID,将neighborRouterID加入宣告路由器的单向邻居集合;
检查宣告路由器是否存在于neighborRouterID的单向邻居集合;
若是,在拓扑图中画出边;若没有,建立一条以linkID为DR接口的条目 放入记录网段及指定路由器信息的数据结构,将未知的信息置空,并将宣告路由器放入该条目中的单向边关系的路由器集合中,标记其尚未记录DR单向邻 居关系;
步骤Al 53 ,对于stub network类型,以linkData子网IP和linkID子网掩 码,即以子网IP&子网掩码的结果为子网ID,建立一个子网结构,在拓扑图 中画出该子网,并将其添加到所述区域号的子网OSPF报文列表中,画出宣告 路由器与该子网之间边的关系;
步骤A154,对于virtual link类型,如果linkData是宣告路由器的一个接 口, linkID是邻居路由器的ID,记为neighborRouterID,则将neighborRouterID 加入宣告路由器的单向邻居集合,并检査宣告路由器是否存在于 neighborRouterID的单向邻居集合,若是,在拓扑图中画出边;
歩骤A155,重复执行歩骤A15。
所述步骤A2中,通过比较前后两条同类型的链路状态广播报文,发现自 治系统内拓扑的变化,更新拓扑中的节点或者边的信息的过程,其包括如下步

歩骤A21,在路由信息采集探针收到使拓扑改变的OSPF更新报文后,判 断收到的OSPF链路状态广播报文类型,如果是RouterLSA,转向步骤A22; 如果是NetworkLSA,转向步骤A26;否则结束返回;
步骤A22,获得该条RouterLSA的宣告路由器ID,及所在区域号,在区 域号的链路状态信息数据库中找到该宣告路由器发出的最近--条RouterLSA, 记为oldRouterLSA;
步骤A23,遍历同一宣告路由器最近的oldRouterLSA中的每一条原链路, 在新的RouterLSA中检索宣告该原链路的接口 ,并进行分析转到步骤A24处 理,直到最后一条,然后转向步骤A25;
步骤A24,判断原链路的类型,并根据不同的类型进行不同的处理,然后 转向步骤A23;
步骤A25,转向步骤A15进行分析处理;
步骤A26, NetworkLSA中的linkStateID和子网掩码相与之后,获得网段 IP,查找记录网段及指定路由器信息的数据结构,找到该网段IP对应的条目, 査看该网段原指定路由器信息,并进行分析处理;
步骤A27,转向步骤A17 A18进行处理。所述歩骤A23包括下列步骤
步骤A231,若在当前的RouterLSA中没有检索到接口,说明宣告路由器 接口减少,初步判定路由器接口出现故障,转入步骤A24;
步骤A232,如检索到接口但链路中内容不一致,包括链路类型、linkID 或linkData不一致,则说明接口正常,但链路内容变化,转向步骤A24。
14、根据权利要求12所述的自治系统内的拓扑处理方法,其特征在于, 所述歩骤A24包括下列步骤
步骤A241,如果是点到点类型,则获得先前与宣告路由器建立起点到点 链路的邻居路由器ID,即原链路中的linkID,从拓扑图中删掉边,并从宣告 路由器和邻居路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此 的信息;
歩骤A242,如果是transit network类型,则判断原链路中的linkID与 linkData是否相等;
如果linkID与linkData相等,说明宣告路由器以前是一网段上的指定路由 器,现在指定路由器发生改变,从记录网段及指定路由器信息的数据结构中找 到与之对应的条目,在拓扑图中删除指定路由器在该网段与普通路由器建立的 边,将该条目从记录网段及指定路由器信息的数据结构中删除;
如果linkID与linkData不等,说明宣告路由器以前是一网段上的普通路由 器,通过linkID获得网段指定路由器接口,从记录网段及指定路由器信息的数 据结构找到与之对应条目,从拓扑图中删除宣告路由器与指定路由器之间的 边,并从宣告路由器和指定路由器数据结构中的单向邻居集合和双向邻居集合 中删掉彼此的信息,并从指定路由器的单向边关系的路由器集合和宣告路由器 的单向邻居集合中删除宣告路由器相关信息;
步骤A243,如果是stub network类型,则获得先前与宣告路由器建立起 边关系的子网IP,即原链路中的linkData&linklD,从拓扑图中删掉该边;
步骤A244,如果是virtual link类型,则获得先前与宣告路由器建立起虚 链路的邻居路由器ID,即原链路中的linkID,从拓扑图中删掉边,并从宣告 路由器和邻居路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此 的信息。
所述步骤A26中,所述分析处理,包括下列步骤步骤A261,若原指定路由器ID与宣告路由器ID相等,则检查宣告路由
器的单向邻居集合,遍历该集合中的每个邻居路由器ID;
若邻居路由器ID没有出现在新NetworkLSA的邻居路由器中,则从拓扑 图中删除宣告路由器到邻居路由器ID的边,并从宣告路由器和邻居路由器ID 数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息;并且将邻居路 由器ID从宣告路由器的单向邻居集合中删除;
若邻居路由器ID出现在新NetworkLSA的邻居路由器中,则继续,重复 步骤A261;
步骤A262,若原指定路由器ID与宣告路由器ID不等,说明网段指定路 由器改变,在拓扑图中删除原指定路由器在该网段与普通路由器建立的边,从 宣告路由器和普通路由器数据结构中的单向邻居集合和双向邻居集合中删掉 彼此的信息,并将网段IP对应的条目从记录网段及指定路由器信息的数据结 构中删除。
本发明的有益效果是本发明的自治系统内的拓扑处理系统和方法,对接
收到的路由器报文进行解析,根据报文内容获得拓扑中节点或者边的信息,创 建节点结构并在拓扑图中画出,根据报文内容填充或更新节点的相关信息,并
根据"双向"确定边关系;并通过比较前后两条同类型的链路状态广播(LSA) 报文,发现自治系统内拓扑的变化,根据变化更新拓扑图。其不依赖于OSPF 链路状态广播(LSA)报文顺序,能在包乱序的情况下构建正确的拓扑,将自 治系统内拓扑形象化,方便网管人员工作。


图1是本发明自治系统内的拓扑处理系统结构示意图; 图2是本发明自治系统内的拓扑处理方法流程图; 图3是本发明自治系统内的拓扑创建过程流程图; 图4是本发明自治系统内拓扑更新过程流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的一种自治系统内的拓扑处理系统和方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定 本发明。
本发明提出了一种利用幵放最短路径优先协议的链路状态广播(OSPF
LSA)对自治系统内的拓扑进行构建和更新的系统和方法,其通过路由信息采
集探针采集自治系统内路由器报文,发送至分析单元。分析单元对新接收到的 路由器报文进行解析,根据报文内容获得节点或边的信息,对第一次收到的路 由器报文,创建该节点结构并在拓扑图中画出,根据报文内容填充或者更新节
点相关信息;而对非第一次收到的路由器报文,通过比较前后两条同类型的链 路状态广播(LSA)报文,发现自治系统内拓扑的变化,根据变化更新拓扑图。
下面详细说明本发明的一种自治系统内的拓扑处理系统,其包括路由信息 采集探针5和分析单元2,其中
所述路由信息采集探针5,用于通过物理上部署到自治系统1 (AS)的 OSPF区域(Area),并通过隧道连通到网络中,与网络中每个OSPF区域的 运行OSPF路由协议的路由器6建立邻接关系,实时被动地采集在该OSPF区 域泛洪(flooding)的链路状态广播(OSPF LSA)报文,并将采集到的链路状态 广播报文发送给分析单元2。
所述分析单元2,用于根据新接收到的路由信息采集探针5采集的OSPF 链路状态广播(LSA)报文,解析报文内容获得节点或边的信息,进行判断后 根据拓扑的数据结构构建或者更新自治系统1内的拓扑图。
较佳地,所述分析单元2,包括构建模块21和更新模块22,其中
所述构建模块21,用于根据新接收到的路由信息采集探针5采集的OSPF 链路状态广播(LSA)报文,对OSPF Router LSA, OSPF Network LSA报文 进行解析,获得节点或边的信息,当判断为第一次收到的该自治系统l中的路 由器6的报文时,创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构 得到OSPF报文列表。
所述更新模块22,用于根据新接收到的路由信息采集探针5采集的OSPF 链路状态广播(LSA)报文,对OSPF Router LSA, OSPF Network LSA报文 进行解析,获得节点或边的信息,当判断为非第一次收到该自治系统l中的一路由器发送的报文,通过比较前后两条同类型的链路状态广播(LSA)报文, 发现自治系统l内拓扑的变化,更新拓扑中的节点或者边的信息。
路由信息采集探针5需要模拟实现完整的开放最短路径优先路由协议
(OSPF协议),能够运行开放最短路径优先路由协议的状态机,能够与真实 路由器6建立OSPF会话并交换OSPF路由更新报文,这个可以通过现有的开 源路由软件GNU Zebra来实现。
通过开源路由软件GNUZebra实现路由信息采集探针5是一种现有技术, 本领域技术人员根据本发明实施例描述的内容,能够实现该路由信息采集探 针,因此,在本发明实施例中,不再一一详细描述。
为了实现本发明的路由信息采集探针被动采集的目的,即路由信息采集探 针与真实路由器建立起OSPF会话之后,只是被动地接受对方发送过来的 OSPF更新报文,因此,本发明的路由信息采集探针5,除了按照OSPF协议 规范,为了维持与对方路由器的邻居关系而发送的周期性Keep Alive报文外, 不向网络中注入其他任何报文,从而不影响网络现有的路由状况,从而达到被 动采集的目的。
网络采集设备通过遂道的方式参与到多个自治系统1的OSPF协议交互 中,获取各OSPF区域的链路状态数据库信息。路由信息采集探针5通过物理 部署到自治系统1 (AS)的每个运行开放最短路径优先路由协议(OSPF)区 域(Area)中的方式,或者仅物理部署到一 自治系统1 (AS)的一OSPF区域 (Area)中,通过隧道(tunnel,例如GRE)连通到网络中其他OSPF区域中 的方式,来与网络中每个特定OSPF区域(Area)的任何一台运行OSPF路由 协议的路由器6建立邻接(Adjacency)关系,实时被动地采集在该OSPF区 域(Area)泛洪的链路状态广播(LSA)报文。
对于实时采集到的链路状态宣告(LSA)报文,为每个路由器6维护一个 OSPF报文列表,分区域记录该路由器6产生的最新OSPF RouterLSA和OSPF NetworkLSA。
较佳地,为了实现路由信息采集探针5与上层分析单元2有效结合的目的, 所述自治系统1内的拓扑处理系统还包括报文区分模块4,用于区分路由信息 采集探针5和分析单元2之间传输的报文类型。所述报文类型一类是路由信息 采集探针5通过与网络中的OSPF路由器6建立邻居关系而得到的路由更新报文;另一类是路由采集探针所发送的与网络中OSPF路由器6之间的邻居关系 建立或者丢失的应用层控制报文。
更佳地,所述自治系统内的拓扑处理系统还进一步包括配置模块3,用于
对路由信息采集探针5覆盖范围内的路由器6进行OSPF配置,使路由信息采 集探针5与自治系统1内建立隧道的路由器6建立起OSPF全邻接关系,采集 到区域内各路由器6的报文信息。
对路由信息采集探针5覆盖范围内的路由器6进行正确OSPF配置。在路 由信息采集探针5覆盖范围内的路由器6进行的正确信息交互的前提下,保证 采集器能收到全面的OSPF信息。需要在自治系统1内进行OSPF配置,使采 集探针与自治系统l内建立隧道(tunnel)的路由器6建立起OSPF全邻接关 系,采集到区域内各路由器6的报文信息。
作为一种可实施方式,所述在自治系统1进行OSPF配置,可以实现如下
若采集探针与被监测路由器6属于同一区域,用network命令将采集器的 某个接口加入到该区域;使采集探针与区域内的路由器6建立起OSPF全邻接 关系,采集到区域内各路由器6的报文信息。
若采集探针与被监测路由器6属于不同区域,先在探针上建立隧道 (tunnel),再用network命令将该隧道加入到被监测区域,使采集探针与区 域内的路由器6建立起OSPF全邻接关系,采集到区域内各路由器6的报文信
下面详细说明本发明的一种自治系统内拓扑处理方法,其包括如下步骤 步骤S100,将路由信息采集探针5通过物理上部署到自治系统的OSPF 区域中,实时被动地采集在该OSPF区域泛洪的链路状态广播(LSA)报文, 并传输给分析单元2;
路由信息采集探针5通过物理上部署到自治系统1 (AS)的某个OSPF区 域(Area)中,通过隧道(tunnel,例如通用路由封装(Generic Routing Encapsulation, GRE)连通到网络中其他OSPF区域(Area)中方式,来与网 络中每个特定OSPF区域(Area)的任何一台运行开放最短路径优先(OSPF) 路由协议的路由器6建立邻接(Adjacency)关系,实时被动地接收各区域内 完整的泛洪的链路状态广播(LSA)报文信息,即所有路由器6发出的OSPF更新(OSPF Update)报文,将收集到的OSPF更新(OSPF Update)报文发向 分析单元2。
当路由信息采集探针5与建立隧道的域内路由器6的对等关系丢失或者建 立的时候,路由信息采集探针5会向分析单元2发送邻居丢失(Neighbor Lost) 或者邻居建立(Neighbor Gain)控制消息"Neighbor Lost"或"Neighbor Gain", 以便分析单元2做出处理,以保证网络拓扑的实时性。
步骤S200,分析单元根据新接收到的路由信息采集探针5采集的OSPF 链路状态广播(LSA)报文,解析报文内容获得节点或边的信息,进行判断后 根据拓扑的数据结构构建或者更新自治系统1内的拓扑图。
分析单元2根据路由信息采集探针5发上来的一个自治系统1内各个区域 的OSPF报文,对新接收到的路由器6报文进行解析,根据报文内容获得节点 或边的信息,对第一次收到的路由器6报文,创建该节点结构,根据报文内容 填充或者更新节点相关信息;而对非第一次收到的路由器报文,通过比较前后 两条伺类型的链路状态广播(LSA)报文,发现自治系统l内拓扑的变化,根 据变化更新拓扑图。其根据拓扑的数据结构,对于实时采集到的链路状态广播 报文,分析单元2为每个路由器6分区域维护其OSPF报文列表,分区域记录 该路由器产生的最新OSPF Rounter LSA和OSPF Network LSA,在拓扑图中画 出,
所述数据结构包括
A) 自治系统数据结构ASInfo—Class:其包括该自治系统内区域列表,路 由器列表,子网列表;
B) 区域数据结构AreaInfo_ClaSS:记录属于该区域的所有路由器列表, 及该区域内路由器的链路状态信息数据库(LSDB);
C) 路由器信息数据结构Routerlnfo—Class:其包括路由器ID,类型,接 口列表,单向邻居集合,双向邻居集合;
D) 记录网段及指定路由器(DR)信息的数据结构TransitnetMap:包括 网段IP, DR接口 , DR路由器ID,通过该网段上普通路由器发出的RouterLSA 与指定路由器(DR)建立单向边关系的路由器集合NormalRouterSet,通过指 定路由器(DR)的NetworkLSA获得该网段上普通路由器放入宣告路由器的 单向邻居集合AttachedRouterSet。
21进一步地,所述步骤S200,其包括下列步骤
步骤S2100,根据新接收到的路由信息采集探针5采集的OSPF链路状态 广播(LSA)报文,对OSPF Router LSA, OSPF Network LSA报文进行解析, 获得节点或边的信息,当判断为第一次收到该自治系统中一路由器发送的报文 时,创建该节点结构并在拓扑图中画出;
步骤S2200,根据新接收到的路由信息采集探针5采集的OSPF链路状态 广播(LSA)报文,对OSPF Router LS A , OSPF Network LS A报文进行解析, 获得节点或边的信息,当判断为非第一次收到该自治系统中一路由器发送的报 文时,通过比较前后两条同类型的链路状态广播(LSA)报文,发现自治系统 1内拓扑的变化,更新拓扑中的节点或者边的信息。
进一步地,下面详细描述本发明的步骤S2100,创建该节点结构并在拓扑 图中画出,并根据拓扑的数据结构得到OSPF报文列表的过程,其包括如下歩 骤
步骤S2110,收到一条链路状态广播(LSA)报文后,通过链路状态广播 报文内容获得宣告路由器所在区域号(areaID),在自治系统l所维护的区域 列表中检索所述区域号(areaID);若检索到,转向步骤S2120;否则,转向 步骤S2130;
步骤S2120,判断收到的OSPF的链路状态广播(LSA)报文类型,如果 是RouterLSA,则转向步骤S2140;如果是NetworkLSA,则转向歩骤S2160; 否则,结束返回;
步骤S2130,建立一个以所述区域号(areaID)为区域号的区域结构,写 入自治系统1所维护的区域OSPF报文列表中,转向步骤S2120;
步骤S2140,以宣告路由器ID为路由器ID建立路由器结构,并根据 RouterLSA中宣告的路由器类型填充路由器结构,并根据路由器ID和类型在 拓扑图中画出该路由器,并将其添加到所述区域号(areaID)的路由器OSPF 报文列表中,转向步骤S2150;
步骤S2150,遍历RouterLSA中的每条链路(link),分类型处理,直到
最后一条,然后结束返回;
进一步地,所述步骤S2150中,所述分类型处理,包括下列步骤步骤S2151,对于点到点(point-to-point)类型,如果linkData是宣告路 由器的一个接口, linkID是邻居路由器的ID,记为neighborRouterlD,则将 ndghborRouterID加入宣告路由器的单向邻居集合,并检查宣告路由器是否存 在于neighborRouterlD的单向邻居集合,若是,在拓扑图中画出边;否则,结 束返回;
步骤S2152 ,对于transit network类型,如果linkData是宣告路由器的一 个接口, linkID是宣告路由器所在网段DR的接口,贝ij:
a) 若linkData与linkID相等,说明宣告路由器是一网段上的指定路由器 (DR),从数据结构TransitnetMap中检索相应的指定路由器(DR)条目,
若检索到,则填充相应信息,并为宣告路由器的单向邻居集合 AttachedRouterSet中所有路由器建立它们与指定路由器(DR)的单向邻居关 系;若没有检索到,将该接口和宣告路由器ID放入数据结构TransitnetMap;
b) 若linkData与linkID不相等,说明宣告路由器是--网段上的普通路由 器,查询数据结构TransitnetMap中是否有该网段DR信息;
若没有,则结束返回;若有,则根据该接口获得网段指定路由器(DR) 的ID ,记为neighborRouterlD ,将neighborRouterlD加入宣告路由器的单向邻 居集合;
检査宣告路由器是否存在于neighborRouterlD的单向邻居集合; 若是,在拓扑图中画出边;若没有,建立一条以linkID为DR接口的条目 放入数据结构TransitnetMap,将未知的信息置空,并将宣告路由器放入该条 目中的单向边关系的路由器集合NormalRouterSet中,标记其尚未记录DR单
向邻居关系;
步骤S2153,对于stub network类型,以linkData子网IP和linkID子网掩 码,即以子网IP&子网掩码的结果为子网ID,建立一个子网结构,在拓扑图 中画出该子网,并将其添加到所述区域号(areaID)的子网OSPF报文列表中, 画出宣告路由器与该子网之间边的关系;
步骤S2154,对于virtual link类型,如果linkData是宣告路由器的一个接 口, linkID是邻居路由器的ID,记为neighborRouterlD,则将neighborRouterlD 加入宣告路由器的单向邻居集合,并检查宣告路由器是否存在于 neighborRouterlD的单向邻居集合,若是,在拓扑图中画出边;步骤S2155,重复执行步骤S250。
步骤S2160,以宣告路由器ID为路由器ID建立路由器结构,根据路由器 ID在拓扑图中画出该路由器,并将其添加到所述区域号(areaID)的路由器列
步骤S2170,査找数据结构TransitnetMap中是否有该指定路由器(DR) 阜.
i 口 't;、,
若没有,创建一个新条目,将网段、DR接口、 DR路由器ID信息填入; 若已经存在,则填补信息空缺处,同时为单向边关系的路由器集合
NormalRouterSet中的路由器添加宣告路由器的单向邻居关系;
步骤2180,遍历NetworkLSA中的邻居路由器attached Router,直到最后一条。
遍历NetworkLSA中的邻居路由器attached Router,获得每个邻居路由器 attached Router的路由器ID,记为attachedRouterID,将attachedRouterID力口入 宣告路由器的单向邻居集合AttachedRouterSet,并检查宣告路由器是否存在于 attachedRouterID的单向邻居集合;若是,在拓扑图中画出边;否则,重复执 行步骤S2180。
在本发明分析单元2中,只有宣告自己的OSPF报文才能足以说明宣告路 由器的真实存在,在其他报文中被指为邻居路由器的信息不能用来构建一个路 由器。而且,边的构建依赖于双方的宣告,而不是单方面的。路由信息采集探 针5收集到的报文顺序不可控,该拓扑生成阶段不要求特定的报文顺序,从而 能在任何报文顺序下构建出正确的拓扑。
进一步地,下面详细描述本发明的步骤S2200,通过比较前后两条同类型 的链路状态广播(LSA)报文,发现自治系统1内拓扑的变化,更新拓扑中的 节点或者边的信息的过程,其包括如下步骤
步骤S2210,在路由信息采集探针5收到使拓扑改变的OSPF更新报文后, 判断收到的OSPF链路状态广播(LSA)报文类型,如果是RouterLSA,转向 步骤S2220;如果是NetworkLSA,转向歩骤S2260;否则结束返回;步骤S2220,获得该条RouterLSA的宣告路由器ID,及所在区域号 (areaID),在区域号(areaID)的链路状态信息数据库(LSDB)中找到该宣 告路由器发出的最近一条RouterLSA,记为oldRouterLSA;
步骤S2230,遍历oldRouterLSA中的每一条原链路oldlink,在新的 RouterLSA中检索这条链路(link)的接口 (interface),并进行分析后转到步 骤S2240处理,直到最后一条,然后转向步骤S2250;
进一步地,所述步骤S2230包括下列步骤
步骤S2231,若在当前的RouterLSA中没有检索到接口 (interface),说 明宣告路由器接口减少,初步判定路由器接口出现故障,转入步骤S2240;
步骤S2232,如检索到接口 (interface)但链路(link)中内容不一致,包 括链路类型、linkID或linkData不一致,则说明接口 (interface)正常,但链 路内容变化,转向歩骤S2240。
步骤S2240,判断原链路oldlink的类型,并根据不同的类型进行不同的 处理,然后转向步骤S2230;
进一步地,所述步骤S2240包括下列步骤
步骤S2241,如果是点到点(point-to-point)类型,则获得先前与宣告路 由器建立起点到点(point-to-point)链路的邻居路由器ID,即原链路oldlink 中的linkID,从拓扑图中删掉边,并从宣告路由器和邻居路由器数据结构中的 单向邻居集合和双向邻居集合中删掉彼此的信息;
步骤S2242,如果是transit network类型,则判断原链路oldlink中的linkID 与linkData是否相等;
如果linkID与linkData相等,说明宣告路由器以前是 -网段上的指定路由 器(DR),现在指定路由器(DR)发生改变,从数据结构TransitnetMap中 找到与之对应的条目,在拓扑图中删除指定路由器(DR)在该网段与普通路 由器建立的边,将该条目从数据结构TransitnetMap中删除;
如果linkID与linkData不等,说明宣告路由器以前是一网段上的普通路由 器,通过linkID获得网段指定路由器(DR)接口,从数据结构TransitnetMap 找到与之对应条目,从拓扑图中删除宣告路由器与指定路由器(DR)之间的 边,并从宣告路由器和指定路由器(DR)数据结构中的单向邻居集合和双向 邻居集合中删掉彼此的信息,并从指定路由器(DR)的单向边关系的路由器集合NormalRouterSet和宣告路由器的单向邻居集合AttachedRouterSet中删除 宣告路由器相关信息;
步骤S2243,如果是stub network类型,则获得先前与宣告路由器建立起 边关系的子网IP,即原链路oldlink中的linkData&linklD,从拓扑图中删掉该 边;
歩骤S2244,如果是virtual link类型,则获得先前与宣告路由器建立起虚 链路的邻居路由器ID,即原链路oldlink中的linkID,从拓扑图中删掉边,并 从宣告路由器和邻居路由器数据结构中的单向邻居集合和双向邻居集合中删 掉彼此的信息。
步骤S2250,转向步骤S2150进行分析处理;
步骤S2260, NetworkLSA中的linkStateID和子网掩码相与之后,获得网
段IP,査找数据结构TransitnetMap,找到该网段IP对应的条目transitNetlnfo,
査看该网段原指定路由器(DR)信息,并进行分析处理;
进一步地,所述歩骤S2260中,进行分析处理,包括下列步骤 步骤S2261,若原指定路由器(DR) ID与宣告路由器ID相等,则检查宣
告路由器的单向邻居集合attachedRouterSet ,遍历该集合中的每个
attachedRouterID;
a) 若attachedRouterID没有出现在新NetworkLSA的邻居路由器Attached Router中,则从拓扑图中删除宣告路由器到attachedRouterID的边,并从宣告 路由器和attachedRouterID数据结构中的单向邻居集合和双向邻居集合中删掉 彼此的信息;并且将attachedRouterID从宣告路由器的单向邻居集合 AttachedRouterSet中删除;
b) 若attachedRouterID出现在新NetworkLSA的邻居路由器attached Router中,则继续重复步骤S2261;
步骤S2262,若原指定路由器(DR) ID与宣告路由器ID不等,说明网段 指定路由器(DR)改变,在拓扑图中删除原指定路由器(DR)在该网段与普 通路由器建立的边,从宣告路由器和普通路由器数据结构中的单向邻居集合和 双向邻居集合中删掉彼此的信息,并将网段IP对应的条目transitNetlnfo从数 据结构TransitnetMap中删除。
歩骤S2270,转向步骤S2170 S2180进行处理。通过比较同一宣告路由器发出的不同内容的同类报文,对上层拓扑图及底 层数据结构进行更新,并能定位出网络拓扑变化,供网管人员定位故障参考。 本发明的自治系统内的拓扑处理系统和方法,路由信息采集探针与每个区
域内的任一路由器建立OSPF邻居关系,将收集到的OSPF Update报文发向分 析单元,分析单元对接收到的OSPF Router LSA, OSPF Network LSA进行解
析,根据报文内容及"双向"建立边关系原则,构建拓扑中节点或边的信息。 本发明不依赖于OSPF LSA报文顺序,能在包乱序的情况下构建正确的拓扑。 本发明通过比较新收到的LSA和链路状态数据库中同一宣告路由器发出的最 近的一条同类型LSA,发现自治系统内拓扑的变化,根据变化更新网络拓扑 图。本发明将自治系统内拓扑形象化,方便网管人员工作。
通过以上结合附图对本发明具体实施例的描述,本发明的其它方面及特征 对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只 是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行 解释。
权利要求
1、一种自治系统内的拓扑处理系统,其特征在于,包括分析单元,用于根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据结构构建或者更新自治系统内的拓扑图。
2、 根据权利要求1所述的自治系统内的拓扑处理系统,其特征在于,还 包括路由信息采集探针,用于通过物理上部署到自治系统的OSPF区域,并通 过隧道连通到网络中,与网络中每个OSPF区域的运行OSPF路由协议的路由 器建立邻接关系,实时被动地采集在该OSPF区域泛洪的链路状态广播报文, 并将采集到的链路状态广播报文发送给所述分析单元。
3、 根据权利要求1或2所述的自治系统内的拓扑处理系统,其特征在于, 所述分析单元包括构建模块、更新模块,其中所述构建模块,用于根据新接收到的路由信息采集探针采集的OSPF链路 状态广播报文,对OSPF Router LSA, OSPF Network LSA报文进行解析,获 得节点或边的信息,当判断为第一次收到该自治系统中的一路由器发送的报文 时,创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构得到OSPF报 文列表;所述更新模块,用于根据新接收到的路由信息采集探针采集的OSPF链路 状态广播报文,对OSPF Router LSA, OSPF Network LSA报文进行解析,获 得节点或边的信息,当判断为非第一次收到该自治系统中的一路由器发送的报 文,通过比较前后两条同类型的链路状态广播报文,发现自治系统内拓扑的变 化,更新拓扑中的节点或者边的信息。
4、 根据权利要求1或2所述的自治系统内的拓扑处理系统,其特征在于, 还包括报文区分模块,用于区分路由信息采集探针和分析单元之间传输的报文 类型。
5、 根据权利要求4所述的自治系统内的拓扑处理系统,其特征在于,所 述报文类型一类是路由信息采集探针通过与网络中的OSPF路由器建立邻居 关系而得到的路由更新报文;另一类是路由采集探针所发送的与网络中OSPF 路由器之间的邻居关系建立或者丢失的应用层控制报文。
6、 根据权利要求4所述的自治系统内的拓扑处理系统,其特征在于,还包括配置模块,用于对路由信息采集探针覆盖范围内的路由器进行OSPF配 置,使路由信息采集探针与自汉系统内建立隧道的路由器建立起OSPF全邻接 关系,采集到区域内各路由器的报文信息。
7、 一种自治系统内的拓扑处理方法,其特征在于,包括下列歩骤步骤A,分析单元根据新接收到的路由信息采集探针采集的OSPF链路状 态广播报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据 结构构建或者更新自治系统内的拓扑图。
8、 根据权利要求7所述的自治系统内的拓扑处理方法,其特征在于,所 述步骤A之前还包括下列步骤步骤A',将路由信息采集探针通过物理上部署到自治系统的OSPF区域 中,实时被动地采集在该OSPF区域泛洪的链路状态广播报文,并传输给分析 单元。
9、 根据权利要求7或8所述的自治系统内的拓扑处理方法,其特征在于, 所述步骤A中,所述数据结构包括自治系统数据结构其包括该自治系统内区域列表,路由器列表,子网列表;区域数据结构其记录属于该区域的所有路由器列表,及该区域内路由器的链路状态信息数据库;路由器信息数据结构其包括路由器ID,类型,接口列表,OSPF RouterLSA 列表,OSPF NetworkLSA列表,单向邻居集合,双向邻居集合;记录网段及指定路由器信息的数据结构包括网段IP, DR接口, DR路 由器ID,通过该网段上普通路由器发出的RouterLSA与指定路由器建立单向 边关系的路由器集合,通过DR的NetworkLSA获得该网段上普通路由器放入 宣告路由器的单向邻居集合。
10、 根据权利要求7或8所述的自治系统内的拓扑处理方法,其特征在于, 所述步骤A包括下列步骤步骤Al,根据新接收到的路由信息采集探针采集的OSPF链路状态广播 报文,对OSPF Router LSA, OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为第一次收到该自治系统中的一路由器发送的报文时,创建 该节点结构并在拓扑图中画出;步骤A2,根据新接收到的路由信息采集探针采集的OSPF链路状态广播 报文,对OSPF Router LSA, OSPF Network LSA报文进行解析,获得节点或 边的信息,当判断为非第一次收到该自治系统中的一路由器发送的报文时,通 过比较前后两条同类型的链路状态广播报文,发现自治系统内拓扑的变化,更 新拓扑中的节点或者边的信息。
11、根据权利要求IO所述的自治系统内的拓扑处理方法,其特征在于, 所述步骤A1中,创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构 得到OSPF报文列表,包括如下步骤步骤All,收到一条链路状态广播报文后,通过链路状态广播报文内容获 得宣告路由器所在区域号,在自治系统所维护的区域列表中检索所述区域号; 若检索到,转向歩骤A12;否则,转向步骤A13;歩骤A12,判断收到的OSPF链路状态广播报文类型,如果是RouterLSA, 则转向步骤A14;如果是NetworkLSA,则转向步骤A16;否则,结束返回;步骤A13,建立一所述区域号的区域结构,写入自治系统所维护的区域 OSPF报文列表中,转向歩骤A12;步骤A14,以宣告路由器ID为路由器ID建立路由器结构,并根据 RouterLSA中宣告的路由器类型填充路由器结构,并根据路由器ID和类型在 拓扑图中画出该路由器,并将其添加到所述区域号的路由器OSPF报文列表 中,转向歩骤A15;步骤A15,遍历RouterLSA中的每条链路,分类型处理,直到最后一条, 然后结束返回;步骤A16,以宣告路由器ID为路由器ID建立路由器结构,根据路由器 ID在拓扑图中画出该路由器,并将其添加到所述区域号的路由器列表中;步骤A17,查找记录网段及指定路由器信息的数据结构中是否有该指定路 由^S"(曰息;若没有,创建一个新条目,将网段、DR接口、 DR路由器ID信息填入; 若已经存在,则填补信息空缺处,同时为单向边关系的路由器集合中的路 由器添加宣告路由器的单向邻居关系;步骤A18,遍历NetworkLSA中的邻居路由器,记录到该路由器以所述区 域号为索引的OSPFNetworkLSA报文列表中,直到最后一条。
12、根据权利要求11所述的自治系统内的拓扑处理方法,其特征在于, 所述步骤A15中,所述分类型处理,包括下列步骤步骤A151,对于点到点类型,如果linkData是宣告路由器的一个接口, linkID是邻居路由器的ID,记为neighborRouterlD,则将neighborRouterlD加 入宣告路由器的单向邻居集合,并检查宣告路由器是否存在于 neighborRouterlD的单向邻居集合,若是,在拓扑图中画出边;否则,结束返 回;步骤A152,对于transit network类型,如果linkData是宣告路由器的一个 接口, linkID是宣告路由器所在网段DR的接口,贝lj:若linkData与linkID相等,说明宣告路由器是一网段上的指定路由器,从 记录网段及指定路由器信息的数据结构中检索相应的指定路由器条目,若检索 到,则填充相应信息,并为宣告路由器的单向邻居集合中所有路由器建立它们 与指定路由器的单向邻居关系;若没有检索到,将该接口和宣告路由器ID放 入记录网段及指定路由器信息的数据结构;若linkData与linkID不相等,说明宣告路由器是一网段上的普通路由器, 查询记录网段及指定路由器信息的数据结构中是否有该网段DR信息;若没有,则结束返回;若有,则根据该接口获得网段指定路由器的ID, 记为neighborRouterlD,将neighborRouterlD加入宣告路由器的单向邻居集合;检査宣告路由器是否存在于neighborRouterlD的单向邻居集合;若是,在拓扑图中画出边;若没有,建立一条以linkID为DR接口的条目 放入记录网段及指定路由器信息的数据结构,将未知的信息置空,并将宣告路 由器放入该条目中的单向边关系的路由器集合中,标记其尚未记录DR单向邻 居关系;步骤A153,对于stub network类型,以linkData子网IP和linkID子网掩 码,即以子网IP&子网掩码的结果为子网ID,建立一个子网结构,在拓扑图 中画出该子网,并将其添加到所述区域号的子网OSPF报文列表中,画出宣告 路由器与该子网之间边的关系;步骤A154,对于virtual link类型,如果linkData是宣告路由器的一个接 口, linkID是邻居路由器的ID,记为neighborRouterID,则将neighborRouterID 加入宣告路由器的单向邻居集合,并检査宣告路由器是否存在于 neighborRouterID的单向邻居集合,若是,在拓扑图中画出边;步骤A155,重复执行步骤A15。
13、 根据权利要求IO所述的自治系统内的拓扑处理方法,其特征在于, 所述步骤A2中,通过比较前后两条同类型的链路状态广播报文,发现自治系 统内拓扑的变化,更新拓扑中的节点或者边的信息的过程,其包括如下步骤步骤A21,在路由信息采集探针收到使拓扑改变的OSPF更新报文后,判 断收到的OSPF链路状态广播报文类型,如果是RouterLSA,转向步骤A22; 如果是NetworkLSA,转向步骤A26;否则结束返回-,步骤A22,获得该条RouterLSA的宣告路由器ID,及所在区域号,在区 域号的链路状态信息数据库中找到该宣告路由器发出的最近一条RouterLSA, 记为oldRouterLSA;步骤A23,遍历同一宣告路由器最近的oldRouterLSA中的每一条原链路, 在新的RouterLSA中检索宣告该原链路的接口 ,并进行分析转到步骤A24处 理,直到最后一条,然后转向步骤A25;步骤A24,判断原链路的类型,并根据不同的类型进行不同的处理,然后 转向步骤A23;步骤A25,转向步骤A15进行分析处理;步骤A26, NetworkLSA中的linkStateID和子网掩码相与之后,获得网段 IP,查找记录网段及指定路由器信息的数据结构,找到该网段IP对应的条目, 查看该网段原指定路由器信息,并进行分析处理;步骤A27,转向步骤A17 A18进行处理。
14、 根据权利要求13所述的自治系统内的拓扑处理方法,其特征在于, 所述步骤A23包括下列步骤步骤A231,若在当前的RouterLSA中没有检索到接口,说明宣告路由器 接口减少,初步判定路由器接口出现故障,转入步骤A24;步骤A232,如检索到接口但链路中内容不一致,包括链路类型、linkID 或linkData不一致,则说明接口正常,但链路内容变化,转向步骤A24。
15、 根据权利要求13所述的自治系统内的拓扑处理方法,其特征在于, 所述步骤A24包括下列歩骤步骤A241,如果是点到点类型,则获得先前与宣告路由器建立起点到点 链路的邻居路由器ID,即原链路中的linkID,从拓扑图中删掉边,并从宣告 路由器和邻居路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此 的信息;步骤A242,如果是transit network类型,则判断原链路中的linkID与 linkData是否相等;如果linkID与linkData相等,说明宣告路由器以前是一网段上的指定路由 器,现在指定路由器发生改变,从记录网段及指定路由器信息的数据结构中找 到与之对应的条目,在拓扑图中删除指定路由器在该网段与普通路由器建立的 边,将该条目从记录网段及指定路由器信息的数据结构中删除;如果linkID与linkData不等,说明宣告路由器以前是一网段上的普通路由 器,通过linkID获得网段指定路由器接口,从记录网段及指定路由器信息的数 据结构找到与之对应条目,从拓扑图中删除宣告路由器与指定路由器之间的 边,并从宣告路由器和指定路由器数据结构中的单向邻居集合和双向邻居集合 中删掉彼此的信息,并从指定路由器的单向边关系的路由器集合和宣告路由器 的单向邻居集合中删除宣告路由器相关信息;步骤A243,如果是stub network类型,则获得先前与宣告路由器建立起 边关系的子网IP,即原链路中的linkData&linklD,从拓扑图中删掉该边;步骤A244,如果是virtual link类型,则获得先前与宣告路由器建立起虚 链路的邻居路由器ID,即原链路中的linkID,从拓扑图中删掉边,并从宣告 路由器和邻居路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此 的信息。
16、 根据权利要求13所述的自治系统内的拓扑处理方法,其特征在于, 所述步骤A26中,所述分析处理,包括下列步骤步骤A261,若原指定路由器ID与宣告路由器ID相等,则检查宣告路由 器的单向邻居集合,遍历该集合中的每个邻居路由器ID;若邻居路由器ID没有出现在新NetworkLSA的邻居路由器中,则从拓扑 图中删除宣告路由器到邻居路由器ID的边,并从宣告路由器和邻居路由器ID数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息;并且将邻居路 由器ID从宣告路由器的单向邻居集合中删除;若邻居路由器ID出现在新NetworkLSA的邻居路由器中,则继续,重复 步骤A261;歩骤A262,若原指定路由器ID与宣告路由器ID不等,说明网段指定路 由器改变,在拓扑图中删除原指定路由器在该网段与普通路由器建立的边,从 宣告路由器和普通路由器数据结构中的单向邻居集合和双向邻居集合中删掉 彼此的信息,并将网段IP对应的条目从记录网段及指定路由器信息的数据结 构中删除。
全文摘要
本发明公开了一种自治系统内的拓扑处理系统和方法。该系统包括分析单元,用于根据新接收到的路由信息采集探针采集的OSPF LSA报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据结构构建或者更新自治系统内的拓扑图;路由信息采集探针,用于通过物理上部署到自治系统的OSPF区域,并通过隧道连通到网络中,与网络中每个OSPF区域的运行OSPF路由协议的路由器建立邻接关系,实时被动地采集在该OSPF区域泛洪的LSA报文,并将采集到的LSA报文发送给所述分析单元。其将自治系统内拓扑形象化,方便网管人员工作。
文档编号G06F17/30GK101547114SQ20081010270
公开日2009年9月30日 申请日期2008年3月25日 优先权日2008年3月25日
发明者刘大鹏, 晔 李, 毕经平, 旭 许 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1