一种获取网络拓扑的系统、方法和服务器技术方案

技术编号:21251208 阅读:46 留言:0更新日期:2019-06-01 09:16
本申请公开了一种获取网络拓扑的系统、方法和服务器,该方法包括:获取服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间的拓扑信息;根据获得的以下任一项或任意组合的拓扑信息制作网络拓扑:服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间完整的拓扑信息。通过本申请获取了完整的网络拓扑信息。

A System, Method and Server for Obtaining Network Topology

This application discloses a system, method and server for acquiring network topology, which includes: acquiring virtual network topology information within the server, topology information between servers and network devices, and topology information between network devices and network devices; making network topology according to any of the following or any combination of topology information obtained: virtual within the server Network topology information, the topology information between servers and network devices, and the complete topology information between network devices and network devices. Complete network topology information is obtained through this application.

【技术实现步骤摘要】
一种获取网络拓扑的系统、方法和服务器
本申请涉及但不限于计算机网络技术,尤指一种获取网络拓扑的系统、方法和服务器。
技术介绍
随着网络技术和云计算技术的不断发展,越来越多的物理网络设备、物理服务器、虚拟网络设备和虚拟机出现在数据中心。为了更好地定位网络问题,相关技术中会采用链路层发现协议(LLDP,LinkLayerDiscoveryProtocol)、思科发现协议(CDP,CiscoDiscoveryProtocol)和简单网络管理协议(SNMP,SimpleNetworkManagementProtocol)来获取网络拓扑信息。其中,LLDP协议是IEEE802.1AB标准,规定设备定期向周围的设备发送LLDP报文,在LLDP报文中携带有配置信息、设备能力、系统名称及描述、端口名称及描述等信息,同时接收和处理来自邻居设备的LLDP报文。CDP协议和LLDP协议的功能是类似的,不过CDP是私有协议,相对LLDP更轻量并且可以携带私有信息。SNMP协议采用传输控制协议/因特网互联协议(TCP/IP)族对互联网上的网络设备进行管理,提供了一组基本的操作,用来监控和维护网络设备。相关技术中,在获取网络拓扑时,只获取物理设备之间的网络拓扑,或者是只获取服务器内部的虚拟网络的网络拓扑;在获取服务器内部虚拟网络拓扑时,只获取虚拟机和虚拟交换机(OVS,OpenvSwitch)的连接关系;在处理LLDP报文时,采用第三方库libpcap来开发,降低了通用性。
技术实现思路
本申请提供一种获取网络拓扑的系统、方法和服务器,能够获取完整的网络拓扑信息。本申请提供了一种获取网络拓扑的系统,包括:作为控制节点的服务器、一个以上作为计算节点的服务器;其中,控制节点包括:第一获取单元、客户端模块,及管理模块;其中,第一获取单元,用于获取以下任一或任意组合的拓扑信息:自身所在服务器内部的虚拟网络拓扑信息;自身所在服务器和网络设备之间的拓扑信息;网络设备和网络设备之间的拓扑信息;客户端模块,用于根据来自管理模块的调用,从自身所在服务器中的第一获取单元获取相应的拓扑信息;管理模块,用于根据获得的拓扑信息制作网络拓扑;计算节点包括:第二获取单元,及客户端模块;其中,第二获取单元,用于获取以下任一或任意组合的拓扑信息:自身所在服务器内部的虚拟网络拓扑信息;自身所在服务器和网络设备之间的拓扑信息;客户端模块,用于根据来自控制节点的调用,从自身所在服务器中的第二获取单元获取相应的拓扑信息并输出给控制节点。本申请还提供了一种服务器,包括:获取模块、客户端模块;其中,获取模块,用于获取自身所在服务器内部的虚拟网络拓扑信息,和/或获取自身所在服务器和网络设备之间的拓扑信息;客户端模块,用于根据来自管理模块的调用,从获取模块获取相应的拓扑信息。在一种示例性实例中,所述获取模块包括第一获取模块、第二获取模块;其中,在一种示例性实例中,第一获取模块,用于获取自身所在服务器内部的虚拟网络拓扑信息;第二获取模块,用于获取自身所在服务器和网络设备之间的拓扑信息。在一种示例性实例中,所述服务器还包括:管理模块;所述获取模块还包括:第三获取模块;其中,第三获取模块,用于获取网络设备和网络设备之间的拓扑信息;管理模块,用于根据获得的拓扑信息制作网络拓扑。本申请又提供了一种获取网络拓扑的方法,包括:获取服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、以及网络设备和网络设备之间的拓扑信息;根据获得的以下任一项或任意组合的拓扑信息制作网络拓扑:服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间的拓扑信息。本申请再提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的获取网络拓扑的方法。本申请又提供了一种获取网络拓扑的电子设备,包括处理器、存储器;其中,存储器上存储有可在处理器上运行的计算机程序:用于执行上述任一项获取网络拓扑的方法的步骤。本申请至少包括:获取服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间的拓扑信息;根据获得的以下任一项或任意组合的拓扑信息制作网络拓扑:服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间完整的拓扑信息。通过本申请获取了完整的网络拓扑信息。通过本申请,在获取网络拓扑时,不仅获取了物理设备之间的网络拓扑,也获取了服务器内部的虚拟网络的网络拓扑;而且,在获取服务器内部虚拟网络拓扑时,不仅获取虚拟机和虚拟交换机的连接关系,也获取了虚拟网络设备和虚拟交换机的连接关系。也就是说,通过本申请提供的获取网络拓扑的系统,获取了完整的网络拓扑信息。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。图1为本申请获取网络拓扑的系统的组成示意图;图2为本申请虚拟数据中心通过本申请的获取网络拓扑的系统获得的完整网络拓扑图的示意图;图3为本申请获取网络拓扑的系统中第一获取模块的组成实施例示意图;图4为本申请获取网络拓扑的系统中第二获取模块的组成实施例示意图;图5为本申请获取网络拓扑的系统中第三获取模块的组成实施例示意图;图6为本申请获取网络拓扑的系统中管理模块的组成实施例示意图;图7为本申请获取网络拓扑的系统中客户端模块的组成实施例示意图;图8为本申请获取网络拓扑的方法的流程示意图;图9为本申请获取网络拓扑的方法的第一实施例的工作过程示意图;图10为本申请第一实施例输出的拓扑的示意图;图11为本申请获取网络拓扑的方法的第二实施例的流程示意图;图12为本申请第二实施例输出的拓扑的示意图;图13为本申请获取网络拓扑的方法的第三实施例的流程示意图;图14为本申请第三实施例和第四实施例输出的拓扑的示意图;图15为本申请获取网络拓扑的方法的第四实施例的流程示意图;图16为本申请获取网络拓扑的方法的第五实施例的流程示意图;图17为本申请第五实施例和第六实施例输出的拓扑的示意图;图18为本申请获取网络拓扑的方法的第六实施例的流程示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。LLDP报文和CDP报文的发送和接收是在网络设备上完成的,但是,出于安全考虑,是不允许登录这些网络设备的,这种情况下,为了获得完整的网络拓扑,本申请专利技术人发现,在数据中心环境下,服务器上能看到和网络设备的连接情况,因此,可以通过在服务器上得到网卡所连接的网络设备的情况,来提高网络问题定位的效率。另外,本申请还利用SNMP获取网络设备之间的连接关系,为绘制完整的数据中心网络拓扑提供了保障。图1为本申请获取网络拓扑的系统的组成示意图,如图1所示,至少包括:作为控制节点的服务器、一个以上作为计算节点的服务器;其本文档来自技高网...

【技术保护点】
1.一种获取网络拓扑的系统,包括:作为控制节点的服务器、一个以上作为计算节点的服务器;其中,控制节点包括:第一获取单元、客户端模块,及管理模块;其中,第一获取单元,用于获取以下任一或任意组合的拓扑信息:自身所在服务器内部的虚拟网络拓扑信息;自身所在服务器和网络设备之间的拓扑信息;网络设备和网络设备之间的拓扑信息;客户端模块,用于根据来自管理模块的调用,从自身所在服务器中的第一获取单元获取相应的拓扑信息;管理模块,用于根据获得的拓扑信息制作网络拓扑;计算节点包括:第二获取单元,及客户端模块;其中,第二获取单元,用于获取以下任一或任意组合的拓扑信息:自身所在服务器内部的虚拟网络拓扑信息;自身所在服务器和网络设备之间的拓扑信息;客户端模块,用于根据来自控制节点的调用,从自身所在服务器中的第二获取单元获取相应的拓扑信息并输出给控制节点。

【技术特征摘要】
1.一种获取网络拓扑的系统,包括:作为控制节点的服务器、一个以上作为计算节点的服务器;其中,控制节点包括:第一获取单元、客户端模块,及管理模块;其中,第一获取单元,用于获取以下任一或任意组合的拓扑信息:自身所在服务器内部的虚拟网络拓扑信息;自身所在服务器和网络设备之间的拓扑信息;网络设备和网络设备之间的拓扑信息;客户端模块,用于根据来自管理模块的调用,从自身所在服务器中的第一获取单元获取相应的拓扑信息;管理模块,用于根据获得的拓扑信息制作网络拓扑;计算节点包括:第二获取单元,及客户端模块;其中,第二获取单元,用于获取以下任一或任意组合的拓扑信息:自身所在服务器内部的虚拟网络拓扑信息;自身所在服务器和网络设备之间的拓扑信息;客户端模块,用于根据来自控制节点的调用,从自身所在服务器中的第二获取单元获取相应的拓扑信息并输出给控制节点。2.根据权利要求1所述的系统,所述客户端模块还用于:根据来自用户的调用,从自身所在服务器的各获取拓扑信息的模块获取相应的拓扑信息。3.根据权利要求1所述的系统,其中,所述控制节点的客户端模块还用于:根据来自用户的请求,从所述第一获取单元中获取拓扑信息,以便发起请求的用户获得所述控制节点的网络拓扑。4.根据权利要求1所述的系统,其中,所述计算节点的客户端模块还用于:根据来自用户的请求,从所述计算节点的第二获取单元获取拓扑信息,以便发起请求的用户获得所述计算节点的网络拓扑。5.根据权利要求1所述的系统,其中,所述控制节点包括主控制节点和备控制节点。6.根据权利要求1~5任一项所述的系统,其中,所述服务器内部的虚拟网络拓扑信息包括:服务器内部虚拟机和虚拟网络设备之间的拓扑信息,以及服务器内部虚拟网络设备和虚拟网络设备之间的拓扑信息;所述服务器和网络设备之间的拓扑信息包括:物理服务器的每一个网卡和网络设备之间的拓扑信息;所述网络设备和网络设备之间的拓扑信息包括:物理网络设备与物理网络设备之间的拓扑信息。7.一种服务器,包括:获取模块、客户端模块;其中,获取模块,用于获取自身所在服务器内部的虚拟网络拓扑信息,和/或获取自身所在服务器和网络设备之间的拓扑信息;客户端模块,用于根据来自管理模块的调用,从获取模块获取相应的拓扑信息。8.根据权利要求7所述的服务器,所述获取模块包括第一获取模块、第二获取模块;其中,第一获取模块,用于获取自身所在服务器内部的虚拟网络拓扑信息;第二获取模块,用于获取自身所在服务器和网络设备之间的拓扑信息。9.根据权利要求8所述的服务器,所述服务器还包括:管理模块;所述获取模块还包括:第三获取模块;其中,第三获取模块,用于获取网络设备和网络设备之间的拓扑信息;管理模块,用于根据获得的拓扑信息制作网络拓扑。10.根据权利要求9所述的服务器,所述客户端模块还用于:根据来自用户的请求,从所述获取模块获取相应的拓扑信息,以便发起请求的用户获得所述服务器的网络拓扑。11.根据权利要求8所述的服务器,所述第一获取模块包括:第一网卡统计模块、搜索模块、第一生成模块、第一消息队列模块;其中,第一网卡统计模块,用于统计自身所在服务器当前所有的物理网卡的网卡相关信息,为记录网卡和交换机端口的连接关系提供信息;搜索模块,用于搜索虚拟交换机OVS数据库中对网桥和端口关系的描述信息;搜索虚拟机的虚拟网卡名称;调用Neutron应用程序接口API以搜索Neutron数据库中虚拟网络设备的信息;第一生成模块,用于根据来自搜索模块的信息,形成服务器内部虚拟网络拓扑;第一消息队列模块,用于实现进程间通信。12.根据权利要求11所述的服务器,其中,所述第一生成模块包括:根据来自所述搜索模块的所述描述信息和所述虚拟网卡名称,获取虚拟机和OVS桥之间的连接关系;根据来自所述搜索模块的所述描述信息和所述虚拟网络设备的信息,获取虚拟网络设备和OVS桥之间的连接关系。13.根据权利要求11所述的服务器,其中,所述第一获取模块还包括:用于记录自身所在服务器的事件的第一日志模块;用于将普通的进程转换为守护进程的第一守护进程模块;以及,用于将服务器端需要传送的信息转化为指定数据格式后输出的第一格式转换模块。14.根据权利要求8所述的服务器,其中,所述第二获取模块包括:第二网卡统计模块、多线程控制模块、一个以上监听模块、第二消息队列模块;其中,第二网卡统计模块,用于统计自身所在服务器当前所有的物理网卡的网卡相关信息;多线程控制模块,用于产生多线程,并同步多线程;监听模块,用于分别对每个网卡收到的报文进行处理;第二消息队列模块,用于实现进程间通信。15.根据权利要求14所述的服务器,其中,所述多线程控制模块具体用于:为每一个网卡开启一个线程,该线程用于监控发送到该网卡的所有报文,并过滤出链路层发现协议LLDP报文和思科发现协议CDP报文;为多线程设置用于保护关键数据结构同一时间只被一个线程读或者写的同步策略。16.根据权利要求14所述的服务器,其中,所述监听模块均包括:介质访问控制MAC层处理模块、LLDP层处理模块、CDP层处理模块;其中,MAC层处理模块,用于分析处理MAC头部;LLDP层处理模块,用于分析处理LLDP报文头部和类型/长度/值TLV字段;CDP层处理模块,用于分析处理CDP报文头部和TLV字段。17.根据权利要求16所述的服务器,其中,所述LLDP层处理模块调用套...

【专利技术属性】
技术研发人员:王世超丁杰崔丕锁
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1