CN105991334B - 一种网络拓扑自发现方法及装置 - Google Patents
一种网络拓扑自发现方法及装置 Download PDFInfo
- Publication number
- CN105991334B CN105991334B CN201510091239.9A CN201510091239A CN105991334B CN 105991334 B CN105991334 B CN 105991334B CN 201510091239 A CN201510091239 A CN 201510091239A CN 105991334 B CN105991334 B CN 105991334B
- Authority
- CN
- China
- Prior art keywords
- network
- active node
- equipment
- topology
- active
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种网络拓扑自发现方法及装置,所述方法包括:通过网络层拓扑发现方法搜索目标网络中的第一活动节点,并获取所述第一活动节点的网络拓扑信息;以及,通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息;根据获取的第一活动节点和第二活动节点的网络拓扑信息构建所述目标网络的网络拓扑结构。通过本发明提供的方法能够较全面的发现活动节点,并准确构建网络拓扑结构。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种网络拓扑自发现方法及装置。
背景技术
随着计算机网络技术的发展,网络规模不断扩大,复杂性不断增加,网络的异构性越来越高。一个网络往往由若干个大大小小的子网组成。如果没有一个高效的网络管理系统对网络进行维护和管理,将很难保证为广大用户提供令人满意的服务。网络拓扑不仅应用于网络管理,提高网络管理的质量和效率,还可应用于服务器定位,确定用户在网络中的位置等。
目前,网络拓扑发现方法包括网络层的拓扑发现方法和数据链路层拓扑发现方法,其中:
网络层拓扑发现方法例如基于IP(Inernet Protocol,互联网协议)地址的发现方法,例如基于SNMP协议(Simple Network Management Protocol,简单网络管理协议)的拓扑发现方法、基于ICMP协议(Internet Control Message Protocol,网络控制报文协议)的拓扑发现方法和基于ARP协议(Address Resolution Protocol,地址解析协议)的拓扑发现方法等。其中:
基于SNMP协议的拓扑发现方法的原理为:每个网络设备都有路由表,路由信息中包含有网络拓扑信息,该信息至少包括路由目的网络地址、目的网络的子网掩码、下一跳IP地址、对应的端口所有和路由协议类型等。由于路由表中的下一跳IP地址所标识的必然是具有路由功能的活动节点,因此从设定路由器开始,读取路由器的路由表,可以逐渐向下发现网络中所有基于路由功能的活动节点。再根据路由表的本地接口的索引标识,可找到接口表中对应的接口索引,由接口表的接口类型就可以了解到所在子网的类型,从而构建出整个网络的拓扑结构。但该方法需要网络设备支持SNMP协议,且该方法无法发现网络中没有配置IP地址的活动节点。
基于ICMP协议的拓扑发现方法的原理为:通过向网络设备发送ICMP报文,测试设备的可达性。该方法对一个网店内所有设备的网络IP地址一次执行ping操作,根据响应就可以发现当前该网段内所有活动的网络设备(即活动节点)。根据给定的IP区间逐一进行ping操作,根据结果,再对上一次操作记录的活动的IP地址逐一进行路由跟踪,记录下每一次路由跟踪的操作结果,最后分析所有的操作结果,从中得到网络的拓扑结构。该方法需要网络设备支持ICMP协议,且该方法同样无法发现网络中没有配置IP地址的活动节点。
基于ARP协议的拓扑发现方法的原理为:每个支持地址协议的网络设备中都维护有一张ARP表,该表记录了该设备连接的网络设备的IP地址和MAC地址的对应关系。利用ARP表,可以从一台已知的网络设备的ARP表发现其连接的其它活动节点,从这些先发现设备中区分出路由器和交换机,并继续跟进区分出的路由器和交换机的ARP表进行网络设备的发现,从而得到网络的拓扑结构。因为ARP表中的网络设备地址都是最近活动过的有效设备的IP地址,几乎没有冗余信息。但该方法需要网络设备支持地址协议,且该方法同样需要IP地址,无法发现网络中没有配置IP地址的活动节点。
相对于网络层拓扑发现方法,数据链路层拓扑发现方法由于适用于数据链路层,因此不需要IP地址,该方法例如基于STP协议(Spanning Tree Protocol,生成树协议)的拓扑发现方法和基于MAC(Media Access Control,介质访问控制)地址转发表的拓扑发现方法。其中:
基于STP协议的拓扑发现方法的原理为:该方法通过在交换域的交换机上配置STP协议后,按照"树"的结构构造网络的拓扑结构。树的根是一个称为根桥的设备,交换域中的交换机选举出根桥之后,除根桥之外的其余交换机都称为非根桥;然后,根桥定时发送包含了网桥配置信息的BPDU(Bridge Protocol Data Unit,网桥协议数据单元),非根桥根据该BPDU计算各自的每个端口到达根桥的最近距离,并选出距离根桥最近的端口为自己的根端口;最后,针对每一个网段选择出一个指定端口。此外,该方法进一步通过阻塞部分端口以消除冗余连接链路,从而形成单一的一棵生成树,从而确定交换域的拓扑结构。但该方法需要设备支持STP协议,对于不支持STP协议的活动节点无法发现。
基于MAC地址转发表的拓扑发现方法的原理为:MAC地址表的表项中包括MAC地址和与该MAC地址对应的端口。如果已知根交换机,则根据根交换机的MAC地址表可以求得根交换机的下行完全集,即与根交换机连接的网络设备,然后再根据根交换机的下行完全集中的每个网络设备,求个该网络设备的下行完全集,然后重复操作,直至求得交换机的拓扑结构。但MAC地址表并不能包括网络中的所有网络设备,而且MAC地址表还有老化机制。故此,该方法发现的活动节点有限,对于不在MAC地址表中的活动节点无法发现。
现有网络拓扑的自发现,均采用单一的网络管理协议或IP协议。而对于任一种协议,均需要网络设备的支持,才能发现该网络设备。在实际情况中,并非所有的网络设备都支持用于网络拓扑发现的协议,尤其对于网络层的拓扑发现不能发现没有配置IP地址的网络设备。故此,基于单一协议的网络拓扑发现的活动节点均受限制,从而导致网络的拓扑结构不够准确。
发明内容
本发明的目的是提供一种网络拓扑自发现方法及装置,以克服现有技术中网络拓扑发现活动的网络设备均受限制导致拓扑结构准确性低的问题。
一方面,本发明提供一种网络拓扑自发现方法,所述方法包括:
通过网络层拓扑发现方法搜索目标网络中的第一活动节点,并获取所述第一活动节点的网络拓扑信息;以及,
通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息;
根据获取的第一活动节点和第二活动节点的网络拓扑信息构建所述目标网络的网络拓扑结构。
其中,在一个实施例中,根据以下方法搜索目标网络中的第一活动节点:
当以下两种情况中的至少一种情况成立时,确定所述目标网络中的网络设备属于第一活动节点:
接收到源自该网络设备的IP地址的对发向该网络设备的ICMP ECHO报文的响应;或,
该网络设备的IP地址在所述目标网络的其它网络设备的ARP表或IP路由表中。
其中,在一个实施例中,所述根据获取的第一活动节点和第二活动节点的网络拓扑信息构建所述目标网络的网络拓扑结构,具体包括:
根据获取的第一活动节点和第二活动节点的网络拓扑信息,第一活动节点和第二活动节点中,属于同一网络实体的至少两个活动节点用一个活动节点表示,获得属于不同网络实体的各活动节点;
根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构。
其中,在一个实施例中,,所述获得属于不同网络实体的各活动节点之后,以及所述根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构之前,所述方法还包括:
根据属于不同网络实体的各活动节点的网络拓扑信息,将下一跳相同且位于同一子网的至少两个活动节点,作为一组疑似环形组网设备集合;
在任一疑似环形组网设备集合中,针对每个网络设备,获取该网络设备的MAC地址表;并
在获取的各MAC地址表中,查找与至少两个MAC地址存在对应关系的端口;
将查找到的端口中同属于一个VLAN(Virtual Local Area Network,虚拟局域网)的端口所在的网络设备,确定为属于同一环形组网的环形组网设备
其中,在一个实施例中,,所述通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息,具体包括:
基于STP协议或MAC地址转发表,搜索目标网络中的第二活动节点。
另一方面,本发明还提供一种网络拓扑自发现装置,所述装置包括:
网络层拓扑发现模块,用于通过网络层拓扑发现装置搜索目标网络中的第一活动节点,并获取所述第一活动节点的网络拓扑信息;
链路层拓扑发现模块,用于通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息;
拓扑构建模块,用于根据获取的第一活动节点和第二活动节点的网络拓扑信息构建所述目标网络的网络拓扑结构。
其中,在一个实施例中,所述网络层拓扑发现模块用于根据以下方法搜索目标网络中的第一活动节点:
当以下两种情况中的至少一种情况成立时,确定所述目标网络中的网络设备属于第一活动节点:
接收到源自该网络设备的IP地址的对发向该网络设备的ICMP ECHO报文的响应;或,
该网络设备的IP地址在所述目标网络的其它网络设备的ARP表或IP路由表中。
其中,在一个实施例中,所述拓扑构建模块,具体包括:
合并单元,用于根据获取的第一活动节点和第二活动节点的网络拓扑信息,第一活动节点和第二活动节点中,属于同一网络实体的至少两个活动节点用一个活动节点表示,获得属于不同网络实体的各活动节点;
构建单元,用于根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构。
其中,在一个实施例中,所述拓扑构建模块还包括:
疑似设备发现单元,用于所述合并单元获得属于不同网络实体的各活动节点之后,以及所述构建单元根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构之前,根据属于不同网络实体的各活动节点的网络拓扑信息,将下一跳相同且位于同一子网的至少两个活动节点,作为一组疑似环形组网设备集合;
获取单元,用于在任一疑似环形组网设备集合中,针对每个网络设备,获取该网络设备的MAC地址表;
查找单元,用于在获取的各MAC地址表中,查找与至少两个MAC地址存在对应关系的端口;
环形组网设备确定单元,用于将查找到的端口中同属于一个VLAN的端口所在的网络设备,确定为属于同一环形组网的环形组网设备。
其中,在一个实施例中,所述链路层拓扑发现模块,具体用于:
基于STP协议或MAC地址转发表,搜索目标网络中的第二活动节点。
本发明至少具有以下有益效果:通过合理利用网络层的网络拓扑发现方法,发现网络层的活动节点;并通过数据链路层的网络拓扑发现方法,发现数据链路层的活动节点,使得本发明实施例相比现有技术,能够准确发现较多的活动节点,有利于提高构建网络拓扑结构的准确性。其次,本发明实施例中,在发送活动节点支护,通过合并属于同一网络实体的活动节点,再进一步的发现环形组网的广播域网络,从而能够进一步提高构建网络拓扑结构的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
图1为本发明实施例中网络拓扑自发现方法的示例性流程图之一;
图2为本发明实施例中网络拓扑自发现方法的示例性流程图之二;
图3为本发明实施例中网络拓扑自发现装置的示意图之一;
图4为本发明实施例中网络拓扑自发现装置的示意图之二。
具体实施方式
以下结合附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
现有技术中,网络拓扑自发现的方法只能分析一些简单或单一的网络拓扑,而对于大型或具有多协议的复杂网络,则不能准确全面的发现网络中的活动节点,从而导致网络拓扑不够准确。
基于此,本发明实施例提供一种网络拓扑自发现方法,该方法中通过网络层拓扑发现方法搜索目标网络中的第一活动节点,并获取所述第一活动节点的网络拓扑信息;以及,通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息。合理使用网络层拓扑发现方法和数据链路层的拓扑发现方法,从而能够发现目标网络中处于网络层和数据链路层的活动节点,相比现有技术能够准确发现更多的节点,从而能够构建更加准确的网络拓扑结构。
此外,当同时使用网络层拓扑发现方法和数据链路层网络拓扑发现方法时,根据这两种网络拓扑发现方法的原理,容易对同一网络实体多次识别,而且具有多IP的网络设备也容易被认定为属于不同网络实体的网络设备,故此,本发明实施例中,通过将属于同一网络实体的网络设备合并,从而提高够将网络拓扑结构的准确性。
再者,现有技术中,若至少两个网络设备在路由器中的下一跳均相同,一般会认为这些网络设备的拓扑结构为星形。而在实际情况中,环形组网的广播域网络,在路由器中的下一跳也会相同,而现有技术却无法分辨环形组网,导致环形组网的广播域网络的拓扑结构错误。对比,本发明实施例中,通过设定判定条件,找出环形组网的网络设备,使得环形组网的网络设备的拓扑结构和实际相符,从而进一步提高构建网络拓扑结构的准确性。
下面将通过具体的实施例,详尽地对本发明实施例提供的网络拓扑自发现方法进行说明。
实施例一
如图1所示,为本发明实施例中的网络拓扑自发现方法的示例性流程图,该方法包括以下步骤:
步骤101:通过网络层拓扑发现方法搜索目标网络中的第一活动节点,并获取所述第一活动节点的网络拓扑信息。
步骤102:通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息。
需要说明的是,步骤101和步骤102的执行顺序不受限。
步骤103:根据获取的第一活动节点和第二活动节点的网络拓扑信息构建所述目标网络的网络拓扑结构。
下面对上述各步骤进行详细说明,其中:
1)、在步骤101中:
可以根据以下方法搜索目标网络中的第一活动节点:具体的,当以下两种情况中的至少一种情况成立时,确定所述目标网络中的网络设备属于第一活动节点:
情况一:接收到源自该网络设备的IP地址的对发向该网络设备的ICMP ECHO报文的响应。
其中,该网络拓扑自发现方法,是基于ICMP协议的。具体实施时,可以向目标网络中的各IP地址发送ICMP ECHO报文,当接收到一IP地址对该ICMP ECHO报文的响应时,则可以确定有响应的IP地址所属的网络设备为活动节点,由于是通过网络层拓扑发现方法发现的该网络设备,故此,该网络设备属于第一活动节点。
情况二:该网络设备的IP地址在所述目标网络的其它网络设备的ARP表或IP路由表中。
具体的,目标网络中部分网络设备维护有各自的ARP表,由于该ARP表中存储有近期活动过的网络设备的IP地址,则可以获取目标网络中的各网络设备的ARP表。若当一IP地址在ARP表中时,则可以确定该IP地址所属的网络设备为活动节点,由于是通过网络层拓扑发现方法发现的该网络设备,故此,该网络设备属于第一活动节点。
目标网络中部分网络设备维护有各自的IP路由表,由于该IP路由表中存储有近期活动过的网络设备的IP地址,则可以获取目标网络中的各网络设备的IP路由表。若当一IP地址在IP路由表中时,则可以确定该IP地址所属的网络设备为活动节点,由于是通过网络层拓扑发现方法发现的该网络设备,故此,该网络设备属于第一活动节点。
较佳的,具体实施时,为了能够较全面的发现第一活动节点,可以同时获取目标网络中的ARP表和IP路由表,只要IP地址在获取的ARP表和IP路由表的至少一个表中时,则该IP地址所属的网络设备属于第一活动节点。
需要说明的是,网络层的网络拓扑自发现方法不限于上述提及的基于ICMP协议和ARP协议的网络拓扑自发现方法,还可以使用其它的应用于网络层的网络拓扑自发现方法,本发明对此不做限定。
2)、在步骤103中:
为了能够去除冗余信息,准确构建网络拓扑结构,步骤103可具体包括以下步骤:
步骤A1:根据获取的第一活动节点和第二活动节点的网络拓扑信息,第一活动节点和第二活动节点中,属于同一网络实体的至少两个活动节点(包括第一活动节点和\或第二活动节点,下同)用一个活动节点表示,获得属于不同网络实体的各活动节点。
步骤A2:根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构。
其中,在步骤A1中,可以通过以下方法中的任一方法或结合,确定哪些活动节点属于同一网络实体:
方法一:一台设备虽然有多个IP地址,但主机名却只有一个。故此,可以获取与各IP地址对应的主机名,当至少两个IP地址对应的主机名相同时,则可以认为这至少两个IP地址对应的活动节点,属于同一网络实体。
方法二:根据路由跟踪技术TRACROUTE,由于路由器在转发包之前总是将其TTL值减一,如果TTL值降为0,则路由器向源地址发送TTL-Expired ICMP消息。故此,根据这一特性,从同一设备开始的,到达至少两个IP地址对应的活动节点的TTL值相等且TRACROUTE所经过的路径相同时,则可以确定这至少两个IP地址对应的活动节点,属于同一网络实体。
方法三:具有IP地址的探测设备B向路由器A的一个接口发送一个未使用端口号的UDP数据包,路由器A会对这个UDP数据包回应一个ICMP端口不可达的ICMP差错报文,并通过路由器A上的一个接口将该报文发送给探测设备B。其中,该报文的源IP地址为用于输出该报文的接口的IP地址。探测设备B把发送的UDP数据包的目的IP地址和接收到的ICMP差错报文的源IP地址进行比较,如果这两个IP地址不同,则确定这两个地址对应的活动节点是属于同一网络实体。
对于上述方法二,但该方法对一些特殊的组网结构并不能准确的确定至少两个活动节点是否属于同一网络实体,例如对于属于同一网络的环形组网的至少两个活动节点,这至少两个活动节点的TTL值相等且TRACROUTE所经过的路径相同,但实际并非属于同一网络实体。故此,为准确的确定哪些活动节点属于同一网络实体,可以通过以下方式结合使用上述三种方法,以提高确定属于同一网络实体的各活动节点的效率,具体的,包括以下步骤:
步骤B1:获取目标网络中的各IP地址,及与各IP地址对应的主机名。
步骤B2:针对任一IP地址对应的活动节点,向该活动节点发送未使用端口号的UDP数据包,并接收该活动节点回应的ICMP差错报文。
步骤B3:根据接收到的ICMP差错报文,判断该报文的源IP地址与UDP数据包的目的IP地址是否相同,若是,执行步骤B4,若否,则执行步骤B6。
步骤B4:任选一个设备为起始设备,针对至少两个IP地址,判断从起始设备到达这至少两个IP地址的TTL值和TRACROUTE所经过的路径是否均相同,若是,则执行步骤B5,若否,则执行步骤B7。
步骤B5:针对至少两个IP地址,判断这至少两个IP地址对应的活动节点的主机名是否相同,若是,则执行步骤B6,若否,则执行步骤B7。
步骤B6:确定至少两个IP地址对应的活动节点属于同一网络实体。
步骤B7:确定至少两个IP地址对应的活动节点不属于同一网络实体。
此外,在一个实施例中,为了准确发现环形组网的广播域网络,在本发明实施例中,在执行步骤A1之后,和执行步骤A2之前,根据以下方法确定环形组网的广播域网络中的环形组网设备,具体包括以下步骤:
步骤C1:根据属于不同网络实体的各活动节点的网络拓扑信息,将下一跳相同且位于同一子网的至少两个活动节点,作为一组疑似环形组网设备集合。
其中,对于每一个疑似环形组网设备集合,都执行以下步骤C2-步骤C4的操作。
步骤C2:在任一疑似环形组网设备集合中,针对每个网络设备,获取该网络设备的MAC地址表。
步骤C3:在获取的各MAC地址表中,查找与至少两个MAC地址存在对应关系的端口。
其中,该步骤中,即不同MAC地址对应同一端口。
步骤C4:将查找到的端口中同属于一个VLAN的端口所在的网络设备,确定为属于同一环形组网的环形组网设备。
其中,在步骤C4中,例如,对疑似环形组网设备集合A执行完步骤C3后,在疑似环形组网设备集合A中查找到10个满足条件的端口(该条件即与至少两个MAC地址存在对应关系)。在这10个端口中,若4个端口同属于VLAN1,那么这4个端口所在的网络设备属于VLAN1的环形组网设备,从而可以构建这4个网络设备的网络拓扑为环形;若其余6个端口同属于VLAN2,那么这6个端口所在的网络设备属于VLAN2的环形组网设备,可以构建这6个网络设备的网络拓扑为环形。
通过发现同一子网下的环形组网设备,由此可以构建出同一子网下的广播域网络的环形拓扑结构。
3)、在步骤102中:
步骤102可具体包括:基于STP协议或MAC地址转发表,搜索目标网络中的第二活动节点。较佳的,当目标网络中的网络设备支持STP协议时,可以通过STP协议发现该网络设备;否则可以通过基于MAC地址转发表的网络拓扑发现方法发现该网络设备。
综上,本发明实施例中,通过合理利用网络层的网络拓扑发现方法,发现网络层的活动节点;并通过数据链路层的网络拓扑发现方法,发现数据链路层的活动节点,使得本发明实施例相比现有技术,能够准确发现较多的活动节点,有利于提高构建网络拓扑结构的准确性。其次,本发明实施例中,在发送活动节点之后,通过合并属于同一网络实体的活动节点,再进一步的发现环形组网的广播域网络,从而能够进一步提高构建网络拓扑结构的准确性。
实施例二
下面以一个具体的进行网络拓扑自发现的方法为例,对本发明实施例提供的网络拓扑自发现的方法进行说明,如图2所示,该方法包括以下步骤:
步骤201:选择一个种子节点作为搜索目标网络中的活动节点的起点。
较佳的,该种子节点具有IP地址。
较佳的,目标网络可以按照IP地址网段的范围进行确定。
步骤202:向目标网络中的各IP地址发送ICMP ECHO报文,当接收到一IP地址对该ICMP ECHO报文的响应时,确定该IP地址对应的网络设备属于第一活动节点。
步骤203:获取目标网络中的各网络设备的ARP表和IP路由表,确定ARP表中的IP地址对应的网络设备属于第一活动节点,并确定IP路由表中的IP地址对应的网络设备属于第一活动节点。
步骤204:基于STP协议或MAC地址转发表,搜索目标网络中的第二活动节点。
其中,步骤202-步骤204的执行顺序不受限。
步骤205:根据获取的第一活动节点和第二活动节点的网络拓扑信息,第一活动节点和第二活动节点中,属于同一网络实体的至少两个活动节点用一个活动节点表示,获得属于不同网络实体的各活动节点。
步骤206:根据属于不同网络实体的各活动节点的网络拓扑信息,将下一跳相同且位于同一子网的至少两个活动节点,作为一组疑似环形组网设备集合。
步骤207:在任一疑似环形组网设备集合中,针对每个网络设备,获取该网络设备的MAC地址表。
步骤208:在获取的各MAC地址表中,查找与至少两个MAC地址存在对应关系的端口。
步骤209:将查找到的端口中同属于一个VLAN的端口所在的网络设备,确定为属于同一环形组网的环形组网设备。
步骤210:根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构,并构建出环形组网的环形组网设备的网络拓扑结构。
综上,本发明实施例中,通过多种网络拓扑发现方法发现较多的活动节点,并将属于同一网络实体的活动节点合并,然后,通过确定出环形组网设备,从而能够相对现有技术较为准确的构建目标网络的网络拓扑结构。
实施例三
基于同发明构思,本发明实施例还提供一种网络拓扑自发现装置,如图3所示,所述装置包括:
网络层拓扑发现模块301,用于通过网络层拓扑发现装置搜索目标网络中的第一活动节点,并获取所述第一活动节点的网络拓扑信息;
链路层拓扑发现模块302,用于通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息;
拓扑构建模块303,用于根据获取的第一活动节点和第二活动节点的网络拓扑信息构建所述目标网络的网络拓扑结构。
其中,在一个实施例中,所述网络层拓扑发现模块用于根据以下方法搜索目标网络中的第一活动节点:
当以下两种情况中的至少一种情况成立时,确定所述目标网络中的网络设备属于第一活动节点:
接收到源自该网络设备的IP地址的对发向该网络设备的ICMP ECHO报文的响应;或,
该网络设备的IP地址在所述目标网络的其它网络设备的ARP表或IP路由表中。
其中,在一个实施例中,如图4所示,所述拓扑构建模块303,具体包括:
合并单元304,用于根据获取的第一活动节点和第二活动节点的网络拓扑信息,第一活动节点和第二活动节点中,属于同一网络实体的至少两个活动节点用一个活动节点表示,获得属于不同网络实体的各活动节点;
构建单元305,用于根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构。
其中,在一个实施例中,如图4所示,所述拓扑构建模块还包括:
疑似设备发现单元306,用于所述合并单元获得属于不同网络实体的各活动节点之后,以及所述构建单元根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构之前,根据属于不同网络实体的各活动节点的网络拓扑信息,将下一跳相同且位于同一子网的至少两个活动节点,作为一组疑似环形组网设备集合;
获取单元307,用于在任一疑似环形组网设备集合中,针对每个网络设备,获取该网络设备的MAC地址表;
查找单元308,用于在获取的各MAC地址表中,查找与至少两个MAC地址存在对应关系的端口;
环形组网设备确定单元309,用于将查找到的端口中同属于一个VLAN的端口所在的网络设备,确定为属于同一环形组网的环形组网设备。
其中,在一个实施例中,所述链路层拓扑发现模块302,具体用于:基于STP协议或MAC地址转发表,搜索目标网络中的第二活动节点。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种网络拓扑自发现方法,其特征在于,所述方法包括:
通过网络层拓扑发现方法搜索目标网络中的第一活动节点,并获取所述第一活动节点的网络拓扑信息;以及,
通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息;
根据获取的第一活动节点和第二活动节点的网络拓扑信息,第一活动节点和第二活动节点中,属于同一网络实体的至少两个活动节点用一个活动节点表示,获得属于不同网络实体的各活动节点;
根据属于不同网络实体的各活动节点的网络拓扑信息,将下一跳相同且位于同一子网的至少两个活动节点,作为一组疑似环形组网设备集合;
在任一疑似环形组网设备集合中,针对每个网络设备,获取该网络设备的MAC地址表;并,
在获取的各MAC地址表中,查找与至少两个MAC地址存在对应关系的端口;
将查找到的端口中同属于一个VLAN的端口所在的网络设备,确定为属于同一环形组网的环形组网设备;
根据属于不同网络实体的各活动节点的网络拓扑信息以及确定的环形组网设备,构建所述目标网络的网络拓扑结构,并构建出环形组网的环形组网设备的网络拓扑结构。
2.根据权利要求1所述的方法,其特征在于,根据以下方法搜索目标网络中的第一活动节点:
当以下两种情况中的至少一种情况成立时,确定所述目标网络中的网络设备属于第一活动节点:
接收到源自该网络设备的IP地址的对发向该网络设备的ICMP ECHO报文的响应;或,
该网络设备的IP地址在所述目标网络的其它网络设备的ARP表或IP路由表中。
3.根据权利要求1所述的方法,其特征在于,所述通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息,具体包括:
基于STP协议或MAC地址转发表,搜索目标网络中的第二活动节点。
4.一种网络拓扑自发现装置,其特征在于,所述装置包括:
网络层拓扑发现模块,用于通过网络层拓扑发现装置搜索目标网络中的第一活动节点,并获取所述第一活动节点的网络拓扑信息;
链路层拓扑发现模块,用于通过数据链路层拓扑发现方法搜索所述目标网络中的第二活动节点,并获取所述第二活动节点的网络拓扑信息;
合并模块,用于根据获取的第一活动节点和第二活动节点的网络拓扑信息,第一活动节点和第二活动节点中,属于同一网络实体的至少两个活动节点用一个活动节点表示,获得属于不同网络实体的各活动节点;
疑似设备发现模块,用于所述合并模块获得属于不同网络实体的各活动节点之后,以及根据属于不同网络实体的各活动节点的网络拓扑信息,构建所述目标网络的网络拓扑结构之前,根据属于不同网络实体的各活动节点的网络拓扑信息,将下一跳相同且位于同一子网的至少两个活动节点,作为一组疑似环形组网设备集合;
获取模块,用于在任一疑似环形组网设备集合中,针对每个网络设备,获取该网络设备的MAC地址表;
查找模块,用于在获取的各MAC地址表中,查找与至少两个MAC地址存在对应关系的端口;
环形组网设备确定模块,用于将查找到的端口中同属于一个VLAN的端口所在的网络设备,确定为属于同一环形组网的环形组网设备;
拓扑构建模块,用于根据属于不同网络实体的各活动节点的网络拓扑信息以及确定的环形组网设备,构建所述目标网络的网络拓扑结构,并构建出环形组网的环形组网设备的网络拓扑结构。
5.根据权利要求4所述的装置,其特征在于,所述网络层拓扑发现模块用于根据以下方法搜索目标网络中的第一活动节点:
当以下两种情况中的至少一种情况成立时,确定所述目标网络中的网络设备属于第一活动节点:
接收到源自该网络设备的IP地址的对发向该网络设备的ICMP ECHO报文的响应;或,
该网络设备的IP地址在所述目标网络的其它网络设备的ARP表或IP路由表中。
6.根据权利要求4所述的装置,其特征在于,所述链路层拓扑发现模块,具体用于:
基于STP协议或MAC地址转发表,搜索目标网络中的第二活动节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510091239.9A CN105991334B (zh) | 2015-02-28 | 2015-02-28 | 一种网络拓扑自发现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510091239.9A CN105991334B (zh) | 2015-02-28 | 2015-02-28 | 一种网络拓扑自发现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105991334A CN105991334A (zh) | 2016-10-05 |
CN105991334B true CN105991334B (zh) | 2019-07-05 |
Family
ID=57037901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510091239.9A Active CN105991334B (zh) | 2015-02-28 | 2015-02-28 | 一种网络拓扑自发现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105991334B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411603A (zh) * | 2016-10-26 | 2017-02-15 | 山东浪潮商用系统有限公司 | 一种内网网络拓扑结构自动发现的实现方法 |
CN106789325B (zh) * | 2017-01-10 | 2020-02-14 | 北京市天元网络技术股份有限公司 | 一种网络组建方案的自动配置方法及系统 |
CN107276829A (zh) * | 2017-07-26 | 2017-10-20 | 广东电网有限责任公司电力科学研究院 | 基于地址解析协议的电力系统的网络拓扑获取方法和系统 |
CN107483344A (zh) * | 2017-07-26 | 2017-12-15 | 广东电网有限责任公司电力科学研究院 | 基于控制报文协议的电力系统的网络拓扑获取方法和系统 |
CN109981329A (zh) * | 2017-12-28 | 2019-07-05 | 华为终端有限公司 | 确定网络设备连接关系的方法、设备及系统 |
CN110247784B (zh) * | 2018-03-07 | 2023-09-26 | 北京京东尚科信息技术有限公司 | 确定网络拓扑结构的方法和装置 |
CN108900318A (zh) * | 2018-05-23 | 2018-11-27 | 南京南瑞继保工程技术有限公司 | 一种网络拓扑的确定方法及计算机可读存储介质 |
CN109361596B (zh) * | 2018-10-26 | 2021-07-06 | 新华三技术有限公司合肥分公司 | 路由计算方法、装置及电子设备 |
CN109842520B (zh) * | 2018-12-27 | 2021-06-22 | 华为技术有限公司 | 网络拓扑的确定方法、装置及系统 |
CN110022219B (zh) * | 2019-04-12 | 2021-09-24 | 深圳市网心科技有限公司 | 一种网络集群探测方法、系统及电子设备和存储介质 |
CN111130881B (zh) * | 2019-12-25 | 2022-11-01 | 杭州迪普科技股份有限公司 | 网络拓扑发现方法及装置 |
CN111343021B (zh) * | 2020-02-27 | 2022-08-12 | 中国移动通信集团江苏有限公司 | 网络拓扑结构的生成方法、装置、设备及介质 |
CN111786811B (zh) * | 2020-05-25 | 2022-07-08 | 福建中锐电子科技有限公司 | 一种便携式现场电子数据取证终端与装置 |
CN114553706B (zh) * | 2020-11-18 | 2023-09-19 | 中国移动通信集团广东有限公司 | 网络拓扑发现方法、装置及电子设备 |
CN114465907B (zh) * | 2022-03-17 | 2023-07-18 | 中国联合网络通信集团有限公司 | 网络拓扑发现方法、设备及存储介质 |
CN114944982A (zh) * | 2022-06-02 | 2022-08-26 | 合肥卓讯云网科技有限公司 | 一种二三层网络问题的定位方法和装置 |
CN117978647A (zh) * | 2022-10-26 | 2024-05-03 | 大唐移动通信设备有限公司 | 一种网络节点信息维护方法、设备、装置及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873229B (zh) * | 2010-06-24 | 2013-02-27 | 东软集团股份有限公司 | 基于snmp的网络拓扑发现方法及装置 |
CN101924677B (zh) * | 2010-09-15 | 2012-04-18 | 杭州华三通信技术有限公司 | 一种网络设备的唯一识别方法和设备 |
CN102143007A (zh) * | 2011-05-03 | 2011-08-03 | 中国南方电网有限责任公司 | 基于分布式的多级网络拓扑发现方法 |
CN102420721B (zh) * | 2011-11-30 | 2015-04-22 | 瑞斯康达科技发展股份有限公司 | 一种环路检测方法及装置 |
EP2929452A4 (en) * | 2012-12-04 | 2016-07-13 | Plexxi Inc | METHOD AND DEVICE FOR CONNECTIVITY CONTROL IN A DATA CENTER NETWORK |
CN103036725B (zh) * | 2012-12-17 | 2015-08-19 | 华为技术有限公司 | 一种网络拓扑发现的方法和网络管理设备 |
-
2015
- 2015-02-28 CN CN201510091239.9A patent/CN105991334B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105991334A (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105991334B (zh) | 一种网络拓扑自发现方法及装置 | |
JP7108674B2 (ja) | 故障根本原因決定方法及び装置並びにコンピュータ記憶媒体 | |
US10505804B2 (en) | System and method of discovering paths in a network | |
CN113169891B (zh) | 通过软件定义的操作管理及维护来识别和解决结构网络中的算法问题 | |
Cerroni et al. | Intent-based management and orchestration of heterogeneous openflow/IoT SDN domains | |
CN102143007A (zh) | 基于分布式的多级网络拓扑发现方法 | |
ES2620082T3 (es) | Identificación de rutas tomadas a través de una red de dispositivos interconectados | |
CN107135159B (zh) | 一种sdn网络中最优路径确定的方法和系统 | |
DK2286554T3 (en) | Use of an STP (Spanning Tree Protocol) for improving the layer-2-netværkstopologikort | |
ES2617196T3 (es) | Identificación de rutas en una red de dispositivos de enrutamiento/conmutación mezclados | |
ES2709977T3 (es) | Bucles de ejecución | |
CN113452561B (zh) | 一种拓扑生成方法、装置、设备及可读存储介质 | |
JP5234544B2 (ja) | ネットワーク構成情報取得方法および装置 | |
CN104579978B (zh) | 一种动态网络链路层拓扑发现方法 | |
CN105637806B (zh) | 网络拓扑确定方法和装置、集中式网络状态信息存储设备 | |
CN100407635C (zh) | 在网络中高效查找网络设备地址的方法 | |
CN102075364B (zh) | 一种直连链路的确定方法和设备 | |
CN114244763B (zh) | 基于规则引擎的动态网络拓扑管理方法及其系统 | |
Akande et al. | Limitations of passively mapping logical network topologies | |
US11438237B1 (en) | Systems and methods for determining physical links between network devices | |
Andreev et al. | An algorithm for building an enterprise network topology using widespread data sources | |
Ma et al. | An algorithm of physical network topology discovery in multi-VLANs | |
CN106411748B (zh) | 跨网络的动态拓扑维护方法 | |
Dong et al. | A novel algorithm of IPv6 network topology discovery for campus network | |
US20170366391A1 (en) | Network Event Locus Descriptor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |