网络拓扑的自动发现方法

文档序号:10525642阅读:1046来源:国知局
网络拓扑的自动发现方法
【专利摘要】本发明公开了网络拓扑的自动发现方法,其包括以下步骤:设置发现源设备的IP,并将发现源设备设置为探测设备;获取探测设备的基本信息,并分析探测设备的地址转发表的MAC地址:若与探测设备对应的MAC地址不在已发现设备集合中,则将探测设备加入已发现设备集合中,并通过探测设备的MAC地址判断其是否为可探测设备,若是,则将探测设备加入可探测设备集合中;若与探测设备对应的MAC地址在已发现设备集合中,则判断可探测设备集合中是否还存在未分析其地址转发表信息的设备,若有,则将其设置为探测设备;若可探测设备集合中不存在未分析其地址转发表信息的设备,则生成已发现设备集合中所有探测设备之间的连接关系。
【专利说明】
网络拓扑的自动发现方法
技术领域
[0001]本发明涉及由交换机组成的交换网络的网络拓扑,具体涉及一种网络拓扑的自动发现方法。
【背景技术】
[0002]在网络管理软件中,构造直观、可视化的网络拓扑图是很有必要的。通过构造网络拓扑图可以更加方便和高效的管理网络,发现网络中的异常。如果网络中待管设备数量较多,通过手工录入的方式来获得网络拓扑会比较麻烦且比较容易出错。而网络拓扑自动发现的主要目的是自动获取网络节点和它们之间的连接关系信息,避免繁琐的人工录入过程。
[0003]目前,许多网络拓扑自动发现算法都是基于路由转发表的,根据S匪PMIB中的表ipRouteTable进行拓扑发现,这种方式只能发现网络系统中的路由器和子网,对于子网的内部结构还是一无所知,不能识别网络中的交换设备以及没有指定IP地址的哑元设备,并且它只能对支持snmp的设备适用。

【发明内容】

[0004]针对现有技术中的上述不足,本发明提供的网络拓扑的自动发现方法可以从任何一个可探测的交换机开始,采用发散和深度搜索的方式获得管理网络拓扑中的所有设备的连接关系。
[0005]为了达到上述发明目的,本发明采用的技术方案为:
[0006]提供一种网络拓扑的自动发现方法,其包括以下步骤:
[0007]设置发现源设备的IP,并将发现源设备设置为探测设备;
[0008]获取探测设备的基本信息,并分析探测设备的地址转发表的MAC地址:
[0009]若与探测设备对应的MAC地址不在已发现设备集合中,则将探测设备加入已发现设备集合中,并通过探测设备的MAC地址判断其是否为可探测设备,若是,则将探测设备加入可探测设备集合中;
[0010]若与探测设备对应的MAC地址在已发现设备集合中,则判断可探测设备集合中是否还存在未分析其地址转发表信息的设备,若有,则将其设置为探测设备;
[0011]若可探测设备集合中不存在未分析其地址转发表信息的设备,则生成已发现设备集合中所有探测设备之间的连接关系。
[0012]本发明的有益效果为:本方案通过将探测设备(交换机)接口上的地址转发表的MAC地址作为网络拓扑发现过程的过滤条件,从而加快了对由交换机组成的交换网络的搜索。
[0013]另外,采用本方法对由交换机组成的交换网络进行拓扑的构建,其不仅能够通过交换机接口上的地址转发表信息准确了解交换网络中子网的内部结构,其还能识别交换网络中的交换设备以及没有指定IP地址的哑元设备。
【附图说明】
[0014]图1为网络拓扑的自动发现方法的流程图。
【具体实施方式】
[0015]下面对本发明的【具体实施方式】进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于【具体实施方式】的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
[0016]参考图1,图1示出了网络拓扑的自动发现方法的流程图;如图1所示,该方法主要由两部分组成,其分别是设备发现和链路收敛两部分;其中设备发现包括以下步骤:
[0017]设置发现源设备的IP,并将发现源设备设置为探测设备;
[0018]获取探测设备的基本信息,并分析探测设备的地址转发表的MAC地址:
[0019]若与探测设备对应的MAC地址不在已发现设备集合中,则将探测设备加入已发现设备集合中,并通过探测设备的MAC地址判断其是否为可探测设备,若是,则将探测设备加入可探测设备集合中。
[0020]在进行网络拓扑的构建时,需要创建已发现设备集合和可探测设备集合,刚创建的已发现设备集合和可探测设备集合中是不存在探测设备的,其中的探测设备是在网络拓扑发现过程中逐渐形成的。
[0021]若与探测设备对应的MAC地址在已发现设备集合中,则判断可探测设备集合中是否还存在未分析其地址转发表信息的设备,若有,则将其设置为探测设备,返回执行获取探测设备的基本信息,并分析探测设备的地址转发表的MAC地址步骤。
[0022]链路的收敛是:若可探测设备集合中不存在未分析其地址转发表信息的设备,SP设备发现完成后,生成已发现设备集合中所有探测设备之间的连接关系。
[0023]在实施时,通过下面提到的步骤I至步骤7实现生成已发现设备集合中所有探测设备之间的连接关系;在链路收敛时,首先需要对由交换机组成的交换网络中的部分用语进行定义,具体参考以下9个定义:
[0024]定义1:令网络中第i台设备为Di,Di的第j个已连接设备的接口为Dij。
[0025]定义2:若设备Di的每个已连接设备的接口都能找到其对应的连接关系,则称为设备Di为已收敛设备。
[0026]定义3:A0ij为设备Di的地址转发表中通过接口 Dij收到的MAC地址(物理地址或硬件地址)集合。
[0027]定义4:Ai为设备Di的地址转发表所收到的所有MAC地址集合。
[0028]定义5:ADij为设备Di的AOij除去已收敛设备的MAC地址后的集合。
[0029]定义6:Vij为设备Di的地址转发表中通过接口Dij的VLAN信息集合。
[0030]定义7:若设备每个已连接设备的接口收到的唯一的MAC地址,则称此设备为叶子设备。
[0031 ]定义8:若上层设备Di的接口 Dij收到的AOij集合在下层设备Dj的Aj中都能找到,则设备Di与设备Dj存在直连;若设备Dj的接口 Djj的AOjj中能学到设备Di的MAC地址,则接口 Dij与接口 Djj间存在连接。
[0032]定义IDie3afe3为所有叶子设备的集合,Ddetding为需收敛接口连接情况的设备集合,Ddetect—all为所有已收敛设备集合。
[0033]下面结合上面的定义I至定义9对实现生成已发现设备集合中所有探测设备之间的连接关系的具体方法进行详细地说明:
[0034]在步骤I中,对可探测设备集合内连接终端或服务器的叶子设备的接口进行收敛;步骤I在对叶子设备的接口进行收敛时,又包括以下详细步骤:
[0035]步骤11:获得设备ADij中唯一的MAC,记Dj为MAC所对应设备;
[0036]步骤12:若Dj为探测设备,则执行步骤13;若Dj为非探测设备,则执行步骤四;若Dj为未知设备,则执行步骤15。
[0037]步骤H= D1定义为下层设备,…定义为上层设备,根据定义8判断设备是否直接相连。
[0038]步骤14:Di的接口 Dij与设备Dj相连,删除Ddetecting中设备未收敛接口对应AD中包含DjMAC地址的元素。
[0039]步骤15= Di的接口 Dij与设备Dj相连,但对端接口不能确定,删除Ddetecting中设备未收敛接口对应AD中包含D jMAC地址的元素。
[0040]步骤16:根据定义2判断D1是否为已收敛设备,若为已收敛设备则将器从Dleafe中移除,加入Ddetect—aii中,删除Ddetecting中设备未收敛接口对应AD中包含DiMAC地址的元素;否则将其Dleafe中移除,加入Ddetecting中。
[0041]步骤17:遍历完所有叶子设备后,根据定义2判断Ddetecting中每一个设备是否为已收敛设备,右为已收敛设备,则将其从Ddetecting中移除,并且加入Ddetect—all,删除Ddetecting中设备未收敛接口对应AD中包含设备MAC地址的元素。
[0042]在步骤2,待叶子设备接口收敛完成后,若可探测设备集合内存在未收敛接口中只有一条MAC地址的探测设备,则对该探测设备收敛接口中只有一条MAC地址的接口进行收敛。
[0043]在本发明的一个实施例中,下面结合步骤21至步骤23进一步对在步骤2的具体实现方式进行详细说明:
[0044]步骤21:获得设备ADij中唯一的MAC,记Dj为MAC所对应设备;
[0045]步骤22:类型级别高的设备定义为上层设备,类型级别低的设备定义为下层设备,同类型设备另做处理,根据定义8判断设备是否直接相连;
[0046]步骤23:遍历完Ddetecting中未收敛,且接口信息唯一的接口后,根据定义2判断Ddetecting中每个设备是否为已收敛设备,右为已收敛设备,则将其从Ddetecting中移除,并且加入Ddetect—all,删除Ddetecting中设备未收敛接口对应AD中包含设备MAC地址的元素。
[0047]在步骤3中,对地址转发表记录的探测设备接口对应于多个MAC地址,且这些MAC地址均不是探测设备的MAC地址接口时,对探测设备对应于多个MAC地址的接口进行收敛。为了进一步辅助理解本方法,下面结合步骤31至步骤33对步骤3进行详细说明:
[0048]步骤31:获得设备ADij中MAC组,找到MAC组对应的设备,将这些设备标记为一个设备Dj ;
[0049]步骤32:Di的接口 Dij与设备Dj相连,删除Ddetecting中设备未收敛接口对应AD中包含DjMAC组中MAC地址的元素;
[0050]步骤33:处理完Ddetecting中此类情况,且未收敛的接口后,根据定义2判断Ddetecting中每一个设备是否为已收敛设备,若为已收敛设备,则将其从Ddetecting中移除,并且加入Ddetect_all,删除Ddetecting中设备未收敛接口对应AD中包含设备MAC地址的元素。
[0051]在步骤4中,遍历探测设备中未收敛接口中存在多个相同MAC地址的接口,并对这些接口进行收敛;为了进一步辅助理解本方法,下面结合步骤41至步骤43对步骤4进行详细说明:
[0052]步骤41:获得设备ADij中唯一的MAC,记Dj为MAC所对应设备;
[0053]步骤42:类型级别高的设备定义为上层设备,类型级别低的设备定义为下层设备,同类型设备另做处理,根据定义8判断设备是否直接相连。
[0054]步骤43:遍历完Ddetecting中未收敛,且接口存在多MAC地址,但所有MAC都相同的的接口后,根据定义2判断Ddetecting中每一个设备是否为已收敛设备,若为已收敛设备,则将其从Ddetecting中移除,并且加入Ddetect—all,删除Ddetecting中设备未收敛接口对应AD中包含设备MAC地址的元素。
[0055]在步骤5中,遍历可探测设备集合内所有探测设备中未收敛且存在多个不同探测设备MAC的接口,并对这些接口进行收敛。下面结合定义I至定义9对步骤5的具体还是方式进行说明:
[0056]步骤51:选取设备ADij中某一个未被选取过的探测设备的MAC,记Dj为所选取MAC所对应设备。若设备ADlj中已不存在未被选取过的探测设备的MAC,则执行步骤53。
[0057]步骤52:类型级别高的设备定义为上层设备,类型级别低的设备定义为下层设备,同类型设备另做处理,根据定义8判断设备是否直接相连。否01与仏间直接相连,则执行步骤53,反之,则执行步骤51。
[0058]步骤53:遍历完Ddetecting中未收敛,且接口存在多个不通MAC的接口后,根据定义2判断Ddetecting中每个设备是否为已收敛设备,右为已收敛设备,则将其从Ddetecting中移除,并且加入Ddetect—all,删除Ddetecting设备未收敛接口对应AD中包含设备MAC地址的元素。
[0059]在步骤6中,若可探测设备集合中设备接口更新后的地址转发表中已不存在地址转发信息,但探测设备原始的地址转发表存在地址转发信息,则该设备接口存在交换设备级联,并对交换设备间级联接口收敛。
[0000]在本发明的一个实施例中,下面结合步骤61至步骤64进一步对在步骤6的具体实现方式进行详细说明:
[0061 ] 步骤61:选取设备AOij中某一个未被选取过的探测设备的MAC,记Dj为所选取MAC所对应设备。若设备AOlj中已不存在未被选取过的探测设备的MAC,则执行步骤四。
[0062]步骤62:将Dj的接口中有Di设备信息的接口记为Djj,若Djj已收敛,则执行步骤三;否则,令Dj为上层设备,D1为下层设备,根据定义8判断设备是否直接相连,若DdPDj之间非直接相连,则另做处理。
[0063]步骤63:令Djj接口连接设备为Dj,重复步骤62。
[0064]步骤64:遍历完Ddetecting中未收敛,且接口存在多个不通MAC的接口后,根据定义2判断Ddetecting中每个设备是否为已收敛设备,右为已收敛设备,则将其从Ddetecting中移除,并且加入Ddetect—all,删除Ddetecting设备未收敛接口对应AD中包含设备MAC地址的元素。
[0065]步骤7,遍历可探测设备集合中所有未收敛的接口,并对所有未收敛的接口进行盲目收敛。实施时,所述对所有未收敛的接口进行盲目收敛进一步包括:
[0066]获取未收敛的接口的地址转发表信息中MAC地址;
[0067]通过MAC地址找到与其对应的探测设备,并判断未收敛的接口的与找到与MAC地址所对应的探测设备是否直接相连:
[0068]若直接相连,则更新该未收敛接口的探测设备与MAC地址为MAC的设备的接口地址转发表信息;
[0069]判断可探测设备集合中的每一个探测设备是否为已收敛设备,若为已收敛设备,则将其从可探测设备集合中移除。
[0070]对于步骤7在结合定义I至定义9进行描述时,其可以表述为:
[0071 ] 步骤7 I:选取Ddetecting中的一个设备,此设备的某一个未收敛接口有Di对应的MAC地址记录,另选取的设备为D j,D j中有Di对应的MAC地址记录的接口为D j j。
[0072]步骤72:若DdPDj为不同类型的设备则执行步骤三,若DdPDj为同类型的设备则执行步骤74。
[0073]步骤73:若DdPDj为不同类型的设备,类型级别高的设备定义为上层设备,类型级别低的设备定义为下层设备,根据定义8判断设备是否直接相连,如果它们之间非直接相连则执行步骤71。
[0074]步骤74:若DdPDj为同类型设备,令0工为上层设备,Dj为下层设备,根据定义8判断设备是否直接相连,如果DdPDj非直接相连,则令Dj为上层设备,D1为下层设备,根据定义8判断设备是否直接相连,如果DdPh非直接相连则执行步骤71。
[0075]步骤75:遍历完Dd-中未收敛接口后,根据定义2判断Dd-中每一个设备是否为已收敛设备,若为已收敛设备,则将其从Ddetecting中移除,并且加入Ddetect—all,删除Dde—g设备未收敛接口对应AD中包含设备MAC地址的元素。
[0076]综上所述,通过本方案提供的方法,其能够加快对由交换机组成的交换网络的搜索,能够通过交换机接口上的地址转发表信息准确了解交换网络中子网的内部结构,同时其还能够识别交换网络中的交换设备以及没有指定IP地址的哑元设备。
【主权项】
1.网络拓扑的自动发现方法,其特征在于,包括以下步骤: 设置发现源设备的IP,并将发现源设备设置为探测设备; 获取探测设备的基本信息,并分析探测设备的地址转发表的MAC地址: 若与探测设备对应的MAC地址不在已发现设备集合中,则将探测设备加入已发现设备集合中,并通过探测设备的MAC地址判断其是否为可探测设备,若是,则将探测设备加入可探测设备集合中; 若与探测设备对应的MAC地址在已发现设备集合中,则判断可探测设备集合中是否还存在未分析其地址转发表信息的设备,若有,则将其设置为探测设备; 若可探测设备集合中不存在未分析其地址转发表信息的设备,则生成已发现设备集合中所有探测设备之间的连接关系。2.根据权利要求1所述的网络拓扑的自动发现方法,其特征在于,所述生成已发现设备集合中所有探测设备之间的连接关系进一步包括以下步骤: 步骤I,对可探测设备集合内连接终端或服务器的叶子设备的接口进行收敛; 步骤2,待叶子设备接口收敛完成后,若可探测设备集合内存在未收敛接口中只有一条MAC地址的探测设备,则对该探测设备收敛接口中只有一条MAC地址的接口进行收敛; 步骤3,对地址转发表记录的探测设备接口对应于多个MAC地址,且这些MAC地址均不是探测设备的MAC地址接口时,对探测设备对应于多个MAC地址的接口进行收敛; 步骤4,遍历探测设备中未收敛接口中存在多个相同MAC地址的接口,并对这些接口进行收敛; 步骤5,遍历可探测设备集合内所有探测设备中未收敛且存在多个不同探测设备MAC的接口,并对这些接口进行收敛; 步骤6,若可探测设备集合中设备接口更新后的地址转发表中已不存在地址转发信息,但探测设备原始的地址转发表存在地址转发信息,则该设备接口存在交换设备级联,并对交换设备间级联接口收敛; 步骤7,遍历可探测设备集合中所有未收敛的接口,并对所有未收敛的接口进行盲目收敛。3.根据权利要求1所述的网络拓扑的自动发现方法,其特征在于,所述对所有未收敛的接口进行盲目收敛进一步包括: 获取未收敛的接口的地址转发表信息中MAC地址; 通过MAC地址找到与其对应的探测设备,并判断未收敛的接口的与找到与MAC地址所对应的探测设备是否直接相连: 若直接相连,则更新该未收敛接口的探测设备与MAC地址为MAC的设备的接口地址转发表信息; 判断可探测设备集合中的每一个探测设备是否为已收敛设备,若为已收敛设备,则将其从可探测设备集合中移除。4.根据权利要求2或3所述的网络拓扑的自动发现方法,其特征在于,所已收敛设备为每个已连接的接口都能找到其对应的连接关系;所述叶子设备为每个已连接设备的接口收到的唯一的MAC地址的设备。
【文档编号】H04L12/24GK105897490SQ201610470711
【公开日】2016年8月24日
【申请日】2016年6月24日
【发明人】陈江婷, 肖向
【申请人】深圳市风云实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1