网络拓扑发现方法及相关设备的制作方法

文档序号:7695557阅读:95来源:国知局

专利名称::网络拓扑发现方法及相关设备的制作方法
技术领域
:本发明涉及计算机网络领域,尤其涉及一种网络拓朴发现方法及相关设备。
背景技术
:随着网络技术的发展,网络规模不断扩大,复杂性日趋增加,促使用户对网络管理的要求越来越高。网络拓朴发现作为完成许多网络管理任务的前提,其主要分为网络节点发现、网络层拓朴发现和链路层拓朴发现。其中,网络节点发现的目的是发现构成网络的网络节点及网络节点信息,比如,发现交换机、路由器和主机等及这些节点的信息;网络层拓朴发现的目的是确定网络中各子网间的拓朴连接关系;链路层拓朴发现的目的是确定这些子网内部的拓朴连接关系,最主要的是确定子网内交换机/网桥等支持TCP/IP二层协议的设备之间的拓朴连接关系。请参见图1,为现有的网络拓朴发现方法流程图,所述方法包括如下步骤步骤101:标志节点发送因特网包探索器(PacketInternetGrope,PING)检测管理域内的网际协议(InternetProtocol,IP)地址,获得所述管理域内活动的IP;也址;步骤102:识别活动的IP地址对应网络节点的类型发现管理域内的交换机,其中,所谓网络节点的类型包括路由器,交换机及主机类节点;步骤103:逐个读取管理域内交换机的介质访问控制(MediaAccessControl,MAC)地址转发表,若MAC地址转发表记录了标志节点(所谓标志节点就是发送PING的网络节点)的MAC地址,则将所述MAC地址转发表对应的交换机端口标记为上行端口,交换机的其余端口则标记为下行端口,直到标记出管理域内所有交换机的上行端口和下行端口,执行步骤104;步骤104:逐个判断管理域内的交换才几是否只有一个端口的MAC地址转发表记录了其他交换机的MAC地址,如果是,则将所述交换机添加到叶子交换机队列,如果否,则将所述交换机添加到非叶子交换机队列,直到将管理域内所有的交换机分别添加到叶子和非叶子交换机队列,执行步骤105;步骤105:从叶子交换机队列中取出一个叶子交换机,在非叶子交换机队列中确定与所述叶子交换机的上行端口相连的非叶子交换机的下行端口;步骤106:判断所述非叶子交换机的其他端口(不包括所述下行端口)中是否只有一个端口的MAC地址转发表记录了其他交换机的MAC地址,如果是,则进入步骤107,如果否,则进入步骤108;步骤107:将所述非叶子交换机添加到叶子交换机队列,执行步骤108;步骤108:判断所述叶子交换机队列是否为空,如果否,则返回步骤105,如果是,则管理域内的交换机拓朴连接关系处理结束。在对现有技术的研究和实践过程中,发明人发现釆用现有网络拓朴发现方法发现交换机之间的拓朴连接关系时,存在如下问题若交换机之间存在图2虚线所示环形拓朴连接关系,当现有链路层拓朴发现方法执行到步骤106时,会发现与叶子交换机相连的非叶子交换机不满足成为叶子交换机的条件,而当该非叶子交换机不满足成为叶子交换机的条件时,现有链路层拓朴发现方法将不再对其拓朴连接关系进行处理,从而使得环形拓朴连接关系无法发现。请参见图2所示链路层拓朴连接关系,交换机201只有一个上行端口连接了交换机202,满足成为叶子交换机的条件,现有链路层拓朴发现方法能够处理出交换机201和交换机202之间的拓朴连接关系,而交换机202的两个上行端口分别连接交换机203和204形成虚线所示环形拓朴连接关系,由于交换机202不满足成为叶子交换机的条件,现有链路层拓朴发现方法将不再处理交换机202的拓朴连接关系,使得图2虚线所示环形拓朴连接关系无法发现。综上所述,现有链路层拓朴发现方法存在不能完整准确地发现交换机之间拓朴连接关系的缺点。在对现有技术的研究和实践过程中,发明人发现采用现有网络拓朴发现方法进行网络节点发现时存在如下问题现有方法在管理域内采用Ping的方式,发现管理域内活动的IP地址,也就是发现管理域内活动的网络节点,而在实际网络中,管理域内是主机类节点的网络节点的数量要远远多于网络节点(比如路由器,交换机)的数量,并且大多数主机类节点是禁止响应Ping的,因此,采用Ping方式来发现管理域内活动的网络节点,会导致网络节点发现效率低下、耗时过多。
发明内容本发明实施例要解决的技术问题是提供一种链路层拓朴发现方法及相关设备,能够完整准确地发现交换机之间的拓朴连接关系。本发明实施例要解决的另一个技术问题是提供一种网络节点发现方法及相关设备,能够快速地发现网络节点。为解决上述技术问题,本发明所提供的实施例是通过以下技术方案实现的本发明实施例提供了一种链路层拓朴发现方法,所述方法包括获取交换机的生成树协议结果;对所述交换机的生成树协议结果进行处理,得到交换机级联端口的拓朴连接关系;判断是否存在未确定拓朴连接关系的交换机级联端口,如果存在,则根据所述未确定拓朴连接关系的交换机级联端口的MAC地址转发表,得到所述未确定拓朴连接关系的交换机级联端口的拓朴连接关系。本发明实施例还提供了一种网络节点发现方法,所述方法包括采用简单网络管理协议,在节点发现范围内的子网中,发现网络节点;若发现的网络节点支持路由功能,则判断所述网络节点是否支持简单网络管理协议访问地址解析緩存表,如果否,则所述网络节点所在的子网为不支持以简单网络管理协议方式发现节点的子网,在所述不支持简单网络管理协议方式发现节点的子网中启动地址解析协议,发现所述子网中的网络节点。本发明实施例还提供了一种网络信息处理装置,包括生成树协议结果获取单元,用于获取交换机的生成树协议结果;拓朴关系第一获取单元,用于对所述交换机的生成树协议结果进行处理,得到交换机级联端口的拓朴连接关系;级联端口拓朴连接判断单元,用于根据拓朴关系第一获取单元得到的交换机级联端口拓朴连接关系,判断是否存在未确定拓朴连接关系的交换机级联端口;拓朴关系第二获取单元,用于当所述级联端口拓朴连接判断单元判断得到存在未确定拓朴连接关系的交换机级联端口时,根据所述未确定拓朴连接关系的交换机级联端口的MAC转发表,确定所述未确定拓朴连接关系的交换机级联端口的拓朴连接关系。本发明实施例还提供了一种网络信息处理装置,包括第一网络节点发现单元,用于采用筒单网络管理协议,在节点发现范围内的子网中,发现网络节点;未发现网络节点的子网确定单元,用于当第一网络节点发现单元发现的网络节点支持路由功能时,判断所述网络节点是否支持简单网络管理协议访问地址解析緩存表,如果否,则所述网络节点所在子网为不支持以简单网络管理协议方式发现节点的子网;第二网络节点发现单元,用于当所述子网发现单元发现不支持简单网络管理协议方式发现节点的子网后,在所述不支持简单网络管理协议方式发现节点的子网中启动地址解析协议,发现所述子网中的网络节点。上述技术方案具有如下有益效果本发明提供的链路层拓朴发现的技术方案中,由于STP结果如实记录了与交换机级联端口连接的上联交换机级联端口,因此,利用STP结果,能够获得交换机级联端口的实际拓朴连接关系,避免了现有技术只能通过叶子交换机得出拓朴连接关系所带来的拓朴发现不全的问题。并且,在实际网络环境中存在没有启动STP协议的交换机,本发明提供的技术方案利用STP结果得到交换机级联端口的拓朴连接关系,判断是否存在未确定拓朴连接关系的交换机级联端口,当存在这样的端口时,根据这些交换机级联端口的MAC地址转发表,确定其拓朴连接关系。由此可见,本发明通过判断是否存在未确定拓朴连接关系的交换机级联的方法将利用STP结果发现链路层拓朴连接关系与利用MAC地址转发表发现链路层拓朴连接关系紧密的结合在一起,使得本发明提供的技术方案,能够获得交换机级联端口各种类型的拓朴连接关系,包括环形、网状拓朴连接关系,达到完整,准确发现交换机拓朴连接关系的目的。本发明提供的网络节点发现的技术方案中,将SNMP和ARP协议进行了有效结合,使得网络节点发现过程占用系统资源少、效率高,速度快。图1所示为现有的链路层拓朴发现方法流程图;图2所示为链路层拓朴连接关系示例图;图3所示为本发明实施例提供的链路层拓朴发现方法流程图;图4所示为本发明实施例提供的STP结果处理流程图;图5所示为本发明实施例提供的MAC地址转发表处理流程图;图6所示为本发明实施例提供的网络节点发现方法流程图;图7所示为本发明实施例提供的一种网络信息处理装置组成示意图;图8所示为本发明实施例提供的一种网络信息处理装置组成示意图;图9所示为本发明实施例提供的链路层拓朴连接关系示例图。具体实施方式为使本发明实施例的目的、技术方案、及优点更加清楚明白,以下参照附图对本发明实施例提供的技术方案进行详细说明。请参见图3,为本发明实施例提供的链路层拓朴发现方法,所述方法包括如下步骤步骤301:获取交换机的生成树协议(SpanningTreeProtocol,STP)结果;在本发明实施例中,STP结果是指交换机启动STP协议并完成正常的STP协商后,保存在管理信息库中的结果,该结果至少包括交换机的根交换机信息,级联端口,及与该交换机的级联端口相连的上联交换机信息,比如,上联交换机的MAC地址,与所述级联端口相连的上联交换机的级联端口等。步骤302:对交换机的STP结果进行处理,得到交换机级联端口的拓朴连接关系;步骤303:判断是否存在未确定拓朴连接关系的交换机级联端口,如果存在,则进入步骤304,如果否,则结束链路层拓朴发现流程;在本发明实施例中可以采用以下方法判断是否存在未确定拓朴连接关系的交换机级联端口,该方法包括首先,根据交换机的MAC地址转发表,获取交换机级联端口集合;其中,交换机的每个端口都会对应一个MAC地址转发表,若交换机某端口对应的MAC地址转发表记录了其他交换才几的MAC地址,则i兌明该端口是与其他交换机相连的端口,可以据此将该端口标记为交换机级联端口。实际应用中,本发明实施例中提到的MAC地址转发表可以是QBRIDGE.MIB中保存的dotlqTpFdbTable,也可以是BRIDGE.MIB中保存的dotlTpFdbTable,或者是二者的结合,并不影响本发明实施例的实现。其次,从已获得的交换机级联端口集合中,删除通过步骤302已确定拓朴连接关系的交换机级联端口,若交换机级联端口集合中仍有交换机级联端口剩余,说明存在未确定拓朴连接关系的交换机级联端口,并且,集合中剩余的交换机级联端口就是未确定拓朴连接关系的交换机级联端口;在本发明实施例中,未确定拓朴连接关系的交换机级联端口所在的交换机亦被称为未确定拓朴连接关系的交换机,其中,未确定拓朴连接关系的交换机包括所有级联端口的拓朴连接关系均未确定的交换机,也包括部分级联端口未确定拓朴连接关系的交换机。比如,一个交换机有四个级联端口,这四个级联端口的拓朴连接关系均未确定,则这个交换机是未确定拓朴连接关系的交换机,或者,交换机有两个级联端口已确定了拓朴连接关系,还有两个级联端口的拓朴连接关系未确定,那么,这个交换机亦是未确定拓朴连接关系的交换机。关系的交换机级联端口,并不影响本发明实施例的实现。步骤304:根据所述未确定拓朴连接关系的交换机级联端口的MAC地址转发表,确定所述未确定拓朴连接关系的交换机级联端口的拓朴连接关系。以上为本发明实施例提供的链路层拓朴发现方法,由于STP结果如实记录了与交换机级联端口连接的上联交换机级联端口,因此,利用STP结果,能够获得交换机级联端口的实际拓朴连接关系,避免了现有技术只能通过叶子交换机得出拓朴连接关系所带来的拓朴连接关系发现问题。并且,在实际网络环境中存在没有启动STP协议的交换机,本发明实施例提供的技术方案利用STP结果得到交换机级联端口的拓朴连接关系,判断是否存在未确定拓朴连接关系的交换机级联端口,当存在这样的端口时,根据这些交换机级联端口的MAC地址转发表,确定其拓朴连接关系,由此可见,本发明实施例通过判断是否存在未确定拓朴连接关系的交换机级联的方法将利用STP结果发现链路层拓朴连接关系与利用MAC地址转发表发现链路层拓朴连接关系紧密的结合在一起,使得本发明实施例提供的技术方案,能够获得交换机级联端口各种类型的拓朴连接关系,包括环形、网状拓朴连接关系,达到完整准确地发现交换机拓朴连^l妄关系的目的。进一步,虽然链路层拓朴发现主要要解决的技术问题是发现交换机之间的拓朴连接关系,但链路层拓朴发现还需要解决另一个技术问题发现交换机与主机等设备之间的拓朴连接关系,因此,本发明实施例提供的方法进一步包括获取网络节点发现过程中已发现的主机类节点,得到主机类节点集合;获取交换机的非级联端口的MAC地址转发表,得到非级联端口的MAC地址转发表集合;从主机类节点集合中,顺序读取一个主机类节点的MAC地址;在MAC地址转发表集合中,查找记录该主才几类节点MAC地址的MAC地址转发表,若查找到记录了该主机类节点MAC地址的MAC地址转发表,则该主机类节点与该MAC地址转发表对应的非级联端口存在连接关系,循环上述流程直到处理完主机类节点集合中所有主机类节点的拓朴连接关系,然后,获取交换机每个非级联端口连接的主机类节点的个数,如果交换机的一个非级联端口连接两个以上的主机类节点,则该交换机与这些主机类节点之间通过HUB等哑设备间接连接,如果交换机的一个非级联端口只与一个主机类节点连接,则该交换机与该主机类节点直接相连。以上为本发明实施例提供的链路层拓朴发现方法流程,以下结合具体实施例对前文已述的STP结果处理流程及MAC地址转发表处理流程进行详细介绍。请参见图4,为本发明实施例提供的STP结果处理方法流程图,该方法包括步骤401:从步骤301中获取到的STP结果中读取任意一个交换机的STP结果,并从当前获取到的交换机的STP结果中,获取根交换机的MAC地址,将当前交换机的MAC地址与根交换机的MAC地址进行匹配,若二者一致,说明该交换机为根交换机,则结束该交换机的STP处理流程,转入步读取下一个交换机的STP结果,若二者不一致,则进入步骤402;在实际应用中,交换机的STP结果中包括dotldStpDesignatedRoot字段,该字段后六个字节为根交换机的MAC地址。步骤402:从当前获取到的交换机的STP结果中,获取与交换机级联端口相连的上联交换机及与所述交换机级联端口相连的上联交换机的级联端口,得到交换机级联端口与上联交换机级联端口的拓朴连接关系,并结束该交换机的STP处理流程,转入读取写一个交换机的STP结果。在实际应用中,交换机的STP结果中包括dotldStpPortTable,该表主要记录了本端交换机的级联端口,以及与该级联端口连接的上联交换机的MAC地址及上联交换机的级联端口。请参见表1,为dotldStpPortTable示例,由表1记录可知,本端交换机的级联端口209连接MAC地址为00E0FC6AF212的上联交换机的级联端口D2,本端交换机的级联端口211连接MAC地址为00E0FC6AC822的级联交换机的级联端口D2。<table>tableseeoriginaldocumentpage12</column></row><table>表1其中,dotldStpPortTable记录的上联交换机级联端口的信息中包含缺省的"8000,,桥优先级,读取表1所示上联交换机级联端口D2,得到的结果为"80D2",此时,为了得到真实的端口标识,需要用"80D2"减去HEX(8000)得到该端口标识为HEX(D2)OCT(210)。以上介绍了本发明实施例提供的STP结果处理流程,在本发明其他实施例中亦可采用其他的STP结果处理流程,并不影响本发明实施例的实现。本发明实施例对STP结果进行处理,得到的交换机级联端口的拓朴关系完全反映了网络从叶子到分支到根交换机的拓朴连接关系,即从本交换机(叶子)通过上联交换机(分支)的级联端口到达根交换机(最上端交换机)的拓朴连接关系。以下结合具体实施例对本发明实施例提供的MAC地址转发表处理流程进行详细介绍。请参见图5,为本发明实施例提供的MAC地址转发表处理方法流程,该方法包括步骤501:根据采用STP结果的得到的链路层拓朴连接关系,处理未确定拓朴连接关系的交换机的MAC地址转发表,并将未确定拓朴连接关系的交换机分别添加到叶子交换机队列和非叶子交换机队列,其中,只有一个级联端口的交换机为叶子交换机,有两个以上级联端口的交换机为非叶子交换机。在本发明实施例中,叶子交换机队列和非叶子交换机队列均为先入先出(FirstInputFirstOutput,FIFO)队列,在本发明其他实施例中亦可采用其他形式的队列,并不影响本发明实施例的实现。步骤502:从叶子交换机队列中,顺序读取一个叶子交换机SL,并获得已存储的叶子交换机SL的MAC地址;步骤503:判断非叶子交换机队列是否为空,如果否,则执行步骤504,如果是,则执行步骤507;步骤504:依次读取非叶子交换机队列中,所有非叶子交换机级联端口的MAC地址转发表;在实际应用中,为了以更快的速度进行链路层拓朴关系的发现,在步骤505之前可以进一步对所有非叶子交换机级联端口的MAC地址转发表中记录的数据进行精简,即仅在MAC地址转发表中保留与未确定拓朴连接关系的交换机相关的数据,其他交换机的数据一律删除。步骤505:根据所有非叶子交换机级联端口的MAC地址转发表,确定叶子交换机SL级联端口的拓朴连接关系;在实际应用中,根据所有非叶子交换机级联端口的MAC地址转发表,确定叶子交换机SL级联端口的拓朴连接关系包括以下几种情况1、若判断得到非叶子交换机A级联端口a的MAC地址转发表记录且仅记录了叶子交换机SL的MAC地址,则非叶子交换机A级联端口a连接叶子交换机SL的级联端口。为了提高链路层拓朴发现的速度和效率,在得到非叶子交换机A和叶子交换机SL之间的拓朴连接关系后,可以进一步做如下处理删除其他非叶子交换机和其它叶子交换机的MAC地址转发表中有关叶子交换机SL的记录,并将叶子交换机SL从叶子交换机队列中删除;判断非叶子交换机A是否满足叶子交换机的条件,即,判断非叶子交换机A除掉级联端口a后是否只有一个级联端口,如果是,则将非叶子交换机A加入到叶子交换机队列,并将非叶子交换机A从非叶子交换机队列中删除。2、若判断得到非叶子交换机A级联端口a的MAC地址转发表记录了两个以上(包括两个)叶子交换才几的MAC地址,比如,叶子交换才几SL和叶子交换机SP的MAC地址,则非叶子交换机A级联端口a通过HUB等哑设备同时连接了交换机SL和叶子交换机SP。同样,为了提高链路层拓朴发现的速度和效率,在得到非叶子交换机A与叶子交换机SL,叶子交换机SP之间的拓朴连接关系后,可以进一步做如下处理删除其他非叶子交换机和其它叶子交换机的MAC地址转发表中有关叶子交换机SL和叶子交换机SP的记录,并将叶子交换机SL和叶子交换机SP从叶子交换机队列中删除;判断非叶子交换机A是否满足成为叶子交换机的条件,如果满足,则将非叶子交换机A加入到叶子交换机队列,并将非叶子交换机A从非叶子交换机队列中删除。3、若判断得到非叶子交换机A的级联端口a的MAC地址转发表中不仅记录了叶子交换机SL的MAC地址,而且同时也记录了其他非叶子交换机的MAC地址,则删除非叶子交换机A级联端口a的MAC地址转发表中有关叶子交换机SL的记录。4、若判断得到非叶子交换机A级联端口a的MAC地址转发表中,不存在叶子交换机SL的MAC地址,则不对该MAC地址转发表做任何处理,转入处理非叶子交换机A的下一个级联端口或者转入处理下一个非叶子交换机。步骤506:判断叶子交换机队列是否为空,如果是,则结束该MAC地址转发表处理流程,如果否,则循环执行步骤502至步骤504,直到处理完叶子交换机队列中所有叶子交换机的拓朴连接关系;行处理,若判断得到两个叶子交换机满足各自级联端口的MAC地址转发表中记录了对方的MAC地址,则这两个级联端口之间存在拓朴连接关系,若出现不满足上述条件的叶子交换机,暂不处理该交换机的拓朴连接关系。在实际应用中,若产生叶子交换机队列非空,非叶子交换机队列为空的情况,则叶子交换机之间拓朴连接关系的方向可以先随机处理,直到处理完所有叶子交换机的拓朴连接关系后,逐个判断叶子交换机的级联端口是否连接了N(N>1)个其他交换机的级联端口,若叶子交换机A的一个级联端口连接了N个其他交换机的级联端口,则认为该叶子交换机A为拓朴连接关系中的源端,其他交换机为拓朴连接关系中的目的端。以上为本发明实施例提供的STP结果处理流程,由于STP协商结中只纪录了每个交换机的根交换机,及该交换机的上联交换机,因此,STP结果中的数据量比MAC地址转发表中数据量要少的多,因而采用STP结果发现交换机之间的拓朴连接关系,提高了链路层拓朴发现的效率。以上为本发明实施例提供的链路层拓朴发现方法,在上述方法中,先利用STP结果,得到交换机拓朴连接关系,由于STP结果的数据量较小,因此,极大的提高了交换机拓朴连接关系发现的效率,并且,利用STP结果可以得到绝大多数交换机的拓朴连接关系,而随后利用MAC地址转发表,确定少数未确定拓朴连接关系的交换机时,虽然MAC地址转发表本身的数据量比较大,但由于未确定拓朴连接关系的交换机已经减少,使得该拓朴关系发现过程的效率也很高。由此可见,本发明实施例提供的链路层拓朴发现方法不仅能够完整,准确的发现链路层拓朴发现,而且能够以比任何一项现有技术更高的效率和速度,发现链路层拓朴连接关系。以上实施例所提到的交换机是通过网络节点发现流程发现的,本发明实施例提供的链路层拓朴发现方法适应于采用任意网络节点发现流程发现的交换机。此外,为了能够提高网络节点发现的效率和速度,本发明实施例还提供了一种网络节点发现方法,该方法包括首先采用简单网络管理协议(SimpleNetworkManagementProtocol,SNMP),在节点发现范围内的子网中,发现网络节点,若发现的网络节点支持路由功能,则判断所述网络节点是否支持SNMP访问地址解析緩存表,如果否,则所述网络节点所在的子网为不支持以SNMP方式发现节点的子网,在所述不支持简单网络管理协议方式发现节点的子网中启动地址解析协议(AddressResolutionProtocol,ARP),发现所述子网中的网络节点。则在所述不支持SNMP方式发现节点的子网中启动地址解析协议(AddressResolutionProtocol,ARP),发现所述不支持SNMP方式发现节点的子网中的网络节点。在本发明实施例中,所述网络节点包括交换机,路由器,主机类节点等。以下结合具体实施例对本发明实施例提供的网络节点发现方法进行详细介绍。请参见图6,为前文已述网络节点发现方法的具体实现过程,该过程包括步骤601:构建种子队列,已发现队列及获取节点发现范围;在实际应用中,可以采用以下方法构建种子队列,已发现队列及获取节点发现范围,该方法包括(1)釆用SNMP或者命令行等方式,获取采集服务器的缺省网关的IP地址和采集服务器的ARP緩存表,将缺省网关的IP地址和ARP緩存表中记录的网络节点的IP地址加入种子队列,若技术人员预先手工配置了种子节点,则进一步将技术人员手工配置的种子节点的IP地址加入种子队列,其中,种子节点若种子节点由技术人员手工配置,则最好配置支持路由功能的设备作为种子节点;(2)将技术人员手工配置的种子节点的IP地址、釆集服务器的IP地址、采集服务器的缺省网关的IP地址及采集服务器ARP緩存表中记录的IP地址加入已发现队列;(3)通过采集服务器的IP地址,子网掩码(subnetmask),荻得采集服务器所在子网的IP地址段,并将该IP地址段作为节点发现范围,若技术人员预先手工配置了节点发现范围,则将上述节点发现范围的并集作为节点发现范围。在本发明实施例中,采集服务器是指运行网络节点发现方法的网络节点;种子节点包括两种含义,广义的种子节点是指用于发现其他网络节点的网络节点以及网络节点发现过程中发现的所有网络节点;狭义的种子节点是指可以发现其他网络节点的网络节点。以上为本发明实施例提供的构建种子队列,已发现队列及获取节点发现范围的方法,在本发明其他实施例中亦可采用其他方法,并不影响本发明实施例的实现。步骤602:从种子队列中顺序读取一个种子节点(即,读取该种子节点的IP地址),判断所述种子节点是否支持SNMP,如果不支持,说明该种子节点为未知类型节点,则进入步骤603,如果支持,则进入步骤604;在实际应用中,可以采用如下方式判断种子节点是否支持SNMP,即向该种子节点发送一个SNMP请求,若收到该SNMP请求的响应,则说明该种子节点支持SNMP,否则,说明该种子节点不支持SNMP。步骤603:将该种子节点实例化,并将其IP地址从种子队列中删除,返回步骤602读取下一个种子节点;步骤604:获取该种子节点的信息;在本发明实施例中,所述种子节点的信息至少包括基本系统信息(比如,系统描述、系统名称等),IP地址分配信息,ipAddrTable,ipForwarding,Printer-MIB!printmib,SNMP-REPEATER-MIB!snmpDot3RptrMgt以及种子节点的接口信息(比如,接口类型、接口名称、MAC地址等);步骤605:根据IP地址分配信息,将种子节点实例化(所述种子节点实例化是指根据所述IP地址分配信息,得到为该种子节点分配的IP地址,并将这些IP地址对应到这一个种子节点上),将为该种子节点分配的IP地址加入已发现队列,并将为该种子节点分配的IP地址从种子队列中删除;步骤606:才艮才居ipAddrTable,ipForwarding,Printer-MIB!printmib,SNMP-REPEATER-MIB!snmpDot3RptrMgt,获得所述种子节点支持的功能;在实际应用中,才艮据ipAddrTable,ipForwarding,Printer隱MIB!printmib,SNMP-REPEATER-MIB!snmpDot3RptrMgt,获得种子节点支持的功能具体过程如下1、若种子节点的sysServices&0x04<>0(表示sysServices转换为二进制后,右起第三位不等于0)且ipForwarding=1(表示可以转发IP数据报)且ipAddrTable表中存在属于多个子网IP地址,则该种子节点支持路由功能;2、若种子节点的sysServices&0x02<>0且访问种子节点的bridge.mib(丄3.6丄2.U7丄4)或qbridge.mib(.1.3.6.1.2.1.17.7)有数据返回,则该种子节点支持交换功能;3、若访问种子节点的Printer-MIB!printmib(.1.3.6.1.2.1.43)有数据结果返回,则该种子节点支持printer功能;4、若访问种子节点的SNMP-REPEATER-MIB!snmpDot3RptrMgt(丄3.6丄2丄22)有数据结果返回,则该种子节点支持HUB功能;5、若种子节点sysServices&0x08<>0,且sysServices&0x04=0,且sysServices&0x02=0或者sysServices&0x08<>0且sysServices&0x8064<>0,则该种子节点支持主机功能。若步骤606中得到该种子节点支持路由功能,则继续执行步骤607,否则转入读取下一个种子节点。步骤607:获取该种子节点的路由表,从所述路由表中获得下一跳地址(ipRouteNextHop)集合,下一跳地址集合中除了本种子节点的IP地址外的其他IP地址作为第一IP地址,逐个判断第一IP地址是否在节点发现范围内,如果不在节点发现范围内,则判断下一个第一IP地址,如果在节点发现范围内,则继续判断第一IP地址是否在已发现队列,如果不在已发现队列,则将所述第一IP地址加入种子队列和已发现队列,如果在已发现队列,则判断下一个第一IP地址,直到处理完所有的第一IP地址;在实际应用中,可以采用SNMP访问种子节点的路由表,该路由表包括ipRouteTable、ipForwardTable、ipCidrRouteTable。步骤608:判断该种子节点是否支持SNMP方式访问ARP緩存表,如果不支持,则进入步骤609,如果支持,则进入步骤610;步骤609:记录该种子节点所在子网是不支持SNMP方式发现节点的子网,结束该种子节点的处理,并返回步骤602处理下一个种子节点;步骤610:读取该种子节点的ARP緩存表,保留ARP緩存表中IPipNetToMediaTypeo2的IP-MAC表项,得到IP-MAC表项集合,若IP-MAC表项集合保留成功,即保留得到的IPipNetToMediaType<>2的IP-MAC表项数大于等于l,则进入步骤611,否则返回步骤602读取下一个种子节点;步骤611:从步骤610保留的IP-MAC表项集合中顺序读取一条IP-MAC表项,判断所述读取到的IP-MAC表项中的MAC是否为"00:00:0C:07:AC:**",如果是,则进入步骤612,如果否,则不进行标记,转入步骤613;步骤612:将该IP-MAC表项中的IP地址标记为热备份路由器协议(HotStandbyRouterProtocol,HSRP)的虚拟;也址;步骤613:判断所述IP-MAC选项中的IP地址是否在已发现队列,如果是,则进入步骤614,如果否,则进入步骤616;步骤614:判断是否已经存在该IP地址对应的MAC,如果不存在,则进入步骤615,如果存在,则进入步骤617;步骤615:更新该IP地址对应的MAC信息,并进入步骤617;步骤616:将所述IP地址加入种子队列和已发现队列,并记录所述IP的对应MAC,进入步骤617;步骤617:从步骤610得到IP-MAC表项集合中删除当前处理的IP-MAC表项,判断IP-MAC集合中是否为空,如果不为空,则返回步骤611,直到处理完步骤610保留的所有IP-MAC表项,如果为空,则返回步骤602,直到处理完种子队列中所有的种子节点,进入步骤618;通过上述602到617各步处理,逐一处理了节点信息和通过SNMP方式发现的节点信息;初步完成利用SNMP方式发现节点的主要处理,并且可以获得已发现节点的IP地址信息,包括通过各IP地址和子网掩码"逻辑与"获得的各子网地址,以及各子网是否支持SNMP方式发现新节点情况;步骤618:在所述不支持SNMP方式发现节点的子网中启动ARP协议,获得子网内的网络节点;在实际应用中,不支持SNMP方式发现节点的子网中启动ARP协议,获得子网内的网络节点可以采用如下方法实现,该方法包括顺序读取不支持SNMP子网方式发现节点的IP地址一歐,将所述IP地址段与预置的节点发现范围逻辑与,获得一个有效发现范围;向该有效发现范围内的IP地址逐个发送ARP请求,接从接收到的ARP响应中获得该网络节点的MAC地址,从而得到该网络节点的IP-MAC关系;监测返回ARP响应的支持路由功能的网络节点是否支持SNMP访问ARP緩存表,如果是,则采用SNMP方式通过该网络节点发现其他的网络节点,进而获得该网络节点可能的其它IP、系统信息、支持功能、接口信息等信息。以上为本发明是实施例提供的网络节点发现方法,该方法还可以进一步包括对于步骤602中获得的主机类节点,通过DNS服务器获得主机名称。在本发明其他实施例中,当步骤608判断得到种子节点不支持SNMP方式访问ARP緩存表时,可以不执行步骤609,而在该种子节点所在的子网中启动ARP协议,发现这些子网中的网络节点。以上为本发明实施例提供的网络节点发现方法,该方法将SNMP和ARP协议进行了有效结合,使得网络节点发现过程占用系统资源少、效率高,速度快。本发明实施例还提供了一种网络信息处理装置,该网络信息处理装置具备发现链路层拓朴连接关系的功能,请参见图7,该网络信息处理装置包括生成树协议结果获取单元701,用于获取交换机的生成树协议结果;拓朴关系第一获取单元702,用于对所述交换机的生成树协议结果进行处理,得到交换机级联端口的拓朴连接关系;级联端口拓朴连接判断单元703,用于根据拓朴关系第一获取单元702得到的交换机级联端口拓朴连接关系,判断是否存在未确定拓朴连接关系的交换机级联端口;拓朴关系第二获取单元704,用于当所述级联端口拓朴连接判断单元703判断得到存在未确定拓朴连接关系的交换机级联端口时,根据所述未确定拓朴连接关系的交换机级联端口的MAC地址转发表,确定所述未确定拓朴连接关系的交换机级联端口的拓朴连接关系。以下简单描述本发明实施例提供的具备链路层拓朴发现功能的网络信息处理装置的工作流程,网络信息处理装置定时启动,或者通过命令行方式人工启动生成树协议结果获取单元701,生成树协议结果获取单元701将获取到的STP结果传递给拓朴关系第一获取单元702,拓朴关系第一获取单元702完成拓朴关系的处理后,启动级联端口拓朴连接判断单元703,当级联端口拓朴连接判断单元703判断得到存在未确定拓朴连接关系的交换机级联端口时,启动拓朴关系第二获取单元704确定所述未确定拓朴连接关系的交换机级联端口的拓朴连接关系,至此,链路层拓朴发现完成。在实际应用中,本发明实施例提供的拓朴关系第一获取单元702的功能可以由以下几个单元配合完成,包括根交换机标识获取单元,用于从所述交换机的生成树协议结果中获取根交换纟几标识;标识判断单元,用于判断所述根交换机标识是否为所述交换机自身的标识;拓朴关系第一获取子单元,用于从所述生成树协议结果中获取与所述交换机级联端口相连的上联交换机及上联交换机级联端口,得到所述交换机级联端口与所述上联交换机级联端口的拓朴连接关系。并且,级联端口拓朴连接判断单元703的功能可以由以下几个单元配合完成,包括级联端口集合获取单元,用于根据交换机的MAC地址转发表,获取交换冲几级联端口集合;级联端口判断子单元,用于从所述交换机级联端口集合中删除已确定拓朴连接关系的交换机级联端口,若所述交换机级联端口集合中仍有交换机级联端口剩余,则剩余的交换机级联端口为未确定拓朴连接关系的交换机级联端口。本发明实施例还提供了一种网络信息处理装置,该网络信息处理装置具备网络节点发现功能,请参见图8,所述网络信息处理装置包括第一网络节点发现单元801,用于采用简单网络管理协议,在节点发现范围内的子网中,发现网络节点;未发现网络节点的子网确定单元802,用于当第一网络节点发现单元801发现的网络节点支持路由功能时,判断所述网络节点是否支持简单网络管理协议访问地址解析緩存表,如果否,则所述网络节点所在的子网为不支持以简单网络管理协议方式发现节点的子网;第二网络节点发现单元803,用于当子网发现单元802发现不支持简单网络管理协议方式发现节点的子网后,在所述不支持简单网络管理协议方式发现节点的子网中启动地址解析协议,发现所述子网中的网络节点。以上为本发明实施例提供的具备网络节点发现功能的网络信息处理装置,以下筒单描述该网络信息处理装置的工作流程,网络信息处理装置定时启动,或者通过命令行方式人工启动第一网络节点发现单元801,第一网络节点发现单元801在完成网络节点发现后启动未发现网络节点的子网确定单元802,当未发现网络节点的子网确定单元802判断得到存在不支持简单网络管理协议的子网时,启动第二网络节点发现单元803,当第二网络节点发现单元803完成网络节点发现时,整个发现范围内的网络节点发现完成。本发明实施例还提供了既具备网络节点发现功能又具备链路层拓朴发现功能的网络信息处理装置,该网络信息处理装置包括前文已述网络信息处理装置的所有单元,相关内容参见前文叙述,此处不再赘述。本发明实施例提供的网络信息处理装置可以是主机类节点,也可以是路由器,交换机等,并不影响本发明实施例的实现。以下举一实际例子,对本发明实施例提供的链路层拓朴发现方法进行介绍,以下举例仅为更清楚的说明本发明实施例,不应视为对本发明实施例的限制。某用户实际的网络拓朴如图9所示,该网络基本采用分层结构,核心设备采用备份方式,在整个网络中绝大部分接入层交换机同时连接了2台核心设备,网络中存在环形拓朴连接关系的交换机都启动STP协议,以消除网络环路。图9中虛线链路为备用链路,实线链路为主用链路,根交换机为S8215A。如图9所示,交换机8512A,交换机8512B及交换机4006之间形成了环形拓朴连接关系,因此,这些交换机都启动了STP协议,相应的从这些交换机上可以获取到STP结果,其中,获取到的交换机8215A的STP结果包括根交换机标识(即,交换机8215A的标识);获取到的交换机8215B的STP结果包括:根交换机标识(即,交换机8215A的标识),及表2所示数据;<table>tableseeoriginaldocumentpage23</column></row><table>表2获取到的交换机4006的STP结果包括根交换机标识(即,交换机8215A的标识),及表3所示数据;<table>tableseeoriginaldocumentpage23</column></row><table>表3在获取到上述三个交换机的STP结果后,可以从获取到的三个交换机的STP结果中任意取出一个交换机的STP结果,假如,首先读取出交换机s8215A的STP结果,根据该结果可以判断得到交换机s8215A为根交换机,因此,结束对该交换机的STP流程,然后,读取下一个交换机的STP结果,假如读取出交换机s8512B的STP结果,根据交换机s8512B的STP结果可以判断得到交换机s8512B不是根交换机,并且可以得到图9所示链路3,最后,读取出交换机4006的STP结果,根据交换机4006的STP结果,也可以判断得到交换机4006不是根交换机,并且可以得到图9所示链路1和链路2,在得到链路1至3后,可以判断得到交换机4006,交换机3550-1和交换机3550-2仍有端口未确定拓朴连接关系,因此,获取交换机4006、3550-1、3550-2的MAC转发表,如表4至表6所示本端端口可能的对端设备<table>tableseeoriginaldocumentpage24</column></row><table>表4交换才几4006<table>tableseeoriginaldocumentpage24</column></row><table>表5交换才几3550-1<table>tableseeoriginaldocumentpage24</column></row><table>3550-1表6交换机3550-2按照STP结果已经发现的链路层拓朴连接关系,处理MAC地址转发表数据,可以判断出交换机3550-2只有一个25口是级联端口,交换机4006只有一个22口是级联端口,交换机3550-2和4006是叶子交换机,交换机3550-1有两个口(24、25)是级联端口,交换机3550-1为非叶子交换机,交换机3550-2和4006被加入到叶子交换机队列,交换机3550-1被加入到非叶子交换机队列,后续,根据非叶子交换机3550-l的MAC地址转发表,程序可能先处理出3550-2与3550-1的拓朴关系,也可能先处理出4006与3550-2的拓朴关系。举例,如果先处理出交换机3550-2与3550-1之间的链路,则链路信息如表7所示本端节点本端接口对端节点对端接口3550-2GigabitEthernet1/24(24)3550-1GigabitEthernet1/25(25)表7得到交换机3550-1与3550-2之间的链路后,可以判断出交换机3550-1满足叶子交换机的条件,继续处理出两个叶子交换机4006与3550-1之间的链路,链路信息如表8所示本端节点本端接口对端节点对端接口3550-1GigabitEthernet1/24(24)4006G1/1/3(22)表8以上对本发明所提供的一种网络拓朴发现方法及相关设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种链路层拓扑发现方法,其特征在于,所述方法包括获取交换机的生成树协议结果;对所述交换机的生成树协议结果进行处理,得到交换机级联端口的拓扑连接关系;判断是否存在未确定拓扑连接关系的交换机级联端口,如果存在,则根据所述未确定拓扑连接关系的交换机级联端口的MAC转发表,得到所述未确定拓扑连接关系的交换机级联端口的拓扑连接关系。2、如权利要求l所述的方法,其特征在于,所述判断是否存在未确定拓朴连接关系的交换机级联端口具体包括根据交换机的MAC转发表,获取交换机级联端口集合;从所述交换机级联端口集合中删除已确定拓朴连接关系的交换机级联端口,若所述交换机级联端口集合中仍有交换机级联端口剩余,则所述集合中剩余的交换机级联端口为未确定拓朴连接关系的交换机级联端口。3、如权利要求1或2所述的方法,其特征在于,对所述交换机的生成树协议结果进行处理,得到交换机级联端口的拓朴连接关系具体包括从所述获取到的交换机的生成树协议结果中任意读取一个生成树协议结果,从所述读取到的生成树协议结果中获取根交换机标识;判断所述根交换机标识是否为所述交换机自身的标识,如果否,则从所述生成树协议结果中获取与所述交换机级联端口相连的上联交换机及上联交换机级联端口,得到所述交换机级联端口的拓朴连接关系。4、如权利要求1或2所述的方法,其特征在于,在获取交换机的生成树协议结果之前进一步包括采用简单网络管理协议,在节点发现范围内的子网中,发现交换机;若发现的网络节点支持路由功能,则判断所述网络节点是否支持简单网络管理协议访问地址解析緩存表,如果否,则所述网络节点所在的子网为不支持以简单网络管理协议方式发现节点的子网,在所述不支持简单网络管理协议方式发现节点的子网中启动地址解析协议,发现所述子网中的交换机。5、一种网络节点发现方法,其特征在于,所述方法包括采用简单网络管理协议,在节点发现范围内的子网中,发现网络节点;若发现的网络节点支持路由功能,则判断所述网络节点是否支持简单网络管理协议访问地址解析緩存表,如果否,则所述网络节点所在的子网为不支持以简单网络管理协议方式发现节点的子网,在所述不支持简单网络管理协议方式发现节点的子网中启动地址解析协议,发现所述子网中的网络节点。6、如权利要求5所述的方法,其特征在于,在所述不支持简单网络管理协议方式发现节点的子网中启动地址解析协议,发现所述子网中的网络节点具体包括读取不支持简单网络管理协议发现节点的子网的IP地址段,将所述IP地址段与节点发现范围逻辑与,获得有效发现范围;向所述有效发现范围内的每个IP地址发送地址解析请求,并通过接收到的地址解析响应,发现所述子网内的网络节点。7、如权利要求6所述的方法,其特征在于,在通过接收到的地址解析响应,发现所述子网内的网络节点后进一步包括监测在所述不支持简单网络管理协议方式发现节点的子网中发现的网络节点是否支持采用简单网络管理协议方式获取其地址解析緩存表,如果是,则采用简单网络管理协议发现新的网络节点。8、一种网络信息处理装置,其特征在于,包括生成树协议结果获取单元,用于获取交换机的生成树协议结果;拓朴关系第一获取单元,用于对所述交换机的生成树协议结果进行处理,得到交换机级联端口的拓朴连接关系;级联端口拓朴连接判断单元,用于根据拓朴关系第一获取单元得到的交换机级联端口拓朴连接关系,判断是否存在未确定拓朴连接关系的交换机级联端口;拓朴关系第二获取单元,用于当所述级联端口拓朴连接判断单元判断得到存在未确定拓朴连接关系的交换机级联端口时,根据所述未确定拓朴连接关系的交换机级联端口的MAC转发表,确定所述未确定拓朴连接关系的交换才几级联端口的拓朴连4妄关系。9、如权利要求8所述的网络信息处理装置,其特征在于,所述级联端口拓朴连接判断单元具体包括级联端口集合获取单元,用于根据交换机的MAC转发表,获取交换机级联端口集合;级联端口判断子单元,用于从所述交换机级联端口集合中删除已确定拓朴连接关系的交换机级联端口,若所述交换机级联端口集合中仍有交换机级联端口剩余,则剩余的交换机级联端口为未确定拓朴连接关系的交换机级联端口。10、一种网络信息处理装置,其特征在于,包括第一网络节点发现单元,用于釆用筒单网络管理协议,在节点发现范围内的子网中,发现网络节点;未发现网络节点的子网确定单元,用于当第一网络节点发现单元发现的网络节点支持路由功能时,判断所述网络节点是否支持简单网络管理协议访问地址解析緩存表,如果否,则所述网络节点所在子网为不支持以筒单网络管理协议方式发现节点的子网;第二网络节点发现单元,用于当所述子网发现单元发现不支持简单网络管理协议方式发现节点的子网后,在所述不支持简单网络管理协议方式发现节点的子网中启动地址解析协议,发现所述子网中的网络节点。全文摘要本发明公开了一种网络拓扑发现方法及相关设备。本发明公开的方法包括获取交换机的生成树协议结果;对交换机的生成树协议结果进行处理,得到交换机级联端口的拓扑连接关系;判断是否存在未确定拓扑连接关系的交换机级联端口,如果存在,则根据未确定拓扑连接关系的交换机级联端口的MAC地址转发表,得到未确定拓扑连接关系的交换机级联端口的拓扑连接关系。本发明还公开了具备网络拓扑发现功能的网络信息处理装置。本发明将利用STP结果发现的链路层拓扑连接关系与利用MAC地址转发表发现的链路层拓扑连接关系紧密的结合在一起,使得本发明能够获得交换机级联端口各种类型的拓扑连接关系,达到准确发现交换机拓扑连接关系的目的。文档编号H04L12/24GK101330405SQ200810116048公开日2008年12月24日申请日期2008年7月2日优先权日2008年7月2日发明者超崔,徐美波,慧薛申请人:北京亿阳信通软件研究院有限公司;亿阳信通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1