一种链路层网络拓扑发现方法

文档序号:9352778阅读:232来源:国知局
一种链路层网络拓扑发现方法
【技术领域】
[0001]本申请涉及网络管理领域,尤其涉及一种链路层网络拓扑发现方法。
【背景技术】
[0002]网络拓扑发现多分为两个部分。一是网络设备(主要是指路由器和交换机)的发现和识别;二是网络拓扑结构的分析。
[0003]传统的网络设备的识别常用的方法是向子网中所有存活设备发送SNMP请求报文,取出 MIB 库 ip 组中的 ipForwarding (.1.3.6.1.2.1.4.1)变量和 system 组中的sysService (.1.3.6.1.2.1.1.7)变量进行判断,ipForwarding= I并且提供第3层服务的网络设备很可能是路由器,然后,再从这些待定设备中进一步确定路由器。这种发现方法无法识别网络中不支持SNMP协议的设备的类型。
[0004]传统的网络拓扑结构分析多基于路由器的路由表信息,这种实现方法只能识别网络之间的连接关系,对一个完整的拓扑发现系统来说,这还不够,因为缺乏子网的拓扑结构。

【发明内容】

[0005]为解决二层设备由于自身的透明性导致传统的基于IP管理域的网络拓扑发现方法难以详尽的描述网络拓扑情况,本发明基于某种设备类型侦测扫描组件和交换机地址转发表实现了链路层网络拓扑结构的发现,是一种能够较为细致的发现网络拓扑结构的方法。
[0006]为了实现上述目的,本发明采用如下技术方案。
[0007]一种链路层网络拓扑发现方法,包括如下步骤:
步骤1.扩展设备类型扫描组件的系统指纹库,使其能够识别出几乎所有的管理域内的设备类型。
[0008]步骤2.利用扩展后的设备类型扫描组件对管理域内的所有设备进行系统识别的扫描,分析出每台被扫设备的类型信息。
[0009]步骤3.首先分析处理管理域内所有的网络设备(主要是路由器和交换机),利用SNMP协议取出各网络设备地址转发表dotIdTpFdbTabIe数据并初始化各网络设备数据结构,区分出上行端口和下行端口,分别找出各端口学习到的MAC地址,然后基于非完整地址转发表的网络设备的直连判定方法分析其连接关系。
[0010]步骤4.主机与网络设备直连判定。
[0011]所述步骤4的具体步骤为:根据标志节点(即拓扑发现算法执行节点)到管理域内主机的traceroute信息找出主机所在的网关,根据步骤3中判断出的网络设备的邻居关系遍历与网关相连的所有网络设备的端口转发表,寻找包含主机MAC地址的端口并且转发表条目最少的端口,即为主机和此端口所在网络设备之间相连。主机的MAC地址可以基于SNMP协议获取网关的IP地址转发表ipNetToMediaTable,根据IP地址找到其对应的MAC地址。
[0012]本发明的有益效果是,本发明中网络设备的识别部分基于某种设备侦测扫描组件,利用此组件识别出管理域内设备的类型。能够识细致地识别出几乎所有的设备的类型,不需要被探测的设备支持SNMP协议。此组件使用TCP/IP协议栈指纹来识别不同的操作系统和设备,并且可以自行收集设备特殊指纹对组件可以识别的设备类型进行扩展。
[0013]在网络拓扑结构分析部分,本发明基于非完整地址转发表的网络设备的直连发现算法分析出子网的拓扑结构,更真实细致的接近设备的物理拓扑结构。
[0014]当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
【附图说明】
[0015]图1是交换机地址转发表生成流程图。
[0016]图2是端口连接以及端口转发表示意图。
【具体实施方式】
[0017]下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0018]一种链路层网络拓扑发现方法,包括如下步骤:
步骤1.扩展设备类型扫描组件的系统指纹库,使其能够识别出几乎所有的管理域内的设备类型。
[0019]设备类型扫描组件使用TCP/IP协议栈指纹来识别不同的操作系统和设备。在RFC规范中,有些地方对TCP/IP的实现并没有强制规定,由此不同的TCP/IP方案中可能都有自己的特殊的处理方式。设备类型扫描组件主要是根据这些细节上的差异来判断操作系统的类型的。
[0020]对于原生设备类型扫描组件无法识别的设备进行扫描并提取其TCP/IP协议栈指纹,将指纹信息加入到系统指纹库中,从而增加扫描组件能够识别的设备种类。
[0021]步骤2.利用扩展后的设备类型扫描组件对管理域内的所有设备进行系统识别的扫描,分析出每台被扫设备的类型信息。
[0022]步骤3.首先分析处理管理域内所有的网络设备(主要是路由器和交换机),利用SNMP协议取出各网络设备地址转发表dotIdTpFdbTabIe数据并初始化各网络设备数据结构,区分出上行端口和下行端口,分别找出各端口学习到的MAC地址,然后基于非完整地址转发表的网络设备的直连判定方法分析其连接关系。
[0023]( I)地址转发表
地址转发表(Address Forwarding Table简称AFT)是二层设备为了达到即插即用而普遍采用的一种动态学习机制。它在所有以太网交换机里面得到了实现。其大致原理如图1所示。
[0024]交换机对每一个经过它的数据帧都要进行自动学习执行图1的过程。通过这个过程交换机里将生成一张路由数据帧的表。称之为地址转发表。它的每一条记录也就是一个地址转发表项。一个地址转发表项由物理地址(MAC),接收端口号和一个超时标识组成。物理地址代表发送数据帧的设备,接收端口号是数据帧的进入端口,一条地址转发表项的超时期限一般默认为300秒,一旦超时,该表项将从地址转发表中被删除,这样保证地址转发表能够及时更新网络通信状态。因此每一个表项都包含了数据帧进入交换机的时间。
[0025](2)网络设备直连判定为方便描述定义如下标记:
Si代表第i台交换机,i=l…N,N为自然数。N(Si)表示第i个交换机上的端口总数。Sij表示第i台交换机上的第j个端口,j=l…N,N为自然数。
[0026]Aij表示交换机i的第j个端口可达的设备的MAC地址集合,这些MAC地址不包括主机的MAC地址。
[0027]定义1.标志结点
将执行算法所在主机定为标志结点。如图2中的M节点。
[0028]定义2.上行端口
指地址转发表中出现标志结点MAC地址的端口。如图2中的S11, S21, S31, S41, S51, S61均为上行端口。
[0029]定义3.下行端口
指端口对应的地址转发表中没有出现标志结点MAC地址的端口。
[0030]判定定理:
在下行端口地址转发表完整的情况下,若交换机Si与Sk满足:Sij是下行端口,Skl是上行端口。交换机Si通过j端口学习到的地址转发表中包括Sk交换机所有下行端口学习到的MAC地址和Sk交换机本身的MAC地址。
[0031]A11= {M}
A12=IS2 , S3 , S4 , S5 ,S6I A21=IMl A22= { S3 ,S5 ,S6I A23= { S4} A31= { M}
A32= { S5} A33= { S6I A51= { M} A61= { M}
如图 2 中的 S22 和 S31 即满足 A22= {MAC (S3),MAC (S5)jMAC (S6)) }
A32U A 33U MAC (S 3) ={MAC (S3), MAC (S5), MAC (S6)) }。满足 A22=A32U A33U MAC
(S3),所以S22与S31直接相连。
[0032]步骤4.主机与网络设备直连判定。
[0033]根据标志节点到管理域内主机的traceroute信息找出主机所在的网关,根据步骤3中判断出的网络设备的邻居关系遍历与网关相连的所有网络设备的端口转发表,寻找包含主机MAC地址的端口并且转发表条目最少的端口,即为主机和此端口所在网络设备之间相连。主机的MAC地址可以基于SNMP协议获取网关的IP地址转发表ipNetToMediaTable,根据IP地址找到其对应的MAC地址。
[0034]上述虽然结合附图对本发明的【具体实施方式】进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
【主权项】
1.一种链路层网络拓扑发现方法,其特征是,包括如下步骤: 步骤1.扩展设备类型扫描组件的系统指纹库,使其能够识别出所有的管理域内的设备类型; 步骤2.利用扩展后的设备类型扫描组件对管理域内的所有设备进行系统识别的扫描,分析出每台被扫设备的类型信息; 步骤3.首先分析处理管理域内所有的网络设备,利用SNMP协议取出各网络设备地址转发表dotldTpFdbTable数据并初始化各网络设备数据结构,区分出上行端口和下行端口,分别找出各端口学习到的MAC地址,然后基于非完整地址转发表的网络设备的直连判定方法分析其连接关系; 步骤4.主机与网络设备直连判定。2.如权利要求1所述的链路层网络拓扑发现方法,其特征是,所述步骤4的具体步骤为:根据标志节点到管理域内主机的traceroute信息找出主机所在的网关,根据步骤3中判断出的网络设备的邻居关系遍历与网关相连的所有网络设备的端口转发表,寻找包含主机MAC地址的端口并且转发表条目最少的端口,即为主机和此端口所在网络设备之间相连。
【专利摘要】本发明公开了一种链路层网络拓扑发现方法,步骤为:扩展设备类型扫描组件的系统指纹库;对管理域内的所有设备进行系统识别的扫描,分析出每台被扫设备的类型信息;利用SNMP协议取出各网络设备地址转发表dot1dTpFdbTable数据并初始化各网络设备数据结构,区分出上行端口和下行端口,分别找出各端口学习到的MAC地址,然后基于非完整地址转发表的网络设备的直连判定方法分析其连接关系;主机与网络设备直连判定。本发明能识别出所有设备类型,不需被探测的设备支持SNMP协议。使用TCP/IP协议栈指纹来识别不同的操作系统和设备,可对组件可以识别的设备类型进行扩展。本发明基于非完整地址转发表的网络设备的直连发现算法分析出子网的拓扑结构,更接近设备的物理拓扑结构。
【IPC分类】H04L12/751
【公开号】CN105072039
【申请号】CN201510460994
【发明人】闫明
【申请人】山东蚁巡网络科技有限公司
【公开日】2015年11月18日
【申请日】2015年7月31日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1