CN103905251B - 网络拓扑获取方法及装置 - Google Patents

网络拓扑获取方法及装置 Download PDF

Info

Publication number
CN103905251B
CN103905251B CN201410128156.8A CN201410128156A CN103905251B CN 103905251 B CN103905251 B CN 103905251B CN 201410128156 A CN201410128156 A CN 201410128156A CN 103905251 B CN103905251 B CN 103905251B
Authority
CN
China
Prior art keywords
interface
network
arp
network equipment
address
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
CN201410128156.8A
Other languages
English (en)
Other versions
CN103905251A (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.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201410128156.8A priority Critical patent/CN103905251B/zh
Publication of CN103905251A publication Critical patent/CN103905251A/zh
Application granted granted Critical
Publication of CN103905251B publication Critical patent/CN103905251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请公开了一种网络拓扑获取方法及装置,其中,该方法包括:获取本网管设备管理的每一个网络设备上的每一个接口学习到的IP地址信息,以及该接口的IP地址信息;根据获取到的信息,获取管理的所有网络设备组成的网络拓扑;其中,获取管理的所有网络设备组成的网络拓扑的方法包括:根据获取到的接口的IP地址信息,将各个网络设备及其上的接口划分到至少一个子网中;根据获取到的接口学习到的IP地址信息,采用由外向内逐层删除边缘网络设备的方法,并行地计算出各个子网的网络拓扑;将计算得到的所有子网的网络拓扑进行合并,得到所有网络设备组成的网络拓扑。

Description

网络拓扑获取方法及装置
技术领域
本申请涉及网络管理技术领域,特别涉及一种网络拓扑获取方法及装置。
背景技术
网络管理(Network Management)是指网络管理员通过网络管理程序对网络上的资源进行集中化管理的操作,包括配置管理、性能和记账管理、问题管理、操作管理和变化管理等。网络管理通常简称为网管。网络拓扑的展示功能是网络管理程序的一个重要功能特性。网络拓扑不但能够直观地体现出物理设备之间的真实连接状态,而且能够实时地反映出网络的性能以及告警状态,极大地方便了对故障设备的定位分析。
根据计算拓扑时所依赖的数据来源,可以将网络拓扑分为IP(InternetProtocol,因特网协议)拓扑和二层拓扑两种。其中,IP拓扑主要依赖LLDP(Link LayerDiscovery Protocol,链路层发现协议)、STP(Spanning Tree Protocol,生成树协议)等相关协议自身的特性,来计算网络拓扑;而二层拓扑主要依靠接口MAC(Media AccessControl,媒体访问控制)地址表的内容,计算不同设备的接口之间的连接状态。
目前,如图1所示,计算网络拓扑的方法主要包括以下步骤:
步骤S102,网管设备(即安装有网络管理程序的设备)直接向所管理的每一个网络设备获取该设备上的ARP(Address Resolution Protocol,地址解析协议)表和该设备上的各个接口的IP地址信息;
步骤S104,网管设备根据获取到的ARP表的内容和IP地址信息,针对每一个网络设备上的每一个接口,计算该接口的连接状态,包括:与哪个网络设备上的哪个接口连接;
步骤S106,网管设备根据所有网络设备上的所有接口的连接状态,绘制网络拓扑。
但是上述方法存在以下问题:在现有的计算网络拓扑的方法中,需要逐个网络设备逐个接口的计算接口连接状态,计算所需时间较长,计算效率较低。
发明内容
本申请提供了一种网络拓扑获取方法及装置,旨在解决现有技术中存在的网管设备计算网络拓扑所需时间较长,计算效率较低的问题。
本申请的技术方案如下:
一方面,提供了一种网络拓扑获取方法,该方法应用于网管设备,该方法包括:
获取本网管设备管理的每一个网络设备上的每一个接口学习到的IP地址信息,以及该接口的IP地址信息;
根据获取到的信息,获取管理的所有网络设备组成的网络拓扑;其中,获取管理的所有网络设备组成的网络拓扑的方法包括:
根据获取到的接口的IP地址信息,将各个网络设备及其上的接口划分到至少一个子网中;
根据获取到的接口学习到的IP地址信息,采用由外向内逐层删除边缘网络设备的方法,并行地计算出各个子网的网络拓扑;
将计算得到的所有子网的网络拓扑进行合并,得到所有网络设备组成的网络拓扑。
另一方面,提供了一种网络拓扑获取装置,该装置应用于网管设备,该装置包括:
获取模块,用于获取本网管设备管理的每一个网络设备上的每一个接口学习到的IP地址信息,以及该接口的IP地址信息;
拓扑计算模块,用于根据获取模块获取到的信息,获取本网管设备管理的所有网络设备组成的网络拓扑;其中,拓扑计算模块包括:子网划分单元、子网拓扑计算单元和合并单元,其中:
子网划分单元,用于根据获取模块获取到的接口的IP地址信息,将各个网络设备及其上的接口划分到至少一个子网中;
子网拓扑计算单元,用于根据获取模块获取到的接口学习到的IP地址信息,采用由外向内逐层删除边缘网络设备的方法,并行地计算出子网划分单元划分得到的各个子网的网络拓扑;
合并单元,用于将子网拓扑计算单元计算得到的所有子网的网络拓扑进行合并,得到所有网络设备组成的网络拓扑。
本申请的以上技术方案中,先将全网拆分成至少一个子网,并行地计算各个子网的网络拓扑,最后将所有子网的网络拓扑合并得到全网的网络拓扑,由于各个子网的网络拓扑是并行计算的,因此,极大地提高了计算效率,节省了计算时间;而且,在计算子网的网络拓扑时,采用由外向内逐层删除边缘网络设备的方法进行计算,从而,采用了类似剪枝的方法将边缘设备找到并从待计算的网络设备中删除,极大地加快了网络拓扑的计算过程。
附图说明
图1是现有技术中计算网络拓扑的方法的流程图;
图2是本申请实施例一的网络拓扑获取方法的流程图;
图3是本申请实施例二的一种实际网络拓扑图;
图4是本申请实施例二的子网1中的网络设备及其接口的示意图;
图5是本申请实施例二的子网2中的网络设备及其接口的示意图;
图6是本申请实施例二的子网3中的网络设备及其接口的示意图;
图7是本申请实施例二的计算出的子网2中部分接口之间的连接关系图;
图8是本申请实施例二的计算出的子网2的网络拓扑图;
图9是本申请实施例二的计算出的子网1的网络拓扑图;
图10是本申请实施例二的计算出的子网3的网络拓扑图;
图11是本申请实施例三的网络拓扑获取装置的结构示意图。
具体实施方式
为了解决现有技术中存在的网管设备计算网络拓扑所需时间较长,计算效率较低的问题,本申请以下实施例中提供了一种网络拓扑获取方法,以及一种可以应用该方法的装置。
实施例一
本申请实施例的网络拓扑获取方法,由网管设备来执行。如图2所示,该方法包括以下步骤S202~S204:
步骤S202,获取本网管设备管理的每一个网络设备上的每一个接口学习到的IP地址信息,以及该接口的IP地址信息;其中,IP地址信息包括:IP地址和掩码。
在实际实施过程中,网管设备可以通过获取每一个网络设备上的ARP表,来获取该网络设备上的每一个接口学习到的IP地址信息。网管设备可以通过SNMP(Simple NetworkManagement Protocol,简单网络管理协议)或者CLI(command line interface,命令行接口)方式,获取每一个网络设备上的ARP表和该网络设备上的每一个接口的IP地址信息。
在现有技术中,网络设备上的ARP表中的表项是由数据报文触发创建和刷新的,即,网络设备1上的接口1接收到网络设备2上的接口2发来的首个数据报文后,在本地的ARP表中创建一表项,其中,该表项中包括:该数据报文的源IP地址(即网络设备2上的接口2的IP地址)、该数据报文的源MAC地址(即网络设备2上的接口2的MAC地址)和网络设备1上的接口1的接口ID(标识),并为该表项设置老化计数器并开启,如果老化计数器的老化时间到达之前,网络设备1上的接口1没有再收到网络设备2上的接口2发来的数据报文,则会将该表项删除,如果收到了,则刷新该老化计数器使其重新计时。这样,网络设备的ARP表中的某些表项可能会由于老化而被删除,从而导致网管设备对于某些接口的连接状态无法计算出来,得到的网络拓扑是不准确的。即,现有技术中网管设备计算得到的网络拓扑不准确。
为了解决现有技术中网管设备计算得到的网络拓扑不准确的问题,在步骤S202中,获取本网管设备管理的每一个网络设备上的每一个接口学习到的IP地址信息的方法可以采用以下方法之一:
方法一:
步骤11:网管设备向每一个网络设备发送免费ARP功能使能命令,以使得每一个网络设备上的每一个接口均使能免费ARP功能,使用免费ARP功能,周期性地更新本网络设备上的ARP表;
步骤12:网管设备获取每一个网络设备上的ARP表。
在实际实施过程中,管理员可以在网管设备上输入如表1所示的操作命令,网络设备接收到如表1所示的操作命令后,就会向所管理的每一个网络设备发送免费ARP(Gratuitous ARP)功能使能命令。
表1
网络设备接收到网管设备发来的免费ARP功能使能命令之后,会在本设备的每一个接口上使能免费ARP功能,包括:免费ARP报文学习功能,周期性地发送免费ARP报文的功能。在使能了上述功能之后,网络设备的每一个接口会按照一定时间间隔周期性地发送免费ARP报文,其中,该免费ARP报文中携带的发送端IP地址和目标IP地址都是该接口的IP地址,源MAC地址是该接口的MAC地址,目的MAC地址是广播地址,由于目的MAC地址是广播地址,最终该免费ARP报文会到达该接口所属的整个子网内;同一子网内的其它网络设备接口收到该免费ARP报文后,由于使能了免费ARP报文学习功能,会根据该免费ARP报文中携带的发送端IP地址和源MAC地址创建和更新本地的ARP表。
方法二:
步骤21:网管设备周期性地扫描每一个网络设备上的每一个接口的IP地址,以使得每一个网络设备周期性地更新本网络设备上的ARP表;
步骤22:网管设备获取每一个网络设备上的ARP表。
在步骤21中,网管设备可以采用ping(Packet Internet Groper,因特网包探索器)的方式来扫描每一个网络设备上的每一个接口的IP地址。
例如,网管设备周期性地发送ICMP请求报文(echo)给各个子网内的每一个IP地址,或者,周期性地发送ICMP请求报文给每一个网络设备上的每一个接口的IP地址;目的网络设备上的一接口(记为接口1)接收到该ICMP请求报文之后,会回复ICMP请求应答报文(echoreply)给网管设备,其中,该ICMP请求应答报文中携带有接口1的IP地址和MAC地址,途径的网络设备接收到该ICMP请求应答报文后会根据该报文中携带的接口1的IP地址和MAC地址创建和更新本地的ARP表。
通过上述方法一和方法二,每一个网络设备可以及时更新ARP表,防止了某些ARP表项因老化而被删除,最终达到了保持ARP表中的有效数目的目的。从而,网管设备获取到的每一个网络设备上的ARP表也是完整和准确的。
其中,ARP表的格式可以参见表2所示:
表2
步骤S204,根据在步骤S202中获取到的信息,获取管理的所有网络设备组成的网络拓扑。
为了解决现有技术中存在的网管设备计算网络拓扑所需时间较长,计算效率较低的问题,本申请实施例的步骤S204中获取管理的所有网络设备组成的网络拓扑的方法采用以下步骤S302~S306:
步骤S302,根据获取到的接口的IP地址信息,将各个网络设备及其上的接口划分到至少一个子网中;
具体的,根据获取到的每一个网络设备上的每一个接口的IP地址和掩码,确定该接口的网络地址;将网络地址相同的接口及其所在的网络设备划分到同一子网中,得到至少一个子网;即,将所有网络设备组成的全网划分成至少一个子网。
其中,确定接口的网络地址的方法是:将接口的IP地址与掩码相与,得到该接口的网络地址。
步骤S304,根据获取到的接口学习到的IP地址信息,采用由外向内逐层删除边缘网络设备的方法,并行地计算出各个子网的网络拓扑;
在步骤S304中,并行地计算出各个子网的网络拓扑的方法包括以下步骤S402~S404:
步骤S402,根据划分得到的子网,将获取到的所有ARP表汇总成至少一个ARP总表,其中,ARP总表与子网一一对应,每一个ARP总表的每一个表项中包括:IP地址、学习到该IP地址的接口的接口ID、该接口所在的网络设备的设备ID,该接口是与该ARP总表对应的子网中的接口;其中,ARP总表的格式可以参见表3-1或表3-2:
表3-1
设备ID IP地址 接口ID
表3-2
设备ID IP地址 接口ID 其它
在表3-2中,其它可以是以下至少之一:MAC地址、VLAN ID、老化时间和类型。
步骤S404,根据每一个ARP总表,采用由外向内逐层删除边缘网络设备的方法,计算出与该ARP总表对应的子网的网络拓扑;通过并行计算,可以提高计算效率。
具体的,由外向内逐层删除边缘网络设备的方法包括:重复执行以下步骤31-33,直至该ARP总表的内容为空:
步骤31:根据该ARP总表的当前内容,确定学习到的IP地址最少的接口;
步骤32:并行地针对确定出的每一个接口,根据该ARP总表的当前内容和获取到的接口的IP地址信息,计算出该确定出的接口直连的对端接口,将计算结果保存到如表4所示的网络拓扑表中;
表4
设备ID 接口ID 设备ID 接口ID
设备1 接口1 设备2 接口3
其中,表4中的第2行表示:设备1上的接口1与设备2上的接口3直连。
步骤33:在该ARP总表的当前内容中,针对每一个网络设备,判断除特定接口以外,该网络设备上是否还存在其它接口,若不存在,则从该ARP总表的当前内容中删除对应于该网络设备的表项,并删除对应于该网络设备上的特定接口的IP地址的表项;其中,特定接口是确定出的接口或计算出的对端接口。
步骤S306,将计算得到的所有子网的网络拓扑进行合并,得到所有网络设备组成的网络拓扑。
本申请实施例中,网管设备通过使能所管理的每一个网络设备的免费ARP功能或者通过周期性地扫描每一个网络设备上的每一个接口的IP地址,可以使得每一个网络设备及时地更新ARP表,防止某些ARP表项因老化而被删除,最终达到了保持ARP表中的有效数目的目的。从而,网管设备获取到的每一个网络设备上的ARP表也是完整和准确的,能够准确地计算出接口间的连接关系,进而准确地计算出网络拓扑。
另外,先将全网拆分成至少一个子网,并行地计算各个子网的网络拓扑,最后将所有子网的网络拓扑合并得到全网的网络拓扑,由于各个子网的网络拓扑是并行计算的,因此,极大地提高了计算效率,节省了计算时间;而且,在计算子网的网络拓扑时,采用由外向内逐层删除边缘网络设备的方法,即,根据该ARP总表的当前内容,确定学习到的IP地址最少的接口,并行地针对确定出的每一个接口,根据该ARP总表的当前内容和获取到的接口的IP地址信息,计算出该确定出的接口直连的对端接口,在该ARP总表的当前内容中,针对每一个网络设备,判断除特定接口以外,该网络设备上是否还存在其它接口,若不存在,则从该ARP总表的当前内容中删除对应于该网络设备的表项,并删除对应于该网络设备上的特定接口的IP地址的表项,其中,特定接口是确定出的接口或计算出的对端接口,不断重复上述步骤,直至该ARP总表的内容为空;从而,采用了类似剪枝的方法将边缘设备找到并从待计算的网络设备中删除,极大地加快了网络拓扑的计算过程。
实施例二
以图3所示的实际网络为例,详细说明上述实施例一中的方法。该网络中包括:网络设备A~G,网络设备的接口间的连接关系如图3所示,网络设备A~G上的各个接口及其IP地址信息如表5所示:
表5
接口ID IP地址 掩码
A-1 20.1.1.1 255.255.255.0
A-2 10.1.1.1 255.255.255.0
A-3 20.1.1.1 255.255.255.0
B-1 20.1.1.2 255.255.255.0
B-2 20.1.1.2 255.255.255.0
B-3 20.1.1.2 255.255.255.0
C-1 10.1.1.2 255.255.255.0
C-2 20.1.1.3 255.255.255.0
C-3 10.1.1.2 255.255.255.0
D-1 30.1.1.1 255.255.255.0
D-2 20.1.1.4 255.255.255.0
D-3 20.1.1.4 255.255.255.0
D-4 20.1.1.4 255.255.255.0
E-1 20.1.1.5 255.255.255.0
E-2 10.1.1.3 255.255.255.0
E-3 10.1.1.3 255.255.255.0
F-1 20.1.1.6 255.255.255.0
F-2 10.1.1.4 255.255.255.0
G-1 20.1.1.7 255.255.255.0
G-2 30.1.1.2 255.255.255.0
网管设备分别向网络设备A~G发送免费ARP功能使能命令。网络设备A~G上的每一个接口在使能了免费ARP功能后,创建的ARP表如表6-1~表6-7所示:
表6-1网络设备A上的ARP表
IP地址 MAC地址 VLAN ID 接口ID 老化时间 类型
20.1.1.2 XX XX A-1 XX D
20.1.1.4 XX XX A-1 XX D
20.1.1.3 XX XX A-1 XX D
20.1.1.5 XX XX A-1 XX D
20.1.1.6 XX XX A-1 XX D
10.1.1.2 XX XX A-2 XX D
10.1.1.3 XX XX A-2 XX D
10.1.1.4 XX XX A-2 XX D
20.1.1.7 XX XX A-3 XX D
表6-2网络设备B上的ARP表
IP地址 MAC地址 VLAN ID 接口ID 老化时间 类型
20.1.1.1 XX XX B-1 XX D
20.1.1.7 XX XX B-1 XX D
20.1.1.3 XX XX B-2 XX D
20.1.1.4 XX XX B-3 XX D
20.1.1.5 XX XX B-3 XX D
20.1.1.6 XX XX B-3 XX D
表6-3网络设备C上的ARP表
IP地址 MAC地址 VLAN ID 接口ID 老化时间 类型
10.1.1.1 XX XX C-1 XX D
20.1.1.7 XX XX C-2 XX D
20.1.1.1 XX XX C-2 XX D
20.1.1.2 XX XX C-2 XX D
20.1.1.4 XX XX C-2 XX D
20.1.1.5 XX XX C-2 XX D
20.1.1.6 XX XX C-2 XX D
10.1.1.3 XX XX C-3 XX D
10.1.1.4 XX XX C-3 XX D
表6-4网络设备D上的ARP表
IP地址 MAC地址 VLAN ID 接口ID 老化时间 类型
30.1.1.2 XX XX D-1 XX D
20.1.1.1 XX XX D-2 XX D
20.1.1.2 XX XX D-2 XX D
20.1.1.3 XX XX D-2 XX D
20.1.1.7 XX XX D-2 XX D
20.1.1.5 XX XX D-3 XX D
20.1.1.6 XX XX D-4 XX D
表6-5网络设备E上的ARP表
IP地址 MAC地址 VLAN ID 接口ID 老化时间 类型
20.1.1.7 XX XX E-1 XX D
20.1.1.1 XX XX E-1 XX D
20.1.1.2 XX XX E-1 XX D
20.1.1.3 XX XX E-1 XX D
20.1.1.4 XX XX E-1 XX D
20.1.1.6 XX XX E-1 XX D
10.1.1.1 XX XX E-2 XX D
10.1.1.2 XX XX E-2 XX D
10.1.1.4 XX XX E-3 XX D
表6-6网络设备F上的ARP表
IP地址 MAC地址 VLAN ID 接口ID 老化时间 类型
20.1.1.1 XX XX F-1 XX D
20.1.1.7 XX XX F-1 XX D
20.1.1.2 XX XX F-1 XX D
20.1.1.3 XX XX F-1 XX D
20.1.1.4 XX XX F-1 XX D
20.1.1.5 XX XX F-1 XX D
10.1.1.3 XX XX F-2 XX D
表6-7网络设备G上的ARP表
IP地址 MAC地址 VLAN ID 接口ID 老化时间 类型
20.1.1.1 XX XX G-1 XX D
20.1.1.2 XX XX G-1 XX D
20.1.1.4 XX XX G-1 XX D
20.1.1.3 XX XX G-1 XX D
20.1.1.5 XX XX G-1 XX D
20.1.1.6 XX XX G-1 XX D
30.1.1.1 XX XX G-2 XX D
网管设备获取网络设备A~G上的如表6-1~6-7所示的ARP表,以及获取如表5所示的网络设备A~G的各个接口及其IP地址信息。
上述表6-1~6-7中的D表示该表项是通过动态方式学习到的。
网管设备根据如表6-1~6-7所示的ARP表和如表5所示的接口IP地址信息,获取网络拓扑的过程如下:
步骤S502,根据如表5所示的接口IP地址信息,确定每一个网络设备上的每一个接口的网络地址,将网络地址相同的接口划分到同一个子网中,最终将网络设备A~G及其的接口划分到3个子网中,分别记为子网1~3;
如图4所示,子网1中网络设备及其接口包括:网络设备A及其接口A-2,网络设备C及其接口C-1和C-3,网络设备E及其接口E-2和E-3,网络设备F及其接口F-2;
如图5所示,子网2中的网络设备及其接口包括:网络设备A及其接口A-1和A-3,网络设备B及其接口B-1、B-2和B-3,网络设备C及其接口C-2,网络设备D及其接口D-2、D-3和D-4,网络设备E及其接口E-1,网络设备F及其接口F-1,网络设备G及其接口G-1;
如图6所示,子网3中的网络设备及其接口包括:网络设备D及其接口D-1,网络设备G及其接口G-2。
步骤S504,根据划分得到的3个子网,将获取到的如表6-1~6-7所示的ARP表汇总成3个ARP总表,其中,如表7-1所示的ARP总表对应于子网1,如表7-2所示的ARP总表对应于子网2,如表7-3所示的ARP总表对应于子网3;
表7-1对应于子网1的ARP总表
设备ID IP地址 接口ID
A 10.1.1.2 A-2
A 10.1.1.3 A-2
A 10.1.1.4 A-2
C 10.1.1.1 C-1
C 10.1.1.3 C-3
C 10.1.1.4 C-3
E 10.1.1.1 E-2
E 10.1.1.2 E-2
E 10.1.1.4 E-3
F 10.1.1.3 F-2
表7-2对应于子网2的ARP总表
设备ID IP地址 接口ID
A 20.1.1.2 A-1
A 20.1.1.4 A-1
A 20.1.1.3 A-1
A 20.1.1.5 A-1
A 20.1.1.6 A-1
A 20.1.1.7 A-3
B 20.1.1.1 B-1
B 20.1.1.7 B-1
B 20.1.1.3 B-2
B 20.1.1.4 B-3
B 20.1.1.5 B-3
B 20.1.1.6 B-3
C 20.1.1.7 C-2
C 20.1.1.1 C-2
C 20.1.1.2 C-2
C 20.1.1.4 C-2
C 20.1.1.5 C-2
C 20.1.1.6 C-2
D 20.1.1.1 D-2
D 20.1.1.2 D-2
D 20.1.1.3 D-2
D 20.1.1.7 D-2
D 20.1.1.5 D-3
D 20.1.1.6 D-4
E 20.1.1.7 E-1
E 20.1.1.1 E-1
E 20.1.1.2 E-1
E 20.1.1.3 E-1
E 20.1.1.4 E-1
E 20.1.1.6 E-1
F 20.1.1.1 F-1
F 20.1.1.7 F-1
F 20.1.1.2 F-1
F 20.1.1.3 F-1
F 20.1.1.4 F-1
F 20.1.1.5 F-1
G 20.1.1.1 G-1
G 20.1.1.2 G-1
G 20.1.1.4 G-1
G 20.1.1.3 G-1
G 20.1.1.5 G-1
G 20.1.1.6 G-1
表7-3对应于子网3的ARP总表
设备ID IP地址 接口ID
D 30.1.1.2 D-1
G 30.1.1.1 G-2
从表7-1~表7-3中可以看出,每一个ARP总表中仅包含有对应子网内的网络设备及其上的接口、以及该接口上学习到的IP地址。
步骤S506,并行地针对每一个子网,采用由外向内逐层删除边缘网络设备的方法,计算该子网的网络拓扑;
以子网2为例,子网2内的网络拓扑的计算过程如下:
步骤S602,根据如表7-2所示的ARP总表,确定学习到的IP地址最少的接口,确定结果是:网络设备A上的接口A-3、网络设备B上的接口B-2、网络设备D上的接口D-3和D-4学习到的IP地址最少,只有一个;
步骤S604,并行地针对步骤S602中确定出的每一个接口,即接口A-3、B-2、D-3和D-4中的每一个,计算出该接口直连的对端接口,即,计算出该接口与哪一个对端接口直连;具体的,以网络设备A上的接口A-3为例进行说明:
步骤41:根据网络设备A上的接口A-3学习到的IP地址20.1.1.7,从表5中查找对应的网络设备接口,查找到网络设备G上的接口G-1;
步骤42:根据网络设备G上的接口G-1,从表7-2中查找到该接口G-1也学习到了网络设备A上的接口A-3的IP地址20.1.1.1,最终可以确定网络设备A上的接口A-3与网络设备G上的接口G-1直连。
同理,可以计算出网络设备B上的接口B-2与网络设备C上的接口C-2直连,网络设备D上的接口D-3与网络设备E上的接口E-1直连,网络设备D上的接口D-4与网络设备F上的接口F-1直连。此时,子网2的网络拓扑,如图7所示。
步骤S606,在如表7-2所示的ARP总表中,针对每一个网络设备,即网络设备A、B、C、D、E、F、G中的每一个,判断该网络设备上除特定接口以外是否还存在其它接口,若不存在,则从如表7-2所示的ARP总表中删除对应于该网络设备的表项,并删除对应于该网络设备上的特定接口的IP地址的表项;其中,特定接口是步骤S602中确定出的接口或步骤S604中计算出的对端接口;此时,如表7-2所示的ARP总表更新为如表8所示。
具体的,针对网络设备A,除接口A-3以外,该网络设备A上还存在接口A-1;
针对网络设备B,除接口B-2以外,该网络设备B上还存在接口B-1和B-3;
针对网络设备C,除接口C-2以外,该网络设备C上不存在其它接口,则删除如表7-2所示的ARP总表中对应于网络设备C的表项,并删除对应于网络设备C上的接口C-2的IP地址20.1.1.3的表项;
针对网络设备D,除接口D-3和D-4以外,该网络设备D上还存在接口D-2;
针对网络设备E,除接口E-1以外,该网络设备E上不存在其它接口,则删除如表7-2所示的ARP总表中对应于网络设备E的表项,并删除对应于网络设备E上的接口E-1的IP地址20.1.1.5的表项;
针对网络设备F,除接口F-1以外,该网络设备F上不存在其它接口,则删除如表7-2所示的ARP总表中对应于网络设备F的表项,并删除对应于网络设备F上的接口F-1的IP地址20.1.1.6的表项;
针对网络设备G,除接口G-1以外,该网络设备G上不存在其它接口,则删除如表7-2所示的ARP总表中对应于网络设备G的表项,并删除对应于网络设备G上的接口G-1的IP地址20.1.1.7的表项。
表8
设备ID IP地址 接口ID
A 20.1.1.2 A-1
A 20.1.1.4 A-1
B 20.1.1.1 B-1
B 20.1.1.4 B-3
D 20.1.1.1 D-2
D 20.1.1.2 D-2
步骤S608,根据如表8所示的ARP总表,确定学习到的IP地址最少的接口,确定结果是:网络设备B上的接口B-1和B-3学习到的IP地址最少,只有一个;
步骤S610,针对步骤S608中确定出的每一个接口,即网络设备B上的接口B-1和B-3中的每一个,计算出该接口直连的对端接口;具体计算过程同上述步骤41-42,可以计算出网络设备B上的接口B-1与网络设备A上的接口A-1直连;网络设备B上的接口B-3与网络设备D上的接口D-2直连;此时,子网2的网络拓扑,如图8所示。
步骤S612,在如表8所示的ARP总表中,针对每一个网络设备,即网络设备A、B、D中的每一个,判断该网络设备上除特定接口以外是否还存在其它接口,若不存在,则从如表8所示的ARP总表中删除对应于该网络设备的表项,并删除对应于该网络设备上的特定接口的IP地址的表项;其中,特定接口是步骤S608中确定出的接口或步骤S610中计算出的对端接口;此时,如表8所示的ARP总表的内容为空,因此,结束本流程。
具体的,针对网络设备A,除接口A-1以外,该网络设备A上不存在其它接口,则删除如表8所示的ARP总表中对应于网络设备A的表项,并删除对应于网络设备A上的接口A-1的IP地址20.1.1.1的表项;
针对网络设备B,除接口B-1和B-3以外,该网络设备B上不存在其它接口,则删除如表8所示的ARP总表中对应于网络设备B的表项,并删除对应于网络设备B上的接口B-1和接口B-3的IP地址20.1.1.2的表项;
针对网络设备D,除接口D-2以外,该网络设备D上不存在其它接口,则删除如表8所示的ARP总表中对应于网络设备D的表项,并删除对应于网络设备B上的接口D-2的IP地址20.1.1.4的表项。
最终,得到子网2的网络拓扑如图8所示。
同样,按照上述步骤S602~S612,计算出的子网1和子网3的网络拓扑,分别如图9和图10所示。
步骤S508,将如图9所示的子网1的网络拓扑、如图8所示的子网2的网络拓扑和如图10所示的子网3的网络拓扑进行合并(拼接),得到最终的如图3所示的网络拓扑。
实施例三
针对上述实施例一中的方法,本申请实施例中提供了一种可以应用该方法的网络拓扑获取装置。该装置应用于网管设备中。
如图11所示,该网络拓扑获取装置中可以包括以下模块:获取模块10和拓扑计算模块20,其中:
获取模块10,用于获取本网管设备管理的每一个网络设备上的每一个接口学习到的IP地址信息,以及该接口的IP地址信息;
拓扑计算模块20,用于根据获取模块10获取到的信息,获取本网管设备管理的所有网络设备组成的网络拓扑;其中,拓扑计算模块20中包括:子网划分单元201、子网拓扑计算单元202和合并单元203,其中:
子网划分单元201,用于根据获取模块10获取到的接口的IP地址信息,将各个网络设备及其上的接口划分到至少一个子网中;
子网拓扑计算单元202,用于根据获取模块10获取到的接口学习到的IP地址信息,采用由外向内逐层删除边缘网络设备的方法,并行地计算出子网划分单元201划分得到的各个子网的网络拓扑;
合并单元203,用于将子网拓扑计算单元202计算得到的所有子网的网络拓扑进行合并,得到所有网络设备组成的网络拓扑。
其中,获取模块10中包括:处理单元和ARP表获取单元,其中:
处理单元,用于向每一个网络设备发送免费ARP功能使能命令,以使得每一个网络设备上的每一个接口均使能免费ARP功能,使用免费ARP功能,周期性地更新本网络设备上的ARP表;或者,用于周期性地扫描每一个网络设备上的每一个接口的IP地址,以使得每一个网络设备周期性地更新本网络设备上的ARP表;
ARP表获取单元,用于获取每一个网络设备上的ARP表;其中,每一个网络设备上的ARP表中保存有该网络设备上的每一个接口学习到的IP地址信息。
其中,免费ARP功能包括:免费ARP报文学习功能,周期性地发送免费ARP报文的功能。
其中,IP地址信息包括:IP地址和掩码。
其中,子网划分单元201中包括:网络地址确定单元和划分单元,其中:
网络地址确定单元,用于根据获取模块获取到的每一个网络设备上的每一个接口的IP地址和掩码,确定该接口的网络地址;
划分单元,用于将网络地址确定单元确定出的网络地址相同的接口及其所在的网络设备划分到同一子网中,得到至少一个子网。
其中,子网拓扑计算单元202中包括:汇总单元和计算单元,其中:
汇总单元,用于根据子网划分单元201划分得到的子网,将ARP表获取单元获取到的所有ARP表汇总成至少一个ARP总表,其中,ARP总表与子网一一对应,每一个ARP总表的每一个表项中包括:IP地址、学习到该IP地址的接口的接口ID、该接口所在的网络设备的设备ID,该接口是与该ARP总表对应的子网中的接口;
计算单元,用于根据汇总单元得到的每一个ARP总表,采用由外向内逐层删除边缘网络设备的方法,计算出与该ARP总表对应的子网的网络拓扑;其中,由外向内逐层删除边缘网络设备的方法包括:重复执行以下步骤,直至该ARP总表的内容为空:
根据该ARP总表的当前内容,确定学习到的IP地址最少的接口;
并行地针对确定出的每一个接口,根据该ARP总表的当前内容和获取到的接口的IP地址信息,计算出该确定出的接口直连的对端接口;
在该ARP总表的当前内容中,针对每一个网络设备,判断除特定接口以外,该网络设备上是否还存在其它接口,若不存在,则从该ARP总表的当前内容中删除对应于该网络设备的表项,并删除对应于该网络设备上的特定接口的IP地址的表项;其中,特定接口是确定出的接口或计算出的对端接口。
综上,本申请以上实施例可以达到以下技术效果:
本申请实施例中,网管设备通过使能所管理的每一个网络设备的免费ARP功能或者通过周期性地扫描每一个网络设备上的每一个接口的IP地址,可以使得每一个网络设备及时地更新ARP表,防止某些ARP表项因老化而被删除,最终达到了保持ARP表中的有效数目的目的。从而,网管设备获取到的每一个网络设备上的ARP表也是完整和准确的,能够准确地计算出接口间的连接关系,进而准确地计算出网络拓扑。
另外,先将全网拆分成至少一个子网,并行地计算各个子网的网络拓扑,最后将所有子网的网络拓扑合并得到全网的网络拓扑,由于各个子网的网络拓扑是并行计算的,因此,极大地提高了计算效率,节省了计算时间;而且,在计算子网的网络拓扑时,采用由外向内逐层删除边缘网络设备的方法,即,根据该ARP总表的当前内容,确定学习到的IP地址最少的接口,并行地针对确定出的每一个接口,根据该ARP总表的当前内容和获取到的接口的IP地址信息,计算出该确定出的接口直连的对端接口,在该ARP总表的当前内容中,针对每一个网络设备,判断除特定接口以外,该网络设备上是否还存在其它接口,若不存在,则从该ARP总表的当前内容中删除对应于该网络设备的表项,并删除对应于该网络设备上的特定接口的IP地址的表项,其中,特定接口是确定出的接口或计算出的对端接口,不断重复上述步骤,直至该ARP总表的内容为空;从而,采用了类似剪枝的方法将边缘设备找到并从待计算的网络设备中删除,极大地加快了网络拓扑的计算过程。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种网络拓扑获取方法,其特征在于,所述方法应用于网管设备,所述方法包括:
获取本网管设备管理的每一个网络设备上的ARP表,获取ARP表中保存的该网络设备上的每一个接口学习到的因特网协议IP地址信息,以及该接口的IP地址信息;
根据获取到的信息,获取管理的所有网络设备组成的网络拓扑;其中,所述获取管理的所有网络设备组成的网络拓扑的方法包括:根据获取到的接口的IP地址信息,将各个网络设备及其上的接口划分到至少一个子网中;根据获取到的接口学习到的IP地址信息,采用由外向内逐层删除边缘网络设备的方法,并行地计算出各个子网的网络拓扑;将计算得到的所有子网的网络拓扑进行合并,得到所述所有网络设备组成的网络拓扑;
并行地计算出各个子网的网络拓扑的方法包括:
根据划分得到的子网,将获取到的所有ARP表汇总成至少一个ARP总表,其中,ARP总表与子网一一对应,每一个ARP总表的每一个表项中包括:IP地址、学习到该IP地址的接口的接口标识ID、该接口所在的网络设备的设备ID,该接口是与该ARP总表对应的子网中的接口;
根据每一个ARP总表,采用由外向内逐层删除边缘网络设备的方法,计算出与该ARP总表对应的子网的网络拓扑;其中,所述由外向内逐层删除边缘网络设备的方法包括:重复执行以下步骤,直至该ARP总表的内容为空:
根据该ARP总表的当前内容,确定学习到的IP地址最少的接口;
并行地针对确定出的每一个接口,根据该ARP总表的当前内容和获取到的接口的IP地址信息,计算出该确定出的接口直连的对端接口;
在该ARP总表的当前内容中,针对每一个网络设备,判断除特定接口以外,该网络设备上是否还存在其它接口,若不存在,则从该ARP总表的当前内容中删除对应于该网络设备的表项,并删除对应于该网络设备上的特定接口的IP地址的表项;其中,所述特定接口是确定出的接口或计算出的对端接口。
2.根据权利要求1所述的方法,其特征在于,
获取本网管设备管理的每一个网络设备上的ARP表的方法包括:
向每一个网络设备发送免费ARP功能使能命令,以使得每一个网络设备上的每一个接口均使能免费ARP功能,使用免费ARP功能,周期性地更新本网络设备上的ARP表;获取每一个网络设备上的ARP表;
或者,周期性地扫描每一个网络设备上的每一个接口的IP地址,以使得每一个网络设备周期性地更新本网络设备上的ARP表;获取每一个网络设备上的ARP表。
3.根据权利要求2所述的方法,其特征在于,所述免费ARP功能包括:
免费ARP报文学习功能,周期性地发送免费ARP报文的功能。
4.根据权利要求1所述的方法,其特征在于,IP地址信息包括:IP地址和掩码。
5.根据权利要求4所述的方法,其特征在于,所述将各个网络设备及其上的接口划分到至少一个子网中的方法包括:
根据获取到的每一个网络设备上的每一个接口的IP地址和掩码,确定该接口的网络地址;
将网络地址相同的接口及其所在的网络设备划分到同一子网中,得到至少一个子网。
6.一种网络拓扑获取装置,其特征在于,所述装置应用于网管设备,所述装置包括:
获取模块,用于获取本网管设备管理的每一个网络设备上的ARP表,获取ARP表中保存的该网络设备上的每一个接口学习到的因特网协议IP地址信息,以及该接口的IP地址信息;
拓扑计算模块,用于根据所述获取模块获取到的信息,获取本网管设备管理的所有网络设备组成的网络拓扑;
其中,
所述拓扑计算模块包括:子网划分单元、子网拓扑计算单元和合并单元,其中:
子网划分单元,用于根据所述获取模块获取到的接口的IP地址信息,将各个网络设备及其上的接口划分到至少一个子网中;
子网拓扑计算单元,用于根据所述获取模块获取到的接口学习到的IP地址信息,采用由外向内逐层删除边缘网络设备的方法,并行地计算出所述子网划分单元划分得到的各个子网的网络拓扑;
合并单元,用于将所述子网拓扑计算单元计算得到的所有子网的网络拓扑进行合并,得到所述所有网络设备组成的网络拓扑;
所述子网拓扑计算单元包括:汇总单元和计算单元;其中,
汇总单元,用于根据所述子网划分单元划分得到的子网,将所述ARP表获取单元获取到的所有ARP表汇总成至少一个ARP总表,其中,ARP总表与子网一一对应,每一个ARP总表的每一个表项中包括:IP地址、学习到该IP地址的接口的接口标识ID、该接口所在的网络设备的设备ID,该接口是与该ARP总表对应的子网中的接口;
计算单元,用于根据所述汇总单元得到的每一个ARP总表,采用由外向内逐层删除边缘网络设备的方法,计算出与该ARP总表对应的子网的网络拓扑;其中,所述由外向内逐层删除边缘网络设备的方法包括:重复执行以下步骤,直至该ARP总表的内容为空:
根据该ARP总表的当前内容,确定学习到的IP地址最少的接口;
并行地针对确定出的每一个接口,根据该ARP总表的当前内容和获取到的接口的IP地址信息,计算出该确定出的接口直连的对端接口;
在该ARP总表的当前内容中,针对每一个网络设备,判断除特定接口以外,该网络设备上是否还存在其它接口,若不存在,则从该ARP总表的当前内容中删除对应于该网络设备的表项,并删除对应于该网络设备上的特定接口的IP地址的表项;其中,所述特定接口是确定出的接口或计算出的对端接口。
7.根据权利要求6所述的装置,其特征在于,
所述获取模块包括:
处理单元,用于向每一个网络设备发送免费ARP功能使能命令,以使得每一个网络设备上的每一个接口均使能免费ARP功能,使用免费ARP功能,周期性地更新本网络设备上的ARP表;或者,用于周期性地扫描每一个网络设备上的每一个接口的IP地址,以使得每一个网络设备周期性地更新本网络设备上的ARP表;
ARP表获取单元,用于获取每一个网络设备上的ARP表。
8.根据权利要求7所述的装置,其特征在于,所述免费ARP功能包括:
免费ARP报文学习功能,周期性地发送免费ARP报文的功能。
9.根据权利要求6所述的装置,其特征在于,IP地址信息包括:IP地址和掩码。
10.根据权利要求9所述的装置,其特征在于,所述子网划分单元包括:
网络地址确定单元,用于根据所述获取模块获取到的每一个网络设备上的每一个接口的IP地址和掩码,确定该接口的网络地址;
划分单元,用于将所述网络地址确定单元确定出的网络地址相同的接口及其所在的网络设备划分到同一子网中,得到至少一个子网。
CN201410128156.8A 2014-04-01 2014-04-01 网络拓扑获取方法及装置 Active CN103905251B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410128156.8A CN103905251B (zh) 2014-04-01 2014-04-01 网络拓扑获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410128156.8A CN103905251B (zh) 2014-04-01 2014-04-01 网络拓扑获取方法及装置

Publications (2)

Publication Number Publication Date
CN103905251A CN103905251A (zh) 2014-07-02
CN103905251B true CN103905251B (zh) 2017-02-15

Family

ID=50996408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410128156.8A Active CN103905251B (zh) 2014-04-01 2014-04-01 网络拓扑获取方法及装置

Country Status (1)

Country Link
CN (1) CN103905251B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104135442B (zh) * 2014-08-20 2018-01-05 中国电信股份有限公司四川分公司 交换式以太网络拓扑发现方法
CN105812207A (zh) * 2016-04-01 2016-07-27 浪潮电子信息产业股份有限公司 一种网络交换机的监控装置、系统和方法
CN105847300B (zh) * 2016-05-30 2019-06-25 北京琵琶行科技有限公司 企业网络边界设备拓扑结构的可视化方法及装置
CN107276829A (zh) * 2017-07-26 2017-10-20 广东电网有限责任公司电力科学研究院 基于地址解析协议的电力系统的网络拓扑获取方法和系统
CN107483344A (zh) * 2017-07-26 2017-12-15 广东电网有限责任公司电力科学研究院 基于控制报文协议的电力系统的网络拓扑获取方法和系统
CN108429641B (zh) * 2018-02-28 2021-07-06 新华三技术有限公司 一种网络设备管理方法及装置
CN111371668B (zh) * 2020-02-26 2023-05-30 平安科技(深圳)有限公司 基于免费arp的周期性发送方法、装置、设备及存储介质
CN113542211B (zh) * 2021-05-17 2023-10-20 新华三信息安全技术有限公司 一种信息处理方法及装置
CN116155739A (zh) * 2021-11-23 2023-05-23 华为技术有限公司 网络拓扑的还原方法及装置
CN115314392A (zh) * 2022-08-19 2022-11-08 中电达通数据技术股份有限公司 基于网络设备资源发现算法的自动生成网络拓扑系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873230A (zh) * 2010-07-05 2010-10-27 北京星网锐捷网络技术有限公司 物理网络拓扑的发现方法及装置
CN102158348A (zh) * 2011-01-30 2011-08-17 北京星网锐捷网络技术有限公司 网络拓扑发现方法、装置及网络设备
CN102694689A (zh) * 2012-06-06 2012-09-26 杭州华三通信技术有限公司 一种网络拓扑发现方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7327695B2 (en) * 2003-12-19 2008-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Centralized link-scope configuration of an internet protocol (IP) network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873230A (zh) * 2010-07-05 2010-10-27 北京星网锐捷网络技术有限公司 物理网络拓扑的发现方法及装置
CN102158348A (zh) * 2011-01-30 2011-08-17 北京星网锐捷网络技术有限公司 网络拓扑发现方法、装置及网络设备
CN102694689A (zh) * 2012-06-06 2012-09-26 杭州华三通信技术有限公司 一种网络拓扑发现方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An Efficient Approach Towards IP Network Topology Discovery for Large Multi-subnet Networks;Fawad Nazir等;《Proceedings of the 11th IEEE Symposium on Computers and Communications (ISCC’06)》;20061231;1-5 *
网络拓扑发现算法及其在综合网络管理系统中的应用研究;陈艳山;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20120415(第4期);I139-109 *

Also Published As

Publication number Publication date
CN103905251A (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN103905251B (zh) 网络拓扑获取方法及装置
US20180173557A1 (en) Physical path determination for virtual network packet flows
JP5991424B2 (ja) パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
CN106878288B (zh) 一种报文转发方法及装置
CN106209553A (zh) 报文处理方法、设备及系统
CN106899500B (zh) 一种跨虚拟可扩展局域网的报文处理方法及装置
CN104022953A (zh) 基于开放流Openflow的报文转发方法和装置
CN104935516A (zh) 基于软件定义网络的通信系统及方法
CN105490884B (zh) 一种vxlan隧道检测方法及装置
CN105227466B (zh) 通信处理方法和装置
CN105591907B (zh) 一种路由获取方法和装置
JP5858141B2 (ja) 制御装置、通信装置、通信システム、通信方法及びプログラム
US8964749B2 (en) Method, device and system for establishing a pseudo wire
CN109714274A (zh) 一种获取对应关系的方法和路由设备
WO2016115698A1 (zh) 数据报文的转发方法、装置及设备
CN102055642A (zh) 一种数据报文转换方法
CN109041086A (zh) 一种OpenFlow实例的配置方法及装置
CN106230667B (zh) Vtep保活检测方法及装置
EP3387801A1 (en) Customer premises lan expansion
JP5747997B2 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
CN104717640A (zh) 一种基于定位的无线网络通信的实现方法
CN108282404B (zh) 一种路由生成方法、装置及系统
WO2018161827A1 (zh) 一种地址自学习的方法、装置及交换机
CN107689881A (zh) 报文处理方法以及装置
KR20160062688A (ko) 오버레이 네트워크 기반에서의 오리지널 패킷 플로우 매핑 장치 및 그 방법

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee before: Huasan Communication Technology Co., Ltd.