CN114026826B - 提供商网络底层扩展的提供商网络连接管理 - Google Patents

提供商网络底层扩展的提供商网络连接管理 Download PDF

Info

Publication number
CN114026826B
CN114026826B CN202080047186.XA CN202080047186A CN114026826B CN 114026826 B CN114026826 B CN 114026826B CN 202080047186 A CN202080047186 A CN 202080047186A CN 114026826 B CN114026826 B CN 114026826B
Authority
CN
China
Prior art keywords
pse
provider network
computing
sad
network
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
Application number
CN202080047186.XA
Other languages
English (en)
Other versions
CN114026826A (zh
Inventor
A·N·利古里
E·S·斯通
R·H·加利尔
D·J·古德尔
P·J·劳伦斯
林杨
W·艾希莉
S·A·卡迪
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US16/457,827 external-priority patent/US11374789B2/en
Priority claimed from US16/457,824 external-priority patent/US11659058B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN114026826A publication Critical patent/CN114026826A/zh
Application granted granted Critical
Publication of CN114026826B publication Critical patent/CN114026826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • 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
    • 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]

Abstract

提供商网络的第一服务获得包括在所述提供商网络的扩展中的一个或多个底层可寻址装置的标识。基于所述标识发起所述提供商网络内的一个或多个计算实例的启动。所述一个或多个计算实例用于通过接收被导向到所述一个或多个底层可寻址装置中的第一底层可寻址装置的第一控制平面消息,通过至少部分地基于所述第一控制平面消息更新消息状态数据存储区,并且通过经由安全隧道将第二控制平面消息发送到所述第一底层可寻址装置,来跨至少第三方网络将所述提供商网络连接到所述提供商网络的扩展。

Description

提供商网络底层扩展的提供商网络连接管理
技术领域
本申请涉及虚拟化技术。
背景技术
许多公司和其他组织操作计算机网络,所述计算机网络将众多计算系统互连以支持它们的操作,诸如其中计算系统位于同一位置(例如,作为本地网络的一部分)或替代地位于多个不同的地理位置(例如,经由一个或多个私有或公共中间网络进行连接)。例如,容纳显著数量的互连计算系统的数据中心已变得司空见惯,诸如由单个组织操作并代表所述组织的私有数据中心,以及由实体进行商业操作来向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户所拥有的硬件提供网络访问、电力和安全安装设施,而其他公共数据中心运营商提供还包括可供客户使用的硬件资源的“全方位服务”设施。然而,随着典型数据中心规模和范围的增加,供应、操纵和管理物理计算资源的任务变得越来越复杂。
商品硬件虚拟化技术的出现已针对管理大规模计算资源为具有不同需求的许多客户提供益处,从而允许各种计算资源由多个客户高效且安全地共享。例如,虚拟化技术可通过向每个用户提供由单个物理计算机器托管的一个或多个虚拟机来允许单个物理计算机器在多个用户之间共享。每个这样的虚拟机是充当向用户提供他们是给定硬件计算资源的唯一运营商和管理员的错觉的不同逻辑计算系统同时还提供各种虚拟机之间的应用隔离和安全性的软件模拟。此外,一些虚拟化技术能够提供跨越两个或更多个物理资源的虚拟资源,诸如具有跨越多个不同物理计算系统的多个虚拟处理器的单个虚拟机。作为另一示例,虚拟化技术可通过向每个用户提供可跨多个数据存储装置分布的虚拟化数据存储区来允许数据存储硬件在多个用户之间共享,其中每个这样的虚拟化数据存储区充当向用户提供他们是数据存储资源的唯一运营商和管理员的错觉的不同逻辑数据存储区。
响应于客户端请求,针对不同类型的应用(诸如计算密集型应用、存储器密集型应用等)优化的广泛多种虚拟机类型可在一些云计算提供商网络的数据中心处建立。此外,依赖于此类提供商网络的虚拟计算服务的较高级别服务(诸如数据库实例使用虚拟计算服务的虚拟机来实例化的一些数据库服务)也可提供给提供商网络客户端。然而,对于一些类型的应用(诸如处理必须存储在提供商网络外部的客户场所处的大量数据的应用),限于使用位于提供商网络的数据中心处的硬件来提供虚拟化资源的服务可能例如出于时延相关和/或其他原因而不是最佳的。
附图说明
将参考附图描述根据本公开的各种实施方案。
图1是示出根据至少一些实施方案的由位于示例性提供商网络外部的网络内的提供商底层扩展来扩展的提供商网络的框图。
图2是示出根据至少一些实施方案的示例性提供商底层扩展的框图。
图3是示出根据至少一些实施方案的提供商网络与提供商底层扩展之间的示例性连接的框图。
图4是示出根据至少一些实施方案的用于配置提供商网络以与提供商底层扩展进行通信的示例性系统的框图。
图5是示出根据至少一些实施方案的用于维持提供商网络与提供商底层扩展之间的通信的示例性系统的框图。
图6是示出根据至少一些实施方案的用于配置提供商网络以与提供商底层扩展进行通信的方法的操作的流程图。
图7是示出根据至少一些实施方案的用于与提供商底层扩展通信以与提供商网络外部的网络通信的方法的操作的流程图。
图8示出根据至少一些实施方案的示例性提供商网络环境。
图9是根据至少一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供商网络的框图。
图10是示出可在至少一些实施方案中使用的示例性计算机系统的框图。
具体实施方式
本公开涉及用于配置提供商底层扩展以与提供商网络外部的网络进行通信的方法、设备、系统和非暂时性计算机可读存储介质。提供商网络运营商(或提供商)向其用户(或客户)提供利用各种类型的计算相关资源中的一种或多种的能力,所述资源诸如计算资源(例如,执行虚拟机(VM)和/或容器、执行批处理作业、在不供应服务器的情况下执行代码)、数据/存储资源(例如,对象存储、块级存储、数据归档存储、数据库和数据库表等)、网络相关资源(例如,配置包括计算资源组的虚拟网络、内容递送网络(CDN)、域名服务(DNS))、应用资源(例如,数据库、应用构建/部署服务)、访问策略或角色、身份策略或角色、机器图像、路由器和其他数据处理资源等。这些和其他计算资源可作为服务来提供。
提供商网络运营商通常将这些和其他计算资源作为依赖虚拟化技术的服务来提供。例如,虚拟化技术可用于向用户提供控制或利用计算实例(例如,使用使用可能或可能不进一步在基础主机OS上操作的管理程序操作的来宾操作系统(OS)的VM、可能在或可能不在VM中操作的容器、可在没有基础管理程序的情况下在“裸机(bare metal)”硬件上执行的实例)的能力,其中一个或多个计算实例可使用单个电子装置来实现。因此,用户可直接利用由提供商网络托管的实例管理服务(有时称为硬件虚拟化服务)提供的计算实例来执行多种计算任务。另外或替代地,用户可通过提交将由提供商网络(例如,经由按需代码执行服务)执行的代码间接地利用计算实例,所述提供商网络继而利用计算实例来执行代码,通常用户对所涉及的一个或多个基础计算实例没有任何控制或了解。
支持向用户提供计算相关资源的服务和供应给用户的那些计算相关资源两者的资源通常可称为提供商网络底层。此类资源通常包括呈许多联网计算机系统形式的硬件和软件。在各种实施方案中,提供商网络底层的业务和操作可大体细分为两类:通过逻辑控制平面承载的控制平面业务和通过逻辑数据平面承载的数据平面操作。数据平面表示用户数据通过分布式计算系统的移动,而控制平面表示控制信号通过分布式计算系统的移动。控制平面通常包括跨一个或多个控制服务器分布并由其实现的一个或多个控制平面部件。控制平面业务通常包括管理操作,诸如为各种客户建立隔离虚拟网络、监控资源使用和健康、标识要在其上启动请求的计算实例的特定主机或服务器、根据需要供应另外的硬件等。数据平面包括在提供商网络上实现的客户资源(例如,计算实例、容器、块存储卷、数据库、文件存储)。数据平面业务通常包括非管理操作,诸如与客户资源之间传输数据。控制平面部件通常在与数据平面服务器分开的一组服务器上实现,并且控制平面业务和数据平面业务可通过单独/不同网络发送。在一些实施方案中,控制平面业务和数据平面业务可由不同协议支持。在一些实施方案中,通过提供商网络发送的消息(例如,数据包)包括用于指示业务是控制平面业务还是数据平面业务的标志。在一些实施方案中,可检查业务的有效负载以确定其类型(例如,是控制平面还是数据平面)。用于区分业务类型的其他技术是可能的。
虽然一些客户应用容易迁移到提供商网络环境,但一些客户工作负载由于低时延、高数据量、数据安全性或其他客户数据处理要求而需要保留在本地(“本地”)。示例性本地环境包括客户数据中心、机器人集成、现场位置、协同定位设施、电信设施(例如,靠近蜂窝塔)等。为了满足客户要求,本公开涉及本地底层类资源的部署。术语“提供商底层扩展”(PSE)是指客户可在本地(诸如在地理上与提供商网络分开的位置)部署但提供与提供商网络中所提供的相同或类似的功能(例如,虚拟化计算资源)的资源集合(例如,硬件、软件、固件、配置元数据等)。此类资源可作为在机架或机柜(诸如在本地位置常见的那些)中递送的一个或多个计算机系统或服务器物理地递送。PSE可向客户提供可在本地部署的一组特征和能力,类似于上述提供商网络的那些特征。实际上,从提供商网络的客户的角度来看,PSE表示提供商网络能力的本地扩展,它可建立在可容纳PSE的任何期望物理位置处(例如,相对于物理空间、电力、互联网接入等)。从提供商网络本身的角度来看,PSE可视为虚拟地位于与核心提供商网络底层相同的提供商网络数据中心,同时物理地位于客户所选择部署站点。在至少一些实施方案中,实际托管PSE的客户可向其自己的客户(例如,提供商网络的其他用户)授予许可以允许这些用户启动实例以在客户的本地位置处的PSE内托管它们相应的工作负载,并且在一些情况下,允许这些工作负载访问客户的网络。
在至少一些实施方案中,PSE可例如由提供商网络运营商利用硬件、软件和/或固件元件的适当组合预先配置以支持各种类型的计算相关资源,并以满足各种本地数据处理要求的方式如此做,而不会损害提供商网络本身或提供商网络的任何其他客户的安全。在至少一些实施方案中,PSE通常通过客户将用来访问提供商网络内的计算相关资源的相同或相似的一组接口来管理。例如,客户可使用与原本它们将用来供应、管理和操作提供商网络内的计算相关资源相同的应用编程接口(API)或基于控制台的接口通过提供商网络供应、管理和操作在各种部署站点处的其一个或多个本地PSE内的计算相关资源。
在至少一些实施方案中,提供商网络的资源实例化各种联网部件以确保提供商网络与PSE之间安全且可靠的通信。这些部件可与PSE建立一个或多个安全隧道(例如,VPN)。此类部件可进一步划分控制平面业务和数据平面业务,并且基于包括业务方向(例如,去往或来自PSE)的因素不同地处理每种类型的业务。在至少一些实施方案中,控制平面服务为部署的PSE动态地供应和配置这些联网部件。这种控制平面服务可监控每个PSE的联网部件,并且调用被设计来防止与PSE的通信由于提供商网络内发生的故障而丢失的自恢复或修复机制。
为了利用PSE与本地部署站点(相对于提供商网络的不太接近的数据中心)的接近度,PSE提供多种连接选项以允许客户的其他资源(即,连接到客户的本地网络)与由PSE托管的计算相关资源进行通信。在至少一些实施方案中,PSE网关管理PSE与其他客户资源之间的通信。客户可通过向提供商网络的接口发出一个或多个API调用来配置PSE网关,这导致将控制平面命令发送到PSE。PSE继而处置由客户的本地站点中的其他装置发送或中继到PSE的业务,且反之亦然。
所公开的系统和技术还使提供商网络免受可能通过将PSE连接到提供商网络而实现的潜在安全问题的影响。在一些实施方案中,PSE可能需要从安装它们的客户站点到提供商网络底层(例如,机器的物理网络)的安全联网隧道以便操作。这些隧道可包括托管在虚拟化计算实例(例如,VM)和底层两者上的虚拟基础设施部件。隧道部件的示例包括VPC和代理计算实例和/或在计算实例上运行的容器。PSE中的每个服务器可使用至少两个隧道,一个用于控制平面业务并且一个用于数据平面业务。如下文更详细描述,沿着提供商网络底层与PSE之间的网络路径定位的中介资源可安全地管理底层与PSE之间流动的业务。
在至少一些实施方案中,提供商网络是云提供商网络。云提供商网络或“云”是指可访问的虚拟化计算资源(诸如计算资源、存储资源和联网资源、应用和服务)的大型池。云可提供对可配置计算资源共享池的便捷、按需网络访问,所述资源可响应于客户命令以编程方式供应和释放。这些资源可动态地供应和重新配置为适应可变负载。因此,云计算既可视为通过公共可访问网络(例如,互联网、蜂窝通信网络)作为服务递送的应用且可视为提供这些服务的云提供商数据中心中的硬件和软件。
云提供商网络可形成为多个区域,其中区域是云提供商集群数据中心所在的地理区域。每个区域可包括经由专用高速网络(例如,光纤通信连接)相互连接的两个或更多个可用区。可用区是指隔离的故障域,包括一个或多个数据中心设施,所述设施与另一可用区中的设施具有分开的电力、分开的联网和分开的冷却。优选地,区域内的可用区定位成彼此相距足够远,使得同一自然灾害不应使多于一个可用区同时离线。客户可经由公共可访问网络(例如,互联网、蜂窝通信网络)连接到云提供商网络的可用区。本文描述的PSE也可经由公共可访问网络连接到一个或多个可用区。
云提供商网络可包括称为底层的物理网络(例如,金属板盒、电缆)。云提供商网络还可包括在底层上运行的虚拟化计算资源的覆盖网络。因此,网络数据包可根据覆盖网络中的构造(例如,VPC、安全组)沿着底层网络路由。映射服务可协调这些网络数据包的路由。映射服务可以是区域分布式查找服务,其将覆盖IP和网络标识符的组合映射到底层IP,使得分布式底层计算装置可查找向何处发送数据包。
举例来说,每个物理主机可在底层网络中拥有IP地址。硬件虚拟化技术可使得多个操作系统能够在主机计算机上例如作为主机上的虚拟机同时运行。主机上的管理程序或虚拟机监视器在主机上的各种虚拟机之间分配主机的硬件资源并监视虚拟机的执行。可在覆盖网络中向每个虚拟机提供一个或多个IP地址,并且主机上的虚拟机监视器可知道主机上的虚拟机的IP地址。虚拟机监视器(和/或网络底层上的其他装置或进程)可使用封装协议技术封装网络数据包(例如,客户端IP数据包)并在云提供商网络内不同主机上的虚拟化资源之间通过网络底层路由所述网络数据包。封装协议技术可在网络底层上使用以经由覆盖网络路径或路线在网络底层上的端点之间路由经封装数据包。封装协议技术可视为提供覆盖在网络底层上的虚拟网络拓扑。封装协议技术可包括映射服务,所述映射服务维护映射目录,所述映射目录将IP覆盖地址(公共IP地址)映射到底层IP地址(私有IP地址),云提供商网络上的各种进程可访问所述映射目录以用于在端点之间路由数据包。
本领域技术人员鉴于本公开将了解,某些实施方案可能能够实现各种优势,包括以下中的一些或全部:(a)使提供商网络运营商的客户能够以位置独立方式使用由客户选择的站点处的提供商管理的基础设施(例如,PSE)同时仍保留可扩展性、安全性、可用性和提供商网络可能带来的其他操作优势来部署广泛多种应用;(b)减少应用数据量和必须长距离传输(诸如通过客户数据中心与提供商网络数据中心之间的链路)的结果;(c)通过将应用移近数据源/目的地来提高可能大量数据作为输入被消耗或作为输出产生的应用整体时延和响应性;和/或(d)提高敏感应用数据的安全性。
图1是示出根据至少一些实施方案的由位于示例性提供商网络外部的网络内的提供商底层扩展来扩展的提供商网络的框图。在提供商网络100内,客户可创建一个或多个隔离的虚拟网络102。客户可在IVN内启动计算实例101以执行它们的应用。这些计算实例101由作为提供商网络底层(未示出)的一部分的底层可寻址装置(SAD)托管。类似地,作为提供商网络底层的一部分的SAD可托管控制平面服务104。示例性控制平面服务104包括允许客户或其他控制平面服务启动和配置实例和/或IVN的实例管理服务(有时称为硬件虚拟化服务)、提供对象存储的对象存储服务、提供将块存储装置附接到实例的能力的块存储服务、提供各种数据库类型的数据库服务等。
注意,提供商网络100内所示的部件可视为逻辑部件。如所提及,这些部件由提供商网络底层(未示出)的SAD托管。例如,提供商网络底层可使用在隔离虚拟网络(IVN)内操作的容器或虚拟机来托管实例101。此类容器或虚拟机由SAD执行。作为另一示例,提供商网络底层可在裸机配置(例如,没有虚拟化)中使用SAD来托管控制平面服务104中的一个或多个。在至少一些实施方案中,SAD是指由硬件执行的可经由提供商网络而不是另一网络(例如,客户网络、IVN等)的网络地址寻址的软件(例如,服务器)。在至少一些实施方案中,SAD可另外指代执行软件的基础硬件(例如,计算机系统)。
如图所示,提供商网络100与部署在客户网络185内的提供商底层扩展(PSE)188和部署在客户网络195内的PSE 198通信。每个PSE包括一个或多个底层可寻址装置(SAD),诸如PSE 188内所示的SAD 189A-189N。此类SAD 189促进PSE内计算相关资源的供应。注意,部件的实心框-省略号-虚线框组合的图示(诸如SAD 189A-189N的情况)通常用于指示在本图和后续图中可能存在一个或多个这些部件(尽管对应文本中的引用可能是指部件的单数或复数形式以及带有或不带有字母后缀)。客户网关/路由器186提供提供商网络100与PSE188之间以及PSE 188与其他客户资源187(例如,连接到客户网络185的其他本地服务器或服务)之间的连接。类似地,客户网关/路由器196提供提供商网络100与PSE 198之间以及PSE 198与其他客户资源197之间的连接。提供商网络100与PSE 198之间存在各种连接选项,诸如公共网络,如针对PSE 188所示的互联网或如针对PSE 198所示的直接连接。
在提供商网络100内,控制平面业务106通常(但不总是)被导向到SAD,而数据平面业务104通常(但不总是)被导向到实例。例如,一些SAD可出售允许启动和终止实例的API。控制平面服务104可经由控制平面向这种SAD的API发送命令以在IVN 102中启动新实例。
顾名思义,IVN可包括在逻辑上与提供商网络的其他资源(例如,其他IVN)隔离或分离的一组托管(例如,虚拟化)资源。控制平面服务可建立和配置IVN,包括为每个IVN分派将其与其他IVN区分开的标识符。提供商网络可提供各种方式来允许IVN之间的通信,诸如通过在IVN之间设置对等关系(例如,一个IVN中的网关被配置为与另一IVN中的网关进行通信)。
可出于多种目的建立IVN。例如,可通过留出一组资源供客户独占使用来为特定客户建立IVN,在提供给客户的那组资源的网络配置方面具有很大的灵活性。在客户的IVN中,客户可建立子网、向各种资源分派期望私有IP地址、建立管理传入和传出业务的安全规则等。至少在一些实施方案中,默认情况下,在一个IVN内建立的一组私有网络地址可能无法从另一IVN(或更一般地从IVN外部)访问。
隧道技术促进在提供商网络100上由不同SAD托管的实例之间的IVN业务的遍历。例如,IVN 102内新启动的实例可能具有IVN地址A并由具有底层地址X的SAD托管,而实例101可能具有IVN地址B并由具有底层地址Y的SAD托管。为了促进这些计算实例之间的通信,SAD X将从新启动的实例发送到实例101(从IVN地址A到IVN地址B)的数据包封装在具有托管相应实例的SAD的寻址信息(从底层地址X到底层地址Y)的数据包的有效负载中。在SAD之间发送的数据包还可包括IVN 102的标识符,以指示数据去往IVN 102,而不是由具有底层地址Y的SAD托管的另一IVN。在一些实施方案中,SAD使用与IVN相关联的加密密钥进一步加密在SAD之间发送的数据包的有效负载内的实例之间发送的数据包。在至少一些实施方案中,封装和加密由托管实例的SAD的软件部件执行。
对于PSE,提供商网络100包括一个或多个联网部件以有效地将提供商网络底层向提供商网络100之外扩展到连接到客户的本地网络的PSE。此类部件可确保针对PSE的数据平面和控制平面操作安全、可靠且透明地传达到PSE。在所示实施方案中,PSE接口108、PSESAD代理110和PSE SAD锚112促进提供商网络100与PSE 188之间的数据和控制平面通信。类似地,PSE接口118、PSE SAD代理120和PSE SAD锚122促进提供商网络100与PSE 198之间的数据和控制平面通信。如本文所述,PSE接口从提供商网络接收控制和数据平面业务,将此类控制平面业务发送到PSE SAD代理,并将此类数据平面业务发送到PSE。PSE接口也从PSE接收数据平面业务,并将此类数据平面业务发送到提供商网络内的适当目的地。PSE SAD代理从PSE接口接收控制平面业务并将此类控制平面业务发送到PSE SAD锚。PSE SAD锚从PSESAD代理接收控制平面业务并将此类控制平面业务发送到PSE。PSE SAD锚也从PSE接收控制平面业务并将此类控制平面业务发送到PSE SAD代理。PSE SAD代理也从PSE SAD锚接收控制平面业务并将此类控制平面业务发送到提供商网络内的适当目的地。其他实施方案可采用联网部件的不同组合或配置来促进提供商网络100与PSE之间的通信(例如,PSE接口、PSESAD代理和/或PSE SAD锚的功能可诸如由应用以各种方式组合,所述应用执行PSE接口和PSE SAD代理两者的、PSE SAD代理和PSE SAD锚两者的、所有三个部件的操作等)。
如上所指示,每个PSE具有SAD(例如,SAD 189A-189N)的一个或多个底层网络地址。由于那些底层地址不能经由提供商网络100直接到达,因此PSE接口108、118伪装成具有与相应PSE的底层地址匹配的附接虚拟网络地址(VNA)。如图所示,PSE接口108具有与一个或多个PSE 188SAD地址匹配的一个或多个附接VNA 150,并且PSE接口118具有与一个或多个PSE 198SAD地址匹配的一个或多个附接VNA 152。例如,去往PSE 188内具有互联网协议(IP)地址192.168.0.10的SAD的业务被发送到具有附接虚拟地址192.168.0.10的PSE接口108,并且去往PSE 198内具有IP地址192.168.1.10的SAD的业务被发送到具有附接虚拟地址192.168.1.10的PSE接口118。注意,可使用IPv4或IPv6寻址。在至少一些实施方案中,VNA是使得各种联网相关属性(诸如IP地址)能够在实例之间以编程方式传输的逻辑构造。此类传输可称为将VNA“附接”到实例和将VNA与实例“分离”。
在高级别上,PSE接口实际上是基于业务是控制平面业务还是数据平面业务来路由该业务的数据包转发部件。注意,控制平面业务和数据平面业务两者路由到PSE接口,因为给定上述底层寻址和封装技术的情况下,它们都去往SAD。在控制平面业务的情况下,PSE接口基于SAD地址将业务路由到PSE SAD代理。在数据平面业务的情况下,PSE接口建立提供商网络100与PSE之间的一个或多个加密数据平面业务隧道(例如,PSE接口108与PSE 188之间的隧道191、PSE接口118与PSE 198之间的隧道193)并充当端点。对于从提供商网络100接收的数据平面业务,PSE接口加密业务以通过隧道传输到PSE。对于从PSE接收的数据平面业务,PSE接口解密业务,任选地验证数据包的SAD寻址,并经由提供商网络100将业务发送到所标识SAD目的地。注意,如果PSE接口从PSE接收到不符合用于传输数据平面业务的预期格式(例如,协议)的业务,则PSE接口可丢弃此类业务。还注意,如果PSE接口可验证封装数据包的寻址来确保允许业务的发起者(例如,由特定IVN内的PSE托管的实例)将业务发送到所寻址目的地(例如,由提供商网络在同一或不同IVN内托管的实例)。
PSE中的每个SAD具有一个或多个PSE接口的对应群组,并且群组中的每个成员与PSE建立用于数据平面业务的一个或多个隧道。例如,如果对于具有四个SAD的PSE存在四个PSE接口,则PSE接口各自与SAD中的每一个的数据平面业务端点建立安全隧道(例如,十六个隧道)。替代地,通过将相关联VNA附接到PSE接口群组的每个成员,群组可由多个SAD共享。
每个PSE具有处置提供商网络100与PSE的SAD之间的控制平面业务的一个或多个PSE SAD代理和一个或多个PSE SAD锚。控制平面业务通常具有命令-响应或请求-响应形式。例如,提供商网络100的控制平面服务可向PSE SAD发出启动实例的命令。由于PSE资源的管理由提供商网络提供便利,因此通过安全隧道发送的控制平面命令通常不应源自PSE。在高级别上,PSE SAD代理充当提供商网络100与PSE之间的有状态安全边界(这种边界有时称为数据二极管)。为此,PSE SAD代理可采用诸如将各种安全策略或规则应用于所接收控制平面业务的一种或多种技术。注意,其他控制平面服务104可间接或直接提供面向公众的API以允许由PSE托管的实例经由非隧道通信(例如,通过诸如互联网的公共网络)向提供商网络100发出命令。
对于源自提供商网络100内并去往PSE的业务,PSE SAD代理可提供PSE内其对应SAD的控制平面端点API。例如,可托管实例的PSE SAD的PSE SAD代理可提供与可接收控制平面操作以启动、配置和终止实例的API一致的API。根据去往PSE SAD并由PSE SAD代理接收的API调用和相关联参数,PSE SAD代理可执行各种操作。对于一些操作,PSE SAD代理可不加修改地将操作和相关联参数传递到目的地SAD。在一些实施方案中,PSE SAD代理可在传递那些操作之前验证来自提供商网络100内的所接收API调用的参数相对于API合适。
对于一些API调用或相关联参数,PSE SAD可充当中介以防止敏感信息被发送到提供商网络100之外。示例性敏感信息包括诸如加密密钥、网络证书等密码信息。例如,PSESAD代理可使用敏感密钥解密数据并使用可暴露于PSE的密钥重新加密数据。作为另一示例,PSE SAD代理可终止终止源自提供商网络100内的第一安全会话(例如,传送层安全(TLS)会话),并使用不同证书与对应SAD创建新安全会话以防止提供商网络证书泄漏给PSE。因此,PSE SAD代理可从提供商网络100内接收包括敏感信息的某些API调用并且向PSESAD发出替换敏感信息的取代或替换API调用。
对于源自PSE并去往提供商网络100的业务,PSE SAD代理可丢弃例如源自PSE的所有控制平面命令或请求,或丢弃仅未被导向到提供商网络内面向公众的控制平面端点的那些命令或请求。
在一些实施方案中,PSE SAD代理可根据预期响应的性质(如果有的话)处理对控制平面操作的响应。例如,对于一些响应,PSE SAD代理可简单地丢弃响应而不向对应命令或请求的发起者发送任何消息。作为另一示例,对于一些响应,PSE SAD代理可清理响应以确保它符合对应命令或请求的预期响应格式,之后经由控制平面业务107向对应命令或请求的发起者发送经清理的响应。作为又一示例,PSE SAD代理可生成响应(无论是立即还是在从SAD接收到实际响应时)并且经由控制平面业务107将所生成响应发送到对应命令或请求的发起者。
作为充当提供商网络100与PSE之间的安全边界的一部分,PSE SAD代理可跟踪提供商网络的部件(例如,控制平面服务104)与PSE的每个SAD之间的通信状态。状态数据可包括会话持续时间的会话密钥、用以跟踪未完成响应的具有相关联源和目的地的待决出站API调用、从提供商网络100内接收的API调用与向SAD发出的具有经替换或经取代敏感信息的那些API调用之间的关系等。
在一些实施方案中,除了控制平面业务之外,PSE SAD代理还可提供其他PSE到提供商网络通信的有状态通信。此类通信可包括域名系统(DNS)业务、网络时间协议(NTP)业务和操作系统激活业务(例如,用于Windows激活)。
在一些实施方案中,PSE的仅某些部件能够用作与提供商网络100的加密控制平面业务隧道的端点。为了为提供商网络100与PSE之间的连接提供冗余和可靠性,PSE SAD锚可用作用于PSE的每个可用隧道端点的提供商网络侧端点。如图所示,一个或多个PSE SAD锚112用于经由隧道190将控制平面业务隧道传送到PSE 188,并且一个或多个PSE SAD锚122用于经由隧道192将控制平面业务隧道传送到PSE 1198。
各种实施方案可通过使用上述技术来处理业务以及通过使暴露于业务的那些联网部件与提供商网络100的其他部分隔离两者来限制源自提供商网络外部的任何尝试性攻击(例如,来自包括PSE的情况下)的辐射影响。特别地,联网部件可在一个或多个IVN内操作,以限制攻击者可渗透的范围,从而保护提供商网络和其他客户的操作。因此,各种实施方案可将PSE接口、PSE SAD代理和PSE SAD锚实例化为由在一个或多个IVN内执行的虚拟机或容器执行的应用。在所示实施方案中,用于不同PSE的PSE接口群组在多租户IVN内运行(例如,用于PSE 188和198的PSE接口IVN 132)。在其他实施方案中,每个PSE接口群组可在单租户IVN中运行。此外,给定PSE的每个PSE SAD代理群组和每个PSE SAD锚群组在单租户IVN中运行(例如,用于PSE 188的PSE SAD代理IVN 134、用于PSE 188的PSE SAD锚IVN 136、用于PSE 198的PSE SAD代理IVN 138以及用于PSE 198的PSE SAD代理IVN 40)。
注意,通过为联网部件中的每一个(例如,PSE接口、PSE SAD代理和PSE SAD锚)操作多个实例提供的冗余允许提供商网络定期地回收托管这些部件的实例,而不中断PSE到提供商网络通信。回收可涉及例如重新启动实例或启动新实例并利用例如所回收实例的地址来重新配置其他实例。定期回收限制了其间攻击者可在网络部件遭到破解时利用所破解网络部件的时间窗口。
PSE连接管理器180管理提供提供商网络100与PSE之间的连接的联网部件的设置和配置。如上所提及,PSE接口108、118、PSE SAD代理110、120和PSE SAD锚112、122可作为实例由提供商网络底层托管。PSE连接管理器180可在PSE被装运到客户时和/或在这些PSE上线并与提供商网络交换配置数据时请求或发起用于PSE的一个或多个PSE接口、一个或多个PSE SAD代理和一个或多个PSE SAD锚的启动。此外,PSE连接管理器180可进一步配置一个或多个PSE接口、一个或多个PSE SAD代理和一个或多个PSE SAD锚。例如,PSE连接管理器180可将对应于PSE的SAD的一个或多个VNA附接到一个或多个PSE接口,向一个或多个PSE接口提供用于PSE SAD的一个或多个PSE SAD代理的地址,并向一个或多个PSE SAD代理提供用于PSE的一个或多个PSE SAD锚的地址。此外,PSE连接管理器180可配置各种部件的IVN以允许例如用于PSE的PSE接口IVN 132与PSE SAD代理IVN之间以及用于PSE的PSE SAD代理IVN到PSE SAD锚IVN之间的通信。
注意,为了促进隧道190-193的建立,隧道端点可具有一个或多个所附接VNA或所分派物理网络地址,这些地址可以从其相应网络之外(例如,从提供商网络之外针对PSE接口和PSE SAD锚、从客户网络之外针对PSE的隧道端点)接收业务。例如,PSE 188可具有单个面向外的网络地址,和使用端口地址转换(PAT)或多个面向外的网络地址来管理与多个SAD的通信。每个PSE SAD锚112、122可具有或共享(例如,经由PAT)面向外的网络地址,并且每个PSE接口108、118可具有或共享(例如,经由PAT)面向外的可访问网络地址。
图2是示出根据至少一些实施方案的示例性提供商底层扩展的框图。在所示实施方案中,PSE 188包括一个或多个PSE框架202和一个或多个主机220。在高级别上,每个主机220可在功能上(并且可能在结构上)类似于形成提供商网络底层的部分(例如,托管提供商网络内的实例的那些底层资源)的计算机系统中的至少一些,而一个或多个PSE框架202提供支持基础设施以模拟PSE内的提供商网络底层以及经由控制和数据平面业务隧道(例如,图1的隧道190-193)提供到提供商网络的连接。
在至少一些实施方案中,每个PSE框架202可在网状架构中从每个主机220发送或接收控制或数据平面业务,且反之亦然,如PSE控制平面业务240和PSE数据平面业务242所指示。这种冗余考虑到客户可能期望从提供商网络获得的可靠性水平。
PSE框架202包括终止承载控制平面业务的加密隧道(例如,隧道190、隧道192)的一个或多个控制平面隧道端点204。在一些实施方案中,提供商网络100托管用于每个控制平面隧道端点204的PSE SAD锚。回到提供商网络,一个或多个PSE SAD代理(例如,代理110)可将控制平面业务分配到PSE SAD锚(例如,锚112),从而跨PSE 188的PSE框架202有效地分配控制平面业务的加载。PSE框架202还包括终止承载来自提供商网络的PSE接口的数据平面业务的加密隧道(例如,隧道191、隧道193)的一个或多个数据平面隧道端点206,所述PSE接口可在网状架构中连接(例如,给定PSE接口108与每个PSE框架202的数据平面隧道端点206建立隧道)。
如上所指示,控制平面业务的数据包和数据平面业务的数据包可包括作为源和目的地两者的SAD,后者被封装在具有基于SAD的寻址的数据包中。如图所示,PSE框架202是SAD 289,并且主机220是SAD 290。注意,PSE 188内的SAD(例如,SAD 289、290)还可为与提供商网络内的一个或多个对应PSE SAD代理(例如,PSE SAD代理110)建立的安全会话提供安全会话终止(例如,TLS终止)。
SAD出售一个或多个控制平面API,以处置被导向到SAD的管理SAD的资源的控制平面操作。例如,PSE框架202的PSE管理器210可出售用于管理PSE框架202的部件的控制平面API。一个这样的部件是PSE网关208,其路由进出PSE 188的控制和/或数据平面业务,诸如将去往SAD 289的控制平面业务路由到PSE管理器210以及将去往SAD 290的控制或数据平面业务路由到主机管理器222。PSE网关208可进一步促进与客户网络的通信,诸如去往或来自可经由PSE部署站点的网络(例如,客户网络185)访问的其他客户资源187。
PSE管理器210的API可包括一个或多个命令来配置PSE框架202的PSE网关208。PSE框架202的其他部件212可包括参与用于主机220的PSE的底层的操作的各种应用或服务,诸如DNS、动态主机配置协议(DHCP)和/或NTP服务。
主机管理器222可出售用于管理主机220的部件的控制平面API。在所示实施方案中,主机管理器222包括实例管理器224和网络管理器226。实例管理器224可处置与主机220的管理相关的API调用,包括启动、配置和/或终止由主机220托管的实例的命令。例如,提供商网络(未示出)中的实例管理服务可向实例管理器224发出在主机220上启动实例的控制平面命令。如图所示,主机220是在客户IVN 233之内运行的客户实例232、在第三方(3P)IVN235之内运行的3P实例234和在服务IVN 237之内运行的服务实例236的主机。注意,这些IVN233、234、235中的每一个可扩展提供商网络内所建立的现有IVN。客户实例232可能正在执行某个客户应用或工作负载,3P实例234可能正在执行客户已允许在PSE 188内启动实例的另一方的应用或工作负载,并且服务实例236可能正在执行提供商网络在本地提供给PSE188的服务(例如,块存储服务、数据库服务等)。
网络管理器226可处置由主机220接收的SAD寻址的数据平面业务。对于这样的业务,网络管理器可对IVN数据包执行必要的解封装,之后将其发送到所寻址托管实例。此外,网络管理器226可处置由托管实例发送的业务的路由。当托管实例尝试向另一本地托管实例(例如,在同一主机上)发送业务时,网络管理器226可将所述业务转发到所寻址实例。当托管实例试图将业务发送到非本地实例(例如,不在同一主机上)时,网络管理器226可定位托管非本地实例的装置的底层地址,将对应数据包封装并任选地加密到SAD寻址的数据包中,并通过数据平面发送所述数据包(例如,发送到PSE内的另一主机或经由PSE网关208发送回提供商网络。注意,网络管理器226可包括或可访问各种数据,这些数据促进数据平面业务的路由(例如,查找托管实例的SAD的地址,其具有从托管实例接收到的数据包的目的地中的IVN网络地址)。
图3是示出根据至少一些实施方案的提供商网络与提供商底层扩展之间的示例性连接的框图。特别地,图3示出提供商网络与PSE之间的示例性连接。注意,对于图3,并且如图顶部处所指示,术语“入站”是指由提供商网络从PSE接收的业务,并且术语“出站”是指由提供商网络向PSE发送的业务。虽然未示出,但对于此示例,假设PSE包括用于总共四个SAD的两个PSE框架202和两个主机220。PSE框架提供用于控制平面业务的隧道端点204A、204B和用于数据平面业务的隧道端点206A、206B。出站业务被解密并经由PSE网关208A、208B发送到PSE底层内的目的地。
对于四个SAD中的每一个,提供商网络包括VNA、一个或多个PSE接口以及一个或多个PSE SAD代理。在此示例中,提供商网络包括用于给定PSE SAD的PSE SAD VNA 304、两个PSE接口108A、108B和两个PSE SAD代理110A、110B。一个或多个PSE接口和一个或多个PSESAD代理可一起称为如所指示的切片,每个切片对应于PSE内的特定SAD。在其他实施方案中,一个或多个PSE接口可由VPN的所有VNA而不是SAD中的一个的单个VNA共享。
PSE SAD VNA 304用作给定PSE的前端,提供商网络的其他部件可通过所述前端向PSE的对应SAD发送业务并从其接收业务。负载平衡器(未示出)可将发送到PSE SAD VNA304的出站业务路由到PSE接口108A、108B中的一者。用于给定切片的所示PSE接口108A、108B和用于其他切片(未示出)的那些PSE接口在PSE接口IVN 132内操作。PSE接口108A、108B经由数据平面业务隧道将数据平面业务发送到PSE,并通过将控制平面业务转发到切片的PSE SAD代理110A、110B将控制平面业务发送到PSE。PSE接口108A、108B存储(或可访问)相关联SAD的一个或多个PSE SAD代理的网络地址、一个或多个数据平面隧道端点的网络地址以及用于保护与一个或多个数据平面隧道端点的通信的PSE的一个或多个数据平面隧道端点的一个或多个密钥或与之相关联的一个或多个密钥。
在至少一些实施方案中,PSE接口110A、110B与每个数据平面隧道端点206A、206B建立用于数据平面业务的安全隧道,从而产生N个数据平面隧道,其中N是每个SAD的PSE接口的数量(假设每个SAD具有相同数量的接口)乘以数据平面隧道端点的数量乘以SAD的数量。在此示例中,在PSE接口与数据平面隧道端点之间建立了十六个数据平面隧道(即,每个SAD的2个PSE接口x 2个数据平面隧道端点x 4个SAD)。
PSE SAD代理110A、110B从PSE接口108A、108B接收控制平面业务,执行本文别处描述的各种操作,并经由两个PSE SAD锚112A、112B中的任一者将控制平面业务发送到PSE。类似地,PSE SAD代理110A、110B从两个PSE SAD锚112A、112B中的任一者接收控制平面业务,执行本文别处描述的各种操作,并且将控制平面业务107发送到提供商网络内的目的地。用于给定切片的所示PSE SAD代理110A、110B以及用于其他切片(未示出)的那些PSE SAD代理在PSE SAD代理IVN 134内操作。PSE接口108A、108B存储(或可访问)一个或多个PSE SAD锚的网络地址。
在至少一些实施方案中,PSE SAD代理可访问共享数据存储区306或以其他方式能够交换信息。这种信息交换可出于多种原因来使用。例如,回想一下,PSE SAD代理可出售模拟PSE内相关联SAD的API接口的API接口。由于一些通信可能是有状态的,并且各种负载平衡技术可能会阻止同一PSE SAD代理处置一组给定操作的所有通信,因此一个PSE SAD代理可能需要访问先前由不同PSE SAD代理处理的通信的状态(例如,PSE SAD代理110A将控制平面操作发送到PSE并且PSE SAD代理110B从PSE接收对控制平面操作的响应)。对于入站控制平面业务,PSE SAD代理可检查入站消息是否与预期状态一致,并且如果是,则经由控制平面业务107发送消息,如本文别处所述。如果不是,则PSE SAD代理110A、110B可丢弃业务。作为另一示例,回想一下,PSE SAD代理可桥接单独安全会话(例如,TLS会话)以防止提供商网络证书被发送到PSE。同样,由于处置出站消息的PSE SAD代理可能与处置对所述消息的响应的PSE SAD代理不同,因此处置响应消息的PSE SAD代理可使用在出站消息的发起者与处理出站消息的PSE SAD代理之间建立的相同密钥以便经由控制平面业务107将安全响应消息发送到发起者。
在此示例中,每个PSE框架提供单个控制平面隧道端点204。对于可用控制平面隧道端点204中的每一个,提供商网络包括PSE锚。在此示例中,提供商网络包括两个PSE锚112A、112B。PSE SAD锚112A、112B在PSE SAD锚IVN 136内操作。PSE锚112从八个PSE SAD代理(对于四个SAD中的每一个,每个切片两个)中的每一个接收控制平面业务并将所述业务发送到PSE。PSE锚还从PSE接收控制平面业务,并将所述业务发送到与从PSE获取业务的SAD相关联的两个PSE SAD代理中的一个。PSE锚112A、112B存储(或可访问)用于每个SAD的一个或多个PSE SAD代理的网络地址、PSE的一个或多个控制平面隧道端点的网络地址以及用于保护与一个或多个控制平面隧道端点的通信的PSE的一个或多个控制平面隧道端点的一个或多个密钥或与之相关联的一个或多个密钥。
在至少一些实施方案中,网络部件或提供商网络可采用负载平衡技术来分配在提供商网络与PSE之间路由控制和数据平面业务的工作负载。例如,发送到PSE SAD VNA 304的业务可分配在PSE接口108A、108B之间。作为另一示例,每个PSE接口108可在数据平面隧道端点206A、206B之间分配业务。作为又一示例,每个PSE接口108可在PSE SAD代理110A、110B之间分配业务。作为又一示例,每个PSE SAD代理110可在PSE SAD锚112A、112B之间分配出站业务。作为又一示例,PSE SAD锚112可在PSE SAD代理110A、110B之间分配入站业务。在任何情况下,这种负载平衡可由发送实体或由负载平衡器(未示出)执行。示例性负载平衡技术包括采用具有单个VNA的负载平衡器,其将业务分配到所述地址“后面”的多个部件,向每个数据发送方提供多个接收方的地址,并在应用级别分配所选择接收方,等等。
注意,虽然图1至图3示出的实施方案示出了针对控制平面业务和数据平面业务进行的单独隧道的建立,但其他实施方案可能针对控制平面业务和数据平面业务两者使用一个或多个隧道。例如,PSE接口可将数据平面业务路由到PSE SAD锚,以便通过共享隧道传输到PSE,从而绕过PSE SAD代理对控制平面业务执行的另外的操作。
图4是示出根据至少一些实施方案的用于配置提供商网络以与提供商底层扩展进行通信的示例性系统的框图。PSE连接管理器180动态地管理促进与PSE的连接的联网部件的提供商网络侧生命周期。当新PSE被创建或启动时,或者当PSE的内容被修改(例如,通过添加、移除或替换主机)时,PSE连接管理器180管理操作,诸如为PSE接口供应VNA、创建各种用于隔离的IVN、启动实例以执行执行上述联网部件操作的应用、检测和替换故障部件等。在至少一些实施方案中,PSE连接管理器180是控制平面服务,其在不与PSE直接通信的情况下执行此类管理操作,从而在提供商网络与PSE之间提供额外的安全性。
如图所示,PSE配置接口450提供接口,PSE(诸如PSE 445)可通过所述接口与提供商网络进行通信(例如,经由面向公众的API)以便建立隧道通信。例如,当PSE 445离线时,它可接触PSE配置接口450以提供包括PSE的IP地址和公共密钥的数据,所述数据可如本文所述用于在PSE与提供商网络100的联网部件之间建立安全隧道,如圆圈A处所指示。PSE配置接口450向PSE连接管理器180发出命令,其中由PSE提供的数据指示可与PSE 445建立隧道通信。
PSE连接管理器180管理PSE配置数据存储区405。除其他项之外,PSE配置数据存储区405还可包括关于基于完工配置的PSE的硬件和软件配置的已知细节、已经推送到PSE的软件更新、已从PSE接收的硬件配置数据等。PSE连接管理器180可用PSE经由PSE配置接口450提供的数据来更新PSE配置数据存储区405。示例性PSE配置数据490假设PSE经由单个IP地址连接到客户网络并且使用PAT来寻址各个SAD。PSE具有将其与扩展提供商网络100的其他PSE区分开的标识符PSE-123A。基于经由PSE配置接口450接收的数据,PSE连接管理器180已指示所述PSE具有IP地址1.2.3.4。现有PSE配置数据表明PSE-123A具有带有标识符的四个SAD,如图所示。每个SAD具有相关联底层地址,所述地址可在PSE的构建期间保留,或者基于在PSE接触PSE配置接口450时的底层地址可用性与提供商网络协商。例如,具有标识符SAD-5bff的SAD具有底层地址192.168.100.1。每个SAD可具有相关联类型。例如,一些SAD(例如,PSE框架202)可终止安全隧道,托管实例的一些SAD可具有不同的计算、存储器和存储资源(例如,具有四个处理器和128GB存储器用于实例的主机、具有那个一半的主机等)。在此示例中,类型A的SAD可终止安全隧道(例如,像PSE框架202)。此处,由于PAT用于寻址PSE的SAD,因此与每个SAD相关联的端口存储在PSE配置数据490中(例如,SAD-5bff可在1.2.3.4:50000处寻址等)。
基于给定PSE的配置,PSE连接管理器180可发起一个或多个工作流以建立用于在提供商网络100与PSE之间建立隧道通信的联网部件。为了分配管理用于PSE的联网部件的工作负载,PSE连接管理器180可经由工作流执行服务410发起此类工作流的执行,如圆圈B处所指示。在各种实施方案中,工作流可视为包括可按需执行的代码的“无服务器”功能。无服务器功能可按需执行,而无需发起者维护专用基础设施来执行无服务器功能。相反,无服务器功能可使用由工作流执行服务410维护的资源(例如,计算实例,诸如虚拟机或容器等)按需执行。在一些实施方案中,这些资源可维持处于“就绪”状态(例如,具有被配置为执行无服务器功能的预初始化运行时环境),从而允许无服务器功能近乎实时地执行。在所示实施方案中,执行工作流的资源被示出为如由工作流执行服务410发起的工作流执行器420,如圆圈C处所指示。注意,工作流执行服务410可发起对一个或多个实例管理服务425的一个或多个调用,这取决于是否需要为工作流启动工作流执行器420,无论是容器、虚拟机还是其他环境。
在发起工作流时,PSE连接管理器180可向工作流执行服务410发送执行特定工作流的请求,所述请求包括可用于定位工作流的标识符(例如,统一资源定位符(URL)、统一资源标识符(URI)或其他参考)。被分派了执行工作流的任务的工作流执行器420可从PSE工作流数据存储区415提取工作流。替代地,PSE连接管理器180可发送工作流作为执行它的请求的一部分。除标识或提供工作流之外,PSE连接管理器180可包括用于为PSE配置联网部件的PSE特定参数(例如,PSE IP地址)。注意,在一些实施方案中,PSE连接管理器180可不使用工作流执行服务410而直接执行工作流。
可称为脚本或函数的工作流包括一系列操作(例如,对其他服务的API调用、存储和检索数据等)。操作可引用可视为父工作流的子工作流的其他工作流。如上所述,一个或多个PSE接口、一个或多个PSE SAD代理和一个或多个PSE SAD锚可以是由诸如虚拟机或容器的实例执行的软件程序。在一个实施方案中,一个或多个PSE接口由虚拟机执行,一个或多个PSE SAD代理由容器执行,并且一个或多个PSE SAD锚由容器执行。在另一实施方案中,一个或多个PSE接口由虚拟机执行,一个或多个PSE SAD代理由容器执行,并且一个或多个PSE SAD锚由虚拟机执行。在其他实施方案中,其他实例类型和/或配置可托管联网部件。因此,工作流可包括对一个或多个实例管理服务425的调用以启动和配置用于给定PSE的实例,如圆圈D处所指示。此类实例可包括一个或多个PSE接口430、一个或多个PSE SAD代理435、以及一个或多个PSE SAD锚440。
以下是若干示例性工作流。第一示例性工作流包括与新PSE建立通信的操作。第一示例性工作流操作包括为PSE的每个SAD创建VNA。第一示例性工作流操作还包括更新PSE配置数据存储区405以向每个SAD分派相关联VNA。第一示例性工作流操作还包括,按照SAD,在IVN内启动一个或多个实例以执行如本文所述的PSE接口的操作。第一示例性工作流操作还包括将用于给定SAD的VNA与用于SAD的一个或多个PSE接口实例相关联。第一示例性工作流操作还包括,按照SAD,在IVN内启动一个或多个实例以执行如本文所述的PSE SAD代理的操作。第一示例性工作流操作还包括用数据存储区的标识和/或寻址信息来更新用于给定SAD的一个或多个PSE SAD代理实例(例如,以促进状态数据、密钥等的交换)。第一示例性工作流操作还包括用用于给定SAD的一个或多个PSE SAD代理实例的寻址信息来更新用于同一SAD的一个或多个PSE接口实例,以便PSE接口实例可将控制平面业务发送到用于SAD的一个或多个代理。第一示例性工作流操作还包括,按照PSE的控制平面隧道端点,在IVN内启动实例以执行如本文所述的PSE SAD锚的操作。第一示例性工作流操作还包括用一个或多个PSESAD代理实例的寻址信息来更新一个或多个PSE SAD锚实例,以便PSE SAD锚实例可将控制平面业务发送到用于SAD的一个或多个代理。第一示例性工作流操作还包括用一个或多个PSE SAD锚实例的寻址信息来更新一个或多个PSE SAD代理实例,以便PSE SAD代理实例可将控制平面业务发送到一个或多个锚。第一示例性工作流操作还包括,在各种实例在不同IVN内运行的情况下,更新IVN网络设置以允许IVN到IVN业务(例如,PSE接口IVN到PSE SAD代理IVN、PSE SAD锚IVN到PSE SAD代理IVN等)。
注意,第一示例性工作流的上述操作可在诸如经由PSE配置接口450从PSE接收任何通信之前执行。一旦PSE已接触提供商网络(例如,经由PSE配置接口450),就可执行若干另外的工作流操作。第一示例性工作流操作还包括用(例如,客户网络处的PSE的)PSE寻址信息和PSE公共密钥信息来更新一个或多个PSE接口实例和一个或多个PSE SAD锚实例。第一示例性工作流操作还包括向PSE(例如,通过PSE配置接口450)发送一个或多个PSE SAD锚实例的寻址信息及其相关联公共密钥,以促进PSE与提供商网络之间隧道的建立。
第二示例性工作流包括与添加到PSE的新SAD(例如,由于PSE升级、PSE内现有SAD的替换)建立通信的操作。第二示例性工作流操作包括为SAD创建VNA。第二示例性工作流操作还包括更新PSE配置数据存储区405以向SAD分派VNA。第二示例性工作流操作还包括在IVN内启动一个或多个实例以执行如本文所述的PSE接口的操作(假设一个或多个PSE接口是SAD特定的并且不在SAD群组之间共享)。第二示例性工作流操作还包括将用于给定SAD的VNA与一个或多个PSE接口实例相关联。
如果新SAD不支持另外的数据平面隧道,则第二示例性工作流操作还包括用(例如,客户网络处的PSE的)PSE寻址信息和PSE公共密钥信息来更新任何新启动的PSE接口实例。
如果新SAD不支持另外的数据平面隧道,则第二示例性工作流操作还包括用(例如,客户网络处的PSE的)PSE寻址信息和另外的PSE公共密钥信息来更新新启动的一个或多个PSE接口实例(如果有的话)。第二示例性工作流操作还包括用(例如,客户网络处的PSE的)PSE寻址信息和新SAD的PSE公共密钥信息来更新现有和新启动的(如果有的话)PSE接口实例。
第二示例性工作流操作还包括在IVN内启动一个或多个实例以执行如本文所述的PSE SAD代理的操作。第二示例性工作流操作还包括用数据存储区的标识和/或寻址信息来更新用于给定SAD的一个或多个PSE SAD代理实例(例如,以促进状态数据、密钥等的交换)。第二示例性工作流操作还包括用用于新SAD的一个或多个PSE SAD代理实例的寻址信息来更新与同一SAD相关联的一个或多个PSE接口实例,以便PSE接口实例可将控制平面业务发送到用于SAD的一个或多个代理。
如果新SAD不支持另一控制平面隧道,则第二示例性工作流操作还包括用新启动的一个或多个PSE SAD代理实例的寻址信息来更新一个或多个PSE SAD锚实例,以便PSESAD锚实例可将控制平面业务发送到用于新SAD的一个或多个代理。第二示例性工作流操作还包括用一个或多个PSE SAD锚实例的寻址信息来更新新启动的一个或多个PSE SAD代理实例,以便PSE SAD代理实例可将控制平面业务发送到一个或多个锚。
如果新SAD确实支持另一控制平面隧道,则第二示例性工作流操作还包括在IVN内启动实例以执行如本文所述的PSE SAD锚的操作。第二示例性工作流操作还包括用新启动的PSE SAD代理实例的寻址信息来更新现有和新启动的PSE SAD锚实例,以便PSE SAD锚实例可将控制平面业务发送到用于SAD的一个或多个代理。第二示例性工作流操作还包括用新启动的PSE SAD锚实例的寻址信息来更新现有和新启动的PSE SAD代理实例,以便PSESAD代理实例可将控制平面业务发送到一个或多个锚。
第三示例性工作流包括断开(tear down)与SAD的通信的操作(例如,由于SAD从PSE的移除或故障)。第三示例性工作流操作包括将用于SAD的VNA与一个或多个PSE接口实例分离。第三示例性工作流操作还包括终止和SAD特定的PSE接口实例。第三示例性工作流操作还包括终止用于SAD的一个或多个PSE SAD代理实例。如果移除的SAD支持隧道,则第三示例性工作流操作还包括终止一个或多个剩余PSE接口实例与SAD之间的任何隧道(例如,如果它们没有自动地关闭)。第三示例性工作流操作包括移除PSE SAD代理实例同与移除的SAD相关联的PSE SAD锚实例之间的任何关联。第三示例性工作流操作还包括终止与移除的SAD相关联的PSE SAD锚实例。
第四示例性工作流包括断开与PSE的通信的操作。第四示例性工作流操作包括针对如PSE配置数据405中标识的PSE的SAD中的每一个重复第三示例性工作流的操作。
注意,因为用于PSE的网络部件的启动、配置或修改可能具有若干相互依赖关系(例如,PSE接口需要知道PSE SAD代理的网络地址,PSE SAD代理需要知道PSE SAD锚的网络地址、PSE SAD锚和PSE接口需要知道PSE的隧道端点的公共密钥)。虽然以上未示出,但工作流可包括对PSE连接管理器180的调用,以提供关于网络部件的配置状态(例如,实例标识符等)的更新,如圆圈E处所指示。此类状态更新可用于跟踪启动和配置实例的过程,并跟踪哪些实例对应于用于给定PSE的哪些网络部件。例如,对PSE连接管理器180的工作流调用可捕获如何、为什么和/或何时工作流(或工作流的区段或部分)调用和完成。
图5是示出根据至少一些实施方案的用于维持提供商网络与提供商底层扩展之间的通信的示例系统的框图。为了提高提供商网络与提供商底层扩展之间连接的可靠性,PSE连接管理器180可采用自恢复协调模型来管理提供商侧基础设施(例如,VNA、PSE接口、PSESAD代理、PSE SAD锚等)。如图所示,PSE连接管理器180包括协调引擎505,所述协调引擎505基于PSE配置数据405中所指示的PSE的配置相对于提供商侧基础设施的期望或预期状态来评估提供商侧基础设施的实际状态。例如,在一些实施方案中,对于支持隧道的PSE中的每个SAD,提供商侧基础设施应具有至少一个PSE SAD锚。在这种情况下,协调引擎505采取一个或多个动作来消除期望状态与实际状态之间的差异。
如圆圈A处所指示,PSE连接管理器180可监控支持与PSE的连接的基础设施的状态,这里称为实际状态。这种监控可以是主动的或被动的。主动监控技术包括向各种部件发送测试业务(例如,ping)并验证响应符合预期。被动监控技术可检查进出实例的业务模式、与实例的网络、CPU和/或存储器使用相关的报告量度,或者,如果实例被如此配置,则监控从实例发送到PSE连接管理器180的指示实例是活动的“心跳”业务的接收等。在一些实施方案中,例如,PSE连接管理器180可实例化一个或多个看门狗应用或守护进程,所述应用或守护进程在与网络部件相同的实例上或在不同的实例上但在与网络部件相同的IVN内执行。此类看门狗应用可向PSE连接管理器180报告健康状态信息。
对于连接到提供商网络的各种PSE中的每一个,协调引擎505可定期地(例如,大约每60秒一次)将联网部件的实际状态与期望状态进行比较,如圆圈B处所指示。期望状态可是指应该正为给定PSE操作的联网部件(例如,某个指定数量的PSE接口、用于PSE的每个SAD的某个指定数量的PSE SAD代理、用于PSE支持的每个隧道端点的某个指定数量的PSE SAD锚等)。例如,在监控联网部件时,PSE连接管理器180可确定PSE SAD代理535B是无响应的或以其他方式不健康的。同时,存储在PSE配置数据存储区405中的配置数据可指示每个SAD应具有两个PSE SAD代理。通过将实际状态与期望状态进行比较,协调引擎505可确定PSE SAD代理535B未在工作并且生成改变调度。
在高级别上,改变调度包括一个或多个工作流(或子工作流),包括诸如以上参考图4所述的那些操作的操作。示例性改变调度590包括三个高级操作,在实践中,所述操作中的每一个可由多个操作构成。继续PSE SAD代理535B不健康的以上示例,由圆圈1指示的第一操作包括为PSE启动和配置PSE SAD代理535C。由圆圈2指示的第二操作包括重新配置一个或多个PSE接口430以将业务发送到PSE SAD代理535C而不是PSE SAD代理535B,以及重新配置PSE SAD锚440以将业务发送到PSE SAD代理535C而不是PSE SAD代理535B。由圆圈3指示的第三操作包括终止托管PSE SAD代理535B的实例。
基于所生成改变调度,PSE连接管理器180可如圆圈C处所指示调用调度工作流,诸如参考图4的圆圈B所述。工作流执行服务410可如圆圈D处所指示启动工作流执行器420,诸如以上参考图4的圆C所述。一个或多个工作流执行器420可如圆圈E处所指示执行工作流,诸如以上参考图4的圆圈D所述。一个或多个工作流执行器420还可如圆圈F处所指示提供关于网络部件的配置状态的更新,诸如以上参考图4的圆圈E所述的。
图6是示出根据至少一些实施方案的用于配置提供商网络以与提供商底层扩展进行通信的方法的操作的流程图。操作(或本文描述的其他过程,或变型和/或其组合)中的一些或全部在配置有可执行指令的一个或多个计算机系统的控制下执行,并且实现为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用)、由硬件实现、或它们的组合实现。代码以例如包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质是非暂时性的。在一些实施方案中,操作中的一个或多个(或全部)通过由提供商网络的一个或多个部件执行的计算机程序或应用(诸如由位于提供商网络的数据中心内的计算机系统执行的服务)执行。提供商网络可以是云提供商网络。提供商网络的一个或多个部件与提供商网络的扩展建立通信。提供商网络的扩展包括一个或多个物理计算装置或系统,并且远离提供商网络的数据中心(例如,在数据中心网络之外),诸如在提供商网络的客户的场所。例如,在一些实施方案中,操作中的一个或多个(或全部)由其他图中的提供商网络的部件(例如,PSE连接管理器180、工作流执行服务410、工作流执行器420)执行。
操作包括,在框605处,通过提供商网络的第一服务获得包括在提供商网络的扩展中的一个或多个底层可寻址装置的标识。提供商网络的扩展(诸如本文所述的PSE)可包括一个或多个SAD。这些SAD的标识可基于PSE的已知配置或者基于从PSE接收的数据。提供商网络的服务可管理与PSE的连接,诸如本文针对PSE连接性管理器180所述。例如,在一些实施方案中,PSE SAD锚被实例化以用作提供商网络内的控制平面业务隧道端点,PSE接口被实例化以用作本地接口以在提供商网络内用于SAD并且用于单独控制和数据平面业务,和PSE SAD代理被实例化,以尤其是对针对PSE的离开和进入提供商网络的控制平面业务强制实施限制或安全策略。
操作还包括,在框610处,基于标识,在提供商网络内发起一个或多个计算实例的启动。如本文所述,PSE连接管理器180可直接或间接地启动一个或多个实例(诸如虚拟机和/或容器),以支持PSE到提供商网络连接。例如,PSE连接管理器180可使用工作流执行服务410来执行包括启动实例的操作的工作流。作为另一示例,PSE连接管理器180可使用实例管理服务来启动实例。通过执行如操作615至620中概述的某些操作,一个或多个计算实例经由至少第三方网络(例如,客户网络、互联网等)促进提供商网络与提供商网络的扩展之间的通信。
操作还包括,在框615处,接收被导向到一个或多个底层可寻址装置中的第一底层可寻址装置的第一控制平面消息。如本文所述,提供商网络通常处理两种类型的业务或操作,即,可称为提供商网络的控制平面的一部分的管理业务或操作,以及可称为提供商网络的数据平面的一部分的非管理业务或操作。提供商网络可采用虚拟网络地址来用作供来自提供商网络内的业务发送到PSE的聚合点。
操作还包括,在框620处,至少部分地基于第一控制平面消息来更新消息状态数据存储区。如本文所述,由用于将PSE连接到提供商网络的联网部件执行的功能中的一个是用于PSE的底层可寻址装置的有状态代理服务器的功能。这种代理服务器可跟踪从提供商网络发送到PSE以及从PSE发送到提供商网络的业务的状态,从而执行各种操作,诸如监控发送到PSE的控制平面消息。
操作还包括,在框625处,经由安全隧道将第二控制平面消息发送到第一底层可寻址装置。如本文所述,提供商网络的部件可建立到PSE的一个或多个安全隧道。例如,PSESAD锚可作为提供商网络与PSE之间的安全隧道的端点。
图7是示出根据至少一些实施方案的用于与提供商底层扩展通信以与提供商网络外部的网络通信的方法的操作的流程图。操作(或本文描述的其他过程,或变型和/或其组合)中的一些或全部在配置有可执行指令的一个或多个计算机系统的控制下执行,并且实现为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用)、由硬件实现、或它们的组合实现。代码以例如包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质是非暂时性的。在一些实施方案中,操作中的一个或多个(或全部)通过由提供商网络的一个或多个部件执行的计算机程序或应用(诸如由位于提供商网络的数据中心内的计算机系统执行的服务)执行。提供商网络可以是云提供商网络。提供商网络的一个或多个部件可促进提供商网络的其他部件与提供商网络的扩展之间的通信。提供商网络的扩展包括一个或多个物理计算装置或系统,并且远离提供商网络的数据中心(例如,在数据中心网络之外),诸如在提供商网络的客户的场所。例如,在一些实施方案中,操作中的一个或多个(或全部)由其他图的提供商网络的部件(例如,PSE接口、PSE SAD代理、PSE SAD锚)执行。
操作包括,在框705处,在提供商网络中接收第一类型的并且具有第一目的地地址的第一消息,其中第一目的地地址与提供商网络的虚拟网络地址和提供商网络的扩展中的第一装置的地址相关联,其中提供商网络的扩展经由至少第三方网络与提供商网络通信。如本文所述,提供商网络与PSE之间的一种连接配置涉及经由一个或多个安全隧道(例如,经由客户网络、互联网等从提供商网络内的隧道端点到PSE内的隧道端点)进行通信。托管在提供商网络内的一个或多个计算实例可执行促进提供商网络的装置和/或托管实例与PSE的装置和/或托管实例之间的通信的各种功能。为了在提供商网络内为PSE的底层可寻址装置提供虚拟存在,可将VNA附接到托管在提供商网络内的计算实例,以允许计算实例伪装成PSE内的SAD。
操作还包括,在框710处,基于第一消息的至少一部分来更新消息状态数据存储区。如本文所述,PSE SAD代理可用作PSE与提供商网络之间特定业务的有状态通信边界,从而对源自提供商网络内其他部件并去往PSE的业务以及源自PSE并去往提供商网络的其他部件的业务执行各种操作。此类操作可包括跟踪源与目的地之间的通信的状态。例如,启动由PSE的装置托管的计算实例的命令可源自提供商网络内。PSE SAD代理可跟踪在数据存储区中的命令和相关联响应。
操作还包括,在框715处,通过第三方网络通过第一安全隧道向第一装置发送第一消息的第一有效负载。如本文所述,PSE SAD代理可根据穿越提供商网络与PSE之间的安全隧道的业务的性质来执行各种操作。例如,对于某些类型的业务,PSE SAD代理可将所接收消息中继到PSE。对于其他类型的业务,PSE SAD代理可重新封装所接收消息的有效负载,并在新消息中将其发送到PSE(例如,以终止和桥接安全会话)。
图8示出根据至少一些实施方案的示例性提供商网络(或“服务提供商网络”)环境。提供商网络800可经由一个或多个虚拟化服务810向客户提供资源虚拟化,所述一个或多个虚拟化服务810允许客户购买、租用或以其他方式获得在一个或多个数据中心中的一个或多个提供商网络内的装置上实现的虚拟化资源的实例812,包括但不限于计算和存储资源。本地互联网协议(IP)地址816可与资源实例812相关联;本地IP地址是提供商网络800上的资源实例812的内部网络地址。在一些实施方案中,提供商网络800还可提供客户可从提供商800获得的公共IP地址814和/或公共IP地址范围(例如,互联网协议版本4(IPv4)或互联网协议版本6(IPv6)地址)。
常规地,提供商网络800经由虚拟化服务810可允许服务提供商的客户(例如,操作包括一个或多个客户装置852的一个或多个客户端网络850A-850C的客户)动态地将分派或分配给客户的至少一些公共IP地址814与分配给客户的特定资源实例812相关联。提供商网络800还可允许客户将先前映射到分配给客户的一个虚拟化计算资源实例812的公共IP地址814重新映射到也分配给客户的另一虚拟化计算资源实例812。使用由服务提供商提供的虚拟化计算资源实例812和公共IP地址814,诸如一个或多个客户网络850A-850C的运营商的服务提供商的客户可例如实现客户特定的应用并在中介网络840(诸如互联网)上呈现客户的应用。然后,中介网络840上的其他网络实体820可生成到由一个或多个客户网络850A-850C发布的目的地公共IP地址814的业务;业务被路由到服务提供商数据中心,并且在数据中心处经由网络底层路由到当前映射到目的地公共IP地址814的虚拟化计算资源实例812的本地IP地址816。类似地,来自虚拟化计算资源实例812的响应业务可经由网络底层路由回到中介网络840上到达源实体820。
如本文所用,本地IP地址是指例如提供商网络中的资源实例的内部或“私有”网络地址。本地IP地址可位于由互联网工程任务组(IETF)请求评论(RFC)1918保留的地址块内和/或具有由IETF RFC 4193指定的地址格式,并且在提供商网络内可能是可变的。源自提供商网络之外的网络业务不会直接路由到本地IP地址;而是,业务使用映射到资源实例的本地IP地址的公共IP地址。提供商网络可包括提供网络地址转换(NAT)或类似功能以执行从公共IP地址到本地IP地址的映射以及反之亦然的联网装置或家电。
公共IP地址是由服务提供商或客户分派给资源实例的互联网可变网络地址。路由到公共IP地址的业务例如经由1:1NAT转换,并且转发到资源实例的相应本地IP地址。
一些公共IP地址可由提供商网络基础设施分派给特定资源实例;这些公共IP地址可称为标准公共IP地址,或简称为标准IP地址。在一些实施方案中,资源实例的标准IP地址到本地IP地址的映射是所有资源实例类型的默认启动配置。
至少一些公共IP地址可分配给提供商网络800的客户或由提供商网络800的客户获得;然后,客户可将它们的所分配公共IP地址分派给分配给客户的特定资源实例。这些公共IP地址可称为客户公共IP地址,或简称为客户IP地址。不是在标准IP地址的情况下由提供商网络800分派给资源实例,而是客户IP地址可由客户例如经由服务提供商提供的API分派给资源实例。与标准IP地址不同,客户IP地址被分配给客户帐户,并且可根据需要或期望由相应客户重新映射到其他资源实例。客户IP地址与客户的帐户而不是特定资源实例相关联,并且客户控制所述IP地址,直到客户选择释放它为止。与常规静态IP地址不同,客户IP地址允许客户通过将客户的公共IP地址重新映射到与客户帐户相关联的任何资源实例来屏蔽资源实例或可用区故障。例如,客户IP地址使得客户能够通过将客户IP地址重新映射到替换资源实例来解决客户资源实例或软件的问题。
图9是根据至少一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供商网络的框图。硬件虚拟化服务920向客户提供多个计算资源924(例如,VM)。例如,计算资源924可出租或租赁给提供商网络900的客户(例如,实现客户网络950的客户)。每个计算资源924可具备一个或多个本地IP地址。提供商网络900可被配置为将数据包从计算资源924的本地IP地址路由到公共互联网目的地,并且从公共互联网源路由到计算资源924的本地IP地址。
提供商网络900可例如经由本地网络956向耦接到中介网络940的客户网络950提供,经由耦接到中介网络940和提供商网络900的硬件虚拟化服务920来实现虚拟计算系统992的能力。在一些实施方案中,硬件虚拟化服务920可提供一个或多个API 902,例如web服务接口,客户网络950可例如经由控制台994(例如,基于web的应用、独立应用、移动应用等)通过所述API来访问由硬件虚拟化服务920提供的功能。在一些实施方案中,在提供商网络900处,客户网络950处的每个虚拟计算系统992可对应于租赁、出租或以其他方式提供给客户网络950的计算资源924。
从虚拟计算系统992和/或另一客户装置990(例如,经由控制台994)的实例,客户可例如经由一个或多个API 902访问存储服务910的功能,以从由提供商网络900提供的虚拟数据存储区916(例如,文件夹或“存储桶”、虚拟化卷、数据库等)的存储资源918A-918N访问数据并将数据存储到所述存储资源918A-918N。在一些实施方案中,虚拟化数据存储网关(未示出)可设置在客户网络950处,所述客户网络950可在本地高速缓存至少一些数据(例如,经常访问的或关键的数据),并且可经由一个或多个通信信道与存储服务910通信来从本地高速缓存上传新的或经修改数据,使得主要数据存储区(虚拟化数据存储区916)得到维护。在一些实施方案中,用户经由虚拟计算系统992和/或在另一客户装置990上可经由充当存储虚拟化服务的存储服务910来安装和访问虚拟数据存储区916卷,并且这些卷对用户来说可能表现为本地(虚拟化)存储装置998。
虽然未在图9中示出,但一个或多个虚拟化服务也可经由一个或多个API 902从提供商网络900内的资源实例访问。例如,客户、装置服务提供商或其他实体可经由API 902从提供商网络900上的相应虚拟网络内访问虚拟化服务,以请求虚拟网络内或另一虚拟网络内一个或多个资源实例的分配。
图10是示出可在至少一些实施方案中使用的示例性计算机系统的框图。在至少一些实施方案中,这种计算机系统可用作实现用于支持本文所述的提供商底层和/或PSE的控制平面和/或数据平面部件和/或各种虚拟化部件(例如,虚拟机、容器等)中的一者或多者的服务器。这种计算机系统可包括通用或专用计算机系统,所述通用或专用计算机系统包括或被配置为访问一个或多个计算机可访问介质。在至少一些实施方案中,这种计算机系统还可用于实现提供商底层和/或提供商底层扩展之外的部件(例如,客户网关/路由器186、其他客户资源187等)。在计算机系统的所示实施方案中,计算机系统计算机系统1000包括经由输入/输出(I/O)接口1030耦接到系统存储器1020的一个或多个处理器1010。计算机系统1000还包括耦接到I/O接口1030的网络接口1040。虽然图10将计算机系统1000示出为单个计算装置,在各种实施方案中,计算机系统1000可包括一个计算装置或被配置为作为单个计算机系统1000一起工作的任何数量的计算装置。
在各种实施方案中,计算机系统1000可以是包括一个处理器1010的单处理器系统或包括若干处理器1010(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可以是实施多种指令集架构(ISA)中的任何一种(诸如x86、ARM、PowerPC、SPARC、或MIPS ISA、或任何其他合适的ISA)的通用或嵌入式处理器。在多处理器系统中,处理器1010中的每一个通常可以但未必实施相同ISA。
系统存储器1020可存储可由一个或多个处理器1010访问的指令和数据。在各种实施方案中,系统存储器1020可使用任何合适的存储器技术(诸如随机存取存储器(RAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器、或任何其他类型的存储器)来实现。在所示实施方案中,实现一个或多个期望功能的程序指令和数据(诸如上述那些方法、技术和数据)被示出为作为代码1025和数据1026存储在系统存储器1020内。
在一个实施方案中,I/O接口1030可被配置为协调处理器1010、系统存储器1020与装置中的任何外围装置(包括网络接口1040或其他外围接口)之间的I/O业务。在一些实施方案中,I/O接口1030可执行任何必需协议、时序或其他数据变换以将来自一个部件(例如,系统存储器1020)的数据信号转换成适于供另一部件(例如,处理器1010)使用的格式。在一些实施方案中,I/O接口1030可包括对通过各种类型的外围总线附接的装置的支持,诸如例如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施方案中,I/O接口1030的功能可分成两个或更多个单独部件,诸如例如北桥和南桥。此外,在一些实施方案中,I/O接口1030的功能中的一些或全部(诸如到系统存储器1020的接口)可直接并入处理器1010中。
网络接口1040可被配置为允许在计算机系统1000与附接到一个或多个网络1050的其他装置1060(诸如例如如图1所示的其他计算机系统或装置)之间交换数据。在各种实施方案中,网络接口1040可支持经由任何合适的有线或无线通用数据网络(诸如例如以太网网络类型)进行的通信。另外,网络接口1040可支持经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、经由存储区域网(SAN)(诸如光纤信道SAN)或经由I/O任何其他合适类型的网络和/或协议进行的通信。
在一些实施方案中,计算机系统1000包括使用I/O接口1030(例如,实现外围部件互连-高速(PCI-E)标准版本或诸如快速通道互连(QPI)或超级通道互连(UPI)的另一种互连的总线)连接的一个或多个卸载卡1070(包括一个或多个处理器1075,并且可能包括一个或多个网络接口1040)。例如,在一些实施方案中,计算机系统1000可充当托管计算实例的主机电子装置(例如,作为硬件虚拟化服务的一部分操作),并且一个或多个卸载卡1070执行可管理在主机电子装置上执行的计算实例的虚拟化管理器。作为示例,在一些实施方案中,一个或多个卸载卡1070可执行计算实例管理操作,诸如暂停和/或取消暂停计算实例、启动和/或终止计算实例、执行存储器传输/复制操作等。在一些实施方案中,这些管理操作可由一个或多个卸载卡1070与由计算机系统1000的其他处理器1010A-1010N执行的管理程序协调地(例如,根据来自管理程序的请求)执行。然而,在一些实施方案中,由一个或多个卸载卡1070实现的虚拟化管理器可适应来自其他实体(例如,来自计算实例本身)的请求,并且可不与任何单独的管理程序协调(或服务于所述管理程序)。参考图2,在至少一些实施方案中,PSE框架202和主机管理器222的功能的至少一部分在卸载卡1070的一个或多个处理器1075上执行,而实例(例如,232、234、236)在一个或多个处理器1010上执行。
在一些实施方案中,系统存储器1020可以是被配置为存储如上所述的程序指令和数据的计算机可访问介质的一个实施方案。然而,在其他实施方案中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问介质上。一般来说,计算机可访问介质可包括非暂时性存储介质或存储器介质,诸如磁性介质或光学介质,例如,经由I/O接口1030耦接到计算机系统1000的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可包括可作为系统存储器1020或另一类型的存储器包括在计算机系统1000的一些实施方案中的任何易失性或非易失性介质,诸如RAM(例如SDRAM、双倍数据速率(DDR)SDRAM、SRAM等)、只读存储器(ROM)等。此外,计算机可访问介质可包括经由通信介质(诸如网络和/或无线链路,诸如可经由网络接口1040实现)传达的传输介质或信号,诸如电信号、电磁信号或数字信号。
本文所论述或提议的各种实施方案可在广泛多种操作环境中实现,在一些情况下,所述环境可包括一个或多个用户计算机、计算装置或可用于操作多个应用中的任一个的处理装置。用户或客户端装置可包括多个通用个人计算机中的任何一个,诸如运行标准操作系统的台式计算机或膝上型计算机,以及运行移动软件并且能够支持多个网络协议和消息传递协议的蜂窝装置、无线装置和手持式装置。这种系统还可包括多个工作站,所述工作站运行多种可商购得的操作系统和用于诸如开发和数据库管理等目的的其他已知应用中的任一种。这些装置还可包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和/或能够经由网络通信的其他装置。
大部分实施方案利用至少一个本领域技术人员熟悉的网络来支持使用多种可商购获得协议中的任一种的通信,所述协议诸如传输控制协议/互联网协议(TCP/IP)、文件传输协议(FTP)、通用即插即用(UPnP)、网络文件系统(NFS)、通用互联网文件系统(CIFS)、可扩展消息和存在协议(XMPP)、AppleTalk等。网络可包括例如局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、互联网、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络及它们的任何组合。
在利用web服务器的实施方案中,web服务器可运行多种服务器或多级应用中的任一种,包括HTTP服务器、文件传输协议(FTP)服务器、通用网关接口(CGI)服务器、数据服务器、Java服务器、商用应用服务器等。一个或多个服务器还能够响应于来自用户装置的请求而执行程序或脚本,诸如通过执行可以实施为以任何编程语言(如
Figure GDA0004261573940000401
C、C#或C++)或任何脚本语言(如Perl、Python、PHP或TCL)以及其组合写成的一个或多个脚本或程序的一个或多个Web应用。一个或多个服务器还可包括数据库服务器,包括但不限于可从Oracle(R)、Microsoft(R)、Sybase(R)、IBM(R)等商购获得的数据库服务器。数据库服务器可以是关系型或非关系型(例如,“NoSQL”)、分布式或非分布式等。
环境可包括如上文所论述的多种数据存储区以及其他存储器和存储介质。这些可驻留在多种位置,诸如一个或多个计算机本地(和/或驻留在其中)的存储介质上,或远离网络上的计算机中的任何或所有计算机。在一组特定实施方案中,信息可驻留在本领域技术人员熟悉的存储区域网(SAN)中。类似地,用于执行属于计算机、服务器或其他网络装置的功能的任何必要文件可视情况本地或远程地存储。在系统包括计算机化装置的情况下,每个这种装置可包括可经由总线电耦接的硬件元件,所述元件包括例如至少一个中央处理单元(CPU)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和/或至少一个输出装置(例如,显示装置、打印机或扬声器)。这种系统还可包括一个或多个存储装置,诸如硬盘驱动器、光学存储装置和诸如随机存取存储器(RAM)或只读存储器(ROM)的固态存储装置、以及可移动媒体装置、存储卡、闪存卡等。
此类装置还可包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外线通信装置等)和工作存储器,如上文所述。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移动存储装置以及用于暂时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。系统和各种装置通常还将包括位于至少一个工作存储器装置内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或web浏览器。应了解,替代实施方案可具有与上述实施方案不同的众多变型。例如,也可使用定制硬件,和/或特定元件可以硬件、软件(包括便携软件,诸如小程序)或两者实现。此外,可采用与诸如网络输入/输出装置的其他计算装置的连接。
用于包含代码或部分代码的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移动和不可移动的介质,包括RAM、ROM、电可擦可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD-ROM)、数字通用光盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置、或可用于存储期望信息且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教导,本领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。
在前面的描述中,描述了各种实施方案。出于解释的目的,阐述了具体配置和细节,以便提供实施方案的透彻理解。然而,对本领域的技术人员将是明显的是,没有具体细节的情况下也可实践实施方案。此外,为了不使所描述的实施方案变得晦涩,可能会省略或简化众所周知的特征。
带括号的文本和带有虚线边界(例如,大划线、小划线、点划线和点)的框在本文中用于说明向一些实施方案添加另外的特征的任选操作。然而,这种注释不应被视为意指这些是唯一选项或任选的操作,和/或在某些实施方案中,具有实心边界的框并非任选的。
在各种实施方案中,可使用带有后缀字母的附图标号(例如,101A、102A等)来表明所引用实体可存在一个或多个实例,并且当存在多个实例时,每个实例不必相同但可能共享一些一般特征或以常见方式起作用。此外,所使用的特定后缀并不意图暗示存在特定数量的实体,除非相反地具体表明。因此,在各种实施方案中,使用相同或不同后缀字母的两个实体可能具有或可能不具有相同数量的实例。
提及“一个实施方案”、“实施方案”、“示例性实施方案”等表明所描述的实施方案可包括特定特征、结构或特性,但每个实施方案可能不一定包括所述特定特征、结构或特性。此外,此类措词不一定是指同一实施方案。此外,当结合实施方案来描述特定特征、结构或特性时,应当认为,无论是否明确描述,使得此类特征、结构或者特性结合其他实施方案起作用是在本领域技术人员的知识范围内的。
此外,在上述各种实施方案中,除非另有特别说明,否则诸如措辞“A、B或C中的至少一者”的析取语言意图理解为意指A、B或C、或它们的任何组合(例如,A、B和/或C)。因此,析取语言不意图也不应理解为暗示给定实施方案要求各自存在A中的至少一个、B中的至少一个或C中的至少一个。
所公开技术的至少一些实施方案可结合以下示例来描述:
1.一种计算机实现的方法,其包括:
由提供商网络的第一服务获得包括在所述提供商网络的扩展中的一个或多个底层可寻址装置的标识;以及
基于所述标识,由所述第一服务发起所述提供商网络内的多个计算实例由所述提供商网络的第二服务的启动,其中所述多个计算实例经由至少第三方网络将所述提供商网络连接到所述提供商网络的所述扩展,其中所述多个计算实例包括:
经由所述第三方网络建立到所述提供商网络的所述扩展的安全隧道的第一计算实例;以及
将控制平面业务代理到一个或多个底层可寻址装置中的第一底层可寻址装置的第二计算实例,其中所述第二计算实例用于:
接收被导向到所述第一底层可寻址装置的第一控制平面消息;
至少部分地基于所述第一控制平面消息来更新消息状态数据存储区;以及
将第二控制平面消息发送到所述第一计算实例以经由所述安全隧道传输到所述第一底层可寻址装置。
2.如条款1所述的计算机实现的方法,其还包括:
由所述第一服务监控所述多个计算实例的实际状态;
由所述第一服务确定所述多个计算实例的第三计算实例正在致使所述多个计算实例的所述实际状态与所述多个计算实例的期望状态不匹配,其中所述多个计算实例的所述期望状态至少部分地基于所述标识;
由所述第一服务发起第四计算实例由所述第二服务的启动,其中所述第四计算实例用于替换所述第三计算实例;以及
将所述第四计算实例的标识发送到所述多个计算实例中的除所述第三计算实例之外的至少一个。
3.如条款1-2中任一项所述的计算机实现的方法,其还包括:
从所述提供商网络的所述扩展接收与所述扩展的控制平面业务隧道端点相关联的公共密钥;以及
将所述公共密钥发送到所述多个计算实例中的第三计算实例,所述第三计算实例用作所述提供商网络的控制平面业务隧道端点。
4.一种计算机实现的方法,其包括:
由提供商网络的第一服务获得包括在所述提供商网络的扩展中的一个或多个底层可寻址装置的标识;以及
基于所述标识,发起所述提供商网络内的一个或多个计算实例的启动,所述一个或多个计算实例用于通过以下方式跨至少第三方网络将所述提供商网络连接到所述提供商网络的所述扩展:
接收被导向到所述一个或多个底层可寻址装置中的第一底层可寻址装置的第一控制平面消息;
至少部分地基于所述第一控制平面消息来更新消息状态数据存储区;以及
经由安全隧道将第二控制平面消息发送到所述第一底层可寻址装置。
5.如条款4所述的计算机实现的方法:
其中所述第一控制平面消息包括所述第一控制平面消息的源的标识符和对所述第一底层可寻址装置的应用编程接口(API)的调用;并且
其中所述更新所述消息状态数据存储区包括存储所述源的所述标识符和对所述API的所述调用的指示。
6.如条款4-5中任一项所述的计算机实现的方法,其还包括:将虚拟网络地址附接到所述一个或多个计算实例中的至少一个计算实例,其中所述虚拟网络地址匹配所述一个或多个底层可寻址装置中的所述第一底层可寻址装置的底层地址。
7.如条款4-6中任一项所述的计算机实现的方法,其中发起所述提供商网络内的所述一个或多个计算实例的所述启动包括:
由所述第一服务向所述提供商网络的工作流执行服务发送执行工作流的请求,所述工作流包括启动所述一个或多个计算实例中的至少一个计算实例的操作;并且
由所述工作流执行服务所管理的工作流执行器执行所述工作流。
8.如条款4-7中任一项所述的计算机实现的方法,其还包括:
监控所述一个或多个计算实例的实际状态;
确定所述一个或多个计算实例中的第三计算实例正在致使所述一个或多个计算实例的所述实际状态与所述一个或多个计算实例的期望状态不匹配,其中所述一个或多个计算实例的所述期望状态至少部分地基于所述标识;以及
生成标识一个或多个操作以修改所述一个或多个计算实例中的至少一个计算实例以协调所述实际状态与所述期望状态之间的差异的调度。
9.如条款8所述的计算机实现的方法,其中所述监控所述一个或多个计算实例的所述实际状态包括以下至少一者:将对响应的请求发送到所述一个或多个计算实例中的第一计算实例,或从所述一个或多个计算实例中的所述第一计算实例接收消息。
10.如条款8所述的计算机实现的方法,其中在所述调度中标识的所述一个或多个操作包括:
启动第四计算实例以替换所述第三计算实例的第一操作;以及
将所述第四计算实例的标识发送到所述一个或多个计算实例中的除所述第三计算实例之外的至少一个的第二操作。
11.如条款4-10中任一项所述的计算机实现的方法,其还包括:
从所述提供商网络的所述扩展接收与所述扩展的隧道端点相关联的公共密钥;以及
将所述公共密钥发送到所述一个或多个计算实例中的至少一个计算实例,所述至少一个计算实例用作所述提供商网络的隧道端点。
12.如条款4-11中任一项所述的计算机实现的方法,其还包括:用新启动的实例替换所述一个或多个计算实例中的第一计算实例。
13.一种系统,其包括:
提供商网络的实例管理服务的第一一个或多个电子装置;以及
提供商网络的扩展管理服务的第二一个或多个电子装置,所述扩展管理服务包括在执行时致使所述扩展管理服务进行以下操作的指令:
获得包括在所述提供商网络的扩展中的一个或多个底层可寻址装置的标识;以及
基于所述标识,经由所述实例管理服务发起所述提供商网络内的一个或多个计算实例的启动,所述一个或多个计算实例用于跨至少第三方网络将所述提供商网络连接到所述提供商网络的所述扩展,所述一个或多个计算实例用于:
接收被导向到所述一个或多个底层可寻址装置中的第一底层可寻址装置的第一控制平面消息;
至少部分地基于所述第一控制平面消息来更新消息状态数据存储区;以及
经由安全隧道将第二控制平面消息发送到所述第一底层可寻址装置。
14.如条款13所述的系统,其中所述第一控制平面消息包括所述第一控制平面消息的源的标识符和对所述第一底层可寻址装置的应用编程接口(API)的调用,并且其中所述消息状态数据存储区的所述更新包括存储所述源的所述标识符和对所述API的所述调用的指示。
15.如条款13-14中任一项所述的系统,其中所述扩展管理服务包括另外的指令,所述另外的指令在执行时致使所述扩展管理服务将虚拟网络地址附接到所述一个或多个计算实例中的至少一个计算实例,其中所述虚拟网络地址匹配所述一个或多个底层可寻址装置中的至少一个底层可寻址装置的底层地址。
16.如条款13-15中任一项所述的系统,其中为了发起所述提供商网络内的所述一个或多个计算实例的所述启动,所述扩展管理服务包括另外的指令,所述另外的指令在执行时致使所述扩展管理服务将执行工作流的请求发送到所述提供商网络的工作流执行服务,所述请求包括经由所述实例管理服务启动所述一个或多个计算实例中的至少一个计算实例的操作,其中由所述工作流执行服务管理的工作流执行器执行所述工作流。
17.如条款13-16中任一项所述的系统,其中所述扩展管理服务包括另外的指令,所述另外的指令在执行时致使所述扩展管理服务:
监控所述一个或多个计算实例的实际状态;
确定所述一个或多个计算实例中的第三计算实例正在致使所述一个或多个计算实例的所述实际状态与所述一个或多个计算实例的期望状态不匹配,其中所述一个或多个计算实例的所述期望状态至少部分地基于所述标识;并且
生成标识一个或多个操作以修改所述一个或多个计算实例中的至少一个计算实例以协调所述实际状态与所述期望状态之间的差异的调度。
18.如条款17所述的系统,其中监控所述一个或多个计算实例的所述实际状态包括以下至少一者:将对响应的请求发送到所述一个或多个计算实例中的第一计算实例,或从所述一个或多个计算实例中的所述第一计算实例接收消息。
19.如条款17所述的系统,其中在所述调度中标识的所述一个或多个操作包括:
启动第四计算实例以替换所述第三计算实例的第一操作;以及
将所述第四计算实例的标识发送到所述一个或多个计算实例中的除所述第三计算实例之外的至少一个的第二操作。
20.如条款13-19中任一项所述的系统,其中所述扩展管理服务包括另外的指令,所述另外的指令在执行时致使所述扩展管理服务:
从所述提供商网络的所述扩展接收与所述扩展的隧道端点相关联的公共密钥;并且
将所述公共密钥发送到所述一个或多个计算实例中的至少一个计算实例,所述至少一个计算实例用作所述提供商网络的隧道端点。
21.一种计算机实现的方法,其包括:
在提供商网络中接收包括第一控制平面消息有效负载和第一目的地地址的第一数据包,其中所述第一目的地地址匹配所述提供商网络的虚拟网络地址和所述提供商网络的扩展中的第一装置的底层地址,其中所述提供商网络的所述扩展经由至少第三方网络与所述提供商网络通信;
确定所述第一控制平面消息有效负载的至少一部分符合由第一装置提供的应用编程接口;
基于所述第一控制平面消息有效负载的至少一部分来更新消息状态数据存储区;以及
通过所述第三方网络经由第一安全隧道将所述第一控制平面消息有效负载发送到所述第一装置。
22.如条款21所述的计算机实现的方法,其还包括:
在所述提供商网络中,经由所述第一安全隧道从所述第一装置接收第二数据包,其中所述第二数据包包括第二控制平面消息有效负载;
确定不允许所述第二控制平面消息有效负载进入所述提供商网络;以及
丢弃所述第二控制平面消息有效负载。
23.如条款21所述的计算机实现的方法,其还包括:
在所述提供商网络中,接收具有数据平面消息有效负载和所述第一目的地地址的第二数据包,其中所述第一目的地地址匹配所述提供商网络的所述虚拟网络地址和所述提供商网络的所述扩展中的所述第一装置的底层地址;以及
通过所述第三方网络经由第二安全隧道将所述数据平面消息有效负载发送到所述第一装置。
24.一种计算机实现的方法,其包括:
在所述提供商网络中,接收为第一类型并且具有第一目的地地址的第一消息,其中所述第一目的地地址与所述提供商网络的虚拟网络地址和所述提供商网络的扩展中的第一装置的地址相关联,其中所述提供商网络的所述扩展经由至少第三方网络与所述提供商网络通信;
基于所述第一消息的至少一部分来更新消息状态数据存储区;以及
通过所述第三方网络经由第一安全隧道将所述第一消息的第一有效负载发送到所述第一装置。
25.如条款24所述的计算机实现的方法,其还包括:
在所述提供商网络中,经由所述第一安全隧道从所述第一装置接收所述第一类型的第二消息;
确定不允许所述第二消息的第二有效负载进入所述提供商网络;以及
丢弃所述第二消息的所述第二有效负载。
26.如条款24所述的计算机实现的方法,其中所述第一消息包括与所述提供商网络中的第二装置相关联的第一源地址,所述方法还包括:
在所述提供商网络中,经由所述第一安全隧道从所述第一装置接收所述第一类型的第二消息,所述第二消息具有匹配所述第一源地址的第二目的地地址;
确定所述第二消息的第二有效负载匹配对所述第一消息的所述第一有效负载的预期响应;以及
将所述第二消息的所述第二有效负载发送到所述第二装置。
27.如条款26所述的计算机实现的方法:
其中所述第一有效负载包括对所述第一装置的应用编程接口(API)的调用;并且
其中所述更新所述消息状态数据存储区包括存储所述第一源地址、所述第一目的地地址和对所述API的所述调用的指示。
28.如条款24-27中任一项所述的计算机实现的方法,其中所述第一消息的至少一部分用第一密钥加密,所述方法还包括:
用所述第一密钥解密所述第一消息的所述部分以生成解密的有效负载;以及
用第二密钥加密所述解密的有效负载以生成所述第一有效负载的至少一部分。
29.如条款24所述的计算机实现的方法,其还包括:
在所述提供商网络中,接收为第二类型并且具有所述第一目的地地址的第二消息,所述第二消息包括第二有效负载,所述第二有效负载包括由所述第一装置托管的第一计算实例的标识符;以及
通过所述第三方网络经由第二安全隧道将所述第二有效负载发送到所述第一装置。
30.如条款29所述的计算机实现的方法,其中所述第二有效负载还包括由所述提供商网络的第二装置托管托管的第二计算实例的标识符,其中所述第二计算实例产生所述第二有效负载的至少一部分。
31.如条款30所述的计算机实现的方法,其中所述第一计算实例和所述第二计算实例在跨越所述提供商网络和所述提供商网络的所述扩展的隔离虚拟网络内操作。
32.如条款24-31中任一项所述的计算机实现的方法,其中所述第一安全隧道是所述提供商网络与所述提供商网络的所述扩展之间的多个安全隧道中的一个。
33.一种系统,其包括:
提供商网络的第一一个或多个计算装置;
所述提供商网络的扩展的第二一个或多个计算装置,其中所述提供商网络的所述扩展经由至少第三方网络与所述提供商网络通信;并且
其中所述第一一个或多个计算装置包括在处理器上执行时致使所述第一一个或多个计算装置进行以下操作的指令:
在所述提供商网络中,接收为第一类型并且具有第一目的地地址的第一消息,其中所述第一目的地地址与所述提供商网络的虚拟网络地址和所述第二一个或多个计算装置中的第一装置的地址相关联;
基于所述第一消息的至少一部分来更新消息状态数据存储区;以及
通过所述第三方网络经由第一安全隧道将所述第一消息的第一有效负载发送到所述第一装置。
34.如条款33所述的系统,其中所述第一一个或多个计算装置包括在处理器上执行时致使所述第一一个或多个计算装置进行以下操作的另外的指令:
在所述提供商网络中,经由所述第一安全隧道从所述第一装置接收所述第一类型的第二消息;
确定不允许所述第二消息的第二有效负载进入所述提供商网络;以及
丢弃所述第二消息的所述第二有效负载。
35.如条款33所述的系统:
其中所述第一消息包括与所述提供商网络中的第二装置相关联的第一源地址,并且
其中所述第一一个或多个计算装置包括在处理器上执行时致使所述第一一个或多个计算装置进行以下操作的另外的指令:
在所述提供商网络中,经由所述第一安全隧道从所述第一装置接收所述第一类型的第二消息,所述第二消息具有匹配所述第一源地址的第二目的地地址;
确定所述第二消息的第二有效负载匹配对所述第一消息的所述第一有效负载的预期响应;以及
将所述第二消息的所述第二有效负载发送到所述第二装置。
36.如条款35所述的系统:
其中所述第一有效负载包括对所述第一装置的应用编程接口(API)的调用;并且
其中所述消息状态数据存储区的所述更新包括存储所述第一源地址、所述第一目的地地址和对所述API的所述调用的指示。
37.如条款33-36中任一项所述的系统:
其中所述第一消息的至少一部分是用第一密钥加密的;并且
其中所述第一一个或多个计算装置包括在处理器上执行时致使所述第一一个或多个计算装置进行以下操作的另外的指令:
用所述第一密钥解密所述第一消息的所述部分以生成解密的有效负载;以及
用第二密钥加密所述解密的有效负载以生成所述第一有效负载的至少一部分。
38.如条款33所述的系统,其中所述第一一个或多个计算装置包括在处理器上执行时致使所述第一一个或多个计算装置进行以下操作的另外的指令:
在所述提供商网络中,接收为第二类型并且具有所述第一目的地地址的第二消息,所述第二消息包括第二有效负载,所述第二有效负载包括由所述第一装置托管的第一计算实例的标识符;以及
通过所述第三方网络经由第二安全隧道将所述第二有效负载发送到所述第一装置。
39.如条款38所述的系统:
其中所述第二有效负载还包括由所述提供商网络的第二装置托管托管的第二计算实例的标识符;并且
其中所述第二计算实例产生所述第二有效负载的至少一部分。
40.如条款39所述的系统,其中所述第一计算实例和所述第二计算实例在跨越所述提供商网络和所述提供商网络的所述扩展的隔离虚拟网络内操作。
因此,说明书和附图将视为说明性而非限制性意义。然而,将明显的是,在不脱离如在权利要求中阐述的本公开更宽广精神和范围的情况下,可对其做出各种修改和改变。

Claims (15)

1.一种计算机实现的方法,其包括:
由提供商网络的第一服务获得包括在所述提供商网络的扩展中的一个或多个底层可寻址装置的标识,其中所述提供商网络的所述扩展包括部署在客户选择的站点处的提供商硬件资源,并且其中所述提供商硬件资源包括服务器;以及
基于所述标识,发起所述提供商网络内的一个或多个计算实例的启动,所述一个或多个计算实例用于通过以下方式跨至少第三方网络将所述提供商网络连接到所述提供商网络的所述扩展:
接收被导向到所述一个或多个底层可寻址装置中的第一底层可寻址装置的第一控制平面消息;
至少部分地基于所述第一控制平面消息来更新消息状态数据存储区;以及
经由安全隧道将第二控制平面消息发送到所述第一底层可寻址装置。
2.如权利要求1所述的计算机实现的方法:
其中所述第一控制平面消息包括所述第一控制平面消息的源的标识符和对所述第一底层可寻址装置的应用编程接口(API)的调用;并且
其中所述更新所述消息状态数据存储区包括存储所述源的所述标识符和对所述API的所述调用的指示。
3.如权利要求1-2中任一项所述的计算机实现的方法,其还包括:将虚拟网络地址附接到所述一个或多个计算实例中的至少一个计算实例,其中所述虚拟网络地址匹配所述一个或多个底层可寻址装置中的所述第一底层可寻址装置的底层地址。
4.如权利要求1-2中任一项所述的计算机实现的方法,其中发起所述提供商网络内的所述一个或多个计算实例的所述启动包括:
由所述第一服务向所述提供商网络的工作流执行服务发送执行工作流的请求,所述工作流包括启动所述一个或多个计算实例中的至少一个计算实例的操作;以及
由所述工作流执行服务所管理的工作流执行器执行所述工作流。
5.如权利要求1-2中任一项所述的计算机实现的方法,其还包括:
监控所述一个或多个计算实例的实际状态;
确定所述一个或多个计算实例中的第三计算实例正在致使所述一个或多个计算实例的所述实际状态与所述一个或多个计算实例的期望状态不匹配,其中所述一个或多个计算实例的所述期望状态至少部分地基于所述标识;以及
生成标识一个或多个操作以修改所述一个或多个计算实例中的至少一个计算实例以协调所述实际状态与所述期望状态之间的差异的调度。
6.如权利要求5所述的计算机实现的方法,其中所述监控所述一个或多个计算实例的所述实际状态包括以下至少一者:将对响应的请求发送到所述一个或多个计算实例中的第一计算实例,或从所述一个或多个计算实例中的所述第一计算实例接收消息。
7.如权利要求5所述的计算机实现的方法,其中在所述调度中标识的所述一个或多个操作包括:
启动第四计算实例以替换所述第三计算实例的第一操作;以及
将所述第四计算实例的标识发送到所述一个或多个计算实例中的除所述第三计算实例之外的至少一个的第二操作。
8.如权利要求1-2中任一项所述的计算机实现的方法,其还包括:
从所述提供商网络的所述扩展接收与所述扩展的隧道端点相关联的公共密钥;以及
将所述公共密钥发送到所述一个或多个计算实例中的至少一个计算实例,所述至少一个计算实例用作所述提供商网络的隧道端点。
9.如权利要求1-2中任一项所述的计算机实现的方法,其还包括:用新启动的实例替换所述一个或多个计算实例中的第一计算实例。
10.一种计算系统,其包括:
提供商网络的实例管理服务的第一一个或多个电子装置;以及
提供商网络的扩展管理服务的第二一个或多个电子装置,所述扩展管理服务包括在执行时致使所述扩展管理服务进行以下操作的指令:
获得包括在所述提供商网络的扩展中的一个或多个底层可寻址装置的标识,其中所述提供商网络的所述扩展包括部署在客户选择的站点处的提供商硬件资源,并且其中所述提供商硬件资源包括服务器;以及
基于所述标识,经由所述实例管理服务发起所述提供商网络内的一个或多个计算实例的启动,所述一个或多个计算实例用于跨至少第三方网络将所述提供商网络连接到所述提供商网络的所述扩展,所述一个或多个计算实例用于:
接收被导向到所述一个或多个底层可寻址装置中的第一底层可寻址装置的第一控制平面消息;
至少部分地基于所述第一控制平面消息来更新消息状态数据存储区;以及
经由安全隧道将第二控制平面消息发送到所述第一底层可寻址装置。
11.如权利要求10所述的计算系统,其中所述第一控制平面消息包括所述第一控制平面消息的源的标识符和对所述第一底层可寻址装置的应用编程接口(API)的调用,并且其中所述消息状态数据存储区的所述更新包括存储所述源的所述标识符和对所述API的所述调用的指示。
12.如权利要求10-11中任一项所述的计算系统,其中所述扩展管理服务包括另外的指令,所述另外的指令在执行时致使所述扩展管理服务将虚拟网络地址附接到所述一个或多个计算实例中的至少一个计算实例,其中所述虚拟网络地址匹配所述一个或多个底层可寻址装置中的至少一个底层可寻址装置的底层地址。
13.如权利要求10-11中任一项所述的计算系统,其中为了发起所述提供商网络内的所述一个或多个计算实例的所述启动,所述扩展管理服务包括另外的指令,所述另外的指令在执行时致使所述扩展管理服务将执行工作流的请求发送到所述提供商网络的工作流执行服务,所述请求包括经由所述实例管理服务启动所述一个或多个计算实例中的至少一个计算实例的操作,其中由所述工作流执行服务管理的工作流执行器执行所述工作流。
14.如权利要求10-11中任一项所述的计算系统,其中所述扩展管理服务包括另外的指令,所述另外的指令在执行时致使所述扩展管理服务:
监控所述一个或多个计算实例的实际状态;
确定所述一个或多个计算实例中的第三计算实例正在致使所述一个或多个计算实例的所述实际状态与所述一个或多个计算实例的期望状态不匹配,其中所述一个或多个计算实例的所述期望状态至少部分地基于所述标识;并且
生成标识一个或多个操作以修改所述一个或多个计算实例中的至少一个计算实例以协调所述实际状态与所述期望状态之间的差异的调度。
15.如权利要求14所述的计算系统,其中监控所述一个或多个计算实例的所述实际状态包括以下至少一者:将对响应的请求发送到所述一个或多个计算实例中的第一计算实例,或从所述一个或多个计算实例中的所述第一计算实例接收消息。
CN202080047186.XA 2019-06-28 2020-06-26 提供商网络底层扩展的提供商网络连接管理 Active CN114026826B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/457,827 US11374789B2 (en) 2019-06-28 2019-06-28 Provider network connectivity to provider network substrate extensions
US16/457,827 2019-06-28
US16/457,824 2019-06-28
US16/457,824 US11659058B2 (en) 2019-06-28 2019-06-28 Provider network connectivity management for provider network substrate extensions
PCT/US2020/039859 WO2020264323A1 (en) 2019-06-28 2020-06-26 Provider network connectivity management for provider network substrate extensions

Publications (2)

Publication Number Publication Date
CN114026826A CN114026826A (zh) 2022-02-08
CN114026826B true CN114026826B (zh) 2023-07-14

Family

ID=71662357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080047186.XA Active CN114026826B (zh) 2019-06-28 2020-06-26 提供商网络底层扩展的提供商网络连接管理

Country Status (3)

Country Link
EP (1) EP3987397A1 (zh)
CN (1) CN114026826B (zh)
WO (1) WO2020264323A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11418995B2 (en) 2019-11-29 2022-08-16 Amazon Technologies, Inc. Mobility of cloud compute instances hosted within communications service provider networks
US10979534B1 (en) * 2019-11-29 2021-04-13 Amazon Technologies, Inc. Latency-based placement of cloud compute instances within communications service provider networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6156652A (en) * 1998-10-09 2000-12-05 The United States Of America As Represented By The Secretary Of The Air Force Post-process metallization interconnects for microelectromechanical systems
CN105814554A (zh) * 2013-12-11 2016-07-27 亚马逊科技公司 虚拟网络中基于身份和访问管理的访问控制
WO2018020290A1 (en) * 2016-07-25 2018-02-01 Telefonaktiebolaget Lm Ericsson (Publ) Fast control path and data path convergence in layer 2 overlay networks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014062405A1 (en) * 2012-10-16 2014-04-24 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multi-level api integration
US9686121B2 (en) * 2013-09-23 2017-06-20 Amazon Technologies, Inc. Client-premise resource control via provider-defined interfaces

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6156652A (en) * 1998-10-09 2000-12-05 The United States Of America As Represented By The Secretary Of The Air Force Post-process metallization interconnects for microelectromechanical systems
CN105814554A (zh) * 2013-12-11 2016-07-27 亚马逊科技公司 虚拟网络中基于身份和访问管理的访问控制
WO2018020290A1 (en) * 2016-07-25 2018-02-01 Telefonaktiebolaget Lm Ericsson (Publ) Fast control path and data path convergence in layer 2 overlay networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
VPN的扩展性研究;童珉;计算机时代(第07期);全文 *
在线广告网络的评估与优化;王永;《中国优秀博士论文全文数据库》;全文 *

Also Published As

Publication number Publication date
WO2020264323A1 (en) 2020-12-30
EP3987397A1 (en) 2022-04-27
CN114026826A (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
US11539552B1 (en) Data caching in provider network substrate extensions
US11659058B2 (en) Provider network connectivity management for provider network substrate extensions
US9749149B2 (en) System and method for initializing and maintaining a series of virtual local area networks contained in a clustered computer system
US10949125B2 (en) Virtualized block storage servers in cloud provider substrate extension
JP6118850B2 (ja) 設定可能プライベートコンピュータネットワークへのアクセス提供
US9374341B2 (en) Establishing secure remote access to private computer networks
US8407366B2 (en) Interconnecting members of a virtual network
US11620081B1 (en) Virtualized block storage servers in cloud provider substrate extension
EP3333705B1 (en) Providing local secure network access to remove services
KR102540776B1 (ko) 어드레스 마이그레이션 서비스
US11431497B1 (en) Storage expansion devices for provider network substrate extensions
US10949131B2 (en) Control plane for block storage service distributed across a cloud provider substrate and a substrate extension
US11411771B1 (en) Networking in provider network substrate extensions
CN114026826B (zh) 提供商网络底层扩展的提供商网络连接管理
US11374789B2 (en) Provider network connectivity to provider network substrate extensions
CN114008593B (zh) 云提供者底层扩展部分中的虚拟化的块存储服务器
Khan Transforming IT Service Delivery by Leveraging Private Clouds

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