网络拓扑图更新及网络拓扑管理方法

文档序号:7625233阅读:779来源:国知局
专利名称:网络拓扑图更新及网络拓扑管理方法
技术领域
本发明涉及计算机通信技术领域,尤其涉及一种网络拓扑图更新及网络拓扑管理方法。
背景技术
网络拓扑能够协助管理和性能分析,如基于二层拓扑和三层拓扑的路径分析。相对三层拓扑而言,二层拓扑更能显示出网络实际连接的详细信息,如设备连接到了交换机的哪一个端口之上。虽然二层拓扑信息更为重要,但到现在为止,还只有部分厂商提供了二层拓扑,如Cisco、HP OpenView等。但类似Cisco的算法都是基于私有MIB(Management Information Base,管理信息库)实现(Cisco Discovery Protocol),无法在异构环境中应用。大多数厂家都选择了基于桥MIB的二层拓扑实现机制;另外一些选择了适用于某种特定环境的实现算法,如适用于小型网络环境的计算机管理的、基于计算机远程调用机制(RPC,Remote Process Calling)和注入主动探测报文的算法。
上述方案都基于一种假设如果一个交换机学习到的MAC地址越多,则越靠近网管的位置,就越有可能成为树型连接结构的上层;而且一般情况下此假设都是成立的。这种方案的一般算法为1从能ping通的所有设备中找出二层设备(交换机和Hub);2通过SNMP(Simple Network Management Protocol,简单网络管理协议)取该设备的桥MIB、ifTable、物理拓扑表等MIB信息,建立IP和MAC、MAC和ifIndex之间的映射关系;获悉该二层设备各端口学习到的设备MAC;3选择学习到MAC最多的设备,记为U,对其每个端口做如下操作3.1把学习到的所有MAC汇总;
3.2把学习到的二层设备汇总;4从汇总的二层设备中,选择学习到MAC最多的设备,记为D,作为连接设备U的候选,然后开始判断U和D是否直接相连,判断步骤为4.1从设备D中的所有端口中,挑出能学习到属于设备U端口MAC的端口(只有一个上行端口);4.2把此上行端口本身MAC和属于D的所有端口学习到的MAC与刚才汇总的MAC相减,即从汇总的MAC中除去设备D端口也学习到的MAC;4.3如果没有属于二层设备的MAC留下,即设备U学习到的所有MAC只比设备D学习到的端口多一个D的上行端口,反过来也成立,则U和D是直接相连的,这时把D替换成U,开始迭代(步骤3);否则,把剩余的属于二层设备的MAC汇总(这些设备在U和D之间),开始选择D的迭代过程(步骤4)。
上述步骤,可以用如图1的图示说明对应(a)的实际网络,按照此算法,将首先找出A作为设备U,然后会找出B和C,由于C学习的MAC多,首先作为下级二层设备处理,直到连接完毕E和F后才返回来,开始B连接的分支。
中国国家知识产权局公布的专利申请号为200410001820.9的专利描述了和上述方案类似的技术方案,这种方案比较适合与三层设备自动发现配合进行,综合起来,其主要缺点为1对于已有网络的更新(如添加一个新二层设备),这种算法的计算量相对较大,必须重复这样的迭代过程;2该算法的计算量比较集中,即所有设备一起计算;3Hub设备在拓扑显示时构成歧意。

发明内容
本发明所要解决的技术问题是提供网络拓扑的管理方法,能够在网络中进行方便有效的拓扑管理。
为此,本发明提供一种网络拓扑图的更新方法,其在网络拓扑图上新增未知设备N的处理步骤如下1)获取新增设备N的管理信息并处理;2)计算新增设备N与网络拓扑图中已知设备和区域的拓扑连接关系;3)更新并保存新增设备后的网络拓扑图连接关系。
其中,步骤1)获取管理信息步骤具体包括11)判断所述设备启动SNMP代理且具有桥MIB,若是则记录该设备管理类型为二层设备,并取桥MIB信息保存;若否则记录该设备管理类型为三层设备;12)判断网络拓扑图中是否存在区域,若网络拓扑图中至少存在一个区域则寻找设备N所在区域并记录为R,转到步骤2);13)若网络拓扑图中不存在任何区域且设备N管理类型为三层设备则不做任何处理结束。
其中,步骤2)具体包括如下步骤21)查找与区域R相连的,管理类型为二层设备的已知设备并记录为集合C{C1,......,Cn};22)查找与区域R相连的,管理类型为三层设备的已知设备并记录为集合D{D1,......,Dn};23)在拓扑图上显示新增设备N,判断设备N有无学习端口,若无则执行步骤26),若有则寻找其学习端口记录为集合P{P1,......,Pn};24)从集合P未处理的端口中选择端口Px进行如下处理将所述Px学习的MAC地址形成在网络拓扑图上不显示的临时区域R0;将区域R0中包含的MAC地址对应的设备集合与集合C取交集记录为TempC;将区域R0中包含的MAC地址对应的设备集合与集合D取交集记录为TempD;
计算TempC所包含设备与Px相对应端口与Px的连接关系,形成在网络拓扑图上显示的新区域R1;对TempC包含设备与Px的对应端口及Px与新区域R1在网络拓扑图上显示连接关系;将TempD包含设备在拓扑图上显示,并与新区域R1相连接;25)判断集合P中的端口是否处理完,若处理完则结束,否则回到步骤24);26)将设备N具有的MAC地址从区域R中删除,并将设备N和R相连接,结束。
其中,所述计算TempC包含设备与Px相对应端口与Px的连接关系,形成新区域R1的具体步骤为判断TempC是否为空,若为空则将Px形成的临时区域R0在网络拓扑图上显示为新区域R1,否则找出TempC所包含所有设备与端口Px的对应端口;将这些端口各自学习的MAC地址形成在网络拓扑图上不显示的各临时区域,与Px形成的临时区域R0取交集,交集的结果形成在网络拓扑图上显示的新区域R1。
其中,步骤3)具体包括31)任意选择尚未处理的一个区域,判断区域所包含的MAC地址是否为空,若不为空,则执行步骤32),若为空,执行步骤33);32)在网络拓扑图上保留该区域及其连接关系,执行步骤38);33)进一步判断该区域的连接关系是否大于2条,若是,则执行步骤34),若否则执行步骤35);34)若是,则在网络拓扑图上将该区域标识为HUB,并保留区域及其连接关系,执行步骤38);
35)若否,继续判断区域连接关系是否等于两条,若是则执行步骤36),若否则执行步骤37);36)在网络拓扑图上删除区域,将两个设备对应的端口建立直连关系,执行步骤38);37)在网络拓扑图上保留区域及其连接关系,执行步骤38);38)判断网络拓扑图中与设备N相连的显示的区域是否已经处理完,若处理完则结束,若未处理完则返回步骤31)。
本发明的另一方面是提供一种网络拓扑图管理方法,对网络内未被纳入管理的未知设备N进行如下处理判断其与网络管理中已知设备的拓扑连接关系A)获取新增设备N的管理信息并处理;B)计算新增设备N和已经存在的管理设备MAC地址集合和已知管理设备之间的拓扑连接关系;C)更新并保存设备N及管理设备MAC地址集合及已知管理设备之间的拓扑连接关系。
其中,步骤A)中具体步骤是A1)判断所述设备启动SNMP代理且具有桥MIB,若是则记录该设备管理类型为二层设备,并取桥MIB信息保存;若否则记录该设备管理类型为三层设备;A2)判断是否存在管理设备MAC地址集合,若至少存在一个管理设备集合则寻找设备N所在管理设备集合并记录为R,转到步骤B);A3)若不存在任何管理设备MAC地址集合且设备N管理类型为三层设备则不做任何处理结束。
其中,所述步骤B)具体包括如下步骤B1)查找与管理设备MAC地址集合R相连的,所有管理类型为二层设备的已知设备MAC地址并记录为集合D1;B2)查找与管理设备MAC地址集合R相连的管理类型为三层设备的所有已知三层设备MAC地址并记录为集合D2;B3)判断设备N有无学习端口,若无则执行步骤B5),若有则寻找设备N的学习端口并记录为端口集合P{P1,......,Pn};B4)判断集合P中的端口是否处理完,若处理完则执行步骤C),否则从集合P未处理的端口中选择端口Px进行如下处理根据设备N的端口集合中的Px学习的MAC地址对应的设备MAC地址形成临时设备MAC地址集合R0;将D1与R0取交集的结果记录为TempD3;将D2与R0取交集的结果记录为TempD4;判断TempD3是否为空,若TempD3为空则直接将R0记录为新设备集合R1,否则找出TempD3所包含所有设备与端口Px的对应端口;将这些端口各自学习的MAC地址对应的设备形成的临时设备集合与R0取交集的结果记录为新设备集合R1;记录TempD3包含设备的对应端口及Px与新设备MAC地址集合R1为连接关系;记录TempD4所包含设备与新设备MAC地址集合R1为连接关系;B5)将设备N具有的MAC地址从R中删除,并将设备N和R相连接。
其中,步骤C)中具体包括C1)判断与设备N相连的设备MAC地址集合是否已经处理完,若处理完则结束,若未处理完则执行步骤C2);C2)任意选择尚未处理的一个设备MAC地址集合,判断所述设备MAC地址集合所包含的设备MAC地址是否为空,若不为空,则保留该MAC地址集合及其对应的连接关系,返回步骤C1);C3)若为空,则进一步判断与该MAC地址集合的连接关系是否大于2条,若是,则执行步骤C4),若否则执行步骤C5);
C4)将该MAC地址集合标识为HUB,并保留MAC地址集合及其连接关系,返回步骤C1);C5)判断MAC地址集合的连接关系是否等于两条,若是则执行步骤C6),若否则执行步骤C7);C6)删除该MAC地址集合,将两个设备对应的端口记录为直连关系,返回步骤C1);C7)保留该MAC地址集合及其连接关系,返回步骤C1)。
在本发明所提供的方法中,对于拓扑图更新的处理有效的利用了已有的计算结果,在每次更新时都是在保留原有拓扑结构的基础上,对要处理的二层设备所在区域进行局部更新,动态细化,因此有效的将各个设备的计算量平均分配在各次添加上,有效地降低了设备计算量,提高网络拓扑的计算效率。
另外,由于本发明所提供的方法定义了区域的概念,并运用空区域及相连设备个数的判断,能准确描述包含HUB的组网拓扑。


图1是现有技术中一种网络拓扑更新的说明示意图;图2是本发明所提供的网络拓扑图更新的方法的流程示意图;图3是本发明所提供的网络拓扑图更新的方法中的计算网络拓扑更新的一个具体实施例的流程示意图;图4是本发明所提供的网络拓扑图更新的方法中的对拓扑图区域连接关系的判断流程示意图;图5是本发明所提供的网络拓扑图更新方法的一个较为具体的实施例的说明示意图;图6本发明所提供的网络拓扑图更新方法中对包含HUB网络拓扑描述的说明示意图。
具体实施例方式
下面结合附图进一步对本发明的具体实施方式
进行详细描述。
在本说明书中,将使用如下概念MIBManagement Information Base,管理信息库,为SNMP协议用于保存管理信息数据的一种树型结构。
区域(Region)由一些网络设备具有的MAC地址集合而形成的一个逻辑概念。
区域交集区域所代表的MAC地址集合相交后剩余的相同的MAC地址的集合。
本发明所提供的方法主要是对网络中的设备拓扑进行有效的管理,一般来说,对网络拓扑的管理目前主要依赖于SNMP(Simple Network ManagementProtocol,简单网络管理协议)协议,并可以用网络拓扑图进行直观的显示,虽然本发明的主要目的是发现真实的网络物理拓扑连接关系的判断和管理,但为了管理方便,我们也定义了一些简便的方法,比如在本发明的一个具体实施例中,我们对网络中二层设备的发现主要通过ping方法并结合SNMP协议来实现的,同时,本发明所提供的网络拓扑管理的操作方法主要是运用二层设备特别是交换机端口学习的MAC地址集合来实现的,因此取得二层设备各端口转发的MAC地址表是非常重要的,本领域中的普通技术人员应当知道,取得MAC地址表的方法是多种多样的,但最方便和完整的莫过于通过SNMP协议取得二层设备的桥MIB(Management Information Base,管理信息库)信息取得,幸运的是,当前标准的二层设备都是支持SNMP协议和桥MIB信息的,当然,也不排除网络中会出现一些不提供桥MIB信息的不够标准的二层设备,但仍然可以通过其他方法获取其各端口的MAC地址转发表,这并不是本发明所关心的要点所在。因此,为了有助于更加深刻的理解本发明所提供方法的本质所在,在以下阐述的一个具体实施例中,我们假设网络中的所有二层设备都能被有效的支持并被获取桥MIB信息,不支持或不能被有效获取桥MIB信息的网络设备,为了管理上的方便,我们一律认为是三层设备,因此,本领域中的普通技术人员应该注意到,在本专利的一些具体实施例中提到的二层设备、三层设备这种类型的划分是为了管理的方便而界定的,是和通用的概念有所区别的,但这并不代表对本发明保护范围的任何限制,事实上,我们总是可以通过各种方法获取网络中所有的二层设备和三层设备的真实信息,从而进一步运用本发明所提供的方法就能有效的发现网络的拓扑结构并通过一些有效的辅助手段如拓扑图的形成进行更为直观的管理。
首先,为了更好的理解本发明,我们将首先阐述一个把本发明所提供的方法应用到网络拓扑图的更新中的具体实施例,与背景技术不同的是,我们对网络拓扑图的更新不是将拓扑中的设备一次全部重新计算,而是将拓扑图上的现有拓扑和一个设备的添加时所影响的局部更新相结合,当把对网络的整个拓扑拆分成逐个设备的添加时,就可以通过一系列的区域细化最终获得整个网络拓扑的更新。注意这里我们引用了区域的概念,在本专利说明书中,区域的本质是拓扑图中未知网络设备所拥有的MAC地址集合,在拓扑图中显示为圆形的未知区域。
下面结合图2、图3、图4将本发明提供的方法说明如下本发明提供方法的一个本质特征就是未知网络设备的逐步添加,此处所指的“未知”,是指该设备尚未纳入到管理中,若联系到拓扑图,就是尚未得知如何和拓扑图中的已经显示连接关系的已知设备进行骆拓扑连接的设备,我们可以已知该设备的相关信息,例如其IP地址信息等等,但肯定还不知道它与网络内其他设备的拓扑连接信息,特别是尚未在拓扑图上形成其拓扑连接直观显示信息。
为了更好的理解本发明所提供方法,我们假设将在现有的网络拓扑图中添加一个网络设备N,参考图2,这个过程可以说明如下在步骤S1,获取新增设备N的管理信息并处理;由于我们发明所提供的方法主要是建立在对二层设备学习到的MAC地址进行操作的基础之上,因此这里所指的管理信息主要是指设备N各端口学习到的MAC地址集合,另外,一些管理上的信息也依赖于用户的指定,例如设备类型的管理信息,在本专利中,我们在上文中已经提到,二层、三层设备类型的划分有时取决于我们管理上的需要,比如在一个具体实施例中,我们将提供SNMP代理且具有桥MIB信息设备的管理类型定义为二层,其它的网络设备均定义为三层,以便方便我们获取各设备的管理信息并进行处理。在上述定义区分前提下,对于设备管理信息特别是各端口学习的MAC地址信息的获取,存在一种较为稳妥和简洁的方法,即通过SNMP协议取二层设备的桥MIB信息,就能获得该二层设备完整地桥MAC、端口学习的MAC地址等信息为本方法所用,这也是目前应用较为普遍的方法,当然,也可以通过其他途径获取,特别是当要处理的设备不支持桥MIB或者不支持SNMP协议,即本专利说明书中所定义的三层设备,由于在本发明所提供的方法中,对三层设备的拓扑连接也作了相应的处理,因此对三层设备的MAC地址也是需要获取的,但对于三层设备,我们不能通过桥MIB进行处理,这就需要通过其他方法辅助获得其MAC地址信息,一种可行的方法是,可以通过ping该设备获取其IP地址,然后通过连接本网段的三层设备,如路由器的ARP表获取和该IP地址对应的MAC地址,就能很容易得达到我们的目的,当然,无论如何,这些获取的方法只是说明,本发明所提供方法的可行性,并不是本发明所提供方法的关键之所在,因此这种说明并不能构成对本发明保护范围的限制。
获取到设备的管理信息后,在开始往拓扑图中添加设备之前,需要进行初步的处理,在本发明的一个具体实施例中,一个重要的处理步骤是,在添加设备时如果拓扑图中没有任何的区域,此时说明添加的设备是网络中的第一个设备,判断设备的管理类型,若为三层设备则不作任何处理结束,准备添加下一个设备;若是二层设备且网络拓扑图中至少存在一个区域则寻找设备N所在区域并记录为R,然后继续进行以后的添加处理步骤;这样就可以保证在第一次添加新设备时,总是从管理类型为二层设备的网络设备开始,有利于拓扑图的顺利形成。概括来说,初始的步骤可以总结为
判断所述设备启动SNMP代理且具有桥MIB,若是则记录该设备管理类型为二层设备,并取桥MIB信息保存;若否则记录该设备管理类型为三层设备;判断网络拓扑图中是否存在区域,若网络拓扑图中至少存在一个区域则寻找设备N所在区域并记录为R,转到步骤2);若网络拓扑图中不存在任何区域且设备N管理类型为三层设备则不做任何处理结束。
在步骤S2,计算新增设备N与网络拓扑图中已知设备和区域的拓扑连接关系;这一步骤是一个较为关键的步骤,需要详细加以描述,参考图3,这一个步骤具体包括以下详细步骤,需要特别说明的是,以下步骤的说明只是示意性的,本领域中的普通技术人员会很容易的知道,对以下步骤可以做任意的组合和变换在步骤S301,查找与区域R相连的,管理类型为二层设备的已知设备并记录为集合C{C1,......,Cn};在步骤S302,查找与区域相连的,管理类型为三层设备的已知设备并记录为集合D{D1,......,Dn};步骤S301、S302实际上是对已知网络拓扑信息的记录,以便于在对区域更新时,不仅将新增设备的拓扑连接信息加入,而且能完整更新已知网络的二层和三层设备的和更新后区域的拓扑连接情况。在这里,可以获取到桥MIB信息的已知设备即为本专利说明书中定义的二层设备,不能获取桥MIB信息的设备即本专利说明书中定义的三层设备,“已知”设备是指已经纳入拓扑图管理之中,显示在拓扑图之中的网络设备。在集合C、D中,本质上记录设备的MAC地址,此时,C1,.....,Cn本身一般就是MAC地址的集合,当然,其中也可以记录设备的集合,此时需要维护设备对应的MAC地址集合,或者通过一定方法能获取到该设备的所具有的MAC地址,以便在以后操作步骤中,利用设备的MAC地址进行具体的操作。
在步骤S303,在网络拓扑图上显示新增设备N,并判断其有无学习端口;比时,由于设备N已经确定存在网络中,因此可以将其首先添加到网络拓扑图中,即首先在拓扑图上显示设备N,然后进行处理。由于对于二层、三层设备的处理步骤是不同的,因此我们有必要首先判断其设备管理类型。一种简单的方法是,判断网络设备是否存在学习端口,此处所指的“学习端口”,是指学习到网络设备MAC地址的端口,也就是二层设备在使用的端口,如果设备N的某一端口没有使用,则其就不会学习到MAC地址,因此也就不是这里所指的“学习端口”,学习端口实际上都连接着其他网络设备,为了准确地得到网络的拓扑连接关系,就必须得到设备端口和网络中其他设备端口的连接关系。判断的方法是取其端口的MAC地址学习信息,由于本说明书中定义的管理类型为三层的设备不能取到其端口MAC地址学习信息,因此可以认为其不存在学习端口,此时转到步骤S312;否则进入步骤S304;在步骤S304,我们寻找设备N的学习端口并记录为集合P{P1,......,Pn},学习端口实际上都连接着其他网络设备,为了准确地得到网络的拓扑连接关系,就必须得到设备端口和网络中其他设备端口的连接关系,为了便于处理,我们在这一步骤将设备N的端口全部记录下来,以便顺序处理;在步骤S305,从集合P未处理的端口中选择端口Px学习的MAC地址形成在网络拓扑图上不能显示的临时区域R0;具体来说,就是从剩余未处理的端口中选择一个端口,假设为Px,取得其学习的MAC地址集合,为了形象化的表示,我们在网络拓扑图上可以显示一个例如虚线表示的临时区域来与之相对应,在步骤S306,将区域R0中包含的MAC地址对应的设备集合与集合C取交集记录为TempC;如上所述,由于区域R0和集合C实质上是MAC地址的集合,因此取交集后还是MAC地址的集合,这个交集实际上是代表了和Px相连的所有已知二层设备所拥有的MAC地址;在步骤S307,将区域R0中包含的MAC地址对应的设备集合与集合D取交集记录为TempD;与步骤S306所述的原理类似,交集TempD实际代表着所有与Px相连的所有三层设备端口的MAC地址。
在步骤S308,计算TempC所包含设备与Px相对应端口与Px的连接关系,形成在网络拓扑图上显示的新区域R1。这里的计算主要分为两个步骤,即第一,首先判断TempC是否为空,若为空则将Px形成的临时区域R0在网络拓扑图上显示为新区域R1,否则找出TempC所包含所有设备与端口Px的对应端口;这里首先介绍一下本专利说明书中所说的“对应端口”的概念。举例来说,假设TempC包含的某一设备TempX的端口为TempPx,如果Px所学习的MAC地址集合中包含TempX的MAC地址,且TempPx所学习的MAC地址集合中也包含Px所在设备的MAC地址,则端口TempPx和Px为对应端口,因此,查找各端口学习的MAC地址并逐一比较,即可获得对应端口。
判断TempC是否为空的目的是为了处理在拓扑图中没有任何可管理区域时的特殊情况,因为此时添加设备时,并没有设备所在的区域,因此需要根据设备的端口创建新区域R1,而在没有找到设备所在区域的情况下,记录区域连接情况的集合C、D以及由此形成的TempC只能为空,当TempC为空时,空设备所形成的空端口学习的区域也为空,各区域的交集也就为空,为此必须避免此种情况的发生,这时只要直接将Px形成的临时区域R0作为新区域R1显示在网络拓扑图上即可。
第二,将这些端口各自学习的MAC地址形成的在网络拓扑图上不显示的各临时区域与Px形成的临时区域R0取交集,交集的结果形成在网络拓扑图上显示的新区域R1。对应端口实际上是存在着物理连接的端口,但其连接可能是通过区域R0中其它具有MAC地址的设备进行的,因此将对应端口学习MAC地址进行筛选,找出其重叠部分,即通过取交集的办法,就可以定位出对应端口中间连接的设备及其端口的MAC地址集合,将其记录为区域R1,就完成了将设备N的Px端口所原有区域中分离出来的过程。
在步骤S309,对TempC包含设备与Px的对应端口及Px与新区域R1在网络拓扑图上显示连接关系。将端口Px分离后,就需要确立Px与新形成区域R1,及各已知二层设备、三层设备和新区域的连接关系,由于区域是Px及其对应端口形成的,它们和区域的连接是显而易见的,因此在拓扑图上只要显示其连接关系即可。
在步骤S310,将TempD包含设备在拓扑图上显示,并将其与新区域R1在网络拓扑图上显示连接关系。对于我们在管理中认为的三层设备处理比较简单,将其在拓扑图上显示,并直接和新区域建立连接关系即可。
在步骤S311,判断设备N的端口是否处理完;由于是依次处理,我们需要在处理端口的过程中判断一下设备N的端口是否已经处理完,如果判断结果为真,则结束处理;否则,我们返回步骤S305,开始对设备端口的操作。判断是否处理完的手段是很容易的,例如每处理完一个端口,就从集合P中删除该端口,这里不再赘述。
步骤S312实际上是处理流程中的一个分支,其作用是将设备N具有的MAC地址从区域R中删除,并将设备N和R相连接;本步骤地触发条件在步骤S303,即当判断设备N没有学习端口时(表示设备为三层设备),执行本步骤。这是因为对于三层设备的管理较为简便,三层设备只有单向的连接,不会连接更多的网络设备,因此不必进行进一步的迭代拓扑连接处理,只需要将设备N从现有区域中分离即可,即将具有的MAC地址从区域R中删除,并将设备N和R相连接。
若所有端口处理完,则进入步骤S3。
在步骤S3,更新并保存新增设备后的网络拓扑图的连接关系。设备分离后,对拓扑图中的区域需要做进一步的处理,以进一步确定其连接关系。具体步骤可参考图4,叙述如下在步骤S31,任意选择一个未处理的区域R1,判断其是否为空,也就是判断其所包含的MAC地址是否为空,若否,则执行步骤S32,否则执行步骤S33;在步骤S32,保留区域及其连接关系,在上一步,判断出区域所包含的MAC地址不为空,说明在该区域中还有尚未纳入管理的设备,因此要在拓扑图中保留该区域等待下一次的处理,然后转到步骤S38;在步骤S33,判断该区域的连接关系是否大于两条,若在上一步骤判断出该区域的MAC地址为空,则说明区域中已经没有其它网络设备,因此可以把连接区域的网络设备的连接关系确定下来,此时需要进一步判断该区域所拥有的连接关系,若其连接关系大于两条,则执行步骤S34,否则执行步骤S35;在步骤S34,标识该区域为HUB,保留区域及其连接关系;在网络中,HUB一般没有MAC地址,而其连接的网络设备又可以大于两条,因此在这种情况下,可以确定该区域为HUB,转到步骤S38;在步骤S35,判断该区域的连接关系是否等于两条,若等于两条,则执行步骤S36,否则执行步骤S37;在步骤S36,删除该区域,将两个设备对应的端口建立直连关系,转到步骤S38;在步骤S37,删除区域及其连接关系;进入到此步骤表明,区域的连接关系为一条,且区域为空,因此没必要保留区域及其连接关系,进入步骤S38;在步骤S38,判断显示区域是否处理完,若处理完则结束,否则需继续处理,转到步骤S31。
以上我们就完成了对拓扑图上一个设备及其拓扑连接关系的更新,当对网络中的所有设备重复上述更新,并显示到网络拓扑图中时,就完成了一个完整的网络拓扑图的更新。
由上述具体实施例,本领域中的熟练技术人员可以看出,网络拓扑图只是网络拓扑关系的一种具体表现形式,事实上本发明提供的方法本质上是对网络拓扑关系的处理而非对网络拓扑图的处理。如果变换表现形式,比如通过图表的方法表现网络总各个设备的连接关系,仍然是可能的,因此在本发明的这一实施例中,我们通过对网络设备学习到的MAC地址集合的一系列处理,最终获得网络的拓扑关系,根据这一拓扑关系,可以用多种方式将其表现出来。
概括来说,摆脱网络拓扑图等一些表象的干扰,本发明实际上提供了一种网络设备拓扑的管理方法,可以简单提炼为以下步骤对网络内未被纳入管理的未知设备N进行如下处理判断其与网络管理中已知设备的拓扑连接关系A)获取新增设备N的管理信息并处理;B)计算新增设备N和已经存在的管理设备MAC地址集合和已知管理设备之间的拓扑连接关系;C)更新并保存设备N及管理设备MAC地址集合及已知管理设备之间的拓扑连接关系;其中,步骤A)中具体步骤是判断所述设备启动SNMP代理且具有桥MIB,若是则记录该设备管理类型为二层设备,并取桥MIB信息保存;若否则记录该设备管理类型为三层设备;判断是否存在管理设备MAC地址集合,若至少存在一个管理设备集合则寻找设备N所在管理设备集合并记录为R,转到步骤B);若不存在任何管理设备MAC地址集合且设备N管理类型为三层设备则不做任何处理结束。
其中,步骤B)具体包括如下步骤B1)查找与管理设备MAC地址集合R相连的,所有管理类型为二层设备的已知设备MAC地址并记录为集合D1;B2)查找与管理设备MAC地址集合R相连的管理类型为三层设备的所有已知三层设备MAC地址并记录为集合D2;B3)判断设备N有无学习端口,若无则执行步骤B5),若有则寻找设备N的学习端口并记录为端口集合P{P1,......,Pn};
B4)判判断集合P中的端口是否处理完,若处理完则执行步骤C),否则从集合P未处理的端口中选择端口Px进行如下处理根据设备N的端口集合中的Px学习的MAC地址对应的设备MAC地址形成临时设备MAC地址集合R0;将D1与R0取交集的结果记录为TempD3;将D2与R0取交集的结果记录为TempD4;判断TempD3是否为空,若TempD3为空则直接将R0记录为新设备集合R1,否则找出TempD3所包含所有设备与端口Px的对应端口;将这些端口各自学习的MAC地址对应的设备形成的临时设备集合与R0取交集的结果记录为新设备集合R1;记录TempD3包含设备的对应端口及Px与新设备MAC地址集合R1为连接关系;记录TempD4所包含设备与新设备MAC地址集合R1为连接关系。
B5)将设备N具有的MAC地址从R中删除,并将设备N和R相连接。
其中,步骤C)中具体包括C1)判断与设备N相连的设备MAC地址集合是否已经处理完,若处理完则结束,若未处理完则执行步骤C2);C2)任意选择尚未处理的一个设备MAC地址集合,判断所述设备MAC地址集合所包含的设备MAC地址是否为空,若不为空,则保留该MAC地址集合及其对应的连接关系,返回步骤C1);C3)若为空,则进一步判断与该MAC地址集合的连接关系是否大于2条,若是,则执行步骤C4),若否则执行步骤C5);C4)将该MAC地址集合标识为HUB,并保留MAC地址集合及其连接关系,返回步骤C1);
C5)判断MAC地址集合的连接关系是否等于两条,若是则执行步骤D6),若否则执行步骤C7);C6)删除该MAC地址集合,将两个设备对应的端口记录为直连关系,返回步骤C1);C7)保留该MAC地址集合及其连接关系,返回步骤C1)。
下面通过一个更为具体的实施例来进一步阐释本发明所提供的方法,在此实施例中,为了简便起见,我们主要考虑网络中只包含二层设备的情况参考图5,某网络的实际物理连接如图5a所示,运用本发明提供的方法判断其实际物理拓扑关系。我们假设设备处理的顺序是A->F->C->B->D->E,为了简便起见,我们假设图中所有的设备均为二层设备。获取网络信息的各种准备工作完成后,则按照本发明的算法具有如下的步骤1、首先处理A,并假设A具有2个连接其他网络设备的端口,则按照本发明提供的方法,在添加A时,首先判断其设备管理类型,若为二层设备则取桥MIB信息保存;继续断网络拓扑图中是否存在区域,判断结果为否,因此不必记录现有的区域R及其相连的设备,直接开始添加处理其端口,判断其学习端口,此处为两个,并记录为P{P1,P2},然后开始循环处理,对P1,其端口学习到的MAC地址形成区域R1,由于A不存在于任何区域中,因此设备集合C、D以及TempC肯定为空,不必取交集,直接将R1显示在拓扑图上即可;同理,形成区域R2,最后结果如图5b所示,由于区域就是MAC地址的集合,故可以得知,R1中包含设备C、E、F的MAC地址,R2包括B、D的MAC地址,在判断R1、R2的过程中,由于其均不为空,因此保留区域及其连接关系即可。
2、然后添加F,此时发现网络拓扑图中存在区域R1、R2;先找到F所在的区域为R1,记录与R1相连的网络设备,很明显,R1只连接了一个二层设备A,因此集合C为{A},集合D为空;继续判断F的学习端口,此时F的学习端口只有一个,我们假设为P1,可获知该端口学习的MAC地址集合形成临时区域R4,易知R4为{C、A、E},与C的交集为TempC{A},进一步获取A与R1相连接的对应端口,获取其学习的MAC地址集合,形成临时区域R3,易知R3集合为{C、E、F},将对应端口形成的临时区域R3、R4取交集,生成一个新的区域R5,该新生成的区域包括设备C、E;此后删除R1,显示新生成的区域R5,将记录的与区域R1相连的集合C中的设备A直接与区域R5相连,同时新添加的设备F学习端口P1也直接和区域R5相连,其形成的拓扑图显示结果如图5(c2)所示。然后判断区域是否为空,可知区域R2、R5均不为空,故都保留,完成设备F的添加。
3、继续添加C。添加C涉及的设备较多,在此加以详细叙述。首先,找到C所在的区域为R5,为了删除R5后完整的还原其连接关系,首先记录R5所连接的二、三层设备,其中二层设备集合为{A、F},三层设备集合为空;然后寻找其学习端口,本实施例中有三个,记录为集合P{C1,C2,C3},依次循环处理,假设连接设备A的学习端口为C1,则C1学习的是设备A具有的MAC地址,假设其形成临时区域R8{A},用R8分别与C、D取交集,形成TempC{A}、TempD为空集,进一步寻找TempC中设备和C1的对应端口,在本实施例中,是设备A的学习端口,只有一个,可以记作A1,其学习的MAC地址集合形成临时区域R6{C、E、F},此时可以将R6、R8取交集,形成新区域R86(图中略),然后可以删除原区域R5,显示新区域R86(图中略),将设备A端口A1、设备C端口C1和区域R86相连接;同理处理连接设备F的端口C2,推理可得知,与原区域R5相连的设备集合C{A,F}和C2形成的临时区域R9{F}取交集形成的TempC{F}不为空,因此对于C2的处理基本上同C1,R9与设备F的对应端口F1形成的临时区域R7{C、A、E}取交集形成区域R79(图中略)显示在拓扑图中,并与设备C端口C2、设备F相连接;对于设备F的端口C3,情况略有不同,其学习的MAC地址形成临时区域R10{E}(实际上对应着此端口只连接设备E),其与二三层设备集合C、D的交集TempC、TempD均为空,因此按照本发明提供的算法,不必寻找对应设备的端口学习的MAC地址去取交集,直接将C3学习的MAC地址集合形成的临时区域R10作为新区域,记为R10,显示在拓扑图中,并和设备C相连接;此时设备C的添加基本完毕,但需要判断区域的情况以进一步确定连接关系,可以依次进行处理。例如对于上一步骤形成的区域R86,是R8{A}和R6{C、E、F}的交集,显然为空,同时判断出该区域的连接关系为两条,因此按照本算法,将R86删除,在拓扑图上建立A、C的直接连接关系;同理,C、F也直接相连;R10不为空,保持该区域及其连接关系,完成设备C的添加过程。
可以看出,设备C的添加过程是较为典型的,体现了本发明的本质思想所在,即添加设备C的过程实际上只是对区域R5的进一步拆分、细化的过程,R5之外的区域不必考虑,显然计算量大大减小,避免了不必要的计算处理过程。
4、继续类推,可得知添加B后形成区域R11-R13,取交集后留下R13;并且B与A直接相连;5、再次类推,添加D影响了区域R13;添加F影响了R10;最终形成物理拓扑。
在上述实施例中,我们主要以二层设备为例阐述了本发明所提供方法的一种具体实施例,但这并不是用来限制本发明的保护范围的,而是示意性的。例如,上述具体实施例并没有具体描述网络中包含HUB的情况,而事实上,如前所述,本发明所提供的方法能准确地描述包含HUB的组网,如图4所示。图6中的(a)示出了带有HUB的实际网络连接,而图(b)则是应用背景技术中所提到的方案后的拓扑图显示结果。图(b)则是应用本发明所提供方法后的拓扑图显示结果。
背景技术
中的方案之所以会出现设备间的直接连接,是因为一般情况下HUB没有自己的MAC地址(若工作于被管理情形,与网管通信的端口具有MAC,但在我们提供的管理方法中,可以将此种特殊情形予以忽略,仍能满足实际应用的需要)导致的;但基于我们的算法,会形成一个空区域,这个空区域可以标识为HUB。
虽然通过实施例描绘了本发明,但本领域普通技术人员知道,在不脱离本发明的精神和实质的情况下,就可使本发明有许多变形和变化,本发明的范围由所附的权利要求来限定。
权利要求
1.一种网络拓扑图更新方法,其特征在于,在网络拓扑图上新增未知设备N的处理步骤如下1)获取新增设备N的管理信息并处理;2)计算新增设备N与网络拓扑图中已知设备和区域的拓扑连接关系;3)更新并保存新增设备后的网络拓扑图连接关系。
2.如权利要求1所述的方法,其特征在于步骤1)获取管理信息步骤具体包括11)判断所述设备启动SNMP代理且具有桥MIB,若是则记录该设备管理类型为二层设备,并取桥MIB信息保存;若否则记录该设备管理类型为三层设备;12)判断网络拓扑图中是否存在区域,若网络拓扑图中至少存在一个区域则寻找设备N所在区域并记录为R,转到步骤2);13)若网络拓扑图中不存在任何区域且设备N管理类型为三层设备则不做任何处理结束。
3.如权利要求2所述的方法,其特征在于,所述步骤2)具体包括如下步骤查找与区域R相连的,管理类型为二层设备的已知设备并记录为集合C{C1,......,Cn};21)查找与区域R相连的,管理类型为三层设备的已知设备并记录为集合D{D1,......,Dn};22)在拓扑图上显示新增设备N,判断设备N有无学习端口,若无则执行步骤26),若有则寻找其学习端口记录为集合P{P1,......,Pn};23)从集合P未处理的端口中选择端口Px进行如下处理将所述Px学习的MAC地址形成在网络拓扑图上不显示的临时区域R0;将区域R0中包含的MAC地址对应的设备集合与集合C取交集记录为TempC;将区域R0中包含的MAC地址对应的设备集合与集合D取交集记录为TempD;计算TempC所包含设备与Px相对应端口与Px的连接关系,形成在网络拓扑图上显示的新区域R1;对TempC包含设备与Px的对应端口及Px与新区域R1在网络拓扑图上显示连接关系;将TempD包含设备在拓扑图上显示,并与新区域R1相连接;24)判断集合P中的端口是否处理完,若处理完则结束,否则回到步骤23);25)将设备N具有的MAC地址从区域R中删除,并将设备N和R相连接,结束。
4.如权利要求3所述的方法,其特征在于所述计算TempC包含设备与Px相对应端口与Px的连接关系,形成新区域R1的具体步骤为判断TempC是否为空,若为空则将Px形成的临时区域R0在网络拓扑图上显示为新区域R1,否则找出TempC所包含所有设备与端口Px的对应端口;将这些端口各自学习的MAC地址形成在网络拓扑图上不显示的各临时区域,与Px形成的临时区域R0取交集,交集的结果形成在网络拓扑图上显示的新区域R1。
5.如权利要求1所述的方法,其特征在于步骤3)具体包括31)任意选择尚未处理的一个区域,判断区域所包含的MAC地址是否为空,若不为空,则执行步骤32),若为空,执行步骤33);32)在网络拓扑图上保留该区域及其连接关系,执行步骤38);33)进一步判断该区域的连接关系是否大于2条,若是,则执行步骤34),若否则执行步骤35);34)若是,则在网络拓扑图上将该区域标识为HUB,并保留区域及其连接关系,执行步骤38);35)若否,继续判断区域连接关系是否等于两条,若是则执行步骤36),若否则执行步骤37);36)在网络拓扑图上删除区域,将两个设备对应的端口建立直连关系,执行步骤38);37)在网络拓扑图上保留区域及其连接关系,执行步骤38);38)判断网络拓扑图中与设备N相连的显示的区域是否已经处理完,若处理完则结束,若未处理完则返回步骤31)。
6.一种应用如权利要求1所述方法形成网络拓扑图的方法,其特征在于对网络中的所有设备在拓扑图上逐一进行如权利要求1所述的网络拓扑图更新方法。
7.一种网络拓扑管理方法,其特征在于对网络内未被纳入管理的未知设备N进行如下处理判断其与网络管理中已知设备的拓扑连接关系A)获取新增设备N的管理信息并处理;B)计算新增设备N和已经存在的管理设备MAC地址集合和已知管理设备之间的拓扑连接关系;C)更新并保存设备N及管理设备MAC地址集合及已知管理设备之间的拓扑连接关系。
8.如权利要求7所述的方法,其特征在于步骤A)中具体步骤是A1)判断所述设备启动SNMP代理且具有桥MIB,若是则记录该设备管理类型为二层设备,并取桥MIB信息保存;若否则记录该设备管理类型为三层设备;A2)判断是否存在管理设备MAC地址集合,若至少存在一个管理设备集合则寻找设备N所在管理设备集合并记录为R,转到步骤B);A3)若不存在任何管理设备MAC地址集合且设备N管理类型为三层设备则不做任何处理结束。
9.如权利要求8所述的方法,其特征在于所述步骤B)具体包括如下步骤B1)查找与管理设备MAC地址集合R相连的,所有管理类型为二层设备的已知设备MAC地址并记录为集合D1;B2)查找与管理设备MAC地址集合R相连的管理类型为三层设备的所有已知三层设备MAC地址并记录为集合D2;B3)判断设备N有无学习端口,若无则执行步骤B5),若有则寻找设备N的学习端口并记录为端口集合P{P1,......,Pn};B4)判断集合P中的端口是否处理完,若处理完则执行步骤C),否则从集合P未处理的端口中选择端口Px进行如下处理根据设备N的端口集合中的Px学习的MAC地址对应的设备MAC地址形成临时设备MAC地址集合R0;将D1与R0取交集的结果记录为TempD3;将D2与R0取交集的结果记录为TempD4;判断TempD3是否为空,若TempD3为空则直接将R0记录为新设备集合R1,否则找出TempD3所包含所有设备与端口Px的对应端口;将这些端口各自学习的MAC地址对应的设备形成的临时设备集合与R0取交集的结果记录为新设备集合R1;记录TempD3包含设备的对应端口及Px与新设备MAC地址集合R1为连接关系;记录TempD4所包含设备与新设备MAC地址集合R1为连接关系;B5)将设备N具有的MAC地址从R中删除,并将设备N和R相连接。
10.如权利要求8所述的方法,其特征在于步骤C)中具体包括C1)判断与设备N相连的设备MAC地址集合是否已经处理完,若处理完则结束,若未处理完则执行步骤C2);C2)任意选择尚未处理的一个设备MAC地址集合,判断所述设备MAC地址集合所包含的设备MAC地址是否为空,若不为空,则保留该MAC地址集合及其对应的连接关系,返回步骤C1);C3)若为空,则进一步判断与该MAC地址集合的连接关系是否大于2条,若是,则执行步骤C4),若否则执行步骤C5);C4)将该MAC地址集合标识为HUB,并保留MAC地址集合及其连接关系,返回步骤C1);C5)判断MAC地址集合的连接关系是否等于两条,若是则执行步骤C6),若否则执行步骤C7);C6)删除该MAC地址集合,将两个设备对应的端口记录为直连关系,返回步骤D1);C7)保留该MAC地址集合及其连接关系,返回步骤C1)。
全文摘要
本发明公开了一种网络拓扑图更新方法,将网络拓扑图上新增未知设备N的处理步骤分解为1)获取新增设备N的管理信息并处理;2)计算新增设备N与网络拓扑图中已知设备和区域的拓扑连接关系;3)更新并保存新增设备后的网络拓扑图连接关系。应用本发明所提供的方法,可以实现网络拓扑图的设备添加时更新的局部化处理,且整个网络拓扑图的形成与设备添加顺序无关。
文档编号H04L12/24GK1747404SQ20051010930
公开日2006年3月15日 申请日期2005年10月14日 优先权日2005年10月14日
发明者石翔, 雷海波, 金宏, 曾勇刚 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1