CN102801567B - 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法 - Google Patents

分层网络拓扑自动发现的方法和分层网络拓扑组建的方法 Download PDF

Info

Publication number
CN102801567B
CN102801567B CN201210310397.5A CN201210310397A CN102801567B CN 102801567 B CN102801567 B CN 102801567B CN 201210310397 A CN201210310397 A CN 201210310397A CN 102801567 B CN102801567 B CN 102801567B
Authority
CN
China
Prior art keywords
equipment
layer
layer equipment
mib
maco
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
CN201210310397.5A
Other languages
English (en)
Other versions
CN102801567A (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.)
Beijing Autelan Technology Co ltd
Beijing Hua Xinaotian Network Technology Co ltd
Original Assignee
Beijing Autelan Technology 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 Beijing Autelan Technology Co Ltd filed Critical Beijing Autelan Technology Co Ltd
Priority to CN201210310397.5A priority Critical patent/CN102801567B/zh
Publication of CN102801567A publication Critical patent/CN102801567A/zh
Application granted granted Critical
Publication of CN102801567B publication Critical patent/CN102801567B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

提供了一种分层网络拓扑自动发现的方法,所述方法包括:通过使用SNMP协议(简单网络管理协议)根据设备MIB库(管理信息库)采集MIB节点“ipFowarding”(转发标记,是RFC-1213-MIB库中标准的MIB节点)的值确定IP列表中的三层设备;通过SNMP协议根据MIB库采集确定的三层设备的路由表信息;通过采集到的路由表信息来得到直连网段和下一跳路由地址;通过ping 工具探测设备连通性;通过SNMP协议根据Bridge-MIB(网桥设备信息管理库)判断二层交换设备和采集二层设备FDB(MAC地址转发表)表,根据设备私有MIB采集设备详细信息。

Description

分层网络拓扑自动发现的方法和分层网络拓扑组建的方法
技术领域
本发明涉及分层网络拓扑自动发现,更具体地讲,涉及一种分层网络拓扑自动发现的方法以及分层网络拓扑组建的方法。
背景技术
网络拓扑是NMS(网管站)管理和监控网络的重要依据,它能直观地将现有的网络环境以图形的方式反映给用户,因此如何有效地发现网络拓扑在NMS中相当重要。
现在的NMS对网络设备的管理和监控使用的比较普遍的协议是SNMP(简单网络管理协议)。SNMP的目标是成为管理互联网上众多厂家生产的软硬件平台,因此SNMP受互联网标准网络管理框架的影响也很大。通过SNMP协议根据RFC中标准MIB(管理信息库)和不同设备厂商开发的私有MIB可获取设备信息、对设备状态的监控、设备之间连接关系发现和对设备的设置与操作等。
分层网络拓扑自动发现是主要是按照TCP/IP四层将设备归类为三层设备(主要是路由器)和二层设备(主要是交换机),OSI七层模型只作参考,在实际应用中按TCP/IP模型分层的设备较常见。发现手段主要是使用SNMP协议和其它网络工具(如ping,发送ICMP报文)分别发现各层设备,然后组建每层中设备与设备之间以及各层之间设备之间的关联关系,从而得出一张反映当前网络连接状态的拓扑结构图。
在这里讨论的网络拓扑发现中,按照按TCP/IP模型将网络设备在NMS管理中所工作的网络层次被划分为二层设备和三层设备(二层设备主要是交换机等工作在数据链路层的设备,三层设备主要是路由器,无线控制器(AC)等工作在网络层的设备),将三层设备之间的连接关系称为主干网络,以三层主干网络所存在的网段为基准发现各网段所存在的二层设备。因此,现有NMS管理的网络设备需要具备的基本条件:1.需要支持SNMP协议;2.支持SNMP标准的MIB库;3.设备厂商提供的私有MIB;4.设备需要配置管理IP地址,5.二层设备支持Bridge-MIB。图1中示出了现有技术中的分层网络拓扑自动发现的总体流程图。下面分别参照图2和图3来分别描述主干网络发现以及二层网络发现。
主干网络的发现是以三层设备的路由表作为依据来获取设备IP和连接关系,以一个三层设备作为主干网络发现的起点(如图2中的StartRouter)查找路由表以发现起点设备的直连网段和与之相连的下一跳三层设备(Router-A),完成起点设备的发现。到达Router-A之后再查找Router-A的路由表发现与之相连的下一跳三层设备(与之相连的可能不止一个三层设备,如图2所示的Route-B、Route-C、Route-D、Route-E、StartRouter。其中StartRouter是已发现过的设备,应该排除在外)和网段。如此重复发现全部的三层设备和网段。
在二层网络的发现过程中无法直接获取到网络中设备的IP地址。为了获取设备IP,首先按照网段和网段子网掩码计算当前网段的地址范围,使用ping命令逐一发送ICMP数据包探测IP是否连通,也就是ping通(如图3中的箭头表示ICMP发送,这里NMS所在服务器不在当前网段中)。如果IP连通则使用SNMP协议采集设备相关信息(如设备类型,MAC地址,厂商,OID等),因为二层网络不能像三层设备那样可以借助路由表组建设备关联关系,因此,为了解决这个问题采取的主要方法是采集交换机的FDB表(MAC地址转发表,记载了数据链路层转发设备的MAC地址)作为建立连接关系的依据。
因此,现有技术中存在的问题在于:1、在三层网络发现过程中,三层设备的发现是依赖设备的路由表,如果设备的路由表不完整可能导致有的三层设备可能被遗漏。2、在二层网络发现中,如果二层网络网段较多且网段范围较大,逐一使用Ping工具去探测各个IP比较可靠,但是比较耗时,而且设备的FDB表老化较快,所以给组建二层关系带来了困难。
发明内容
本发明的目的在于提供这样一种分层网络拓扑自动发现方法,通过该方法,能简单、有效的解决中小规模局域网中网络设备拓扑关系的发现,并能在发现完设备后较容易地组建出当前网络拓扑结构,使用户能够及时了解当前局域网的结构和设备当前的状态并为网络管理员检测当前网络故障和设备管理提供参考成为可能。
为了实现上述目的,提供了一种分层网络拓扑自动发现的方法,所述方法包括:通过网管系统NMS服务器的网关配置信息寻找首个三层设备;通过使用SNMP(简单网络管理协议)协议从标准RFC-1213-MIB(管理信息库)库中采集“ipForwarding”的值来确定三层IP列表中的三层设备;通过SNMP根据标准RFC-1213-MIB库采集确定的三层设备的路由表信息;通过采集到的路由表信息来得到直连网段和下一跳路由地址;根据三层设备直连网段范围发现二层设备;根据采集到设备信息路由表信息组建三层主干网络拓扑和根据设备FDB表信息组建二层网络拓扑。
确定三层IP列表中的初始三层设备的步骤可包括:以NMS所在的服务器上配置的网关IP确定作为初始值的三层设备IP,并将确定的作为初始值的三层设备IP加入到三层设备IP列表中。
三层设备判断的步骤可包括:如果通过SNMP协议的GET操作返回“ipForwarding”的值为“1”,说明此设备有路由转发功能,是一个三层的设备,如果GET操作返回“ipForwarding”的值为“2”或其它值,说明此设备不是三层设备。
所述方法还可包括:通过SNMP采集确定的三层设备的设备信息。
所述方法还可包括:通过路由表信息将得到的下一跳路由地址加入三层设备IP地址表中。
所述方法还可包括:根据得到的三层设备路由信息中的路由类型来获取所有三层设备的直连目的网段。
所述方法还可包括:根据路由表信息中的直连网段和网段子网掩码计算出网段的IP范围,作为二层拓扑设备发现的IP范围;循环计算出的二层设备发现的IP范围,检测是否有可ping通的IP;将可ping通的IP加入二层发现的IP列表中;判断可ping的IP对应设备的设备类型并采集所述对应的设备的信息。
优选地,计算出网段的IP范围的步骤可包括:把路由表信息中的子网掩码取反与网段IP相与就能求出最大IP,从而得出网段IP的范围。
优选地,判断可ping的IP对应的设备的设备类型的步骤可包括:通过使用SNMP从标准RFC-1213-MIB库中采集“ipForwarding”来确定设备类型。
优选地,如果“ipForwarding”的值不为“1”,则说明所述对应的设备为交换机或其他二层设备之一。
如果当前IP对应的设备支持Bridge-MIB,说明该设备是一个交换机,如果不支持Brigde-MIB,则通过获取“sysServices”的值来确定该设备是否为交换机或其他二层设备之一(获取“sysServices”的值,此方法只作为补充,它是网络OSI七层标准模型的MIB节点)。
优选地,采集所述对应的设备的信息的步骤可包括:使用设备的私有MIB采集设备相关详细信息,通过SNMP协议获取Bridge-MIB中的dot1dTpFdbTable表得到设备的FDB表(MAC地址转发表)。
所述方法还可包括:
主干网络组建:按照路由表信息,查找网段和网段相关联的三层设备,并将相关联的三层设备连接到网端上形成一张三层设备与网段连接的三层拓扑图。
二层设备组建:首先是三层设备到二层设备连接过渡,则是在二层设备FDB表保存项中统计转发过三层设备的MAC地址的端口,并找出端口的总共转发的MAC地址数最少的端口号和对应的二层设备,并将此二层设备作为第一个与三层设备相连的设备,完成了三层设备到二层设备的过渡,则二层设备的连接就是以二层设备作为起点。二层设备关系连接则是,则是按照设备的端口作为分支,统计端口分支下转发过的设备并从中统计出转发过根设备的端口,再统计出此类端口转发的MAC地址数最少的端口号和对应的二层设备,并将此设备与根相连,递归这个过程,因此每一个二层设备都有做为根设备的机会。
附图说明
图1示出了现有技术中的分层网络拓扑自动发现的总体流程图;
图2和图3分别描述主干网络发现以及二层网络发现;
图4是示出根据本发明实施例的主干网络发现的方法的流程图;
图5是描述主干网络拓扑组建的过程的流程图;
图6是描述二层网络发现的过程的流程图;
图7来描述二层网络拓扑组建的过程的流程图;
图8是示出二层网络中FDB的学习过程和设备连接推测示意图;
图9是一个二层网络拓扑组建过程的例图。
具体实施方式
现在,详细描述本发明的实施例,其示例在附图中表示,其中,相同的标号始终表示相同的部件。以下通过参考附图描述实施例以解释本发明。
图4是示出根据本发明实施例的主干网络发现的方法的流程图。
如图4所示,在步骤S401,确定三层设备发现的起点三层设备的IP。例如,NMS所在服务器上会配置网关的IP地址,这个IP地址是一个三层设备的IP地址,在这里以这个IP地址对应的设备作为主干网络发现的起点。
其中,通过使用SNMP协议从MIB库中采集“ipForwarding”来确定三层IP列表中的初始值(即确定作为起点的设备是否为三层设备)的过程具体描述如下:如果通过SNMP协议的GET操作返回“ipForwarding”到NMS的值为1,说明此设备有路由转发功能,是一个三层的设备,如果GET操作返回的值为2或者其它,说明此设备不是三层设备。
下面具体解释以上的三层设备的判断过程。
先解释SNMP管理模式和所用到MIB结构和含义。
在SNMP协议管理模式中包括:NMS(管理站),代理服务器(在被管理设备上),MIB(管理信息库,定义了可以通过网络管理协议进行访问的管理对象的集合),SMI(管理信息结构,用于定义MIB的格式和编码方式)。在SNMP协议中,MIB的结构是一个树形的结构,MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。结构如下:
以上图是SNMP协议定义的标准的MIB的一部分,从一个根节点开始,SNMP MIB的对象标识符结构定义了三个主要分支:
1)国际电报电话咨询委员会CCITT(现在的国际电信联盟的电信部门ITU-T)负责管理分支0,
2)国际标准化组织ISO负责管理分支1,
3)CCITT和ISO联合机构管理分支2。
在其下面ORG表示组织部门,再往下的DOD是美国国防部的子树(标号是6),再下面就是Internet(标号是1)。
在网络设备管理中,主要使用的Internet所在的分支,在MIB的表示中一个信息点完整表示是从根节点开始到本节点的完整的路径,如Internet节点的完整表示是的“ISO.ORG.DOD.INTERNET”或者用节点标号表示则是“.1.3.6.1”。
在Internet结点下面的第二个结点是mgmt(管理),标号是2,而再下面是设备管理信息库,结点名是mib-2。再往下就是RFC-1213定义的网络管理的各个分组(如system表示主机或网关信息,Interface表示网络接口信息等),其中ip表示网际信息分组(标号是4),在网际分组下面是网际分组的一些具体信息。
在网际组下规定了一组与网际相关的属性,如这里的ipForwarding就表示的是转发标记(其标号是1)。所以这点的完整表示是“.iso.org.dod.internet.mgmt.mib-2.ip.ipForwarding”或者用数字标号表示则是“.1.3.6.1.2.1.4.1”。
SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理之间的交换,其PDU是使用UDP协议传播的。
get-request:从代理进程处提取一个或多个参数值
get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值
set-request:设置代理进程的一个或多个参数值
get-response:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作。
trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
在数据采集中使用的get-request请求报文也就是一个GET操作,在此报文中包含了所要请求的信息的完整节点,如这里的“.iso.org.dod.internet.mgmt.mib-2.ip.ipForwarding”(相当于一个变量),此报文由设备上的代理服务器接收然后再返回给客户端(也就是NMS)一个get-response报文,其中包含了节点和节点值,如这里的“.iso.org.dod.internet.mgmt.mib-2.ip.ipForwarding”和它的值(相当于变量和变量值),它标识了受SNMP协议管理的设备是否具有网关设备所具有的路由转发功能(节点取值范围INTEGER{forwarding(1),not-forwarding(2)},是一个integer的整数,如果是“1”表示设备具有路由转发功能,“2”或者其它值表示设备不具有转发功能)。
在步骤S402,将确定的三层设备的IP加入到三层设备IP列表中。
随后,在步骤S403,NMS通过SNMP协议来采集起点三层设备的设备信息以及路由表信息。具体地讲,NMS通过SNMP协议的GET操作,即向该起点三层设备发出get-request请求报文(在报文中包含了该设备信息的MIB节点),再由该起点三层设备上的代理服务器做出响应发送get-response报文,该报文包含了各个MIB点的具体值(MIB节点相当于一个变量,返回了变量对应的值)。这里采集设备的信息会使用到设备的私有MIB。
具体地讲,NMS管理站通过SNMP协议的GET操作发出get-request报文(例如,包含“.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID”节点)来请求该起点三层设备上的代理服务器返回节点值,从而取得MIB节点sysObjectID的值就可以取到设备厂商所定义的顶级私有MIB节点,比如IBM顶级MIB为{1.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}(这里使用的是MIB节点标号表示MIB完整结构)等等,根据私有MIB即可区分设备是哪一个厂商的设备,前提是NMS得拥有此设备厂商的私有MIB。其中,sysObjectID是RFC-1213-MIB中标准的MIB节点,他的值是设备厂商所拥有的私有MIB最顶级MIB节点,每一个厂商所定义的私有MIB节点的节点数值是不一样。
NMS管理站根据得到的私有MIB获取起点三层设备的基本信息,以此可以确定出此三层设备具体是什么设备(路由器或者AC等有路由转发功能的设备)。
此外,NMS管理站还可通过SNMP协议的GET操作发出get-request报文(例如,包含“.iso.org.dod.internet.mgmt.mib-2.ip.ipRouteTable”节点)来请求该起点三层设备上的路由信息值,是通过取得MIB节点中的ipRouteTable节点的值来得知该起点三层设备的路由表信息。其中,ipRouteTable包括路由目的网段ipRouteDest、下一跳路由地址ipRouteNextHop、路由类型ipRouteType、目标网段子网掩码ipRouteMask以及路由端口索引号ipRouteIfIndex。
在步骤S404,NMS管理站可通过获取的路由表信息来得到直连网段和下一跳路由地址。
根据路由表信息中的路由类型ipRouteType的值(包括other(1)、invalid(2)、direct(3)、indirect(4)),来提取直连网段和下一条路由。换句话说,当路由类型ipRouteType的值为“3”时,那么路由目的网段ipRouteDest为直连网段,当路由类型ipRouteType的值为“4”时,那么下一跳路由地址ipRouteNextHop的IP就是下一跳路由设备的IP。下一跳路由地址ipRouteNextHop也可能是一个主机的地址,所以得做一次IP所对应的是否支持路由转发的判断。
以下是一张路由表保存项的示例:
  Device MAC   ipRouteDest   ipRouteNextHop   ipRouteType   ipRouteMask   ipRouteIfIndex
  00:1F:64:FF:FF:F0   0.0.0.0   192.168.6.1   4   0.0.0.0   1
  00:1F:64:FF:FF:F0   18.1.2.0   0.0.0.0   3   255.255.255.0   3
  00:1F:64:FF:FF:F0   101.0.0.0   0.0.0.0   3   255.255.255.0   5
  00:1F:64:FF:FF:F0   169.254.1.0   0.0.0.0   3   255.255.255.0   8
以上示例仅供参考。
如果存在下一跳路由地址,则在步骤S402,NMS管理站将得到的下一跳路由地址加入三层设备IP地址表中。
在完成主干网络发现过程之后,下面参照图5来描述主干网络拓扑组建过程的流程图,该流程图用于说明主干网络的组建。
主干网络组建的必要前提条件是:三层设备基本信息和三层设备路由信息,其中,三层设备基本信息包括设备MAC,IP,子网掩码等,三层设备路由信息包括目的网段,下一跳路由,路由类型,直连端口索引,子网掩码。上述信息均可以从主干网络发现的结果中得到。
如图5所示,在步骤501,根据得到的三层设备路由信息中的路由类型(路由类型值为“3”)来获取所有三层设备的直连目的网段,从而组成一个直连网段IP列表。
在步骤S502,循环直连网段IP列表,判断是否有可取的直连网段IP,也就是检测是否有网段的存在。
如果列表中有直连网段IP,则在步骤S503,根据该直连网段IP在路由表信息列表中查询与该网段相关的路由信息,并根据得到的直连网段IP的相关路由信息,从相关路由信息中查找该路由信息相关的三层设备。否则,如果没有可取的网段IP则组建过程结束。
在步骤S504,将该直连网段IP的网段与查询到的三层设备连接。
下面参照图6来描述二层网络发现的过程。
在步骤S601,根据参照图4描述的三层网络拓扑发现所得到的路由表信息计算出网段的IP范围,作为二层拓扑发现起始IP范围。
计算网段的IP范围的操作如下:
从路由表中查询直连路由的路由信息(目的网段ipRouteDest,下一条路由ipRouteNextHop,路由类型ipRouteType,路由子网掩码ipRouteMask,路由端口ipRouteIfIndex),ipRouteType的值为“3”表示直连路由。即查询ipRouteType的值为“3”的IP地址的路由信息。
从路由表中取出ipRouteType=3的路由信息的ipRouteDest目的网段和ipRouteMask子网掩码,这表示与当前设备直连的网段。
使用获取的目的网段ipRouteDest和子网掩码ipRouteMask,把子网掩码取反与网段IP相与就能求出最大IP,从而得出网段IP的范围。
在步骤S602,循环计算出的起始IP范围,检测是否有可ping的IP。NMS通过调用其所在服务器的ping命令向IP发送ICMP数据包,返回的结果中若有TTL(生存时间)说明设备可达,即当前的IP对应了一个设备,如果返回结果中有“request timeout”“destination host unreachable”等信息则表示IP对应设备是不可达的,则看着当前网络中这个IP没有对应的设备。
在步骤S603,将可ping通的IP加入IP列表中。
在步骤S604,判断可ping通的IP对应的设备的设备类型。
具体地讲,通过使用SNMP协议从MIB库中采集转发标记来确定设备类型。即,通过使用SNMP协议根据RFC-1213-MIB采集设备标准MIB节点“.iso.org.dod.internet.mgmt.mib-2.ip.ipForwarding”的值。如果“ipForwarding”的值为“1”,说明在主干网络发现过程中路由表的不完整导致没有发现到当前设备,可继续开启主干网络发现以补全主干网络的发现。如果“ipForwarding”的值不为“1”,说明此设备可能是一个交换机或者主机。
只有交换机设备支持Brigde-MIB,如果当前IP设备支持Bridge-MIB,说明该设备是一个交换机,如果不支持Brigde-MIB,作为一个补充可采集设备标准的MIB节点“.iso.org.dod.internet.mgmt.mib-2.system.sysServices”(此节点是根据OSI七层网络模型标准确定设备的服务层级仅做为参考,现在设备可能按TCP/IP四层标准的较多),可指出这个设备可能会提供的服务程序集,如果sysServices节点的值为“72”也可以判断是在数据链路层则可以判断设备是一个交换机,如果值为“76”说明是一个主机。
其中,Bridge-MIB是RFC中标准MIB套件,是针对网桥设备的一组标准的MIB库。在局域网中交换机设备具有网桥的功能,如具有帧转发、帧过滤和生成树算法功能。支持Bridge-MIB,也就是通过SNMP协议发送带有Bridge-MIB库中MIB的get-request报文给设备的SNMP代理服务器,如果能从代理服务器返回给客户端对应MIB的值则说明该设备支持Bridge-MIB。
在步骤S605,采集该设备的信息。具体地讲,使用设备的私有MIB采集设备相关详细信息,使用SNMP协议采集Bridge-MIB的“dot1dTpFdbTable”表获取设备的FDB表,表中包括学习到的设备MAC,端口,端口状态等信息。
下面参照图7来描述二层网络拓扑组建的过程。
二层网络拓扑组建不如三层拓扑组建那么直观,三层可以依赖路由表按照转发规则将设备关系组建起来,在本方案中是采集了交换机的FDB表,FDB表保存了交换机在二层转发中学习的被转发设备的MAC地址并与交换机的端口对应关系,在组建二层网络拓扑结构的时候可以使用FDB表中的转发信息组建二层网络设备的连接关系。
二层网络组建的前提条件是能通过Bridge-MIB采集到交换机的FDB表。FDB表中是设备的各个端口对应到的在二层转发中学习到的被转发设备MAC地址和与端口直接相连的设备MAC地址(这里统称学习到的MAC)。在获取二层设备FDB表后应保存三项内容:MACo表示的是一个二层设备本身的MAC地址,MACa表示的MAC地址为MACo的二层设备学习到的MAC地址,PORTn表示的是MAC地址为MACo的二层设备对应端口号,MACt表示一个将要作为根的设备的MAC地址的标记。另外T表示分组统计数。
下面参照图7和图9来详细描述二层网络拓扑组建的过程,再按图8说明二层转发FDB学习和设备连接的推测方法,以作为拓扑组建的补充。
下面描述二层网络设备连接关系的组建:
在步骤S701,开始三层设备到二层设备过渡:
在步骤S702中确定一个设备MAC(后面步骤中用MACt标记)并以此设备作为根:首次建立二层拓扑关系则从已经发现的三层设备中取得一个三层设备的MAC地址(在图中则为MACr)并以此三层设备作为起始再选中其中的一个端口连接的网段作为设备范围,以后查询的二层设备必须是这个网段中设备(这里将此三层设备记作:Router-N,三层设备的MAC地址在三层设备发现过程中通过SNMP使用RFC-1213-MIB中的MIB就可以获取到),用MACt标记(即MACt=MACr);
在步骤S703中,从已发现的设备FDB保存项中查询MACa=MACt的记录集合(包括MACa,PORTn,MACo三个字段);
在步骤S704中,根据步骤S703的结果中的PORTn和MACo分组统计对应的学习到MACa的个数(这里的个数是将MACt也算入其中的,统计范围是在所有的FDB记录中,这里记作T),这里结果应为:T,PORTn,MACo;
在步骤S705中,从步骤S704中筛选出T最小的记录,并获取MACo,那么MACo对应的设备就是与根设备直连的一个二层设备,记作Switch-m(如图9中的Switch-1),所以在组织关系的图时候将此设备连接到根上面,并且根据步骤S704中T最小的记录提取对应的端口号PORTn,可以确定是从根开始一根线与设备Switch-m的PORTn口相连(即图中的Router-N连接到Switch-1的1端口上)。
步骤S706,三层设备到二层设备过渡结束。从步骤S702到S705是从一个三层设备作为根设备往二层设备延伸的过程。因此,在进行以上步骤S702到S705之后,可以将一个二层设备连接到三层设备下。
在步骤S707中,再往下开始二层设备连接,以步骤S705中的Switch-m开始往下延伸。在步骤S708中,就是以Switch-m为根,并把上一次操作的根设备相关的FDB表记录排除在外,条件为MACa=MACt(即图中把所有MACa=MACr的FDB保存记录排除)。并以当前的Switch-m作为最顶级根执行以下步骤。
此外,在步骤S708,以Switch-m的地址MACo记作根设备地址MACt,从FDB保存项中按照MACo和端口PORTn分组查询出每个端口中对应学习到的MAC地址MACa,得到本设备各端口FDB记录表集合,包括:MACa,PORTn,MACo。
在步骤S709,以步骤S708中得到的FDB记录集合,并在记录集合中按照端口PORTn(若此时端口是Switch-1的2端口)寻找与当前端口分支的所有设备也就是记录集合中对应的MACa集合,MACa集合对应的设备即是当前端口分支的设备(如图9所示,Switch-1的2号端口分支设备即为Switch-2、4、5)。
步骤S710,以步骤S709中得到的MACa集合为基础,统计出设备MACo集合且MACo在MACa集合中,同时查询出MACo对应设备的端口PORTn,结果包括:MACa,PORTn,MACo,并以此结果按照PORTn对应的MACa=MACt筛选端口,这里也就是筛选一个设备中转发过根设备的MAC地址的端口(如图9所示,Switch-2、4、5的1端口)。
步骤S711,根据步骤S710最终结果获取筛选设备端口对应记录(MACo,PORTn),并按照此结果分组统计各分支设备端口中MACa的个数T。
步骤S712,以步骤S711分组统计结果为基础,筛选T最小对应的记录(MACo,PORTn),那么其中的MACo对应的设备即是与Switch-m连接的,并且与假设MACo对应的设备是Switch-n(假设为图中的Switch-2),那么Switch-m是与Switch-n的PORTn端口连接(即使Switch-1与Swtich-2的1端口相连)。
其它二层设备与二层设备之间的连接如步骤S708-S712,在步骤S713可递归执行此过程,每一个二层设备都有作根的机会,直到没有可连接的设备为止。注意在寻找连接关系之前要剔除已经作过根设备对应的MAC地址在MACa中出现的记录。
图8是示出二层网络拓扑设备FDB表学习和二层设备连接推测的示意图。
在图8所示的二层拓扑结构中FDB的学习过程,在图8中标出了部分设备端口所学习到的MAC地址,这些地址是存放在FDB表中的。以交换机Switch-C为例,在Switch-C的FDB表的转发信息中,F0/1端口对应的MAC地址可以通过按照图中箭头的转发方式学习到,设备通过STP(Spanning TreeProtocol)生成树协议实现的并防止了网络回路,所以从逻辑上不会有环形拓扑的出现。
按照Switch-C这种转发方式,在Switch-A的F0/1端口中只有路由器Router-N的MAC地址的一条记录,其它交换机的端口要么没有Router-N的MAC地址,要么还有其它的MAC地址,由此可以推测出FDB中端口只对应Router-N的MAC地址的交换机是与路由器连接的。
找到与路由器连接的顶级交换机Switch-A后,再查找与Switch-A相连的其它设备(这里只关注本网段拓扑中的设备,需要把其它设备的MAC排除再外),通过Switch-A的FDB表可找到F0/2端口中也对应一个MAC地址,并且是来自主机PC-A的,也可以判断PC-A是与Switch-A的F0/2端口连接的。
在推测Swtich-A的F0/3端口连接设备的时候也是根据FDB表中端口F0/3所对应的MAC地址表(按照交换机MAC地址学习方式此端口下只有:Switch-B,PC-B,PC-C这三个设备的MAC地址)得到与此端口连接的二层网络的一个分支(在推测这个分支的连接关系时候只关注此分支下所有设备的MAC地址并将不在此分支下的设备MAC排除在外),那么在此条件下推测这几个设备与Swtich-A是直连的方式与推测Switch-A与路由Router-N路由器直连方式一样。
在二层网络发现中可能出现集线器(HUB)这样的设备,它是工作在物理层的且不是依靠MAC地址来实现数据转发的,它实际不是一个二层的设备。在推测设备PC-B,PC-C,Switch-B这个分支的连接关系的时候,如果假设在F0/3在端口对应的MAC列表中出现了另外一个设备PC-W,假设PC-W确实存在,那么可以推测在F0/3端口下可能有一个集线器(hub),设备PC-B、PC-W是连接到集线器上然后接入到交换机的F0/3端口的。
通过根据本发明实施例的分层网络拓扑自动发现方案,将设备分为二层设备和三层设备,通过分层发现各层设备让发现的层次变得清晰,简化了发现过程,比较有通用性。
尽管已经参照本发明的实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。

Claims (9)

1.一种分层网络拓扑自动发现的方法,所述方法包括:
通过网管系统NMS服务器的网关配置信息寻找首个三层设备;
通过使用简单网络管理协议SNMP从标准RFC-1213-管理信息库MIB库中采集“ipForwarding”的值来确定IP列表中的三层设备;
通过SNMP根据标准RFC-1213-MIB库采集三层设备的路由表信息;
通过采集到的路由表信息来得到直连网段和下一跳路由地址;
通过路由表信息将得到的下一跳路由地址并加入三层设备IP地址表中;
根据三层设备直连网段范围发现二层设备;
根据路由表信息中的直连网段和网段子网掩码计算出网段的IP范围,作为二层拓扑设备发现的IP范围;
循环计算出的二层设备IP范围,检测是否有可ping通的IP;
将可ping通的IP加入二层发现的IP列表中;
判断可ping的IP对应设备的设备类型并采集所述对应的设备的信息,其中,通过使用SNMP从标准RFC-1213-MIB库中采集“ipForwarding”来确定设备类型,其中,如果“ipForwarding”的值为“1”,则说明在三层设备发现过程中路由表的不完整导致没有发现到当前设备,继续开启三层设备发现以补全三层设备的发现;如果“ipForwarding”的值不为“1”,则说明所述对应的设备为交换机或其他二层设备之一;
根据二层设备采集的信息组建二层网络连接关系。
2.如权利要求1所述的方法,其中,确定三层IP列表中的三层设备的步骤包括:通过NMS所在的服务器上面配置的网关IP去确定第一个三层设备。
3.如权利要求1所述的方法,其中,确定三层IP列表中的三层设备的步骤包括:如果通过SNMP的GET操作返回“ipForwarding”的值为1,说明此设备有路由转发功能,是一个三层的设备,如果GET操作返回“ipForwarding”的值为2或者其它值,说明此设备不是三层设备。
4.如权利要求1所述的方法,还包括:通过SNMP采集确定的三层设备的设备信息。
5.如权利要求1所述的方法,还包括:
根据得到的三层设备路由信息中的路由类型来获取所有三层设备的直连目的网段。
6.如权利要求1所述的方法,其中,计算出网段的IP范围的步骤包括:把路由表信息中的子网掩码取反与网段IP相与就能求出最大IP,从而得出网段IP的范围。
7.如权利要求1所述的方法,其中,如果当前IP对应的设备支持Bridge-MIB,说明该设备是一个交换机,如果不支持Brigde-MIB,则通过“sysServices”的值来确定该设备是否为交换机和其他二层设备之一。
8.如权利要求1所述的方法,采集所述对应的设备的信息的步骤包括:通过设备私有MIB库采集设备相关详细信息,通过Bridge-MIB采集dot1dTpFdbTable表获取设备的转发表FDB。
9.如权利要求1所述的方法,还包括组建二层网络连接关系,包括:
从三层设备到二层设备过渡;二层设备与二层设备连接,
其中,从三层设备到二层设备过渡的步骤包括:
从已发现的三层设备中确定一个三层设备作为一个根设备,根设备的MAC地址记为根地址MACt;
从已发现的设备FDB保存项中查询MACt=MACa的记录集合,所述FDB记录集合包括MACa、PORTn、MACo,根据此结果确定二层设备中转发过根设备MAC地址MACt的端口和设备地址;
根据查询的记录集合中的PORTn和MACo分组统计对应的学习到MACa的个数T,其中PORTn是必须转发过MACt的端口;
筛选出T最小的记录,并获取MACo,那么MACo对应的设备就是与根设备直连的第一个二层设备,
其中,二层设备与二层设备连接的步骤包括:
以根设备端口转发过的MAC的FDB保存记录为基础,从FDB保存项中剔除已经做过根的设备MAC的记录,剔除条件是设备MACt=MACa,再将与根直连二层设备作为根设备,并将此设备MAC标记为MACt,并查询MACa=MACt的所有FDB保存项记录集合,包括:MACa、PORTn、MACo;
确定根端口分支FDB记录,其中,按照根端口PORTn和MACo,且MACo=MACt,确定端口PORTn下转发过的所有设备MACa,MACa对应的记录为端口FDB记录;
在根端口分支中确定一个与根连接的设备,其中,根据PORTn和MACo分组统计MACa个数T,条件按照MACo是根设备端口分支中转发过的设备的地址,且MACo对应的端口要转发过根设备MAC地址,结果集包括T、PORTn、MACo,再筛选出结果集中T最小记录对应的MACo,则此MACo对应的设备为与根连接的设备,且被连接的端口是结果集中对应的PORTn;
递归操作二层设备与二层设备连接的过程,直到没有可连接的二层设备为止,
其中,MACo表示的是一个二层设备本身的MAC地址,MACa表示的MAC地址为MACo的二层设备学习到的MAC地址,PORTn表示的是MAC地址为MACo的二层设备对应端口号,MACt表示一个将要作为根的设备的MAC地址的标记,T表示分组统计数。
CN201210310397.5A 2012-08-28 2012-08-28 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法 Active CN102801567B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210310397.5A CN102801567B (zh) 2012-08-28 2012-08-28 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210310397.5A CN102801567B (zh) 2012-08-28 2012-08-28 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法

Publications (2)

Publication Number Publication Date
CN102801567A CN102801567A (zh) 2012-11-28
CN102801567B true CN102801567B (zh) 2015-07-08

Family

ID=47200540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210310397.5A Active CN102801567B (zh) 2012-08-28 2012-08-28 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法

Country Status (1)

Country Link
CN (1) CN102801567B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103036725B (zh) * 2012-12-17 2015-08-19 华为技术有限公司 一种网络拓扑发现的方法和网络管理设备
CN104301192B (zh) * 2013-07-18 2019-06-11 新华三技术有限公司 一种vpn组网的网络设备发现方法及装置
US9871717B2 (en) 2014-04-25 2018-01-16 Metaswitch Networks Ltd Data processing
US9923799B2 (en) 2014-04-25 2018-03-20 Metaswitch Networks Ltd. Data processing
US10063456B2 (en) 2014-04-25 2018-08-28 Metaswitch Networks Ltd Data processing
CN104158748B (zh) * 2014-07-21 2017-06-16 南京邮电大学 一种面向云计算网络的拓扑探测方法
CN104219100A (zh) * 2014-09-30 2014-12-17 迈普通信技术股份有限公司 一种信息采集方法和装置
JP6600964B2 (ja) * 2015-03-31 2019-11-06 富士通株式会社 経路表示方法、経路表示プログラム、及び経路表示装置
TWI568232B (zh) * 2015-06-30 2017-01-21 Get the correct way to connect the network device with the common protocol SNMP
CN107181829B (zh) * 2016-03-10 2020-09-11 北京神州泰岳软件股份有限公司 一种监测ip地址状态的方法和装置
CN107124302A (zh) * 2017-04-19 2017-09-01 国网福建省电力有限公司 基于信息系统综合网管系统的资源动态发现方法
CN107040423B (zh) * 2017-05-16 2020-06-16 上海上讯信息技术股份有限公司 一种网络拓扑发现的方法及系统
CN107566151B (zh) * 2017-05-22 2020-06-16 广东科学技术职业学院 一种分层网络层间拓扑自动生成的方法及其装置
CN107659445B (zh) * 2017-09-25 2020-08-11 北京维联众诚科技有限公司 实时检测网络中设备类型的方法和网络拓扑链路计算方法
CN108011746B (zh) * 2017-10-25 2021-06-29 北京知道未来信息技术有限公司 基于Traceroute及SNMP协议的IP级全球互联网拓扑测绘方法
CN108282362B (zh) * 2017-12-29 2021-05-14 武汉璞华大数据技术有限公司 一种网络拓扑生成方法、装置和设备
CN110430080B (zh) * 2019-08-07 2021-02-05 国家计算机网络与信息安全管理中心 网络拓扑探测方法及装置
CN110620682B (zh) * 2019-08-26 2023-01-06 奇安信科技集团股份有限公司 资源信息的获取方法及装置、存储介质、终端
CN110932906A (zh) * 2019-12-02 2020-03-27 合肥城市云数据中心股份有限公司 基于snmp技术的数据中心网络拓朴结构发现方法及其拓朴结构发现系统
CN112822053B (zh) * 2021-01-13 2023-04-07 科大国创云网科技有限公司 一种基于snmp的链路层网络拓扑结构发现方法及系统
CN112953833B (zh) * 2021-03-25 2022-04-15 全讯汇聚网络科技(北京)有限公司 基于网桥实现三层路由转发的方法、系统及网关设备
CN114024859B (zh) * 2021-11-24 2024-03-26 山西合力创新科技股份有限公司 基于设备和链路发现的网路拓扑生成方法、存储介质及终端
CN114257537B (zh) * 2021-12-06 2023-06-27 上海新炬网络信息技术股份有限公司 基于多维度优先的网络拓扑自发现方法
CN114244763B (zh) * 2021-12-20 2023-11-17 中电福富信息科技有限公司 基于规则引擎的动态网络拓扑管理方法及其系统
CN115277437B (zh) * 2022-07-29 2023-12-01 湖南大学 网络拓扑构建方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009049292A1 (en) * 2007-10-12 2009-04-16 Nortel Networks Limited Ip network and performance monitoring using ethernet oam
CN1756189B (zh) * 2004-09-30 2010-04-14 北京航空航天大学 基于snmp的ip网络拓扑发现方法
CN102143007A (zh) * 2011-05-03 2011-08-03 中国南方电网有限责任公司 基于分布式的多级网络拓扑发现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1756189B (zh) * 2004-09-30 2010-04-14 北京航空航天大学 基于snmp的ip网络拓扑发现方法
WO2009049292A1 (en) * 2007-10-12 2009-04-16 Nortel Networks Limited Ip network and performance monitoring using ethernet oam
CN102143007A (zh) * 2011-05-03 2011-08-03 中国南方电网有限责任公司 基于分布式的多级网络拓扑发现方法

Also Published As

Publication number Publication date
CN102801567A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102801567B (zh) 分层网络拓扑自动发现的方法和分层网络拓扑组建的方法
Breitbart et al. Topology discovery in heterogeneous IP networks: the NetInventory system
Breitbart et al. Topology discovery in heterogeneous IP networks
EP2223466B1 (en) Topology discovery in heterogeneous networks
US8675517B2 (en) Filtering of map topology based on network discovery characteristics
CN104518967B (zh) 路由方法、设备和系统
US20050047350A1 (en) Apparatus and methods for discovery of network elements in a network
CN108206792B (zh) 交换机的拓扑结构发现方法及装置
JP6193473B2 (ja) コンピュータ実施方法、コンピュータプログラム製品及びコンピュータ
CN107733713B (zh) 混合网络中网络拓扑的获取方法、系统、设备及存储介质
WO2009139809A1 (en) Using spanning tree protocol (stp) to enhance layer-2 network topology maps
US10848402B1 (en) Application aware device monitoring correlation and visualization
WO2014169969A1 (en) Identification of the paths taken through a network of interconnected devices
CN103905314A (zh) 综合型网络拓扑发现方法
US7870246B1 (en) System, method, and computer program product for platform-independent port discovery
US11032124B1 (en) Application aware device monitoring
CN107124297A (zh) 基于zabbix的SNMP网络拓扑发现方法及装置
CN113542015B (zh) 一种自动绘制网络物理链路方法
US20040215781A1 (en) Techniques for determining device connectivity in a network using protocol-specific connectivity information
US9210046B2 (en) Zone-based network traffic analysis
CN109728959A (zh) 一种网络拓扑结构自动分析方法、装置和设备
US20130246603A1 (en) System, method, and computer program product for automatic router discovery
Pandey et al. Ip network topology discovery using snmp
CN105812168B (zh) 一种绘制网络拓扑图的方法和装置
Zhangchao et al. An algorithm and implementation of network topology discovery based on SNMP

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 100193 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun Software Park Building 5 Building 2 layer Hanvon Technology

Applicant after: BEIJING AUTELAN TECHNOLOGY Co.,Ltd.

Address before: 100085 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun Software Park Building 5 Building 2 layer Hanvon Technology

Applicant before: Beijing AUTELAN Technology Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: AUTELAN TECHNOLOGY INC. TO: BEIJING AUTELAN TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: 100193, No. 1, building three, zone 9, Zhongguancun Software Park, 8 West Wang Xi Road, Beijing, Haidian District

Patentee after: Beijing AUTELAN Technology Co.,Ltd.

Address before: 100193 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun Software Park Building 5 Building 2 layer Hanvon Technology

Patentee before: BEIJING AUTELAN TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20151124

Address after: 100085 Beijing, East Road, No. 1, building on the north side of the building, room 313, room 3

Patentee after: Beijing Hua Xinaotian network technology Co.,Ltd.

Address before: 100193, No. 1, building three, zone 9, Zhongguancun Software Park, 8 West Wang Xi Road, Beijing, Haidian District

Patentee before: Beijing AUTELAN Technology Co.,Ltd.