CN103444149A - 网络拓扑发现 - Google Patents
网络拓扑发现 Download PDFInfo
- Publication number
- CN103444149A CN103444149A CN2011800695768A CN201180069576A CN103444149A CN 103444149 A CN103444149 A CN 103444149A CN 2011800695768 A CN2011800695768 A CN 2011800695768A CN 201180069576 A CN201180069576 A CN 201180069576A CN 103444149 A CN103444149 A CN 103444149A
- Authority
- CN
- China
- Prior art keywords
- interface
- network
- destination
- equipment
- connection data
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
拓扑发现包括确定识别网络设备之间的连接的连接数据。所述连接数据包括网络设备和用于所述设备的网络接口。执行迭代以基于连接数据来确定拓扑中的链路。迭代可以包括在拓扑中添加链路(306),添加未知域到拓扑(501),或在链路被添加到拓扑的情况下,从连接数据中移除与添加的链路关联的接口(403)。
Description
优先权
本申请要求序列号61/467,850、在2011年3月25日提交的名为“Network Topology Discovery”的美国临时专利申请的优先权。
背景技术
为网络管理或网络规划,网络基础设施的地图(map)通常被创建。地图识别网络中的诸如路由器,网关等之类的设备和设备之间的连接。地图可以识别设备或连接的状态,诸如它们是否失效或可运作,并且可以识别关于设备或连接的网络度量。
为了生成地图,需要发现设备及其连接。诸如交换机之类的大多数开放系统互连(OSI)第二层设备使用生成树协议的某种变形来确定使用哪些连接。因此,设备知道它们连接到哪些其它的第二层设备。通常,管理系统能够轮询设备以找出它们了解的连接。此方法具有相当明显的不足就是只有支持兼容版本的生成树协议的设备之间的连接能够被发现。
通常,发现第二层设备及其连接要更困难。例如,第二层连接可能不可发现或在执行不同的(不兼容的)第二层发现协议的相邻设备之间可能不是100%准确的。用于桥(bridge)的转发数据库可以用于确定连接,但信息可能不是当前的或转发数据库可能不是可用的。因此,对于地图而言通常难以准确地识别设备和连接。
附图说明
参考附图,实施例在以下描述中被详细描述:
图1图示了系统;
图2图示了网络中的设备的示例;
图3图示了流程图;
图4图示了流程图;
图5图示了流程图;
图6图示了网络中的IP设备的示例;和
图7图示了可被用于本文描述的方法和系统的计算机系统。
具体实施方式
为了简单和说明目的,实施例的原理主要通过参考其示例来描述。在下面的描述中,为了提供实施例的完全理解而阐述了许多特定的细节。明显的是在不限于所有特定细节的情况下实施例可被实行。同样,实施例可以以各种组合一起被使用。
拓扑发现过程为拓扑确定连接和未知域。在一个实施例中,用于所有发现的设备的连接被确定或通过网络的所有可能路由被穷尽。高速缓存的连接数据可以被用来确定连接以及确定对拓扑的更新。拓扑是包括网络中的设备和设备之间的连接的网络地图。一旦被确定,拓扑就可以在用户界面上被显示且可以用于网络管理和规划。
拓扑发现过程可以包括使用高速缓存的连接数据以从设备上的网络接口来识别多个连接。但是,这些连接可能不是直接连接。例如,连接可以包括网络接口和另一设备之间的多跳连接。根据实施例,拓扑发现过程从连接数据识别由两个设备上的网络接口之间的直接双向连接构成的连接。例如,所识别的直接双向连接是用于生成树的连接。这些连接被用于形成拓扑。
图1图示了包括从网络设备102收集数据的拓扑发生器101的系统100。网络设备102可以包括诸如交换机的第二层设备,诸如路由器的第三层设备,或其它网络设备。也可以包括终端用户设备。拓扑发生器101运行拓扑发现过程,并从收集自网络设备102的连接数据来为拓扑确定连接或未知域。连接数据可以包括能够被用于确定在拓扑中的链路的数据的任何数据。连接数据可以从来自网络设备102的地址解析协议(ARP)高速缓存或媒体访问控制(MAC)高速缓存收集。连接数据可以包括设备上的接口的列表。接口的名称和接口的MAC地址如果可用则可以被包括。连接数据可以包括接口的名称和诸如MAC地址、IP地址或其它类型地址之类的地址。
拓扑发生器101从连接数据确定在网络拓扑中的链路。为了确定链路,从连接数据确定连接列表。连接表示候选链路,并且通过处理连接数据,所述连接中的一个或多个可被选择为在拓扑中的实际链路。连接或链路由不同的网络设备上的一对网络接口之间的连接表示。在拓扑上在接口之间画线来示出链路。连接或链路可以是双向的。连接或链路是没有任何中间跳的直接连接。连接或链路可以是生成树中的连接,且在两个网络设备上的两个接口之间有一条连接。网络接口,在这里也称为接口,可以包括取通过网络协议封装的信息并且将其放入可通过诸如以太网、光纤之类的一些物理介质上或无线地传送的格式中的硬件。交换机可以包括用于在网络上发送和接收数据的多个接口。
拓扑发生器101还识别需要更多信息的未知域列表。未知域是一组设备,拓扑发现过程能够确定其是被连接的但不能够确定连接的确切性质。比如,该过程可能不能确定该组设备是通过单跳还是多跳连接而连接,或不能够确定用于连接的接口等。在地图上未知域可以表示为连接到列表中每个设备的云。
在下面进一步详细描述拓扑发现过程。拓扑发生器101在数据存储器103中存储从网络设备102收集的可以被用于确定拓扑的拓扑数据。
拓扑发生器101可以包括由计算机系统运行以执行拓扑发现过程的机器可读指令。拓扑发生器101可以包括捕获拓扑数据以生成拓扑的诸如服务器的中央计算机系统,或拓扑发生器101可以是在多个计算机系统上运行的分布式应用。拓扑发生器101可以包括在诸如云计算系统的分布式计算系统中的服务器上运行的应用,所述应用生成用于网络的拓扑。
拓扑发生器101针对ARP高速缓存和MAC高速缓存数据轮询网络中的网络设备,并使用此信息来确定网络的拓扑。ARP高速缓存是储存数据链路层地址(即MAC地址)和网络层地址(即网际协议(IP)地址)之间的映射的表格。该过程跨越网络中的路由器进行迭代。为路由器的域内的设备而计算与单个路由器关联的链路。例如,该域应包括可以被放入所发现的路由器的ARP高速缓存的任何网络设备。不时地会发现新设备,或会删除设备。该过程周期地检查此类改变,且当发现一个改变时,该过程在其域中具有所述设备的路由器上运行。在下面提供发现过程的示例,接着是描述发现过程方法的流程图。
以下的两个示例描述了应用于网络的拓扑发现过程。示例发现在图2中示出的网络设备之间的连接。每个方框表示网络设备。方框中的字母是设备名称。紧挨着方框的数字表示接口。接口被称为设备名称后面跟着破折号后面跟着接口号,例如,D-2是在交换机D上的第二接口。接口的MAC地址被称为M后面跟着句号后面跟着设备名称后面跟着接口号,例如M.D-2。
虚拟接口的一些例子被包括。虚拟接口是一种从物理接口分离出业务的方法。拓扑发现过程考虑虚拟接口是因为它们可以出现在接口列表、ARP高速缓存、和MAC高速缓存中。D-2.1是作为设备D的接口2上的第一虚拟接口的虚拟接口的名称的示例。虚拟接口的MAC地址是其物理接口的MAC地址。例如D-2.1的MAC地址是M.D-2。
下表1是包括来自高速缓存的输入数据的示例性连接数据,根据所述连接数据来确定网络连接。
表1
设备 | 接口 | MAC | 高速缓存 |
A | A-1 | M.A-1 | M.C-1, M.D-1, M.E-1 |
B | B-1 | ? | M.C-1 |
B-2 | ? | M.D-1, M.E-1 | |
B-3 | ? | M.A-1 | |
C | C-1 | M.C-1 | M.A-1 |
C-1.2 | M.C-1 | M.D-1, M.E-1 | |
D | D-1 | M.D-1 | M.A-1 |
D-1.1 | M.D-1 | M.C-1 | |
D-2 | M.D-2 | M.E-1 | |
E | E-1 | M.E-1 | M.A-1, M.D-2 |
E-1.1 | M.E-1 | M.C-1 |
B可以是较旧的设备,因此每个接口的MAC地址不是可用的。然而拓扑被确定。
第一步是确定与高速缓存项对应的目的地。这可以通过添加对应于每个MAC地址的目的地来完成。一旦目的地被找到,高速缓存项不再被需要。
表2
设备 | 接口 | MAC | 目的地 |
A | A-1 | M.A-1 | C-1, D-1, E-1 |
B | B-1 | ? | C-1 |
B-2 | ? | D-1, E-1 | |
B-3 | ? | A-1 | |
C | C-1 | M.C-1 | A-1 |
C-1.2 | M.C-1 | D-1, E-1 | |
D | D-1 | M.D-1 | A-1 |
D-1.1 | M.D-1 | C-1 | |
D-2 | M.D-2 | E-1 | |
E | E-1 | M.E-1 | A-1, D-2 |
E-1.1 | M.E-1 | C-1 |
表2示出以标准形式放置输入。
在本例中,不存在从设备到其自身的目的地,因此此处没有要移除的内容。目的地被添加因此每个目的地具有反向目的地。在此例中,相当多的目的地被添加来确保每个目的地具有反向目的地。做出这些改变后的输入在下表3中给出。添加的目的地用黑体指示。
表3
设备 | 接口 | MAC | 目的地 |
A | A-1 | M.A-1 | B-3, C-1, D-1, E-1 |
B | B-1 | ? | C-1 |
B-2 | ? | D-1, E-1 | |
B-3 | ? | A-1 | |
C | C-1 | M.C-1 | A-1, B-1, D-1.1, E-1.1 |
C-1.1 | M.C-1 | D-1, E-1 | |
D | D-1 | M.D-1 | A-1, B-2, C-1.1 |
D-1.1 | M.D-1 | C-1 | |
D-2 | M.D-2 | E-1 | |
E | E-1 | M.E-1 | A-1, B-2, C-1.1, D-2 |
E-1.1 | M.E-1 | C-1 |
此时具有重复的MAC地址的接口被移除。一般规则是移除具有按字母表顺序排序较后的名称的接口。不移除具有未知MAC地址的接口。通常类似于物理接口来命名虚拟接口,比如由物理接口名称后面跟着某种排序下标而构成的名称。因此,这些接口在字母表中出现得较晚并且是被移除的接口。被移除的接口上的任何目的地被移动到具有相同MAC地址的被保留的接口。因此,例如C-1.1被移除,并且目的地D-1和E-1被移动到C-1。
另外,任何指向要移除的接口的目的地被改变为指向具有相同MAC地址的被保留的接口。因此在C的情况中,当接口D-1.1和E-1.1被移除时,目的地D-1.1和E-1.1分别被改变为D-1和E-1。这些相同的目的地在之前被添加过而不应被添加两次。
在移除具有重复的MAC地址的接口后,表4示出输入。不再需要的MAC栏未被示出。
表4
设备 | 接口 | 目的地 |
A | A-1 | B-3, C-1, D-1, E-1 |
B | B-1 | C-1 |
B-2 | D-1, E-1 | |
B-3 | A-1 | |
C | C-1 | A-1, B-1, D-1, E-1 |
D | D-1 | A-1, B-2, C-1 |
D-2 | E-1 | |
E | E-1 | A-1, B-2, C-1, D-2 |
每个设备在每个其它设备上具有至多一个目的地。不需要进行改变以满足此要求。所有的接口都具有目的地,因此不需要进行改变。在表4中示出的连接数据表示网络设备中的网络接口之间的连接。通过在下面更进一步详细描述的处理,拓扑中的链路可根据连接来确定。
下面给出的是标准形式的输入,和不具有连接和域的设备的地图。通过每次迭代,该过程添加连接或未知域,和/或移除目的地和/或接口。
迭代1
在每次迭代中,该过程寻找具有最少目的地的接口。对于第一次迭代,可能已经选择了B-1、B-3、D-2任一。作为规则,使用所发现的第一接口(从上到下);在此情况中SELECTED(选择的) = B-1。然后从B-1到C-1的链路被添加。第一次迭代能够如下表示:
SELECTED = B-1
REVERSE(反向) = C-1
BEGIN(开始) = B
END(终止) = C
发现的第一接口是SELECTED。用于SELECTED的目的地接口是REVERSE。SELECTED设备是BEGIN,并且REVERSE设备是END。目的地A-1、B-1、D-1和E-1被从C-1移除,并且相应的反向链路也被移除。另外,接口B-1和C-1被移除。结果如下,移除项用删除线指示。
表5
迭代2
具有最少数的目的地的接口是B-3。添加从B-3到A-1的链路。如此给出
SELECTED = B-3
REVERSE = A-1
BEGIN = B
END = A
从A-1移除目的地B-3、D-1、和E-1,并且反向目的地也被移除。另外,移除接口A-1和B-3。结果是:
表6
迭代3
D-1具有一个目的地。创建从D-1到B-2的链路。
SELECTED = D-1
REVERSE = B-2
BEGIN = D
END = B
移除B-2上的目的地,并且移除B-2和D-1。结果是:
表7
迭代4
D-2具有一个目的地。创建从D-2到E-1的链路。
SELECTED = D-2
REVERSE = E-1
BEGIN = D
END = E
移除E-1上的目的地并移除E-1和D-2。这产生:
表8
此时没有接口剩下,因此过程终止。根据需要,结果是生成树。
第二个示例存在一些信息缺失,而结果是未知域。考虑与上面相同的网络,以及除了设备B信息缺失以外而相同的高速缓存数据。若输入被放入标准形式中,下列用于计算阶段的数据被确定:
表9
迭代1
D-2具有一个目的地。创建从D-2到E-1的链路。
SELECTED = D-2
REVERSE = E-1
BEGIN = D
END = E
移除E-1上的目的地并移除E-1和D-2。这产生:
表10
迭代2
所有剩余的接口具有两个目的地。挑选包含A-1的设备,和包含A-1的目的地的设备(也就是C和D),然后利用未知域连接它们。移除A,C,和D上的所有的目的地。结果是:
表11
没有目的地剩下,因此拓扑发现过程终止。
ARP和MAC高速缓存这二者通常是实际的高速缓存;如果没有去往指定的MAC地址的业务被接收,那么它们的内容会老化(age out)并随着时间推移而被移除。为了保证高速缓存包含必需的数据,一些业务可被发送到每个设备(即查验(ping)它们)来确保它们的高速缓存包含所需要的信息。用于收集连接数据的数据收集可以包括使用任何适当的管理接口来轮询适当的数据。
定义包含输入的以下数据结构以允许拓扑发现过程的清楚和精确的定义。可以使用其它的数据结构。数据结构用类Java伪代码表示。输入由Collection<Device>(收集<设备>)对象构成。Collection指示通用列表,并且在尖括号里的名称指示在Collection中的对象的类型——在此情况中是Device。
接口类的实例包含关于单个接口的信息,和其到其它接口的连接。
Class Interface{
String name;//接口名称
Address address;//接口的地址
Device device;//包含该接口的设备
//可到达的地址
Collection<Address>addresses;
//可到达的目的地
Collection<Interface>destinations;
}
Device类的实例包含一批接口,并且在实际应用中还包含其它信息。
Class Device{
Collection<Interface>interfaces;//在该设备上
}
输入可被用于填充设备列表,每个设备都具有接口列表,并且从地址高速缓存填充地址。然后通过创建地址到接口的映射(索引),并且对于地址中的每个地址查找对应的接口来填充目的地。
对于拓扑发现过程可以标准化和规范化连接数据。标准化和规范化的示例在上面通过参考表1到4而描述。对于标准化,可以满足以下条件。第一,如果接口B在接口A的目的地中,那么接口A必须在接口B的目的地中。换句话说——双向通信。第二,同一设备上的两个接口不应具有相同地址。有时来自设备的原始输出示出具有相同MAC地址的两个接口。这通常是因为一些接口是“虚拟接口”。虚拟接口名称通常是物理接口名称加上一些附加的字符。例如,如果“i1”是物理接口,“i1-1”和“i1-2”最可能是虚拟接口。如果多于一个接口有相同的地址,则一种选择单个接口的方法是挑选按字母表顺序的第一个接口,因为那一般是物理接口。第三,对于任何两个设备A和B,在A上应该至多存在一个接口以B上的接口作为目的地(每个目的地唯一的接口)。
下部分描述如何将一批任意的设备转变成满足上面条件的设备。
可以执行以下操作以规范化连接数据。对于每个设备,移除到该同一个设备上的接口的任何目的地。不计算设备和其自身之间的连接。而且,对于每个设备,检查其接口上的所有目的地。如果接口A具有目的地接口B,且A对于B不是目的地接口,则添加A作为目的地接口。而且,对于每个设备,检查以查看该设备上的每个接口具有不同的地址。如果两个接口A和B被发现具有相同的地址,则查找具有在字母表顺序中排最后的名称的接口(假设这是B)。然后添加B的所有目的地到A的目的地,并修改所有去B的目的地替换为去A。然后移除接口B。
而且,对每个设备A和B,在A上的接口上查找所有到B的目的地。如果存在多于一个这样的目的地,移除除了其中一个以外的所有目的地。同样,移除所有不具有目的地的接口。
图3到5中的流程图示出在拓扑中如何确定链路。流程图通过针对示例1和2来描述在上面讨论的迭代。计算连接和未知域。在循环的每次迭代中,根据连接或未知域所确定的最大程度改善拓扑的链路被添加。因为链路和未知域被添加到输出,所以从作为处理的输入使用的连接数据中移除不再需要的目的地、接口和设备。为了维持输入的一致性,执行下面的任务。每当目的地B从接口A中被移除,接口B上的目的地A也被移除(所有的通信是双向的)。每当接口被移除,所有到该接口的目的地都被移除。每当设备被移除,它所有的接口都被移除。
用于网络中的网络设备的网络接口的一组链路的候选选择被确定。这可以包括已经被标准化和/或规范化的连接数据。如在图3-5中的方法300-500中示出的,对于每个网络接口确定链路。如流程图300中示出的,为接口确定链路的次序可以基于连接的数目。首先选择具有最少连接数的接口。通过参考在图1中示出的拓扑发生器101的执行,用举例且非限制的方式描述方法300到500。
如图3中针对方法300示出的,在301拓扑发生器101基于为网络确定的连接数据来确定是否存在包含目的地的任何设备上的任何接口。例如,上面描述的表4包括网络的连接数据。以表4开始在执行任何迭代前,每个接口具有目的地,因此处理继续到302。
在302,拓扑发生器101查找具有最小数目的目的地的接口。此接口被称为SELECTED接口。在例1中,接口B-1是SELECTED。SELECTED的目的地接口是REVERSE。SELECTED设备是BEGIN,而REVERSE设备是END。
在303,拓扑发生器101确定SELECTED接口是否具有0个目的地接口(即目的地)。如果是,在304,从连接数据中移除SELECTED。从连接数据中移除SELECTED意味着此接口被认为不是基于当前的处理能够被选择为拓扑中的链路的任何连接的部分。换句话说,用于被移除的接口的连接可能不再是能够被选择包含在拓扑中的候选链路的部分。移除可以包括标志、标记或通过另一种方式来指示当执行迭代时此接口可能不会用于识别拓扑中的其它链路。但是SELECTED实际上可以不从数据存储器中删除,而可以用于以后处理中以确定拓扑的链路。
如果在303为否,则在305拓扑发生器101确定SELECTED接口是否有1个目的地接口。如果是,则在306,SELECTED和REVERSE(其为目的地接口)之间的链路被添加到拓扑。这个过程也在上面通过参考示例1来描述。例如,在示例1的第一次迭代中添加从B-1到C-1的链路。在第一次迭代中,SELECTED = B-1,且REVERSE = C-1。在306之后,处理转到图4中示出的方法400。
在401,拓扑发生器101识别REVERSE。例如,在示例1的第一次迭代中REVERSE = C-1。在402,拓扑发生器101识别SELECTED的设备(即BEGIN)和REVERSE设备(即END)。例如,在示例1的第一次迭代中,BEGIN = B,且END = C。
在403,拓扑发生器101在连接数据中从它们的设备中移除SELECTED和REVERSE。在404,拓扑发生器101确定是否存在具有到BEGIN和END这二者的目的地的任何设备。这些设备均被称为MIDDLE(中间)。如果是,则在405拓扑发生器101移除从MIDDLE到END的目的地。例如,在迭代1中,目的地A-1、B-1、D-1和E-1被从C-1移除,并且对应的反向链路也被移除。另外,接口B-1和C-1被移除。在404,如果否,处理转回到所示的方法300。
在方法300中的305,如果SELECTED被确定具有多于一个目的地,那么处理转到图5中示出的方法500。在方法500中可以添加被称作未知域的新域并且可以执行移除不需要的目的地。这在上面通过参考示例2进一步描述。例如,在示例2中,如通过参考迭代2而描述的,A-1具有两个目的地并且所有剩余的接口都有两个目的地。在501,拓扑发生器确定包括SELECTED设备(即BEGIN)以及若SELECTED则还包括每个目的地接口的设备的设备列表。这些设备连接到未知域。例如,在迭代2,包含A-1的设备和包含A-1的目的地(也就是C和D)的设备被识别。这些设备(即,A、C和D)连接到被添加到拓扑的未知域。如果在新域中的任何设备是另一个域的部分,那么可以移除另一个域,且另一个域的所有成员被移到未知域,在502和503。换句话说,如果新未知域与旧域重叠,则所述新域和旧域合并成包含这二者中的所有设备的一个大域。而且,在504移除新域中的设备上的接口之间的所有目的地。例如,A,C和D上的接口的所有目的地被移除。
在单次迭代中可以执行方法300到500。然后重复迭代直到在任何设备上不存在包含目的地的接口,比如在301示出的,在301如果否,而转到DONE(完成)。如描述的,每次迭代添加链路或未知域且可以移除一个或多个目的地,和/或一个或多个接口。循环的数目可与发现的连接和未知域数目成比例——继而与网络设备的数目成比例,这是因为第二层设备经由生成树连接。在具有完全信息的交换式以太网网络中,发现过程产生对应于网络中的实际生成树的生成树解决方案。
拓扑发现过程能够在第二层网络中执行。所述过程也可以针对第三层IP网络执行,如图6中示出的。拓扑发现过程对于每个路由器在具有通过路由器的接口支持的IP地址范围支持的IP地址的设备上被运行一次。然后拓扑发现过程的联合结果被获得。在路由器的IP域相交的地方(即域601和602的相交处),对于每个路由器来说连接通常是相同的。未知域可能不同。例如,如果两个未知域包含相同的设备,则它们可以被包含两个域中所有设备的单个未知域所代替。
即使完全信息不可用,上述的拓扑发现过程也能生成拓扑。如果提供部分信息,该过程至少在充分信息可用的部分网络中提供准确的网络连接。它还识别需要附加信息的未知域。
图7示出可以与本文描述的实施例一起使用的计算机系统700。计算机系统700表示包括可以在服务器或另一个计算机系统中的组件的通用平台。计算机系统700可以用作本文描述的拓扑发生器101和/或其它组件的平台。计算机系统700可以通过处理器或其它硬件处理电路来执行本文描述的方法、功能和其它过程。这些方法、功能和其它过程可以被具体表现为在计算机可读介质上存储的机器可读指令,所述计算机可读介质可以是非临时的,诸如硬件存储设备(即,RAM(随机访问存储器)、ROM(只读存储器)、EPROM(可擦写可编程只读存储器)、EEPROM(电可擦写可编程只读存储器)、硬盘驱动器、和闪存)。
计算机系统700包括可以实现或运行执行一些或所有本文描述的方法、功能和其它过程的机器可读指令的处理器702。来自处理器702的命令和数据通过通信总线709来传送。计算机系统700也包括诸如用于处理器702的机器可读指令和数据可以在运行期间内驻留的随机访问存储器(RAM)之类的主存储器707,以及可以是非易失性的且存储机器可读指令和数据的辅数据存储器708。存储器和数据存储器是计算机可读介质的示例。
计算机系统700可以包括诸如键盘、鼠标、显示器等的I/O设备710。计算机系统700可以包括用于连接网络的网络接口712。在计算机系统700中可以添加或替代其它的已知电子组件。
虽然实施例通过参考例子来描述,但是可以在不偏离要求保护的实施例的范围的情况下对所描述的实施例做出各种修改。
Claims (15)
1.一种用于网络中的网络设备的拓扑发现的方法,该方法包括:
识别网络中的网络设备;
确定识别网络设备之间的连接的连接数据,对于每个网络设备,所述连接数据包括用于网络设备上的每个网络接口的接口ID和用于每个目的地网络接口即网络设备上的接口的目的地的目的地ID;
通过处理器执行迭代以基于连接数据来确定拓扑中的链路,其中每次迭代包括:
如果选择的网络接口在连接数据中具有一个目的地接口,则在拓扑中添加从在连接数据中识别的选择的网络接口到在连接数据中识别的目的地网络接口的链路(306);
如果选择的网络接口在连接数据中具有y个目的地接口,其中y>1,则添加未知域(501)到拓扑;和
如果链路被添加到拓扑,则从连接数据中移除与添加的链路关联的接口(403);以及
根据迭代来确定拓扑。
2.根据权利要求1所述的方法,其中在拓扑中添加链路包括:
识别连接数据中具有最少数目的目的地的接口(302),其中所识别的接口是选择的网络接口;
确定选择的网络接口在连接数据中是否只具有一个目的地接口(305);以及
如果选择的网络接口只具有一个目的地接口,则添加从选择的网络接口到其目的地接口的链路(306)。
3.根据权利要求1所述的方法,其中具有选择的接口的网络设备是开始设备,并且移除与添加的链路关联的接口包括:
根据连接数据来确定反向接口(401),其中反向接口是选择的网络接口的目的地接口,且具有反向接口的网络设备是终止设备;
在连接数据中从开始设备中移除选择的网络接口(403);
在连接数据中从终止设备中移除反向接口(403);
根据连接数据来确定是否存在任何中间设备(404),其中中间设备具有到开始设备和终止设备这二者的目的地;以及
对每个中间设备,从中间设备中移除到终止设备的任何目的地(405)。
4.根据权利要求1所述的方法,其中添加未知域到拓扑包括:
如果所有网络接口均在连接数据中具有多于一个目的地接口,则添加未知域到拓扑(501);以及
在拓扑中添加从选择的网络接口到未知域的链路(501);以及
在拓扑中添加从连接到选择的网络接口的每个网络设备到如根据连接数据所确定的未知域的链路(501)。
5.根据权利要求4所述的方法,包括:
确定连接到未知域的任何设备是否也连接到拓扑中的另一个未知域(502);以及
如果连接到未知域的任何设备也连接到另一个未知域,则将未知域和另一个未知域合并为单个未知域(503)。
6.根据权利要求1所述的方法,其中确定识别网络设备之间的连接的连接数据包括:
对于网络设备中的每个网络接口,针对识别可能连接到所述网络接口的网络中的任何网络接口的地址的连接数据来轮询网络设备;以及
规范化所述连接数据。
7.根据权利要求1所述的方法,其中所述连接数据包括来自网络设备中的MAC和ARP高速缓存的至少之一的数据。
8.根据权利要求1所述的方法,其中拓扑中的每个链路包括直接链路且是双向的。
9.根据权利要求1所述的方法,其中拓扑中的每个链路包括两个网络设备上的两个网络接口之间的直接链路。
10.一种包括机器可读指令的非临时计算机可读介质(707),所述机器可读指令在被处理器(702)运行时执行指令以:
识别网络中的网络设备;
确定识别网络设备之间的连接的连接数据,对于每个网络设备,所述连接数据包括用于网络设备上的每个网络接口的接口ID和用于每个目的地网络接口即网络设备上的接口的目的地的目的地ID;
执行迭代以基于连接数据来确定拓扑中的链路,其中每次迭代包括:
如果选择的网络接口在连接数据中具有一个目的地接口,则在拓扑中添加从在连接数据中识别的选择的网络接口到在连接数据中识别的目的地网络接口的链路(306);
如果选择的网络接口在连接数据中具有y个目的地接口,其中y>1,则添加未知域到拓扑(501);和
如果链路被添加到拓扑,则从连接数据中移除与添加的链路关联的接口(403);以及
根据迭代来确定网络的拓扑。
11.根据权利要求10所述的非临时计算机可读介质,其中在拓扑中添加链路包括:
识别连接数据中具有最少数目的目的地的接口(302),其中所识别的接口是选择的网络接口;
确定选择的网络接口在连接数据中是否只具有一个目的地接口(305);以及
如果选择的网络接口只具有一个目的地接口,则添加从选择的网络接口到其目的地接口的链路(306)。
12.根据权利要求10所述的非临时计算机可读介质,其中具有选择的接口的网络设备是开始设备,并且移除与添加的链路关联的接口包括:
根据连接数据来确定反向接口(401),其中反向接口是选择的网络接口的目的地接口,且具有反向接口的网络设备是终止设备;
在连接数据中从开始设备中移除选择的网络接口(403);
在连接数据中从终止设备中移除反向接口(403);
根据连接数据来确定是否存在任何中间设备(404),其中中间设备具有到开始设备和终止设备这二者的目的地;以及
对每个中间设备,从中间设备中移除到终止设备的任何目的地(405)。
13.根据权利要求10所述的非临时计算机可读介质,其中添加未知域到拓扑包括:
如果所有网络接口均在连接数据中具有y个目的地接口,则添加未知域到拓扑(501);以及
在拓扑中添加从选择的网络接口到未知域的链路(501);以及
在拓扑中添加从连接到选择的网络接口的每个网络设备到如根据连接数据所确定的未知域的链路(501)。
14.根据权利要求13所述的非临时计算机可读介质,其中所述指令包括用于执行以下操作的指令:
确定连接到未知域的任何设备是否也连接到拓扑中的另一个未知域(502);以及
如果连接到未知域的任何设备也连接到另一个未知域,则将未知域和另一个未知域合并为单个未知域(503)。
15.一种计算机系统(700)包括:
用于存储识别网络中的网络设备之间的连接的连接数据的数据存储器(707、708),对于每个网络设备,所述连接数据包括用于网络设备上的每个网络接口的接口ID和用于每个目的地网络接口即网络设备上的接口的目的地的目的地ID;和
用于通过执行迭代以基于连接数据确定拓扑中的链路来确定网络拓扑的处理器(702),其中每次迭代包括:
如果选择的网络接口在连接数据中具有一个目的地接口,则在拓扑中添加从在连接数据中识别的选择的网络接口到在连接数据中识别的目的地网络接口的链路;
如果选择的网络接口在连接数据中具有y个目的地接口,其中y>1,则添加未知域到拓扑;和
如果链路被添加到拓扑,则从连接数据中移除与添加的链路关联的接口。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161467850P | 2011-03-25 | 2011-03-25 | |
US61/467,850 | 2011-03-25 | ||
PCT/US2011/055749 WO2012134537A1 (en) | 2011-03-25 | 2011-10-11 | Network topology discovery |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103444149A true CN103444149A (zh) | 2013-12-11 |
Family
ID=46931821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800695768A Pending CN103444149A (zh) | 2011-03-25 | 2011-10-11 | 网络拓扑发现 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130322298A1 (zh) |
EP (1) | EP2689568A4 (zh) |
CN (1) | CN103444149A (zh) |
WO (1) | WO2012134537A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9225604B2 (en) * | 2012-04-05 | 2015-12-29 | International Business Machines Corporation | Mapping requirements to a system topology in a networked computing environment |
US20140082128A1 (en) * | 2012-09-18 | 2014-03-20 | Netapp, Inc. | Dynamic detection and selection of file servers in a caching application or system |
US9355036B2 (en) | 2012-09-18 | 2016-05-31 | Netapp, Inc. | System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers |
US8934378B1 (en) * | 2012-09-30 | 2015-01-13 | Emc Corporation | Resilient cache-based topology detection of a dynamic cluster |
US10860529B2 (en) | 2014-08-11 | 2020-12-08 | Netapp Inc. | System and method for planning and configuring a file system migration |
US9311331B2 (en) | 2013-08-27 | 2016-04-12 | Netapp, Inc. | Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system |
US9300692B2 (en) | 2013-08-27 | 2016-03-29 | Netapp, Inc. | System and method for implementing data migration while preserving security policies of a source filer |
US9304997B2 (en) | 2013-08-27 | 2016-04-05 | Netapp, Inc. | Asynchronously migrating a file system |
US20160041996A1 (en) | 2014-08-11 | 2016-02-11 | Netapp, Inc. | System and method for developing and implementing a migration plan for migrating a file system |
US9311314B2 (en) | 2013-08-27 | 2016-04-12 | Netapp, Inc. | System and method for migrating data from a source file system to a destination file system with use of attribute manipulation |
US9577910B2 (en) * | 2013-10-09 | 2017-02-21 | Verisign, Inc. | Systems and methods for configuring a probe server network using a reliability model |
WO2016003420A1 (en) * | 2014-06-30 | 2016-01-07 | Hewlett-Packard Development Company, L.P. | Determination of a network cloud containing an uncontrolled network device based on link data of controlled network devices |
US9716631B2 (en) | 2014-10-24 | 2017-07-25 | International Business Machines Corporation | End host physical connection on a switch port using multiple ethernet frames |
US10033591B2 (en) | 2015-07-08 | 2018-07-24 | International Business Machines Corporation | Using timestamps to analyze network topologies |
CN105930118B (zh) * | 2016-04-15 | 2020-07-21 | 广东威创视讯科技股份有限公司 | 拼接墙系统网络拓扑图的绘制方法及系统 |
US10509541B2 (en) * | 2016-10-25 | 2019-12-17 | Servicenow, Inc. | System and method for generating geographical maps for initiating discovery of a computer network |
US10320619B2 (en) * | 2016-11-12 | 2019-06-11 | Solana Networks Inc. | Method and system for discovery and mapping of a network topology |
JP7024536B2 (ja) * | 2018-03-22 | 2022-02-24 | Smk株式会社 | トポロジマッピングプログラム、トポロジマッピング方法及びトポロジマッピングシステム |
US11153172B2 (en) | 2018-04-30 | 2021-10-19 | Oracle International Corporation | Network of nodes with delta processing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1054533A2 (en) * | 1999-05-04 | 2000-11-22 | Nortel Networks Limited | System and method to discover physical connectivitiy between end nodes and networking devices |
US6697338B1 (en) * | 1999-10-28 | 2004-02-24 | Lucent Technologies Inc. | Determination of physical topology of a communication network |
US20080089330A1 (en) * | 2006-10-16 | 2008-04-17 | Andrew John Ballantyne | Connectivity outage detection based on a multicast management mpls-vpn group |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5708772A (en) * | 1994-04-29 | 1998-01-13 | Bay Networks, Inc. | Network topology determination by dissecting unitary connections and detecting non-responsive nodes |
US7292541B1 (en) * | 2004-01-28 | 2007-11-06 | Novell, Inc. | Methods and systems for unnumbered network link discovery |
JP4008432B2 (ja) * | 2004-06-02 | 2007-11-14 | 富士通株式会社 | ネットワーク機器のトポロジを探索する装置および方法 |
US8352632B2 (en) * | 2005-10-26 | 2013-01-08 | Level 3 Communications, Llc | Systems and methods for discovering network topology |
US8134922B2 (en) * | 2008-09-12 | 2012-03-13 | Cisco Technology, Inc. | Reducing flooding in a bridged network |
JP5234544B2 (ja) * | 2008-10-14 | 2013-07-10 | 独立行政法人理化学研究所 | ネットワーク構成情報取得方法および装置 |
-
2011
- 2011-10-11 WO PCT/US2011/055749 patent/WO2012134537A1/en active Application Filing
- 2011-10-11 US US13/984,976 patent/US20130322298A1/en not_active Abandoned
- 2011-10-11 EP EP11862410.5A patent/EP2689568A4/en not_active Withdrawn
- 2011-10-11 CN CN2011800695768A patent/CN103444149A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1054533A2 (en) * | 1999-05-04 | 2000-11-22 | Nortel Networks Limited | System and method to discover physical connectivitiy between end nodes and networking devices |
US6697338B1 (en) * | 1999-10-28 | 2004-02-24 | Lucent Technologies Inc. | Determination of physical topology of a communication network |
US20080089330A1 (en) * | 2006-10-16 | 2008-04-17 | Andrew John Ballantyne | Connectivity outage detection based on a multicast management mpls-vpn group |
Non-Patent Citations (1)
Title |
---|
HASSAN GOBJUKA 等: "Ethernet Topology Discovery for Networks With Incomplete Information", 《IEEE/ACM TRANSACTIONS ON NETWORKING》, 1 August 2010 (2010-08-01), XP058002842, DOI: doi:10.1109/TNET.2009.2039757 * |
Also Published As
Publication number | Publication date |
---|---|
WO2012134537A1 (en) | 2012-10-04 |
US20130322298A1 (en) | 2013-12-05 |
EP2689568A4 (en) | 2014-11-26 |
EP2689568A1 (en) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103444149A (zh) | 网络拓扑发现 | |
EP2050237B1 (en) | Mapping off-network traffic to an administered network | |
Haddadi et al. | Network topologies: inference, modeling, and generation | |
US10623303B2 (en) | Method of routing data and switch in a network | |
CN104350467B (zh) | 用于使用sdn的云安全性的弹性实行层 | |
CN106464585B (zh) | 用于压缩数据网络的转发状态的方法和系统 | |
CN103416010B (zh) | 网络在协议之间的自动转换 | |
US7543045B1 (en) | System and method for estimating the geographical location and proximity of network devices and their directly connected neighbors | |
CN101473605B (zh) | 用于确定因特网服务供应商的预期对等合作者的方法 | |
CN109451540B (zh) | 一种网络切片的资源分配方法和设备 | |
CN109818858B (zh) | 用于实现域间拓扑关系自动拼接的方法、装置和系统 | |
CN108011746A (zh) | 基于Traceroute及SNMP协议的IP级全球互联网拓扑测绘方法 | |
CN107426343A (zh) | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 | |
CN106713130A (zh) | 一种路由表更新方法、evpn控制设备及evpn系统 | |
WO2017170103A1 (ja) | ネットワークシステム、ネットワーク制御装置、方法およびプログラム | |
CN104468387B (zh) | 可扩展路由器中ospf链路状态信息的分布式存储方法 | |
JP6879304B2 (ja) | サーバ、スイッチ、通信システム、通信方法、及びプログラム | |
CN110730093B (zh) | 城域网网络拓扑测绘方法及装置 | |
CN108924011A (zh) | 用于ospf+路由协议的监测系统、相关设备、方法及介质 | |
EP2983333B1 (en) | A system and method for providing routes to physical residential gateways | |
CN102821052B (zh) | 虚拟专用局域网业务网络中查找转发信息的方法和装置 | |
US9158871B2 (en) | Graph modeling systems and methods | |
JP4808595B2 (ja) | ネットワーク情報収集システム及びネットワーク情報収集方法 | |
Ramos et al. | Solving heterogeneous fleet multiple depot vehicle scheduling problem as an asymmetric traveling salesman problem | |
CN107241236A (zh) | 转发信息库表项检测方法、检测设备及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131211 |
|
WD01 | Invention patent application deemed withdrawn after publication |