计算机联网方法、底层网络控制器和计算机可读存储介质与流程

文档序号:31872299发布日期:2022-10-21 19:50阅读:70来源:国知局
计算机联网方法、底层网络控制器和计算机可读存储介质与流程
计算机联网方法、底层网络控制器和计算机可读存储介质
1.本技术是申请号为201910923130.5的中国专利申请的分案申请。
技术领域
2.本公开涉及虚拟化计算基础设施。


背景技术:

3.虚拟化数据中心正在成为现代信息技术(it)基础设施的核心基础。具体地,现代数据中心已广泛利用虚拟化环境,其中虚拟主机(例如虚拟机或容器)在物理计算设备的底层计算平台上部署并执行。
4.数据中心内的虚拟化可以提供多种优势。一个优势是虚拟化可以对效率提供显著改进。随着每个物理cpu具有大量核心的多核微处理器架构的出现,底层物理计算设备(即服务器)已变得越来越强大,虚拟化变得更容易且更有效。第二个优势是虚拟化对计算基础设施提供了显著控制。随着物理计算资源成为可替换资源,例如在基于云的计算环境中,计算基础设施的供应和管理变得更容易。因此,除了虚拟化提供的效率和增加的投资回报率(roi),为了他们的管理优势,企业it员工通常更喜欢数据中心中的虚拟化计算集群。
5.管理应用执行的部署和基础设施的计算基础设施可能主要涉及两个方面:(1)编排—用于跨主机集群的应用的自动部署、扩展和操作,并提供计算基础设施,其可包括以容器为中心的计算基础设施;和(2)网络管理—用于在网络基础设施中创建虚拟网络,以实现在虚拟化计算环境上运行的应用程序之间(例如容器或vm)以及在传统(例如,物理)环境上运行的应用之间的通信。软件定义的联网有助于网络管理。


技术实现要素:

6.通常,描述了用于由虚拟化计算基础设施执行的多个租户底层网络和多个子租户覆盖网络的可扩展虚拟化的技术,以便实现由多租户底层网络支持的多租户覆盖网络。例如,用于虚拟化计算基础设施的底层控制器在网络交换机的交换结构上配置虚拟化可扩展局域网(vxlan)。底层控制器进一步配置多个底层网络段,每个底层网络段配置为vxlan的多个vxlan段中的一个vxlan段。多个vxlan段中的每个vxlan段在虚拟化计算基础设施的主机计算设备的不同子集之间提供底层网络连接。底层控制器将多个租户的不同租户分配给多个vxlan段中的每个vxlan段,使得主机计算设备的不同子集支持被分配了租户的vxlan段。因此,底层控制器可以实现vxlan中的多个租户的编排,每个租户在vxlan内具有硬件,其与每个其他租户隔离。
7.此外,由于底层段提供有效的网络隔离,所以不同的覆盖控制器可以控制虚拟化计算基础设施的主机计算设备的每个子集。对于通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集,覆盖控制器配置例如主机计算设备的第一子集上的多个覆盖网络。因此,用于主机计算设备的第一子集的覆盖控制器可以实现支持底层段的主机计算设备的第一子集中的多个子租户的编排,每个子租户具有专用网络,其与主
机计算设备的第一子集的每个其他子租户隔离。
8.本公开的技术可以提供对虚拟化计算基础设施的计算机相关领域的具体改进。此外,本公开的技术可以集成到许多实际应用中。例如,本公开的技术可以允许对底层网络中的租户和多个覆盖网络中的子租户稳健且有效的扩展,从而允许比单独使用vxlan或vlan支持的更多数量的租户和子租户。例如,本公开的技术可以允许对底层网络的每个租户进行分段,以向每个租户提供私有底层环境或隔离硬件环境。另外,本公开的技术可以降低跨虚拟化计算基础设施配置覆盖和底层网络的复杂性,并且避免使用效率低下的生成树协议来泛洪广播,未知和多播(bum)流量。本公开的技术还允许从外部网络访问隔离的覆盖网络的简化管理以及提供对服务器的硬件管理接口(例如,智能平台管理接口(ipmi))的私有访问。此外,本公开的技术可以实现用于租户和子租户的隔离环境的使用,其允许在虚拟化计算基础设施内的应用服务的开发和维护中提高灵活性,以及使服务提供者能够向其他服务提供者提供改进的白标服务和/或提供裸金属服务器即服务(bmsaas),具有用传统技术目前不可能的敏捷性和灵活性。
9.在一个示例中,本公开描述了一种方法,包含:由用于虚拟化计算基础设施的第一控制器,通过配置包含用于虚拟化计算基础设施的网络交换机的交换结构中的vxlan的多个vxlan段的相应的虚拟化可扩展局域网(vxlan)段,配置虚拟化计算基础设施中的多个底层网络段,以实现vxlan中的多个租户的编排,其中多个vxlan段中的每个vxlan段在虚拟化计算基础设施的主机计算设备的不同子集之间提供底层网络连接;并且通过用于具有通过vxlan段中的第一vxlan段的操作的底层网络连接的主机计算设备的第一子集的第二控制器,配置主机计算设备的第一子集中的多个覆盖网络,以实现主机计算设备的第一子集中的多个子租户的编排。
10.在另一示例中,本公开描述了一种系统,包含:用于虚拟化计算基础设施的第一控制器,第一控制器在处理电路上运行并且被配置为:通过配置包含用于虚拟化计算基础设施的网络交换机的交换结构中的vxlan的多个vxlan段的相应的虚拟化可扩展局域网(vxlan)段,来配置虚拟化计算基础设施中的多个底层网络段,其中多个vxlan段中的每个vxlan段提供虚拟化计算基础设施的主机计算设备的不同子集间的底层网络连接;以及第二控制器,第二控制器,用于通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集,第二控制器配置主机计算设备的第一子集中的多个覆盖网络,以实现主机计算设备的第一子集中的多个租户的编排。
11.在另一示例中,本公开描述了一种包含指令的非暂时性计算机可读介质,在被执行时该指令使处理电路执行:用于虚拟化计算基础设施的第一控制器,第一控制器被配置以通过配置包含用于虚拟化计算基础设施的网络交换机的交换结构中的vxlan的多个vxlan段的相应的虚拟化可扩展局域网(vxlan)段,来配置虚拟化计算基础设施中的多个底层网络段,以实现vxlan中的多个租户的编排,其中多个vxlan段中的每个vxlan段在虚拟化计算基础设施的主机计算设备的不同子集之间提供底层网络连接;和第二控制器,用于通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集配置主机计算设备的第一子集中的多个覆盖网络,以实现主机计算设备的第一子集中的多个租户的编排。
12.在附图和以下描述中列出了本公开的技术的一个或多个示例的细节。
附图说明
13.图1是说明具有数据中心的示例网络的框图,其中可以实现本文描述的技术的示例。
14.图2是说明更详细的图1的数据中心的示例实现的框图。
15.图3是说明更详细的图1的底层控制器的示例实现的框图。
16.图4是说明更详细的图1的覆盖控制器的示例实现的框图。
17.图5是说明根据本公开的技术的示例操作的流程图。
18.图6是说明使用vlan的数据中心的分段底层网络的示例的框图。
19.图7是说明根据本公开的技术的使用vxlan的数据中心的分段底层网络的示例的框图。
20.图8是说明根据本公开的技术的多个隔离覆盖网络的示例的框图。
21.图9是说明根据本公开的技术的多个隔离覆盖网络的另一示例的框图。
22.图10是说明根据本公开的技术的子提供者硬件管理网络的示例的框图。
23.图11是说明根据本公开的技术的数据中心切片和多个隔离云的单一协调器集群管理的示例的框图。
24.图12是说明根据本公开的技术的子提供者网络中的虚拟机(vm)之间的数据路径的示例的框图。
25.图13是说明根据本公开的技术的用于提供裸金属服务器(bms)的数据路径的示例的框图。
26.图14是说明根据本公开的技术的vm和bms之间的数据路径的示例的框图。
27.图15是说明根据本公开的技术的浮动ip地址(fip)数据路径的示例的框图。
28.图16是说明根据本公开的技术的在不同网络中将vm和bms用于第2层转发器的示例使用的框图。
29.图17是说明根据本公开的技术的用于非重叠子提供者结构中的子提供者的源网络地址转换(snat)网关的示例的框图。
30.图18是说明根据本公开的技术的snat数据路径的示例的框图。
31.图19是说明根据本公开的技术的用于在重叠子提供者结构中的子提供者的snat网关的示例的框图。
32.图20是说明根据本公开的技术的用于使用非重叠fip池的子提供者的fip的示例使用的框图。
33.图21是说明使用用于非重叠子提供者结构中的子提供者的snat和具有非重叠租户网络的fip的共享网关的示例的框图。
34.图22是说明使用用于重叠子提供者结构中子提供者的snat和具有重叠租户网络的fip的共享网关的示例的框图。
35.在整个附图和描述中,相同的参考字符表示相同的元件。
具体实施方式
36.图1是说明示例计算基础设施8的框图,其中本文描述的技术的示例可以实现。通常,数据中心10为具有由服务提供者网络7耦合到数据中心的一个或多个客户网络的客户
站点11(说明为“客户11”)提供应用程序和服务的操作环境。例如,数据中心10可以是,主机基础设施装置,诸如联网和存储系统,冗余电源和环境控制。服务提供者网络7耦合到公共网络15,其可以表示由其他提供者管理的一个或多个网络,并且可以因此形成大规模公共网络基础设施的一部分,例如因特网。例如,公共网络15可以表示局域网(lan),广域网(wan),因特网,虚拟lan(vlan),企业lan,第3层虚拟专用网(vpn),由操作服务提供者网络7的服务提供者操作的因特网协议(ip)内联网,企业ip网络或其一些组合。
37.尽管说明了客户站点11和公共网络15并主要描述为服务提供者网络7的边缘网络,但是在一些示例中,客户站点11和公共网络15的一个或多个可以是数据中心10或另一数据中心内的租户网络。例如,数据中心10可以托管多个租户(客户),每个与一个或多个虚拟专用网络(vpn)相关联,其中每个可以实现一个客户站点11。服务提供者网络7向附加的客户站点11,数据中心10和公共网络15提供基于分组的连接。服务提供者网络7可以表示由服务提供者拥有并操作以互连多个网络的网络。服务提供者网络7可以实现多协议标签交换(mpls)转发,并且在这种情况下可以被称为mpls网络或mpls骨干网。在某些情况下,服务提供者网络7表示多个互连的自治系统,例如因特网,其提供来自一个或多个服务提供者的服务。
38.在一些示例中,数据中心10可以表示许多地理上分布的网络数据中心之一。如图1的示例中所说明,数据中心10可以是为客户提供网络服务的设施。服务提供者的客户可以是诸如企业和政府或个人的集体实体。例如,网络数据中心可以为多个企业和最终用户托管web服务。其他示例性服务可以包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。尽管被说明为服务提供者网络7的单独边缘网络,但是数据中心10的元件,诸如一个或多个物理网络功能(pnf)或虚拟化网络功能(vnf),可以被包括在服务提供者网络7核心内。
39.在此示例中,数据中心10包括通过由一层或多层物理网络交换机和路由器提供的交换结构14互连的存储和/或计算服务器,其中服务器12a-12n(本文,“服务器12”)被描绘为耦合到机柜顶部交换机16a-16n。服务器12是计算设备,并且在本文中也可称为“主机”或“主机设备”。
40.在所说明的示例中的交换结构14包括耦合到机箱的分布层(或“脊柱”或“核心”)交换机18a-18n(统称为“机箱交换机18”)的互连的机柜顶部(tor)(或其他“叶片”)交换机16a-16n(统称为“tor交换机16”)。虽然未示出,但是数据中心10还可以包括例如一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙的安全设备、入侵检测、和/或入侵防御设备、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动设备、无线接入点、网桥、电缆调制解调器,应用加速器或其他网络设备。数据中心10还可以包括一个或多个物理网络功能(pnf),诸如物理防火墙、负载平衡器、路由器、路由反射器、宽带网络网关(bng)、演进分组核心或其他蜂窝网络元件,和其他pnf。
41.在此示例中,tor交换机16和机箱交换机18向服务器12提供到ip结构20和服务提供者网络7的冗余(多穴)连接。机箱交换机18聚合流量并提供tor交换机16之间的连接。tor交换机16可以是网络设备,其提供第2层(mac)和/或第3层(例如,ip)路由和/或交换功能。tor交换机16和机箱交换机18中的每个可以包括一个或多个处理器和存储器,并且可以执行一个或多个软件进程。机箱交换机18耦合到ip结构20,其可以进行第3层路由以通过服务
提供者网络7在数据中心10和客户站点11之间路由网络流量。数据中心10的交换架构仅是示例。例如,其他交换架构可以具有更多或更少的交换层。
42.在图1的示例中,ip结构20可以利用以太网vpn(e-vpn)技术来提供evpn数据中心互连(dci),其允许数据中心10在数据中心10内进行多个租户的多租户管理(multitenancy)。evpn使用第2层虚拟桥连接分散的客户站点。与其他类型的第2层vpn相比,evpn包括客户边缘(ce)设备,诸如主机、路由器或交换机,(诸如交换机16、18)、连接到ip结构20的网络访问设备(未描绘)。ip结构20的网络访问设备可以包括mpls边缘交换机(mes),其作用在mpls基础设施的边缘。在另一示例中,独立交换机可以被配置为充当mes。可以在服务提供者网络内部署多个evpn,诸如图1的网络系统2,每个evpn都为客户提供网络连接,同时确保该网络上的流量共享仍然为专用。evpn可以定义多种类型的路由,诸如以太网ad路由、mac/ip通告路由和以太网段路由。以这种方式,ip结构20提供evpn 23以传输用于客户网络的l2通信,同时保持客户网络的虚拟隔离。特别地,ip结构20使evpn 23能够通过服务提供者网络7为数据中心10的不同客户传输l2通信,诸如以太网分组或“帧”。
43.术语“分组流”,“流量”或简称“流”是指源自特定源设备或端点并发送到特定目的设备或端点的一组分组。单个分组流可以由5元组标识:例如,《源网络地址,目的网络地址,源端口,目的地端口,协议》。此5元组通常识别所接收的分组对应的分组流。n元组是指从5元组中抽取的任何n个项目。例如,分组的2元组可以是指分组的《源网络地址,目的网络地址》或《源网络地址,源端口》的组合。
44.服务器12可以分别表示计算服务器、交换机或存储服务器。例如,服务器12的每一个可以表示计算设备,诸如基于x86处理器的服务器,被配置为根据本文描述的技术操作。服务器12可以为nfv架构提供网络功能虚拟化基础设施(nfvi)。
45.服务器12的任何服务器可以通过虚拟化服务器的资源被配置有虚拟执行元件,以在服务器上执行的一个或多个进程(应用程序)之间提供隔离。“基于管理程序”或“硬件级”或“平台”虚拟化是指虚拟机的创建,其分别包括用于执行一个或多个进程的访客操作系统。通常,虚拟机(图1的“vm”)提供用于在隔离的虚拟环境中执行应用的虚拟化/访客操作系统。因为虚拟机是从主机服务器的物理硬件虚拟化的,所以执行的应用程序与主机的硬件和其他虚拟机的硬件都是隔离的。每个虚拟机可以配置有一个或多个虚拟网络接口,用于在相应的虚拟网络上进行通信。
46.诸如覆盖网络22a-22n(下文称为“覆盖网络22”)的虚拟网络是通过物理网络实现的逻辑结构。另外或替代地,虚拟网络可用于替换基于vlan的隔离并在虚拟化数据中心(例如数据中心10)中提供多租户。每个租户或应用可具有一个或多个虚拟网络。除非安全策略明确允许,否则每个虚拟网络可以与所有其他虚拟网络隔离。
47.虚拟网络可以使用数据中心10边缘路由器(图1中未示出)连接到物理多协议标签交换(mpls)第3层虚拟专用网络(l3vpn)和以太网虚拟专用网络(evpn)网络并在其上扩展。虚拟网络还可用于实现网络功能虚拟化(nfv)和服务链。
48.虚拟网络可以使用各种机制来实现。例如,每个虚拟网络都可以实现为虚拟局域网(vlan),虚拟专用网络(vpn)等。虚拟网络也可以使用两个网络实现—由ip结构20和交换结构14组成的物理底层网络和虚拟覆盖网络。物理底层网络的作用是提供“ip结构”,其从任何物理设备(服务器、存储设备、路由器或交换机)到任何其他物理设备提供单播ip连接。
底层网络可以从网络中的任何点到网络中的任何其他点提供统一的低延迟、无阻塞、高带宽连接。
49.服务器12可以执行一个或多个虚拟路由器21a-21n(下文中,虚拟路由器21)和一个或多个虚拟机(图1中的“vm”)。在服务器12的内核或管理程序中运行的虚拟路由器21使用它们之间的动态“隧道”网格在服务器12之上创建虚拟覆盖网络22。例如,这些覆盖隧道可以是gre/udp隧道上的mpls,或vxlan隧道,或nvgre隧道。底层物理路由器和交换机可能不包含任何每个租户状态,诸如任何介质访问控制(mac)地址,ip地址或虚拟机或其他虚拟执行元件的策略。底层物理路由器和交换机的转发表可以仅包含物理服务器12的ip前缀或mac地址。(连接虚拟网络到物理网络的网关路由器或交换机是例外,并且可以包含租户mac或ip地址)。
50.服务器12的虚拟路由器21确实包含每个租户状态。它们包含每个虚拟覆盖网络22的单独转发表(路由实例)。该转发表包含ip前缀(在第3层覆盖的情况下)或虚拟机或其他虚拟执行元件的(例如,容器的舱)mac地址(在第2层覆盖的情况下)。单个虚拟路由器21不需要包含整个数据中心中所有虚拟机的所有ip前缀或所有mac地址。给定的虚拟路由器21仅需要包含在于服务器12上本地存在的那些路由实例(即,在于服务器12上其具有至少一个虚拟执行元件的路由实例)。
51.在一些示例中,服务器12实现基于容器的虚拟化,而不是基于虚拟机的虚拟化。“基于容器”或“操作系统”虚拟化是指操作系统的虚拟化,以在单个机器(虚拟或物理)上运行多个隔离系统。这种隔离系统表示容器,诸如由开源docker容器应用程序或coreos rkt(“rocket”)提供的那些容器。与虚拟机相同,每个容器都是虚拟化的,并且可以仍然与主机和其他容器保持隔离。但是,与虚拟机不同,每个容器可以省略单个操作系统,并且仅提供应用程序套件和特定于应用程序的库。通常,容器由主机作为隔离的用户空间实例执行,并且可以与在主机上执行的其他容器共享操作系统和公共库。因此,与虚拟机相比,容器可能需要较少的处理能力、存储资源和网络资源。一组一个或多个容器可以被配置为共享一个或多个虚拟网络接口,用于在相应的虚拟网络上进行通信。
52.在一些示例中,容器由它们的主机内核管理,以允许对资源(cpu,内存,块i/o,网络等)进行限制和优先化,而无需启动任何虚拟机,在某些情况下使用命名空间隔离功能,其允许应用程序(例如,给定容器)的操作环境视图(包括进程树,联网,用户标识符和已安装的文件系统)的完全隔离。在一些示例中,根据linux容器(lxc)可以来部署容器,这一种用于使用单个linux内核的控制主机上运行多个隔离的linux系统(容器)的操作系统级虚拟化方法。lxc是一种操作系统级虚拟化方法,用于在单个控制主机(lxc主机)上运行多个隔离的linux系统(容器)。lxc不使用虚拟机(尽管lxc可能由虚拟机托管)。相反,lxc使用具有其自己的cpu、内存、块i/o、网络和/或其他资源空间的虚拟环境。lxc资源控制机制由lxc主机上的linux内核中的命名空间和cgroup提供。有关容器的其他信息可在docker公司的“docker概述”中找到,其网址为docs.docker.com/engine/understanding-docker(最新访问时间为2016年7月9日)。容器化方法的其他示例包括openvz,freebsd jail,aix工作负载分区和solaris容器。因此,如本文所使用的,术语“容器”不仅可以包含lxc样式的容器,还可以包括虚拟化引擎,虚拟专用服务器,筒仓或监狱中的任何一个或多个。
53.服务器12托管一个或多个虚拟网络的虚拟网络端点,这些虚拟网络端点通过ip结
构20和交换结构14表示的物理网络进行操作。如图1所描绘并且在下面进一步详细解释,服务器12的子集托管一个或多个覆盖网络22,其在由底层段支持的底层网络上执行。
54.一个或多个服务器12可以分别包括一个虚拟路由器21,其为对应的覆盖网络22执行一个或多个路由实例,以在覆盖网络22的虚拟网络端点之间提供虚拟网络接口和路由分组。每个路由实例可以与网络转发表相关联。每个路由实例可以表示用于因特网协议-虚拟专用网络(ip-vpn)的虚拟路由和转发实例(vrf)。例如,由服务器12a的虚拟路由器21a从底层段接收的分组可以包括外部报头,以允许底层段内的设备将有效载荷或“内部分组”隧道传送到服务器12a的物理网络地址,其执行虚拟路由器21a。外部报头不仅可以包括服务器12a的物理网络地址,还可以包括虚拟网络标识符,诸如标识特定底层段的vxlan标签或多协议标签交换(mpls)标签。内部分组包括具有目的网络地址的内部报头,其符合由虚拟网络标识符标识的覆盖网络22a的虚拟网络寻址空间(例如标识由虚拟路由器21a执行的相应路由实例的vxlan标识符)。
55.虚拟路由器21终止虚拟网络覆盖隧道并基于分组的隧道封装报头确定用于接收的分组的虚拟网络,并且将分组转发到用于分组的适当的目的虚拟网络端点。对于服务器12a,例如,对于由服务器12a(例如,覆盖网络22a)托管的虚拟网络端点出站的每个分组,虚拟路由器21a附加一个隧道封装报头,其指示用于分组的覆盖网络22a,以生成封装或“隧道”分组,并且虚拟路由器21a经由用于覆盖网络22a的覆盖隧道将封装的分组输出到物理目的计算设备,诸如服务器12中的另一个。如本文所使用的,虚拟路由器21可以执行隧道端点的操作以封装由虚拟网络端点提供的内部分组,以生成隧道分组,并解封装隧道分组以获取内部分组从而路由到其他虚拟网络端点。
56.网络系统8实现自动化平台,用于跨服务器12的虚拟执行元件的自动化部署、扩展和操作,以提供用于执行应用工作负载和服务的虚拟化基础设施。在一些示例中,平台可以是提供以容器为中心的基础设施容器编排平台,其为了容器的自动化部署、扩展和操作以提供以容器为中心的基础设施。在虚拟化计算基础设施的上下文中的“编排”通常是指提供、调度和管理在这样的虚拟执行元件上执行的虚拟执行元件和/或应用和服务至编排平台可用的主机服务器。具体地,容器编排允许容器协调,并且是指例如由容器编排平台托管服务器的容器的部署、管理、扩展和配置。编排平台的示例实例包括kubernetes,docker swarm,mesos/marathon,openshift,openstack,vmware和amazon ecs。
57.底层控制器24是实现用于计算基础设施8的软件定义的联网(sdn)控制器。底层控制器24可以在服务器12之一或图1中未描绘的另一设备上执行。底层控制器24可以是在一个或多个计算设备上执行的分布式应用。通常,底层控制器24控制交换结构14上的evpn 23的网络配置,为例如虚拟网络端点之间的分组通信建立一个或多个虚拟化底层段。此外,底层控制器24控制跨evpn 23的虚拟执行元件的部署、扩展和操作。底层控制器24提供逻辑上并且在一些情况下物理上集中的控制器,以促进evpn 23的操作。在一些示例中,底层控制器24可以响应于从管理员/操作员接收的配置输入而操作。关于作为与数据中心10的其他设备或其他软件定义的网络一起操作的网络控制器的底层控制器24的功能的附加信息可以在2013年6月5日提交的国际申请号pct/us2013/044378,且标题为“用于虚拟网络分组流的物理路径确定;”,和在2014年3月26日提交的美国专利申请no.14/226,509,且标题为“用于虚拟网络的隧道分组聚合”中找到。美国专利申请no.14/226,509还包括虚拟路由器的进
一步描述,诸如虚拟路由器21a。
58.根据本公开的技术,网络8实现由底层网络段和多个子租户覆盖网络24支持的多个租户底层网络的可扩展虚拟化,以便实现由多租户底层网络支持的多租户覆盖网络。例如,底层控制器24在交换结构14上配置底层网络。底层控制器24进一步配置多个底层段。如关于图2更详细地描述的,每个底层段是由交换结构14的机箱交换机18和tor交换机16实现的虚拟化段。在一些示例中,底层网络使用vxlan协议,并且每个底层网络段被配置为底层网络的多个vxlan段中的一个vxlan段。每个底层段在网络8的主机计算设备(例如,服务器12)的不同子集之间提供底层网络连接。
59.底层控制器24将多个租户的不同租户分配给底层网络,其通过相应的底层段传输l2通信,使得主机计算设备的不同子集(例如,服务器12)支持被分配了租户的底层段。这样,机箱交换机18和tor交换机16可以经由对应于底层段的vxlan隧道端点29a-29b(下文“vtep 29”)接收租户各自服务器12的客户流量,并且经由evpn 23将流量转发到服务提供者网络7。类似地,机箱交换机18和tor交换机16可以从evpn 23接收l2通信,并且转发l2通信以经由对应于底层段的vtep 29传输到服务器12。以这种方式,用于底层段的vtep 29作为evpn 23与服务器12的子集之间的网关操作。也就是说,每个底层段可以包括用于服务器12的逻辑上单独的路由实例,并且每个vtep 29进行操作以桥接两个不同内部路由实例之间的流量。为了易于说明,图1仅描绘了与服务器12的第一子集具有连接的tor交换机16a的vtep 29a,和与服务器12的第二子集具有连接的tor交换机16a的vtep 29b。然而,其他tor交换机16b-16n的vtep 29a和29b通常也连接到服务器12的每个子集。因此,底层控制器24可以实现evpn 23中的多个租户的编排,每个租户具有覆盖在机箱交换机18和tor交换机16上的逻辑上隔离的底层网络。也就是说,在数据中心5内提供的各种客户网络可以虚拟地隔离到evpn23的不同底层段上。
60.每个底层段可以支持在主机计算设备的子集上执行的多个覆盖网络22。例如,如图1的示例中所描绘的,每个底层段支持在一组服务器12a-12n上执行的覆盖网络22a-22n。此外,对于主机计算设备的每个子集实例化不同的覆盖控制器28,以控制覆盖网络22a-22n的编排。例如,关于图1,覆盖控制器28实现用于每个底层段的覆盖网络22a-22n的sdn控制器。覆盖控制器28可以在服务器12之一或图1中未描绘的另一设备上执行。覆盖控制器28可以是在一个或多个计算设备上执行的分布式应用。通常,覆盖控制器28控制底层段的覆盖网络22的网络配置,以用于虚拟网络端点之间的分组通信。此外,覆盖控制器28控制跨覆盖网络22的虚拟执行元件的部署、扩展和操作。覆盖控制器28提供逻辑上并且在一些情况下物理上集中的控制器,用于促进覆盖网络22的操作。在一些示例中,覆盖网络22可以响应于从管理员/操作员接收到的配置输入而进行操作。在一些示例中,覆盖控制器28作为网络控制器操作,其与数据中心10的其他设备或其他软件定义的网络一起操作,如国际申请号pct/us2013/044378和美国专利申请no.14/226,509所描述的。
61.覆盖控制器28将底层段的多个子租户的子租户分配给不同的覆盖网络22,使得每个子租户可以与每个其他子租户虚拟地隔离。也就是说,每个覆盖网络22可以包括用于服务器12的逻辑上分离的路由实例,并且每个覆盖网络22用于桥接两个不同的内部路由实例之间的流量。因此,覆盖控制器28可以实现使用与底层段内的其他子租户的虚拟网络隔离(例如vxlan)的覆盖网络22中的多个子租户的编排,每个子租户具有专用虚拟网络。因此,
覆盖控制器28可以实现支持底层段的主机计算设备的第一子集中的多个子租户的编排,每个子租户具有专用网络,其与主机计算设备的第一子集的每个其他子租户隔离。
62.本公开的技术可以提供对虚拟化计算基础设施的计算机相关领域的具体改进。此外,本公开的技术可以集成到许多实际应用程序中。例如,本公开的技术可以允许对底层网络中的租户和多个覆盖网络中的子租户稳健且有效的扩展,从而允许比单独使用vxlan单层支持的更多数量的租户和子租户。例如,本公开的技术可以允许底层网络的每个租户的分段,以向每个租户提供私有底层环境或隔离硬件环境。另外,本公开的技术可以降低跨虚拟化计算基础设施配置覆盖和底层网络的复杂性,并且避免低效生成树协议的使用以泛洪广播,未知和多播(bum)流量。本公开的技术还允许从外部网络访问隔离的覆盖网络的简化管理以及提供对服务器的硬件管理接口(例如,智能平台管理接口(ipmi))的私有访问。此外,本公开的技术可以实现用于租户和子租户的隔离环境的使用,其允许在虚拟化计算基础设施内的应用服务的开发和维护中提高灵活性,以及使服务提供者能够向其他服务提供者提供改进的白标服务和/或提供裸金属服务器(bare metal server)即服务(bmsaas),这具有用传统技术目前不可能的敏捷性和灵活性。
63.图2是说明更详细的图1的数据中心的示例实现的框图。在图2的示例中,数据中心10包括底层网络段26a-26b(下文“底层网络段26”或“底层段26”),其将交换结构14从物理交换机16、18扩展到软件或“虚拟”交换机30a-30n(统称为“虚拟路由器21”)。虚拟路由器21动态地创建和管理可用于应用程序实例之间的通信的一个或多个虚拟覆盖网络22。在一个示例中,虚拟路由器21将虚拟网络执行作为覆盖网络,其提供将应用程序的虚拟地址与正在执行应用程序的服务器12a-12n之一(“服务器12”)的物理地址(例如,ip地址)分离的能力。每个虚拟覆盖网络22可以使用其自己的寻址和安全方案,并且可以被视为来自底层段26a及其寻址方案或来自物理网络及其寻址方案的正交。各种技术可以被用于在覆盖区段26a和物理网络上在覆盖网络22内和跨覆盖网络22传输分组。在一些示例中,本公开中描述的技术在覆盖网络22内提供多播服务,而不需要在底层段26a或底层物理网络中的多播支持。
64.每个虚拟路由器21可以在每个服务器12的管理程序、主机操作系统或其他组件内执行。每个服务器12可以表示能够执行虚拟机36的x86或其他通用或专用服务器。在图2示例中,虚拟路由器21a在管理程序31内执行,通常也称为虚拟机管理器(vmm),其提供允许多个操作系统同时在服务器12之一上运行的虚拟化平台。在图2的示例中,虚拟路由器21a管理覆盖网络22,每个虚拟路由器提供用于在管理程序31提供的虚拟化平台之上执行一个或多个虚拟机(vm)36的网络环境。每个vm 36与虚拟网络vn0-vn1中的一个相关联,并且可以表示运行客户应用程序的租户vm,诸如web服务器、数据库服务器、企业应用程序或托管用于创建服务链的虚拟化服务。在一些情况下,服务器12或另一计算设备中的任何一个或多个可以直接托管客户应用程序,即不作为虚拟机。在一些情况下,一些vm 36可以表示容器,另一种形式的虚拟化执行环境。也就是说,虚拟机和容器两者都是用于执行工作负载的虚拟化执行环境的示例。
65.通常,每个vm 36可以是任何类型的软件应用程序,并且可以被分配虚拟地址为了在相应的覆盖网络22内使用,其中每个虚拟网络可以是由虚拟路由器21a提供的不同虚拟子网。例如,vm 36可以被分配其自己的虚拟第三层(l3)ip地址用于发送和接收通信,但可
能不知道例如底层段26a的vxlan标识符或虚拟机正在执行在其上的物理服务器12a的ip地址。以这种方式,“虚拟地址”是应用的地址,其不同于底层,物理计算机系统的逻辑地址,例如图1或图2的示例中的服务器12a。
66.在一个实现中,每个服务器12包括虚拟网络(vn)代理35a-35n(统称为“vn代理35”)中的相应之一,其控制覆盖网络22并协调服务器12内的数据分组的路由。通常每个vn代理35与覆盖控制器28通信,其产生命令以控制覆盖网络22和底层段26a的vtep 29a之间的分组路由。为了易于说明,图2仅描绘了与服务器12具有连接的tor交换机16a的vtep 29a。然而,其他tor交换机16b-16n的vtep 29a通常同样连接到服务器12。vn代理35可以用作虚拟机36和覆盖控制器28之间的控制平面消息的代理。例如,vm 36可以请求经由vn代理35a使用其虚拟地址发送消息,并且vn代理35a可以依次发送消息并请求对于源于第一消息的vm 36的虚拟地址,接收对该消息的响应。在一些情况下,vm 36可以调用由vn代理35a的应用编程接口呈现的过程或函数调用,并且vn代理35a也可以处理消息的封装,包括寻址。
67.在一些示例实现中,每个服务器12还包括与底层控制器24直接通信的覆盖控制器28。例如,响应于来自底层控制器24的指令,覆盖控制器28通信在相应服务器12上执行的特定覆盖网络22的属性,并且可以创建或终止覆盖网络22。
68.在一个示例中,由虚拟网络域内的虚拟机36执行的应用的实例生成或消费的网络分组,例如第三层(l3)ip分组或第二层(l2)以太网分组,可以封装在另一个分组中(例如,另一个ip或以太网分组)其由物理网络传输。在虚拟网络中传输的分组在本文可以称为“内部分组”,而物理网络分组在本文可以称为“外部分组”或“隧道分组”。物理网络分组内的虚拟网络分组的封装和/或解封装可以在虚拟路由器21内执行,例如在每个服务器12上运行的管理程序或主机操作系统内。作为另一个例子,封装和解封装功能可以在第一跳tor交换机16处在交换结构14的边缘进行,其为从发起分组的应用程序实例中移除的一跳。此功能在本文被称为“隧道化”,并且可以在数据中心10内使用以在底层段26a内创建一个或多个覆盖网络22。除了ipinip之外,可以使用的其他示例隧道协议包括gre上的ip,vxlan,gre上的mpls,udp上的mpls等。
69.如上所述,覆盖控制器28提供逻辑集中的控制器,用于促进底层段26a内的一个或多个覆盖网络22的操作。例如,覆盖控制器28可以维护路由信息库,例如存储用于底层段26a的覆盖网络22的路由信息的一个或多个路由表。此外,例如底层控制器24可以维护路由信息库,例如存储底层段26a的交换机16、18的路由信息的一个或多个路由表。类似地,交换机16、18和虚拟路由器21维护路由信息,诸如一个或多个路由和/或转发表。在一个示例实现中,管理程序31的虚拟路由器21a为每个覆盖网络22实现网络转发表(nft)32。通常,每个nft 32存储用于相应覆盖网络22的转发信息,并识别数据分组将被转发到哪里以及是否要将分组封装在隧道协议中,诸如使用隧道报头,其可以包括用于虚拟网络协议栈的不同层的一个或多个报头。
70.根据本公开的技术,数据中心10可以进行数据中心切片,其允许通过连接它们到交换结构14并在交换机端口上配置底层段26(例如,经由vxlan或另一个覆盖协议)来创建服务器12的网络隔离组。此外,数据中心10可以使服务器12和联网设备16、18供其用户使用。
71.如图2所描绘,交换结构14是物理底层网络,其在机箱交换机18和tor交换机16之
间提供单播ip连接。底层网络可以从网络中的任何点到网络中的任何其他点提供统一的低延迟、无阻塞、高带宽的连接。此外,虚拟化的底层网络覆盖在交换结构14上并且在逻辑上分离成底层段26。通常,底层控制器24控制交换结构14上的evpn 23的网络配置,例如建立虚拟化底层段26以用于虚拟网络端点(例如,vtep 29)之间的分组化通信。因此,底层控制器24可以将每个租户逻辑地隔离到由机箱交换机18和tor交换机16支持的单独的底层段26。
72.附接到底层段26的每个隔离环境的服务器12可以用于运行单独的云管理系统,诸如覆盖网络22,这些系统可以属于多个提供者、组织内的多个组,或者可以是相同云管理系统(例如,开发,测试或生产部署)的多种部署。例如,vxlan与evpn控制平面联网的使用可以避免仅使用vlan的系统出现的几个问题。例如,图2的数据中心可能更容易在多个设备上正确配置,不受适用于vlan系统的4096扩展限制的约束,可以避免低效的生成树协议的使用,并且可以避免在每个覆盖网络22中泛洪bum流量。另外,数据中心10可以管理来自外部网络的用户对底层段26的隔离环境的访问,并且可以通过例如在网关设备上配置vrf来提供对服务器12(例如ipmi)的硬件管理接口的私有访问。
73.在一个示例中,数据中心10经由底层段26提供隔离环境,用于执行虚拟化计算基础设施的多个实例。这可以降低在相同交换基础设施内建立多个虚拟化计算基础设施的复杂性,从而简化这种基础设施的开发和测试以及改善联网资源的使用。此外,数据中心10可以减少管理具有不同软件版本和处于不同部署阶段的多个云环境的用户的负担。另外,数据中心10的使用可以使数据中心10的管理员容易地向多个外部组织提供bmsaas。
74.云提供者,无论是私有还是公共,都希望划分其基础设施,以便对于每个租户看起来他们都拥有他们自己的私有联网环境。按照惯例,租户在vm或容器级别是被隔离的,并且覆盖联网根据网络策略提供工作负载之间的连接。传统的协调器用于确保每个租户只能为他们自己的工作负载之间的连接创建策略。但是,如果物理硬件需要分段,则需要另一级分段。例如,在服务器级别可能需要额外的分段以允许多个“子租户”向其客户提供云服务。服务器级别的分段可能需要分段的底层网络。此外,分段的底层网络的使用可能对于防止联网冲突是有用的,其中需要使用相同的配置来测试不同版本或大小的应用程序堆栈。
75.传统上,可以通过在每个子租户的服务器所连接的网络交换机的接口上配置vlan来实现分段网络。但是,这些交换机上的vlan的配置可能是复杂的。此外,这样的系统在网段之间实现了具有生成树的l2网络,其可能是低效的,并且这样的系统在一组连接的交换机上受限于4096个vlan。
76.根据本公开的技术,数据中心10自动化此进程,本文描述为“数据中心切片”,其使用覆盖网络22分割数据中心10的物理网络为了子租户的使用,以在隔离环境中实施云或其他服务。例如,本公开的技术可以使用evpn控制平面,其可以比单独使用vlan更稳健和可扩展。数据中心10实施vxlan(或一些其他封装)以根据网络策略连接物理服务器12的接口,以在服务器12的子集之间创建底层网络段26。每个数据中心10的租户被分配一个服务器12的池(其中不需要是物理邻居),其封装在vxlan网络的vxlan段26中。然后,每个租户可以在vxlan段内安装覆盖控制器28,并将服务器12配置为该覆盖控制器28的计算节点。云中的联网通常使用在每个计算节点12上运行的虚拟联网软件组件之间的覆盖网络22来完成。
77.此外,交换机端口之间的每个底层网络段26用于支持子租户的覆盖网络22。两个
级别的封装可以彼此完全独立地运行并且没有交互。因此,如上所述,数据中心10可以被“切片”成多个底层段26。此外,底层段26的端点可以附加到覆盖网络22,以分割每个底层网络段26内的子租户。底层段26的端点可以是附加到工作负载接口的虚拟交换机或路由器21,诸如在计算机节点12上运行的vm 36。此外,子租户环境由覆盖网络22分段,其中端点是附加到服务器12的接口的交换机中的封装端点。
78.例如,这些子租户可以是与管理物理网络的租户(例如,在底层段26之一上),数据中心10的所有者内的不同组或部门,或数据中心10的管理分开的组织。除了创建隔离的子租户环境,本公开的技术可以通过配置网关设备来提供对那些环境的访问。通过类似的方式来创建子租户环境,本公开的技术可以提供对服务器硬件管理接口的隔离的子租户访问。
79.在一些示例中,网关可以用于允许子租户管理员在每个底层段26内安装并访问协调器28。此网关可以被配置为提供从子租户环境到服务器12的ipmi(或其他硬件管理接口)的访问。在此示例中,每个ipmi地址都可以由子租户管理员和租户管理员两者访问。
80.可以通过创建vxlan网络来向每个子租户提供分段ipmi访问,其当服务器12对于子租户可用时,服务器12的ipmi接口将配置为该vxlan网络。在这种情况下,每个ipmi接口都可以从租户管理员被分配给子租户管理员。
81.如果提供了适当的网关访问,则单个底层协调器24可以管理租户环境(例如,底层网络段26)。例如,每个租户可以与openstack项目相关联,其中每个openstack项目在专用可用区域中被分配服务器12。可用区域可以具有聚合(标签)集,使得仅关联项目中的用户才能管理这些服务器12并将工作负载放在它们上。
82.在一些示例中,数据中心10使用物理服务器12和虚拟机36之间的切片连接来实现对于子租户的裸金属服务器(bms)到vm/容器连接。在此示例中,bms 12所在其中的底层段26可以是配置为在没有封装下路由交换结构14中的流量。来自覆盖网络22内的vm 36的网络流量被传递到底层段26,并且来自vm 36和bms 12两者的arp请求被泛洪到覆盖网络22中。在一些示例中,虚拟转发器在例如包含vm 36的覆盖网络22a和包含bms 12的底层段26a之间直接路由流量。
83.在一些示例中,vm 36可以使用浮动ip(fip)地址。例如,底层控制器25可以向每个底层段26分配多个fip地址。覆盖控制器28可以向每个覆盖网络22分配多个分配给覆盖控制器28被实例化至其中的底层段26的fip地址的子集。此外,覆盖控制器28可以向覆盖网络22内的每个虚拟路由器21分配多个fip地址的子集的fip地址。
84.在一些示例中,源网络地址转换(snat)可以用于在底层段26a和覆盖网络22之间交换流量。例如,底层控制器24可以为底层段26a提供用于底层段26a的vtep和底层段26a的覆盖网络22之间的snat网关。snat网关可以为vtep 29a、服务器12和虚拟路由器21进行地址转换。例如,snat网关可以用于将从覆盖网络22的虚拟路由器21接收的流量转发到vtep 29a。此外,snat网关可以用于将从vtep 29a接收的流量转发到覆盖网络22的虚拟路由器21。在一个示例中,可以在发送流量的虚拟机正在运行的服务器12上的虚拟路由器21中执行snat功能。
85.图3是说明更详细的图1的底层控制器24的示例实现的框图。在图3的示例中,底层控制器24包括编排引擎300和sdn控制器302。
86.sdn控制器302包括一个或多个分析节点350a-350x(统称为“分析节点350”),一个或多个配置节点352a-352x(统称为“配置节点352”)和控制节点354a-354x(统称为“控制节点354“)。通常,节点350,352和352中的每一个可以实现为单独的软件进程,并且节点可以分布在多个硬件计算平台上,其提供用于执行软件的环境。此外,每个节点维护状态数据356,其可以存储在集中式或分布式数据库内。在一些示例中,状态数据库356是nosql数据库。在一些示例中,状态数据库356是数据库集群。
87.通常,分析节点350的任务是收集、存储、关联和分析来自例如图1的数据中心10的evpn 23内的虚拟和物理网络元件的信息。此信息可以包括用于管理evpn 23的路由和网络配置的统计、日志、事件和错误。分析节点350存储此信息在状态数据库356中。
88.配置节点352将编排引擎300的高级数据模型转换成适合于与诸如物理交换机16、18的网络元件进行交互的低级模型。配置节点352在状态数据库56内保持sdn控制器302的配置状态的持久副本。
89.控制节点354实现负责维护临时网络状态的逻辑集中控制平面。控制节点354彼此交互并与网络元件交互,诸如物理交换机16、18,以确保网络状态最终与编排引擎300指定的期望状态一致。通常,控制节点354从配置节点352接收sdn控制器302的配置状态,并且经由ibgp彼此交换路由以确保所有控制节点354具有相同的网络状态。此外,控制节点354经由bgp或netconf与物理交换机16、18交换路由。例如,控制节点354将配置状态信息(诸如路由实例和转发策略)经由bgp或netconf传送到物理交换机16、18,以便安装在物理交换机16、18内。此外,控制节点354经由bgp与物理交换机16、18交换路由,并且经由netconf与物理交换机16、18交换sdn控制器302的配置状态。
90.配置节点352提供发现服务,数据中心10的租户可以用其以定位底层段26内可获得的各种服务。例如,如果物理交换机16、18尝试与控制节点354a的连接,则它使用通过配置节点352提供的发现服务以发现控制节点354a的ip地址。物理交换机16、18可以使用本地配置,dhcp或dns来在配置节点352内定位服务发现服务器。
91.在一些示例中,配置节点352呈现与编排引擎300接口的北向api。编排引擎300使用此接口来使用高级数据模型来安装配置状态。配置节点352还包括消息总线以促进内部组件之间的通信。配置节点352还包括变换器,其发现编排引擎300的高级模型中的变化,并将这些变化转换为由sdn控制器302管理的低级数据模型中的相应变化。在一些示例中,配置节点352还包括服务器,其提供南向api以将计算的低级配置向下推送到控制节点354。此外,配置节点352包括分布式应用管理器,被用于分配独特对象标识符并实现跨evpn 23的事务。
92.根据本公开的技术,一个或多个控制节点354在交换机16、18上配置底层网络。一个或多个控制节点354进一步配置多个底层段26a-24n(下文,“底层段26”)。如图3所示,每个底层段26包括图1的交换结构14的不同机箱交换机18和tor交换机16,其支持图1的服务器12的不同子集。在一些示例中,底层网络是vxlan,并且每个底层网络段26被配置为vxlan的多个vxlan段中的一个vxlan段。底层段26在图1的主机计算设备(例如,服务器12)的不同子集之间提供底层网络连接。
93.一个或多个控制节点354将多个租户的不同租户分配给底层网络,其通过相应的底层段26传输l2通信,使得主机计算设备(例如,图1的服务器12)的不同子集支持租户所分
配至的底层段26。这样,底层段26的机箱交换机18和tor交换机16可以从图1的服务器12接收租户的客户流量,并且通过图1底层网络的服务提供者网络7转发流量。类似地,机箱交换机18和tor交换机16可以从底层网络接收l2通信并转发l2通信以经由底层段26传输到服务器12。以这种方式,底层段26作为服务器12的底层网络和子集之间的网关操作。因此,一个或多个控制节点354可以实现跨交换结构14的多个租户的编排,每个租户在交换结构14上与彼此逻辑隔离。也就是说,在数据中心5内提供的各种客户网络可以实际上隔离在evpn 23的不同底层段26上。
94.图4是说明更详细的图1的覆盖控制器28的示例实现的框图。在图4的示例中,覆盖控制器28包括编排引擎400和sdn控制器402。编排引擎400和sdn控制器402可以以分别与图3的底层控制器24的编排引擎300和sdn控制器302基本类似的方式操作。
95.sdn控制器402包括一个或多个分析节点450a-450x(统称为“分析节点450”),一个或多个配置节点452a-452x(统称为“配置节点452”)和控制节点454a-454x(统称为“控制节点454“)。通常,节点450、452和452中的每一个可以以与类似节点350、352和352基本类似的方式操作。然而,与底层控制器24相比,配置节点452可以服务于配置vr代理35和覆盖网络22,同时控制节点454可以服务于实现负责维护vr代理30和覆盖网络22的临时网络状态的逻辑集中控制平面。例如,控制节点454经由例如xmpp通信配置状态信息至vr代理35,诸如路由实例和转发策略,以便在相应的虚拟路由器30内的安装。
96.根据本公开的技术,一个或多个控制节点454控制覆盖网络22a-22n的编排。例如,关于图4,一个或多个控制节点454控制例如图1的底层段26a的覆盖网络22的网络配置,为了虚拟网络端点之间的分组通信。此外,一个或多个控制节点454控制跨覆盖网络22的虚拟执行元件的部署、扩展和操作。
97.在一些示例中,一个或多个控制节点454将底层段26a的多个子租户的子租户分配给不同的重叠网络22,使得每个子租户可以虚拟地与每个其他子租户隔离。也就是说,每个覆盖网络22可以包括用于服务器12的逻辑上分离的路由实例,并且每个覆盖网络22操作以桥接两个不同的内部路由实例之间的流量。因此,一个或多个控制节点454可以实现覆盖网络22中的多个子租户的编排,每个子租户具有专用虚拟网络,使用例如vxlan,其与底层段26a内的其他子租户的虚拟网络隔离。因此,一个或多个控制节点454可以实现支持例如底层段26a的主机计算设备12的子集中的多个子租户的编排,每个子租户具有专用网络,其与主机计算设备12的子集的每个其他子租户隔离。
98.图5是说明根据本公开的技术的示例操作的流程图。为方便起见,参照图1描述图5。
99.关于图5的示例,底层控制器24配置多个底层网络段26以实现多个租户(500)的编排。每个底层段是由交换结构14的机箱交换机18和tor交换机16实现的虚拟段。在一些示例中,底层网络是vxlan,并且每个底层网络段被配置为vxlan的多个vxlan段中的一个vxlan段。每个底层段在网络8的主机计算设备(例如,服务器12)的不同子集之间提供底层网络连接。
100.底层控制器24将不同的租户分配给每个底层网络段26(502)。这样,机箱交换机18和tor交换机16可以经由对应于底层段的vxlan隧道端点29a-29b(下文,“vtep 29”)接收租户各自服务器12的客户流量,并且经由evpn 23将流量转发到服务提供者网络7。类似地,机
箱交换机18和tor交换机16可以从evpn 23接收l2通信,并且转发l2通信以经由对应于底层段的vtep 29传输到服务器12。以这种方式,用于底层段的vtep 29作为evpn 23与服务器12的子集之间的网关操作。也就是说,每个底层段可以包括用于服务器12的逻辑上独立的路由实例,并且每个vtep 29操作以桥接两个不同内部路由实例之间的流量。底层控制器24控制将租户的网络流量转发到相应的底层网络段(504)。因此,底层控制器24可以实现evpn 23中的多个租户的编排,每个租户具有覆盖在机箱交换机18和tor交换机16上的逻辑上隔离的底层网络。也就是说,在数据中心5内提供的各种客户网络可以虚拟地隔离到evpn 23的不同的底层上。
101.覆盖控制器28在主机计算设备(例如,服务器12)的第一子集中配置多个覆盖网络22,以实现多个子租户的编排(506)。通常,覆盖控制器28控制底层段的覆盖网络22的网络配置,用于虚拟网络端点之间的分组化通信。此外,覆盖控制器28控制跨越覆盖网络22的虚拟执行元件的部署、扩展和操作。
102.覆盖控制器28将子租户分配给每个覆盖网络22(508)。也就是说,每个覆盖网络22可以包括用于服务器12的逻辑上分离的路由实例,并且每个覆盖网络22操作以桥接两个不同的内部路由实例之间的流量。因此,覆盖控制器28可以实现覆盖网络22中的多个子租户的编排,每个子租户具有一个或多个专用虚拟网络,使用例如vxlan,其与底层段内的其他子租户的虚拟网络隔离。此外,覆盖控制器28控制将子租户的网络流量转发到相应的覆盖网络22(510)。因此,覆盖控制器28可以实现支持底层段的主机计算设备的第一子集中的多个子租户的编排,每个子租户具有专用网络,其与主机计算设备的第一子集的每个其他子租户隔离。
103.图6是说明使用vlan的数据中心的分段底层网络的示例的框图。具体地,vlan配置在分段的底层网络的每个交换机接口上。图6的分段底层网络可以实现第2层分级或第3层层clos。图6的分段底层网络的一个劣势是可能需要使用在vlan中泛洪的生成树和bum。
104.图7是说明根据本公开的技术的使用vxlan的数据中心的分段底层网络的示例的框图。图7的分段底层网络可以在交换机接口上配置vtep。vxlan的使用可以允许图7的分段底层网络以实现具有有限bum流量泛洪的evpn控制平面。
105.图8是说明根据本公开的技术的多个隔离覆盖网络22的示例的框图。隔离的覆盖网络22可以是例如用于子提供者的隔离的云环境。子提供者管理员可以经由网关或vpn访问服务器12。数据中心可以将服务器分配给子提供者,并将他们的vxlan附接到服务器。
106.图9是说明根据本公开的技术的多个隔离覆盖网络22的另一示例的框图。隔离的覆盖网络22可以是例如用于多个实验室部署的隔离的云环境。数据中心可以使用相同的租户联网进行多个部署。覆盖网络22可以避免与底层路由或sr-iov的冲突。
107.图10是说明根据本公开的技术的子提供者硬件管理网络的示例的框图。图10的网络可以为子提供者管理员提供对他们自己的硬件管理网络的访问。此外,数据中心的管理员可能拥有他们自己的ipmi vxlan。
108.图11是说明根据本公开的技术的数据中心切片和多个隔离云的单一协调器集群管理的示例的框图。图11的系统可以允许单个协调器经由网关访问多个子云。管理员可以使用具有租户id聚合过滤的可用区域来进行项目之间的隔离。
109.图12是说明根据本公开的技术的子提供者网络中的虚拟机(vm)之间的数据路径
的示例的框图。如图12中所描绘,子提供者编排在子提供者vxlan中进行。此外,vxlan由数据中心管理,同时租户覆盖允许子提供者的vm之间的隧道。协调器和vm之间的bgp会话在子提供者vxlan内。
110.图13是说明根据本公开的技术的用于提供裸金属服务器(bms)的数据路径的示例的框图。子提供者管理员可以使协调器在bms中提供系统。协调器可以使用vxlan经由通过数据中心管理的交换结构连接到bms。在一些示例中,协调器在子提供者结构中使用ironic,pxe,tftp等。
111.图14是说明根据本公开的技术的vm和bms之间的数据路径的示例的框图。如图14所描绘,vm和bms在相同网络中。bms可能会使用bum流量泛洪本地结构。vm也可以使用bum流量泛洪结构。bms网络使用结构路由。vrouter可以直接将vm连接到不同网络中的bms。
112.图15是说明根据本公开的技术的浮动ip地址(fip)数据路径的示例的框图。子提供者管理员可以使协调器从数据中心管理员请求网关中的租户vrf。协调器可以使用xmpp来管理vm。例如,协调器可以为fip池网络建立vrf。此外,协调器可以使用bgp来访问数据中心的网关。
113.图16是说明根据本公开的技术的用于第2层转发器的不同网络中的vm和bms的示例使用的框图。bms和vm两者可以使用bum流量泛洪本地结构。协调器可以使用ironic等来管理bms。此外,每个vm可以实现l2转发器。此外,系统可以在具有用于虚拟化路由器中的每个网络的irb的vrf中的网络之间进行路由。
114.图17是说明根据本公开的技术的用于非重叠子提供者结构中的子提供者的源网络地址转换(snat)网关的示例的框图。企业网络可以提供路由器,其是经由inet.0转发的子提供者结构的默认网关。结构子网通告到企业网络中。
115.图18是说明根据本公开的技术的snat数据路径的示例的框图。协调器可以使用xmpp以配置vm的网关。协调器可以进一步经由bgp配置数据中心的网关。
116.图19是说明根据本公开的技术的用于在重叠子提供者结构中的子提供者的snat网关的示例的框图。在图19的示例中,系统为每个子提供者使用单独的网关。此外,每个子提供者被分配重叠的子提供者结构。路由器是使用nat转发的子提供者结构的默认网关。
117.图20是说明根据本公开的技术的用于使用非重叠fip池的子提供者的fip的示例使用的框图。在图20的示例中,系统为每个子提供者使用单独的网关。此外,每个子提供者分配非重叠的fip池。路由器是vxlan的默认网关。irb连接到每个vtep。vtep有具有用于租户网络的默认网关的irb。系统使用inet.0中的转发以通告fip网络。
118.图21是说明使用用于非重叠子提供者结构中的子提供者的snat和具有非重叠租户网络的fip的共享网关的示例的框图。snat可用于非重叠的子提供者结构。bgp可用于通信结构池。fip可用于非重叠租户网络。bgp可用于通信提供者fip池。
119.图22是说明使用用于重叠子提供者结构中子提供者的snat和具有重叠租户网络的fip的共享网关的示例的框图。snat可用于重叠子提供者结构。bgp可用于通信结构池。fip可用于重叠租户fip网络。bgp可用于通信租户fip池。
120.除上述之外或作为其替代,描述了以示例。以下任何示例中描述的特征可以与本文描述的任何其他示例利用。
121.示例1.一种方法,包含:通过由用于虚拟化计算基础设施的第一控制器配置在交
换结构中的虚拟化可扩展局域网(vxlan)的多个vxlan段中的相应的vxlan段,来配置虚拟化计算基础设施中的多个底层网络段,以实现vxlan中的多个租户的编排,交换结构包含用于虚拟化计算基础设施的网络交换机,其中,多个vxlan段中的每个vxlan段在虚拟化计算基础设施的主机计算设备的不同子集之间提供底层网络连接;并且由通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集的第二控制器配置主机计算设备的第一子集中的多个覆盖网络,以实现主机计算设备的第一子集中的多个子租户的编排。
122.示例2.如示例1所述的方法,还包括:将不同的租户分配给多个底层网络段中的每个底层网络段;并且由第一控制器控制将租户的网络流量转发到被分配了租户的多个底层网络段的对应底层网络段。
123.示例3.如示例1至2中任一项所述的方法,还包括:将不同的子租户分配至主机计算设备的第一子集中的多个覆盖网络中的每个覆盖网络;并且由第二控制器控制将子租户的网络流量转发到被分配了子租户的主机计算设备的第一子集中的多个覆盖网络中的相应覆盖网络。
124.示例4.如示例1至3中任一项所述的方法,还包括:针对主机计算设备的第一子集中的多个覆盖网络中的第一覆盖网络配置多个虚拟路由器,多个虚拟路由器被配置为处理被分配给第一覆盖网络的子租户的网络流量。
125.示例5.如示例4所述的方法,还包括:将多个浮动ip(fip)地址分配给通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集;将多个fip地址的子集分配至主机计算设备的第一子集中的多个覆盖网络的第一覆盖网络;并且将多个fip地址的子集的fip地址分配至第一覆盖网络的多个虚拟路由器中的每个虚拟路由器。
126.实施例6.如示例1至5中任一项所述的方法,还包含为vxlan段中的第一vxlan段提供用于第一vxlan段的vxlan隧道端点(vtep)与多个覆盖网络之间的源网络地址转换(snat)网关。
127.示例7.一种系统,包括:用于虚拟化计算基础设施的第一控制器,第一控制器在处理电路上运行并且被配置为:通过配置在交换结构中的可扩展局域网(vxlan)的多个vxlan段的相应的虚拟化vxlan段,来配置虚拟化计算基础设施中的多个底层网络段,以实现vxlan中的多个租户的编排,交换结构包含用于虚拟化计算基础设施的网络交换机,其中,多个vxlan段中的每个vxlan段在虚拟化计算基础设施的主机计算设备的不同子集之间提供底层网络连接;以及第二控制器,第二控制器用于通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集,第二控制器被配置为在主机计算设备的第一子集中配置多个覆盖网络,以实现主机计算设备的第一子集中的多个租户的编排。
128.示例8.如示例7所述的系统,其中第一控制器进一步被配置为:将不同的租户分配至多个底层网络段中的每个底层网络段;并且控制将租户的网络流量转发到被分配了租户的多个底层网络段中的相应底层网络段。
129.示例9.如示例7至8中任一项所述的系统,其中第二控制器进一步被配置为:将不同的子租户分配至主机计算设备的第一子集中的多个覆盖网络中的每个覆盖网络;控制将子租户的网络流量转发到被分配了子租户的主机计算设备的第一子集中的多个覆盖网络中的相应覆盖网络。
130.示例10.如示例7至9中任一项所述的系统,其中第二控制器进一步被配置为:针对主机计算设备的第一子集中的多个覆盖网络中的第一覆盖网络配置多个虚拟路由器,多个虚拟路由器被配置为处理分配给第一覆盖网络的子租户的网络流量。
131.示例11.如示例10所述的系统,其中第一控制器进一步被配置为:将多个浮动ip(fip)地址分配至通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集;其中第二控制器进一步被配置为将多个fip地址的子集分配至主机计算设备的第一子集中的多个覆盖网络的第一覆盖网络;并且其中,第二控制器进一步被配置为将多个fip地址的子集的fip地址分配至第一覆盖网络的多个虚拟路由器中的每个虚拟路由器。
132.示例12.如示例7至11中任一项所述的系统,其中第二控制器进一步被配置为:为vxlan段中的第一vxlan段提供第一vxlan段的vxlan隧道端点(vtep)与多个覆盖网络之间的源网络地址转换(snat)网关。
133.示例13.一种包含指令的非暂时性计算机可读介质,当被执行时指令使处理电路执行:用于虚拟化计算基础设施的第一控制器,第一控制器被配置为:通过配置在交换结构中的可扩展局域网(vxlan)的多个vxlan段的相应的虚拟化vxlan段,来配置虚拟化计算基础设施中的多个底层网络段,以实现vxlan中的多个租户的编排,交换结构包含用于虚拟化计算基础设施的网络交换机,其中,多个vxlan段中的每个vxlan段在虚拟化计算基础设施的主机计算设备的不同子集之间提供底层网络连接;以及第二控制器,用于通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集,第二控制器被配置为:配置主机计算设备的第一子集中的多个覆盖网络,以实现主机计算设备的第一子集中的多个子租户的编排。
134.示例14.如示例13所述的计算机可读介质,其中第一控制器进一步被配置为:将不同的租户分配给多个底层网络段的每个底层网络段;并且控制将租户的网络流量转发到被分配了租户的多个底层网络段的对应底层网络段。
135.示例15.如示例13至14中任一项所述的计算机可读介质,其中第二控制器进一步被配置为:将不同的子租户分配至主机计算设备的第一子集中的多个覆盖网络中的每个覆盖网络;控制将子租户的网络流量转发到被分配了子租户的主机计算设备的第一子集中的多个覆盖网络中的相应覆盖网络。
136.示例16.如示例13至15中任一项所述的计算机可读介质,其中第二控制器进一步被配置为:针对主机计算设备的第一子集中的多个覆盖网络中的第一覆盖网络配置多个虚拟路由器,多个虚拟路由器被配置为处理被分配给第一覆盖网络的子租户的网络流量。
137.示例17.如示例16所述的计算机可读介质,其中,第一控制器进一步被配置为将多个浮动ip(fip)地址分配给通过操作vxlan段中的第一vxlan段而具有底层网络连接的主机计算设备的第一子集;其中,第二控制器进一步被配置为将多个fip地址的子集分配至主机计算设备的第一子集中的多个覆盖网络的第一覆盖网络;并且其中,第二控制器进一步被配置为将多个fip地址的子集的fip地址分配至第一覆盖网络的多个虚拟路由器中的每个虚拟路由器。
138.示例18.如示例13至17中任一项所述的计算机可读介质,其中第二控制器进一步被配置为:为vxlan段中的第一vxlan段提供用于第一vxlan段的vxlan隧道端点(vtep)与多
个覆盖网络之间的源网络地址转换(snat)网关。
139.此外,可以将上述任何示例中列出的任何特定特征组合成所描述技术的有益示例。也就是说,任何特定特征通常适用于本发明的所有示例。已经描述了本发明的各种示例。
140.本公开中所描述的技术可至少部分地以硬件,软件,固件或其任何组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器,数字信号处理器(dsp),特殊应用集成电路(asic),现场可编程门阵列(fpga)或任何其他等效的集成或离散逻辑电路,以及这些组件的任何组合。术语“处理器”或“处理电路”通常可以指任何前述逻辑电路,单独或与其他逻辑电路或任何其他等效电路组合。包含硬件的控制单元还可以进行本公开的一种或多种技术。
141.这样的硬件,软件和固件可以在同一设备内或在单独的设备内实现,以支持本公开中描述的各种操作和功能。另外,任何所描述的单元,模块或组件可以一起或单独实现为离散但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并且不一定暗示这些模块或单元必须由单独的硬件或软件组件实现。而是,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件进行,或者在公共或单独的硬件或软件组件中集成。
142.本公开中所描述的技术还可在包含指令的计算机可读介质中嵌入或编码,诸如计算机可读存储介质。在计算机可读存储介质中嵌入或编码的指令可以使可编程处理器或其他处理器进行该方法,例如,当执行指令时。计算机可读存储介质可包括随机存取存储器(ram),只读存储器(rom),可编程只读存储器(prom),可擦除可编程只读存储器(eprom),电可擦除可编程只读存储器(eeprom),闪存,硬盘,cd-rom,软盘,盒式磁带,磁性介质,光学介质或其他计算机可读介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1