虚拟专用网关中的服务端点互连的制作方法

文档序号:19325220发布日期:2019-12-04 01:01阅读:415来源:国知局
虚拟专用网关中的服务端点互连的制作方法



背景技术:

公共服务提供商提供客户可使用的硬件装置(例如,服务器、存储驱动器等)和服务,从而避免客户必须拥有和操作此类装备。一些服务提供商向其客户提供各种各样的服务,客户在公共网络上从他们自己的装置访问这些服务。客户装置与提供商网络之间的通信在诸如因特网的公共网络上进行,并且可能未加密。

附图说明

为了详细描述各种实例,现将参考附图,在附图中:

图1示出根据各种实例的系统;

图2示出根据各种实例的用于更新服务的路由数据的实施方案;

图3示出根据各种实例的创建虚拟专用网关的方法;

图4示出根据各种实例的由虚拟专用网关执行的方法;

图5示出用于更新路由数据并且将更新路由数据分发到虚拟专用网关和对等远程节点的方法;并且

图6是根据各种实例的计算装置的框图。

具体实施方式

本文所描述的实施方案展示的提供商网络准许其客户中的每一者创建和使用虚拟专用网关(vgw)来建立客户的远程节点(即,远离提供商网络)与vgw之间的安全(例如,加密)隧道。客户可使用加密隧道来提交对在提供商网络内执行的服务(例如,存储服务)的请求。客户可从远程节点加密对提供商网络托管服务的请求,或使所述请求加密。加密数据包跨越安全隧道传输到vgw。vgw可例如被实现为在虚拟机内执行的应用,所述虚拟机本身在提供商网络内的计算装置(诸如,服务器)上执行。应用可执行归因于vgw的本文所描述的功能。vgw作为服务端点操作并且对数据包进行解密以恢复服务请求,并且使用路由表中用于目标服务的路由数据来在服务提供商的内部网络上转发服务请求,以便递送到目标服务在其上执行的服务器。然后,服务可执行服务请求。可将待返回到远程节点的由服务生成的任何响应数据包传输回到vgw,然后vgw对数据包进行加密,并且在隧道上将加密数据包传输到远程节点。如此,客户可通过通向vgw的专用加密隧道来访问服务,而非通过将服务请求提交到与服务相关联的公共因特网协议(ip)地址来访问服务。

在一些实施方案中,提供商网络可包括客户可向其提交对创建vgw的请求的vgw预配置服务。响应于接收到对为给定客户创建vgw的请求,预配置服务选择要在其上加载和执行vgw虚拟机的服务器。vgw虚拟机可包括机器映像,所述机器映像包括实现vgw的功能的上述应用。对创建vgw的请求还可包括客户期望通过加密隧道访问的一个或多个服务的标识符。

在一些实施方案中,vgw可包括路由表,所述路由表包含有利于vgw确定将vgw接收到的传入数据包发送到什么位置的路由数据。由客户指定为可经由客户的vgw访问的一个或多个服务可生成路由数据,诸如包括前缀列表标识符的前缀列表和对应服务的规范名称。前缀列表标识符可逻辑地表示用于服务的公共ip地址的范围。除前缀列表之外,其他形式的路由数据也是可能的。提供商网络可实现路由交换服务,所述路由交换服务准许服务提供和更新其路由数据,以用于重新分发到被配置来访问每个此类服务的vgw。在创建vgw之后,vgw预配置服务可向路由交换服务提交请求。请求指定要将vgw配置来访问哪一个或多个服务,并且路由交换服务可向vgw提供用于所指定服务的路由数据,然后vgw将此类路由数据添加到其路由表。

预配置服务也可供每个客户访问,以创建用于客户已经指定为可经由其vgw访问的给定服务的策略。在一个实例中,策略可指定服务仅认同流动通过vgw(并且因此通过加密隧道流到vgw)的服务请求。其他类型的策略也是可能的。策略可提供给对应服务并且由此类服务实现。

图1示出提供商网络100的实例,其包括多个服务器(例如,服务器110和160)、多个服务130、vgw预配置服务140和路由交换服务150。虚拟机165可代表提供商网络的客户在服务器160上安设和执行。客户可具有一个或多个虚拟机165,并且可具有在每个此类虚拟机内执行以支持客户需求的客户专用软件(例如,企业的企业应用)。可在公共网络上在提供商网络内的计算实体与远程节点(例如,远程节点80)之间建立通信。在图1的实例中,通信连接被展示为在网络90上连接到远程节点80。网络90可包括公共网络(例如,因特网),并且包括广域网、局域网、有线网络、无线网络等中的任一者或多者。

远程节点80可包括单个计算机或联网在一起的计算机集合。在一些实施方案中,远程节点80可包括在客户的数据中心内的网关,或者可以是数据中心本身。远程节点80可用于访问vfw预配置服务140,从而请求为客户创建vgw。用于给定客户的vgw105的实现方式的实例在图1中被示出为其上已经安设vgw应用120并且正在执行的服务器110。一旦使用或通过远程节点80创建了vgw105,客户就可以建立通向vgw的安全隧道90,如下所解释。

vgw应用120可在虚拟机115内执行,所述虚拟机115本身可在服务器110上执行。类似地,服务器160可用于执行虚拟机165,而在虚拟机165中可执行客户专用应用170。另外,服务130(例如,服务a、服务b、......、服务n)中的任一者或多者和vgw预配置服务140可包括在物理服务器上执行的虚拟机内执行的应用。如此,提供商网络100被配置来在服务器上启动和执行虚拟机以用于各种用途。

虚拟机是物理计算机系统的软件实现方式。虚拟机可使得多个和/或不同操作系统环境同时在单个主机计算机上运行。在一个实例中,linux®操作系统环境的多个虚拟机可与microsoft®windows®操作系统环境的多个实例同时在单个物理计算机上执行。虚拟机可与管理程序或虚拟机监视程序(或其他类型的虚拟化系统)交互,所述程序是在物理计算机上执行的允许多个访客操作系统共享单个硬件主机的程序。每个虚拟机操作系统似乎可以独占地访问主机的处理器、存储器和其他资源。然而,管理程序控制主机处理器和资源,从而依次分配每个虚拟机的操作系统所需要的资源,并且确保虚拟机的访客机操作系统不相互干扰。每个虚拟机可由相应的客户控制。由客户创建的虚拟机(例如,虚拟机165)可由客户来加载根据客户选择的任何客户专用应用。例如,客户的应用可包括web服务器应用、数据处理应用、或客户期望的任何其他类型的功能。在虚拟机内执行的应用可预先存储在用于启动这些虚拟机的机器映像中,或者可由预配置服务在启动后加载到虚拟机中。

仍然参考图1,服务130可包括由服务提供商向其客户提供的无数服务。在一个实例中,服务130可包括存储服务,其可准许客户请求大容量存储装置的分配并且将来自其远程节点的数据存储到其存储分配。随后可从存储装置检索数据中的一些或全部并且将其提供到远程节点。在另一实例中,服务可提供数据库服务。在一个实施方案中,数据库服务可提供灵活的非关系数据库以供提供商网络的客户使用。数据库可支持文档和键值存储模型。在另一实例中,服务允许客户上传其可执行代码,并且在发生客户指定的触发事件时由提供商网络自动执行可执行代码。当发生触发事件(例如,照片被上传到系统,传感器限制被超出等)时,无需要求客户预配置和管理任何虚拟机以运行客户专用代码就可执行此类代码。服务130中的任一者或全部可被实现为在不需要使用虚拟机的情况下执行对应应用的服务器,但在其他实施方案中,服务中的任一者可包括如上所描述的可在虚拟机内执行的软件。

在一些实施方案中,每个服务130可具有其由发布ip地址发布服务133通告的公共ip地址(或ip地址范围)。每个服务130可与公共ip地址发布服务133的单独对应实例相关联,或多个服务130可使用共同的公共ip地址发布服务133。用于给定服务130的公共ip地址可在公共网络90上通告,从而准许远程装置提交包含公共ip地址的服务请求。在一些情况下,域名服务(dns)可接收和存储用于服务的公共ip地址,并且对来自远程节点的dns请求作出响应以将服务名称(例如,统一资源定位符)解析为服务的公共ip地址。

然而,提供商网络的客户可能期望使用服务130中的一者或多者并且在安全隧道上建立通向提供商网络100的通信链路,以便向提供商网络提交请求以使用一个或多个服务,而非向目标服务的公共ip地址提交请求。在图1的实例中,安全隧道92展示为已经建立在远程节点80与已经为客户创建的vgw105之间。如上所述,vgw可实现为执行虚拟机115的服务器110,所述虚拟机115进而执行vgw应用120。vgw应用120实现如归因于客户的vgw的本文所描述的功能。在一些实施方案中,安全隧道92是加密隧道,这意指在隧道上来回传输的数据包是加密的——也就是说,由隧道的源端加密并且由目的地端解密。由于隧道92可以是双向隧道,vgw105可对来自远程节点80的传入加密数据包进行解密,并且对传出数据包进行加密以跨越隧道92传输到远程节点。类似地,远程节点80可对来自vgw105的传入加密数据包进行解密,并且对传出数据包进行加密以跨越隧道传输到vgw。

已经接收到如上所描述的用于服务的路由数据的客户的vgw105向客户的远程节点80通告用于服务的公共地址以及vgw的标识符。此时,远程节点80被配置为使得:如果要生成对服务130的访问请求,那么其路由信息指示待使用服务的公共ip地址生成的数据包相反是使用vgw的ip地址作为目的地地址创建的。因此,服务请求数据包在安全隧道92上发送到vgw,而不是发送到服务本身的公共ip地址。如此,服务130可以至少两种方式访问:通过包含vgw的ip地址作为其目的地地址并且通过安全隧道92传输并且由vgw105路由到服务的数据包,或者通过包括服务的公共ip地址作为目的地地址的数据包。

在一些实现方式中,隧道92可使用因特网协议安全(ipsec)标准来实现,并且隧道的端(即,vgw105和远程节点80)可执行因特网密钥交换(ike)协议,以便于在节点之间建立安全关联。ike协议包括两个阶段:阶段i和阶段ii。在阶段i中,通过使用diffie-hellman密钥交换算法生成共享密钥以对进一步的ike通信进行加密,协议建立安全的认证通信通道。可使用预先分享的密钥、数字签名或公钥加密来执行认证。在阶段ii期间,两个ike对等体代表其他服务(诸如,因特网协议安全(ipsec))使用在阶段i中建立的安全通道协商安全关联。协商导致两个单向安全关联——一个入站和一个出站。每个安全关联包括用于对数据包进行加密/解密的加密密钥。通过执行ike协议阶段i和阶段ii操作中的任一者或两者,定期轮换diffie-hellman和ipsec加密密钥来增加安全性。由远程节点80生成和加密的数据包可包括对使用服务130中的任一者的请求。因此,所公开的实施方案准许客户在加密隧道上向vgw105提交服务请求。vgw对传入数据包进行解密,并且将服务请求转发到目标服务。

如上所述,客户可访问vgw预配置服务140以请求创建和分配vgw105以供客户专用。请求可以呈例如应用编程接口(api)调用的形式提交到vgw预配置服务140。api调用可以是指定客户期望执行的动作的规范名称。例如,api调用可包括“vgwcreate()”,其中要插入括号之间的值指定所需vgw105的各种特性。例如,客户可包括客户期望通过vgw访问的每个服务130的标识符、客户或客户账户的标识符、用于认证请求的凭证信息、vgw要与之建立隧道的远程节点80的公共ip地址等。

响应于请求,vgw预配置服务140可从多个可用服务器之中选择物理服务器110以用于vgw。所选服务器当前可能正在执行或者可能不在执行另一个应用或vgw。vgw预配置服务140使机器映像下载到所选服务器110。在一个实施方案中,可从机器映像存储装置(未示出)检索特定机器映像并且传输到所选主机计算机。机器映像可包括操作系统、驱动器、和被配置来实现vgw功能中的一些或全部的vgw应用120,所述vgw功能诸如数据包加密和解密、隧道92的加密密钥轮换、将数据包从远程节点80路由到目标服务130等。将适当的机器映像传输到主机服务器的存储驱动器并且加载到其上。机器映像可存储在集中式数据库或提供商网络内的数据存储库中。每个机器映像,包括基于vgw的机器映像以及可由客户使用以启动其他类型的虚拟机的其他类型的机器映像,可具有预先指派的标识符(id)。所述id可由vgw预配置服务使用以在物理服务器上启动虚拟机作为vgw105。vgw预配置服务140选择要复制到所选服务器的机器映像,以用于使用与实现vgw功能所需要的机器映像相关联的id来启动vgw虚拟机。vgw预配置服务140、或单独的预配置服务也可执行类似的操作来启动提供商网络内的其他虚拟机(诸如,由客户使用以执行其应用、以及服务130等的虚拟机165)。

被创建以提供vgw功能的虚拟机115也可包括路由表125。路由表125可包含一个或多个条目,所述一个或多个条目包含可用于确定如何路由传入数据包的数据。例如,可将单独的条目添加到对应于客户已经标识出要从远程节点80通过vgw访问的每个服务130的路由表125。给定路由表条目中所包含的路由数据可包括例如目的地值、目标值和“下一跳”ip地址。目的地值可包括用于服务的公共ip地址范围,并且目标值可包括vgw105的标识符。下一跳ip地址包括提供商网络内的用于服务的数据包要发送到的联网实体的ip地址。由下一跳地址标识的联网实体可包括用于提供商网络内的服务的本地网络的边缘路由器。一旦边缘路由器接收到数据包,服务的边缘路由器就能够将数据包转发到服务的本地网络内的适当服务器,以执行数据包中所包含的服务请求。不同和/或附加类型的路由数据可包括在每个路由表条目中。

路由交换服务150可存储用于服务130中的每一者的路由数据,并且可将此类路由数据提供给已经由其客户指定的vgw以访问此类服务。此类路由数据指定vgw如何将传入数据包转发到数据包的目标服务。上文描述了此类路由数据的实例。用于给定服务的路由数据可由服务改变。例如,给定服务的使用可增强到提供商网络可通过添加用于执行所述服务的应用的附加服务器和/或虚拟机来扩展所述服务的程度。另外,在实现服务的服务器上进行维护可能需要将路由数据改变为服务。无论出于何种原因改变用于给定服务的路由数据,可能都需要改变、扩展和/或减少用于访问服务器和虚拟机(其执行服务的应用)的数据包的路由数据。

图2示出路由交换服务150的实施方案。在此实施方案中,路由交换服务150可包括服务路由反射器服务151和vgw路由反射器服务153。路由反射器151、153可实现为在服务器上执行的机器代码。每个路由反射器151、153被配置来获悉来自另一路由反射器的可用路线。每个服务130可与单独的服务路由反射器服务151通信,或者多个服务130可使用单个服务路由反射器服务151。单个vgw路由反射器服务153可与多个或所有vgw105相关联,或者单个vgw可与vgw路由反射器服务153的单独实例相关联。

当给定服务130更新其路由数据时,服务可向服务路由反射器服务153提供更新路由数据。服务路由反射器服务151可通过向vgw路由反射器服务153提供更新路由数据来作出响应。在一些实施方案中,路由交换服务150可实现边界网关协议(bgp)。bgp准许在网络上的节点之间交换路由信息和可达性信息。通过使用bgp,路由反射器服务151和153参与交换服务130的更新路由数据。在其他实施方案中,服务路由反射器服务151不实现bgp,而是将api调用传输到vgw路由反射器服务153。api的参数可包括更新路由数据,或者包括对vgw路由反射器服务153可获得此类数据的位置的引用。api调用可包括添加路由数据的api调用、删除路由数据的api调用等。一旦vgw路由反射器服务153接收更新路由数据,vgw路由反射器服务153就可向已经被配置来访问其路由数据正在被更新的服务130的每个vgw105提交api调用。当然,在其他实施方案中,系统可被配置为使得被描述为向第二系统或服务提交api调用的系统或服务可选地可被配置来从所述第二系统或服务接收api调用。然后,将更新路由数据添加到每个此类vgw105的路由表125。

再次参考图1,在客户创建vgw时,如果客户已经指定待由vgw访问的一个或多个特定服务130,那么vgw预配置服务140可向路由交换服务150提交请求(例如,api调用)。请求可标识vgw,并且可指定所标识的vgw需要路由数据的服务。然后,路由交换服务150可向所标识的vgw105提供所需要的路由数据,以添加到vgw的路由表125。在另一实施方案中,vgw预配置服务140可向vgw提交api调用与指定vgw被配置用于的一个或多个服务的参数。作为响应,vgw可向路由交换服务150提交查询以获得用于所指定的一个或多个服务的路由数据。在又一配置中,vgw105可被预先配置来在其在线时向路由交换服务150发送api请求。此外,vgw路由反射器服务153可记录哪些vgw105必须路由到特定服务。如此,如果服务要改变路由数据,那么vgw路由反射器服务153可将更新消息发送到包括用于所述服务的路由数据的所有vgw。

vgw预配置服务140(或授权服务,未展示)还可准许客户经由远程节点80创建服务策略145。例如,独立于vgw预配置服务的授权服务可实现客户可藉以交互以创建服务策略145的管理接口。通过此类接口,客户可指定或选择服务,选择或指定专用于所述策略的策略,并且请求实现策略。授权服务可例如经由api调用将策略传输到所指定的服务以用于在其上实现。服务策略145可限制例如对给定服务130的访问。例如,客户可访问存储服务中的存储装置。客户可创建服务策略145,其将对存储服务中的某些数据的访问限制为仅访问从加密隧道92通过客户的vgw105的请求。vgw可将标签添加到服务请求,使得服务130将能够确定通过vgw的数据包。标签可包括插入到服务请求数据包中(例如,插入到报头字段中)或插入到封装数据包中的元数据值(诸如,标识符或数字签名),所述封装数据包包封服务所先验已知与vgw相关联的服务请求数据包。服务策略可以是客户创建的,并且可专用于底层服务130。

在一些实施方案中,可通过客户经由远程节点80与认证服务或vgw预配置服务140之间的交互来创建安全策略145。交互可以是经由由vgw预配置服务140实现的图形控制台的,并且例如通过在远程节点上执行的web浏览器或通信地耦接到远程节点80的计算机来显示。在其他实施方案中,客户可向vgw预配置服务140提交api调用以创建安全策略。在一些情况下,可将安全策略145传输到对应vgw以用于遵循评估和遵循,而在其他情况下,可将安全策略传输到对应服务130以用于遵循。将策略145提供给vgw105还是服务130取决于服务和策略的性质。在策略是使存储服务认同仅来自客户的vgw的对客户的存储装置访问的访问请求并且忽略没有通过客户的vgw的访问请求的上文实例中,安全策略将会提供给存储服务。

图1示出其中vgw105通信地耦接到一个或多个服务器130和客户创建和使用的虚拟机165在其上执行的一个或多个服务器160的实例。客户的虚拟机165可在虚拟网络(vn)中运行。vn包括在由客户限定的网络中运行的虚拟机的逻辑分组。客户可以完全控制限定环境,包括选择ip地址范围、创建子网以及配置路由表和网络网关。用于客户的vn可在将客户的虚拟机在其上执行的主机计算机互连的一个或多个中间物理网络上实现。也就是说,虚拟网络可在物理网络上实现。每个客户可具有在虚拟网络内操作的实例。虚拟网络使用虚拟ip地址和在物理网络内操作的系统来路由对应于与托管虚拟网络中的其他虚拟机的机器相关联的物理ip地址的数据包。虚拟网络的实现方式可包括修改数据包或将附加的报头添加到数据包,以将与虚拟网络一致的虚拟地址映射到与底层物理网络相关联的物理地址,使得数据包可通过物理网络在主机计算机之间路由。实现用于客户的vn的主机计算机中的每一者可包括通信管理器,其可基于提供商网络内使用的物理ip地址来修改去往客户的虚拟网络内的另一虚拟机的虚拟ip地址的传出数据包。例如,如果要在服务提供商的网络中的计算节点之间发送通信数据包,那么始发数据包可包括根据特定协议(例如,ipv4)的ip地址,并且与发送主机计算机相关联的虚拟机通信管理器将虚拟网络数据包嵌入包括物理源和目的地ip地址的基层网络数据包中。然后,虚拟机通信管理器通过提供商网络的内部网络(例如,交换机、路由器等)传输数据包。与接收主机计算机相关联的虚拟机通信管理器接收基层数据包,提取虚拟网络数据包,并且将虚拟网络数据包发送到目标虚拟机上。

可提供映射服务以存储、更新和提供虚拟到物理地址映射,以用于修改要在虚拟网络中的虚拟机之间传输的数据包。在各种实施方案中,虚拟网络可以各种方式实现,诸如通过使用ipv4(“因特网协议版本4”)或ipv6(“因特网协议版本6”)数据包作为覆盖网络数据包大小。例如,可将虚拟网络的虚拟网络地址信息嵌入用于一个或多个中间物理网络的网络协议的较大物理数据包网络地址空间中。作为一个说明性实例,可使用32位ipv4网络地址来实现虚拟网络,并且那些32位虚拟网络地址可作为由一个或多个中间物理网络使用的128位ipv6网络地址的一部分嵌入,诸如通过重设通信数据包或其他数据传输的报头,或以其他方式修改此类数据传输以将它们从它们被配置所针对的第一联网协议转换成相异第二联网协议。在其他实施方案中,ipv4数据包可由物理网络和虚拟网络使用。例如,由虚拟机生成的ipv4数据包的大小可限制为可插入ipv4数据包中并且留存足够的位以便服务提供商可向数据包添加报头的大小。

在图1的实施方案中,由远程节点80传输的数据包可路由到服务130(如上所解释),或者路由到客户的虚拟网络内的虚拟机165。如此,vgw105可提供到服务130和/或客户的虚拟网络的连接性。另外,图1示出其中服务130在提供商网络100内实现的实例。然而,在其他实例中,服务中的一者或多者可在提供商网络外部实现,但仍然可经由托管在提供商网络上的客户的vgw105访问。由路由交换服务提供到路由表中的路由数据包括可用于访问服务的路由信息,无论这些服务是本地(即,在提供商网络100内)托管的还是远程(即,在提供商网络外部)托管的。

图3展示用于创建用于客户的vgw的方法。这些操作可以所示的顺序或者以不同的顺序执行。此外,操作可依序执行,或者操作中的两者或更多者可同时执行。在200处,方法可包括接收例如由客户经由远程节点80提交的请求以创建vgw,以及指定待由客户经由vgw访问的一个或多个服务。服务策略也可被包括为请求的一部分。在一些实施方案中,待通过vgw访问的一个或多个服务的规范可以是对创建vgw的请求的一部分,或者可在创建vgw之后以单独的api调用提交。类似地,服务策略可以是对创建vgw的请求的一部分,或者可在创建vgw之后提交。在一些实施方案中,对创建vgw的请求可包括api调用,而在其他实施方案中,请求可通过其中客户可进行选择的图形用户接口(例如,在web浏览器中实现)或命令行接口进行。创建请求可指定客户的账户、vgw要与之建立加密隧道92的远程节点80的公共ip地址、认证秘钥、以及可用于建立隧道92的任何其他值。由客户使用以提交创建请求的节点可以是与参与到vgw105的加密隧道92的节点不同的计算装置。因此,与创建请求一起提交的公共ip地址可以是或者可以不是向vgw预配置服务140提交请求的计算装置的公共ip地址。vgw预配置服务140可接收对创建vgw的请求。

在202处,方法包括在物理服务器上预配置虚拟机以实现所请求的vgw105。虚拟机的预配置可包括将包括vgw应用120的机器映像复制到服务器上,并且然后启动虚拟机。此操作还可包括在vgw中建立安全关联以用于隧道92。安全关联可包括加密算法、认证值、远程节点的公共ip地址等。vgw可执行ike协议以建立加密秘钥。在204处,可通过例如路由交换服务150来获得客户请求中所标识的用于一个或多个服务的路由数据。路由数据包括可由vgw使用以转发由vgw在加密隧道92上接收的服务请求(如上所解释)的路由信息。然后,在206处,可将路由数据加载到建立在vgw105的路由表中。

在208处,vgw105向与vgw对等的远程节点80通告路由数据。通告可包括可经由vgw和vgw的标识符访问的公共ip地址(或用于一个或多个服务的地址范围)。此信息致使经由网络装置(诸如,虚拟专用网络(vpn)装置)连接到加密隧道92的计算机系统创建数据包,其包含要在加密隧道92上提供给vgw而非经由公共因特网提供给服务本身的对服务的请求。

在210处,方法还包括将客户创建的策略(如果有的话)提供到对应服务(也就是说,策略所应用到的服务)中。当然,在一些实施方案中,可将策略提供给vgw而非服务。

图4是展示vgw的操作的实例的方法。这些操作可以所示的顺序或者以不同的顺序执行。此外,操作可依序执行,或者操作中的两者或更多者可同时执行。在220处,方法包括vgw在隧道92上从远程节点80接收加密数据包。数据包可包括对服务130的请求。在222处,vgw对数据包进行解密以恢复未加密的服务请求。在224处,通过使用解密数据包中的报头信息(例如,目的地ip地址),vgw访问其路由表以确定用于服务请求的适当路线。

在226处,vgw通过使用路由表所确定的路线转发服务请求。在228处,目标服务130接收服务请求并且执行服务请求。服务请求可包含由服务使用以执行其操作的参数。如果要将任何数据(例如,响应数据、确认等)提供回到服务请求的源(即,远程节点80),那么此类数据可包括在数据包中并且沿着通过vgw105且在隧道92上到远程节点的总体反向路线路由。vgw可对数据包进行加密,然后传输到远程节点80。

图5示出用于更新用于给定服务的路由数据的方法。这些操作可以所示的顺序或者以不同的顺序执行。此外,操作可依序执行,或者操作中的两者或更多者可同时执行。在250处,方法包括服务向其反射器服务(例如,服务路由反射器服务151)提供更新路由数据。在252处,服务路由反射器服务151可通过向vgw路由反射器服务153提供更新路由数据来作出响应。如上所解释,可使用bgp协议来向vgw路由反射器服务提供更新路由数据,但对api调用的添加、删除等也可用来提供路由数据更新。

在254处,方法包括向已经被配置来访问其路由数据正在被更新的服务的每个vgw提供更新路由数据。vgw路由反射器服务153可记录已经具有用于各个服务的路由数据的每个vgw的标识符,并且因此可向被记录为具有到服务的路线的那些vgw转发更新路由数据。然后,在256处,每个此类vgw可将从vgw路由反射器服务153接收的更新路由数据存储在其路由表125中。在258处,每个vgw还可向其远程节点80通告其更新路由表。通告可根据已知的协议,或者可包括任何合适类型的消息交换。上文描述了通告中所包含的信息类型的实例。

在一些实现方式中,客户可改变他们的vgw105的配置以添加或删除服务。例如,客户可使现有vgw被配置用于如上所解释的一个或多个服务,并且随后期望向可通过vgw访问的那些服务添加附加的服务。可选地,客户可能想要从当前提供此类访问的vgw删除对特定服务的访问。此类改变可由客户在公共网络90上经由客户的计算装置通过vgw预配置服务140发起。在任一种情况下,更新用于客户的vgw的路由表125以反映所述改变。如果客户想要添加对特定服务的访问,那么客户指定要添加的服务,并且vgw预配置服务140向路由交换服务150提交请求,以将用于所指定服务的路由数据添加到客户已选择来访问所述服务的任何vgw。然后,vgw预配置服务140向客户的vgw105提交如上所解释的消息。消息可包括用于所指定服务的路由数据。然后,将路由数据添加到路由表125。

类似地,如果客户想要删除对用于给定vgw的服务的访问,那么客户向vgw预配置服务140提交请求并且标识vgw和要删除的特定服务。vgw预配置服务通过向客户指定的vgw提交消息来响应删除请求。消息包括要删除的路由数据的标识符。然后,vgw从路由表125删除所请求的路由数据。

图6示出根据各种实施方案的适用于实现如本文所述的虚拟机(例如,虚拟机115、165)、服务130、vgw预配置服务140、服务数据库150中的任一者的计算系统500的示意图。系统包括一个或多个计算装置502。计算系统500包括经由网络518通信地耦接在一起的计算装置502和次级存储装置516。计算装置502和相关联的次级存储装置516中的一者或多者可用于提供本文所描述的各种服务的功能。

每个计算装置502包括耦接到存储装置506、网络接口512和i/o装置514的一个或多个处理器504。在一些实施方案中,计算装置502可实现系统100的多于一个部件的功能。在各种实施方案中,计算装置502可以是包括一个处理器504的单处理器系统,或包括若干处理器504(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器504可以是能够执行指令的任何处理器。例如,在各种实施方案中,处理器504可以是实现各种指令集架构(isa)中的任一种的通用或嵌入式微处理器,所述isa诸如x86、powerpc、sparc、或mipsisa或任何其他合适的isa。在多处理器系统中,处理器504中的每一个通常可以但不一定实现相同的isa。类似地,在分布式计算系统(诸如,共同实现提供商网络100的计算系统)中,计算装置502中的每一个可实现相同的isa,或者各个计算节点和/或节点的副本组可实现不同的isa。

存储装置506可包括被配置来存储可由一个或多个处理器504访问的程序指令508和/或数据510的非暂态计算机可读存储装置。存储装置506还可用于存储如上所解释的机器映像。存储装置506可使用任何合适的易失性存储器(例如,随机存取存储器)、非易失性存储器(诸如硬盘驱动器的磁性存储、光学存储、固态存储等)来实现。实现本文所公开的功能的程序指令508和数据510存储在存储装置506内。例如,指令508可包括当由一个或多个处理器504执行时实现各种服务和/或本文所公开的服务提供商的网络的其他部件的指令。

次级存储装置516可包括附加的易失性或非易失性存储装置和用于存储信息(诸如,如本文所描述的程序指令和/或数据)的存储装置,以用于实现本文所描述的服务提供商的网络的各个方面。次级存储装置516可包括可由计算装置502经由网络518访问的各种类型的计算机可读介质。计算机可读介质可包括存储介质或存储器介质,诸如半导体存储装置、磁性或光学介质(例如,磁盘或cd/dvd-rom)、或其他存储技术。存储在次级存储装置516上的程序指令和数据可传输到计算装置502,以由处理器504通过传输介质或信号经由网络518执行,所述网络518可以是有线网络或无线网络或其组合。本文所描述的虚拟机(例如,虚拟机115、165)、服务130、vgw预配置服务140、服务数据库150和其他部件中的每一者可被实现为执行软件以向计算节点提供本文描述的功能的单独计算装置502。在一些实施方案中,可由相同的计算装置实现各种服务中的一些或全部。

网络接口512可被配置来允许数据在计算装置502之间和/或耦接到网络518的其他装置(诸如,其他计算机系统、通信装置、输入/输出装置或外部存储装置)之间交换。网络接口512可支持经由有线或无线数据网络的通信,所述网络诸如任何合适类型的以太网;经由电信/电话网络,诸如模拟语音网络或数字光纤通信网络;经由存储区域网络,诸如光纤通道san,或经由任何其他合适类型的网络和/或协议。

输入/输出装置514可包括一个或多个显示终端、键盘、小键盘、触摸屏、鼠标、扫描装置、语音或光学识别装置,或适合于由一个或多个计算装置502输入或检索数据的任何其他装置。多个输入/输出装置514可存在于计算装置502中或可分布于系统500的各个计算装置502上。在一些实施方案中,类似的输入/输出装置可与计算机装置502分开并且可通过有线或无线连接(诸如,在网络接口512上)来与系统500的一个或多个计算装置502交互。

本公开教导了可根据各条条款理解的各个方面。在条款1中,提供了一种虚拟专用网关(vgw)预配置服务,其包括耦接到处理器的存储器,其中所述存储器包括指令,所述指令在执行时致使所述vgw预配置服务:从客户接收对建立vgw的请求,所述请求指定能够通过所述vgw访问的服务和客户可配置策略,其中所述客户可配置策略将对所述所指定服务的访问限制到经由所述vgw发送到所述所指定服务的请求。响应于所述请求,所述服务可在计算装置上实例化vgw虚拟机,所述vgw虚拟机包括vgw应用,所述vgw应用被配置来在公共网络上建立到远程节点的安全隧道,并且在所述安全隧道上从所述远程节点接收加密流量。所述服务可致使用于所述所指定服务的路由数据提供到所述vgw虚拟机,其中所述vgw应用包括指令,所述指令在执行时致使所述vgw应用在所述安全隧道上通告用于所述所指定服务的所述路由数据。并且,所述服务可向所标识的服务提供所述客户可配置策略以供所述服务遵循。

在条款2中,所述路由数据包括与所述所指定服务相关联的公共因特网协议(ip)地址、和所述客户的vgw的标识符。

在条款3中,所述vgw预配置服务被配置来致使用于所述所指定服务的所述路由数据通过向路由交换服务提交路由请求而提供到所述vgw虚拟机,其中所述路由请求标识所述所指定服务,并且其中所述路由交换服务被配置来向所述客户的vgw提交应用编程接口(api)调用,所述api调用包括所述路由数据。

在条款4中,所述系统响应于给定服务更新用于所述给定服务的路由数据,所述服务更新服务路由反射器服务能够访问的数据库中的路由记录,所述记录对应于所述给定服务;并且,所述服务路由反射器服务向vgw路由反射器服务提交所述更新路由数据;并且所述服务路由反射器服务向包含用于所述给定服务的路由数据的每个vgw提交消息,所述消息包括所述更新路由数据。

在条款5中,所述vgw应用还包括指令,所述指令在执行时致使所述vgw应用:响应于对所述vgw应用在所述安全隧道上从远程节点接收加密数据包,所述加密数据包包含对所述所指定服务的服务请求:对所述加密数据包进行解密以获得所述服务请求;使用所述服务请求的报头中的信息来访问路由表以确定所述服务请求所针对的所述服务的路线;以及跨越所述所确定路线转发所述服务请求到所述请求所针对的所述服务,其中所述服务被配置来执行所述服务请求。

在条款6中,一种系统,包括:虚拟专用网关(vgw)预配置服务,所述虚拟专用网关(vgw)预配置服务包括耦接到处理器的存储器,其中所述存储器包括指令,所述指令在执行时致使所述vgw预配置服务:接收对建立vgw的请求,所述请求指定能够通过所述vgw访问的服务;响应于所述请求,在计算装置上实例化vgw虚拟机;所述vgw虚拟机包括vgw应用,所述vgw应用被配置来在公共网络上建立到远程节点的安全隧道,并且在所述安全隧道上从所述远程节点接收加密流量;以及致使用于所述所指定服务的路由数据提供到所述vgw虚拟机。

在条款7中,用于所述服务的所述路由数据包括所述所指定服务的公共因特网协议(ip)地址,并且其中所述vgw应用被配置来在公共网络上向远程节点通告所述公共ip地址。

在条款8中,用于所述服务的更新公共因特网协议(ip)地址的生成致使:所述服务使用包含所述更新公共ip地址的更新路由数据来更新路由交换服务中的路由条目;所述路由交换服务向所述vgw虚拟机提交用于所述服务的所述更新路由数据;以及所述vgw应用向所述远程节点通告用于所述服务的所述更新路由数据。

在条款9中,所述vgw应用还包括指令,所述指令在执行时,响应于在所述安全隧道上从远程节点接收加密数据包并且所述加密数据包包含对所述所标识服务的服务请求,而致使所述vgw应用:对所述加密数据包进行解密以获得所述服务请求;使用所述服务请求的报头中的信息来访问路由表以确定到所述服务请求所针对的所述服务的路线;以及跨越所述所确定路线转发所述服务请求到所述请求所针对的所述服务。

在条款10中,所述vgw应用被配置来实现用于所述安全隧道的因特网协议安全(ipsec)。

在条款11中,提供了一种路由交换服务,其包含路由表,所述路由表被配置来包括用于多个服务的路由数据,并且其中所述vgw预配置服务被配置来向所述路由交换服务提交对于提供用于所述所指定服务的所述路由数据的请求。

在条款12中,所述请求包括客户可配置策略,所述客户可配置策略被配置来限制对所述所指定服务的访问。

在条款13中,所述所指定服务被配置来接收所述客户可配置策略并且将所述客户可配置策略应用于请求的至少一部分。

在条款14中,所述vgw应用被配置来接收所述客户可配置策略并且确保遵循所述客户可配置策略。

在条款15中,公开了一种方法,其包括:由虚拟专用网关(vgw)对加密数据包进行解密,所述加密数据包包含对在服务提供商网络上实现的服务的请求并且由所述vgw在公共网络上从节点接收;访问所述vgw内的路由表以确定到所述服务提供商网络内的所述服务的路线;由所述vgw通过所述路线转发所述请求到所述服务;由所述vgw接收用于所述服务的更新路由数据,所述更新路由数据包括用于所述服务的更新公共因特网协议(ip)地址;以及由所述vgw通告所述更新公共ip地址。

在条款16中,所述方法还包括:响应于对创建vgw虚拟机的请求而在服务器上预配置所述虚拟机,所述创建请求指定所述服务;响应于对与所述所指定服务相关联的所述路由数据的路由请求,将所述路由数据提供到所述vgw;以及将所述路由数据加载在所述所预配置虚拟机中的路由表中。

在条款17中,所述方法还包括:生成限制对所述服务的访问的客户可配置策略,以及将所述客户可配置策略传输到所述服务以执行策略遵循。

在条款18中,其中接收用于所述服务的所述更新路由数据包括:将所述更新路由数据提供到服务反射器服务;实现边界网关协议(bgp)以将所述更新路由数据从所述服务反射器服务提供到vgw反射器服务;以及将所述更新路由数据从所述vgw反射器服务提供到所述vgw。

在条款19中,所述方法还包括:在通过所述路线转发所述请求之前,用指示所述vgw的标识符标记所述请求。

在条款20中,所述方法还包括:由所述服务执行所述请求,其中执行所述服务包括以下中的至少一者:访问被分配以供提交所述请求的客户专用的存储装置或数据库;以及执行客户供应的代码。

对“基于”的引用应被解释为“至少基于”。例如,如果值或条件的确定是“基于”y的值,那么确定至少基于y的值;确定也可基于其他值。

本领域的技术人员还将了解,在一些实施方案中,本文所公开的功能可以替代方式(诸如,将所述功能划分为更多的软件模块或例程或合并为更少的模块或例程)提供。类似地,在一些实施方案中,所示出的方法可提供比所描述的更多或更少的功能,诸如当其他所示出的方法替代地分别缺少或包括此类功能时,或当所提供的功能的量更改的情况下。此外,虽然各种操作可示出为以特定方式(例如,串行或并行)和/或特定顺序执行,但是本领域技术人员将了解,在其他实施方案中,所述操作可以其他顺序和其他方式执行。如图中所描绘和本文所描述的各种方法表示方法的说明性实施方案。在各种实施方案中,所述方法可在软件、硬件或其组合中实现。类似地,在各种实施方案中,可改变任何方法的顺序,并且可添加各种要素、对其进行重新排序、组合、省略、修改等。

以上论述仅意图说明本公开的原理和各种实施方案。一旦完全理解了上述公开内容,许多变化和修改对于本领域技术人员来说将变得显而易见。意图将以下权利要求解释为涵盖全部此类变化和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1