专利名称::一种网络拓扑的发现方法和设备的制作方法
技术领域:
:本发明涉及通信
技术领域:
,特别涉及一种网络拓扑的发现方法和设备。
背景技术:
:对于广域网网络,传统网络管理软件很难进行有效的管理,比如广域网任意两点通信出现异常,通过传统的网管软件是很难发现异常并进一步定位问题出在何处。在这方面,路由拓扑就具备很强的实用性,通过路由分析,可以非常容易定位问题出在那个环节。目前业界路由拓扑都是基于某个或某些路由协议来实现的,比如开放式最短路径优先(OpenShortestPathFirst,OSPF),这是一个内部网关协议(InteriorGatewayProtocol,IGP),用于在单一自治系统(AutonomousSystem,AS)内决策路由。与路由选择信息协议(RoutingInformationProtocol,RIP)相对,OSPF是链路状态路由协议,而RIP是距离矢量路由协议。在实现本发明的过程中,发明人发现现有技术至少存在以下问题这种实现方式具有很大的局限性,一是路由拓扑不能展示所有的路由转发关系,二是对于一个新的路由协议,必须基于这个新协议开发一套算法才能计算其拓扑。这些限制对用户使用来说,是非常不方便的。对于路由拓扑而言,解决上述两个问题是很有必要的。
发明内容本发明提供一种网络拓扑的发现方法和设备,使用通用路由表计算路由拓扑。为达到上述目的,本发明一方面提供了一种网络拓扑的发现方法,其特征在于,应用于包括一个网络管理设备和多个路由设备的系统中,所述方法具体包括以下步骤所述网络管理设备在未执行路由拓扑发现的多个路由设备中选择一个路由设备作为当前执行拓扑发现的种子路由设备,根据当前执行路由拓扑发现的所述种子路由设备的路由表,按照预设的选择顺序获取路由数据;所述网络管理设备根据所述路由数据获取的下一跳路由地址,按照预设的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑。优选的,所述方法,还包括所述网络管理设备为所述多个路由设备中所有未执行拓扑发现的路由设备所对应的信息创建待处理路由设备列表;所述网络管理设备为所述多个路由设备中所有已执行拓扑发现的路由设备所对应的信息创建已处理路由设备列表。优选的,所述网络管理设备在未执行路由拓扑发现的多个路由设备中选择一个路由设备作为当前执行拓扑发现的种子路由设备,具体为所述网络管理设备在待处理路由设备列表中记录的未执行路由拓扑发现的多个路由设备中选择一个作为种子路由设备;所述网络管理设备在所述待处理路由设备列表中删除被选择的所述作为种子的路由设备所对应的信息;所述网络管理设备将所述被选择的作为种子的路由设备所对应的信息加入所述已处理路由设备列表。优选的,所述网络管理设备根据所述路由数据,按照预设的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑,具体为当所述下一跳路由地址为本地接口地址时,则放弃处理,继续获取下一条路由数据;当所述下一跳路由地址为本地子网地址时,所述网络管理设备创建本地子网,其中所述本地子网与所述当前执行拓扑发现的种子路由设备之间建立一条拓扑连接;当所述下一跳路由地址为其他路由器,且该路由器存在于已发现种子路由设备列表中时,所述网络管理设备计算所述路由数据中的下一跳信息所对应的路由设备与所述当前执行拓扑发现的路由设备之间的公共子网;所述网络管理设备根据所述计算的结果,按照预设的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑。优选的,所述预设的网络拓扑发现规则,具体包括如果当前路由设备存在本地子网和公共子网完全相同,则删除本地子网;当前种子路由设备和公共子网、下一跳路由器和公共子网之间都应该存在一条连接;如果公共子网掩码长度为30位,则当前路由设备和下一条路由器之间存在一条直连连接,删除公共子网。另一方面,本发明还提供了一种网络管理设备,应用于包括一个网络管理设备和多个路由设备的系统中,具体包括设置模块,用于设置网络拓扑发现规则;选择模块,用于在未执行路由拓扑发现的多个路由设备中选择一个路由设备作为当前执行拓扑发现的种子路由设备,根据当前执行路由拓扑发现的所述种子路由设备的路由表,按照预设的选择顺序获取路由数据;处理模块,与所述选择模块和所述设置模块相连接,用于根据所述路由数据获取的下一跳路由地址,按照所述设置模块的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑。优选的,所述预设的网络拓扑发现规则,具体包括如果当前路由设备存在本地子网和公共子网完全相同,则删除本地子网;当前种子路由设备和公共子网、下一跳路由器和公共子网之间都应该存在一条连接;如果公共子网掩码长度为30位,则当前路由设备和下一条路由器之间存在一条直连连接,删除公共子网。优选的,所述网络管理设备,还包括管理模块,与所述选择模块相连接,用于为所述多个路由设备中所有未执行拓扑发现的路由设备所对应的信息创建待处理路由设备列表,并为所述多个路由设备中所有已执行拓扑发现的路由设备所对应的信息创建已处理路由设备列表。优选的,所述选择模块在所述多个路由设备中选择一个未执行拓扑发现的路由设备作为当前执行拓扑发现的路由设备,具体为所述选择模块按照所述管理模块所创建的待处理路由设备列表,在所述多个路由设备中选择一个未执行拓扑发现的路由设备;所述管理模块在所述待处理路由设备列表中删除被选择的所述未执行拓扑发现的路由设备所对应的信息;所述管理模块将所述被选择的所述未执行拓扑发现的路由设备所对应的信息加入所述已处理路由设备列表。优选的,所述处理模块,具体包括创建子模块,当所述下一跳路由地址为本地子网地址时,用于创建本地子网,其中所述本地子网与所述当前执行拓扑发现的路由设备之间建立一条拓扑连接;计算子模块,当所述下一跳路由地址为其他路由器,且该路由器存在于已发现种子路由设备列表中时,用于计算所述路由数据中的下一跳信息所对应的路由设备与所述当前执行拓扑发现的路由设备之间的公共子网;生成子模块,用于根据所述计算子模块的计算结果,按照所述设置模块所设置的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑。与现有技术相比,本发明具有以下优点通过应用本发明的技术方案,可以使用通用路由表计算路由拓扑,在一张拓扑图中展示所有的路由转发关系,在此基础上经过恰当的计算,可以显示任意两点之间的路由转发关系、路由环路和路由黑洞等,具有很好的实用性,不仅如此,由于拓扑计算过程不依赖某个特定的路由协议,所以,具有很好的通用性。图1为本发明所提出的一种网络拓扑的发现方法的流程示意图;图2为本发明所提出的一种具体应用场景中的网络拓扑的发现方法的流程示意图;图3为本发明所提出的一种以Quidway做为种子路由设备的应用场景中的网络拓扑的发现方法的流程示意图;图4为本发明所提出的一种网络拓扑的计算结果的网络结构示意图;图5为本发明所提出的一种网络管理设备的结构示意图。具体实施例方式本发明的技术方案提供一种新的路由拓扑,能够展示所有的路由转发关系;对于新的或未知的路由协议能够进行兼容。为了方便本文描述,需要澄清几个概念种子路由设备(Seed),即当前执行拓扑发现的路由设备,具体为网络中一个路由器设备,用于发现路由拓扑,为方便描述,在本专利的后续实施例中,使用IP地址进行标识。但在具体的应用场景中,也可以通过其他形式进行路由设备的标识,如设备ID,设备编号等,具体标识形式的变化并不影响本发明的保护范围。待发现种子路由设备列表(WaitSeeds),即待处理路由设备列表,具体为还没有执行路由发现的种子路由设备集合,新发现一台路由器(种子路由设备)时,需要加入到本列表中。已发现种子路由设备列表(FinishSeeds),即已处理路由设备列表,具体为已经执行路由发现的种子路由设备集合,用于避免路由搜索出现死循环;当一台路由器(种子路由设备)执行完路由发现以后,需要加入到本列表中。公共子网,两台或者多台路由器之间,满足子网地址和掩码长度相同的子网。同时,公共子网为了能够满足本发明技术方案中的路由转发关系,要求直连的路由器至少通过该子网存在一条路由转发关系。比如路由器A、B、C的各自路由接口a、b、c存在一个相同的子网192.168.8.0/24,如果A的路由表中某条路由的下一跳是路由器B的b接口地址或者路由器C的c接口地址,则A和192.168.8.0/24存在一条连接关系;否则,则认为A和192.168.8.0/24没有连接关系。如图1所示,为本发明所提出的一种网络拓扑的发现方法,应用于包括一个网络管理设备和多个路由设备的系统中,其方法流程示意图如图1所示,具体包括以下步骤步骤S101、网络管理设备在未执行路由拓扑发现的多个路由设备中选择一个作为当前执行拓扑发现的种子路由设备,根据当前执行路由拓扑发现的该种子路由设备的路由表,按照预设的选择顺序获取路由数据;其中,在本步骤之前,方法还包括网络管理设备为多个路由设备中所有未执行拓扑发现的路由设备所对应的信息创建待处理路由设备列表;网络管理设备为多个路由设备中所有已执行拓扑发现的路由设备所对应的信息创建已处理路由设备列表。相应的,网络管理设备在未执行路由拓扑发现的多个路由设备中选择一个作为当前执行拓扑发现的种子路由设备,具体为网络管理设备在待处理路由设备列表中记录的未执行路由拓扑发现的多个路由设备中选择一个作为种子路由设备;网络管理设备在待处理路由设备列表中删除被选择的作为种子的路由设备所对应的信息;网络管理设备将被选择的作为种子的路由设备所对应的信息加入已处理路由设备列表。步骤S102、网络管理设备根据路由数据获取的下一跳路由地址,按照预设的网络拓扑发现规则,生成路由数据所对应的网络拓扑。在具体的应用场景中,相应的实现流程如下当所述下一跳路由地址为本地接口地址时,则放弃处理,继续获取下一条路由数据;当所述下一跳路由地址为本地子网地址时,所述网络管理设备创建本地子网,其中本地子网与当前执行拓扑发现的种子路由设备之间建立一条拓扑连接;当所述下一跳路由地址为其他路由器,且该路由器存在于已发现种子路由设备列表中时,网络管理设备根据前述的公共子网的定义,计算路由数据中的下一跳信息所对应的路由设备与当前执行拓扑发现的路由设备之间的公共子网;所述预设的网络拓扑发现规则,具体包括如果当前路由设备存在本地子网和公共子网完全相同,则删除本地子网;并且根据前述公共子网的定义,当前种子路由设备和公共子网、下一跳路由器和公共子网之间都应该存在一条连接;如果公共子网掩码长度为30位,由于公共子网掩码最多为32位,所以,在此情况下,当前网络中最多只剩余了4个地址,其中包含一个0.0.0.0的子网地址,和一个1.1.1.1的广播地址,所以,仅剩的两个有效地址必然是一种直连关系,因此,可以判断当前路由设备和下一条路由器之间存在一条直连连接,从而,删除公共子网。与现有技术相比,本发明具有以下优点通过应用本发明的技术方案,可以使用通用路由表计算路由拓扑,在一张拓扑图中展示所有的路由转发关系,在此基础上经过恰当的计算,可以显示任意两点之间的路由转发关系、路由环路和路由黑洞等,具有很好的实用性,不仅如此,由于拓扑计算过程不依赖某个特定的路由协议,所以,具有很好的通用性。为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。在本应用场景中,通用路由拓扑完全基于路由表进行计算,数据来源于ipRouteTable(RFC1213-MIB)。另外,在本应用场景中,利用路由设备的IP地址代表对应的路由设备。相应的流程示意图如图2所示,具体包括以下步骤步骤S201、用户输入一台未执行拓扑发现的路由设备的IP地址作为种子路由设备。步骤S202、将用户输入的种子路由设备加入WaitSeeds中。上述的步骤S201和步骤S202具体为种子路由设备的添加过程,可以重复多次。步骤S203、网络管理设备在WaitSeeds中获取一个种子路由设备。该获取过程可以使用户指定的,也可以是按照一定的预设周期在WaitSeeds中进行轮询。如果种子路由设备获取成功,则以该被获取的种子路由设备成为当前进行网络拓扑发现操作的种子路由设备,并转入步骤S204;如果没有获取到种子路由设备,则结束相应处理流程。之所以没有获取到种子路由设备,原因在于WaitSeeds中没有待发现的种子路由设备,则表明所有种子路由设备均已完成拓扑发现,因此,本次拓扑发现流程结束。步骤S204、将当前被获取的种子路由设备从WaitSeeds中删除,并将其加入到FinishSeeds中。步骤S205、从当前进行拓扑发现的种子路由设备的ipRouteTable中读取一条路由数据。在本步骤中,需要进一步判断是否存在路由数据,如果没有路由数据,则返回步骤S203;如果存在路由数据,则执行步骤S206。步骤S206、识别该路由数据中的下一跳地址的类型。如果下一跳地址是本地子网地址,则执行步骤S207;如果下一跳地址是其他路由器,则执行步骤S208;如果下一跳地址是本地接口地址,或者不是以上的任何一种类型,则放弃处理,返回步骤S205。其中,如果下一跳地址是本地接口地址,则不涉及种子路由设备与网络中其他设备之间的拓扑连接,因此,可以直接放弃处理并转入步骤S205;而如果不是以上的任何一种类型,则在本发明所对应的应用场景中缺少具体的处理规则,因此,同样可以直接放弃处理并转入步骤S205。步骤S207、网络管理设备创建本地子网,在本地子网和当前种子路由设备之间建立一条拓扑连接。本步骤执行完毕后则当前的路由数据所对应的拓扑连接已经建立,针对该路由数据的处理已完成,返回步骤S205,进行下一条路由数据的处理。步骤S208、判断该下一跳路由器在WaitSeeds和FinishSeeds中是否存在。如果该下一跳路由器在WaitSeeds和FinishSeeds中均不存在,则该下一跳路由器所对应的路由数据为当前未发现的新数据,执行步骤S209;如果该下一跳路由器仅存在于FinishSeeds中,则该下一跳路由器所对应的路由数据已经处理完成,执行步骤S210;如果该下一跳路由器仅存在于WaitSeeds中,则该下一跳路由器所对应的路由数据暂时未被处理,在后续的处理中可以进行处理,返回步骤S205。步骤S209、将该下一跳路由器添加到WaitSeeds中,准备进行网络拓扑发现。本步骤执行完毕后,针对当前路由数据的处理已完成,返回步骤S205。通过本步骤,可以发现网络中其他没有进行拓扑发现的路由器。步骤S210、根据公共子网的定义,计算下一跳路由器和当前种子路由设备的公共子网。如果当前种子路由设备存在本地子网和公共子网完全相同,则删除本地子网;当前种子路由设备和公共子网、下一跳路由器和公共子网之间都应该存在一条连接;如果公共子网掩码长度为30位,则当前种子路由设备和下一跳路由器之间存在一条直连连接,删除公共子网。本步骤执行完毕后,返回步骤S205。为了进一步说明本发明技术方案,下面以一台路由器Quidway的所有路由表项的拓扑发现过程为例进行具体描述,该路由器Quidway中的路由表项信息如表1所示。表1路由器Quidway的路由表项当客户输入Quidway做为种子路由设备,则相应的发现路由拓扑的过程如图3所示,包括以下步骤步骤S301、将Quidway所对应的信息(例如IP地址)加入WaitSeeds。步骤S302、从WaitSeeds中获取一个种子路由设备,这里将会获取到Quidway所对应的信息。步骤S303、将Quidway所对应的信息从WaitSeeds中删除,并加入到FinishSeeds中。步骤S304、在Quidway上读取第一条路由数据,该路由数据是0.0.0.0;目的地址0.0.0.0,下一跳地址10.153.6.19,由目的地址为0.0.0.0可以看出这条路由是缺省路由。在具体的应用场景中,缺省路由是路由表(routingtable)中的一条记录,指明信息包(packet)的目的地不在路由表中时的路由,是一种特殊的静态路由,简单地说,就是在没有找到匹配的路由时使用的路由。在路由表中,缺省路由以目的网络为0.0.0.0、子网掩码为0.0.0.0的形式出现。如果数据包的目的地址不能与任何路由相匹配,那么系统将使用缺省路由转发该数据包。如果下一跳地址10.153.6.19在WaitSeeds和FinishSeeds中从来没有出现过,因此将10.153.6.19加入WaitSeeds中,按照前面的计算方法,本条路由计算到此为止,可以开始进行下一条路由的拓扑发现。当然,如果10.153.6.19已经出现在FinishSeeds中,则需要计算公共子网,即执行前述的步骤S210,设它们之间的公共子网为10.153.6.16/29,其中的“29”表示掩码位数,是通过ipRouteMask中的255.255.255.248按照二进制转换,再按照十进制转换而得到的,而前面的IP地址则是通过接口转换来确定的,从而,保证公共子网满足两台路由器之间子网地址和掩码长度相同的要求;同时,由于Quidway的一条路由(缺省路由)的下一跳是10.153.6.19,因此公共子网10.153.6.16/29和Quidway、公共子网10.153.6.16/29和10.153.6.19之间都存在一条连接。步骤S305、继续从Quidway上读取下一条路由数据,该路由数据是10.153.6.16;目的地址10.153.6.16,下一跳地址10.153.6.20,根据ipRouteType和ipRouteMask获知,255.255.255.255表示32位子网掩码,不再有其他地址连接外部子网,因此,这是一条本地子网路由。本地子网为10.153.6.16/29,创建子网10.153.6.16/29,然后在Quidway和子网10.153.6.16/29之间创建一条连接。步骤S306、继续从Quidway上读取下一条路由数据,该路由数据是10.153.6.20;目的地址10.153.6.20,下一跳地址10.153.6.20,根据ipRouteType和ipRouteMask获知,这是一个本地接口地址,不做任何处理。步骤S307、继续从Quidway上读取下一条路由数据,该路由数据是10.153.89.0;目的地址10.153.89.0,下一跳地址10.153.89.1,根据ipRouteType和ipRouteMask获知,这是一条本地子网路由。本地子网为10.153.89.0/27。创建子网10.153.89.0/27,然后在Quidway和子网10.153.89.0/27之间创建一条连接。……继续从Quidway上读取一条路由数据,直到所有的路由表项读取完毕;继续从WaitSeeds获取种子路由设备,将会得到10.153.6.19,执行10.153.6.19的路由拓扑发现;……按照上述方式计算完Quidway所有的路由表,计算结果将显示如图4所示。为了实现本发明的技术方案,如图5所示,为本发明所提出的一种网络管理设备的结构示意图,应用于包括一个网络管理设备和多个路由设备的系统中,具体包括设置模块51,用于设置网络拓扑发现规则;其中,预设的网络拓扑发现规则,具体包括如果当前路由设备存在本地子网和公共子网完全相同,则删除本地子网;当前路由设备和公共子网、下一跳路由器和公共子网之间都应该存在一条连接;如果公共子网掩码长度为30位,则当前路由设备和下一条路由器之间存在一条直连连接,删除公共子网。选择模块52,用于在未执行路由拓扑发现的多个路由设备中选择一个路由设备作为当前执行拓扑发现的种子路由设备,根据当前执行路由拓扑发现的所述种子路由设备的路由表,按照预设的选择顺序获取路由数据。处理模块53,与选择模块52和设置模块51相连接,用于根据路由数据获取的下一跳路由地址,按照设置模块51的网络拓扑发现规则,生成路由数据所对应的网络拓扑。处理模块53,具体包括创建子模块531,用于创建本地子网,其中本地子网与当前执行拓扑发现的路由设备之间建立一条拓扑连接;计算子模块532,当所述下一跳路由地址为本地子网地址时,用于计算路由数据中的下一跳信息所对应的路由设备与当前执行拓扑发现的路由设备之间的公共子网;生成子模块533,当所述下一跳路由地址为其他路由器,且该路由器存在于已发现种子路由设备列表中时,用于根据计算子模块532的计算结果,按照设置模块51所设置的网络拓扑发现规则,生成路由数据所对应的网络拓扑。在具体的应用场景中,该网络管理设备还包括管理模块54,与选择模块52相连接,用于为多个路由设备中所有未执行拓扑发现的路由设备所对应的信息创建待处理路由设备列表,并为多个路由设备中所有已执行拓扑发现的路由设备所对应的信息创建已处理路由设备列表。选择模块52在多个路由设备中选择一个未执行拓扑发现的路由设备作为当前执行拓扑发现的路由设备,具体为选择模块52按照管理模块54所创建的待处理路由设备列表,在多个路由设备中选择一个未执行拓扑发现的路由设备;管理模块54在待处理路由设备列表中删除被选择的未执行拓扑发现的路由设备所对应的信息;管理模块54将被选择的未执行拓扑发现的路由设备所对应的信息加入已处理路由设备列表。与现有技术相比,本发明具有以下优点通过应用本发明的技术方案,可以使用通用路由表计算路由拓扑,在一张拓扑图中展示所有的路由转发关系,在此基础上经过恰当的计算,可以显示任意两点之间的路由转发关系、路由环路和路由黑洞等,具有很好的实用性,不仅如此,由于拓扑计算过程不依赖某个特定的路由协议,所以,具有很好的通用性。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。权利要求1.一种网络拓扑的发现方法,其特征在于,应用于包括一个网络管理设备和多个路由设备的系统中,所述方法具体包括以下步骤所述网络管理设备在未执行路由拓扑发现的多个路由设备中选择一个路由设备作为当前执行拓扑发现的种子路由设备,根据当前执行路由拓扑发现的所述种子路由设备的路由表,按照预设的选择顺序获取路由数据;所述网络管理设备根据所述路由数据获取的下一跳路由地址,按照预设的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑。2.如权利要求1所述的方法,其特征在于,还包括所述网络管理设备为所述多个路由设备中所有未执行拓扑发现的路由设备所对应的信息创建待处理路由设备列表;所述网络管理设备为所述多个路由设备中所有已执行拓扑发现的路由设备所对应的信息创建已处理路由设备列表。3.如权利要求2所述的方法,其特征在于,所述网络管理设备在未执行路由拓扑发现的多个路由设备中选择一个路由设备作为当前执行拓扑发现的种子路由设备,具体为所述网络管理设备在待处理路由设备列表中记录的未执行路由拓扑发现的多个路由设备中选择一个作为种子路由设备;所述网络管理设备在所述待处理路由设备列表中删除被选择的所述作为种子的路由设备所对应的信息;所述网络管理设备将所述被选择的作为种子的路由设备所对应的信息加入所述已处理路由设备列表。4.如权利要求1所述的方法,其特征在于,所述网络管理设备根据所述路由数据,按照预设的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑,具体为当所述下一跳路由地址为本地接口地址时,则放弃处理,继续获取下一条路由数据;当所述下一跳路由地址为本地子网地址时,所述网络管理设备创建本地子网,其中所述本地子网与所述当前执行拓扑发现的种子路由设备之间建立一条拓扑连接;当所述下一跳路由地址为其他路由器,且该路由器存在于已发现种子路由设备列表中时,所述网络管理设备计算所述路由数据中的下一跳信息所对应的路由设备与所述当前执行拓扑发现的路由设备之间的公共子网;所述网络管理设备根据所述计算的结果,按照预设的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑。5.如权利要求4所述的方法,其特征在于,所述预设的网络拓扑发现规则,具体包括如果当前路由设备存在本地子网和公共子网完全相同,则删除本地子网;当前种子路由设备和公共子网、下一跳路由器和公共子网之间都应该存在一条连接;如果公共子网掩码长度为30位,则当前路由设备和下一条路由器之间存在一条直连连接,删除公共子网。6.一种网络管理设备,其特征在于,应用于包括一个网络管理设备和多个路由设备的系统中,具体包括设置模块,用于设置网络拓扑发现规则;选择模块,用于在未执行路由拓扑发现的多个路由设备中选择一个路由设备作为当前执行拓扑发现的种子路由设备,根据当前执行路由拓扑发现的所述种子路由设备的路由表,按照预设的选择顺序获取路由数据;处理模块,与所述选择模块和所述设置模块相连接,用于根据所述路由数据获取的下一跳路由地址,按照所述设置模块的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑。7.如权利要求6所述的网络管理设备,其特征在于,所述设置模块所设置的网络拓扑发现规则,具体包括如果当前路由设备存在本地子网和公共子网完全相同,则删除本地子网;当前种子路由设备和公共子网、下一跳路由器和公共子网之间都应该存在一条连接;如果公共子网掩码长度为30位,则当前路由设备和下一条路由器之间存在一条直连连接,删除公共子网。8.如权利要求6所述的网络管理设备,其特征在于,还包括管理模块,与所述选择模块相连接,用于为所述多个路由设备中所有未执行拓扑发现的路由设备所对应的信息创建待处理路由设备列表,并为所述多个路由设备中所有已执行拓扑发现的路由设备所对应的信息创建已处理路由设备列表。9.如权利要求8所述的网络管理设备,其特征在于,所述选择模块在所述多个路由设备中选择一个未执行拓扑发现的路由设备作为当前执行拓扑发现的路由设备,具体为所述选择模块按照所述管理模块所创建的待处理路由设备列表,在所述多个路由设备中选择一个未执行拓扑发现的路由设备;所述管理模块在所述待处理路由设备列表中删除被选择的所述未执行拓扑发现的路由设备所对应的信息;所述管理模块将所述被选择的所述未执行拓扑发现的路由设备所对应的信息加入所述已处理路由设备列表。10.如权利要求6所述的网络管理设备,其特征在于,所述处理模块,具体包括创建子模块,当所述下一跳路由地址为本地子网地址时,用于创建本地子网,其中所述本地子网与所述当前执行拓扑发现的路由设备之间建立一条拓扑连接;计算子模块,当所述下一跳路由地址为其他路由器,且该路由器存在于已发现种子路由设备列表中时,用于计算所述路由数据中的下一跳信息所对应的路由设备与所述当前执行拓扑发现的路由设备之间的公共子网;生成子模块,用于根据所述计算子模块的计算结果,按照所述设置模块所设置的网络拓扑发现规则,生成所述路由数据所对应的网络拓扑。全文摘要本发明公开了一种网络拓扑的发现方法和设备,通过应用本发明的技术方案,可以使用通用路由表计算路由拓扑,在一张拓扑图中展示所有的路由转发关系,在此基础上经过恰当的计算,可以显示任意两点之间的路由转发关系、路由环路和路由黑洞等,具有很好的实用性,不仅如此,由于拓扑计算过程不依赖某个特定的路由协议,所以,具有很好的通用性。文档编号H04W84/12GK101764728SQ20101010122公开日2010年6月30日申请日期2010年1月27日优先权日2010年1月27日发明者曾勇刚,郭勇,孙立伟申请人:杭州华三通信技术有限公司