CN113612688B - 分布式软件定义网络控制系统及其构建方法 - Google Patents
分布式软件定义网络控制系统及其构建方法 Download PDFInfo
- Publication number
- CN113612688B CN113612688B CN202110796262.3A CN202110796262A CN113612688B CN 113612688 B CN113612688 B CN 113612688B CN 202110796262 A CN202110796262 A CN 202110796262A CN 113612688 B CN113612688 B CN 113612688B
- Authority
- CN
- China
- Prior art keywords
- network
- area
- plane
- data
- data packet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
本申请公开了一种分布式软件定义网络控制系统及其构建方法,该系统包括管理平面、控制平面和数据平面,管理平面包括多个API,管理平面用于在每个API被调用时创建一个网络,在创建该网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括该网络的网元数据,控制平面用于从管理平面获取网元数据,将网元数据转换为流表项,并将流表项发送至数据平面,数据平面用于在接收到数据包时,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。从而,该分布式软件定义网络控制系统可以管理虚拟机、容器和裸金属作为网元的网络通信,可以支撑整个云平台,解决了云平台的网络连通性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种分布式软件定义网络控制系统及其构建方法。
背景技术
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。作为云计算的基础能力提供商,会建立云计算资源池(以下简称云平台),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。随着云计算技术的发展,虚拟资源越来越多,例如包括虚拟机、容器和裸金属等不同类型的资源。
针对不同类型的虚拟资源,业界主流平台都有各自的网络来管理,如OpenStack云计算管理平台由neutron网络来管理虚拟机之间的网络通信,容器平台由基于Kubernetes(简称K8S)的calico网络来管理容器之间的网络通信。
但是,neutron网络只能管理虚拟机之间的网络通信,calico网络只能管理容器之间的网络通信,如何构建一种可以支撑云平台的网络系统,可以管理虚拟机、容器和裸金属作为网元的网络通信,是亟需解决的问题。
发明内容
本申请提供一种分布式软件定义网络控制系统及其构建方法,以解决如何构建一种可以支撑云平台的网络系统,可以管理虚拟机、容器和裸金属作为网元的网络通信的问题。
第一方面,本申请提供一种分布式软件定义网络控制系统,包括:管理平面、控制平面和数据平面;
所述管理平面包括多个应用程序接口API,所述管理平面用于在每个所述API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括所述网络的网元数据;
所述控制平面用于从所述管理平面获取所述网元数据,将所述网元数据转换为流表项,并将所述流表项发送至所述数据平面;
所述数据平面用于在接收到数据包时,根据所述流表项确定所述数据包的流向,并根据所述数据包的流向转发所述数据包。
可选的,所述管理平面还包括与每个所述API对应的网络管理模块和数据库;
所述网络管理模块用于发布所述多个API,在每个所述API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到包括所述网络的网元数据;
所述数据库用于存储所述网络对应的网元数据;
所述网络管理模块还用于向所述控制平面发送所述网元数据。
上述申请中的另一个实施例具有如下优点或者有益效果:本实施例中管理平面包括多个API、与每个API对应的网络管理模块和数据库,每个网络管理模块在其管理的API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到包括网络的网元数据,数据库来存储该网络对应的网元数据,实现每个API由不同的网络管理模块管理,各自的数据库存储API被调用时得到的网元数据。
可选的,所述控制平面包括软件定义网络SDN-API、分布式数据库和多个分布式控制器,所述多个分布式控制器分别位于网络地址转换区、负载均衡区、虚拟专用网络区、至少一个计算区、至少一个容器区和至少一个裸金属区中,所述负载均衡区中还包括承载负载均衡的物理服务器,所述虚拟专用网络区中还包括虚拟专用网络VPN虚拟机,每个所述计算区中还包括承载虚拟机的物理服务器,每个所述容器区中还包括承载容器的物理服务器,每个所述裸金属区中还包括承载业务的物理服务器;
所述分布式数据库用于存储通过所述SDN-API接口从所述管理平面接收到的所述网元数据;
所述分布式控制器用于将所述分布式数据库中存储的所述网元数据转换为所述流表项,并将所述流表项发送至所述数据平面。
上述申请中的另一个实施例具有如下优点或者有益效果:本实施例中控制平面包括SDN-API、分布式数据库和多个分布式控制器,分布式数据库用于存储通过SDN-API接口从管理平面接收到的网元数据,多个分布式控制器分别位于网络地址转换区、负载均衡区、虚拟专用网络区、至少一个计算区、至少一个容器区和至少一个裸金属区中,分布式控制器用于将分布式数据库中存储的所述网元数据转换为流表项,并将流表项发送至数据平面,实现了控制平面的功能。
可选的,所述数据平面包括所述网络地址转换区、所述负载均衡区、所述虚拟专用网络区、每个所述计算区和每个所述容器区内的网桥和与所述网桥连接的物理网卡以及每个所述裸金属区中的物理交换机;
所述网桥或所述物理交换机用于接收所述流表项;
所述物理网卡用于在接收到数据包时,从所述网桥或物理交换机获取所述流表项,根据所述流表项确定所述数据包的流向,并根据所述数据包的流向转发所述数据包。
上述申请中的另一个实施例具有如下优点或者有益效果:本实施例中数据平面包括网桥、与网桥连接的物理网卡和物理交换机,网桥或物理交换机用于接收流表项,物理网卡用于在接收到数据包时,从网桥或物理交换机获取流表项,根据流表项确定数据包的流向,并根据数据包的流向转发数据包,实现了数据平面的功能,控制了数据包的流向。
可选的,还包括:负载均衡器,所述负载均衡器用于处理所述多个API被调用时的负载均衡。
上述申请中的另一个实施例具有如下优点或者有益效果:通过设置负载均衡器,可以保证多个API在同一时间被调用时的负载均衡。
第二方面,本申请提供一种分布式软件定义网络控制系统的构建方法,包括:
构建管理平面,所述管理平面包括多个应用程序接口API,所述管理平面用于在每个所述API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括所述网络的网元数据;
构建控制平面,所述控制平面用于从所述管理平面获取所述网元数据,将所述网元数据转换为流表项,并将所述流表项发送至所述数据平面;
构建数据平面,所述数据平面用于在接收到数据包时,根据所述流表项确定所述数据包的流向,并根据所述数据包的流向转发所述数据包。
可选的,所述构建管理平面,包括:
部署多个所述API;
构建与每个所述API对应的网络管理模块和数据库,所述网络管理模块用于在每个所述API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到所述网络对应的网元数据,所述数据库用于存储所述网络对应的网元数据。
上述申请中的另一个实施例具有如下优点或者有益效果:本实施例中通过先部署多个API,再构建与每个所述API对应的网络管理模块和数据库,每个网络管理模块在其管理的API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到包括该网络的网元数据,数据库来存储该网络对应的网元数据,每个API由不同的网络管理模块管理,各自的数据库存储API被调用时得到的网元数据,实现了管理平面的构建。
可选的,所述构建控制平面,包括:
构建软件定义网络SDN-API和分布式数据库,所述分布式数据库用于存储通过所述SDN-API接口从所述管理平面接收到的所述网元数据;
部署网络地址转换区、负载均衡区、虚拟专用网络区、至少一个计算区、至少一个容器区和至少一个裸金属区,在所述负载均衡区中设置承载负载均衡的物理服务器,在所述虚拟专用网络区中设置虚拟专用网络VPN虚拟机,在每个所述计算区中设置承载虚拟机的物理服务器,在每个所述容器区中设置承载容器的物理服务器,在每个所述裸金属区中设置承载业务的物理服务器;
在所述网络地址转换区、所述负载均衡区、所述虚拟专用网络区、每个所述计算区、每个所述容器区和每个所述裸金属区内均设置一个分布式控制器,所述分布式控制器用于将所述分布式数据库中存储的所述网元数据转换为所述流表项,并将所述流表项发送至所述数据平面。
上述申请中的另一个实施例具有如下优点或者有益效果:本实施例中通过构建SDN-API和分布式数据库以及部署网络地址转换区、负载均衡区、虚拟专用网络区、至少一个计算区、至少一个容器区和至少一个裸金属区,在网络地址转换区、负载均衡区、虚拟专用网络区、每个计算区、每个容器区和每个裸金属区内均设置一个分布式控制器,实现了控制平面的构建。
可选的,所述构建数据平面,包括:
在所述网络地址转换区、所述负载均衡区、所述虚拟专用网络区、每个所述计算区、每个所述容器区内均设置一个网桥和与所述网桥连接的物理网卡,在每个所述裸金属区中设置物理交换机;
所述网桥或所述物理交换机用于接收所述流表项;
所述物理网卡用于在接收到数据包时,从所述网桥或物理交换机获取所述流表项,根据所述流表项确定所述数据包的流向,并根据所述数据包的流向转发所述数据包。
上述申请中的另一个实施例具有如下优点或者有益效果:本实施例中通过在网络地址转换区、负载均衡区、虚拟专用网络区、每个计算区、每个容器区内均设置一个网桥和与网桥连接的物理网卡,在每个裸金属区中设置物理交换机,实现了数据平面的构建。
可选的,还包括:
构建负载均衡器,所述负载均衡器用于处理所述多个API被调用时的负载均衡。
上述申请中的另一个实施例具有如下优点或者有益效果:通过构建负载均衡器,可以保证多个API在同一时间被调用时的负载均衡。
本申请提供的分布式软件定义网络控制系统,包括管理平面、控制平面和数据平面,管理平面包括多个API,管理平面在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括该网络的网元数据,控制平面从管理平面获取网元数据,将网元数据转换为流表项,并将流表项发送至数据平面,数据平面在接收到数据包时,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。由于最终创建的网络中包括了虚拟机、容器和裸金属,从而,该分布式软件定义网络控制系统可以管理虚拟机、容器和裸金属作为网元的网络通信,可以支撑整个云平台,解决了云平台的网络连通性。
附图说明
图1为本申请实施例提供的一种分布式软件定义网络控制系统的结构示意图;
图2为本申请实施例提供的一种分布式SDN控制系统的结构示意图;
图3为本申请实施例提供的一种分布式SDN控制系统的结构示意图;
图4为本申请实施例提供的一种分布式SDN控制系统的整体部署结构示意图;
图5为本申请实施例提供的一种分布式SDN控制系统的构建方法的流程示意图;
图6为本申请实施例提供的一种分布式SDN控制系统的构建方法的流程示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
本申请实施例中,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为解决如何构建一种可以支撑云平台的网络系统,可以管理虚拟机、容器和裸金属作为网元的网络通信的问题,本申请实施例提供一种分布式软件定义网络控制系统,包括管理平面、控制平面和数据平面,管理平面包括多个API,管理平面在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括该网络的网元数据,控制平面从管理平面获取网元数据,将网元数据转换为流表项,并将流表项发送至数据平面,数据平面在接收到数据包时,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。由于最终创建的网络中包括了虚拟机、容器和裸金属,从而,该分布式软件定义网络控制系统可以管理虚拟机、容器和裸金属作为网元的网络通信,可以支撑整个云平台,解决了云平台的网络连通性。下面结合附图对本申请提供的技术方案进行详细说明。
接下来,对本申请实施例涉及的应用场景进行示例说明。
本申请实施例提供的分布式软件定义网络控制系统至少可应用于解决云平台的网络连通性的场景中,具体可应用于云平台的资源池中部署虚拟机、容器和裸金属等不同类型的资源时,如何实现管理虚拟机、容器和裸金属作为网元的网络通信。下面结合附图进行说明。
下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的一种分布式软件定义网络控制系统的结构示意图,如图1所示,本实施例的分布式软件定义网络(Software Defined Network,SDN)控制系统可以包括:管理平面1、控制平面2和数据平面3。
其中,管理平面1包括多个应用程序接口(Application Programming Interface,API),管理平面1用于在每个API被调用时创建一个网络,在创建该网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括网络的网元数据。
具体来说,API可以被用户或计算组件调用,API被用户或计算组件调用时,管理平面1创建一个网络,在创建该网络时加入虚拟机、容器或裸金属的网络端口,得到包括该网络的网元数据,管理平面1存储该网元数据,其中的网元数据可以包括虚拟交换机、虚拟路由器、网络、虚拟局域网(Vlan)号和虚拟扩展局域网(VXlan)号等中的至少一项。
控制平面2用于从管理平面1获取网元数据,将网元数据转换为流表项,并将流表项发送至数据平面3。
其中,流表项是指一张流表包含的内容,同一时间经过同一网络中,具有某种共同特征或属性的数据抽象为流,例如,可以将访问同一目的地址的数据视为一个流。流一般是由网络管理员定义的,可以根据不同的流执行不同的策略,数据都是以流为单位进行处理的。流表是指针对特定流的策略表项的集合,负责数据包的查找和转发。流表项一般包括包头域、计数器和动作表,包头域由多个匹配项组成,涵盖了链路层,网络层和传输层大部分标识,计数器用于统计数据流量相关信息,可以针对交换机中的每张流表、每个数据流、设备端口和转发队列进行维护,用于统计数据流量的相关信息。动作表用于指示在收到匹配的数据包后,如何对数据包进行处理,每个流表项可以对应零到多个动作,动作包括转发和丢弃等。
数据平面3用于在接收到数据包时,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。
可选的,数据包的流向可以包括访问控制列表(Access Control Lists,ACL)访问控制、服务质量、路由和网络地址转换中的任意一项,还可以包括其它,本实施例对此不作限制。
本实施例提供的分布式软件定义网络控制系统,包括管理平面、控制平面和数据平面,管理平面包括多个API,管理平面在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括该网络的网元数据,控制平面从管理平面获取网元数据,将网元数据转换为流表项,并将流表项发送至数据平面,数据平面在接收到数据包时,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。由于最终创建的网络中包括了虚拟机、容器和裸金属,从而,该分布式软件定义网络控制系统可以管理虚拟机、容器和裸金属作为网元的网络通信,可以支撑整个云平台,解决了云平台的网络连通性。
下面结合图2示例性地给出一种管理平面、控制平面和数据平面的具体结构,图2为本申请实施例提供的一种分布式SDN控制系统的结构示意图,如图2所示,本实施例的分布式SDN控制系统在图1所示系统的基础上,管理平面1还包括与每个API对应的网络管理模块11和数据库12,其中,网络管理模块11用于发布多个API,在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到包括网络的网元数据,数据库12用于存储网络对应的网元数据,网络管理模块11还用于向控制平面2发送网元数据。本实施例中管理平面包括多个API、与每个API对应的网络管理模块和数据库,每个网络管理模块在其管理的API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到包括所述网络的网元数据,数据库来存储该网络对应的网元数据,实现每个API由不同的网络管理模块管理以及由各自的数据库存储网元数据。
其中,可选的,数据库12可以是关系型数据库,关系型数据库便于存储网元数据。
如图2所示,控制平面2可以包括SDN-API21、分布式数据库22和多个分布式控制器23,具体地,多个分布式控制器23分别位于网络地址转换区41、负载均衡区42、虚拟专用网络区43、至少一个计算区44、至少一个容器区45和至少一个裸金属区46中,负载均衡区42中还包括承载负载均衡的物理服务器421,虚拟专用网络区43中还包括虚拟专用网络(Virtual Private Network,VPN)虚拟机431,每个计算区44中还包括承载虚拟机的物理服务器441,每个容器区45中还包括承载容器的物理服务器451,每个裸金属区46中还包括承载业务的物理服务器461。
本实施例中,负载均衡区42用于处理对计算区44、容器区45和裸金属区46的同一时间的大量访问的负载均衡。
分布式数据库22用于存储通过SDN-API接口21从管理平面1接收到的网元数据。具体地,网络管理模块11通过SDN-API接口21向控制平面2发送网元数据。本实施例中,使用分布式数据库22存储从网络管理模块11接收到的网元数据,分布式数据库22中的数据库节点可以横向扩展,便于支持超大规模集群,分布式数据库可以使系统横向扩展性增强。
分布式控制器23用于将分布式数据库22中存储的网元数据转换为流表项,并将流表项发送至数据平面3。
如图2所示,数据平面3可以包括网络地址转换区41、负载均衡区42、虚拟专用网络区43、每个计算区44和每个容器区45内的网桥31和与网桥31连接的物理网卡33以及每个裸金属区46中的物理交换机32。
网桥31或物理交换机32用于接收流表项,物理网卡33用于在接收到数据包时,从网桥31或物理交换机32获取流表项,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。
本实施例中,如图2中所示,网络地址转换区41、负载均衡区42和虚拟专用网络区43均通过各自设置的一个物理网卡33连接到外网网卡51,并通过各自设置的另一个物理网卡33连接到内网网卡52,计算区44和容器区45均通过各自设置的一个物理网卡33连接到内网网卡52,裸金属区46通过物理交换机32连接到内网网卡52。从而可使得数据包通过外网网卡51到达内网网卡52。
本实施例中,可选的,网桥31可以是数据平面开发套件(Data Plane DevelopmentKit,DPDK)或智能网卡,DPDK或智能网卡可以使得数据平面具有较高的性能。
本实施例提供的分布式软件定义网络控制系统,包括管理平面、控制平面和数据平面,管理平面包括多个API、与每个API对应的网络管理模块和数据库,控制平面包括SDN-API、分布式数据库和多个分布式控制器,数据平面包括网桥、与网桥连接的物理网卡和物理交换机,其中,网络管理模块发布多个API,在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括网络的网元数据,数据库存储网络对应的网元数据,网络管理模块通过SDN-API接口向控制平面发送网元数据,分布式数据库存储控制平面接收到的网元数据,接着由分布式控制器将分布式数据库中存储的网元数据转换为流表项,并将流表项发送至网桥或物理交换机,物理网卡在接收到数据包时,从网桥或物理交换机获取流表项,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。从而,该分布式软件定义网络控制系统可以管理虚拟机、容器和裸金属作为网元的网络通信,可以支撑整个云平台,解决了云平台的网络连通性,可以支持异构环境(包括虚拟机环境、容器环境和裸金属环境)下的异构计算。
图3为本申请实施例提供的一种分布式SDN控制系统的结构示意图,如图3所示,本实施例的分布式SDN控制系统在图3所示系统的基础上,进一步地,还可以包括负载均衡器4,负载均衡器4用于处理多个API被调用时的负载均衡。从而可以保证多个API在同一时间被调用时的负载均衡。
需要说明的是,图3所示的为分布式SDN控制系统的总体逻辑架构图,下面结合图4示出了一种分布式SDN控制系统的整体部署结构图,图4为本申请实施例提供的一种分布式SDN控制系统的整体部署结构示意图,如图4所示,分布式SDN控制系统包括管理控制区60、至少一个可用区61和外网接入区62。
管理控制区60部署了虚拟化管理平台(KVM)管理集群601、容器管理集群602和总控制器集群603,还可以包括各种中间件节点。KVM管理集群601、容器管理集群602和总控制器集群603分别通过交换机经管理网线连接至核心区70的一交换机80,KVM管理集群601、容器管理集群602和总控制器集群603内均设置多个物理服务器。
每个可用区61部署了计算区611、容器区612和裸金属区613,计算区611内部署虚拟机计算节点代理、分布式控制器和多个物理服务器。容器区612内部署了容器计算节点代理、分布式控制器和多个物理服务器。裸金属区613内部署了裸金属计算节点代理和多个物理服务器。计算区611、容器区612和裸金属区613均通过交换机经管理网线连接至核心区70的一交换机80,计算区611、容器区612和裸金属区613还通过交换机经业务网线连接至核心区70的另一交换机81。
外网接入区62包括网络地址转换接入区621、负载均衡接入区622和虚拟专用网络接入区623,网络地址转换接入区621内部署分布式控制器和多个物理服务器。负载均衡接入区622内部署虚拟机计算节点代理、分布式控制器和多个物理服务器。虚拟专用网络接入区623内部署虚拟机计算节点代理、分布式控制器和多个物理服务器。网络地址转换接入区621、负载均衡接入区622和虚拟专用网络接入区623通过交换机经业务网线连接至核心区70的一交换机81,网络地址转换接入区621、负载均衡接入区622和虚拟专用网络接入区623还通过交换机经外网网线连接至防火墙,再经出口交换机连接到外网(如包括电信、联通和移动的网络)。
其中,计算区611、容器区612和裸金属区613分别连接至多个万兆交换机,网络地址转换接入区621、负载均衡接入区622和虚拟专用网络接入区623分别连接至多个万兆交换机。
需要说明的是,图4仅是一种区域部署图的示例,本申请实施例提供的分布式SDN控制系统的整体部署结构不限于此。
图5为本申请实施例提供的一种分布式SDN控制系统的构建方法的流程示意图,如图5所示,本实施例的方法可以包括:
S101、构建管理平面,管理平面包括多个API,管理平面用于在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括网络的网元数据。
其中,网元数据可以包括虚拟交换机、虚拟路由器、网络、虚拟局域网(Vlan)号和虚拟扩展局域网(VXlan)号等中的至少一项。
S102、构建控制平面,控制平面用于从管理平面获取网元数据,将网元数据转换为流表项,并将流表项发送至数据平面。
其中,流表项是指一张流表包含的内容,同一时间经过同一网络中,具有某种共同特征或属性的数据抽象为流,例如,可以将访问同一目的地址的数据视为一个流。流一般是由网络管理员定义的,可以根据不同的流执行不同的策略,数据都是以流为单位进行处理的。流表是指针对特定流的策略表项的集合,负责数据包的查找和转发。流表项一般包括包头域、计数器和动作表,包头域由多个匹配项组成,涵盖了链路层,网络层和传输层大部分标识,计数器用于统计数据流量相关信息,可以针对交换机中的每张流表、每个数据流、设备端口和转发队列进行维护,用于统计数据流量的相关信息。动作表用于指示在收到匹配的数据包后,如何对数据包进行处理,每个流表项可以对应零到多个动作,动作包括转发和丢弃等。
S103、构建数据平面,数据平面用于在接收到数据包时,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。
具体地,数据包的流向可以包括访问控制列表(Access Control Lists,ACL)访问控制、服务质量、路由和网络地址转换中的任意一项,还可以包括其它,本实施例对此不作限制。
本实施例提供的分布式软件定义网络控制系统的构建方法,通过构建管理平面、控制平面和数据平面,管理平面包括多个API,管理平面用于在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括该网络的网元数据,控制平面用于从管理平面获取网元数据,将网元数据转换为流表项,并将流表项发送至数据平面,数据平面用于在接收到数据包时,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。由于最终创建的网络中包括了虚拟机、容器和裸金属,从而,实现了分布式软件定义网络控制系统的构建,该分布式软件定义网络控制系统可以管理虚拟机、容器和裸金属作为网元的网络通信,可以支撑整个云平台,解决了云平台的网络连通性。
图6为本申请实施例提供的一种分布式SDN控制系统的构建方法的流程示意图,本实施例的方法在图5所示的方法的基础上,可选的,S101可以包括:
S1011、部署多个API。
S1012、构建与每个API对应的网络管理模块和数据库,网络管理模块用于在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到网络对应的网元数据,数据库用于存储网络对应的网元数据。
可选的,S102可以包括:
S1021、构建SDN-API和分布式数据库,分布式数据库用于存储通过SDN-API接口从管理平面接收到的网元数据。
S1022、部署网络地址转换区、负载均衡区、虚拟专用网络区、至少一个计算区、至少一个容器区和至少一个裸金属区,在负载均衡区中设置承载负载均衡的物理服务器,在虚拟专用网络区中设置VPN虚拟机,在每个计算区中设置承载虚拟机的物理服务器,在每个容器区中设置承载容器的物理服务器,在每个裸金属区中设置承载业务的物理服务器。
S1023、在网络地址转换区、负载均衡区、虚拟专用网络区、每个计算区、每个容器区和每个裸金属区内均设置一个分布式控制器,分布式控制器用于将分布式数据库中存储的网元数据转换为流表项,并将流表项发送至数据平面。
可选的,S103可以包括:
S1031、在网络地址转换区、负载均衡区、虚拟专用网络区、每个计算区、每个容器区内均设置一个网桥和与网桥连接的物理网卡,在每个裸金属区中设置物理交换机。
其中,网桥或物理交换机用于接收流表项。物理网卡用于在接收到数据包时,从网桥或物理交换机获取流表项,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。
本实施例中,例如通过执行S1011-S1031构架得到如图2中所示的分布式软件定义网络控制系统,如图2中所示,网络地址转换区、负载均衡区和虚拟专用网络区均通过各自设置的一个物理网卡连接到外网网卡,并通过各自设置的另一个物理网卡连接到内网网卡,计算区和容器区均通过各自设置的一个物理网卡连接到内网网卡,裸金属区通过物理交换机连接到内网网卡。从而可使得数据包通过外网网卡到达内网网卡。
本实施例中,可选的,网可以是数据平面开发套件(Data Plane DevelopmentKit,DPDK)或智能网卡,DPDK或智能网卡可以使得数据平面具有较高的性能。
本实施例提供的分布式软件定义网络控制系统的构建方法,通过构建管理平面、控制平面和数据平面,管理平面包括多个API、与每个API对应的网络管理模块和数据库,控制平面包括SDN-API、分布式数据库和多个分布式控制器,数据平面包括网桥、与网桥连接的物理网卡和物理交换机,其中,网络管理模块用于发布多个API,在每个API被调用时创建一个网络,在创建网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括网络的网元数据,数据库用于存储网络对应的网元数据,网络管理模块还用于通过SDN-API接口向控制平面发送网元数据,分布式数据库用于存储控制平面接收到的网元数据,分布式控制器用于将分布式数据库中存储的网元数据转换为流表项,并将流表项发送至网桥或物理交换机,物理网卡在接收到数据包时,从网桥或物理交换机获取流表项,根据流表项确定数据包的流向,并根据数据包的流向转发数据包。从而,实现了分布式软件定义网络控制系统的构建,该分布式软件定义网络控制系统可以管理虚拟机、容器和裸金属作为网元的网络通信,可以支撑整个云平台,解决了云平台的网络连通性,可以支持异构环境(包括虚拟机环境、容器环境和裸金属环境)下的异构计算。
进一步地,还可以包括:
S104、构建负载均衡器,负载均衡器用于处理多个API被调用时的负载均衡。
通过构建负载均衡器,可以保证多个API在同一时间被调用时的负载均衡。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种分布式软件定义网络控制系统,其特征在于,包括管理平面、控制平面和数据平面;
所述管理平面包括多个应用程序接口API,所述管理平面用于在每个所述API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括所述网络的网元数据;
所述控制平面用于从所述管理平面获取所述网元数据,将所述网元数据转换为流表项,并将所述流表项发送至所述数据平面;
所述数据平面用于在接收到数据包时,根据所述流表项确定所述数据包的流向,并根据所述数据包的流向转发所述数据包;
其中,所述控制平面包括软件定义网络SDN-API接口、分布式数据库和多个分布式控制器,
所述分布式数据库用于存储通过所述SDN-API接口从所述管理平面接收到的所述网元数据;
所述分布式控制器用于将所述分布式数据库中存储的所述网元数据转换为所述流表项,并将所述流表项发送至所述数据平面。
2.根据权利要求1所述的系统,其特征在于,所述管理平面还包括与每个所述API对应的网络管理模块和数据库;
所述网络管理模块用于发布所述多个API,在每个所述API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括所述网络的网元数据;
所述数据库用于存储所述网络对应的网元数据;
所述网络管理模块还用于向所述控制平面发送所述网元数据。
3.根据权利要求1所述的系统,其特征在于,所述多个分布式控制器分别位于网络地址转换区、负载均衡区、虚拟专用网络区、至少一个计算区、至少一个容器区和至少一个裸金属区中,所述负载均衡区中还包括承载负载均衡的物理服务器,所述虚拟专用网络区中还包括虚拟专用网络VPN虚拟机,每个所述计算区中还包括承载虚拟机的物理服务器,每个所述容器区中还包括承载容器的物理服务器,每个所述裸金属区中还包括承载业务的物理服务器。
4.根据权利要求3所述的系统,其特征在于,所述数据平面包括所述网络地址转换区、所述负载均衡区、所述虚拟专用网络区、每个所述计算区和每个所述容器区内的网桥和与所述网桥连接的物理网卡以及每个所述裸金属区中的物理交换机;
所述网桥或所述物理交换机用于接收所述流表项;
所述物理网卡用于在接收到数据包时,从所述网桥或物理交换机获取所述流表项,根据所述流表项确定所述数据包的流向,并根据所述数据包的流向转发所述数据包。
5.根据权利要求1-4任一项所述的系统,其特征在于,还包括:
负载均衡器,所述负载均衡器用于处理所述多个API被调用时的负载均衡。
6.一种分布式软件定义网络控制系统的构建方法,其特征在于,所述方法包括:
构建管理平面,所述管理平面包括多个应用程序接口API,所述管理平面用于在每个所述API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到并存储包括所述网络的网元数据;
构建控制平面,所述控制平面用于从所述管理平面获取所述网元数据,将所述网元数据转换为流表项,并将所述流表项发送至数据平面;
构建数据平面,所述数据平面用于在接收到数据包时,根据所述流表项确定所述数据包的流向,并根据所述数据包的流向转发所述数据包;
其中,构建所述控制平面,包括:
构建软件定义网络SDN-API接口和分布式数据库,所述分布式数据库存储通过所述SDN-API接口从所述管理平面接收到的所述网元数据并且将所述分布式数据库中存储的所述网元数据转换为所述流表项,并将所述流表项发送至所述数据平面。
7.根据权利要求6所述的方法,其特征在于,所述构建管理平面,包括:
部署多个所述API;
构建与每个所述API对应的网络管理模块和数据库,所述网络管理模块用于在每个所述API被调用时创建一个网络,在创建所述网络时加入虚拟机、容器或裸金属的网络端口,得到所述网络对应的网元数据,所述数据库用于存储所述网络对应的网元数据。
8.根据权利要求6所述的方法,其特征在于,所述构建控制平面,还包括:
部署网络地址转换区、负载均衡区、虚拟专用网络区、至少一个计算区、至少一个容器区和至少一个裸金属区,在所述负载均衡区中设置承载负载均衡的物理服务器,在所述虚拟专用网络区中设置虚拟专用网络VPN虚拟机,在每个所述计算区中设置承载虚拟机的物理服务器,在每个所述容器区中设置承载容器的物理服务器,在每个所述裸金属区中设置承载业务的物理服务器;
在所述网络地址转换区、所述负载均衡区、所述虚拟专用网络区、每个所述计算区、每个所述容器区和每个所述裸金属区内均设置一个分布式控制器。
9.根据权利要求8所述的方法,其特征在于,所述构建数据平面,包括:
在所述网络地址转换区、所述负载均衡区、所述虚拟专用网络区、每个所述计算区、每个所述容器区内均设置一个网桥和与所述网桥连接的物理网卡,在每个所述裸金属区中设置物理交换机;
所述网桥或所述物理交换机用于接收所述流表项;
所述物理网卡用于在接收到数据包时,从所述网桥或物理交换机获取所述流表项,根
据所述流表项确定所述数据包的流向,并根据所述数据包的流向转发所述数据包。
10.根据权利要求6-9任一项所述的方法,其特征在于,还包括:
构建负载均衡器,所述负载均衡器用于处理所述多个API被调用时的负载均衡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110796262.3A CN113612688B (zh) | 2021-07-14 | 2021-07-14 | 分布式软件定义网络控制系统及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110796262.3A CN113612688B (zh) | 2021-07-14 | 2021-07-14 | 分布式软件定义网络控制系统及其构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612688A CN113612688A (zh) | 2021-11-05 |
CN113612688B true CN113612688B (zh) | 2023-03-24 |
Family
ID=78304630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110796262.3A Active CN113612688B (zh) | 2021-07-14 | 2021-07-14 | 分布式软件定义网络控制系统及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113612688B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553637B (zh) * | 2022-02-25 | 2024-03-19 | 华云数据控股集团有限公司 | 分布式裸金属服务器接入网络的方法及应用 |
WO2023164916A1 (zh) * | 2022-03-04 | 2023-09-07 | 新华三技术有限公司 | 一种网络设备管理方法、系统及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049358A (zh) * | 2015-06-25 | 2015-11-11 | 清华大学 | 一种sdn网络的虚拟转发平台及其通信方法 |
CN111800523A (zh) * | 2020-06-30 | 2020-10-20 | 北京金山云网络技术有限公司 | 虚拟机网络的管理方法、数据处理方法及系统 |
CN111817961A (zh) * | 2020-08-06 | 2020-10-23 | 平安科技(深圳)有限公司 | Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017199062A1 (en) * | 2016-05-17 | 2017-11-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatus for enabling live virtual machine (vm) migration in software-defined networking networks |
CN108205461A (zh) * | 2016-12-19 | 2018-06-26 | 华耀(中国)科技有限公司 | 一种混合部署的虚拟化平台及部署方法 |
CN108270728B (zh) * | 2016-12-30 | 2020-10-30 | 上海华讯网络系统有限公司 | 基于容器的混合云管理系统及方法 |
CN107329799A (zh) * | 2017-05-22 | 2017-11-07 | 国网安徽省电力公司信息通信分公司 | 一种融合Docker容器与KVM虚拟化技术的系统 |
CN107592225A (zh) * | 2017-09-13 | 2018-01-16 | 国云科技股份有限公司 | 一种融合物理机、虚拟机与容器网络设置的系统及方法 |
US10872145B2 (en) * | 2017-10-25 | 2020-12-22 | International Business Machines Corporation | Secure processor-based control plane function virtualization in cloud systems |
CN109962940B (zh) * | 2017-12-14 | 2023-10-03 | 绍兴数智科技有限公司 | 一种基于云平台的虚拟化实例调度系统及调度方法 |
CN108418705B (zh) * | 2018-01-29 | 2021-01-08 | 浪潮云信息技术股份公司 | 虚拟机与容器混合嵌套架构的虚拟网络管理方法及系统 |
CN109885377B (zh) * | 2018-11-23 | 2023-04-28 | 中国银联股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 |
US11956203B2 (en) * | 2019-04-04 | 2024-04-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Service handling in software defined networking based container orchestration systems |
US11329882B2 (en) * | 2019-04-25 | 2022-05-10 | Juniper Networks, Inc. | Multi-cluster configuration controller for software defined networks |
CN112130960A (zh) * | 2020-09-29 | 2020-12-25 | 联想(北京)有限公司 | 一种轻量化移动边缘计算节点及构建方法 |
-
2021
- 2021-07-14 CN CN202110796262.3A patent/CN113612688B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049358A (zh) * | 2015-06-25 | 2015-11-11 | 清华大学 | 一种sdn网络的虚拟转发平台及其通信方法 |
CN111800523A (zh) * | 2020-06-30 | 2020-10-20 | 北京金山云网络技术有限公司 | 虚拟机网络的管理方法、数据处理方法及系统 |
CN111817961A (zh) * | 2020-08-06 | 2020-10-23 | 平安科技(深圳)有限公司 | Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113612688A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kaur et al. | A comprehensive survey of service function chain provisioning approaches in SDN and NFV architecture | |
JP5976942B2 (ja) | ポリシーベースのデータセンタネットワーク自動化を提供するシステムおよび方法 | |
CN105531970B (zh) | 用于在网络中部署工作负荷的方法和系统 | |
US11418546B1 (en) | Scalable port range management for security policies | |
US9692707B2 (en) | Virtual resource object component | |
CN106464528B (zh) | 用于通信网络中的无接触编配的方法、介质、及装置 | |
CN110830357A (zh) | 使用高级拓扑描述的多云虚拟计算环境供应 | |
Duan et al. | A load balancing and multi-tenancy oriented data center virtualization framework | |
CN108462594B (zh) | 虚拟专有网络及规则表生成方法、装置及路由方法 | |
CN108259216A (zh) | 网络服务应用和客户意识的虚拟化网络功能放置 | |
CN107409097B (zh) | 用于负载平衡移动性的装置、介质和方法 | |
CN113612688B (zh) | 分布式软件定义网络控制系统及其构建方法 | |
US20160006642A1 (en) | Network-wide service controller | |
CN103763367A (zh) | 一种云计算数据中心分布式虚拟网络设计方法及系统 | |
CN102884763A (zh) | 跨数据中心的虚拟机迁移方法、服务控制网关及系统 | |
CN108702316A (zh) | 一种vnf的资源分配方法及装置 | |
CN108781166A (zh) | Vnfm的确定方法和网络功能虚拟化编排器 | |
Huang et al. | Converged network-cloud service composition with end-to-end performance guarantee | |
CN109743259A (zh) | 一种网络的流量调度方法及装置 | |
WO2023165137A1 (zh) | 一种跨集群的网络通信系统和方法 | |
CN113783781A (zh) | 使虚拟私有云之间网络互通的方法和装置 | |
US9166947B1 (en) | Maintaining private connections during network interface reconfiguration | |
Rahman et al. | Nutshell—Simulation toolkit for modeling data center networks and cloud computing | |
US9996335B2 (en) | Concurrent deployment in a network environment | |
CN107426109A (zh) | 一种流量调度方法、vnf模块及流量调度服务器 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |