基于snmp的网络物理拓扑发现方法及网管服务器的制作方法

文档序号:7723082阅读:130来源:国知局

专利名称::基于snmp的网络物理拓扑发现方法及网管服务器的制作方法
技术领域
:本发明涉及网络拓扑发现领域,尤其涉及一种基于SNMP的网络物理拓扑发现方法及网管服务器。
背景技术
:交换式以太网组网的核心是一个或多个互相连接的以太网交换机。每个交换机可以有多个端口,每个端口可与一个交换机或终端设备连接,也可与一个共享式集线器Hub连接。以太网交换机支持不同端口上的设备并行地进行数据传输,从而大大提高了局域网的传输能力。交换式以太网是目前局域网的主要组网方式之一,其物理拓扑结构发现的目标是确定网络中的各种设备以及这些设备物理端口之间的链路连接关系,因此,物理拓扑发现也称为网络的第2层(链路层)拓扑发现。在本文中不加特殊说明,提到的设备间(交换机与交换机之间、交换机与主机之间)的连接关系指的就是设备物理端口之间的连接关系。网络的物理拓扑信息对于网络性能监测与评估、故障发现与定位、资源分配与管理等一系列维护工作具有重要意义。从2000年开始,国内外研究人员开始对交换式以太网的物理拓扑发现进行了较为深入的研究。在标准制定方面,2000年9月,IETF(TheInternetEngineeringTaskForce,互联网工程任务组)发布了关于物理拓扑MIB(ManagementInformationBase,管理信息库)的网络协议RFC(RequestForComments),RFC用于指导网络层以下拓扑结构的发现。它定义了标志网络端口之间连接和发现SNMP(SimpleNetworkManagementProtocol,简单网络管理协议)代理的网络地址的统一标准。该RFC没有规定物理拓扑的发现机制。它需要拓扑发现方法来完成相关MIB变量的填充。在基于SNMP的拓扑发现方法方面,提出了基于交换机生成树的算法、基于地址转发表(addressforwardingtable,AFT)的算法和基于探测包的算法。由于交换机一般均采用地址转发表进行数据帧的转发,基于地址转发表的拓扑发现方法目前应用最为广泛。在每个交换机上都维护着一张表,记录着接收的数据帧应该从哪个端口转发出去,这张表就是地址转发表。忽略与拓扑发现无关的信息,地址转发表的记录格式可以简单地表示为由端口和MAC地址组成的二元组转发条目(port,MAC),其中port称为转发端口,MAC称为转发地址。同一转发端口p对应的转发条目构成一个子集,称为端口p的转发表。如果交换机端口P的地址转发表中包含了该端口P所能接收到的所有数据帧的MAC地址,则称该端口P的地址转发表是完整的。如果一个交换机的每个端口的地址转发表都是完整的,则称该交换机的地址转发表是完整的。地址转发表采用反向学习机制动态建立,并采用超时老化机制把一段时间内没有用到的转发条目删除。贝尔实验室的YuriBreitbart提出,首先任意选定一个交换机作为拓扑树的根节点,然后从根出发,逐渐把整个拓扑树建立起来,这种方法一般适合用递归方式实现。该方法把设备端口分为两类上行端口(根端口)和下行端口。称与根节点相连的活动端口为设备的根端口;其他活动端口为下行端口。每个设备都有一个根端口,主机设备只有根端口,没有下行端口。如果节点A连接在节点B的下行端口上,则称A是B的子孙节点,B是A的祖先节点。自顶向下的方法通过确定每个节点最近的祖先节点逐渐逼近与该节点直接连接的祖先节点。自顶向下的方法只需扫描一次整个地址转发表,算法的复杂度和地址转发表的规模L二交换机的总数MX所有节点的总数N呈线性关系,即为O(L)。算法描述如下:BuildTree(S)/*构造以S为根的子树*/对连接在S下行端口上的每个设备(记作dev),作如下操作1)如果dev的祖先节点没有确定,建立dev到S的连接[OOO9]2)否则设当前确定的dev的祖先节点为A,则A和S都是dev的祖先节点。如果S是A的子孙节点,建立dev到S的连接。3)BuildTree(dev);算法结束。贝尔实验室的YuriBreitbart给出基于SNMP的拓扑发现方法本身要求每台交换机的地址转发表必须完整(每台交换机必须知道其他交换机所对应的端口),但这在现实的网络中很难实现。在实际网络中,由于地址转发表老化机制的存在、地址转发表长度的限制以及SNMP协议采用无连接的UDP(UserDatagramProtocol)进行通信,不能提供可靠的数据传输。因此,交换机地址转发表的完整性很难保证,从而影响算法的准确性。为此YuriBreitbart专门设计出一种mping程序对原有的ping程序进行修改,将管理节点发出的ICMP(InternetControlMessageProtocol,互联网控制消息协议)查询请求报文中的源MAC和源IP地址改为给定的目标交换机的源MAC和源IP地址,目的IP地址为网络中其它主干设备的地址。当其他主干设备接收到ICMP查询请求报文后,将向给定的目标交换机发送ICMP查询响应报文,则给定的目标交换机地址转发表中就会增加目的设备的MAC地址。这种mping程序在原理上是正确的,但在一些安全配置严格的网络中这种设置虚假源地址的数据报文将被路由器、防火墙所过滤,使mping程序不能达到预期的效果。即使在一个宽松的网络环境中,有的目的设备在接收到ICMP查询请求报文后并不进行ARP(AddressResolutionProtocol,地址解析协议)操作,而是简单地将接收到的数据帧的源MAC地址与目的MAC地址互换,然后发送ICMP查询响应报文,该响应报文的目的MAC地址与IP不对应是无效报文,不能够有效的增强转发表的完备性。并且这种算法大大的增加了额外的网络报文,其数量级为0((交换机+路由器)2)。另外,Breitbart提出增加额外流量和连续采集两种方法来提高地址转发表的完整性。在实际网络中,以太网交换机的MAC地址转发表是有容量限制的,为了最大限度利用地址转发表资源,以太网交换机利用老化机制更新MAC地址转发表,即如果在老化时间内没有收到来自某网络设备的报文,交换机就会把与此设备相关的MAC地址表项删除。MAC地址老化对静态MAC地址表项无效。由于地址转发表老化机制的存在、地址转发表长度的限制,因此,采用上述方法也很难保证交换机地址转发表的完整性,从而影响这些拓扑发现方法进行网络物理拓扑发现的准确性。
发明内容本发明提供一种基于SNMP的网络物理拓扑发现方法及网管服务器,用以解决现有技术中由于地址转发表不全导致网络物理拓扑发现不准确的问题。本发明提供一种基于SNMP的网络物理拓扑发现方法,包括获取网络中各子网内所有设备的IP地址及对应的MAC地址、及各子网的网关设备,所述设备包括交换机、路由器和主机;利用远程登陆协议远程登陆到各子网内所有设备,控制所登陆的设备发送查询请求报文到该设备所在子网内其它所有设备;利用远程登陆协议读取所登陆的交换机基于接收的查询响应报文所建立的地址转发表;基于从各子网内交换机所读取的地址转发表进行网络物理拓扑发现。本发明还提供了一种网管服务器,包括获取单元,用于获取网络中各子网内所有设备的IP地址及对应的MAC地址、及各子网的网关设备,所述设备包括交换机、路由器和主机;远程登录单元,用于利用远程登陆协议远程登陆到各子网内所有设备;第一执行单元,用于在所述远程登录单元登录到各子网内所有设备后,控制所登陆的设备发送查询请求报文到该设备所在子网内其它所有设备;第二执行单元,用于在所述远程登录单元登录到各子网内所有设备后,读取所登陆的交换机利用接收的查询响应报文所建立的地址转发表;拓扑发现单元,用于基于所述第二执行单元从各子网内交换机所读取的地址转发表进行网络物理拓扑发现。利用本发明提供的基于SNMP的网络物理拓扑发现方法及网管服务器,具有以下有益效果在网络物理拓扑发现的过程中,通过远程登录协议在一台设备上可以登录到物理拓扑网络中所有设备如交换机、路由器和主机等,再利用远程登录协议的功能从设备上发送查询请求报文,这样各设备之间执行互相PING操作,由于查询请求报文是由各设备发出的而无需对报文源地址和MAC地址进行修改,因此可以克服采用mping发送的虚假查询请求报文容易被路由器、防火墙所过滤的问题及容易被篡改,导致地址转发表建立不完整的问题,本发明方法使网络中交换机能建立比较完整的地址转发表。基于比较完整的地址转发表进行物理拓扑发现的结果与实际网络物理拓扑很相符,相比传统网络物理拓扑发现结果有较大的改进。图1为现有技术中具有间接连接的示意图;图2为本发明基于SNMP的网络物理拓扑发现方法流程图;图3为本发明实施例基于读取的地址转发表进行网络物理拓扑发现方法的流程图;图4为利用现有网络物理拓扑发现方法确定的鹏设备连接位置示意图;图5为利用本发明网络物理拓扑发现方法确定的鹏设备连接位置示意图;图6为利用现有网络物理拓扑发现方法确定的网络物理拓扑中存在孤立节点的示意图7为利用本发明网络物理拓扑发现方法确定的网络物理拓扑中不存在孤立节点的示意图;图8为本发明实施例中网管服务器的结构框图。具体实施例方式下面结合附图和实施例对本发明提出的基于SNMP的网络物理拓扑发现方法及系统进行进一步说明。在介绍本发明具体实施方式之前首先介绍一些网络物理拓扑的概念定义及网络物理拓扑发现中所用到的引理。在交换式以太网中,把网络设备分为三类一类是交换机,每个交换机上维护着一张地址转发表,可以利用SNMP读取这张地址转发表;一类是主机,在其上面没有地址转发表,通常连接在交换机的某个端口上;还有一类是集线器,该类设备没有MAC地址,在网络中不能被直接发现,属于不可管理的透明设备。在局域网拓扑结构中,路由器设备当作一个主机处理。如果两个设备端口不经过其他交换机,直接通过一条物理线路连接在一起,称这两个设备直接连接,或者说这两个设备端口直接连接。如果两个设备端口之间存在着一条路径,我们称这两个设备间接连接,或者说这两个端口间接连接。间接连接的两个设备中间可能会有一个或多个交换机。直接连接是间接连接的一种特殊情况。网络物理拓扑的主要概念定义如下哑设备集线器Hub、无管理的交换机、没有开启SNMP管理的交换机或已经开启SNMP但团体字配置不正确的交换机。上行端口在地址转发表完整的情况下,任一交换机与其上行端口关联的转发表项数目一定大于与其下行交换机上行端口关联的转发表项数目。下行端口,包括A、交换机的所有不是上行端口的端口,交换机的下行端口对应的转发条目中一定不含其兄弟和祖先节点的转发信息,因为这样的转发信息一定通过上行端口转发;B、所有的叶端口。叶端口若一台交换机Si端口Sij对应的转发条目中未出现其他交换机的MAC地址,则称此端口Sij为叶端口。PC连接如果某个交换机下行端口是叶端口,则该端口对应的转发条目中MAC地址对应的设备都直接(或经过Hub)和这个端口相连。且一定是非交换机的设备,当作PC处理。路由器连接若路由器R与交换机Si的Sij端口直接连接当且仅当Sij是叶端口,且端口的地址转发表中包含路由器R的MAC地址。VLAN接口通常是三层交换机上定义的某个VLAN的虚电路路由接口,VLAN接口也有对应的MAC地址,通常一个交换机上某个VLAN接口的MAC地址是相同的。直接连接交换机之间的物理连接。间接连接两台交换机之间经过了一台或多台交换机实现的逻辑连接。判断间接连接当一个交换机的下行级联端口Ai对应的转发条目中出现某交换机的MAC地址,并且该MAC地址也同时在该交换机下行级联端口Ai所连接的交换机的下行级联端口Bm对应的转发条目中,则该连接为间接连接。如图1所示,交换机A的地址转发表中有设备B的MAC;和设备C的MACc,交换机C的MACc同时出现在交换机B的地址转发表中,及交换机A下行级联端口对应的地址转发表中,因此,交换机A与交换机C为间接连接。判断鹏设备删除间接连接后,当交换机的下行端口上,仍存在多个交换机的MAC地址,则该端口与网络设备之间一定存在哑设备。路由器链路交换机连接路由器的链路。主机链路连接主机的链路级联链路交换机之间的直接连接。以太网交换机通过查找地址转发表得到报文目的MAC地址对应的转发端口号,从而实现报文的快速转发,据此可以推断在一个交换机中,一个MAC地址只能唯一存在于一个转发条目中。如果存在多个转发条目即对个转发端口,将导致交换机无法转发报文。贝尔实验室的Breitbart等人提出了基于完整交换机地址转发表的物理拓扑发现方法。其物理拓扑发现方法的核心是直接连接定理分属两个交换机的一对端口是相连的,当且仅当这两个端口的地址转发条目集合的交集为空,且其并集中包含了该子网中所有交换机的地址条目时,这两个交换机是直接连接的。该定理适用的前提条件是每个交换机上的地址转发信息都是完整无缺的。直接连接定理不能适用于多子网交换域的拓扑发现。2003年,Bejerano等人提出一种基于完整地址转发表的多子网拓扑发现方法,很好地解决了此问题。该多子网拓扑发现方法首先根据地址转发表和子网信息构造出不同结点之间的粗略路径(skeletonpath),然后进一步为每一条粗略路径构造出一组路径约束(pathconstraint),利用路径约束信息,不断细化粗略路径,最终确定一条唯一的路径。他们证明了该方法的完备性,即如果地址转发表和子网信息可以唯一确定网络拓扑,则使用该方法就可以把这个网络拓扑结构发现出来。网络物理拓扑自动发现方法的目标是找出子网内交换机与交换机、交换机与路由器、交换机与主机之间的连接关系。其中找出交换机与交换机之间的连接关系是链路层拓扑自动发现的关键所在。贝尔实验室的YuriBreitbart给出了基本算法[1,4,5]。算法理论基础和描述如下定义1:令交换机,路由器组成的二层主干网络结构N中第i台交换机为Si,其第J'个端口为Sij;定义2:令任意端口Sij,Dij表示交换机Si的地址转发表中通过端口Sij收到的数据帧中源MAC地址集合;定义3:令任意端口Sij,Lij表示交换机Si的地址转发表中通过端口Sij收到的数据帧的源MAC地址为交换机的集合;定义4:若一台交换机Si其端口Sij的Lij中未出现其它交换机的MAC地址,则称端口Sij为叶端口;定义5:端口Sij的地址转发表完全的,是指在给定子网中任何设备D发出的数据帧可以通过端口Sij到达Si,则D的MAC地址必出现在Lij中;弓l理l:如果LijULkl二u(u指子网内所有交换机的合集)且LijnLkl=#(#空集)则端口Sij与端口Ski直接连接,其中Ski为第k台交换机的第1个端口,k#j;弓闺2:若路由器或主机与交换机Si的端口Sij直接相连,当且仅当Sij是叶端口,且Lij中包含路由器或主机的MAC地址。ProcedureFindlnterCo騰ctions(Sl,S2,...,Sn,Rl,R2,...,Rm)/氺S1,S2,...,SnaretheswitchesofasubnetS*//*R1,R2,...,RmaretheroutersofthesubnetS*/beginforeachswitchSidoforeachinterfacejofSido{IfSij已经判定continueelse{IfLijULkl=uandLijnLkl=#)Sij与Ski直接相连,生成新的连接/*Sij与Ski相匹配*/}}foreachrouterRkdoforeachswitchSidoforeachinterfacejofSidoIfSij是叶端口且Lij包含Rk的MAC地址Sij与Rk直接相连/*Sij与Rk相匹配*/end本发明在上述网格概念定义及在获得网络中交换机地址转发表就可以发现网络物理拓扑的理论基础上,提出一种基于SNMP的网络物理拓扑发现方法及网管服务器。如图2所示,本发明提出的基于SNMP的网络物理拓扑发现方法包括步骤S201,获取网络中各子网内所有设备的IP地址及对应的MAC地址、及各子网的网关设备,所述设备包括交换机、路由器和主机;交换式以太网中,属于同一VLAN的设备属于同一子网。各子网之间通过子网对应的网关设备进行通信。S202,利用远程登陆协议远程登陆到各子网内所有设备,控制所登陆的设备发送查询请求报文到该设备所在子网内其它所有设备;远程登陆是指用户使用命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。优选地,本实施例中所述远程登陆协议为TELNET协议、SSHV1协议或SSHV2协议。TELNET协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到远程设备。终端使用者可以在telnet程序中输入命令,这些命令会在远程设备上运行,就像直接在远程设备的控制台上输入一样。可以在本地就9能控制远程设备。要开始一个telnet会话,必须输入用户名和密码来登录服务器。TELNET协议的目的是提供一个相对通用的,双向的,面向八位字节的通信方法。它主要的目标是允许接口终端设备的标准方法和面向终端的相互作用。可以预见到,此协议也可被用于终端到终端的通信和处理到处理的通信(分布式计算)。Telnet协议可以工作在任何主机(例如,任何操作系统)或任何终端之间。RFC854[Postel和Reynoldsl983a]定义了该协议的规范,其中还定义了一种通用字符终端叫做网络虚拟终端NVT(NetworkVirtualTerminal)。NVT是虚拟设备,连接的双方,即客户机和服务器,都必须把它们的物理终端和NVT进行相互转换。也就是说,不管客户进程终端是什么类型,操作系统必须把它转换为NVT格式。同时,不管服务器进程的终端是什么类型,操作系统必须能够把NVT格式转换为终端所能够支持的格式。NVT是带有键盘和打印机的字符设备。用户击键产生的数据被发送到服务器进程,服务器进程回送的响应则输出到打印机上。在一些安全性要求比较高的环境,本发明可以基于SNMPV3+SSHV1/V2进行网络拓扑发现。SSH为SecureShell的縮写,由IETF的网络工作小组(NetworkWorkingGroup)所制定;SSH为建立在应用层和传输层基础上的安全协议。传统的网络服务程序其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人攻击。远程登录时存在另一个人或者一台机器冒充真正的远程设备接收用户传给远程设备的数据,然后再冒充用户把数据传给真正的远程设备。而利用SSHV1/V2协议进行远程登录比较可靠,SSHV1/V2协议专为远程登录会话和其他网络服务提供安全性的协议。可以有效防止远程管理过程中的信息泄露问题。也能够防止DNS欺骗和IP欺骗。现有的mping程序在原理上是正确的,但在一些安全配置严格的网络中这种设置虚假源地址的数据报文将被路由器、防火墙所过滤,使mping程序不能达到预期的效果。本发明实施例利用TELNET协议、SSHV1协议或SSHV2协议远程到各子网的设备,控制设备发送查询请求报文,因此是从设备上发出正常ping指令,不需要对报文做任何改动,根本地解决mping所存在的问题。经过在每个设备上发送查询请求报文执行ping,这样在整个子网内,每台设备两两之间都有对方的MAC地址信息,解决mping可能存在的问题,完全达到了mping的目的,使得整个二层拓扑网络中地址转发表信息为完整的。S203,利用远程登陆协议读取所登陆的交换机基于接收的查询响应报文所建立的地址转发表;由于在各子网内的设备间互相执行PING操作,因此,交换机可以利用接收到报文中的源地址MAC地址和报文进入的端口,利用反向学习机制在其内部建立包括多个转发条目的地址转发表,其中每个转发条目包括MAC地址及对应的端口。S204,基于从各子网内交换机所读取的地址转发表进行网络物理拓扑发现。具体可以利用现有的基于地址转发表物理拓扑发现方式进行网络物理拓扑发现。本发明在网络物理拓扑发现的过程中,通过远程登录协议如TELNET协议登录上物理拓扑网络中的交换机、路由器设备和主机,再从设备上发送ping请求,使设备之间执行互相PING操作,能更好地获取地址转发表信息。通过本发明改进后的网络物理拓扑发现方法解决了地址转发表信息不完整的问题,得到的结果较传统网络物理拓扑发现结果有较大的改进。优选地,执行利用远程登陆协议进行远程登陆、控制所登陆的设备发送查询请求报文、读取所登陆的交换机内的地址转发表的对象为网管服务器。因此,可以在一台设备上完成网络物理拓扑发现。另外,该方法还优选包括步骤利用远程登陆协议读取所登陆的设备上存储的地址解析ARP信息及其更新时间,ARP信息包括该设备及与该设备发生过通信的设备的IP地址及对应MAC地址;利用从所有设备上读取的ARP信息信息及其更新时间,获取最新的ARP信息;利用最新的ARP信息信息更新所发现的网络物理拓扑中设备对应的IP地址及MAC地址。由于网络中每台设备都会存储有其本身及与其通信的设备的ARP信息,且在某个设备MAC或IP地址有变更时,设备会记录更新的ARP信息。现有用SNMP获取ARP信息,并不能提供ARP信息的更新时间。本发明利用TELNET获取ARP信息的更新时间,可以得到哪些是最新及更新后正确的ARP信息,如果用户设备更换了IP地址,使用TELNET协议进行辅助发现时,可以取最新的ARP信息,发现的MAC信息为最新的信息,因此用TELNET+SNMP发现的效果是更优的。在现实网络拓扑中,如果采用虚拟路由器冗余协议VRRP(VirtualRouterRedundancyProtocol),从SNMP上是无法得知哪两台设备之间有VRRP关系的。因此,如果两台交换机通过VRRP协议进行冗余备份,下联的第三台设备此时物理链路仅能发现一条,会漏掉一条链路(如果发现两条链路,则形成环路)。而本发明采用了TELNET协议远程登录子网内的各设备后,读取所登陆的设备上存储的配置信息;根据所读取的配置信息确定该设备与另一设备间连接有虚拟路由器时,所发现的网络物理拓扑中在上述设备与另一设备之间添加虚拟路由器链路。因此可以得到两台交换机的实际连接关系。这样,从拓扑图上,除了画出以地址转发表信息发现出来的一条链路外,还可以画出另外一条实际相连但是从地址转发表无法发现的信息。本实施例中利用远程登陆协议远程登陆各子网内所有设备为多线程并行登陆;利用远程登陆协议控制登陆设备发送查询请求报文为多线程并行控制;利用远程登陆协议读取登陆交换机内的地址转发表为多线程并行读取。由于远程登录设备是个长时间耗时过程,需要多线程并发控制,在多线程并行登录时,若到任一设备的登录在超出设定时间还未成功时,退出到该设备的登陆。如图3所示,本实施例中基于所读取的地址转发表进行网络物理拓扑发现具体包括S301,确定利用远程登陆协议执行操作的对象为其所在子网的标志节点,及确定其它子网中的网关设备为其所在子网对应的标志节点;标志节点的确定遵循以下原则标志节点为给定子网当利用远程登陆协议执行操作的主机为该子网中的成员时,则该主机称为子网的标志节点,如将网管服务器确定为该网管服务器所在子网的标志节点;否则从该主机到达指定子网的路径中的最后一个路由器称为该子网的标志节点,即将各子网中的网关设备作为其所在子网对应的标志节点;S302,根据地址转发表确定与标志节点直接连接的交换机为根交换机,并将该根交换机加入到交换机发现队列;S303,取出交换机发现队列中的首个交换机,确定其下行端口的连接情况,具体可以现有网络物理拓扑发现理论确定,包括确定下行端口为叶端口时,根据该叶端口在地址转发表中对应的MAC地址,建立该叶端口与其对应的MAC地址对应的设备之间的连接,如前所述,具体为PC连接;叶端口的判断如前面所述;确定下行端口不是叶端口时,根据该下行端口在地址转发表中对应的MAC地址,建立该下行端口与其对应的MAC地址对应的设备之间的直接连接或间接连接,具体可以现有判断直接连接和间接连接的方式。S304,将出现在取出交换机的地址转发表中且未进入过交换机发现队列的新交换机加入到交换机发现队列的尾部;S305,判断交换机发现队列是否为空,若不为空,则返回执行步骤S303重新从交换机发现队列中取出首个交换机,若为空,则结束。本实施例中根据确定的每个子网内的标志节点执行上述步骤,完成每个子网的网络物理拓扑发现,基于所确定的各子网的网关设备,将各子网的网络物理拓扑连接起来,得到整个网络的物理拓扑结构。利用本发明所提供的基于SNMP的网络物理拓扑发现方法与现有方法相比,以图示说明具有以下有益效果1)哑设备的正确连接现有的网络物理拓扑发现方法由于地址转发表信息不全,在图4中的交换机192.168.6.235与交换机192.168.6.120之间出现了哑设备节点。通过本实施例中的网络物理拓扑发现方法后,由于地址转发表的信息比较全,根据现有鹏设备的判断原则得到鹏设备的连接位置如图5所示,得到了与实际相符的结果,交换机192.168.6.235与交换机192.168.6.120实际是直连的。2)可以解决错误的孤立节点问题现有的网络物理拓扑发现方法由于地址转发表信息不全,在图6中存在孤立节点192.168.6.145和192.168.6.12。通过本实施例中的网络物理拓扑发现方法后,由于地址转发表的信息比较全,如图7所示,设备192.168.6.145和192.168.6.12不再以孤立节点的方式存在,得到了与实际相符的结果。本实施例中所提供的网管服务器,如图8所示,包括获取单元801,用于获取网络中各子网内所有设备的IP地址及对应的MAC地址、及各子网的网关设备,所述设备包括交换机、路由器和主机;远程登录单元802,用于利用远程登陆协议远程登陆到各子网内所有设备;第一执行单元803,用于在所述远程登录单元802登录到各子网内所有设备后,控制所登陆的设备发送查询请求报文到该设备所在子网内其它所有设备;第二执行单元804,用于在所述远程登录单元802登录到各子网内所有设备后,读取所登陆的交换机利用接收的查询响应报文所建立的地址转发表;拓扑发现单元805,用于基于所述第二执行单元804从各子网内交换机所读取的地址转发表进行网络物理拓扑发现,具体可以利用本实施例上面所述的方法进行拓扑发现。优选地,本实施例中所提供的网管服务器,还包括第三执行单元806,用于在所述远程登录单元802登录到各子网内所有设备后,读取所登陆的设备上存储的地址解析信息及其更新时间,所述地址解析信息包括该设备及与该设备发生过通信的设备的IP地址及对应MAC地址;更新信息获取单元807,用于利用所述第三执行单元806从所有设备上读取的地址解析信息及其更新时间,获取最新的地址解析信息;拓扑更新单元808,用于利用12最新的地址解析信息更新所发现的网络物理拓扑中设备对应的IP地址及MAC地址。第四执行单元809,用于在所述远程登录单元802登录到各子网内所有设备后,利用远程登陆协议读取所登陆的设备上存储的配置信息;拓扑完善单元810,用于根据所述第四执行单元809所读取的配置信息,确定配置信息所在的设备与另一设备间连接有虚拟路由器时,所发现的网络物理拓扑中在两设备之间添加虚拟路由器链路本实施例中所述远程登录单元利用远程登陆协议,具体采用多线程并行登陆方式远程登陆各子网内所有设备;所述第一执行单元具体采用多线程并行控制方式控制登陆设备发送查询请求报文;所述第二执行单元具体采用多线程并行读取方式读取登陆交换机内的地址转发表;该网管服务器还包括自动调度执行单元,用于所述第二执行单元在多线程并行登录时,若到任一设备的登录在超出设定时间还未成功时,退出到该设备的登陆。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求一种基于SNMP的网络物理拓扑发现方法,其特征在于,包括获取网络中各子网内所有设备的IP地址及对应的MAC地址、及各子网的网关设备,所述设备包括交换机、路由器和主机;利用远程登陆协议远程登陆到各子网内所有设备,控制所登陆的设备发送查询请求报文到该设备所在子网内其它所有设备;利用远程登陆协议读取所登陆的交换机基于接收的查询响应报文所建立的地址转发表;基于从各子网内交换机所读取的地址转发表进行网络物理拓扑发现。2.如权利要求l所述的方法,其特征在于,所述远程登陆协议为TELNET协议、SSHV1协议或SSHV2协议。3.如权利要求1或2所述的方法,其特征在于,执行利用远程登陆协议进行远程登陆、控制所登陆的设备发送查询请求报文、读取所登陆的交换机内的地址转发表的对象为网管服务器。4.如权利要求1或2所述的方法,其特征在于,还包括利用远程登陆协议读取所登陆的设备上存储的地址解析信息及其更新时间,所述地址解析信息包括该设备及与该设备发生过通信的设备的IP地址及对应MAC地址;利用从所有设备上读取的地址解析信息及其更新时间,获取最新的地址解析信息;利用最新的地址解析信息更新所发现的网络物理拓扑中设备对应的IP地址及MAC地址。5.如权利要求1或2所述的方法,其特征在于,还包括利用远程登陆协议读取所登陆的设备上存储的配置信息;根据所读取的配置信息确定该设备与另一设备间连接有虚拟路由器时,所发现的网络物理拓扑中在上述设备与另一设备之间添加虚拟路由器链路。6.如权利要求1或2所述的方法,其特征在于,利用远程登陆协议远程登陆各子网内所有设备为多线程并行登陆;利用远程登陆协议控制登陆设备发送查询请求报文为多线程并行控制;利用远程登陆协议读取登陆交换机内的地址转发表为多线程并行读取;在多线程并行登录时,若到任一设备的登录在超出设定时间还未成功时,退出到该设备的登陆。7.如权利要求1或2所述的方法,其特征在于,基于所读取的地址转发表进行网络物理拓扑发现具体包括确定利用远程登陆协议执行操作的对象为其所在子网的标志节点,及确定其它子网中的网关设备为其所在子网对应的标志节点;根据地址转发表确定与标志节点直接连接的交换机为根交换机,并将该根交换机加入到交换机发现队列;取出交换机发现队列中的首个交换机,确定其下行端口的连接情况;将出现在取出交换机的地址转发表中且未进入过交换机发现队列的新交换机加入到交换机发现队列的尾部;返回重新从交换机发现队列中取出首个交换机,循环上述过程直到交换机发现队列为8.如权利要求7所述的方法,其特征在于,确定取出交换机下行端口的连接情况具体包括确定下行端口为叶端口时,根据该叶端口在地址转发表中对应的MAC地址,建立该叶端口与其对应的MAC地址对应的设备之间的连接;确定下行端口不是叶端口时,根据该下行端口在地址转发表中对应的MAC地址,建立该下行端口与其对应的MAC地址对应的设备之间的直接连接或间接连接。9.一种网管服务器,其特征在于,包括获取单元,用于获取网络中各子网内所有设备的IP地址及对应的MAC地址、及各子网的网关设备,所述设备包括交换机、路由器和主机;远程登录单元,用于利用远程登陆协议远程登陆到各子网内所有设备;第一执行单元,用于在所述远程登录单元登录到各子网内所有设备后,控制所登陆的设备发送查询请求报文到该设备所在子网内其它所有设备;第二执行单元,用于在所述远程登录单元登录到各子网内所有设备后,读取所登陆的交换机利用接收的查询响应报文所建立的地址转发表;拓扑发现单元,用于基于所述第二执行单元从各子网内交换机所读取的地址转发表进行网络物理拓扑发现。10.如权利要求9所述的网管服务器,其特征在于,还包括第三执行单元,用于在所述远程登录单元登录到各子网内所有设备后,读取所登陆的设备上存储的地址解析信息及其更新时间,所述地址解析信息包括该设备及与该设备发生过通信的设备的IP地址及对应MAC地址;更新信息获取单元,用于利用所述第三执行单元从所有设备上读取的地址解析信息及其更新时间,获取最新的地址解析信息;拓扑更新单元,用于利用最新的地址解析信息更新所发现的网络物理拓扑中设备对应的IP地址及MAC地址。11.如权利要求9所述的网管服务器,其特征在于,还包括第四执行单元,用于在所述远程登录单元登录到各子网内所有设备后,利用远程登陆协议读取所登陆的设备上存储的配置信息;拓扑完善单元,用于根据所述第四执行单元所读取的配置信息,确定配置信息所在的设备与另一设备间连接有虚拟路由器时,所发现的网络物理拓扑中在两设备之间添加虚拟路由器链路。12.如权利要求9所述的网管服务器,其特征在于,所述远程登录单元利用远程登陆协议,具体采用多线程并行登陆方式远程登陆各子网内所有设备;所述第一执行单元具体采用多线程并行控制方式控制登陆设备发送查询请求报文;所述第二执行单元具体采用多线程并行读取方式读取登陆交换机内的地址转发表;该网管服务器还包括自动调度执行单元,用于所述第二执行单元在多线程并行登录时,若到任一设备的登录在超出设定时间还未成功时,退出到该设备的登陆。全文摘要本发明涉及网络拓扑发现领域,尤其涉及一种基于SNMP的网络物理拓扑发现方法及网管服务器,该方法包括获取网络中各子网内所有设备的IP地址及对应的MAC地址、及各子网的网关设备;利用远程登陆协议远程登陆到各子网内所有设备,控制所登陆的设备发送查询请求报文到该设备所在子网内其它所有设备;利用远程登陆协议读取所登陆的交换机基于接收的查询响应报文所建立的地址转发表;基于从各子网内交换机所读取的地址转发表进行网络物理拓扑发现。该网管服务器利用远程登录协议可以完成网络物理拓扑发现。本发明使网络中交换机能建立比较完整的地址转发表,物理拓扑发现的结果相比传统网络物理拓扑发现结果有很大的改进。文档编号H04L12/24GK101764709SQ20091026175公开日2010年6月30日申请日期2009年12月29日优先权日2009年12月29日发明者陈小悦申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1