综合型网络拓扑发现方法

文档序号:7988493阅读:360来源:国知局
综合型网络拓扑发现方法【专利摘要】本发明提供了一种综合型网络拓扑发现方法,有效利用合理的线程分配,更适应、更快、更准确的发现网络逻辑链路拓扑和物理链路拓扑,能够适应异构性网络,发现链路准确性提高、发现大型网络速度加快、并能提供线程调节功能。【专利说明】综合型网络拓扑发现方法【【
技术领域
】】[0001]本发明涉及一种网络拓扑图的发现方法。【【
背景技术
】】[0002]现代网络正处于蓬勃发展的时期,交换机和路由器及其他设备的管理也是日益重要。对于网络管理员来说,能够获取网络的拓扑状态信息是管理网络的重要工作。网络拓扑状态信息可以显而易见地看到设备状态,链路通畅状态,链路流量信息,当前链路负载等重要信息,让管理员更智能、更轻松地管理网络。[0003]网络拓扑分为物理链路拓扑和逻辑链路拓扑。物理链路拓扑关注网络设备与设备端口之间的实际连接关系,并能够进行如下:设备状态展示、网络性能监控和故障定位、资源管理。逻辑链路拓扑关注设备路由跳转方向,这个是管理员配置设备路由所展示的结果,此拓扑图能够清晰的看到管理员配置路由信息,方便管理员管理路由信息。[0004]目前网络拓扑发现技术包括:传统的三层网络连接发现(路由表路由跳转链路发现)、常规的AFT(addressforwardingtable)运算发现(利用地址转发表)、厂商私有的内部协议发现等等。这些方法都具有很大的片面性,只局限于特定的网络或者不能够最大程度地发现设备连接关系。[0005]传统的三层网络连接发现,只是网络层的路由与路由、路由与子网之间的关系,只能作为三层路由逻辑链路拓扑关系,不能真正体现实际设备之间的连接。[0006]常规的AFT表运算发现,研究者已经提出了很多方法,来发现网络物理链路连接关系,也就是网络层的拓扑结构。目前也已经有比较完善的解决方案,由于设备支持snmp(SimpleNetworkManagementProtocol,简单网络管理协议)和设备连接的异构,也只能做到尽量达到最精确。但是需要很理想的环境,所以也有比较大的缺陷。[0007]厂商私有的内部协议发现,如cisco(思科公司)的cdp(CiscoDiscoveryProtocol,思科发现协议)专门为cisco设备物理拓扑连接而定制的协议,只能用于发现cisco环境下的物理链接关系,此发现方法局限性比较大。[0008]LLDP(LinkLayerDiscoveryProtocol,链路层发现协议)是一个厂商无关的二层协议,这个协议如CiSCO的Cdp协议,由于但大部分设备厂商并没有很好地实现此协议,因而,局限性也比较大。【【
发明内容】】[0009]本发明需解决的技术问题是提供一种更适应异构的网络环境,大大提高拓扑物理链路发现精确性的综合型网络拓扑发现方法。[0010]为解决上述的技术问题,本发明设计了一种综合型网络拓扑发现方法,包括以下的步骤=Stepl:初始化拓扑发现引擎,包括:初始化存放发现数据的缓存集合以及发现后产生的结果数据集合、初始化路由发现线程、初始化子网发现线程、初始化LLDP发现线程、初始化CDP发现线程、初始化单个设备发现线程、初始化拓扑监控线程、初始化设备入库线程。St印2:初始化之后,路由发现线程、子网发现线程、LLDP发现线程、CDP发现线程、设备发现线程、初始化拓扑监控线程,一起协同发现;Step3:以上线程协同发现得出“支持SNMP设备”、“不支持SNMP设备”、“子网与设备之间的链接关系”、“三层设备与三层设备之间的连接关系”;Step4:执行设备入库线程,根据“支持SNMP设备”、“不支持SNMP设备”、“子网与设备之间的链接关系”、“三层设备与三层设备之间的连接关系”的信息得出设备与设备的物理连接关系,结束发现。[0011]作为本发明进一步改进,拓扑发现包括网段发现和全网发现。[0012]作为本发明进一步改进,所述路由发现线程的操作步骤包括:(I)、检测路由,发现数据缓存集合内有IP设备;(2)、对该IP设备进行收集信息:system组、interface组、ipAddrTable组、ipRouteTable组、ipNetToMediaTable组;(3)、判断此设备是否支持CDP、LLDP;(4)、当发现完成,把此IP设备加入到已发现路由集合中,并从正在发现集合中移除此IP设备。[0013]本方法有效利用合理的线程分配,更适应、更快、更准确的发现网络逻辑链路拓扑和物理链路拓扑,能够适应异构性网络,发现链路准确性提高、发现大型网络速度加快、并能提供线程调节功能。【【专利附图】【附图说明】】[0014]图1是本发明综合型网络拓扑发现方法的流程图。【【具体实施方式】】[0015]下面结合附图和实施方式对本发明作进一步说明。[0016]本发明提供了一种综合型网络拓扑发现方法,更适应异构的网络环境。并且,发现链路准确性非常高。[0017]如图1所示,本发明综合型网络拓扑发现方法包括以下多个步骤:[0018]步骤I【初始化拓扑发现引擎】[0019]1.1)初始化存放发现数据的缓存集合和发现后产生的结果数据集合。[0020]1.2)拓扑发现包括‘全网发现’和‘网段发现’[0021]1.2.1)全网发现可以添加开始发现的种子设备,如果没有添加就从网管服务器获取服务器的默认网关当作开始发现的种子设备,并把种子设备加入到存放路由待发现的缓存集合中。[0022]1.2.2)网段发现可以添加多个网段发现,并把网段集合加入到存放开始发现的缓存集合中。[0023]1.3)初始化线程:初始化路由发现线程,初始化子网发现线程,初始化LLDP发现线程,初始化CDP发现线程,初始化单个设备发现线程,初始化拓扑监控线程,初始化设备入库线程。设备发现线程包括路由发现线程和单个设备发现线程。[0024]步骤2【多线程协同发现】[0025]2.1)路由线程发现,路由线程检测到路由待发现数据缓存集合内有IP设备,就开始分配一个路由处理线程去处理此IP设备。对该设备进行判断是否已经发现,如果已经发现则退出发现并此处理线程中断运行。如果未发现过则,判断是否支持路由。如果不支持则退出发现并此处理线程中断运行。[0026]2.1.1)对该设备进行收集信息:system组、interface组、ipAddrTable组、ipRouteTable组、ipNetToMediaTable组。根据厂商型号对照表判断该设备是什么厂商、什么类型、什么型号的设备。并把此设备信息加入SNMP发现后数据缓存中。如果是交换机则加入交换机集合中,如果是路由器则加入到路由器集合中。[0027]2.1.2)根据ipNetToMediaTable表ARP数据,把IP-MAC加入到已经发现IP-MAC集合缓存中。根据interface表接口物理地址把此设备ip与物理地址加入到已经发现IP-MAC集合缓存中。建立IP与MAC的对应关系。[0028]2.1.3)根据ipAddrTable表,取出此设备多个IP,并加入IP-ManagerIP集合缓存中。建立IP与管理IP的对应关系。保存设备发现的唯一性。[0029]2.1.4)根据ipRouteTable表,循环此表判断。[0030]当RouterType为4(直接连接)时,ipRouteNextHop为0.0.0.0时,根据ipRouteDest和ipRouteMask构造出一个子网,判断是否在子网待发现数据的缓存集合中或正在处理集合中或者已经发现完成。如果没则加入到子网待发现集合中。进行步骤3.1。[0031]当RouterType为3(直接连接)时或者RouterType为4(间接连接),判断ipRouteNextHop(下一跳)是否为一个可分配的IP地址,如果是外网地址则构造出一条外网链路加入到外网集合缓存中。如果是内网地址并ipRouteDest为0.0.0.0ipRouteNextHop不为0.0.0.0并且ipRouteMask为0.0.0.0则,则判断ipRouteNextHop值是否在路由待发现数据的缓存集合中或正在处理集合中或者已经发现完成。如果没则加入路由待发现的缓存集合中。此数据又进行‘步骤2’。然后根据此设备IP与ipRouteNextHop构造出路由逻辑链路,在已发现路由逻辑链路缓存中判断是否存在此链路,如果不存在则加入此路由逻辑链路中。[0032]2.1.5)判断此设备是否支持⑶P,如果支持则判断是否在⑶P待发现数据的缓存集合中或正在处理集合中或者已经发现完成。如果没则把此IP加入到CDP待发现集合中。[0033]2.1.6)判断此设备是否支持LLDP,如果支持则判断是否在LLDP待发现数据的缓存集合中或正在处理集合中或者已经发现完成。如果没则把此IP加入到LLDP待发现集合中。[0034]2.1.7)此路由设备发现完成,把此ip加入到已发现路由集合中,并从正在发现集合中移除此ip。[0035]3.1)子网线程发现(网段线程发现相同),子网线程检测到子网待发现集合中有子网记录,就分配子网处理线程,子网处理线程根据ipRouteDest和ipRouteMask计算出起始IP和结束IP,并遍历加入待发现IP设备中。同时启动单个IP处理线程。[0036]3.2)单个IP处理线程检测到待发现集合中数据。就开始处理。Ping探测判断IP是否存活。如果不存活则退出,如果存活则进行snmp探测判断是否支持SNMP。[0037]3.2.1)支持SNMP[0038]判断是否支持路由,如果支持路由,则判断此IP是否在路由待发现数据的缓存集合中或正在处理集合中或者已经发现完成,如果没则加入路由待发现的缓存集合中。此数据又进行‘步骤2’。[0039]3.2.2)如果不支持路由,则进行步骤2.1.1、步骤2.1.2、步骤2.1.3,并根据ipAddrTable表,循环获取ipAdEntAddr和ipAdEntNetMask构造出一个子网,判断是否在子网待发现数据的缓存集合中或正在处理集合中或者已经发现完成。如果没则加入到子网待发现集合中。然后进行步骤2.1.5、步骤2.1.6。[0040]3.2.3)不支持SNMP[0041]判断是否为主机设备或者未知设备,获取设备名称,设备mac构造设备信息,并判断此ICMP设备是否已经发现,如果没发现则就加入到已发现ICMP集合中。[0042]4.1)LLDP线程发现,LLDP线程检测到LLDP待发现集合中有记录。则分配LLDP子处理线程,收集LLDP表信息IIdpRemTable,并分析得到本地端口、远程IP和远程端口,组装物理链路。判断物理链路已发现集合缓存中是否存在。如果不存在则加入物理链路已发现集合缓存中。[0043]5.1)⑶P线程发现,⑶P线程检测到CDP待发现集合中有记录,则分配⑶P子处理线程,收集⑶P表信息cdpCacheTable,并分析得到本地端口、远程IP和远程端口,组装物理链路。判断物理链路已发现集合缓存中是否存在。如果不存在则加入物理链路已发现集合缓存中。[0044]6.1)拓扑监控线程。待路由发现线程XDP发现线程、LLDP发现线程,子网发现线程(网段发现线程)所有待发现集合和正在发现集合都为空时。则进行ATF常规算法计算。[0045]7.DAFT线程发现,获得前面所有的交换机,并获取所有交换机的dotIdTpFdbTable(dotIdTp组下和qBridgeMIB组下),并分析每个交换机的ATF表数据,把同端口的mac放入同一集合中。Port:Nmac关系。[0046]7.2)连接规律解析:[0047]定义1.令网络中第i台交换机Si的第j个端口为Sij,Aij表示交换机Si的地址转发表中通过端口Sij收到的源MAC地址集合;Pij表示Si上除Sij以外的其它端口地址转发表的并集.Aij和Pij中都包括交换机、主机、路由器的MAC地址。[0048]定义2.标志节点:当算法运行的主机在预发现的子网中时,将此主机命名为标志节点,若不在,则将目标子网中能转发算法运行的主机发出的数据包的路由器节点定为标志节点。[0049]定义3.叶端口:若Aij中未出现交换域中其它交换机(包括其他子网)和本子网标志节点的MAC地址,则称端口Sij为叶端口。[0050]定义4.上行端口:指Aij中出现本子网标志节点MAC地址的端口。[0051]定义5.下行端口:指Aij中没有出现本子网标志节点MAC地址的端口.[0052]定义6.叶交换机:若一台交换机所有的下行端口都为叶端口则称该交换机为叶交换机.[0053]定义7.ForwardSet(S):交换机S所有下行端口的AFT记录的交换机MAC地址集合。即从工作机出发通过交换机S所能到达的所有交换机。[0054]定理:生成树中所有交换机的下行端口是完整的,且子网内交换机按照ForwardSet从小到大放入队列中。对于队[0055]首元素Sk,在队列中从Sk的位置后开始查找到第一个满足条件Aip(Sk)UForwardSet(Sk)的端口Sij,则此端口Sij与Skl直接相连(如果Sij与Skl通过Hub等哑节点相连也认为是直接相连)。根据此算法循环遍历得到对于交换机物理链路信息。判断物理链路已发现集合缓存中是否存在。如果不存在则加入物理链路已发现集合缓存中。[0056]8.1)算法发现完成。[0057]以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。【权利要求】1.一种综合型网络拓扑发现方法,其特征在于,包括以下的步骤:Stepl:初始化拓扑发现引擎,包括:初始化存放发现数据的缓存集合以及发现后产生的结果数据集合、初始化路由发现线程、初始化子网发现线程、初始化LLDP发现线程、初始化CDP发现线程、初始化设备发现线程、初始化拓扑监控线程、初始化设备入库线程。St印2:初始化之后,路由发现线程、子网发现线程、LLDP发现线程、CDP发现线程、单个设备发现线程、初始化拓扑监控线程,一起协同发现;Step3:以上线程协同发现得出“支持SNMP设备”、“不支持SNMP设备”、“子网与设备之间的链接关系”、“三层设备与三层设备之间的连接关系”;Step4:执行设备入库线程,根据“支持SNMP设备”、“不支持SNMP设备”、“子网与设备之间的链接关系”、“三层设备与三层设备之间的连接关系”的信息得出设备与设备的物理连接关系,结束发现。2.根据权利要求1所述的综合型网络拓扑发现方法,其特征在于,拓扑发现包括网段发现和全网发现。3.根据权利要求2所述的综合型网络拓扑发现方法,其特征在于,所述路由发现线程的操作步骤包括:(I)、检测路由,发现数据缓存集合内有IP设备;(2)、对该IP设备进行收集信息:system组、interface组、ipAddrTable组、ipRouteTable组、ipNetToMediaTable组;(3)、判断此设备是否支持⑶P、LLDP;(4)、当发现完成,把此IP设备加入到已发现路由集合中,并从正在发现集合中移除此IP设备。【文档编号】H04L12/751GK103905314SQ201210585556【公开日】2014年7月2日申请日期:2012年12月28日优先权日:2012年12月28日【发明者】彭小华,纪伟洁,车任秋申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1