一种网络拓扑发现方法和装置的制作方法

文档序号:7853099阅读:201来源:国知局
专利名称:一种网络拓扑发现方法和装置的制作方法
技术领域
本发明涉及网络管理技术领域,尤指ー种网络拓扑发现方法和装置。
背景技术
网络拓扑是ー种表达网络逻辑连接关系和物理连接关系的方法。通过网络拓扑管理员可以直观地了解网络当前的运行状况,准确定位网络中的故障以进行隔离,并对整个网络中可能存在的瓶颈进行准确分析,从而有针对性地改造网络,提高网络的整体性能。因此,随着网络规模的越来越大,对网络拓扑发现的准确性和实时性提出了更高的要求。目前比较常见的网络拓扑发现方法有根据媒体访问控制(MAC)地址学习表进行拓扑发现的方法和根据邻居信息进行拓扑发现的方法。
首先以图I为例简要介绍根据MAC地址学习表进行拓扑发现的过程。图I是现有技术中的一个简单的网络拓扑示意图。如图I所示,交换机I的接ロ11同交换机2的接ロ 21直连;交换机2的接ロ 22同交换机3的接ロ 31直连;交换机I的MAC地址为0a,交换机2的MAC地址为Ob,交换机3的MAC地址为Oc。交换机I的接ロ 11可以学习到交換机2和交換机3的MAC地址,交換机2的接ロ 21可以学习到交換机I的MAC地址,交换机2的接ロ 22可以学习到交换机3的MAC地址,交换机3的接ロ 31可以学习到交換机I和交換机2的MAC地址,则上述四个接ロ所学习的MAC地址如表I所示
交换机I[接ロ 11I=Ob, Oc
交換机2-----
交换机3Γ接ロ 31I:Oa, Ob表I下面以交换机3的接ロ 31为例来说明网络拓扑的发现过程,包括以下步骤步骤101,取出交换机3的接ロ 31学习到第一个MAC地址Oa,根据该MAC地址Oa查找到设备为交換机I ;步骤102,获取交换机I上所有存在MAC地址学习信息的接ロ,本例中交换机I上只有接ロ 11存在MAC地址学习信息;步骤103,判断交换机I的接ロ 11所学习的MAC地址中是否存在交换机3的MAC地址;如果不存在,则继续处理交换机3的接ロ 31学习到的下ー个MAC地址Ob ;如果存在,继续判断交换机I的接ロ 11所学习的MAC地址(Ob,Oc)和交换机3的接ロ 31所学习的MAC地址(0a,0b)是否存在交集,如果存在交集,则说明交换机3的接ロ 31和交换机I的接ロ11之间存在其它设备,则继续处理交换机3的接ロ 31学习到的下ー个MAC地址Ob,如果不存在交集,则说明交換机3的接ロ 31和交換机I的接ロ 11之间存在直连链路,本例中存在交集,因此接ロ 31和接ロ 11之间不存在直连链路;步骤104,继续处理交换机3的接ロ 31学习到的下ー个MAC地址0b,根据该MAC地址Ob查找到设备为交换机2 ;步骤105,获取交换机2上所有存在MAC地址学习信息的接ロ,本例中交换机2上有接ロ 21和接ロ 22存在MAC地址学习信息;步骤106,同样,根据步骤3中的策略对交换机2中的接ロ 21和接ロ 22进行判断交换机2的接ロ 21所学习的MAC地址(Oa)中不存在交换机3的MAC地址Oc,因此接ロ 21和接ロ 31之间不存在直连链路;交换机2的接ロ 22所学习的MAC地址(Oc)中存在交换机3的MAC地址0c,且接ロ 22所学习的MAC地址(Oc)和交换机3的接ロ 31所学习的MAC地址(0a,Ob)不存在交集,因此接ロ 22和接ロ 31之间存在直连链路。其它接ロ的拓扑发现过程与上述过程相同,不再一一详述。但是随着网络规模的扩大,设备的MAC地址学习表也会变得越来越庞大,这种根 据MAC地址学习表进行拓扑发现的算法的性能也会变差,另外因为MAC地址老化等原因,这种算法也存在很大的局限性。而根据邻居信息进行拓扑发现的算法,因为其效率高,正在被越来越多地应用。目前,比较常见的根据邻居信息进行拓扑发现的算法有链路层发现协议(LLDP,Link Layer Discovery Protocol)和生成树协议(STP, Spanning Tree Protocol)两种。LLDP是端ロ到端ロ的ニ层协议,用于学习网络中的相邻设备间的邻居信息。STP是ー种ニ层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络ニ层环路的目的,同时又具备链路备份功能,STP的指定桥及接ロ就是反映设备间的邻居信息。对于LLDP和STP来说,设备接口上只会记录同自己相连的邻居信息,所以根据邻居信息进行拓扑发现,不会随着网络规模的扩大而受到影响。但是,根据LLDP或STP邻居信息进行网络拓扑发现时,对于存在LLDP/STP协议报文透传的情况会导致链路计算的结果出错,下面仍以图I为例进行说明。在图I中,假设交换机I和交换机3支持LLDP,而交换机2不支持LLDP。交换机2收到交换I和交换机3的LLDP报文时会进行透传,导致交换机I的接ロ 11和交换机3的接ロ 31互相学习到对方为自己的邻居,进而计算出交換机I的接ロ 11和交換机3的接ロ31直连的错误拓扑。STP的情况与LLDP相同。为了解决上述问题,现有技术提出了另外ー种方案,先根据邻居信息发现两台设备的接ロ之间存在邻居关系,然后根据存在邻居关系的接ロ所学习的MAC地址之间无交集的方案验证所发现的邻居关系是否为由于中间设备的透传而导致的错误计算結果。仍以图I所示的交换机2对LLDP报文进行透传的场景为例,预先依据LLDP邻居信息计算出交换机I的接ロ 11和交换机3的接ロ 31直连,然后依据两个接ロ所学习的MAC地址是否有交集的原则,发现接ロ 11所学习的MAC地址(0b,Oc)和接ロ 31所学习的MAC地址(0a,Ob)存在交集0b,因此判断出接ロ 11和接ロ 31之间存在透传LLDP报文的设备,该设备的MAC地址为0b,因此接ロ 11和接ロ 31之间没有直连链路。虽然上述方案对于每台交换机仅有唯一 MAC地址时能够有效地判断两台直连的设备接ロ间是否存在LLDP/STP协议报文透传。然而,对于交换机不同接ロ拥有不同MAC地址时,上述方案无法解决因LLDP/STP报文透传引起的拓扑计算错误的问题。如图2所示的应用场景中,假设交换机I的MAC地址为0a,交换机2接ロ I的MAC地址为0b01,交换机2接ロ 2的MAC地址为0b02,SffI TCH3的MAC地址为0c。显然,在交换机I的接ロ 11学习到的MAC地址为0b01、0c。交换机3的接ロ 31学习到的MAC地址0b02、0a。依据上述方案,首先依据LLDP邻居信息计算出交換机I和交換机3直连,然后依据MAC地址学习交集为空的原则进行校验,其结果是交换机I接ロ 11和交换机3接ロ 31间MAC学习没有交集,为直连链路。

发明内容
有鉴于此,本发明提供了ー种网络拓扑发现方法及装置,能够避免在存在透传且同一交換机不同接ロ拥有不同MAC地址时计算出错误的网络拓扑。为达到上述目的,本发明的技术方案具体是这样实现的本发明提供了ー种网络拓扑发现方法,应用于交換机和网络管理系统构成的系统中,其中该方法包括 在交换机加入网络管理系统后,轮询交换机时,分别获取交换机的MAC地址信息、交換机接ロ的邻居信息以及交換机接ロ学习到的MAC地址信息并进行缓存以分别形成交换机的MAC地址信息记录表、交換机接ロ的邻居信息记录表以及交換机接ロ学习到的MAC地址信息记录表;根据交换机接ロ的邻居信息计算出直连链路,从交换机接ロ学习到的MAC地址信息记录表中,获取所述直连链路两端接ロ学习到的所有MAC地址信息,依据该交換机接ロ所学习到的MAC地址信息,将所述MAC地址信息转换成该MAC地址所映射的交换机IP地址
信息;判断直连链路两端端ロ学习到的MAC地址所映射的交換机IP地址信息中是否存在交集,如果存在交集,则确定所述交换机接ロ和所述邻居设备接ロ之间不存在直连链路,否则,则确定所述指定接口和所述邻居设备接ロ之间存在直连链路。本发明还公开了ー种网络拓扑发现装置,用于交换机和网络管理系统构成的系统中,其中所述装置具体为管理所述交换机的网络管理系统,其中该装置包括记录模块,用于在交換机加入网络管理系统后,轮询交换机时,分别获取交換机的MAC地址信息、交換机接ロ的邻居信息以及交換机接ロ所学习到的MAC地址信息并进行缓存以分别形成交換机的MAC地址信息记录表、交換机接ロ的邻居信息记录表以及交換机接ロ学习到的MAC地址信息记录表;邻居信息发现模块,用于获取交換机的指定接口上的邻居信息,并根据所述获取的邻居信息查找出邻居设备接ロ并通知处理模块;处理模块,用于在获取所述指定接ロ学习到的MAC地址和所述邻居设备接ロ学习到的MAC地址信息后,依据所述交换机接ロ所学习的MAC地址信息,将所述MAC地址信息转换成该MAC地址所映射的交换机IP地址信息,判断直连链路两端端ロ学习到的MAC地址所映射的交換机IP地址信息是否存在交集,如果存在交集,确定所述指定接口和所述邻居设备接ロ之间不存在直连链路;否则,则确定所述指定接口和所述邻居设备接ロ之间存在直连链路。由上述技术方案可见,本发明这种根据交換机接ロ的邻居信息计算出直连链路,依据交换机接ロ学习到的MAC地址信息,将直连链路两端接ロ学习到的MAC地址信息转换成该MAC地址所映射的交换机IP地址信息,根据直连链路两端接ロ学习到的MAC地址所映射的交換机IP地址信息是否存在交集判断是否存在邻居信息透传。该方法能够避免在存在透传且同一台交換机不同接ロ拥有不同MAC地址时计算出错误的拓扑。


图I是现有技术中的某一应用场景下简单的网络拓扑示意图;图2是现有技术中的另一应用场景下简单的网络拓扑不意图;图3是本发明实施例网络拓扑发现方法的流程图;图4是本发明实施例网络拓扑发现装置的组成结构框图。
具体实施方式

本发明的核心思想是在交换机加入网络管理系统后,轮询交换机时,获取交该交换机的MAC地址信息记录表、交換机接ロ的邻居信息记录表以及交換机接ロ学习到的MAC地址信息记录表并进行缓存;根据交换机接ロ的邻居信息记录表计算出交换机间的直连链路,将该直连链路两端接ロ学习到的MAC地址信息转换成该MAC地址所映射的交换机IP地址信息,然后判断所述直连链路两端端ロ学习到的MAC地址所映射的交換机IP地址间是否存在交集,如果不存在交集,则为直连链路。本发明的技术方案能够避免在存在透传且同一交換机不同接ロ拥有不同MAC地址时计算出错误的拓扑。为使本发明更加清楚明白,以下结合图3对本发明提供的网络拓扑发现方法加以详细说明,具体包括以下步骤步骤301,记录交换机的MAC地址信息本实施例中,需要在交换机上记录交换机的MAC地址信息,内容包括交换机唯一IP地址、交換机的MAC地址集合以及两者间的映射关系。步骤302,记录交换机接ロ的邻居信息本实施例中,同样需要记录交换机接ロ的邻居信息,内容包括交换机IP、交换机接ロ ID、邻居设备IP、邻居设备接ロ ID信息及其之间的对应关系。另外,在本步骤中,邻居信息具体是通过链路层发现协议LLDP或生成树协议STP来获取的。步骤303,记录交换机接ロ学习到的所有MAC地址信息本实施例中,进ー步需要记录交换机接ロ学习到的所有MAC地址信息,内容包括接ロ所在的交换机IP地址信息、交换机接ロ ID、以及接ロ所学习到的所有MAC地址及其之间的对应关系。步骤304,交换机加入网络管理系统后,轮询交换机时,分别获取交换机的MAC地址信息、交換机接ロ的邻居信息以及交換机接ロ所学习的MAC地址信息并进行缓存。本步骤中,在交換机加入网络管理系统后,轮询交换机时,需要分别针对前述步骤301-303记录的交换机的MAC地址信息、交换机接ロ的邻居信息、交换机接ロ学习到的所有MAC地址信息进行缓存,以分别形成交換机的MAC地址记录表、交換机接ロ的邻居信息记录表以及交換机接ロ学习到的MAC地址信息记录表。步骤305,根据交换机接ロ的邻居信息计算出直连链路。步骤306,从交换机接ロ学习到的MAC地址信息记录中,获取所述直连链路两端接ロ学习到的所有MAC地址信息。
步骤307,依据交换机接ロ所学习的MAC地址信息,将所述MAC地址信息转换成该MAC地址所映射的交换机IP地址信息。需要说明的是,在本实施例中,如果交换机接ロ学习到同一台交换机上的多个MAC地址时,这些MAC地址只能映射到该交换机的同一个IP地址上,此时只需要将同一台交換机上所有的MAC地址转换成该交换机的ー个IP地址即可。步骤308,判断直连链路两端端ロ学习到的MAC地址信息映射的交換机IP地址间是否存在交集,如果存在交集,进入步骤309,否则进入步骤310。步骤309,确定所述交换机接口和所述邻居设备接ロ之间不存在直连链路。本步骤中,由于所述交換机接ロ学习到的MAC地址所映射的交換机IP地址间存在交集,且由于一台交換机只拥有唯一的IP地址,因此可以确定所述交换机接口和邻居设备接ロ之间存在一台或多台设备,这些设备透明转发LLDP/STP报文。 步骤310,确定所述指定接口和所述邻居设备接ロ之间存在直连链路。本步骤中,由于交换机接ロ所学习的MAC地址映射的交换机IP地址和邻居设备接ロ学习到的MAC地址对应的交换机IP地址间不存在交集,由于IP地址对应交换机的唯一性,因此可以确定接口和邻居设备接ロ之间存在直连链路。通过图3所示的方案可以避免在存在透传且同一交換机不同接ロ拥有不同MAC地址时计算出错误的网络拓扑。例如,在图2示的交换机2对LLDP报文进行透传的场景,首先依据LLDP邻居信息计算出交换机I的接ロ 11和交换机3的接ロ 31直连,其次获取这两个接ロ所学习的MAC地址集合A和B。其中交换机I的接ロ 11所学习的MAC地址集合A具体为ObO I、Oc ;交换机3的接ロ 31所学习的MAC地址集合B具体为0b02、0a。接下来将集合A和集合B分别转换成对应的交换机IP地址集合Al和BI。其中对应MAC地址集合A的交换机IP地址集合Al为交换机2的IP地址IP2、交换机3的IP地址IP3 ;对应MAC地址集合B的交换机IP地址集合BI为交换机2的IP地址IP2、交换机I的IP地址IPl。由于交换机IP地址集合Al和BI间存在交集,所以在交換机I和交換机3之间不是直连链路。图4是本发明实施例ー种网络拓扑发现装置的组成结构框图,用于交换机和网络管理系统构成的系统中,其中所述装置具体为管理所述交换机的网络管理系统。如图4所示,该装置包括记录模块401、邻居信息发现模块402和处理模块403,其中记录模块401,用于在交换机加入网络管理系统后,轮询交换机时,分别获取交换机的MAC地址信息、交换机接ロ的邻居信息以及交换机接ロ学习到的MAC地址信息并进行缓存。具体地,在交換机加入网络管理系统后,轮询交换机时,所述记录模块401需要分别针对前述步骤301-303记录的交换机的MAC地址信息、交换机接ロ的邻居信息、交换机接ロ学习到的MAC地址信息进行缓存,以分别形成交換机的MAC地址信息记录表、交換机接ロ的邻居信息记录表以及交換机接ロ学习的MAC地址信息记录表。进ー步地,所述交换机的MAC地址记录表内容包括交换机的唯一 IP地址、交换机的MAC地址集合及两者间的映射关系;所述交换机接ロ的邻居信息记录表内容包括交換机IP地址、交換机接ロ ID、邻居设备IP、邻居设备接ロ ID信息及其之间的对应关系,以及,
所述交换机接ロ学习到的MAC地址信息记录表内容包括接ロ所在的交换机IP地址、交换机接ロ ID、所学习到的所有MAC地址集合及其之间的对应关系。邻居信息发现模块402,用于获取交換机的指定接口上的邻居信息,井根据获取的所述交换机接ロ的邻居信息查找出邻居设备接ロ并通知处理模块403 ;在本实施例中,所述邻居信息具体是通过链路层发现协议LLDP或生成树协议STP来获取的,内容包括交换机IP、交换机接ロ、邻居设备IP、邻居设备接ロ信息。处理模块403,用于在获取所述到所述交换机指定接ロ所学习的MAC地址和所述邻居设备接ロ所学习的MAC地址信息后,依据交换机接ロ学习到的MAC地址信息记录,将每一 MAC地址转换成该MAC地址映射的交换机IP地址信息,判断直连链路两端端ロ学习到的MAC地址所映射的交換机IP地址信息间是否存在交集,如果存在交集,确定所述指定接ロ和所述邻居设备接ロ之间不存在直连链路。否则,则确定所述指定接口和所述邻居设备接ロ之间存在直连链路。 需要说明的是,在本实施例中,如果交换机接ロ学习到同一台交换机上的多个MAC地址时,这些MAC地址只能映射到该交换机的同一个IP地址上,此时只需要将这些MAC地址转换成该交换机的同一个IP地址即可。由于指定接ロ所学习的MAC地址所映射的交換机IP地址间存在交集,且由于一台交換机只拥有唯一的IP地址,因此可以确定交換机接口和邻居设备接ロ之间存在一台或多台设备,这些设备透明转发LLDP/STP报文。反之,则表明因指定接口和邻居设备接ロ之间不存在透传的设备,此指定接口和邻居设备接ロ之间存在直连链路。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.ー种网络拓扑发现方法,应用于交換机和网络管理系统构成的系统中,其特征在干,该方法包括如下步骤 在交换机加入网络管理系统后,轮询交换机时,分别获取交换机的MAC地址信息、交换机接ロ的邻居信息以及交換机接ロ学习到的MAC地址信息并进行缓存以分别形成交換机的MAC地址信息记录表、交換机接ロ的邻居信息记录表以及交換机接ロ学习到的MAC地址信息记录表; 根据交换机接ロ的邻居信息计算出直连链路,从交换机接ロ学习到的MAC地址信息记录表中,获取所述直连链路两端接ロ学习到的所有MAC地址信息,依据该交換机接ロ所学习到的MAC地址信息,将所述MAC地址信息转换成该MAC地址所映射的交换机IP地址信息; 判断直连链路两端端ロ学习到的MAC地址所映射的交换机IP地址信息中是否存在交集,如果存在交集,则确定所述交换机接口和所述邻居设备接ロ之间不存在直连链路,否则,则确定所述指定接ロ和所述邻居设备接ロ之间存在直连链路。
2.如权利要求I所述的方法,其特征在干, 所述交换机的MAC地址信息记录表内容包括交换机唯一 IP地址、交换机的MAC地址集合及两者间的映射关系; 所述交换机接ロ的邻居信息记录表内容包括交換机IP、交換机接ロ ID、邻居设备IP、邻居设备接ロ ID信息及其之间的对应关系,以及, 所述交换机接ロ学习的MAC地址信息记录表内容包括接ロ所在的交換机IP地址、交換机接ロ ID、交换机接ロ所学习到的所有MAC地址及其之间的对应关系。
3.如权利要求I所述的方法,其特征在于,所述邻居信息为链路层发现协议邻居信息或生成树协议邻居信息。
4.如权利要求I所述的方法,其特征在于,当交換机接ロ学习到同一台交換机上的多个MAC地址时,所述这些MAC地址只映射到该交换机的同一个IP地址上。
5.ー种网络拓扑发现装置,用于交换机和网络管理系统构成的系统中,其中所述装置具体为管理所述交换机的网络管理系统,其特征在于,该装置包括 记录模块,用于在交换机加入网络管理系统后,轮询交换机时,分别获取交换机的MAC地址信息、交換机接ロ的邻居信息以及交換机接ロ所学习到的MAC地址信息并进行缓存以分别形成交換机的MAC地址信息记录表、交換机接ロ的邻居信息记录表以及交換机接ロ学习到的MAC地址信息记录表; 邻居信息发现模块,用于获取交換机的指定接口上的邻居信息,并根据所述获取的邻居信息查找出邻居设备接ロ并通知处理模块; 处理模块,用于在获取所述指定接ロ学习到的MAC地址和所述邻居设备接ロ学习到的MAC地址信息后,依据所述交换机接ロ所学习的MAC地址信息,将所述MAC地址信息转换成该MAC地址所映射的交换机IP地址信息,判断直连链路两端端ロ学习到的MAC地址所映射的交換机IP地址信息是否存在交集,如果存在交集,确定所述指定接口和所述邻居设备接ロ之间不存在直连链路;否则,则确定所述指定接口和所述邻居设备接ロ之间存在直连链路。
6.如权利要求5所述的装置,其特征在干,所述交换机的MAC地址信息记录表内容包括交换机IP地址、交换机的MAC地址集合及两者间的映射关系; 所述交换机接ロ的邻居信息记录表内容包括交換机IP地址、交換机接ロ ID、邻居设备IP地址、邻居设备接ロ ID信息及其之间的对应关系,以及, 所述交换机接ロ学习到的MAC地址信息记录表内容包括接ロ所在的交換机IP地址、交换机接ロ ID、该接ロ所学习到的MAC地址集合及其之间的对应关系。
7.如权利要求5所述的装置,其特征在干,所述邻居信息为链路层发现协议邻居信息或生成树协议邻居信息。
8.如权利要求5所述的装置,其特征在于,当交換机接ロ学习到同一台交換机上的多个MAC地址时,所述这些MAC地址只能映射到该交换机的同一个IP地址上。
全文摘要
本发明公开了一种网络拓扑发现方法和装置。方法包括在交换机加入网络管理系统后,轮询交换机时,获取该交换机的MAC地址记录表、交换机接口的邻居信息记录表以及交换机接口学习到的MAC地址信息记录表并进行缓存;根据交换机接口的邻居信息记录表计算出交换机间的直连链路,将该直连链路两端接口学习到的MAC地址信息转换成MAC地址所映射的交换机IP地址信息,然后判断两端端口学习到的MAC地址映射的交换机IP地址间是否存在交集,如果不存在交集,则为直连链路。本发明的技术方案能够避免在存在透传且同一交换机不同接口拥有不同MAC地址时计算出错误的拓扑。
文档编号H04L12/24GK102694689SQ20121018682
公开日2012年9月26日 申请日期2012年6月6日 优先权日2012年6月6日
发明者曾勇刚, 潘宗辉 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1