CN101547114B - 一种自治系统内的拓扑处理系统和方法 - Google Patents

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

Info

Publication number
CN101547114B
CN101547114B CN2008101027044A CN200810102704A CN101547114B CN 101547114 B CN101547114 B CN 101547114B CN 2008101027044 A CN2008101027044 A CN 2008101027044A CN 200810102704 A CN200810102704 A CN 200810102704A CN 101547114 B CN101547114 B CN 101547114B
Authority
CN
China
Prior art keywords
router
ospf
neighbor
information
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008101027044A
Other languages
English (en)
Other versions
CN101547114A (zh
Inventor
许旭
毕经平
李晔
刘大鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
G Cloud Technology Co Ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2008101027044A priority Critical patent/CN101547114B/zh
Publication of CN101547114A publication Critical patent/CN101547114A/zh
Application granted granted Critical
Publication of CN101547114B publication Critical patent/CN101547114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种自治系统内的拓扑处理系统和方法。该系统包括分析单元,用于根据新接收到的路由信息采集探针采集的OSPF LSA报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据结构构建或者更新自治系统内的拓扑图;路由信息采集探针,用于通过物理上部署到自治系统的OSPF区域,并通过隧道连通到网络中,与网络中每个OSPF区域的运行OSPF路由协议的路由器建立邻接关系,实时被动地采集在该OSPF区域泛洪的LSA报文,并将采集到的LSA报文发送给所述分析单元。其将自治系统内拓扑形象化,方便网管人员工作。

Description

一种自治系统内的拓扑处理系统和方法
技术领域
本发明涉及网络测量和分析技术领域,特别是涉及一种利用开放最短路径优先协议的链路状态广播(OSPF LSA)对自治系统内的拓扑进行构建和更新的系统和方法。
背景技术
今天的国际互联网(Internet)和较大的网络服务提供商(Internet ServiceProvider,ISP),自治系统(Autonomous System,AS)。自治系统设置了管理控制的区域和作用于自治系统范围的路由策略。所以Internet级的路由结构常被划分为域内和域间两种。
对于域内路由,有多种域内路由协议,目前开放最短路径优先协议(OpenShortest Path First,OSPF)有较广泛的应用。
OSPF是Open Shortest Path First(即“开放最短路由优先协议”)的缩写。它是IETF组织开发的一个基于链路状态的自治系统内部路由协议。在IP网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。
每一台运行OSPF协议的路由器总是将本地网络的连接状态,(如可用接口信息、可达邻居信息等)用链路状态广播(Link_State Advertisement,LSA)描述,并广播到整个自治系统中去。这样,每台路由器都收到了自治系统中所有路由器生成的链路状态广播,这些链路状态广播的集合组成了链路状态数据库(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 LSA),该链路状态广播是由区域边界路由器或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),因此现有方法不能反映出拓扑的变化,导致其构建的域内拓扑对网络管理的借鉴性较差。
发明内容
本发明所要解决的问题是提供一种自治系统内的拓扑处理系统和方法,其利用开放最短路径优先协议的链路状态广播(OSPF LSA),构建和更新自治系统内的拓扑,将自治系统内拓扑形象化,方便网管人员工作。
为实现本发明目的而提供的一种自治系统内的拓扑处理系统,包括分析单元,用于根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据结构构建或者更新自治系统内的拓扑图。
所述的自治系统内的拓扑处理系统,还包括路由信息采集探针,用于通过物理上部署到自治系统的OSPF区域,并通过隧道连通到网络中,与网络中每个OSPF区域的运行OSPF路由协议的路由器建立邻接关系,实时被动地采集在该OSPF区域泛洪的链路状态广播报文,并将采集到的链路状态广播报文发送给所述分析单元。
所述分析单元包括构建模块、更新模块,其中:
所述构建模块,用于根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为第一次收到的该自治系统中的路由器的报文时,创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构得到OSPF报文列表;
所述更新模块,用于根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为非第一次收到该自治系统中的一路由器发送的报文,通过比较前后两条同类型的链路状态广播报文,发现自治系统内拓扑的变化,更新拓扑中的节点或者边的信息。
所述的自治系统内的拓扑处理系统,还包括报文区分模块,用于区分路由信息采集探针和分析单元之间传输的报文类型。
所述报文类型一类是路由信息采集探针通过与网络中的OSPF路由器建立邻居关系而得到的路由更新报文;另一类是路由采集探针所发送的与网络中OSPF路由器之间的邻居关系建立或者丢失的应用层控制报文。
所述的自治系统内的拓扑处理系统,还包括配置模块,用于对路由信息采集探针覆盖范围内的路由器进行OSPF配置,使路由信息采集探针与自汉系统内建立隧道的路由器建立起OSPF全邻接关系,采集到区域内各路由器的报文信息。
为实现本发明目的还提供一种自治系统内的拓扑处理方法,包括下列步骤:
步骤A,分析单元根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据结构构建或者更新自治系统内的拓扑图。
所述步骤A之前还包括下列步骤:
步骤A’,将路由信息采集探针通过物理上部署到自治系统的OSPF区域中,实时被动地采集在该OSPF区域泛洪的链路状态广播报文,并传输给分析单元。
所述步骤A中,所述数据结构包括:
自治系统数据结构:其包括该自治系统内区域列表,路由器列表,子网列表;
区域数据结构:其记录属于该区域的所有路由器列表,及该区域内路由器的链路状态信息数据库;
路由器信息数据结构:其包括路由器ID,类型,接口列表,OSPF RouterLSA列表,OSPF NetworkLSA列表,单向邻居集合,双向邻居集合;
记录网段及指定路由器信息的数据结构:包括网段IP,DR接口,DR路由器ID,通过该网段上普通路由器发出的RouterLSA与指定路由器建立单向边关系的路由器集合,通过DR的NetworkLSA获得该网段上普通路由器放入宣告路由器的单向邻居集合。
所述步骤A包括下列步骤:
步骤A1,根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为第一次收到的该自治系统中的路由器的报文时,创建该节点结构并在拓扑图中画出;
步骤A2,根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为非第一次收到的该自治系统中的路由器的报文时,通过比较前后两条同类型的链路状态广播报文,发现自治系统内拓扑的变化,更新拓扑中的节点或者边的信息。
所述步骤A1中,创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构得到OSPF报文列表,包括如下步骤:
步骤A11,收到一条链路状态广播报文后,通过链路状态广播报文内容获得宣告路由器所在区域号,在自治系统所维护的区域列表中检索所述区域号;若检索到,转向步骤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中的邻居路由器,记录到该路由器以所述区域号为索引的OSPF NetworkLSA报文列表中,直到最后一条。
所述步骤A15中,所述分类型处理,包括下列步骤:
步骤A151,对于点到点类型,如果linkData是宣告路由器的一个接口,linkID是邻居路由器的ID,记为neighborRouterID,则将neighborRouterID加入宣告路由器的单向邻居集合,并检查宣告路由器是否存在于neighborRouterID的单向邻居集合,若是,在拓扑图中画出边;否则,结束返回;
步骤A152,对于transit network类型,如果linkData是宣告路由器的一个接口,linkID是宣告路由器所在网段DR的接口,则:
若linkData与linkID相等,说明宣告路由器是一网段上的指定路由器,从记录网段及指定路由器信息的数据结构中检索相应的指定路由器条目,若检索到,则填充相应信息,并为宣告路由器的单向邻居集合中所有路由器建立它们与指定路由器的单向邻居关系;若没有检索到,将该接口和宣告路由器ID放入记录网段及指定路由器信息的数据结构;
若linkData与linkID不相等,说明宣告路由器是一网段上的普通路由器,查询记录网段及指定路由器信息的数据结构中是否有该网段DR信息;
若没有,则结束返回;若有,则根据该接口获得网段指定路由器的ID,记为neighborRouterID,将neighborRouterID加入宣告路由器的单向邻居集合;
检查宣告路由器是否存在于neighborRouterID的单向邻居集合;
若是,在拓扑图中画出边;若没有,建立一条以linkID为DR接口的条目放入记录网段及指定路由器信息的数据结构,将未知的信息置空,并将宣告路由器放入该条目中的单向边关系的路由器集合中,标记其尚未记录DR单向邻居关系;
步骤A153,对于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&linkID,从拓扑图中删掉该边;
步骤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是本发明自治系统内拓扑更新过程流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种自治系统内的拓扑处理系统和方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提出了一种利用开放最短路径优先协议的链路状态广播(OSPFLSA)对自治系统内的拓扑进行构建和更新的系统和方法,其通过路由信息采集探针采集自治系统内路由器报文,发送至分析单元。分析单元对新接收到的路由器报文进行解析,根据报文内容获得节点或边的信息,对第一次收到的路由器报文,创建该节点结构并在拓扑图中画出,根据报文内容填充或者更新节点相关信息;而对非第一次收到的路由器报文,通过比较前后两条同类型的链路状态广播(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报文进行解析,获得节点或边的信息,当判断为第一次收到的该自治系统1中的路由器6的报文时,创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构得到OSPF报文列表。
所述更新模块22,用于根据新接收到的路由信息采集探针5采集的OSPF链路状态广播(LSA)报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为非第一次收到该自治系统1中的一路由器发送的报文,通过比较前后两条同类型的链路状态广播(LSA)报文,发现自治系统1内拓扑的变化,更新拓扑中的节点或者边的信息。
路由信息采集探针5需要模拟实现完整的开放最短路径优先路由协议(OSPF协议),能够运行开放最短路径优先路由协议的状态机,能够与真实路由器6建立OSPF会话并交换OSPF路由更新报文,这个可以通过现有的开源路由软件GNU Zebra来实现。
通过开源路由软件GNU Zebra实现路由信息采集探针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和OSPFNetworkLSA。
较佳地,为了实现路由信息采集探针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配置,使采集探针与自治系统1内建立隧道(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 RoutingEncapsulation,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)报文,发现自治系统1内拓扑的变化,根据变化更新拓扑图。其根据拓扑的数据结构,对于实时采集到的链路状态广播报文,分析单元2为每个路由器6分区域维护其OSPF报文列表,分区域记录该路由器产生的最新OSPF Rounter LSA和OSPF Network LSA,在拓扑图中画出,
所述数据结构包括:
A)自治系统数据结构ASInfo_Class:其包括该自治系统内区域列表,路由器列表,子网列表;
B)区域数据结构AreaInfo_Class:记录属于该区域的所有路由器列表,及该区域内路由器的链路状态信息数据库(LSDB);
C)路由器信息数据结构RouterInfo_Class:其包括路由器ID,类型,接口列表,单向邻居集合,双向邻居集合;
D)记录网段及指定路由器(DR)信息的数据结构TransitnetMap:包括网段IP,DR接口,DR路由器ID,通过该网段上普通路由器发出的RouterLSA与指定路由器(DR)建立单向边关系的路由器集合NormalRouterSet,通过指定路由器(DR)的NetworkLSA获得该网段上普通路由器放入宣告路由器的单向邻居集合AttachedRouterSet。
进一步地,所述步骤S200,其包括下列步骤:
步骤S2100,根据新接收到的路由信息采集探针5采集的OSPF链路状态广播(LSA)报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为第一次收到该自治系统中一路由器发送的报文时,创建该节点结构并在拓扑图中画出;
步骤S2200,根据新接收到的路由信息采集探针5采集的OSPF链路状态广播(LSA)报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为非第一次收到该自治系统中一路由器发送的报文时,通过比较前后两条同类型的链路状态广播(LSA)报文,发现自治系统1内拓扑的变化,更新拓扑中的节点或者边的信息。
进一步地,下面详细描述本发明的步骤S2100,创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构得到OSPF报文列表的过程,其包括如下步骤:
步骤S2110,收到一条链路状态广播(LSA)报文后,通过链路状态广播报文内容获得宣告路由器所在区域号(areaID),在自治系统1所维护的区域列表中检索所述区域号(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,记为neighborRouterID,则将neighborRouterID加入宣告路由器的单向邻居集合,并检查宣告路由器是否存在于neighborRouterID的单向邻居集合,若是,在拓扑图中画出边;否则,结束返回;
步骤S2152,对于transit network类型,如果linkData是宣告路由器的一个接口,linkID是宣告路由器所在网段DR的接口,则:
a)若linkData与linkID相等,说明宣告路由器是一网段上的指定路由器(DR),从数据结构TransitnetMap中检索相应的指定路由器(DR)条目,若检索到,则填充相应信息,并为宣告路由器的单向邻居集合AttachedRouterSet中所有路由器建立它们与指定路由器(DR)的单向邻居关系;若没有检索到,将该接口和宣告路由器ID放入数据结构TransitnetMap;
b)若linkData与linkID不相等,说明宣告路由器是一网段上的普通路由器,查询数据结构TransitnetMap中是否有该网段DR信息;
若没有,则结束返回;若有,则根据该接口获得网段指定路由器(DR)的ID,记为neighborRouterID,将neighborRouterID加入宣告路由器的单向邻居集合;
检查宣告路由器是否存在于neighborRouterID的单向邻居集合;
若是,在拓扑图中画出边;若没有,建立一条以linkID为DR接口的条目放入数据结构TransitnetMap,将未知的信息置空,并将宣告路由器放入该条目中的单向边关系的路由器集合NormalRouterSet中,标记其尚未记录DR单向邻居关系;
步骤S2153,对于stub network类型,以linkData子网IP和linkID子网掩码,即以子网IP&子网掩码的结果为子网ID,建立一个子网结构,在拓扑图中画出该子网,并将其添加到所述区域号(areaID)的子网OSPF报文列表中,画出宣告路由器与该子网之间边的关系;
步骤S2154,对于virtual link类型,如果linkData是宣告路由器的一个接口,linkID是邻居路由器的ID,记为neighborRouterID,则将neighborRouterID加入宣告路由器的单向邻居集合,并检查宣告路由器是否存在于neighborRouterID的单向邻居集合,若是,在拓扑图中画出边;
步骤S2155,重复执行步骤S250。
步骤S2160,以宣告路由器ID为路由器ID建立路由器结构,根据路由器ID在拓扑图中画出该路由器,并将其添加到所述区域号(areaID)的路由器列表中;
步骤S2170,查找数据结构TransitnetMap中是否有该指定路由器(DR)信息;
若没有,创建一个新条目,将网段、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&linkID,从拓扑图中删掉该边;
步骤S2244,如果是virtual link类型,则获得先前与宣告路由器建立起虚链路的邻居路由器ID,即原链路oldlink中的linkID,从拓扑图中删掉边,并从宣告路由器和邻居路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息。
步骤S2250,转向步骤S2150进行分析处理;
步骤S2260,NetworkLSA中的linkStateID和子网掩码相与之后,获得网段IP,查找数据结构TransitnetMap,找到该网段IP对应的条目transitNetInfo,查看该网段原指定路由器(DR)信息,并进行分析处理;
进一步地,所述步骤S2260中,进行分析处理,包括下列步骤:
步骤S2261,若原指定路由器(DR)ID与宣告路由器ID相等,则检查宣告路由器的单向邻居集合attachedRouterSet,遍历该集合中的每个attachedRouterID;
a)若attachedRouterID没有出现在新NetworkLSA的邻居路由器AttachedRouter中,则从拓扑图中删除宣告路由器到attachedRouterID的边,并从宣告路由器和attachedRouterID数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息;并且将attachedRouterID从宣告路由器的单向邻居集合AttachedRouterSet中删除;
b)若attachedRouterID出现在新NetworkLSA的邻居路由器attachedRouter中,则继续重复步骤S2261;
步骤S2262,若原指定路由器(DR)ID与宣告路由器ID不等,说明网段指定路由器(DR)改变,在拓扑图中删除原指定路由器(DR)在该网段与普通路由器建立的边,从宣告路由器和普通路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息,并将网段IP对应的条目transitNetInfo从数据结构TransitnetMap中删除。
步骤S2270,转向步骤S2170~S2180进行处理。
通过比较同一宣告路由器发出的不同内容的同类报文,对上层拓扑图及底层数据结构进行更新,并能定位出网络拓扑变化,供网管人员定位故障参考。
本发明的自治系统内的拓扑处理系统和方法,路由信息采集探针与每个区域内的任一路由器建立OSPF邻居关系,将收集到的OSPF Update报文发向分析单元,分析单元对接收到的OSPF Router LSA,OSPF Network LSA进行解析,根据报文内容及“双向”建立边关系原则,构建拓扑中节点或边的信息。本发明不依赖于OSPF LSA报文顺序,能在包乱序的情况下构建正确的拓扑。本发明通过比较新收到的LSA和链路状态数据库中同一宣告路由器发出的最近的一条同类型LSA,发现自治系统内拓扑的变化,根据变化更新网络拓扑图。本发明将自治系统内拓扑形象化,方便网管人员工作。
通过以上结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。

Claims (14)

1.一种自治系统内的拓扑处理系统,其特征在于,包括分析单元,用于根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据结构构建或者更新自治系统内的拓扑图;其中,
所述分析单元,用于在收到一条链路状态广播报文后,通过链路状态广播报文内容获得宣告路由器所在区域号,在自治系统所维护的区域列表中检索所述区域号;其中
若检索到所述区域号,则判断收到的OSPF链路状态广播报文类型,如果1)收到的OSPF链路状态广播报文类型是RouterLSA,则以宣告路由器ID为路由器ID建立路由器结构,并根据RouterLSA中宣告的路由器类型填充路由器结构,并根据路由器ID和类型在拓扑图中画出该路由器,并将其添加到所述区域号的路由器OSPF报文列表中;遍历RouterLSA中的每条链路,分类型处理,直到最后一条,然后结束返回;2)收到的OSPF链路状态广播报文类型是NetworkLSA,则以宣告路由器ID为路由器ID建立路由器结构,根据路由器ID在拓扑图中画出该路由器,并将其添加到所述区域号的路由器列表中;查找记录网段及指定路由器信息的数据结构中是否有该指定路由器信息;若没有该指定路由器信息,创建一个新条目,将网段、DR接口、DR路由器ID信息填入;若已经存在该指定路由器信息,则填补信息空缺处,同时为单向边关系的路由器集合中的路由器添加宣告路由器的单向邻居关系;遍历NetworkLSA中的邻居路由器,记录到该路由器以所述区域号为索引的OSPFNetworkLSA报文列表中,直到最后一条;3)收到的OSPF链路状态广播报文类型不是RouterLSA或NetworkLSA,结束返回;
若未检索到所述区域号,则建立一所述区域号的区域结构,写入自治系统所维护的区域OSPF报文列表中,执行判断收到的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链路状态广播报文,解析报文内容获得节点或边的信息,进行判断后根据拓扑的数据结构构建或者更新自治系统内的拓扑图;其中
所述步骤A包括下列步骤:
步骤A1,根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为第一次收到该自治系统中的一路由器发送的报文时,创建该节点结构并在拓扑图中画出;
步骤A2,根据新接收到的路由信息采集探针采集的OSPF链路状态广播报文,对OSPF Router LSA,OSPF Network LSA报文进行解析,获得节点或边的信息,当判断为非第一次收到该自治系统中的一路由器发送的报文时,通过比较前后两条同类型的链路状态广播报文,发现自治系统内拓扑的变化,更新拓扑中的节点或者边的信息;
所述步骤A1中,创建该节点结构并在拓扑图中画出,并根据拓扑的数据结构得到OSPF报文列表,包括如下步骤:
步骤A11,收到一条链路状态广播报文后,通过链路状态广播报文内容获得宣告路由器所在区域号,在自治系统所维护的区域列表中检索所述区域号;若检索到,转向步骤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中的邻居路由器,记录到该路由器以所述区域号为索引的OSPF NetworkLSA报文列表中,直到最后一条。
8.根据权利要求7所述的自治系统内的拓扑处理方法,其特征在于,所述步骤A之前还包括下列步骤:
步骤A’,将路由信息采集探针通过物理上部署到自治系统的OSPF区域中,实时被动地采集在该OSPF区域泛洪的链路状态广播报文,并传输给分析单元。
9.根据权利要求7或8所述的自治系统内的拓扑处理方法,其特征在于,所述步骤A中,所述数据结构包括:
自治系统数据结构:其包括该自治系统内区域列表,路由器列表,子网列表;
区域数据结构:其记录属于该区域的所有路由器列表,及该区域内路由器的链路状态信息数据库;
路由器信息数据结构:其包括路由器ID,类型,接口列表,OSPF RouterLSA列表,OSPF NetworkLSA列表,单向邻居集合,双向邻居集合;
记录网段及指定路由器信息的数据结构:包括网段IP,DR接口,DR路由器ID,通过该网段上普通路由器发出的RouterLSA与指定路由器建立单向边关系的路由器集合,通过DR的NetworkLSA获得该网段上普通路由器放入宣告路由器的单向邻居集合。
10.根据权利要求7所述的自治系统内的拓扑处理方法,其特征在于,所述步骤A15中,所述分类型处理,包括下列步骤:
步骤A151,对于点到点类型,如果linkData是宣告路由器的一个接口,linkID是邻居路由器的ID,记为neighborRouterID,则将neighborRouterID加入宣告路由器的单向邻居集合,并检查宣告路由器是否存在于neighborRouterID的单向邻居集合,若是,在拓扑图中画出边;否则,结束返回;
步骤A152,对于transit network类型,如果linkData是宣告路由器的一个接口,linkID是宣告路由器所在网段DR的接口,则:
若linkData与linkID相等,说明宣告路由器是一网段上的指定路由器,从记录网段及指定路由器信息的数据结构中检索相应的指定路由器条目,若检索到,则填充相应信息,并为宣告路由器的单向邻居集合中所有路由器建立它们与指定路由器的单向邻居关系;若没有检索到,将该接口和宣告路由器ID放入记录网段及指定路由器信息的数据结构;
若linkData与linkID不相等,说明宣告路由器是一网段上的普通路由器,查询记录网段及指定路由器信息的数据结构中是否有该网段DR信息;
若没有,则结束返回;若有,则根据该接口获得网段指定路由器的ID,记为neighborRouterID,将neighborRouterID加入宣告路由器的单向邻居集合;
检查宣告路由器是否存在于neighborRouterID的单向邻居集合;
若是,在拓扑图中画出边;若没有,建立一条以linkID为DR接口的条目放入记录网段及指定路由器信息的数据结构,将未知的信息置空,并将宣告路由器放入该条目中的单向边关系的路由器集合中,标记其尚未记录DR单向邻居关系;
步骤A153,对于stub network类型,以linkData子网IP和linkID子网掩码,即以子网IP&子网掩码的结果为子网ID,建立一个子网结构,在拓扑图中画出该子网,并将其添加到所述区域号的子网OSPF报文列表中,画出宣告路由器与该子网之间边的关系;
步骤A154,对于virtual link类型,如果linkData是宣告路由器的一个接口,linkID是邻居路由器的ID,记为neighborRouterID,则将neighborRouterID加入宣告路由器的单向邻居集合,并检查宣告路由器是否存在于neighborRouterID的单向邻居集合,若是,在拓扑图中画出边;
步骤A155,重复执行步骤A15。
11.根据权利要求7所述的自治系统内的拓扑处理方法,其特征在于,所述步骤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进行处理。
12.根据权利要求11所述的自治系统内的拓扑处理方法,其特征在于,所述步骤A23包括下列步骤:
步骤A231,若在当前的RouterLSA中没有检索到接口,说明宣告路由器接口减少,初步判定路由器接口出现故障,转入步骤A24;
步骤A232,如检索到接口但链路中内容不一致,包括链路类型、linkID或linkData不一致,则说明接口正常,但链路内容变化,转向步骤A24。
13.根据权利要求11所述的自治系统内的拓扑处理方法,其特征在于,所述步骤A24包括下列步骤:
步骤A241,如果是点到点类型,则获得先前与宣告路由器建立起点到点链路的邻居路由器ID,即原链路中的linkID,从拓扑图中删掉边,并从宣告路由器和邻居路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息;
步骤A242,如果是transit network类型,则判断原链路中的linkID与linkData是否相等;
如果linkID与linkData相等,说明宣告路由器以前是一网段上的指定路由器,现在指定路由器发生改变,从记录网段及指定路由器信息的数据结构中找到与之对应的条目,在拓扑图中删除指定路由器在该网段与普通路由器建立的边,将该条目从记录网段及指定路由器信息的数据结构中删除;
如果linkID与linkData不等,说明宣告路由器以前是一网段上的普通路由器,通过linkID获得网段指定路由器接口,从记录网段及指定路由器信息的数据结构找到与之对应条目,从拓扑图中删除宣告路由器与指定路由器之间的边,并从宣告路由器和指定路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息,并从指定路由器的单向边关系的路由器集合和宣告路由器的单向邻居集合中删除宣告路由器相关信息;
步骤A243,如果是stub network类型,则获得先前与宣告路由器建立起边关系的子网IP,即原链路中的linkData&linkID,从拓扑图中删掉该边;
步骤A244,如果是virtual link类型,则获得先前与宣告路由器建立起虚链路的邻居路由器ID,即原链路中的linkID,从拓扑图中删掉边,并从宣告路由器和邻居路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息。
14.根据权利要求11所述的自治系统内的拓扑处理方法,其特征在于,所述步骤A26中,所述分析处理,包括下列步骤:
步骤A261,若原指定路由器ID与宣告路由器ID相等,则检查宣告路由器的单向邻居集合,遍历该集合中的每个邻居路由器ID;
若邻居路由器ID没有出现在新NetworkLSA的邻居路由器中,则从拓扑图中删除宣告路由器到邻居路由器ID的边,并从宣告路由器和邻居路由器ID数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息;并且将邻居路由器ID从宣告路由器的单向邻居集合中删除;
若邻居路由器ID出现在新NetworkLSA的邻居路由器中,则继续,重复步骤A261;
步骤A262,若原指定路由器ID与宣告路由器ID不等,说明网段指定路由器改变,在拓扑图中删除原指定路由器在该网段与普通路由器建立的边,从宣告路由器和普通路由器数据结构中的单向邻居集合和双向邻居集合中删掉彼此的信息,并将网段IP对应的条目从记录网段及指定路由器信息的数据结构中删除。
CN2008101027044A 2008-03-25 2008-03-25 一种自治系统内的拓扑处理系统和方法 Active CN101547114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101027044A CN101547114B (zh) 2008-03-25 2008-03-25 一种自治系统内的拓扑处理系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101027044A CN101547114B (zh) 2008-03-25 2008-03-25 一种自治系统内的拓扑处理系统和方法

Publications (2)

Publication Number Publication Date
CN101547114A CN101547114A (zh) 2009-09-30
CN101547114B true CN101547114B (zh) 2011-06-01

Family

ID=41194027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101027044A Active CN101547114B (zh) 2008-03-25 2008-03-25 一种自治系统内的拓扑处理系统和方法

Country Status (1)

Country Link
CN (1) CN101547114B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102437938B (zh) * 2012-01-09 2013-11-13 北京邮电大学 面向大规模网络监测的虚拟化部署系统和方法
CN104579814B (zh) * 2013-10-29 2018-07-31 国家计算机网络与信息安全管理中心 一种路由信息分析、采集装置及其方法
CN103825760B (zh) * 2014-02-25 2017-06-06 新华三技术有限公司 一种基于ospf协议建立邻居关系的方法和装置
CN104168154B (zh) * 2014-07-31 2018-01-02 中国人民解放军91655部队 面向网络态势感知的多级别网络系统及其构建方法
CN104166711B (zh) * 2014-08-12 2017-07-14 小米科技有限责任公司 控制路由器插件的方法和装置
CN106330725A (zh) * 2015-06-19 2017-01-11 中兴通讯股份有限公司 一种实现网络管理的方法和装置
CN105306362B (zh) * 2015-09-18 2018-08-10 中国科学院计算技术研究所 基于IPv6的OSPF网络路由信息的被动采集方法及系统
CN107634842A (zh) * 2016-07-18 2018-01-26 阿里巴巴集团控股有限公司 网络拓扑发现方法及装置
CN108650163B (zh) * 2018-04-23 2020-09-08 首都师范大学 分级非全连通虚拟拓扑的隧道连通方法及装置
CN108848203B (zh) * 2018-06-25 2021-06-18 哈尔滨工业大学 一种网络边界的识别方法及系统
CN108924011A (zh) * 2018-08-14 2018-11-30 赛尔网络有限公司 用于ospf+路由协议的监测系统、相关设备、方法及介质
CN109167706A (zh) * 2018-09-10 2019-01-08 北京华环电子股份有限公司 一种快速获知在线网元的方法
US10999182B2 (en) 2019-05-13 2021-05-04 128 Technology, Inc. Routing using segment-based metrics
US11153202B2 (en) * 2019-05-13 2021-10-19 128 Technology, Inc. Service and topology exchange protocol
CN112383419B (zh) * 2020-11-03 2022-08-05 晏平 Ospf网络问题告警方法、装置、计算机设备及存储介质
CN112540860A (zh) * 2020-12-11 2021-03-23 一飞(海南)科技有限公司 无损的线程间传递消息的处理方法、系统、设备及在终端
CN113067727A (zh) * 2021-03-16 2021-07-02 牛智军 基于国产系统下跨区全兼容装置及其网络拓扑采集方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1552139A (zh) * 2001-09-06 2004-12-01 �ż��� 利用链路状态信息发现ip网络拓扑结构
CN1889520A (zh) * 2006-07-25 2007-01-03 华为技术有限公司 一种基于ospf的路由信息更新方法和网络设备
CN1905512A (zh) * 2006-08-17 2007-01-31 北京邮电大学 开放最短路径优先路由协议的监测与分析系统及工作方法
CN101083548A (zh) * 2006-06-02 2007-12-05 华为技术有限公司 一种多域路由计算方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1552139A (zh) * 2001-09-06 2004-12-01 �ż��� 利用链路状态信息发现ip网络拓扑结构
CN101083548A (zh) * 2006-06-02 2007-12-05 华为技术有限公司 一种多域路由计算方法和系统
CN1889520A (zh) * 2006-07-25 2007-01-03 华为技术有限公司 一种基于ospf的路由信息更新方法和网络设备
CN1905512A (zh) * 2006-08-17 2007-01-31 北京邮电大学 开放最短路径优先路由协议的监测与分析系统及工作方法

Also Published As

Publication number Publication date
CN101547114A (zh) 2009-09-30

Similar Documents

Publication Publication Date Title
CN101547114B (zh) 一种自治系统内的拓扑处理系统和方法
WO2021170092A1 (zh) 报文处理方法、装置、网络设备及存储介质
CN104168154B (zh) 面向网络态势感知的多级别网络系统及其构建方法
CN101252488B (zh) 一种多自治系统路由器级拓扑处理系统和方法
CN107431657B (zh) 跨网络域的用于流分析的数据分组标记的方法和装置
JP4373271B2 (ja) ノード網における仮想lanの網構成を把握する方法およびプログラム
WO2016165492A1 (zh) 一种实现业务功能链的方法和装置
CN101282241B (zh) 一种自治系统内的实时网络路由拓扑处理系统及方法
CN101547125B (zh) 一种自治系统内网络异常定位的系统和方法
US8549124B2 (en) Network management discovery tool
CN106603413B (zh) 通过指定路径传输流量的方法和装置
US8165038B2 (en) Network physical connection inference for IP tunnels
US20140122741A1 (en) Multiple path availability between walkable clusters
CN106992891A (zh) 一种针对ospf网络的路由配置异常检测方法及系统
CN107104809B (zh) 一种生成网络拓扑图的方法和系统
CN113242179B (zh) 一种基于sdn的sr路径计算和标签栈生成的方法及sdn控制器
CN108111413A (zh) 叠加网络的路由方法、系统及设备
CN113328915B (zh) 一种基于SRv6的随路网络测量方法
EP4167506A1 (en) In-situ flow detection method and related device
CN110430116A (zh) 数据转发方法及装置、边缘设备及可读存储介质
WO2021254173A1 (zh) 一种路由处理方法及相关设备
WO2019141970A1 (en) Routing mechanisms for low-power and lossy networks
CN103051477A (zh) 一种网络拓扑自动获取方法及系统、网络管理系统
CN107124297A (zh) 基于zabbix的SNMP网络拓扑发现方法及装置
US20230327983A1 (en) Performance measurement in a segment routing network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: G-CLOUD TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20130123

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100080 HAIDIAN, BEIJING TO: 523808 DONGGUAN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130123

Address after: 523808 Guangdong province Dongguan City Songshan Lake Science and Technology Industrial Park Building No. 14 Keyuan pine

Patentee after: G-Cloud Technology Co., Ltd.

Address before: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: G-Cloud Technology Co., Ltd.

Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province

Patentee before: G-Cloud Technology Co., Ltd.