Nothing Special   »   [go: up one dir, main page]

CN109831318A - 一种获取网络拓扑的系统、方法和服务器 - Google Patents

一种获取网络拓扑的系统、方法和服务器 Download PDF

Info

Publication number
CN109831318A
CN109831318A CN201811598855.3A CN201811598855A CN109831318A CN 109831318 A CN109831318 A CN 109831318A CN 201811598855 A CN201811598855 A CN 201811598855A CN 109831318 A CN109831318 A CN 109831318A
Authority
CN
China
Prior art keywords
module
network
server
topology information
topology
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811598855.3A
Other languages
English (en)
Inventor
王世超
丁杰
崔丕锁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201811598855.3A priority Critical patent/CN109831318A/zh
Publication of CN109831318A publication Critical patent/CN109831318A/zh
Priority to PCT/CN2019/128659 priority patent/WO2020135575A1/zh
Priority to EP19905178.0A priority patent/EP3905590A4/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种获取网络拓扑的系统、方法和服务器,该方法包括:获取服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间的拓扑信息;根据获得的以下任一项或任意组合的拓扑信息制作网络拓扑:服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间完整的拓扑信息。通过本申请获取了完整的网络拓扑信息。

Description

一种获取网络拓扑的系统、方法和服务器
技术领域
本申请涉及但不限于计算机网络技术,尤指一种获取网络拓扑的系统、方法和服务器。
背景技术
随着网络技术和云计算技术的不断发展,越来越多的物理网络设备、物理服务器、虚拟网络设备和虚拟机出现在数据中心。为了更好地定位网络问题,相关技术中会采用链路层发现协议(LLDP,Link Layer Discovery Protocol)、思科发现协议(CDP,CiscoDiscovery Protocol)和简单网络管理协议(SNMP,Simple Network ManagementProtocol)来获取网络拓扑信息。
其中,LLDP协议是IEEE802.1AB标准,规定设备定期向周围的设备发送LLDP报文,在LLDP报文中携带有配置信息、设备能力、系统名称及描述、端口名称及描述等信息,同时接收和处理来自邻居设备的LLDP报文。CDP协议和LLDP协议的功能是类似的,不过CDP是私有协议,相对LLDP更轻量并且可以携带私有信息。SNMP协议采用传输控制协议/因特网互联协议(TCP/IP)族对互联网上的网络设备进行管理,提供了一组基本的操作,用来监控和维护网络设备。
相关技术中,在获取网络拓扑时,只获取物理设备之间的网络拓扑,或者是只获取服务器内部的虚拟网络的网络拓扑;在获取服务器内部虚拟网络拓扑时,只获取虚拟机和虚拟交换机(OVS,Open vSwitch)的连接关系;在处理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所示,控制节点可以包括两个或两个以上,分别设置为主控制节点、一个或一个以上备控制节点。
主控制节点和备控制节点的工作方式可以是主备方式,如果主设备出现严重工作异常,比如:某些重要的模块或者大量的模块出现非激活(INACTIVE)状态,就会触发从主控制节点向备控制节点的主备切换。
图2为本申请虚拟数据中心通过本申请的获取网络拓扑的系统获得的完整网络拓扑图的示意图,如图2所示,从右到左依次是:网络设备之间的网络拓扑,包括如各级交换机之间的连接情况等;服务器网卡和网络设备之间的连接关系,包括如服务器上各个物理网卡和网络设备的连接情况等,如图2中的enp4s0f1、enp7s0f0等类似字段表示物理网卡的名称;以及,服务器内部虚拟网络拓扑,包括如虚拟交换机和虚拟路由器的连接关系、虚拟交换机和动态主机配置协议(DHCP)服务器的连接关系、虚拟交换机和虚拟机之间的连接关系等。
通过本申请获取网络拓扑的系统,在获取网络拓扑时,不仅获取了物理设备之间的网络拓扑,也获取了服务器内部的虚拟网络的网络拓扑;而且,在获取服务器内部虚拟网络拓扑时,不仅获取虚拟机和虚拟交换机的连接关系,也获取了虚拟网络设备和虚拟交换机的连接关系。也就是说,通过本申请提供的获取网络拓扑的系统,获取了完整的网络拓扑信息。
图3为本申请获取网络拓扑的系统中第一获取模块的组成实施例示意图,如图3所示,至少包括:第一网卡统计模块、搜索模块、第一生成模块、第一消息队列模块;其中,
第一网卡统计模块,用于统计自身所在服务器当前所有的物理网卡的网卡相关信息,为记录物理网卡和交换机端口的连接关系提供信息;
搜索模块,用于搜索OVS数据库中对网桥和端口关系的描述信息;搜索虚拟机的虚拟网卡名称;调用Neutron应用程序接口(API)以搜索Neutron数据库中虚拟网络设备的信息;
第一生成模块,用于根据来自搜索模块的信息,形成服务器内部虚拟网络拓扑。在一种示例性实例中,搜索模块可以包括:第一搜索模块,用于搜索OVS数据库中对网桥和端口关系的描述信息;第二搜索模块,用于搜索虚拟机的虚拟网卡名称;第三搜索模块,用于调用Neutron应用程序接口(API)以搜索Neutron数据库中虚拟网络设备的信息。这样,第一生成模块包括:根据来自第一搜索模块和第二搜索模块的信息,获取虚拟机和OVS桥之间的连接关系;根据来自第一搜索模块和第三搜索模块的信息,获取虚拟网络设备和OVS桥之间的连接关系,其中虚拟网络设备包括但不限于:如dhcp命名空间、虚拟路由器(vRouter)等。
第一消息队列模块,用于实现进程间通信。
在一种示例性实例中,可以通过linux的系统命令来自获取所有物理主机上所有物理网卡的网卡相关信息如名字、状态等信息。
在一种示例性实例中,第一获取模块还包括:第一日志模块(图3中未示出),用于记录自身所在服务器的关键事件,以方便定位问题。
在一种示例性实例中,第一获取模块还包括:第一守护进程模块(图3中未示出),用于将普通的进程转换为守护进程。这样,实现了服务端稳定运行在后台。
在一种示例性实例中,第一获取模块还包括:第一格式转换模块(图3中未示出),用于将服务器端需要传送的信息转化为指定数据格式后输出,比如JSON格式等。
图4为本申请获取网络拓扑的系统中第二获取模块的组成实施例示意图,如图4所示,至少包括:第二网卡统计模块、多线程控制模块、一个以上监听模块(如图4中的第一监听模块、第二监听模块…第N监听模块)、第二消息队列模块;其中,
第二网卡统计模块,用于统计自身所在服务器当前所有的物理网卡的网卡相关信息;
多线程控制模块,用于产生多线程,并同步多线程。可选地,多线程控制模块具体用于:
为每一个网卡开启一个线程,该线程用于监控发送到该网卡的所有报文,并过滤出LLDP报文和CDP报文;为多线程设置同步策略,用于保护关键数据结构同一时间只被一个线程读或者写。
在一种示例性实例中,本申请实施例中,由于最多出现两个线程竞争同一个数据结构,比如网卡监听模块的线程和服务端主线程之间的竞争,因此,可以采用互斥锁实现多线程的同步。
监听模块,用于分别对每个网卡收到的报文进行处理。可选地,每个监听模块均包括:介质访问控制(MAC)层处理模块、LLDP层处理模块、CDP层处理模块,其中,
MAC层处理模块,用于分析处理MAC头部;在一种示例性实例中,对以太帧头的分析,处理可能遇到两种类型的以太协议:Ethernet_II和802.3_Ethernet,自动识别出协议类型并分别处理;
LLDP层处理模块,用于分析处理LLDP报文头部和类型/长度/值(TLV,Token/Length/Value)字段。在一种示例性实例中,处理各种类型的TLV数据,将结果记录到LLDP_Interface_Port数据结构中,该LLDP_Interface_Port数据结构中表示了通过LLDP解析出的网卡和端口映射信息,LLDP_Interface_Port数据结构定义如下:
typedef struct LLDP_Interface_Port{
char interface_name[SIZE_NIC_NAME];
char chassis_subtype[SIZE_MIDDLE];
char port_subtype[SIZE_SMALL];
char time_to_live[SIZE_SMALL];
char port_description[SIZE_LARGE];
char system_name[SIZE_MIDDLE];
char system_description[SIZE_LARGE];
}lldp_interface_port;
其中,interface_name表示网卡名称;chassis_subtype一般表示网络设备的MAC地址;port_subtype表示端口的类型;time_to_live表示生存时间值;port_description表示端口描述;system_name表示网卡所连网络设备的系统名称;system_description表示/网卡所连网络设备的系统描述。
这里,为了减少不必要的空间开销,不同的信息使用的数组长度不同。比如:SIZE_LARGE为100字节,SIZE_MIDDLE为50字节,SIZE_SMALL和SIZE_NIC_NAME为20字节。
在一种示例性实例中,在处理LLDP报文时,采用更底层的系统调用套接字(socket)来开发,提升了申请获取网络拓扑的系统通用性。
CDP层处理模块,用于分析处理CDP报文头部和TLV字段。在一种示例性实例中,处理各种类型的TLV数据,将结果记录到CDP_Interface_Port数据结构中表示了通过CDP解析出的网卡和端口映射信息,该CDP_Interface_Port数据结构定义如下:
typedef struct CDP_Interface_Port{
char interface_name[SIZE_NIC_NAME];
char device_id[SIZE_MIDDLE];
char ip_address[SIZE_MIDDLE];
char time_to_live[SIZE_SMALL];
char port_id[SIZE_MIDDLE];
char capabilities[SIZE_MIDDLE];
char software_version[SIZE_LARGE];
char platform[SIZE_LARGE];
char native_vlan[SIZE_SMALL];
}cdp_interface_port;
其中,interface_name表示网卡名称;device_id表示网络设备ID;ip_address表示网络设备的管理IP;time_to_live表示生存时间值;port_id表示端口ID;capabilities表示网络设备支持的功能;software_version表示网络设备的软件版本;platform表示网络设备所用的平台;native_vlan表示本地VLAN。
CDP层处理模块主要是为了应对一些数据中心的交换机,不支持发送LLDP报文,只支持CDP报文。
第二消息队列模块,用于实现进程间通信。以守护进程的方式在后台监控所有到达网卡的数据包,分析出LLDP和CDP报文的内容,并记录在相应的数据结构中供客户端请求。
在一种示例性实例中,可以通过linux的系统命令来自获取所有物理主机上所有物理网卡的网卡相关信息如名字、状态等信息。
在一种示例性实例中,第二获取模块还包括:第二日志模块(图4中未示出),用于记录自身所在服务器的关键事件,以方便定位问题。
在一种示例性实例中,第二获取模块还包括:第二守护进程模块(图4中未示出),用于将普通的进程转换为守护进程。这样,实现了服务端稳定运行在后台。
在一种示例性实例中,第二获取模块还包括:第二格式转换模块(图4中未示出),用于将服务器端需要传送的信息转化为指定数据格式后输出,比如JSON格式等。
图5为本申请获取网络拓扑的系统中第三获取模块的组成实施例示意图,如图5所示,至少包括:网元控制模块、处理模块、第三消息队列模块;其中,
网元控制模块,用于管理和实现与网络设备的通信;
处理模块,用于处理SNMP协议相关的数据,包括网络设备直接发来的数据;处理来自软件自定义网络(SDN)控制器的网络拓扑数据。在一种示例性实例中,第二处理模块可以是一个SDN控制器代理模块,通过自身与SDN控制器通信来获取SDN控制器已知的网络拓扑信息。
第三消息队列模块,用于实现进程间通信。可以实现跨越主机通信。
在一种示例性实例中,处理模块可以包括:第一处理模块、第二处理模块,其中,
第一处理模块,用于处理SNMP协议相关的数据,包括网络设备直接发来的数据;
第二处理模块,用于处理来自软件自定义网络(SDN)控制器的网络拓扑数据。在一种示例性实例中,第二处理模块可以是一个SDN控制器代理模块,通过自身与SDN控制器通信来获取SDN控制器已知的网络拓扑信息。
可选地,如果系统中还包括有网管系统,那么,所述处理模块还用于:处理来自网管系统的网络拓扑数据;相应地,网元控制模块还用于:管理和实现与网管系统的通信。
在一种示例性实例中,第三获取模块还包括:第三日志模块(图5中未示出),用于记录自身所在服务器的关键事件,以方便定位问题。
在一种示例性实例中,第三获取模块还包括:第三守护进程模块(图5中未示出),用于将普通的进程转换为守护进程。这样,实现了服务端稳定运行在后台。
在一种示例性实例中,第三获取模块还包括:第三格式转换模块(图5中未示出),用于将服务器端需要传送的信息转化为指定数据格式后输出,比如JSON格式等。
图6为本申请获取网络拓扑的系统中管理模块的组成实施例示意图,如图6所示,至少包括:第四消息队列模块、拓扑信息处理模块;其中,
第四消息队列模块,用于实现进程间通信,调用服务器中客户端模块的北向接口来获取来自第一获取模块、第二获取模块及第三获取模块的拓扑信息。即获取服务器内部的虚拟网络拓扑信息,服务器和网络设备之间的拓扑信息,以及网络设备和网络设备之间的拓扑信息。
拓扑信息处理模块,用于对收集到的拓扑信息进行整合以制作网络拓扑。
可选地,管理模块还包括:第一北向接口模块,用于提供给用户如云平台用户调用,并根据用户的调用获取网络拓扑。
在一种示例性实例中,管理模块还包括:第四日志模块(图6中未示出),用于记录自身所在服务器的关键事件,以方便定位问题。
在一种示例性实例中,管理模块还包括:第四守护进程模块(图6中未示出),用于将普通的进程转换为守护进程。这样,实现了服务端稳定运行在后台。
在一种示例性实例中,管理模块还包括:第四格式转换模块(图6中未示出),用于将服务器端需要传送的信息转化为指定数据格式后输出,比如JSON格式等。
图7为本申请获取网络拓扑的系统中客户端模块的组成实施例示意图,如图7所示,至少包括:第五消息队列模块、第二北向接口模块,输出模块;其中,
第五消息队列模块,用于实现进程间通信,以守护进程的方式在后台监控自身所在服务器的数据;
第二北向接口模块,用于根据来自控制节点中管理模块的调用,从自身所在控制节点中的第一获取模块,和/或第二获取模块,和/或第三获取模块获取相应的拓扑信息;或者,从自身所在计算节点的第一获取模块和/或第二获取模块获取相应的拓扑信息,并输出给控制节点;
输出模块,用于将获取的拓扑信息输出给控制节点或发起请求的用户端。
在一种示例性实例中,北向接口模块还用于:根据来自用户的调用,从自身所在服务器的各获取拓扑信息的模块获取相应的拓扑信息,并经过输出模块输出。
本申请还提供一种服务器,包括:获取模块、客户端模块;其中,
获取模块,用于获取自身所在服务器内部的虚拟网络拓扑信息,和/或获取自身所在服务器和网络设备之间的拓扑信息;
客户端模块,用于根据来自管理模块的调用,从获取模块获取相应的拓扑信息。
在一种示例性实例中,获取模块包括第一获取模块、第二获取模块;其中,
第一获取模块,用于获取自身所在服务器内部的虚拟网络拓扑信息;
第二获取模块,用于获取自身所在服务器和网络设备之间的拓扑信息。
在一种示例性实例中,所述服务器还包括:管理模块;所述获取模块还包括:第三获取模块;其中,
第三获取模块,用于获取网络设备和网络设备之间的拓扑信息;
管理模块,用于根据获得的拓扑信息制作网络拓扑。
在一种示例性实例中,所述客户端模块还用于:
根据来自用户的请求,从所述获取模块获取相应的拓扑信息,以便发起请求的用户获得所述服务器的网络拓扑。
服务器中各模块的具体实现请参见上文的描述,这里不再赘述。
图8为本申请获取网络拓扑的方法的流程示意图,如图8所示,包括:
步骤800:获取服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、以及网络设备和网络设备之间的拓扑信息。
在一种示例性实例中,服务器内部的虚拟网络拓扑信息包括:
服务器内部虚拟机和虚拟网络设备之间的拓扑信息,以及服务器内部虚拟网络设备和虚拟网络设备之间的拓扑信息。
在一种示例性实例中,服务器和网络设备之间的拓扑信息包括:
物理服务器的每一个网卡和网络设备之间的拓扑信息。
在一种示例性实例中,网络设备和网络设备之间的拓扑信息包括:
物理网络设备与物理网络设备之间的拓扑信息。
可选地,本步骤中的获取服务器内部的虚拟网络拓扑信息,包括:
统计服务器当前所有的物理网卡的网卡相关信息;
搜索OVS数据库中对网桥和端口关系的描述信息;搜索虚拟机的虚拟网卡名称;调用Neutron API以搜索Neutron数据库中虚拟网络设备的信息;
根据获得的信息,形成服务器内部虚拟网络拓扑。
在一种示例性实例中,根据获得的信息形成服务器内部虚拟网络拓扑,包括:
根据获得的对网桥和端口关系的描述信息和虚拟机的虚拟网卡名称,获取虚拟机和OVS桥之间的连接关系;根据获得的对网桥和端口关系的描述信息和虚拟网络设备的信息,获取虚拟网络设备和OVS桥之间的连接关系。其中虚拟网络设备包括但不限于:如dhcp命名空间、vRouter等。
可选地,本步骤中的获取服务器和网络设备之间的拓扑信息,包括:
统计自身所在服务器当前所有的物理网卡的网卡相关信息如名字、状态等信息;
为每一个网卡开启一个线程,该线程用于监控发送到该网卡的所有报文,并过滤出LLDP报文和CDP报文;
分别对每个网卡收到的报文进行处理。
在一种示例性实例中,可以通过linux的系统命令来自获取所有物理主机上所有物理网卡的网卡相关信息如名字、状态等信息。
在一种示例性实例中,对每个网卡收到的报文进行处理,包括:
分析处理MAC头部;在一种示例性实例中,对以太帧头的分析,处理可能遇到两种类型的以太协议:Ethernet_II和802.3_Ethernet,自动识别出协议类型并分别处理;
分析处理LLDP报文头部和TLV字段。在一种示例性实例中,处理各种类型的TLV数据,将结果记录到LLDP_Interface_Port数据结构中;
分析处理CDP报文头部和TLV字段。在一种示例性实例中,处理各种类型的TLV数据,将结果记录到CDP_Interface_Port数据结构中。
可选地,在处理LLDP报文时,采用更底层的系统调用套接字(socket)来开发,提升了申请获取网络拓扑的系统通用性。
可选地,本步骤中的获取网络设备和网络设备之间的拓扑信息,包括:
处理SNMP协议相关的数据,包括网络设备直接发来的数据;
处理来自SDN控制器的网络拓扑数据。
步骤801:根据获得的以下任一项或任意组合的拓扑信息制作网络拓扑:服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间的拓扑信息。
可选地,本步骤中的制作的完整的网络拓扑。
在一种示例性实例中,本申请获取网络拓扑的方法,还包括:
根据来自用户的请求,将获得的拓扑信息输出给发起请求的用户所在的客户端。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的获取网络拓扑的方法。
本发明实施例还提供一种获取网络拓扑的电子设备,包括处理器、存储器;其中,存储器上存储有可在处理器上运行的计算机程序:用于执行上述任一项获取网络拓扑的方法的步骤。
下面结合具体实施例对本申请获取网络拓扑的方法进行详细描述。
图9为本申请获取网络拓扑的方法的第一实施例的工作过程示意图,如图9所示,第一实施例以获取服务器网卡和网络设备端口之间的连接关系拓扑为例,工作过程包括:
首先,启动服务器端程序,以守护进程的方式运行。需要说明的是,如果已有该进程,则先删除已有的该进程,然后再启动进程。启动对日志的记录。记录的日志包括服务器中的关键事件,比如:紧接着的多线程创建过程中是否有问题、有没有收到LLDP报文或者CDP报文、发送LLDP报文的设备的MAC地址,以及记录程序运行中的异常情况等。开始统计当前主机上所有的物理网卡的信息,将网卡名对应记录在预先设置的LLDP_Interface_Port数据结构和CDP_Interface_Port数据结构中。
然后,为每个物理网卡启动一个线程,该线程用于监控发送到该线程的LLDP报文和CDP报文。监控的方法可以是使用原始套接字,抓取所有到达指定网卡的报文,并根据二层帧的特点过滤出LLDP报文和CDP报文。结合图4,报文到达指定网卡后,先调用MAC层处理模块,解析收到的报文,如果解析出收到的报文是LLDP报文,则调用LLDP层处理模块进行相应处理;如果解析出收到的报文是CDP报文,则调用CDP层处理模块进行相应处理;如果判断出既不是LLDP报文也不是CDP报文,则跳过这里的处理即不对收到的报文进行处理。
之后,根据报文相应的协议解析所有的TLV字段,将相关的结果对应记录在LLDP_Interface_Port数据结构和CDP_Interface_Port数据结构中。本实施例中,为了确保服务端只有一个线程在修改,或者在一个线程修改时不会同时被另一个线程读,采用互斥锁来处理多线程的同步问题。
最后,启动消息队列以准备处理来自客户端的请求。本实施例中,在向发起请求的客户端返回结果时,是将LLDP_Interface_Port数据结构和CDP_Interface_Port数据结构中的数据以指定的格式如JSON格式等进行返回,以方便客户端处理。
图10显示了第一实施例输出的拓扑的示意图,如图10所示,enp4s0f0、enp5s0f0、enp6s0f0等类似字段表示物理网卡的名称,gei-1/12、gei-1/13等类似字段表示网络设备端口名称,MAC:00:22:93:5B:75:C4等类似字段表示交换机的桥MAC地址,SYSTEM:ZXR10ROSVersion V4.08.23ZXR10_5928Software等类似字段表示交换机系统的名称和版本号。根据获得的拓扑可以定位服务器网卡配置问题和交换机端口配置问题。
图11为本申请获取网络拓扑的方法的第二实施例的流程示意图,第二实施例以触发普通服务器上的客户端模块获取本地服务器的内部虚拟网络拓扑为例,如图11所示,包括:
步骤1100:通过调用客户端北向接口触发客户端模块启动。
步骤1101:客户端模块根据调用客户端北向接口的参数获知目标是获取服务器内部虚拟拓扑,通过消息队列向服务器请求收集服务器内部虚拟网络拓扑。
步骤1102:服务器搜索OVS数据库中对网桥和端口关系的描述信息。
步骤1103:服务器搜索虚拟机的虚拟网卡名称。
步骤1104:服务器搜索Neutron数据库中虚拟网络设备的信息。
需要说明的是,步骤1102、步骤1103和步骤1104之间并没有严格的先后执行顺序,也就是说,步骤1102、步骤1103和步骤1104的执行顺序可以任意调整,并不用于限定本申请的保护范围。
步骤1105:根据步骤1102~步骤1104收集到的信息产生拓扑,并将拓扑信息返回给客户端。
步骤1106:客户端模块获得服务器内部虚拟拓扑信息并输出。
图12显示了第二实施例输出的拓扑的示意图,如图12所示,enp4s0f1、enp7s0f0、enp7s0f1等类似字段表示物理网卡的名称,br-int和DVS_dp等类似字段表示虚拟交换机的名称,VM-1等类似字段表示虚机的名称。根据获得的拓扑可以方便定位虚拟网络中的配置问题。第二实施例获得的拓扑类型不同于第一实施例获得的拓扑类型。
图13为本申请获取网络拓扑的方法的第三实施例的流程示意图,第三实施例以触发控制节点上的客户端模块获取网络设备和网络设备之间的拓扑为例,并假设当前虚拟数据中心采用的是传统网络架构,并且有网管系统,如图13所示,包括:
步骤1300:通过调用客户端北向接口触发客户端模块启动。
步骤1301:客户端模块通过消息队列向服务器请求收集网络设备和网络设备之间的拓扑。
步骤1302:服务器根据当前网络环境进行相应处理,即根据当前网络环境决定调用响应模块来获取网络设备和网络设备之间的拓扑。
步骤1303:本实施例中,当前网络环境为传统网络架构且存在网管系统,则调用网管系统对应的处理模块(如图5中的第二处理模块)向网管系统请求网络拓扑。
步骤1304:获取网络设备和网络设备之间的拓扑后向反馈给客户端模块,客户端模块获得网络设备和网络设备之间的网络拓扑信息并输出。
图14为本申请第三实施例和第四实施例输出的拓扑的示意图,如图14所示,gei-1/12、gei-1/13、gei-1/14、gei-1/15、gei-1/16、gei-1/21等类似字段是物理交换机的端口名称。根据获得的拓扑可以方便定位网络设备之间的连接和配置问题。第三实施例获得的拓扑类型不同于第一实施例、第二实施例获取的拓扑类型。
图15为本申请获取网络拓扑的方法的第四实施例的流程示意图,第四实施例以触发控制节点上的客户端模块获取网络设备和网络设备之间的拓扑为例,并假设当前虚拟数据中心采用的是传统网络架构,并且没有网管系统,如图15所示,包括:
步骤1500:通过调用客户端北向接口触发客户端模块启动。
步骤1501:客户端模块通过消息队列向服务器请求收集网络设备和网络设备之间的拓扑。
步骤1502:服务器根据当前网络环境进行相应处理,即根据当前网络环境决定调用相应模块来获取网络设备和网络设备之间的拓扑。
步骤1503:本实施例中,当前网络环境为传统网络架构且不存在网管系统,调用如图5所示的网元控制模块向各个网络设备的SNMP代理发出SNMP请求,以从各网络设备中获取管理信息。
步骤1504:网元控制模块收到各个网络设备的回复后,将获得的结果发给SNMP对应的处理模块(如图5中的第一处理模块)。
步骤1505:SNMP对应的处理模块汇总所有网络设备的结果,本实施例中可以利用BFS算法绘制出完整的网络设备与网络设备之间的拓扑。
步骤1506:将绘制的拓扑反馈给向客户端模块。
步骤1507:客户端模块获得网络设备与网络设备之间的网络拓扑并输出。
本实施例获得的输出拓扑见图14,这样,根据获得的拓扑可以方便定位网络设备之间的连接和配置问题。第四实施例与第三实施例相比,二者的网络场景不一样。
图16为本申请获取网络拓扑的方法的第五实施例的流程示意图,第五实施例以触发控制节点上的客户端模块获取网络设备和网络设备之间的拓扑为例,并假设当前虚拟数据中心采用的是SDN网络架构,并且有网管系统,如图16所示,包括:
步骤1600:通过调用客户端北向接口触发客户端模块启动。
步骤1601:客户端模块通过消息队列向服务器请求收集网络设备和网络设备之间的拓扑。
步骤1602:服务器根据当前网络环境进行相应处理,即根据当前网络环境决定调用相应模块来获取网络设备和网络设备之间的拓扑。
步骤1603:本实施例中,当前网络环境为传统网络架构且存在网管系统,此时SDN控制器的数据库中有网络设备之间的拓扑,则调用SDN控制器代理模块(如图5中的第三处理模块)向SDN控制器请求overlay网络拓扑;并调用网管系统的处理模块向网管系统请求underlay网络拓扑。
步骤1604:将overlay网络拓扑和underlay网络拓扑呈现在一张拓扑图上。
步骤1605:将融合了overlay网络和underlay网络的拓扑反馈给客户端模块。
步骤1606:客户端模块获得网络设备和网络设备之间的网络拓扑信息并输出。
图17为本申请第五实施例和第六实施例输出的拓扑的示意图,如图17所示,实线连接线表示Underlay网络,虚线连接线表示Overlay连接线。gei-1/12、gei-1/13、gei-1/14、gei-1/15、gei-1/16、gei-1/21等类似字段是物理交换机的端口名称;VXLAN隧道的端点(VTEP,Vxlan Tunnel End Point)用于VXLAN报文的封装和解封装。根据获得的拓扑可以方便定位网络设备之间的连接和配置问题,本实施例与第三实施例和第四实施例相比,网络架构不同。其中,Overlay,顾名思义,上层的,或者说,业务层面的、用户层面的;而与overlay所对应的是underlay,顾名思义,下层的,或者说,基础架构层,专门用于承载用户流量的传统的IP网络,只要可以提供IP包的转发即可。
图18为本申请获取网络拓扑的方法的第六实施例的流程示意图,第六实施例以触发控制节点上的客户端模块获取网络设备和网络设备之间的拓扑为例,假设当前虚拟数据中心采用的是SDN网络架构,并且没有网管系统,如图18所示,包括:
步骤1800:通过调用客户端北向接口触发客户端模块启动。
步骤1801:客户端模块通过消息队列向服务器请求收集网络设备和网络设备之间的拓扑。
步骤1802:服务器根据当前网络环境进行相应处理,即根据当前网络环境决定调用相应模块来获取网络设备和网络设备之间的拓扑。
步骤1803:本实施例中,当前网络环境为传统网络架构且不存在网管系统,此时SDN控制器的数据库中有网络设备之间的拓扑,则调用SDN控制器代理模块(如图5中的第三处理模块)向SDN控制器请求overlay网络拓扑;由于没有网管系统,则本实施例中,调用如图5所示的网元控制模块向各个网络设备的SNMP代理发出SNMP请求信息,以从网络设备中获取管理信息。
步骤1804:网元控制模块收到各个网络设备的回复消息后,将获得的结果发给SNMP对应的处理模块(如图5中的第一处理模块)。
步骤1805:SNMP处理模块汇总所有网络设备的回复后,本实施例中可以利用BFS算法绘制出完整的网络设备与网络设备之间的拓扑图,这里的拓扑就是underlay网络拓扑;将overlay网络拓扑和underlay网络拓扑呈现在一张拓扑图上,将融合了overlay网络和underlay网络的拓扑反馈给客户端模块。
步骤1806:客户端模块获得网络设备和网络设备之间的网络拓扑信息并输出。
本实施例获得的输出拓扑见图17,这样,根据获得的拓扑可以方便定位网络设备之间的连接和配置问题。第六实施例与第五实施例相比,二者的网络场景不一样。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (36)

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层处理模块调用套接字处理所述LLDP报文。
18.根据权利要求9所述的服务器,其中,所述第三获取模块包括:网元控制模块、处理模块、第三消息队列模块;其中,
网元控制模块,用于管理和实现与网络设备的通信;
处理模块,用于处理简单网络管理协议SNMP协议相关的数据;处理来自软件自定义网络SDN控制器的网络拓扑数据;
第三消息队列模块,用于实现进程间通信。
19.根据权利要求18所述的服务器,其中,如果所述系统中还包括网管系统,所述处理模块还用于:处理来自网管系统的网络拓扑数据,相应地,
所述网元控制模块还用于:管理和实现与网管系统的通信。
20.根据权利要求16所述的服务器,所述第三获取模块还包括:
用于记录自身所在服务器的事件的第三日志模块;
用于将普通的进程转换为守护进程的第三守护进程模块;
用于将服务器端需要传送的信息转化为指定数据格式后输出的第三格式转换模块。
21.根据权利要求9所述的服务器,其中,所述管理模块包括:第四消息队列模块、拓扑信息处理模块;其中,
第四消息队列模块,用于实现进程间通信,调用服务器中客户端模块的北向接口来获取来自所述第一获取模块、所述第二获取模块及所述第三获取模块的拓扑信息;
拓扑信息处理模块,用于对收集到的拓扑信息进行整合以制作网络拓扑。
22.根据权利要求21所述的服务器,所述管理模块还包括:第一北向接口模块,用于提供给用户调用,并根据用户的调用获取所述网络拓扑。
23.根据权利要求19所述的服务器,所述管理模块还包括:
用于记录自身所在服务器的事件的第四日志模块;
用于将普通的进程转换为守护进程的第四守护进程模块;
用于将服务器端需要传送的信息转化为指定数据格式后输出的第四格式转换模块。
24.根据权利要求8所述的服务器,其中,所述客户端模块包括:第五消息队列模块、第二北向接口模块,输出模块;其中,
第五消息队列模块,用于实现进程间通信,以守护进程的方式在后台监控自身所在服务器的数据;
第二北向接口模块,用于根据来自所述管理模块的调用,从所述第一获取模块,和/或所述第二获取模块,和/或所述第三获取模块获取相应的拓扑信息;
输出模块,用于将获取的拓扑信息输出给控制节点或发起请求的客户端。
25.根据权利要求24所述的服务器,所述北向接口模块还用于:根据来自用户的调用,从自身所在服务器的各获取拓扑信息的模块获取相应的拓扑信息并输出;或者,从自身所在计算节点的第一获取模块和/或第二获取模块获取相应的拓扑信息,并输出给控制节点。
26.一种获取网络拓扑的方法,包括:
获取服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、以及网络设备和网络设备之间的拓扑信息;
根据获得的以下任一项或任意组合的拓扑信息制作网络拓扑:服务器内部的虚拟网络拓扑信息、服务器和网络设备之间的拓扑信息、网络设备和网络设备之间的拓扑信息。
27.根据权利要求26所述的方法,还包括:根据来自用户的请求,将获得的拓扑信息输出给发起请求的用户所在的客户端。
28.根据权利要求26或27所述的方法,其中,
所述服务器内部的虚拟网络拓扑信息包括:
服务器内部虚拟机和虚拟网络设备之间的拓扑信息,以及服务器内部虚拟网络设备和虚拟网络设备之间的拓扑信息;
所述服务器和网络设备之间的拓扑信息包括:
物理服务器的每一个网卡和网络设备之间的拓扑信息;
所述网络设备和网络设备之间的拓扑信息包括:
物理网络设备与物理网络设备之间的拓扑信息。
29.根据权利要求26或27所述的方法,其中,所述获取服务器内部的虚拟网络拓扑信息,包括:
统计所述服务器当前所有的物理网卡的信息;
搜索OVS数据库中对网桥和端口关系的描述信息;搜索虚拟机的虚拟网卡名称;调用Neutron API以搜索Neutron数据库中虚拟网络设备的信息;
根据获得的信息,形成所述服务器内部虚拟网络拓扑。
30.根据权利要求29所述的方法,其中,所述根据获得的信息形成服务器内部虚拟网络拓扑,包括:
根据获得的所述对网桥和端口关系的描述信息和所述虚拟机的虚拟网卡名称,获取虚拟机和OVS桥之间的连接关系;根据获得的所述对网桥和端口关系的描述信息和所述虚拟网络设备的信息,获取虚拟网络设备和OVS桥之间的连接关系。
31.根据权利要求26或27所述的方法,其中,所述获取服务器和网络设备之间的拓扑信息,包括:
统计所述服务器当前所有的物理网卡的网卡相关信息;
为每一个网卡开启一个线程,该线程用于监控发送到该网卡的所有报文,并过滤出LLDP报文和CDP报文;
分别对每个网卡收到的报文进行处理。
32.根据权利要求31所述的方法,其中,所述对每个网卡收到的报文进行处理,包括:
分析处理MAC头部;分析处理LLDP报文头部和TLV字段;分析处理CDP报文头部和TLV字段。
33.根据权利要求32所述的方法,其中,通过调用套接字来处理所述LLDP报文。
34.根据权利要求26或27所述的方法,其中,所述获取网络设备和网络设备之间的拓扑信息,包括:
处理SNMP协议相关的数据,包括网络设备直接发来的数据;
处理来自SDN控制器的网络拓扑数据。
35.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述权利要求26~权利要求34任一项所述的获取网络拓扑的方法。
36.一种获取网络拓扑的电子设备,包括处理器、存储器;其中,存储器上存储有可在处理器上运行的计算机程序:用于执行上述权利要求26~权利要求34任一项获取网络拓扑的方法的步骤。
CN201811598855.3A 2018-12-26 2018-12-26 一种获取网络拓扑的系统、方法和服务器 Pending CN109831318A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201811598855.3A CN109831318A (zh) 2018-12-26 2018-12-26 一种获取网络拓扑的系统、方法和服务器
PCT/CN2019/128659 WO2020135575A1 (zh) 2018-12-26 2019-12-26 一种获取网络拓扑的系统、方法和服务器
EP19905178.0A EP3905590A4 (en) 2018-12-26 2019-12-26 SYSTEM AND METHOD FOR ESTABLISHING A NETWORK TOPOLOGY AND SERVER

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811598855.3A CN109831318A (zh) 2018-12-26 2018-12-26 一种获取网络拓扑的系统、方法和服务器

Publications (1)

Publication Number Publication Date
CN109831318A true CN109831318A (zh) 2019-05-31

Family

ID=66861126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811598855.3A Pending CN109831318A (zh) 2018-12-26 2018-12-26 一种获取网络拓扑的系统、方法和服务器

Country Status (3)

Country Link
EP (1) EP3905590A4 (zh)
CN (1) CN109831318A (zh)
WO (1) WO2020135575A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110636044A (zh) * 2019-08-19 2019-12-31 视联动力信息技术股份有限公司 一种虚拟终端的入网方法、系统及装置和存储介质
WO2020135575A1 (zh) * 2018-12-26 2020-07-02 中兴通讯股份有限公司 一种获取网络拓扑的系统、方法和服务器
CN112398738A (zh) * 2020-11-05 2021-02-23 竞技世界(北京)网络技术有限公司 连接关系的获取方法及装置、设备、计算机可读存储介质
CN113037520A (zh) * 2019-12-09 2021-06-25 深信服科技股份有限公司 一种环路检测方法、装置、设备及可读存储介质
CN113301073A (zh) * 2020-04-16 2021-08-24 阿里巴巴集团控股有限公司 分布式机器学习系统中服务器节点之间的通信方法和装置
WO2021244483A1 (zh) * 2020-06-03 2021-12-09 华为技术有限公司 一种虚拟化的网络服务的部署方法及装置
CN113965515A (zh) * 2021-09-26 2022-01-21 杭州安恒信息技术股份有限公司 虚拟化网络链路可视化方法、系统、计算机及存储介质
CN114268940A (zh) * 2021-12-22 2022-04-01 深圳市共进电子股份有限公司 Mesh网络拓扑图显示方法、系统、设备及存储介质
CN114422518A (zh) * 2022-03-31 2022-04-29 北京奥星贝斯科技有限公司 请求服务的方法及装置
CN114745281A (zh) * 2022-04-11 2022-07-12 京东科技信息技术有限公司 一种数据处理的方法和装置
CN114866432A (zh) * 2022-04-11 2022-08-05 张槐权 一种网络交换机远程管理和监控系统及方法
CN116016196A (zh) * 2022-12-14 2023-04-25 四川新网银行股份有限公司 一种实时构建系统架构拓扑的方法及系统
CN116094938A (zh) * 2023-01-16 2023-05-09 紫光云技术有限公司 基于kafka的网络拓扑同步方法、设备、服务器及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553707B (zh) * 2020-11-26 2023-09-15 腾讯科技(深圳)有限公司 网络的拓扑信息的生成和网络故障的定界方法、装置
CN113364628A (zh) * 2021-06-11 2021-09-07 上海中通吉网络技术有限公司 服务器与交换机拓扑关系建立方法及设备
CN113794732B (zh) * 2021-09-22 2023-08-11 上海观安信息技术股份有限公司 一种部署仿真网络环境的方法、装置、设备及存储介质
CN114422374B (zh) * 2022-03-22 2022-08-09 南京赛宁信息技术有限公司 一种靶场场景拓扑解析、初始化、回收方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1756189A (zh) * 2004-09-30 2006-04-05 北京航空航天大学 基于snmp的ip网络拓扑发现方法
CN103281248A (zh) * 2013-06-09 2013-09-04 北京星网锐捷网络技术有限公司 网络拓扑的发现方法、装置和系统
CN104468219A (zh) * 2014-12-11 2015-03-25 杭州华三通信技术有限公司 虚拟组网网络拓扑发现方法和设备
CN104618246A (zh) * 2015-02-12 2015-05-13 浪潮电子信息产业股份有限公司 一种面向xen虚拟化环境的网络拓扑发现方法
CN106713042A (zh) * 2016-12-29 2017-05-24 中国银联股份有限公司 一种确定网络拓扑方法及装置
CN107659423A (zh) * 2016-07-25 2018-02-02 南京中兴新软件有限责任公司 业务处理方法及装置
US20180234298A1 (en) * 2017-02-13 2018-08-16 Oracle International Corporation Implementing a single-addressable virtual topology element in a virtual topology

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621057B2 (en) * 2011-03-07 2013-12-31 International Business Machines Corporation Establishing relationships among elements in a computing system
JP5836042B2 (ja) * 2011-10-04 2015-12-24 株式会社日立製作所 管理サーバプログラム
CN103516754A (zh) * 2012-06-27 2014-01-15 中兴通讯股份有限公司 一种将物理网络向虚拟网络迁移的方法及装置
US10148515B2 (en) * 2015-05-23 2018-12-04 Cisco Technology, Inc Determining connections of non-external network facing ports
US10630557B2 (en) * 2015-10-19 2020-04-21 Nicira, Inc. Virtual network management
US10484265B2 (en) * 2017-04-27 2019-11-19 At&T Intellectual Property I, L.P. Dynamic update of virtual network topology
CN109831318A (zh) * 2018-12-26 2019-05-31 中兴通讯股份有限公司 一种获取网络拓扑的系统、方法和服务器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1756189A (zh) * 2004-09-30 2006-04-05 北京航空航天大学 基于snmp的ip网络拓扑发现方法
CN103281248A (zh) * 2013-06-09 2013-09-04 北京星网锐捷网络技术有限公司 网络拓扑的发现方法、装置和系统
CN104468219A (zh) * 2014-12-11 2015-03-25 杭州华三通信技术有限公司 虚拟组网网络拓扑发现方法和设备
CN104618246A (zh) * 2015-02-12 2015-05-13 浪潮电子信息产业股份有限公司 一种面向xen虚拟化环境的网络拓扑发现方法
CN107659423A (zh) * 2016-07-25 2018-02-02 南京中兴新软件有限责任公司 业务处理方法及装置
CN106713042A (zh) * 2016-12-29 2017-05-24 中国银联股份有限公司 一种确定网络拓扑方法及装置
US20180234298A1 (en) * 2017-02-13 2018-08-16 Oracle International Corporation Implementing a single-addressable virtual topology element in a virtual topology

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020135575A1 (zh) * 2018-12-26 2020-07-02 中兴通讯股份有限公司 一种获取网络拓扑的系统、方法和服务器
CN110636044A (zh) * 2019-08-19 2019-12-31 视联动力信息技术股份有限公司 一种虚拟终端的入网方法、系统及装置和存储介质
CN113037520A (zh) * 2019-12-09 2021-06-25 深信服科技股份有限公司 一种环路检测方法、装置、设备及可读存储介质
CN113301073A (zh) * 2020-04-16 2021-08-24 阿里巴巴集团控股有限公司 分布式机器学习系统中服务器节点之间的通信方法和装置
WO2021244483A1 (zh) * 2020-06-03 2021-12-09 华为技术有限公司 一种虚拟化的网络服务的部署方法及装置
JP7450072B2 (ja) 2020-06-03 2024-03-14 華為技術有限公司 仮想化ネットワーク・サービス配備方法及び装置
CN112398738A (zh) * 2020-11-05 2021-02-23 竞技世界(北京)网络技术有限公司 连接关系的获取方法及装置、设备、计算机可读存储介质
CN112398738B (zh) * 2020-11-05 2022-06-28 竞技世界(北京)网络技术有限公司 连接关系的获取方法及装置、设备、计算机可读存储介质
CN113965515B (zh) * 2021-09-26 2023-04-18 杭州安恒信息技术股份有限公司 虚拟化网络链路可视化方法、系统、计算机及存储介质
CN113965515A (zh) * 2021-09-26 2022-01-21 杭州安恒信息技术股份有限公司 虚拟化网络链路可视化方法、系统、计算机及存储介质
CN114268940A (zh) * 2021-12-22 2022-04-01 深圳市共进电子股份有限公司 Mesh网络拓扑图显示方法、系统、设备及存储介质
CN114422518A (zh) * 2022-03-31 2022-04-29 北京奥星贝斯科技有限公司 请求服务的方法及装置
CN114745281A (zh) * 2022-04-11 2022-07-12 京东科技信息技术有限公司 一种数据处理的方法和装置
CN114866432B (zh) * 2022-04-11 2023-10-17 张槐权 一种网络交换机远程管理和监控系统及方法
CN114745281B (zh) * 2022-04-11 2023-12-05 京东科技信息技术有限公司 一种数据处理的方法和装置
CN114866432A (zh) * 2022-04-11 2022-08-05 张槐权 一种网络交换机远程管理和监控系统及方法
CN116016196A (zh) * 2022-12-14 2023-04-25 四川新网银行股份有限公司 一种实时构建系统架构拓扑的方法及系统
CN116016196B (zh) * 2022-12-14 2024-10-11 四川新网银行股份有限公司 一种实时构建系统架构拓扑的方法及系统
CN116094938A (zh) * 2023-01-16 2023-05-09 紫光云技术有限公司 基于kafka的网络拓扑同步方法、设备、服务器及存储介质
CN116094938B (zh) * 2023-01-16 2024-04-19 紫光云技术有限公司 基于kafka的网络拓扑同步方法、设备、服务器及存储介质

Also Published As

Publication number Publication date
WO2020135575A1 (zh) 2020-07-02
EP3905590A1 (en) 2021-11-03
EP3905590A4 (en) 2022-09-14

Similar Documents

Publication Publication Date Title
CN109831318A (zh) 一种获取网络拓扑的系统、方法和服务器
US11477097B2 (en) Hierarchichal sharding of flows from sensors to collectors
CN110661669B (zh) 一种基于icmp、tcp、udp协议的网络设备的网络拓扑自动发现方法
CN102082690B (zh) 一种网络拓扑的被动发现设备及其发现方法
CN110247784B (zh) 确定网络拓扑结构的方法和装置
US9608841B2 (en) Method for real-time synchronization of ARP record in RSMLT cluster
WO2021203623A1 (zh) 一种物联网资源接入系统及资源接入方法
US9742639B1 (en) Intelligent network resource discovery and monitoring
US8898265B2 (en) Determining data flows in a network
CN109960634B (zh) 一种应用程序监控方法、装置及系统
WO2018049966A1 (zh) 视频监控系统的控制方法、装置及系统
CN114389792B (zh) 一种web日志nat前后关联方法及系统
US11916739B2 (en) Mitigation of physical network misconfigurations for clustered nodes
CN116633775A (zh) 一种多容器网络接口的容器通信方法及系统
CN101404594A (zh) 热备份性能的测试方法与装置、通信设备
KR20210147966A (ko) 네트워크 토폴로지 발견 방법, 디바이스, 및 시스템
JP2022525205A (ja) 異常ホストのモニタニング
JP2006157313A (ja) 経路作成システム、経路作成装置及び経路作成プログラム
US10904123B2 (en) Trace routing in virtual networks
CN115484214A (zh) 一种工控网络终端类型检测及网络服务质量优化方法
Zhou et al. Discovery algorithm for network topology based on SNMP
WO2024199223A1 (zh) 设备接入位置的获取方法及装置
CN117176639B (zh) 一种基于多协议的网络拓扑自动发现方法和装置
CN116527410B (zh) 一种反向代理模式下的防火墙多进程处理方法和装置
WO2024164828A1 (zh) 数据流识别方法及装置、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190531