CN111866053B - 软件定义网络控制器、方法及计算机可读存储介质 - Google Patents
软件定义网络控制器、方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111866053B CN111866053B CN201910927301.1A CN201910927301A CN111866053B CN 111866053 B CN111866053 B CN 111866053B CN 201910927301 A CN201910927301 A CN 201910927301A CN 111866053 B CN111866053 B CN 111866053B
- Authority
- CN
- China
- Prior art keywords
- network
- configuration data
- peer
- software defined
- level
- 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
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/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- 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/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
-
- 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/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
-
- 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/38—Flow based routing
-
- 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/56—Routing software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0226—Mapping or translating multiple network management protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/052—Network management architectures or arrangements using standardised network management architectures, e.g. telecommunication management network [TMN] or unified network management architecture [UNMA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- 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/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
- H04L45/037—Routes obligatorily traversing service-related nodes
- H04L45/0377—Routes obligatorily traversing service-related nodes for service chaining
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及软件定义网络控制器、方法及计算机可读存储介质。公开了用于向软件定义网络(SDN)控制器提供数据中心结构的操作的实时或接近实时可见性以确定是否正确配置DCI的技术。例如,SDN控制器接收在高抽象层描述由SDN控制器管理的网络的期望状态的高级配置数据。SDN控制器将转换功能应用于高级配置数据,以生成被配置为实现网络的期望状态的网络装置的低级配置数据。SDN控制器将SDN控制器配置为网络装置的对等体,以获得网络装置之间交换的一个或多个路由。SDN控制器向网络装置发送低级配置数据,以使网络装置实现网络的期望状态。
Description
本申请要求2019年4月26日提交的美国临时专利申请号62/839,163的权益,其全部内容通过引用结合于此。
技术领域
本公开一般涉及计算机网络,并且更具体地,涉及网络装置的管理。
背景技术
云数据中心是为异地客户提供对虚拟化应用程序、服务和数据存储访问的数据中心。在典型的云数据中心环境中,大量互连的服务器提供计算(例如,计算节点)和/或存储能力来运行各种应用程序。例如,云数据中心包括为云数据中心的客户托管虚拟化应用程序和服务的设施。
例如,云数据中心托管所有基础设施设备,例如,网络和存储***、冗余电源和环境控制。在典型的云数据中心中,存储***和应用服务器的集群经由由一层或多层物理网络交换机和路由器提供的高速网络结构互连。更复杂的云数据中心为遍布全球的基础设施提供位于各种物理托管设施中的用户支持设备。在一些实例中,云数据中心的基础设施可以包括物理装置的组合,这些物理装置可以称为“底层资源”,其链接到各种虚拟资源(例如,虚拟服务器、代理和/或策略控制器)并与之通信,这些虚拟资源可以称为“覆盖资源”。
软件定义网络(SDN)平台可用于云数据中心,并且在某些情况下,可使用逻辑上集中且物理上分布的控制器(称为“SDN控制器”)以及虚拟路由器中的分布式转发平面,虚拟路由器将网络从云数据中心中的物理路由器和交换机扩展到在虚拟服务器中托管的虚拟覆盖网络。SDN控制器提供虚拟网络的管理控制和分析功能,并通过与虚拟路由器通信来编排虚拟路由器。
网络结构中包括的各种网络装置通常包括用于本地或远程地配置这些装置的机构,例如,管理接口。通过与网络装置的管理接***互,管理员或其他用户可以执行配置任务,以配置装置,并且用户还可以在装置上执行操作命令来管理、收集和/或查看装置的操作数据。例如,用户可以配置装置的接口卡,调整所支持的网络协议的参数,指定装置内的物理组件,修改由路由器维护的路由信息,访问驻留在装置上的软件模块和其他资源,和/或执行其他配置任务。此外,用户还可以提供命令,以查看当前的操作参数、***日志、与网络连接相关的信息、网络活动或来自装置的其他状态信息,以及查看从装置接收的事件信息并对其做出反应。
发明内容
通常,本公开描述了用于控制器(例如,SDN控制器)的技术,该控制器将网络(例如,数据中心互连(DCI))的期望状态建模为高级服务配置数据模型的覆盖网络对象(在本文称为“意图”),并且被配置为网络装置的对等体以获得由网络装置交换的路由,该网络装置被配置为实现DCI。基于获得的路由,SDN控制器可以向用户呈现路由,以确定是否正确配置DCI。
在一个实例中,数据中心的租户网络可以经由DCI互连。本文描述的技术提供了一种SDN控制器,该控制器将DCI建模为高级服务配置数据模型的意图,该高级服务配置数据模型自动转换(意味着例如没有人的监督或干预)为用于配置网络装置以实现DCI的低级装置配置数据模型。当将高级服务配置数据模型转换为低级装置配置数据模型时,SDN控制器生成低级配置数据,该低级配置数据将SDN控制器配置为网络装置的对等体(例如,边界网关协议对等体),该网络装置被配置为实现DCI。被配置为实现DCI的网络装置(例如,路由器(包括虚拟路由器,其也可以称为虚拟路由功能VRF))可以交换路由(例如,边界网关协议(BGP)路由),以向包括SDN控制器的BGP对等体通告数据中心的租户网络的路由和可达性。这样,SDN控制器可以经由配置的与网络装置的对等会话来获得由网络装置交换的路由。基于获得的路由,SDN控制器可以向用户呈现路由,以确定对于DCI的意图是否被正确配置和/或所交换的路由对于DCI的路由传播是否有效。
在这方面,本文描述的技术可以提供一个或多个技术优势。例如,通过将DCI建模为意图并建立对等会话以从实现DCI的网络装置获得路由,SDN控制器可以具有关于数据中心结构如何操作的实时或接近实时的可见性(例如,数据中心的每个租户的所有覆盖路由的可见性),而不依赖于经由传统手段(例如,SNMP陷阱、装置日志等)从每个网络装置输出控制信息,传统手段比本文描述的技术更慢并且可能更麻烦(因为每个网络装置可能需要单独轮询路由)。例如,为了验证是否正确配置意图,用户不再需要从参与DCI的每个网络装置检索路由信息,例如,通过登录到每个网络装置的接口以检索路由广告,而是可以看到在网络装置交换路由时数据中心结构如何操作。此外,SDN控制器提供了数据中心结构如何操作的可见性,而数据中心结构不作为实现DCI的网络装置的控制平面操作。例如,通过保持与网络装置的控制平面操作,同时使SDN控制器能够看到控制平面操作,实现DCI的可靠性可以不被妥协。
在一个实例中,一种方法包括由软件定义网络(SDN)控制器接收在高抽象层描述由SDN控制器管理的网络的期望状态的高级配置数据。该方法还包括由SDN控制器将转换功能应用于高级配置数据,以生成针对被配置为实现网络的期望状态的网络装置的低级配置数据,其中,生成低级配置数据还包括生成低级配置数据以将网络装置配置为将SDN控制器识别为对等体,从而获得在网络装置之间交换的一个或多个路由。该方法还包括由SDN控制器向网络装置发送低级配置数据,以使网络装置实现网络的期望状态。
在另一实例中,本文描述的技术的各个方面涉及一种软件定义网络(SDN)控制器,该控制器包括:存储器;一个或多个处理器,其耦接到存储器,其中,一个或多个处理器被配置为:接收在高抽象层描述由SDN控制器管理的网络的期望状态的高级配置数据;将转换功能应用于高级配置数据,以生成针对被配置为实现网络的期望状态的网络装置的低级配置数据,其中,低级配置数据还包括针对网络装置的将SDN控制器配置为对等体以获得在网络装置之间交换的一个或多个路由的配置数据;并且向网络装置发送低级配置数据,以使网络装置实现网络的期望状态,并将SDN控制器配置为对等体以获得在网络装置之间交换的一个或多个路由。
在又一实例中,本文描述的技术的各个方面涉及一种非暂时性计算机可读存储介质,包括指令,该指令用于使一个或多个可编程处理器:接收在高抽象层描述由SDN控制器管理的网络的期望状态的高级配置数据;将转换功能应用于高级配置数据,以生成针对被配置为实现网络的期望状态的网络装置的低级配置数据,其中,低级配置数据还包括针对网络装置的将SDN控制器配置为对等体以获得在网络装置之间交换的一个或多个路由的配置数据;并且向网络装置发送低级配置数据,以使网络装置实现网络的期望状态,并将SDN控制器配置为对等体以获得在网络装置之间交换的一个或多个路由。
在附图和以下描述中阐述本公开的技术的一个或多个实例的细节。通过说明书和附图以及权利要求书,这些技术的其他特征、目的和优点将变得显而易见。
附图说明
图1是示出根据本文描述的技术的各个方面的示例性网络***的框图,该示例性网络***具有SDN控制器,该SDN控制器将网络的期望状态建模为高级服务配置数据模型的意图并且被配置为网络装置的对等体以获得由网络装置交换的路由,该网络装置被配置为实现网络的期望状态;
图2是更详细地示出根据本文描述的技术的图1的数据中心的示例性实现的框图;
图3是示出根据本公开中描述的技术的SDN控制器的示例性实例的框图;
图4是更详细地示出根据本公开中描述的技术的图3的示例性数据中心互连对象的概念图;
图5是示出根据本公开中描述的技术的SDN控制器的示例性操作的流程图。
在所有附图和描述中,相同的附图标记表示相同的元件。
具体实施方式
图1是示出可以实现本文描述的技术的实例的示例性网络***2的框图。网络***2包括彼此互连并且经由服务提供商网络8和与客户4相关联的客户网络互连的数据中心10A-10X(统称为“数据中心10”)。在一些实例中,每个数据中心10可以表示许多地理上分布的网络数据中心中的一个。通常,每个数据中心10为通过服务提供商网络8耦接到数据中心的客户4的应用程序和服务提供操作环境。例如,数据中心10可以托管基础设施设备,例如,网络和存储***、冗余电源和环境控制。服务提供商网络8可以耦接到由其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,互联网)的一部分。
客户4可以是集体类别,例如,企业和政府或个人。例如,一个网络数据中心可以为几个企业和最终用户托管网络服务。其他示例***可以包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些实例中,每个数据中心10可以是单独的网络服务器、网络对等体等。
在这个实例中,每个数据中心10包括一组存储***和应用服务器12A-12N(本文称为“服务器12”),其经由由一层或多层物理网络交换机和路由器提供的高速交换结构14互连。服务器12用作数据中心的物理计算节点。在一些实例中,术语“计算节点”和“服务器”在本文可互换使用,以表示服务器12。例如,每个服务器12可以提供操作环境,用于执行一个或多个特定于客户的虚拟机(“VM”)。交换结构14由一组互连的架顶(TOR)交换机16A-16N(统称为“TOR交换机16”)提供,这些交换机耦接到机箱交换机18A-18N(统称为“机箱交换机18”)的分布层。虽然未示出,但是每个数据中心10还可以包括例如一个或多个非边缘交换机、路由器、集线器、诸如防火墙、入侵检测和/或入侵防御装置的安全装置、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理等无线移动装置、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络装置。
在这个实例中,TOR交换机16和机箱交换机18向服务器12提供到IP结构20和服务提供商网络8的冗余(多宿)连接。机箱交换机18聚合流量流,并在TOR交换机16之间提供高速连接。TOR交换机16可以是提供第二层(例如,媒体访问控制(MAC))和/或第三层(例如,IP)路由和交换功能的网络装置。TOR交换机16和机箱交换机18可以各自包括一个或多个处理器和存储器,并且处理器能够执行一个或多个软件进程。机箱交换机18耦接到IP结构20,该结构执行第3层路由,以经由服务提供商网络8在数据中心10和客户装置4之间路由网络流量。
网关装置22可以表示路由器、交换机或参与第2层虚拟专用网络(“L2VPN”)服务的其他合适的边缘网络装置,例如,EVPN。网关装置22重定向去往和来自提供网络服务的数据中心10的流量。例如,网关装置22可以实现EVPN,EVPN使用第2层覆盖来互连数据中心10A的服务器12内的多个边缘(例如,虚拟机)。网关装置22还可以为数据中心10A的租户网络(例如,虚拟网络)提供到一个或多个远程数据中心(例如,数据中心10B-10X)的租户网络的连接。例如,网关装置22可以向远程数据中心10B的网关装置提供传输可达性。作为一个实例,网关装置22可以实现通信协议,例如,多协议边界网关协议(MP-BGP)或互联网协议虚拟专用网络(IP VPN),以将数据中心10A的租户网络的可达性传送到远程数据中心的网关装置。在数据中心10之间的租户网络上提供连接的能力称为“数据中心互连”。
数据中心10可以包括软件定义网络(“SDN”)平台,以控制和管理网络行为。在一些情况下,SDN平台包括逻辑上集中和物理上分布的SDN控制器(例如,SDN控制器28)以及虚拟路由器形式的分布式转发平面,例如,虚拟路由器13A-13N(统称为“虚拟路由器13”或“VR13”),虚拟路由器将网络从数据中心交换结构中的物理路由器和交换机扩展到虚拟服务器中托管的虚拟覆盖网络。例如,虚拟路由器13可以在同一物理主机(例如,服务器)上的不同虚拟机之间和/或虚拟机和物理网络(例如,交换结构14、IP结构20)之间转发流量。尽管被示为虚拟路由器,但是服务器12可以替代地或额外地包括用于路由网络流量的虚拟交换机或任何虚拟网络装置。可以使用各种技术通过物理网络在虚拟网络内部和之间传输分组。数据中心的网络装置可以例如使用一个或多个协议来使能够在虚拟网络和物理网络之间通信。例如,一个或多个协议可以包括以太网虚拟专用网(EVPN)。
SDN控制器28促进操作每个数据中心10(例如,数据中心10A)内的一个或多个虚拟网络。虚拟网络是在数据中心的物理网络之上实现的逻辑结构。在一些实例中,虚拟网络可以实现为虚拟专用网络(VPN)、虚拟局域网(VLAN)等。在一些实例中,SDN控制器28可以响应于从编排引擎(例如,编排引擎26)接收的配置输入而操作,编排引擎26又响应于从用户(例如,网络管理员24)接收的配置输入而操作。代表性编排器包括Openstack、Kubernetes、Openshift和vCenter。关于与数据中心10A的其他装置或其他软件定义的网络一起操作的SDN控制器28的额外信息可见于2013年6月5日提交的题为“PHYSICAL PATH DETERMINATIONFOR VIRTUAL NETWORK PACKET FLOWS”的国际申请号PCT/US2013/044378,该申请通过引用结合于此,如同在此完全阐述一样。
在一些实例中,编排引擎26管理数据中心10的应用层功能,例如,管理在服务器12上执行的计算、存储、网络和应用资源。例如,编排引擎26可以将虚拟机(VM)连接到租户的虚拟网络,并且通常根据需要管理VM的启动、迁移和解构。每个虚拟机可以称为虚拟化应用工作负载(或仅仅是应用工作负载),并且通常表示虚拟化执行元素,例如,VM或容器。编排引擎26可以将租户的虚拟网络连接到某个外部网络,例如,互联网或VPN。
在一些实例中,SDN控制器28是低级控制器,其任务是管理数据中心10A的网络和网络服务,并且特别是提供服务器12之间的连接的交换结构14。SDN控制器28利用一组协议来配置和控制交换结构14的路由和交换元素,以创建例如覆盖网络,该覆盖网络通常指一组隧道,用于向数据中心10A内的服务器12传送分组和从服务器12传送分组。
如上所述,DCI可以在数据中心之间的租户网络上提供连接。在某些情况下,每个数据中心的网络装置(例如,网关装置)被单独配置为实现DCI。为了监视实现DCI的网络装置的控制平面信息,用户(例如,网络管理员)在一些情况下可以经由SNMP陷阱、装置日志等,经由界面(例如,命令行界面(“CLI”))从每个网络装置访问控制平面信息。以这种方式监视网络装置在操作上既麻烦又耗时,并且不能提供数据中心结构的控制平面操作的实时或接近实时的可见性,因为网络管理员可能必须单独访问参与DCI的每个网络装置,以获得实现DCI的所有配置信息。在某些情况下,SDN控制器可以作为实现DCI的网络装置的控制平面来操作,以便能够看到DCI的控制平面操作。然而,在这些情况下,实现DCI的可靠性会降低。
根据本文描述的技术,SDN控制器28可以提供支持DCI的数据中心结构的操作的实时或近实时可见性,而不作为被配置为实现DCI的数据中心结构内的网络装置的控制平面操作。例如,SDN控制器28可以将DCI建模为高级服务配置数据模型的意图,并且当将该意图转换为低级装置配置数据模型时,SDN控制器28生成低级配置数据,该低级配置数据将SDN控制器配置为被配置为实现DCI的网络装置的对等体(例如,BGP对等体)以获得由网络装置交换的路由。基于获得的路由,SDN控制器28可以向用户呈现路由,以确定是否正确配置DCI和/或交换的路由对于DCI的路由传播是否有效。
例如,管理员24可以例如经由命令行界面访问SDN控制器28,以将数据中心互连定义为高级服务配置数据模型的网络覆盖对象,从而连接数据中心10A和10B的租户网络。在一个实例中,SDN控制器28可以将DCI建模为高级服务配置数据模型中的意图,例如,高级业务规则(例如,“通过链路c发送去往端点b的业务类型a”)。
在一些实例中,高级服务配置数据模型可以表示为一组结构化的参数,例如,又一下一代(Yet Another Next Generation(YANG)),如在Bjorklund“YANG–A Data ModelingLanguage for the Network Configuration Protocol(NETCONF)”中所述,互联网工程任务组,RFC 6020,2010年10月,可在tools.ietf.org/html/rfc6020上获得。在其他实例中,高级服务配置数据模型可以表示为可扩展标记语言(XML)模式。然而,网络装置不需要支持YANG或其他结构化输入模式。相反,转换功能被配置为将输入的高级服务配置数据模型转换成相应网络装置所需的指令。转换功能的额外实例见于2016年6月30日提交的美国申请15/198,657和美国申请16/221,698,这两个申请的全部内容通过引用结合于此。
SDN控制器28可以实现转换功能,以将DCI的高级服务配置数据模型转换成描述数据中心10的网络装置如何实现DCI的低级装置配置数据模型(例如,规则/策略),并且如下文进一步描述的,当转换数据模型时,将SDN控制器28配置为网络装置的对等体(例如,BGP对等体),以获得由网络装置交换的路由。在一些实例中,低级装置配置数据模型可以表示为用于执行特定或狭窄的一组功能的Python或Perl脚本。在其他实例中,可以使用更复杂的自动化工具,例如,Ansible(在https://docs.ansible.com发现)和Puppet。Ansible是一个依赖于剧本(playbook)来定义任务序列的供应、配置和部署工具。Ansible使用剧本来经由一种名为YAML的人性化数据序列化语言,将自动化作业描述为任务。YAML是配置文件常用的标准化语言。然而,YAML可以用在存储数据的任何应用程序中。YAML对人类来说很容易理解、阅读和书写,并且可以方便地用在像Ansible这样的应用程序中来描述和记录剧本。Puppet是一个配置管理工具,用于简化将IT基础设施定义为代码和***配置的实施。
作为一个实例,SDN控制器28可以将高级服务配置数据模型(例如,表示为YANG参数)转换成低级装置配置数据模型(例如,Ansible剧本),其指示网络装置(例如,服务器12、TOR交换机16、机箱交换机18和/或网关装置22)如何实现DCI。在一个实例中,低级装置配置数据模型可以指示网关装置22实现一个或多个通信协议,例如,多协议边界网关协议(MP-BGP)或互联网协议VPN(IPVPN),这些通信协议用于将数据中心10A的租户网络的路由和可达性信息与远程数据中心(例如,数据中心10B)的网络装置进行通信。低级装置配置数据模型还可以指示网络装置(例如,服务器12A)将流量隧道传输到网关装置22A,使得服务器12A的虚拟机可以与远程数据中心(例如,数据中心10B)的租户网络通信。
当将高级服务配置数据模型转换为低级装置配置数据模型时,SDN控制器28为网络装置生成低级配置数据,以将SDN控制器28配置为对等体。例如,在EVPN中,L2地址学***面,而不是使用路由协议的数据平面。例如,在EVPN中,网关装置22(和其他网络装置)通常使用BGP或MP-BGP(即,L3路由协议)来通告EVPN的可达性信息(例如,在BGP更新消息的网络层可达性信息(NLRI)字段中),例如,网关装置22已经从一个或多个客户边缘装置(例如,服务器12的虚拟机)获知的MAC地址。网关装置22可以与远程数据中心10B的网络装置(例如,网关装置)交换MP-BGP路由,以提供跨数据中心10A和10B的租户网络上的连接。当将高级服务配置数据模型转换成低级装置配置数据模型时,SDN控制器28可以生成低级配置数据,该低级配置数据配置实现DCI的网络装置,以将SDN控制器28识别为对等体(或对等会话的参与者)。用于SDN控制器28的对等模块29可以建立对等会话(例如,BGP会话),以获得并且在一些情况下存储由实现DCI的数据中心10A和数据中心10B的网络装置交换的路由。SDN控制器28可以向用户呈现路由,以确定是否正确配置意图和/或交换的路由对于DCI的路由传播是否有效。
以这种方式,SDN控制器28可以具有基于实现DCI的意图而配置的数据中心10的网络装置的控制平面操作的实时或接近实时的可见性,而不依赖于经由传统手段(例如,SNMP陷阱、装置日志等)输出控制信息,传统手段比本文描述的技术更慢并且可能更麻烦(因为每个网络装置可能需要单独轮询路由)。例如,为了验证是否正确配置意图,用户不再需要从参与DCI的每个网络装置检索路由信息,例如,通过登录到每个网络装置的接口以检索路由广告,而是可以看到在网络装置交换路由时数据中心结构如何操作。此外,SDN控制器在不作为实现DCI的网络装置的控制平面操作的情况下,提供了数据中心结构如何操作的可见性。例如,通过保持与网络装置的控制平面操作,同时使SDN控制器能够看到控制平面操作,实现DCI的可靠性不会降低。
图2是进一步详细示出图1的数据中心10A的示例性实现的框图。在图2的实例中,数据中心10A包括将交换结构14从物理交换机16、18扩展到虚拟路由器13的互连。虚拟路由器13动态创建和管理可用于在应用实例之间通信的一个或多个虚拟网络34。作为一个实例,虚拟路由器13将虚拟网络作为覆盖网络执行,这提供了将应用程序的虚拟地址与应用程序正在其上执行的一个服务器12A-12N(“服务器12”)的物理地址(例如,IP地址)解耦的能力。每个虚拟网络可以使用其自己的寻址和安全方案,并且可以被视为与物理网络及其寻址方案正交。
每个虚拟路由器13可以在管理程序、主机操作***或每个服务器12的其他组件中执行。每个服务器12可以表示x86或能够执行VM 36的其他通用或专用服务器。在图2的实例中,虚拟路由器13A在***管理程序31内执行,***管理程序31通常也称为虚拟机管理器(VMM),其提供允许多个操作***在一个服务器12上同时运行的虚拟化平台。在图2的实例中,虚拟路由器13A管理虚拟网络34,每个虚拟网络34提供用于在由管理程序31提供的虚拟化平台之上执行一个或多个虚拟机36(VM 36)的网络环境。每个VM 36与虚拟网络VN0-VN2中的一个相关联,并且可以表示运行诸如网络服务器、数据库服务器、企业应用或用于创建服务链的托管虚拟化服务等客户应用的租户VM。在一些情况下,任意的一个或多个服务器12或另一计算装置可以直接托管客户应用,即,不作为虚拟机。在一些情况下,一些VM 36可以表示容器,即另一种形式的虚拟化执行环境。也就是说,虚拟机和容器都是用于执行应用工作负载的虚拟化执行环境的实例。
通常,每个VM 36可以是任何类型的软件应用,并且可以被分配虚拟地址以在对应的虚拟网络34内使用,每个虚拟网络可以是由虚拟路由器13A提供的不同虚拟子网。VM 36可以被分配其自身的虚拟第三层(L3)IP地址,例如,用于发送和接收通信,但是可能不知道虚拟机正在其上执行的物理服务器12A的IP地址。以这种方式,“虚拟地址”是应用程序的地址,其不同于底层物理计算机***(例如,图1或图2的实例中的服务器12A)的逻辑地址。
在一个实现方式中,每个服务器12包括虚拟网络(VN)代理35A-35N(统称为“VN代理35”)中的对应一个,其控制虚拟网络34并协调服务器12内的数据分组的路由。通常,每个VN代理35与SDN控制器28通信,SDN控制器28生成命令来控制通过数据中心10A的分组的路由。VN代理35可以操作为虚拟机36和SDN控制器28之间的控制平面消息的代理。例如,VM 36可以请求经由VN代理35A使用其虚拟地址发送消息,VN代理35A进而可以发送该消息,并请求接收对发起第一消息的VM 36的虚拟地址的消息响应。在一些情况下,VM 36可以调用由VN代理35A的应用编程接口呈现的过程或函数调用,并且VN代理35A也可以处理消息的封装,包括寻址。
在一个实例中,由虚拟网络域内的虚拟机36执行的应用程序的实例生成或消费的网络分组(例如,第三层(L3)IP分组或第二层(L2)以太网分组)可以封装在由物理网络传输的另一分组(例如,另一IP或以太网分组)中。在虚拟网络中传输的分组在本文可以称为“内部分组”,而物理网络分组在本文可以称为“外部分组”或“隧道分组”。物理网络分组内的虚拟网络分组的封装和/或解封装可以在虚拟路由器13内执行,例如,在运行于每个服务器12上的管理程序或主机操作***内执行。作为另一实例,封装和解封装功能可以在第一跳TOR交换机16处的交换结构14的边缘执行,第一跳TOR交换机16是从发起分组的应用实例中移除的一跳。该功能在本文称为隧穿,并且可以用在数据中心10A内以创建一个或多个隧道,以用于互连不同类型的应用工作负载(例如,VM)。隧穿协议可以包括IP-in-IP、通用路由封装(GRE)的IP、虚拟可扩展局域网(VxLAN)、GRE上的多协议标签交换(MPLS)、用户数据报协议(UDP)上的MPLS以及其他隧穿协议。
如上所述,SDN控制器28提供逻辑上集中的控制器,用于促进数据中心10A内的一个或多个虚拟网络的操作。SDN控制器28可以例如维护路由信息库,例如,存储物理网络以及数据中心10A的一个或多个网络的路由信息的一个或多个路由表。类似地,物理交换机16、18和虚拟路由器13维护路由信息,例如,一个或多个路由和/或转发表。在一个示例性实现中,管理程序31的虚拟路由器13A为每个虚拟网络34实现网络转发表(NFT)32。通常,每个NFT32存储对应虚拟网络34的转发信息,并识别数据分组要被转发到哪里以及是否将用诸如隧道报头将分组封装在隧穿协议中,该隧道报头可以包括虚拟网络协议栈的不同层的一个或多个报头。
根据本文描述的技术,SDN控制器28被配置为将DCI建模为高级服务配置数据模型的意图,并且当将高级服务配置数据模型转换为低级装置配置数据模型时,SDN控制器28生成低级配置数据,该低级配置数据将SDN控制器28配置为网络装置的对等体,该网络装置被配置为实现DCI。例如,用户(例如,图1的管理员24)可以定义高级服务配置数据模型,以实现将数据中心10A的租户网络(例如,虚拟网络34)连接到远程数据中心(例如,数据中心10B)的租户网络(例如,虚拟网络)的DCI。
SDN控制器28可以将DCI的高级服务配置数据模型(例如,高级业务规则)转换成低级装置配置数据模型(例如,低级规则/策略)。SDN控制器28可以将低级配置数据推送到网络装置(例如,网关装置22、物理交换机16、18和/或虚拟路由器13),以实现DCI。例如,SDN控制器28可以使用消息通信协议,例如,可扩展消息和存在协议(XMPP),以将低级配置数据作为XMPP消息37发送到VN代理35A,以使服务器12A为数据中心10A的租户网络(例如,虚拟网络34)配置虚拟路由器,例如,虚拟路由器13A。低级配置数据可以进一步指示虚拟路由器13A实现协议,以通过隧道从虚拟路由器向网关装置22发送去往远程数据中心10B的租户网络的流量,网关装置22又与远程数据中心10B的网络装置通信。
SDN控制器28还可以使用NETCCONF在NETCCONF消息38中向物理装置(例如,网关装置22)发送低级配置数据,这使网关装置22实现DCI,以将数据中心10A的租户网络(例如,虚拟网络34)连接到远程数据中心10B的租户网络。例如,低级配置数据可以使网关装置22实现通信协议(例如,MP-BGP),以通告租户网络的路由和可达性(例如,通过BGP更新消息的NLRI)。在其他实例中,网关装置22可以实现IP VPN,以通告租户网络的路由和可达性信息。在一些实例中,SDN控制器28可以调用Ansible剧本,该Ansible剧本使用低级配置数据作为属性,以解析成配置数据,该配置数据注入到NETCONF兼容装置,例如,网关装置22。
当将高级服务配置数据模型转换为低级装置配置数据模型时,SDN控制器28可以生成低级配置数据,该低级配置数据将SDN控制器28配置为网络装置的对等体,该网络装置被配置为实现DCI。例如,低级配置数据可以配置实现DCI的网络装置,以将SDN控制器28识别为对等体(或对等会话的参与者)。SDN控制器28的对等模块29可以与网络装置建立对等会话,以获得并且在一些情况下存储由数据中心10A的网络装置和远程数据中心10B的网络装置交换的路由42。路由42可以包括EVPN的路由和可达性信息,例如,网关装置22已经从客户边缘装置(例如,服务器12的虚拟机36)获知的MAC地址。对等模块29可以将获得的路由42呈现给用户,以确定是否正确配置意图和/或交换的路由对于DCI的路由传播是否有效。
图3是示出根据本公开中描述的一种或多种技术的软件定义网络(SDN)控制器28的示例性实例的框图。SDN控制器28是网络的逻辑上集中的但在某些情况下物理上分布的控制器,其可以被配置为管理一个或多个网络装置的配置,例如,图1的服务器12、TOR交换机16、机箱交换机18和网关装置22。图3的SDN控制器28可以表示图1至图2的SDN控制器28的示例性实例。
SDN控制器28可以包括处理电路75。处理电路75可以包括一个或多个处理器,其被配置为实现用于在SDN控制器28内执行的功能和/或处理指令。例如,处理电路75可以包括例如微处理器、DSP、ASIC、FPGA或等效的分立或集成逻辑电路、或者任何前述装置或电路的组合。
为了便于说明,未示出SDN控制器28的一些组件。这些组件可以包括执行SDN控制器28的模块的硬件和指令。在图3的实例中,SDN控制器28呈现北向接口72,该接口与编排器(例如,图1的编排引擎26)、管理员(例如,图1的管理员24)或其他实体接合,以使用高级服务配置数据模型(例如,服务数据模型74)安装配置状态。更具体地,可以调用北向接口72,以修改配置状态78(“配置状态78”),或提取描述服务数据模型74的SDN控制器28的操作状态80。北向接口72可用于与编排***(例如,OpenStack)集成;北向接口72也可以或可替代地被其他应用程序或运营商的运营支持***(OSS)/业务支持***(BSS)使用。北向接口72在某些情况下可以呈现RESTful应用程序编程接口(API)。
服务数据库76在正式服务数据模型74中存储表示实例化服务的对象。正式服务数据模型74是用于描述需要实现的服务的高级服务配置数据模型;每个高级服务数据模型具有相关联的描述这些服务需要如何实现的低级装置配置数据模型,例如,技术数据模型90。每个数据模型由一组对象、其能力及其间的关系组成。
转换引擎86将服务数据库76中的服务对象从高级服务数据模型74转换成技术数据模型90中的对应的低级对象。转换引擎86可以包括模式转换器(图3中未示出),其将高级概念转换成可以由网络实现的低级对象。例如,模式转换器为虚拟网络分配一个或多个路由实例对象。在这个意义上,转换引擎86作为编译器来操作,以将服务数据模型74转换成技术数据模型90。即,转换引擎86可以将服务数据模型74“映射”到技术数据模型90,以描述如何实现高级服务数据模型中描述的服务。尽管高级服务数据模型74描述了先前请求和实例化的服务或者在SDN控制器28的控制下被处理以最终实例化的服务,但是低级技术数据模型90描述了这些服务是如何在网络内实现或者将要如何在网络内实现,如配置数据库92所示。
配置数据库92可以包括例如描述数据中心互连的一个或多个对象或者至少部分实现服务数据库76中的服务的流量工程标签交换路径或隧道。配置数据库92还包括由SDN控制器28管理的网络的网络资源(例如,数据中心10A的网络装置(例如,网关装置22))的标识符。技术数据模型90包括描述网元的相应配置(例如,路由实例和转发策略)的配置状态94以及描述网元的相应操作特性(例如,负载、可用带宽等)的操作状态96。
换言之,高级服务数据模型74使用直接映射到提供给终端用户的服务的对象(例如,虚拟网络(例如,虚拟覆盖网络)、连接策略(例如,工作负载和端点(例如,VM或裸机服务器)之间的连接)或安全策略,在非常高的抽象层描述在SDN控制器28控制下的网络的期望状态。另一方面,低级技术数据模型90使用映射到特定网络协议结构(例如,路由实例、路由会话(例如,BGP会话)、路由等)的对象,在非常低的抽象层描述网络的期望状态。
南向接口100执行一个或多个南向协议102A-102N(统称为“南向协议102”),利用这些协议,SDN控制器28可以从SDN控制器28获得配置状态94和操作状态96,并在SDN控制器28的控制下将配置状态94和操作状态96注入到网段中,其中,配置状态94和操作状态96存储可被南向协议102理解并映射到南向协议102的结构的对象。例如,SDN控制器28可以包括到元数据接入点(IF-MAP)服务器的接口,该接口提供南向API,以将计算的低级配置数据推送到实现控制平面的逻辑上集中部分的控制单元/节点(图3中未示出)。以这种方式,SDN控制器28可以使在SDN控制器28的控制下的网络的状态与SDN控制器28经由北向接口72接收到的并由服务数据模型74表示的网络的期望状态相匹配。
南向协议102可以包括用于路径供应以及拓扑发现的协议。例如,南向协议102可以包括MP-BGP或IP VPN,以监听网络装置交换的路由信息。南向协议102还可以包括控制数据中心中的网络装置的协议,例如,JSON或JSON-RPC和/或NETCONF/YANG。南向协议102还可以包括其他协议,例如,路径计算元件(PCE)通信协议(PCEP)、具有流量工程扩展的开放最短路径优先(OSPF-TE)、具有流量工程扩展的中间***到中间***(ISIS-TE)、BGP链路状态(BGP-LS)、到路由***的接口(I2RS)协议、网元的CLI和SNMP。
根据本公开的技术,SDN控制器28可以将DCI建模为存储在服务数据库76中的覆盖网络对象(图3中示为“DCI对象77”)。转换引擎86将服务数据库76中的DCI对象77从高级服务数据模型74转换成技术数据模型90中的对应低级对象,该技术数据模型描述了如何实现DCI,如配置数据库92中所表示的。在该实例中,配置数据库92可以包括映射到数据中心互连的特定网络协议结构的对象。
在一个实例中,转换引擎86可以实现转换功能,以将DCI对象77从高级服务数据模型74转换成技术数据模型90中的低级对象。例如,转换引擎86可以将DCI对象77转换成构造为NETCONF消息的低级对象,并将这些对象存储在配置数据库92中。在一个实例中,转换功能可以实现Ansible,该Ansible使用低级对象作为属性,以解析成配置信息,该配置信息注入到NETCONF兼容装置(例如,数据中心10A的网关装置22)。更具体地,SDN控制器28可以配置在一个或多个网络装置(例如,网关装置22)上操作的低级装置配置数据模型(例如,Ansible剧本)。每个低级装置配置数据模型指定任务在其上操作的网关装置22、要在网关装置22上执行的任务列表以及任何所需的变量或模块参数。这些模块可以包括配置指令,以用于管理网关装置22的配置信息,指定从网关装置22到远程装置建立连接时要使用的端口,管理网关装置22的第2层(L2)和/或第3层(L3)接口,管理网关装置22上的VLAN,并且还包括其他配置指令。SDN控制器28然后可以在SDN控制器28的控制下将配置数据库92和配置状态94中的低级对象注入到网段中,以创建数据中心互连所需的连接和执行。SDN控制器28可以使用一个或多个南向协议102在配置数据库92和配置状态94中注入低级对象。例如,SDN控制器28可以使用例如一个南向协议102来实现NETCONF,以在网关装置22中的配置数据库92和配置状态94中注入低级对象,基于实现DCI对象77中定义的DCI的意图来配置网关装置22。
当将服务数据模型74转换成技术数据模型90时,SDN控制器28可以生成低级配置数据,以在实现DCI的网络装置内配置,从而将SDN控制器识别为对等体(或BGP会话的参与者)。对等模块88可以与网络装置建立对等会话,以获得在被配置为实现DCI的网络装置之间交换的路由。例如,在网络装置被配置为实现DCI之后,网络装置可以交换路由,例如,MP-BGP路由,以通告数据中心的租户网络的路由和可达性。作为BGP对等体,网络装置可以向SDN控制器28发送路由。SDN控制器28的对等模块88可以获得并且在一些情况下存储这些路由。对等模块88可以将获得的路由呈现给用户,以确定意图是否正确配置和/或交换的路由对于DCI的路由传播是否有效。
图4是更详细地示出根据本公开中描述的技术的图3的示例性数据中心互连对象的概念图。参考图1至图3描述图4的DCI对象77。
如上所述,用户可以在非常高的抽象层定义网络的期望状态。例如,用户可以使用SDN控制器28来定义数据中心10A的租户网络404A和远程数据中心10B的租户网络404B之间的数据中心互连。SDN控制器28可以将数据中心互连建模为DCI对象77。在图4的实例中,DCI对象77可以映射为数据中心10A的租户网络404A和远程数据中心10B的租户网络404B提供连接的数据中心互连402。SDN控制器28可以将DCI对象77映射为网络覆盖对象。
如上所述,SDN控制器的转换引擎(例如,图3的转换引擎86)可以将DCI对象77转换成描述如何实现数据中心互连402的对应的低级数据模型。例如,SDN控制器28可以将DCI对象77转换成低级数据模型,该模型包括实现数据中心互连402的网络装置(例如,虚拟路由器13A、13A’、网关装置22、22’)的标识符、实现数据中心互连402的网络装置的配置(例如,路由实例和转发策略)以及网络装置的操作特性,例如,负载、可用带宽等。在图4的实例中,DCI对象77转换成低级对象,该低级对象可以包括将数据中心10A的虚拟路由器13A配置为作为租户网络404A的路由器操作并且将数据中心10B的虚拟路由器13A’配置为作为租户网络404B的路由器操作的信息。低级对象还可以包括配置信息,以配置租户网络404A和404B之间的互连。例如,低级对象可以包括网关装置22和22’的配置信息,以使网关装置实现通信协议,例如,MP-BGP,以分别传送虚拟路由器13A和13A’的路由和可达性信息。
在一个实例中,转换功能可以实现Ansible,Ansible使用低级对象作为属性,以解析成配置信息,该配置信息注入到NETCONF兼容装置(例如,网关装置22和22’)。每个低级装置配置数据模型(例如,Ansible剧本)为任务在其上操作的网关装置22和22’指定了要在网关装置上执行的任务列表以及任何所需的变量或模块参数。这些模块可以包括配置指令,以用于管理网关装置22和22’的配置信息,指定在网关装置22和22’之间建立连接时要使用的端口,管理网关装置22和22’的第2层(L2)和/或第3层(L3)接口,并且还包括其他配置指令。这些模块还可以包括配置指令,用于配置网关装置22和22’,以将SDN控制器28识别为对等体(或BGP会话的参与者)。SDN控制器28可以与网关装置22和22’建立对等会话,以获得在被配置为实现DCI的网关装置22和22’之间交换的路由。例如,在网关装置22和22’被配置为实现DCI之后,网络装置可以交换路由,例如,MP-BGP路由,以通告数据中心的租户网络的路由和可达性。作为BGP对等体,网关装置22和22’可以向SDN控制器28发送路由。SDN控制器28可以获得并且在某些情况下存储这些路由。SDN控制器28可以将获得的路由呈现给用户,以确定意图是否被正确配置和/或交换的路由对于DCI的路由传播是否有效。
图5是示出根据本公开技术的SDN控制器的示例性操作的流程图。为了方便起见,参考图1、图2和图3描述了图5。在图5的实例中,SDN控制器28可以接收在高抽象层描述网络的期望状态的高级配置数据(502)。例如,用户(例如,图1的管理员24)可以定义用于连接远程数据中心(例如,数据中心10A和10B)的租户网络的数据中心互连。SDN控制器28可以将DCI建模为高级服务配置数据模型的意图(例如,图4的DCI对象77)。
SDN控制器28可以将转换功能应用于高级配置数据,以生成被配置为实现网络的期望状态的网络装置的低级配置数据,其中,低级配置数据还包括用于网络装置的配置数据,以将SDN控制器配置为对等体,从而获得在网络装置之间交换的一个或多个路由(504)。例如,SDN控制器28的转换引擎可以将高级服务配置数据模型(例如,DCI模型77)“映射”到低级装置配置数据模型,以描述高级服务数据模型中描述的服务(例如,DCI)将如何在网络内实现。装置配置数据模型使用映射到特定网络协议结构的对象(例如,路由实例),在非常低的抽象层描述网络的期望状态。
当将高级配置数据转换为低级配置数据时,低级配置数据还可以包括网络装置的配置数据,以将SDN控制器配置为网络装置的对等体(或对等会话的参与者),从而获得网络装置之间交换的一个或多个路由。例如,当将高级服务配置数据模型转换成低级装置配置数据模型时,网络装置被配置为将SDN控制器28识别为对等体,使得SDN控制器可以经由网络装置交换的路由获得DCI的控制平面信息。在EVPN中,网关装置22通常使用BGP或MP-BGP(即L3路由协议)来通告EVPN的可达性信息,例如,网关装置22已经从客户边缘装置(例如,服务器12的虚拟机)获知的MAC地址。SDN控制器28可以包括对等模块29,以获得在数据中心10A的网关装置22和远程数据中心10B的网络装置之间交换的路由。
SDN控制器28向网络装置发送低级配置数据,以使网络装置实现网络的期望状态,并将SDN控制器配置为对等体(506)。例如,SDN控制器28的转换引擎86可以将DCI对象77转换成构造为NETCONF消息的低级对象,并将这些对象存储在配置数据库92中。在一个实例中,转换功能可以实现Ansible,Ansible使用低级对象作为属性,以解析成配置信息,该配置信息注入到NETCONF兼容装置(例如,数据中心10A的网关装置22)。每次播放都指定任务在其上操作的网络装置、要在网络装置上执行的任务列表以及任何所需的变量或模块参数。这些模块可以包括配置指令,以用于管理网关装置的配置信息,指定在网络装置之间建立连接时使用的端口,管理网络装置的第2层(L2)和/或第3层(L3)接口,管理网络装置上的VLAN,并且还包括其他配置指令。然后,在SDN控制器28的控制下,SDN控制器28可以将配置数据库92和配置状态94中的低级对象注入到网段中,以创建所需的连接和数据中心互连的执行。SDN控制器28可以使用一个或多个南向协议102在配置数据库92和配置状态94中注入低级对象。例如,SDN控制器28可以使用例如一个南向协议102来实现NETCONF,以在网关装置22中的配置数据库92和配置状态94中注入低级对象,该网关装置22基于实现DCI的意图来配置。
SDN控制器可以与实现网络的期望状态的网络装置建立对等会话(508)。例如,SDN控制器28的对等模块29可以与实现DCI的网络装置建立对等会话,例如,BGP会话。SDN控制器28可以经由对等会话获得在被配置为实现网络的期望状态的网络装置之间交换的一个或多个路由(510)。如上所述,网络装置可以交换通告路由和可达性信息的路由。SDN控制器28可以包括对等模块29,用于与网络装置对等,以获得在网络装置之间交换的路由。
SDN控制器28可以向用户呈现获得的一个或多个路由(512)。例如,SDN控制器28可以通过界面(例如,图形用户界面)向用户呈现所获得的一个或多个路由,以确定高级配置数据是否正确配置。
本公开中描述的技术可以至少部分地在硬件、软件、固件或其任意组合中实现。例如,所描述技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或分立逻辑电路以及这些组件的任何组合。术语“处理器”或“处理电路”通常可以指任何前述逻辑电路,单独或与其他逻辑电路或任何其他等效电路相结合。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这种硬件、软件和固件可以在同一装置内或在单独的装置内实现,以支持本公开中描述的各种操作和功能。此外,任何所描述的单元、模块或组件可以一起或单独实现为分立但可互操作的逻辑装置。将不同特征描述为模块或单元,旨在突出不同的功能方面,并不一定意味着这些模块或单元必须通过单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件来执行,或者集成在公共或单独的硬件或软件组件内。
本公开中描述的技术也可以在包含指令的计算机可读介质(例如,计算机可读存储介质)中实现或编码。在计算机可读存储介质中嵌入或编码的指令可以使可编程处理器或其他处理器执行该方法,例如,当执行指令时。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、磁带、磁介质、光学介质或其他计算机可读介质。
Claims (11)
1.一种利用计算机实现的方法,包括:
由软件定义网络控制器接收在高抽象层描述由所述软件定义网络控制器管理的网络的期望状态的高级配置数据;
由所述软件定义网络控制器将转换功能应用于所述高级配置数据,以生成针对被配置为实现所述网络的所述期望状态的网络装置的低级配置数据,其中,所述低级配置数据还包括针对所述网络装置的将所述软件定义网络控制器配置为对等体以获得在所述网络装置之间交换的一个或多个路由的配置数据;
由所述软件定义网络控制器向所述网络装置发送所述低级配置数据,以使所述网络装置实现所述网络的所述期望状态,并将所述软件定义网络控制器配置为所述对等体以获得在所述网络装置之间交换的一个或多个路由;
由所述软件定义网络控制器并且基于所述低级配置数据建立与所述网络装置的对等会话;
由所述软件定义网络控制器经由所述对等会话获得在被配置为实现所述网络的所述期望状态的所述网络装置之间交换的一个或多个路由;并且
由所述软件定义网络控制器向用户呈现所获得的一个或多个路由,以确定描述所述网络的所述期望状态的所述高级配置数据是否被正确配置。
2.根据权利要求1所述的方法,
其中,描述所述网络的所述期望状态的所述高级配置数据包括被建模为所述高级配置数据的网络覆盖对象的数据中心互连。
3.根据权利要求1所述的方法,其中,从被建模为网络覆盖对象的数据中心互连转换的所述低级配置数据包括如下的配置数据:所述配置数据使所述网络装置实现多协议边界网关协议,以将数据中心的租户网络的路由和可达性信息通告给远程数据中心的租户网络。
4.根据权利要求1-3中任一项所述的方法,其中,将所述软件定义网络控制器配置为所述网络装置的对等体包括:将所述软件定义网络控制器配置为边界网关协议对等体。
5.根据权利要求1-3中任一项所述的方法,
其中,所述转换功能为所述网络装置构建Ansible剧本。
6.一种软件定义网络控制器,包括:
存储器;
一个或多个处理器,耦接到所述存储器,其中,所述一个或多个处理器被配置为:
接收在高抽象层描述由所述软件定义网络控制器管理的网络的期望状态的高级配置数据;
将转换功能应用于所述高级配置数据,以生成针对被配置为实现所述网络的所述期望状态的网络装置的低级配置数据,其中,所述低级配置数据还包括针对所述网络装置的将所述软件定义网络控制器配置为对等体以获得在所述网络装置之间交换的一个或多个路由的配置数据;
向所述网络装置发送所述低级配置数据,以使所述网络装置实现所述网络的所述期望状态,并将所述软件定义网络控制器配置为所述对等体以获得在所述网络装置之间交换的一个或多个路由;
基于所述低级配置数据建立与所述网络装置的对等会话;
经由所述对等会话获得在被配置为实现所述网络的所述期望状态的所述网络装置之间交换的一个或多个路由;并且
向用户呈现所获得的一个或多个路由,以确定描述所述网络的所述期望状态的所述高级配置数据是否被正确配置。
7.根据权利要求6所述的软件定义网络控制器,
其中,描述所述网络的所述期望状态的所述高级配置数据包括被建模为所述高级配置数据的网络覆盖对象的数据中心互连。
8.根据权利要求6所述的软件定义网络控制器,其中,从被建模为网络覆盖对象的数据中心互连转换的所述低级配置数据包括如下的配置数据:所述配置数据使所述网络装置实现多协议边界网关协议,以将数据中心的租户网络的路由和可达性信息通告给远程数据中心的租户网络。
9.根据权利要求6-8中任一项所述的软件定义网络控制器,其中,将所述软件定义网络控制器配置为所述网络装置的对等体包括:将所述软件定义网络控制器配置为边界网关协议对等体。
10.根据权利要求6-8中任一项所述的软件定义网络控制器,
其中,所述转换功能为所述网络装置构建Ansible剧本。
11.一种用指令编码的非暂时性计算机可读存储介质,所述指令用于使一个或多个可编程处理器执行根据权利要求1-5中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962839163P | 2019-04-26 | 2019-04-26 | |
US62/839,163 | 2019-04-26 | ||
US16/457,050 US11303555B2 (en) | 2019-04-26 | 2019-06-28 | Inter-data center software-defined network controller network |
US16/457,050 | 2019-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111866053A CN111866053A (zh) | 2020-10-30 |
CN111866053B true CN111866053B (zh) | 2023-07-21 |
Family
ID=68066564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910927301.1A Active CN111866053B (zh) | 2019-04-26 | 2019-09-27 | 软件定义网络控制器、方法及计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11303555B2 (zh) |
EP (1) | EP3731466A1 (zh) |
CN (1) | CN111866053B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200403922A1 (en) * | 2019-06-24 | 2020-12-24 | Vmware, Inc. | Load balancing of l2vpn traffic over multiple ipsec vpn tunnels |
US11128491B2 (en) * | 2019-08-13 | 2021-09-21 | Cloudflare, Inc. | Network layer performance and security provided by a distributed cloud computing network |
US11469958B1 (en) * | 2021-02-25 | 2022-10-11 | Juniper Networks, Inc. | Network controller deployment |
US11689454B2 (en) * | 2021-04-06 | 2023-06-27 | Cisco Technology, Inc. | Distributed tenant overlay network with centralized routing control plane |
CN113489604B (zh) * | 2021-06-24 | 2022-08-26 | 哈尔滨工业大学 | 网络仿真方法、装置、终端设备以及存储介质 |
US20230102795A1 (en) * | 2021-09-30 | 2023-03-30 | International Business Machines Corporation | Automatic selection of nodes on which to perform tasks |
CN113949630B (zh) * | 2021-10-25 | 2024-03-26 | 浪潮思科网络科技有限公司 | 一种跨云网融合环境的数据中心互联方法、设备及介质 |
US11924047B2 (en) * | 2022-04-20 | 2024-03-05 | Jpmorgan Chase Bank, N.A. | System and method for declarative automation for deployment of a software-defined network (SDN) |
CN115277347B (zh) * | 2022-07-19 | 2024-05-14 | 浪潮思科网络科技有限公司 | 一种基于sdn的实验室设备管理方法及设备 |
US20240073087A1 (en) * | 2022-08-25 | 2024-02-29 | Juniper Networks, Inc. | Intent-driven configuration of a cloud-native router |
CN116170443B (zh) * | 2023-04-20 | 2023-08-22 | 安超云软件有限公司 | 一种集群负载均衡实现方法及*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092565A (zh) * | 2014-06-24 | 2014-10-08 | 复旦大学 | 一种面向云数据中心的多租户策略驱动型软件定义网络方法 |
CN104702512A (zh) * | 2013-12-06 | 2015-06-10 | 智梵网络科技有限公司 | 软件定义网络(sdn)中的分层控制 |
CN105681231A (zh) * | 2014-04-01 | 2016-06-15 | 谷歌公司 | 用于在自治***内和之间对流量进行软件定义的路由的具有增强的流路由、可伸缩性和安全性的***和方法 |
CN107360100A (zh) * | 2017-07-31 | 2017-11-17 | 江苏省邮电规划设计院有限责任公司 | 一种基于sdn技术的网络流量编排***和方法 |
CN107566440A (zh) * | 2016-06-30 | 2018-01-09 | 丛林网络公司 | 软件定义的网络环境中服务的自动发现和自动扩缩 |
CN107800623A (zh) * | 2016-09-06 | 2018-03-13 | 中国电信股份有限公司 | 异构网络通信方法和***以及sdn控制器 |
CN108702326A (zh) * | 2016-01-05 | 2018-10-23 | 瑞典爱立信有限公司 | 检测软件定义网络(sdn)中的控制平面循环的机制 |
US10200274B1 (en) * | 2017-02-17 | 2019-02-05 | Juniper Networks, Inc. | Enhanced traffic flow in software-defined networking controller-based architecture |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9350671B2 (en) * | 2012-03-22 | 2016-05-24 | Futurewei Technologies, Inc. | Supporting software defined networking with application layer traffic optimization |
US8750288B2 (en) | 2012-06-06 | 2014-06-10 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
US9742632B2 (en) * | 2013-12-27 | 2017-08-22 | Intel Corporation | Hybrid SDN controller |
CN104753828B (zh) * | 2013-12-31 | 2019-10-25 | 华为技术有限公司 | 一种sdn控制器、数据中心***和路由连接方法 |
US9590901B2 (en) | 2014-03-14 | 2017-03-07 | Nicira, Inc. | Route advertisement by managed gateways |
US9686162B2 (en) * | 2014-10-17 | 2017-06-20 | International Business Machines Corporation | Identifying configuration inconsistency in edge-based software defined networks (SDN) |
US10355969B2 (en) * | 2015-12-25 | 2019-07-16 | KN Install Solutions (N.IRE) Limited | Data driven orchestrated network using a light weight distributed sdn controller |
US10200248B1 (en) | 2016-06-30 | 2019-02-05 | Juniper Networks, Inc. | Translating high-level configuration instructions to low-level device configuration |
US10506037B2 (en) * | 2016-12-13 | 2019-12-10 | Alcatel Lucent | Discovery of ingress provider edge devices in egress peering networks |
US11522763B2 (en) * | 2017-11-29 | 2022-12-06 | Nicira, Inc. | Agent-based network scanning in software-defined networking (SDN) environments |
-
2019
- 2019-06-28 US US16/457,050 patent/US11303555B2/en active Active
- 2019-09-24 EP EP19199090.2A patent/EP3731466A1/en active Pending
- 2019-09-27 CN CN201910927301.1A patent/CN111866053B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702512A (zh) * | 2013-12-06 | 2015-06-10 | 智梵网络科技有限公司 | 软件定义网络(sdn)中的分层控制 |
CN105681231A (zh) * | 2014-04-01 | 2016-06-15 | 谷歌公司 | 用于在自治***内和之间对流量进行软件定义的路由的具有增强的流路由、可伸缩性和安全性的***和方法 |
CN104092565A (zh) * | 2014-06-24 | 2014-10-08 | 复旦大学 | 一种面向云数据中心的多租户策略驱动型软件定义网络方法 |
CN108702326A (zh) * | 2016-01-05 | 2018-10-23 | 瑞典爱立信有限公司 | 检测软件定义网络(sdn)中的控制平面循环的机制 |
CN107566440A (zh) * | 2016-06-30 | 2018-01-09 | 丛林网络公司 | 软件定义的网络环境中服务的自动发现和自动扩缩 |
CN107800623A (zh) * | 2016-09-06 | 2018-03-13 | 中国电信股份有限公司 | 异构网络通信方法和***以及sdn控制器 |
US10200274B1 (en) * | 2017-02-17 | 2019-02-05 | Juniper Networks, Inc. | Enhanced traffic flow in software-defined networking controller-based architecture |
CN107360100A (zh) * | 2017-07-31 | 2017-11-17 | 江苏省邮电规划设计院有限责任公司 | 一种基于sdn技术的网络流量编排***和方法 |
Non-Patent Citations (2)
Title |
---|
"Automating Ethernet VPN Deployment in SDN-based Data Centers";Kyoomars Alizadeh Noghani;《 2017 Fourth International Conference on Software Defined Systems》;20170608;说明书第2、6页 * |
"引入SDN控制器让数据中心实现网随云动";熊学涛;《通信世界》;20190415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US11303555B2 (en) | 2022-04-12 |
EP3731466A1 (en) | 2020-10-28 |
CN111866053A (zh) | 2020-10-30 |
US20200344147A1 (en) | 2020-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111371706B (zh) | 跨物理和虚拟化工作负载使用虚拟化覆盖的具有多个协议的云网络 | |
CN111866053B (zh) | 软件定义网络控制器、方法及计算机可读存储介质 | |
CN110830357B (zh) | 使用高级拓扑描述的多云虚拟计算环境供应 | |
CN110971442B (zh) | 在多云计算环境中迁移工作负载 | |
CN110830389B (zh) | 用于计算机网络的***和方法 | |
US10686627B2 (en) | Distributed virtual gateway appliance | |
CN112398676B (zh) | 多租户环境中服务接入端点的基于供应商无关简档的建模 | |
US11201782B1 (en) | Automation of maintenance mode operations for network devices | |
CN112583710B (zh) | 软件定义网络中的辅助复制 | |
US11936520B2 (en) | Edge controller with network performance parameter support | |
US10999195B1 (en) | Multicast VPN support in data centers using edge replication tree | |
US11652727B2 (en) | Service chaining with physical network functions and virtualized network functions | |
Noghani et al. | Automating ethernet VPN deployment in SDN-based data centers | |
EP3952212B1 (en) | Using a programmable resource dependency mathematical model to perform root cause analysis | |
US20200344158A1 (en) | Virtual port group | |
Li et al. | Enabling multi-tenants isolation for software-defined cloud networks via xmpp and bgp: implementation and evaluation | |
Chen | Practical Management as a Service (MaaS) Substrate For Data Center Network | |
Li et al. | Enabling BGP/MPLS VPN as a connectivity and multi-tenants isolation technology for SD-Cloud Networks |
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 |