提供到可配置专用计算机网络的访问的制作方法

文档序号:7814329阅读:235来源:国知局
提供到可配置专用计算机网络的访问的制作方法
【专利摘要】描述了为用户提供到计算机网络的访问的技术,以便于使用户能够与远程可配置网络服务交互以创建和配置由该可配置网络服务为该用户的使用所提供的计算机网络。可将该可配置网络服务提供的计算机网络配置成仅由创建他们的用户可访问的专用计算机网络,该可配置网络服务的客户端可创建和配置该计算机网络的每一个作为该客户端的现有计算机网络的延伸,如该客户端的现有专用计算机网络的专用计算机网络延伸。如果这样,使用一个或多个VPN连接或其他专用访问机制可使能被提供的在现有计算机网络和新计算机网络延伸之间的安全专门访问。
【专利说明】提供到可配置专用计算机网络的访问
[0001]本申请是2011年6月9日提交的、申请号为200980149403.X、发明名称为“提供到可配置专用计算机网络的访问”的专利申请的分案申请。

【背景技术】
[0002]许多公司和其他组织操作互连了很多计算系统的计算机网络以支持他们的操作,例如使用了机房共置(如,作为局域络的一部分)或改为位于多个不同的地理位置(如,通过一个或多个专用或公用的中间网络连接)的计算机系统。例如,容置了明显多的互连计算机系统的数据中心已经普遍,例如通过并代表了单个组织来操作的专用数据中心,和通过作为企业的实体来操作以为顾客提供计算资源的公用数据中心。一些公用数据中心的操作者提供了网络访问,功率和由各个顾客所拥有硬件的安全安装功能,当其他公用数据中心的操作者提供了“完全服务”功能,其同样包括为他们的顾客可使用而制作的硬件资源。但是,随着常用的数据中心的尺寸和范围已经增长,该物理计算资源的提供,支配和管理已经变得递增地复杂。
[0003]标准硬件虚拟化技术的出现已经提供了一些关于管理具有不同需求的多个顾客所使用的计算资源的优点,允许多个顾客被验证并安全地共享多个计算资源。例如,虚拟化技术,如由VMWare,XEN或用户模式的Linux所提供的,可允许在多个用户之间共享单个物理计算机器,通过为每一个用户提供由该单个物理计算机器作为主机的一个或多个虚拟机,每一个这样的虚拟机是用作不同的逻辑计算系统的软件模拟器,该系统为用户提供了他们是给定的硬件计算资源的单一操作者和管理者的假象,在同样提供了该多个虚拟机中间的应用程序隔离和安全性时。进一步地,一些虚拟化技术能够提供分布在一个或多个物理资源上的虚拟资源,如具有分布在多个不同物理计算系统上的多个虚拟处理器的单个虚拟机。

【专利附图】

【附图说明】
[0004]图1A和IB是描述了涉及创建并配置专用计算机网络的远程客户端的交互的示例性实施方案的网络图。
[0005]图2是描述了用于提供计算机网络给客户端的互连计算系统的示例性实施方案的网络图。
[0006]图3是描述了适合执行为远程客户端的使用而提供了计算机网络的系统的实施方案的示例性计算系统的方框图。
[0007]图4A和4B示出了可配置网络服务管理程序的示例性实施方案的流程图。
[0008]图5示出了节点通信管理程序的示例性实施方案的流程图。
[0009]图6示出了外部通信管理程序的示例性实施方案的流程图。
[0010]图7示出了远程资源服务访问程序的示例性实施方案的流程图。
[0011]图8示出了 VPN创建实现程序的示例性实施方案的流程图。
[0012]发明详述
[0013]为用户提供到计算机网络的访问而进行技术描述,如在远程用户可获得的可配置网络服务的控制下。在至少一些实施方案中,远程用户可在公用网络上与可配置网络服务进行交互以为该用户的使用而创建并配置计算机网络,该被配置的计算机网络由该可配置网络服务提供并包括多个该可配置网络服务所保留的或不然所控制下的计算节点。在配置这样的计算机网络后,该用户可以使用由该可配置网络服务提供给该用户的计算机网络交互于一个或多个远程位置,如执行在该提供的计算机网络的计算节点上的程序。该可配置网络服务可能在至少一些实施方案中是基于收费的服务,使得该可配置网络服务的用户成为付费给该可配置网路服务以获得由该可配置网络服务提供的功能中至少一些的顾客。另夕卜,在至少一些实施方案中,上述技术中的一些或全部由可配置网络服务管理模块的实施方案来自动实施,可选地与其他通信管理模块一起,如下进行更具体的描述。
[0014]在至少一些实施方案中,由该可配置网络服务所提供的计算机网络中至少一些是专用计算机网络,其仅仅可被该可配置网络服务的用户来访问,并为该用户创建并配置了该提供的计算机网络(或通过其他方式为其明确地配置访问)。例如,该可配置网络服务可为作为该可配置网络服务的客户端的用户提供了为该客户端提供的计算机网络的安全专用访问,如通过使能VPN(虚拟专用网络)连接或其他在一个或多个该客户端的远程计算系统和该提供的计算机网络之间的安全连接,或可以使用其他安全和/或认证技术来使得该客户端与该提供的计算机网络以专用和安全方式进行远程地交互。另外,在至少一些实施方案中,该可配置网络服务所提供的该计算机网络的至少一些,每一个由客户端创建并配置,成为该客户端的现有计算机网络的延伸,如对于该客户端的现有远程专用计算机网络的专用计算机网络延伸(如,企业实体的客户端的远程企业网络)。在这样的实施方案中,正被提供的在该现有计算机网络和新的计算机网络延伸之间的安全专用访问可使用一个或多个VPN连接或其他专用连接来可类似地进行使能。下面包括了与为由该可配置网络服务的实施方案所提供的计算机网络建立客户端的访问相关的附加细节。
[0015]该可配置网络服务的客户端可以在各个实施方案中的各种方式来创建并配置由该可配置网络服务所提供的计算机网络。在至少一些实施方案中,该可配置网络服务提供了一个或多个API( “应用程序接口 ”),该API使得客户端的计算系统与该可配置网络可编程地交互以执行由该可配置网络服务所提供的计算机网络的创建,配置,和启动使用中的一些或全部行为,当在至少一些实施方案中成为该可配置网络服务的客户端的用户可以与该可配置网络服务进行相互地交互以实施上述行为的一些或全部时(如,通过该可配置网络服务提供的GUI,或图形用户界面,或其他控制台),无论是作为通过使用上述API实施上述行为的替代或附加。在一些实施方案中,用户可获得的GUI可以基于下面的用户可替换的API,而在其他实施方案中,可以其他方式实施GUI。另外,在客户端的计算装置和该可配置网络服务之间的交互可至少部分地基于在该客户端计算装置和该可配置网络服务之间发送的电子信息(如,电子邮件信息),如依照该可配置网络服务的基于信息的API。
[0016]例如,在至少一些实施方案中,客户端可与该可配置网络服务的实施方案进行交互以指定将提供给该客户端的计算机网络的配置信息,该配置信息可选地包括多种类型的信息,如下列非排他性列表中的一个或多个:将被分配给该提供的计算机网络的多个计算节点的多个指定网络地址;该提供的计算机网络的指定网络拓扑信息;和该提供的计算机网络的指定网络访问限制。该多个指定网络地址可包括,例如,一个或多个网络地址范围,和如果正被提供的该计算机网络是客户端的远程专用计算机网络的延伸,可对应于该远程专用计算机网络所使用的虚拟和/或专用网络地址的子集。该指定网络拓扑信息可指示,例如该提供计算机网络的计算节点的子集,其将被一起分组或不然将共享相同的互相通信的特性,如通过将一个或多个网络装置指定为该提供的计算机网络的一部分(如,路由器,断路器,等),上述管理或不然与具有特定指定网络地址的计算节点相关,或不然通过指示该提供的计算机网络的子集或该提供的计算机网络的计算节点的其他分组。该指定网络访问限制信息可指示,例如,对于该提供的计算机网络的计算节点的一个或多个中的每一个,那些其他计算节点可能与该计算节点互相通信和/或允许到和/或来自该计算节点的通信的类型,包括是否允许该提供的计算机网络的计算节点与该提供的计算机网络之外的任意计算节点进行通信(或在该提供的计算机网络是现有其他计算机网络的延伸的情况中,是否允许该提供的计算机网络的计算节点与上述其所属的其他计算机网络之外的任意计算节点进行通信)。下面包括了与创建并配置由该可配置网络服务的实施方案所提供的计算机网络相关的附加细节。
[0017]另外,在至少一些实施方案中,该可配置网络服务用来为客户端提供计算机网络的该计算节点可具有多种形式,如物理计算系统和/或虚拟机,该虚拟机每一个以一个或多个物理计算系统为主机。例如,在一些实施方案中,该可配置网络服务可包括许多由该可配置网络服务提供的可用于提供给客户端的计算机网络中的计算节点,如在一个或多个地理位置中的一个或多个数据中心内。另外,在至少一些实施方案中,通过一个或多个中间物理网络将由该可配置网络服务提供的该计算节点的一些或全部进行互连,提供给客户端的该计算机网络可以是虚拟的(或“逻辑上的”)通过将该中间物理网络用作基板网络而贴在该中间物理网络之上的网络。进一步地,在至少一些实施方案中,代表多个顾客或该程序执行服务的其他用户执行多个程序的程序执行服务(或“PES”)可使用该计算节点中的至少一些。下面包括了与计算节点和以下计算机网络相关的附加细节,以及与将虚拟网络提供给客户端和提供程序执行服务的示例性实施方案相关的附加细节被包括于2006年3月31日提交的名为“管理在计算节点之间的通信”的第11/394,595号美国申请(代理人卷号120137.524),2006年3月31日提交的名为“通过多个计算机系统管理程序的执行”的第11/395,463号美国申请(代理人卷号120137.525),2007年3月27日提交的名为“配置在计算节点之间的互相通信”的第11/692,038号美国申请(代理人卷号120137.554),2008年3月31日提交的名为“配置在计算节点之间的通信”的第12/060,074号美国申请(代理人卷号120137.576),和2007年6月18日提交的名为“提供到远程服务的增强访问”的第11/764,739号美国申请(代理人卷号120137.555),其中的每一个通过引用并入本文中。
[0018]在一些实施方案中,客户端可进一步地配置由该可配置网络服务提供的计算机网络以提供到一个或多个远离该提供的计算机网络的其他网络可访问服务的访问,如在该互联网或其他公用网络上,或不然在该提供的计算机网络之外和不属于该提供的计算机网络一部分的那些网络上可访问的其他远程网络可访问服务。至少一些这样的远程服务在一些实施方案中可被附属于该可配置网络服务(如,由该可配置网络服务的操作者或附属实体来提供;由该可配置网络服务的另一个客户端来提供,如通过由该可配置网络服务提供给上述其他客户端的计算机网络,等),以及这少一些这样的远程服务在一些实施方案中可被替代地独立于该可配置网络服务。这样的其他远程服务在各个实施方案中可具有各种形式,包括提供到一个或多个类型的计算相关资源的网络访问(如,提供访问已存储数据资源的存储服务,提供访问信息队列资源或其他已存储信息资源的消息服务,提供访问已存储数据库资源的数据库服务,提供访问程序执行资源的程序执行服务,等)用于远程计算系统的使用,或不然其提供到信息或功能或其他使用资源的访问(如,提供股票报价信息资源或搜速查询结果资源的服务;提供相片共享功能资源或社交能力资源的服务;等)。在一些情况中,该可配置网络服务的实施方案可提供在数据中心或其他地理位置处的多个计算节点,以及可以使用这些计算节点的子集以提供给不同的客户端以不同的计算机网络(如,每一个提供的计算机网络是共享相同基板网络的不同虚拟网络)-在这样地情况中,一个客户端可以为该客户端配置该提供的计算机网络以提供到一个或多个网络可访问远程服务的访问,该服务由使用在该地理位置处该提供的计算机网络的其他服务的其他客户端来提供,如没有一个客户端意识到在同一地理位置处的其他计算节点实际上提供了这些远程资源。
[0019]在至少一些实施方案中,客户端可为该客户端配置提供的计算机网络以包括访问特定资源服务的机制,能够配置该访问机制以为该提供的计算机网络提供各个功能。作为一个特殊的实施例,在一些实施方案中,具有多个相关虚拟网络地址的提供的虚拟计算机网络可以分配这些虚拟网络地址的一个(或多个)以展示特定的远程资源服务,使得计算节点或该提供的计算机网络的其他参与者可以与该提供的计算机网络之外的远程资源服务进行通信,通过对于该提供的计算机网络为本地的代表性分配网络地址。以这种方式,即使提供的计算机网络被配置有网络访问限制以阻止该提供的计算机网络对外的通信(如,阻止将通过该互联网或一个或多个其他公用网络的通信),可配置该提供的计算机网络以允许与特定外部远程资源服务通过这样的成为该提供的计算机网络一部分的访问机制来进行通信。
[0020]进一步地,可在至少一些实施方案中使用各种技术来为从提供的计算机网络到远程资源服务通过该提供的计算机网络的已配置访问机制进行的这样的通信提供增强的安全机制。例如,在至少一些实施方案中,特定远程资源服务可以具有公开可访问的接口,用户通过该互联网或其他公用网络(如,通过一个或多个公用网络地址和相关域名)可访问该接口,但是同样可实施从该基板网络处直接可访问的接口,其被该可配置网络服务用来与计算节点互连,例如如果该特定远程资源服务被与该可配置网络服务相同的操作者提供或不然附属与该可配置网络服务。如果在特定远程资源服务的基板网络上实施这样的直接访问接口,该可配置网络服务的一个或多个提供的计算机网络每一个可具有该远程资源服务的已配置访问机制,其将所需的该远程资源服务的通信引导到在该基板网络上实施的上述接口,而不是引导到该远程资源服务的远程公开可访问接口。相应地上述远程资源服务可选择地,在至少一些这样的实施方案和情况中,对于以该可配置网络服务本地的方式的至少一些客户端请求提供该远程资源服务的功能的一些或全部(如,如果使用该可配置网络服务的一个或多个计算节点来实施上述本地功能),而在其他实施方案和情况中,该远程资源业务可为管理通信的至少一些这样的客户端请求提供功能的一些或全部,该通信在该可配置网络服务的基板网络之间,以安全方式在该远程资源服务的远程位置的一个或多个公用网络之上。可替代地,在至少一些实施方案中,该可配置网络服务可为至少一些远程资源服务实施附加行为以提供在一个或多个公用网络上以类似方式从该可配置网络服务到该远程资源服务的远程位置的安全通信,如通过以对于该远程资源服务可访问的方式加密该通信和/或通过将该通信认证为来自可信源。下面包括了与访问来自提供的计算机网络的远程资源相关的附加细节。
[0021]进一步地,在至少一些这样的实施例中,可配置客户端的提供的计算机网络以接收指向由网络可访问远程资源服务所提供的计算相关资源的特定子集的访问,如与上述客户端相应的子集。作为一实施例,远程资源服务可使用不同的命名空间,该命名空间将远程资源服务提供的资源划分为具有不同访问权限并被分别引用的不同组,使得在不同命名空间内的不同资源可具有同一本地名称或其他标识,但基于上述命名空间被分别引用,以及使用对应于特定客户端的特定命名空间。如果这样,客户端的提供的计算机网络可包括访问特定远程资源服务的一个或多个机制,其每一个被配置以自动地对应于该远程资源服务的特定命名空间,使得该提供的计算机网络的计算节点可使用已配置的访问机制来获取到该客户端的该特定相应命名空间内的资源的访问。进一步地,在至少一些实施方案中,该提供的计算机网络的计算节点可能不知道已配置机制相应的命名空间,使得计算节点可发送请求或其他信息给该远程资源服务以指示关注资源的名称或其他标识在该命名空间的上下文内,而不是在该命名空间的实际指示中。如果这样,该已配置访问机制可自动地修改或转化该信息使得该指示的名称或其他标识与对应于该已配置访问机制的命名空间关联,发送该信息的该计算节点清楚该可选的修改或转化。
[0022]可以多种方式配置该提供计算机网络和展示远程资源服务的该访问机制。例如,在一些情况中,客户端可指定在该远程资源服务内该客户端的现有命名空间,如该客户端先前在其中已存入或不然已使用特定资源的命名空间。可替代地,在其他实施方案中,该可配置网络服务可为从该提供的计算机网络处访问到的新资源来自动地启动该远程资源服务内新命名空间的使用,如通过与该远程资源服务的交互来创建该新命名空间。可在不同时间实施这样的与该远程资源服务的交互,如当创建该客户端和配置该提供的计算机网络时,或作为替代的更晚时间(如,当在该提供计算机网络上的计算节点第一次试图通过已配置访问机制来访问该远程资源服务时)。进一步地,在至少一些实施方案和情况中,该可配置网络服务可生成与该提供计算机网络相关的唯一标识并使用该标识以引用该新命名空间,而在其他实施方案中,该远程资源服务可提供这样的标识或被创建的新命名空间的其他指示。不论何种情况,该客户端和该提供的计算机网络的计算节点会可选地不知道该新的自动启动的命名空间和/或该可配置网络服务所使用以引用该新命名空间的唯一标识。可替代地,在一些实施方案中,该客户端可以指定将被该可配置网络服务所使用的标识,其将与由该可配置网络服务提供给该客户端的计算机网络相关,无论该客户端是否知道该可配置网络服务将使用该标识以引用新命名空间或可替换的其他方式。进一步地,在至少一些实施方案中,该与提供给客户端的计算机网络相关的标识可以是与该客户端相关的标识,例如如果该客户端具有单个提供的计算机网络,而在其他实施方案中该提供的计算机网络标识不同于任意指定客户端的标识。下面包括了与使用命名空间关联的附加细节。
[0023]另外,在至少一些这样的实施方案中,客户端的提供的计算机网络所使用以从特定远程资源服务处访问资源的该访问机制可被配置以帮助该远程资源服务认证或生效从该提供的计算机网络处所接收的通信,例如,使特定位置发出的通信生效(如,甚至为了阻止相同客户端从另一位置处访问特定资源)。例如,至少一些远程资源服务可能允许或需要由该远程资源服务提供的资源,其每一个具有一个或多个相关访问控制指示符(如,名称或其他文本标识,数字标识,标记或其他访问键,证书,等),使得可由外部请求方访问这样的资源,仅在如果该请求方支持所有这些相关指示符时。对于这样的远程资源服务,该客户端的提供的计算机网络的计算节点所使用的访问控制指示符中的一个可以是与该客户端对应的标识,如具有该远程资源服务的客户端的顾客标识。如果仅仅该客户端的单个顾客标识与资源相关,则该客户端可能能够通过支持该同一单个顾客标识来访问来自该客户端的其他远程计算系统的资源。这样的资源,例如,可以响应于来自该客户端的请求或不然由该客户端访问并与该客户端相关(如,临时的)。
[0024]但是,在至少一些实施方案中,客户端的提供的计算机网络用来访问来自特定远程资源服务的资源的已配置访问机制可被配置以修改正被发送给该多个远程资源服务的通信来包括一个或多个其他附加访问控制指示符。这样的其他附加访问控制指示符可包括,例如,对应于由该可配置网络服务自动生成的提供的计算机网络的标识,以及在至少一些实施方案中,该客户端和/或该提供的计算机网络的计算节点可能知道被使用的该特定附加访问控制指示符,或甚至知道任意这样的附加访问控制指示符的存在和使用。如果该客户端不了解该一个或多个附加访问控制指示符,则该客户端可能未访问这些资源除了通过该已配置访问机制从该提供的计算机网络处访问,因此该客户端将不会用别的方式支持与在访问该资源的请求中的这样资源相关的所有指示符。因此,如上所述,远程资源服务可使用这样的附加访问控制指示符作为该资源或访问资源的请求位置的指示符,使得来自其他位置的请求无法提供到该资源的访问。可替代地,可为来自其他位置的请求提供到这样资源的不同访问,例如配置资源以允许对该资源的写或其他修改访问,仅仅如果支持该资源的所有访问控制指示符时,但是在其他环境下以允许对该资源的读或其他访问,例如如果支持该指定客户端的标识时通过来自另一个位置的客户端,通过不具有支持任意该访问控制指示符的任何人,等。另外,这样的附加访问控制指示符可具有多种形式,例如自动产生的随机字母数字指示符,与提供计算机网络相关的实际地理位置的指示,等。
[0025]在类似于该命名空间的使用的方式中,可以各种方式来实施配置该提供的计算机网络的访问机制以使用一个或多个这样的附加访问控制指示符。例如,在一些实施方案中,客户端可指定一个或多个将与提供的计算机网络相关的附加指示符以通过已配置的到远程资源服务的访问机制进行使用。可替代地,在其他实施方案中,该可配置的网络服务可以自动地启动一个或多个新附加指示符的使用,用于到提供的计算机网络的远程资源服务的已配置访问机制(如,通过生成并使用与该提供的计算机网络相关的唯一标识),使得通过该已配置访问机制从该远程资源服务处访问到的新资源仅仅对于该提供的计算机网络是可访问的。另外,如下进行更具体地讨论,该可配置网络服务的一些实施方案可使用各种模块以管理在提供的计算机网络的计算节点之间的通信,例如以实现在基板网络上的通信的传送,以及如果这样,可配置一个或多个这样的模块来实施特定访问机制,通过自动修改通信以包括命名空间标识和/或访问控制指示符和/或通过在一个或多个公用网络上将通信推进(可选地在修改后)到特定远程资源服务处。下面包括了与实施访问机制相关的附加细节,该机制包括帮助远程资源服务将来自提供的计算机网络处的指定位置通信生效。
[0026]在至少一些实施方案中,该可配置网络服务进一步包括API,该API使得客户端与该可配置网络服务进行可编程地交互以使得该可配置网络服务来采取行为,该行为实施了通过该可配置网络服务建立该客户端到提供给他们的计算机网络的远程访问。这样的远程访问建立API可在各个实施方案中实施各种行为,以及在至少一些实施方案中,通过该可配置网络服务帮助客户端建立从该客户端的远程位置到正提供给该客户端的计算机网络的VPN连接。如上所述,在一些情况中,客户端可能具有在该可配置网络服务之外的远程专用计算机网络,由该可配置网络服务建立和提供的计算机网络可以是该远程专用网络的延伸或不然连接到该远程专用网络。在其他情况中,客户端可使用一个或多个其他远程计算系统以与该可配置计算机服务所提供计算机网络进行访问和交互。不论何种情况,该客户端可以在至少一些实施方案中使用到由该可配置网络服务所提供计算机网络的VPN连接或其他来自该远程专用网络或其他远程计算系统的其他安全连接。在这样的实施方案中,由该可配置网络服务提供的该远程访问建立API,当由该可配置网络服务的客户端可编程地调用时,可使得该可配置网络服务启动到一个或多个适合网络组件的客户端的供应以允许该远程专用网络或该客户端的其他远程计算系统来建立到由该可配置网络服务所提供的计算机网络的VPN连接或其他安全连接。这样的网络组件可包括,例如,一个或多个硬件装置(如,路由器或其他网络装置),软件组件,和/或配置信息的分组。
[0027]例如,在一些实施方案中,通过客户端对该远程访问建立API的调用使得该可配置网络服务与商人交互以购买或不然获取合适的路由器装置或其他被交付给该客户端远程位置的硬件网络装置,并适当地使得该获取的网络装置的已配置软件或其他配置信息将被交付给该客户端,使得在使用该软件或基于该配置信息配置该装置和该装置连接到该客户端的一个或多个远程计算系统时,该装置将通过该可配置网络服务启动提供给该客户端的与该计算机网络的连接。以这种方式,在该客户端接收到该网络装置,软件和/或配置信息后,该客户端,例如,可将该接收到的网络装置附于该远程专用网络或其他远程计算系统上,并使用该软件和/或配置信息以配置该接收到的网络装置。该已配置网络装置随后可自动地连接为该客户端所提供的计算机网络并建立该VPN连接以使能该客户端到该提供的计算机网络的专用安全访问。在其他情况中,该已配置的网络装置可以首先自动连接该可配置网络服务的已配置计算系统以获取指定给为该客户端所提供的计算机网络的附加配置信息,随后自动地连续建立到该提供的计算机网络的VPN连接。
[0028]在这样的实施方案中,用来将该网络装置提供给客户端的商人可具有各种形式,如由操作该可配置的网络服务的相同操作者所操作的在线销售商或其他零售商,或不然附属于该可配置网络服务的商人,或可替换地不附属于该可配置网络服务的第三方商人。在各个实施方案中可以不同方式类似地选择该将使用的硬件装置,包括基于由该可配置网络服务所提供计算机网络和/或由该客户端所使用中的该远程计算系统的兼容性,如该客户端可自动地检测和/或指定的一样。进一步地,在一些实施方案中,从该客户端可选之处可获得多个替代方式,如当开始调用该远程访问建立API时该客户端可指定的一样,或响应于来自该可配置网络服务的较晚查询(如,从该客户端可选之处指定该多个替代方式的查询)。在其他实施方按中,可使用单个类型的网络装置或其他硬件装置。另外,从各个源处可提供给该客户端该已配置软件和/或其他配置信息(如,通过提供该网络装置的相同商人,直接通过该可配置网络服务,或通过其他实体),并可以各种方式提供(如,电子地将该软件和/或配置信息传送给该客户端;通过将该软件和/或配置信息存储在物理装置可读介质上,如DVD或USB存储键,和物理上地将该介质交付给该客户端;通过在该网络装置上存储该软件和/或配置信息,在将他们交付给该客户端之前,如用来预先配置该装置一样;等)。另外,在一些实施方按中,提供给该客户端的已配置软件可能足够用于建立该VPN连接,如当使用了在该远程位置处该客户端已经具有的一个或多个计算系统或其他硬件装置时一样。
[0029]进一步地,从零售商或其他第三方实体为客户端进行的硬件装置的获取可在各个实施方案中以各种方式实施,如购买该装置或可替换地以另一方式获取他(如,获取他用来租赁,出租,临时估价,等),以及在一些实施方案中可包括提供报酬给该零售商并随后分别从该客户端处获取报酬的该可配置网络服务(如,来自该客户端的报酬超过,少于或相同于给该零售商的报酬),或该客户端将报酬直接提供给该零售商的可替换方式(如,通过提供该零售商以该客户端的报酬信息的该可配置网络服务,通过提供该零售商以用于和该客户端接触或不然交互以获取该报酬信息的信息的该可配置网络服务,通过该零售商使用先前从该客户端获取的信息以获取该报酬的方式,等)。另外,当在一些实施方案中时,为客户端从零售商处的硬件装置的启动的获取使得该来自该零售商处的该硬件装置直接交付给该客户端的远程位置,在其他实施方案中,该可配置网络服务可以其他方式实施该获取,如开始提取该硬件装置并随后将其交付给该客户端(如,在使用合适软件和/或配置信息对该硬件装置进行配置后,或可替换地通过将该硬件装置以其被接收到时的相同形式转发给该客户端)。下面描述了在各个实施方案中与通过该可配置网络服务实现客户端的该远程访问建立API的编程调用的相关行为的附加细节。
[0030]为了用于说明,下面描述了一些实施方案,其中实施了指定类型的计算节点,网络,通信,和配置操作。为了说明目的提供了这些实施例并为了简洁起见对其进行了简化,以及可在种类繁多的其他情况中使用该发明的技术,下面对其中的一些进行了描述。例如,在一些实施方案中,客户端创建并为访问配置的该计算机网络是对这些客户端的现有专用计算机网络的专用计算机网络延伸,而在其他实施方案中,该被创建和配置的计算机网络可以使独立的计算机网络,其不是其他计算机网络的延伸和/或可能是公用计算机网络,被代表以创建和配置他们的该客户端无法专门地访问该公用计算机网络。另外,在一些实施方案中,由该可配置网络服务提供的该计算机网络使用了由该可配置网络服务提供和控制的计算节点,而在其他实施方案中,用来提供计算机网络的这样的计算节点的至少一些可被其他控制或维护(如,通过第三方,通过该客户端,等),但是使得被该可配置网络服务所使用成为可能。
[0031]图1A是描述了使得远程客户端创建并配置该客户端所用的计算机网络的可配置网络服务的示例性实施方案的网络图。在本实施例中被创建和配置的该计算机网络是对客户端现有专用计算机网络的专用网络延伸,可配置网络服务105在一个或多个公用网络100上(如,在该互联网上)提供了这样的功能给客户端(未示出)。因此,该远程客户端可使用该可配置网络服务(“CNS”)105以动态修改他们的专用计算机网络的大小和/或性能,如在该公用网络100上通过使用云计算技术一样。
[0032]特别是,在图1A的实施例中,多个客户端(未示出)在公用网络100上与管理模块110交互以创建和配置远程现有的客户端专用网络130的各个专用计算机网络延伸120,将该计算机网络延伸120的至少一些配置以使能在该公用网络100上来自一个或多个相应客户端专用网络130处的安全专用访问(如,通过在10a和10b互连上建立的VPN连接)。在这个示例性实施方案中,该管理模块110有助于为该远程客户端提供该CNS 105的功能,如与该CNS 105的各个其他模块(未示出)和各个由该CNS 105所使用以提供该专用计算机网络延伸120的计算节点和网络装置(未示出)一起。在至少一些实施方案中,该CNS管理模块110可在该CNS 105的一个或多个计算系统(未示出)上执行,以及可提供一个或多个API,该API使得远程计算系统与该模块110可编程地交互以访问代表客户端的该CNS105的一些或所有功能(如,创建,配置,和/或启动专用网络延伸120的使用)。另外,在至少一些实施方案中,可替换地,客户端可手动地与该模块110交互(如,通过由该模块110提供的用户界面)以实施一些或所有这样的行为。
[0033]该公用网络100可以是,例如,链接网络的公用可访问网络,可能由不同方操作,例如该互联网。该远程客户端专用网络130每一个可包括一个或多个现有专用网络,如公司或其他专用网络(如,家庭,大学,等),其部分地或整个地对于非特权用户是无法访问的,以及其包括客户端的计算系统和/或其他网络装置。在所述实施例中,该提供的网络延伸120每一个包括多个计算节点(未示出),其中的至少一些由该CNS 105所提供或不然在该CNS 105的控制下,以及该提供的网络延伸120每一个可由将他们提供给的客户端以各种方式配置。在该所述实施方案中的该网络延伸120每一个可以是仅由创建他的客户端可访问的专用计算机网络,尽管在其他实施方案中,该CNS 105为客户端所提供的至少一些计算机网络可以是公用可访问的和/或可以是非其他现有计算机网络的延伸的独立计算机网络。类似地,当在本实施例中的该提供的计算机网络120是专用网络的远程客户端计算机网络130的延伸时,在其他实施方案中,该提供的计算机网络120可以是非专用网络的客户端计算机网络130的延伸。
[0034]可以各种方式使能在远程客户端专用计算机网络130和为客户端所提供的相应专用计算机网络延伸120之间的专用访问,如通过在他们之间建立VPN连接或其他安全连接,允许以安全专用方式在该公用网络100上进行互相通信。例如,该CNS 105可自动地在其计算节点和其他计算系统上实施合适的配置以使得VPN访问客户端的特定专用网络延伸120,如通过自动地配置以该CNS 105为主机的一个或多个VPN机制(如,软件和/或硬件VPN机制),和/或可自动地提供给该客户端以合适的配置信息(如,证书,接入点,和/或其他参数)以允许以该远程客户端专用网络130为主机的VPN机制来建立该VPN访问。在VPN访问已被合适地使能和/或配置时,在该远程客户端专用网络和该专用网络延伸之间可建立VPN连接,如由使用IPsec (“因特网协议安全”)或其他合适通信技术的客户端所启动。例如,在一些实施方案中,VPN连接或其他安全连接可被建立给或在使用MPLS( “多协议标签交换”)以数据传送的网络之间,如代替基于IPsec的VPN连接。在其他地方更具体地讨论与使能和建立安全连接相关的附加细节,如响应于该CNS 105所提供的相应远程访问建立API的客户端调用。
[0035]另外,在所述实施方案中,对于在该公用网络100上的远程计算系统可访问各种网络可访问远程资源服务140,包括对于该远程客户端专用网络130上的计算系统。该资源服务140可提供各种功能给该远程计算系统,如对于至少一些该资源服务140为远程计算系统提供到各种类型计算相关资源的访问。进一步地,由该CNS 105所提供的该专用网络延伸120的至少一些可被配置以提供专用或其他特定访问给至少一些该远程资源服务140,该提供的访问可选地出现给该专用网络延伸120的计算节点成为正由虚拟连接115本地所提供,该虚拟连接115是该专用网络延伸120的一部分,尽管与该远程资源服务140的实际通信可出现在该公用网络100上(如,通过互连10b和100c)。在其他地方更具体地讨论与建立和使用到远程资源服务的这样的专用或其他特定访问相关的附加细节。
[0036]如上所述,该提供的网络延伸120每一个可由客户端以各种方式配置。例如,在至少一些实施方案中,该CNS 105提供了为被提供给客户端的网络延伸可使用的多个计算节点,使得每一个提供的网络延伸120可包括被配置客户端数量的多个专门用作该提供网络延伸的一部分的这样的计算节点。特别是,客户端可与该模块110交互以配置一些计算节点来最初被包括在提供给该客户端的计算机网络中(如,通过使用由该CNS 105所提供API的一个或多个可编程交互)。另外,在至少一些这样的实施方案中,随后计算节点可被动态地增加给或被移除于客户端的提供的计算机网络(如,通过使用由该CNS 105所提供API的一个或多个可编程交互),如在该提供的计算机网络已经由该客户端所使用后(如,通过指示启动或终止在特定计算节点上的特定程序的执行)。进一步地,该CNS 105可在至少一些实施方案中提供多个不同类型的计算节点,如,举例,具有不同性能特性(如,处理器速度,可获得的存储器,可获得的存储,等)和/或其他能力的计算节点。如果这样,在至少一些这样的实施方案中,客户端可指定将被包括在为该客户端所提供的计算机网络中的计算节点的类型。
[0037]另外,在至少一些实施方案中,客户端可与该模块110交互以配置为该客户端所提供的计算机网络的网络地址(如,通过使用由该CNS 105所提供API的一个或多个可编程交互),在至少一些这样的实施方案中随后可动态地为客户端所提供的计算机网络增加,移除或修改网络地址,如在该提供的计算机网络已经被该客户端所用后。例如,如果正在被配置的特定提供的计算机网络是现有远程客户端计算机网络的延伸,该客户端可指定一个或多个地址范围(如,无类域内路由选择(“CIDR”)地址码组)或网络地址的其它分组,其为该现有远程客户端计算机网络所使用网络地址的子集,使得该指定的网络地址被用于该提供的计算机网络的计算节点。在一些情况中的这样的已配置网络地址可以是虚拟或专用网络地址,其在该公用网络100上的计算系统处无法直接寻址(如,如果该现有远程客户端计算机网络和该相应的提供的网络延伸为该客户端计算机网络和其被提供的计算机延伸使用网络地址转换技术和/或虚拟网络技术),而在其他情况中,至少一些该已配置网络地址可以是公用网络地址,其在该公用网络100上的计算系统处直接寻址(如,为静态互联网可路由IP地址或其他非变化网络地址的公用网络地址)。在其他实施方案中,该CNS105可自动地选择将为至少一些提供的计算机网络延伸的至少一些计算节点所使用的网络地址,如基于由该CNS 105可使用的网络地址,基于网络地址选择,该网络地址是对应于该提供的计算机网络的远程现有计算机网络所使用的相关网络地址,等。另外,在至少一些实施方案中,其中该CNS 105提供给客户度虚拟网络,如通过使用在基板网络上的覆盖网络,可允许每一个客户端为他们提供的计算机网络指定任意将使用的网络地址,即使多个客户端为他们各自的提供的计算机网络指定相同或覆盖网络地址在这样的实施方案中,该CNS105为每一个客户端不同地管理该网络地址,使得第一客户端可具有与该第一客户端的提供的计算机网络的特定指定网络地址相关的第一计算节点,而不同的第二客户端可具有与该第二客户端的提供的计算机网络的相同特定指定网络地址相关的不同的第二计算节点。一旦为提供的计算机网络配置或不然确定了网络地址,该CNS 105可将该网络地址分配给为该提供的计算机网络所选择的各个计算节点,如以随机方式,通过使用DHCP( “动态主机配置协议”)或用于网络地址动态分配的其他技术,等。另外,即使为特定计算机网络使用了公用网络地址,该CNS 105可映射这些公用网络地址的一个或多个以用于其他方式,如使用特定公用网络地址用作与其他地方更具体讨论一样的特定远程资源服务的访问机制,使得发送给由该特定计算机网络的计算节点的该特定公用网络地址的该通信被推进到该相应远程资源服务而不是到在该互联网或该特定公用网络地址被分配的其他网络上的另一个计算系统。图1B提供了与使用已配置网络地址以在提供的计算机网络中路由通信的实施例相关的附加细节。
[0038]另外,在至少一些实施方案中,客户端可与该模块110交互以为该客户端所提供的计算机网络配置网络拓扑信息(如,通过使用由该CNS 105所提供API的一个或多个可编程交互),在至少一些这样的实施方案中随后可为提供的计算机网络动态地修改这样的网络拓扑信息,如在该提供的计算机网络已经由该客户端使用后。例如,客户端可指定特定类型的网络装置(如,路由器,断路器,等)和/或其他网络装置或将成为该提供的计算机网络一部分的节点(如,防火墙,代理,网络存储装置,打印机,等),和/或可可指定该提供的计算机网络的计算节点的子集以被一起分组或其不然将共享相同的互相通信的特性(如,计算节点的特定子集,该子集是其互相通信未过滤子集的一部分和/或与特定网络装置相关)。另外,该提供的计算机网络的指定配置信息在至少一些实施方案中包括在网络装置和/或计算装置分组之间路由信息或其他互连性信息。进一步地,在至少一些实施方案中,该CNS 105可提供在多个地理位置中可获得的计算节点(如,在多个地理上分布的数据中心),以及由客户端为提供的计算机网络所指定的该配置信息可进一步指出在其中将放置该提供的计算机网络的计算节点的一个或多个地理位置(如,通过将他们放置在多个地理位置中以提供在提供的计算机网络的计算节点之间的错误容忍度),和/或可要不然提供与该提供的计算机网络的计算节点将如何相互操作的偏好或需求相关的信息,其由该CNS 105用来选择一个或多个这样的地理位置(如,计算节点互相通信的最小或最大网络延迟或带宽;在计算节点之间的最小或最大网络接近性;在计算节点之间的最小或最大网络地理接近性;具有到在所有这样的地理位置中无法访问的特定资源或功能的本地访问;具有与其他外部计算机系统相关的指定位置,如与该客户端的远程计算机网络相关和/或与远程资源服务相关;等)。
[0039]与在其他地方进行更具体讨论的一样,在至少一些实施方案中,使用该CNS 105的下面的基板网络来管理在提供的计算机网络的计算节点之间的交互和互相通信,以及如果这样,在至少一些实施方案中使用该CNS 105的下面的基板网络和相应模块可模仿一些或所有该已配置网络拓扑信息。例如,由该CNS 105所提供的该计算节点每一个可与该CNS105的节点通信管理模块相关,该模块管理去往和来自其相关计算节点的通信。如果这样,可使用该计算节点的相关通信管理模块来模仿防火墙装置以与一个或多个被模仿防火墙装置一致的方式来不允许或不然处理去往和来自该计算节点的通信。这样的节点通信管理模块可类似地通过控制在计算节点之间如何和是否进行通信来模仿路由器和子网,以及通过使用合适的相应信息以响应来自计算节点处的信息的请求(如,ARP,或地址解析协议,请求)。该CNS 105的一个或多个外部通信管理模块可管理在该CNS 105所提供计算节点和外部计算系统之间的通信,如用来类似地模仿防火墙装置和加强特定网络访问限制,与用来管理用于远程资源业务的已配置访问机制和到远程客户端专用计算机网络的安全连接。可类似地模仿其他类型的网络拓扑信息,下面参照图2和其他位置来讨论在一些实施方案中与该CNS 105的各种模块的使用相关的附加细节。
[0040]另外,在至少一些实施方案中,客户端可与该模块110交互以配置为该客户端所提供的计算机网络的各种网络访问限制信息(如,通过使用由该CNS 105所提供API的一个或多个可编程交互),随后在至少一些这样的实施方案中可为提供的计算机网络动态地修改这样的网络访问限制信息,如在该提供的计算机网络已经由该客户端使用后。例如,客户端可指定与是否和如何允许提供的计算机网络的一些或全部计算节点与该提供的计算机网络的其他计算节点和/或与其他外部计算系统进行通信相关的信息,如基于下列中的一个或多个:通信方向(将来的对比出发的);通信类型(如,基于所包括内容的类型和/或所使用通信协议的类型,如允许要求文本但非图像的HTTP请求和不允许FTP请求);其他计算系统的位置(如,是否该提供的计算机网络的一部分,对应于该提供的计算机网络的远程客户端计算机网络的一部分,已建立的专用或其他特定访问所到达的远程资源服务的一部分,该提供计算机网络和任意相应远程客户端计算机网络之外,等);其他计算系统的类型;等。另外,如在其他地方进行更具体讨论的一样,在至少一些实施方案中,可配置提供的计算机网络以提供到一个或多个远程资源服务的专用或其他特定访问,如通过已配置的访问机制,该机制是该提供的计算机网络的一部分或不然在该提供的计算机网络的本地。在与用于网络拓扑信息和其他路由信息类似的方式中,该CNS 105可以各种方式加强提供的计算机网络的网络访问限制信息。下面参照图2和其他位置来讨论在一些实施方案中与管理提供的计算机网络的通信相关的附加细节。
[0041]图1B描述了与可由用于客户端的CNS 105 (或可配置网络服务的其他实施方案)所提供示例性计算机网络120a相关的附加细节,本实施例中该提供的计算机网络120a是该客户端的远程专用计算机网络的延伸,如图1A的远程专用计算机网络130之一。在本实施例中,该提供的计算机网络120a的各种连接和通信路径以概念方式显示以描述可配置网络访问限制和网络拓扑的类型,以及图2描述了与可用来创建如该示例性的提供的计算机网络120a的提供的计算机网络的下面基板网络和连接的实施例相关的附加细节。
[0042]特别是,在图1B中,该提供的计算机网络120a包括位于第一地理位置1160(如,在该地理位置I处的第一数据中心)的该CNS 105所提供的各个计算节点,在本实施例中将该各个计算节点配置成逻辑分组164,165和166 (如,以对应于不同子网和/或相关已配置网络装置,未示出)。在本实施例中,在地理位置I处显示了单个概念上的虚拟路由器162以控制在这些计算节点和其他计算系统之间的通信,以便描述可能发生的通信的不同类型,尽管该提供的计算机网络120a可能实际上在地理位置I处具有多个或没有任何已配置网络装置,该可配置网络服务可在该地理位置I处以各种方式实施该计算机网络120a,如通过多个物理上的互连路由器或其他网络装置,通过使用下面的基板网络和控制在该基板网络上的通信的相关模块,等。在本实施例中,该虚拟路由器162依照该提供的计算机网络120a的已配置信息操作,包括已配置网络拓扑信息,已配置到远程资源服务的专用或其他特定访问,和其他已配置网络访问限制信息,以便路由将发送到该提供的计算机网络120a内网络地址处的通信到在该提供的计算机网络120a上的相应目标计算节点,和以便适当地路由其他通信到该提供的计算机网络120a外部的其他网络地址。进一步地,已配置防火墙装置,已配置网络拓扑信息,或其他已配置网络访问限制不允许的通信可由该虚拟路由器162阻挡或不然管理。
[0043]在本实施例中,为示例性客户端I提供了该计算机网络120a,该计算机网络120a是客户端I的远程计算机网络的网络延伸。客户端I的远程计算机网络包括在第一远程位置站点A 190处的多个计算系统(未示出),以及将该虚拟路由器配置为通过在该地理位置I处的虚拟通信链路170与那些多个计算系统进行通信。例如,如在其他位置将更具体讨论的一样,该提供的计算机网络120a可包括到站点A 190处的该多个计算系统的一个或多个已配置VPN连接,该通信链路170可对应于一个或多个这样的VPN连接。另外,客户端I的远程计算机网络可选地可包括在一个或多个其他位置处的计算系统,如所述可选的站点B 192,如果这样,可进一步配置该虚拟路由器162以与在该其他位置处的这些其他计算系统进行通信,如通过到站点B192的可选的虚拟通信链路172 (如,通过直接到达站点B的一个或多个其他已配置VPN连接)。当多个VPN连接或其他安全连接用于远程计算机网络的远程计算系统时,每一个连接可对应于该远程计算系统的子集(如,通过与对应于这些远程计算系统的远程计算机网络的网络地址的子集相关),以便使得将通信路由到该合适的连接。在其他实施方案中,多个VPN连接或其他安全连接可用于在一个或多个位置处的远程计算系统,但是可能每一个支持到该远程计算系统任意一个的通信,例如如果该多个连接为冗余的替代方式(如,用于负载平衡)。进一步地,在一些实施方案中,客户端的远程计算机网络可包括在多个站点处的多个计算系统,但是仅仅可使用到该远程计算系统的单个连接或其他安全连接,该远程计算机网络负责将该通信路由到该合适的站点和计算系统。
[0044]另外,可配置该提供的计算机网络120a以允许在该提供的计算机网络120a的计算节点和该互联网196或其他公用网络上通常可访问的其他外部计算系统之间的所有,一些或禁止通信。如果允许至少一些这样的外部通信,可进一步配置该虚拟路由器162以通过该提供的计算机网络120a的可选虚拟通信链路178与这些外部多个计算系统通信,如与该提供的计算机网络120a的可选虚拟边界路由器155连在一起。可以各种方式来物理上实施该虚拟边界路由器155,如通过CNS 105使用一个或多个实际防火墙装置或管理在外部计算系统和由在地理位置I处的CNS 105所提供的各个计算节点之间通信的边界路由器装置(如,支持由该CNS 105提供给客户端的许多计算机网络的实际装置,该客户端使用了该CNS 105的这些计算节点),通过使用下面的基板网络和控制在该下面的基板网络上的通信的相关模块(如,用来阻止由在该基板网络上的该提供的计算机网络120a的计算节点正发送的不允许的通信),等。进一步地,该虚拟边界路由器155可进一步概念上有助于管理到该提供的计算机网络120a之外其他计算系统的其他通信,如到在站点A和B的该远程客户端计算机网络,到一个或多个远程资源服务,等。
[0045]另外,可配置该提供的计算机网络120a以提供到一个或多个远程资源服务的专用或其他特定访问,如通过分配该提供的计算机网络120a的一个或多个网络地址以展现这些一个或多个远程资源服务,通过可选地配置用于发送到这些已分配网络地址的通信的特定行为。在本实施例中,已配置该虚拟路由器162以提供通过该提供的计算机网络120a的虚拟通信链路174到远程资源服务194的本地访问。因此,例如,如果该提供的计算机网络120a的一个计算节点发送了到该提供的计算机网络120a的特定网络地址的被映射到该通信链路174的通信,该虚拟路由器可将该通信推进到在该提供的计算机网络120a之外的该远程资源服务194 (如,通过该互联网或其他公用网络)。在其他实施方案中,该远程资源服务194可实施为该CNS 105 一部分或不然在该地理位置I处的接口,如果这样,发送到该提供的计算机网络120a的特定网络地址以及被映射到该通信链路174的通信可替代地被推进到该远程资源服务的接口处用于处理。
[0046]另外,在至少一些实施方案中可配置该虚拟通信链路174以管理以各种方式通过该链路所发送的通信,以便以一种或多种方式在他们被推送到该远程资源服务194之前修改这些通信,或不然以特定方式访问该远程资源服务194。例如,在所述实施方案中,可配置该虚拟通信链路174以对应于在该远程资源服务194内的特定命名空间,该远程资源服务194所提供的该计算相关资源的子集成为该命名空间的一部分。相应地,可配置该虚拟通信链路174以访问在该特定命名空间内的资源,如通过修改或转变通信以使用与该特定命名空间关联的名称或其他标识,通过使用该支持指出特定命名空间的远程资源服务的特定接口,等。另外,如果配置该虚拟通信链路174以对应于特定命名空间或不然对应于由该远程资源服务194所提供资源的子集,可选地进一步配置该提供的计算机网络120a以包括同样对应于相同远程资源服务194的一个或多个其他虚拟通信链路,但配置以使用其他方式访问该远程资源服务194。例如,该提供的计算机网络120a可选地可包括不同的虚拟通信链路176,该链路被配置以不同于虚拟通信链路174的方式来访问该远程资源服务194,以便对应于不同的第二命名空间,以对应于任意特定命名空间,以使用不同于用于通信链路174的顾客标识的该远程资源服务194的顾客标识,等。在本实施例种,配置该虚拟通信链路174和176以使用不同标识(如,不同命名空间标识),其在本实施例中为该链路174和176分别展示为ID I和ID 2。因此该提供的计算机网络120a的计算节点可以能够访问来自远程资源194处的不同类型功能。进一步地,当在此处未描述时,可类似地配置该提供的计算机网络120a以访问一个或多个其他远程资源服务(未示出),使用到这些其他远程资源服务的其他虚拟通信链路。
[0047]作为配置该虚拟通信链路174以访问该远程资源服务194的特定命名空间的补充或替代,在至少一些实施方案中可配置该虚拟通信链路以提供给该远程资源服务194附加信息以允许该远程资源服务194将该通信的位置或其他源验证为该提供的计算机网络120a。例如,在所示实施方案中,该可配置网络服务或该远程资源服务194可配置该虚拟通信链路174以对应于与该提供的计算机网络120a相关的一个或多个特定标识或其他访问控制指示符,使得该远程资源服务194所提供的通过该虚拟通信链路174访问的新的和/或现有计算相关资源的子集与该访问控制指示符相关,通过该远程资源服务194用于对这些资源的限制访问。相应地,可配置该虚拟通信链路174以各种方式使用与该提供的计算机网络120a相关的特定附加指示符,以便修改通信以包括该附加指示符,以不修改该通信来发送与该通信一起的该附加指示符,以使用支持包括这样附加标识符的该远程资源服务的特定接口,等。另外,如果配置该虚拟通信链路以对应于一个或多个附加指示符,可选地可进一步配置该提供的计算机网络120a以包括同样对应于该相同远程资源服务194的一个或多个其他虚拟通信链路,但是配置以使用其他方式访问该远程资源服务194。例如,该提供的计算机网络120a可以可选地配置该不同的虚拟通信链路176以访问该远程资源服务194而没有使用任意附加指示符(如,以提供到该远程资源服务194的相同访问在其将不然为公用可访问时),以使用不同于用于虚拟通信链路174的那些的一个或多个其他附加访问控制指示符,以使用不同于用于虚拟通信链路174的顾客标识的该远程资源服务194的顾客标识,等。进一步地,当在此处未描述时,可类似地配置该提供的计算机网络120a以访问一个或多个其他远程资源服务(未示出),使用到这些其他远程资源服务的其他虚拟通信链路,如被配置以使用与虚拟通信链路174相同的一个或多个附加指示符的其他虚拟通信链路,或不然其已被配置。
[0048]在所述实施方案中,作为在地理位置I处CNS 105的计算节点的补充,该提供的计算机网络120可进一步包括位于第二地理位置2180的CNS 105所提供的计算节点184 (如,在该地理位置2的不同的第二数据中心)。相应地,可配置该虚拟路由器162以包括到在该地理位置2的该提供的计算机网络120a —部分的可选虚拟通信链路168。在本实施例中,类似地使用概念上的虚拟路由器182描述在该地理位置2的该提供的计算机网络120a —部分以管理去往和来自该计算节点184的通信,包括以通过虚拟通信链路188与在该地理位置I处的该提供的计算机网络120的一部分进行通信。这样的在不同地理位置处的CNS105的计算节点之间的通信可在各个实施方案中以各种方式来处理,如通过在该互联网或其他公用网络上发送该通信(如,作为安全通道的一部分,以便其使用该CNS 105所支持的加密),通过以专用安全方式来发送该通信(如,通过在该地理位置之间的专用租用线),等。另外,当在此处未描述时,在该地理位置2处的该提供的计算机网络120a的一部分可类似地包括为在地理位置I处的部分所描述的其他虚拟通信链路的相同类型的一些或全部,以便到远程客户端专用网络(如,通过与到该地理位置I的任意VPN连接不同的一个或多个VPN连接),到远程资源服务,到该互联网,等。
[0049]明显的是,图1B的该示例性提供的计算机网络120a被包括用于示范目的,由客户端的CNS 105所提供的其他计算机网络可能不包括所有类型的已配置通信链路和网络拓扑信息,和/或可能包括其他类型的在这里未描述的已配置通信链路和网络拓扑信息。例如,在一些实施方案和情况中,提供的计算机网络可包括已配置装置和作为计算节点补充和替换的其他资源,如果这样,可将每一个这样的其他资源可选地分配该提供的计算机网络的网络地址。进一步地,图1B所述的概念上的装置和通信链路可使用多种类型的下面的物理装置,连接和模块来实施。另外,当在此处未描述时,客户端可实施多种其他类型的与远程资源服务的交互,无论来自提供的计算机网络还是可替换地来自其他远程计算系统,以便预定/注册到用户资源,接收/创建各种证书(如,用户ID,密码,等),创建来自其他远程计算系统的资源和/或命名空间(如,其为远程专用公司网络的一部分),其随后从提供的计算机网络处被访问(如,该专用公司网络的网络延伸),等。
[0050]图2是描述了用于提供计算机网络的计算系统的示例性实施方案的网络图,如通过可配置网络服务的实施方案。特别是,在本实施例中,多个物理计算系统被共置于数据中心200中并通过各种网络装置和一个或多个物理网络互连。通过可配置网络服务在本实施例中使用该物理计算系统和其他装置以为客户端提供多个计算机网络,通过建立和保留每一个提供的计算机网络作为虚拟网络,和通过将该物理网络用作上面覆盖有该虚拟网络的基板网络。例如,参照图1B的实施例,可将该数据中心200置于地理位置I处,可使用该所述的物理计算系统以提供该提供的计算机网络120a的计算节点164,165和166。在至少一些实施方案中,该覆盖网络和下面的基板网络的使用对于该提供的计算机网络的计算节点而言可以是显而易见的。
[0051]因此,在本实施例中,由该可配置网络服务所提供的计算机网络实施为虚拟覆盖网络,其通过覆盖物理上的基板网络来发送通信。该提供的虚拟覆盖网络可以各种方式在各个实施方案中实施,如在一些实施方案中没有封装通信(如,通过将虚拟网络的虚拟网络地址信息嵌入为该物理基板网络的网络协议所配置的通信中)。作为一个描述性实施例,可使用32位IPv4(互联网协议第四版)网络地址来实施虚拟网络,那些32位虚拟网络地址可嵌入作为由该物理基板网络所使用的128位IPv6 (互联网协议第六版)网络地址的一部分,如通过重新定义通信包或其他数据传输的包头(如,使用无国家的IP/ICMP转变,或SIIT),或不然修改这样的数据传输以将他们从他们所配置的第一网络协议转变为不同的第二网络协议。作为另一个描述性实施例,可使用同一网络地址协议(如,IPv4或IPv6)将该虚拟网络和基板网络一起实施,可修改使用虚拟网络地址通过该提供的虚拟覆盖网络发送的数据传输以使用相对于该基板网络的不同的物理网络地址,而在该基板网络之上发送该传输,但是初始虚拟网络地址被存入在该修改的数据传输中或不然被跟踪使得该数据传输当他们退出该基板网络时候可被存入他们的初始形式。在其他实施方案中,使用通信封装可实施至少一些该重叠网络。
[0052]图2的所述实施例包括由该可配置网络服务的实施方案操作的具有多个物理计算系统的数据中心200。该数据中心200连接该数据中心200之外的一个或多个公用网络235,其提供了通过专用网络240到一个或多个远程计算系统245a的访问,到在其他地理位置处每一个具有多个计算系统的一个或多个其他全球可访问数据中心260,和到一个或多个其他远程计算系统245b。该公用网络235可以是,例如,网络的公用可访问网络,可能由如互联网的各种不同方所操作,以及该专用网络240可以是,例如,该专用网络240之外的计算系统整体或部分地无法访问的公司网络。计算系统245b每一个可以是,例如,直接连接到互联网的家庭计算网络(如,通过电话线,电缆调制解调器,数字用户线(“DSL”),
坐^
寸/ ο
[0053]在本实施例中,该可配置网络服务的管理模块210实现了该虚拟提供的计算机网络的配置,使用该可配置网络服务的多个其他模块来实施该提供的计算机网络的功能,如从该物理基板网络的边界通过修改进入和/或离开该基板网络的通信。特别是,在本实施例中,该可配置网络服务的多个节点通信管理模块每一个管理去往和来自相关计算节点的通信,如所述的节点通信管理模块209a,209d和250,如下进行更具体地讨论。另外,在本实施例中,该可配置网络服务的外部通信管理模块270管理在该数据中心200内的物理计算系统和外部计算系统之间的通信,如下进行的更具体地讨论。当在本实施例中仅仅描述了单个外部通信管理模块270时,应当清楚,可使用多个装置来实施该模块270的功能,如用于冗余和负载平衡。
[0054]该数据中心200包括多个物理计算系统205a_205d和255a_255n,以及CNS节点通信管理模块250,其在一个或多个其他计算系统(未示出)上执行以管理该相关计算系统255a-255n的通信,和该可配置网络服务的管理模块210,其在一个或多个计算系统(未示出)上执行。在本示例性实施方案中,物理计算系统205a-205d每一个作为多个虚拟机计算节点的主机并同样包括虚拟机(“VM”)节点通信管理模块(如,作为该物理计算系统的虚拟机管理程序监视器的一部分),如在计算系统205a上的该CNS VM节点通信管理模块209a和虚拟机207a,和在计算系统205d上的CNS VM节点通信管理模块209d和虚拟机207d。该可配置网络服务可使用该虚拟机计算节点的每一个作为为客户端所提供的计算机网络的不同计算节点。物理上的计算系统255a-255n在本实施例中不执行任意虚拟机,并因此每一个可作为成为由该可配置网络服务为客户端所提供计算机网络一部分的不同计算节点。在其他实施方案中,所有或没有该物理计算节点在该数据中心处可以作为虚拟机的主机。
[0055]本示例性数据中心进一步包括多个物理网络装置,如断路器215a和215b,边界路由器225a-225c,和中心路由器230a_230c。断路器215a是包括物理计算系统205a_205c的物理网络的一部分,并连接边界路由器225a。断路器215b是包括物理计算系统205d,255a-255n的不同物理网络的一部分,以及该计算系统提供了该CNS节点通信管理模块250和该CNS系统管理模块210,并连接边界路由器225b。由断路器215a_215b建立的该物理网络,轮流地,连接彼此和其他网络(如,该公用网络235),通过中间互连网络220,器包括该边界路由器225a-225c和该中心路由器230a_230c。该边界路由器225a_225c在两个或多个网络之间提供网关。例如,边界路由器225a提供了在断路器215a所建立的物理网络和该互连网络220之间的网关。边界路由器225c提供了在该互连网络220和公用网络235之间的网关。该中心路由器230a-230c管理了与该互连网络220的通信,如通过合适地推送包或其他数据传输,基于这样数据传输的特性(如,包括源和/或目标基板网络地址,协议标识的包头信息,等)和/或该互连网络220本身的特性(如,基于物理网络拓扑的路由,
坐^
寸/ ο
[0056]所述节点通信管理模块管理发送到和来自相关计算节点的通信。例如,节点通信管理模块209a管理相关的虚拟机计算节点207a,节点通信管理模块209d管理相关的虚拟机计算节点207d,以及该其他节点通信管理模块的每一个可类似地管理一个或多个其他相关计算节点的分组的通信。所述节点通信管理模块可管理计算节点之间的通信以便于将特定虚拟网络覆盖在该中间物理基板网络上(如,该交互网络220和与断路器215a和215b相关的物理网络),可实施防火墙策略和其他网络访问限制以控制这样的通信。该外部通信管理模块270管理进入和离开该数据中心200的外部通信,以便进一步实施在该数据中心200内参照这样的外部通信在该基板网络上覆盖网络。该外部通信管理模块270可采取行为以实施防火墙策略和其他网络访问限制,包括至少一些提供的计算机网络的已配置的访问机制,其运行到该数据中心200之外的远程资源服务的专用或其他特定访问,并可选地到外部远程客户端计算机网络的至少一些VPN连接,或可替换地与实施这样VPN连接的可配置网络服务的部分的其他硬件和/或软件(未示出)一起操作。
[0057]因此,作为一个描述性实施例,在计算系统205a上的虚拟机计算节点207a中的一个可以是为客户端所特别提供的虚拟计算机网络的一部分(如,图1B的提供的计算机网络120a),与计算系统205d上虚拟机计算节点207d中的一个和与该计算系统255a —起(且可选地,在本数据中心或在一个或多个其他数据中心260中的也由该可配置网络服务所使用的其他计算节点),以及与将用来展示该虚拟网络的虚拟网络地址的IPv4 —起。该虚拟机计算节点207a,虚拟机计算节点207d,和计算系统255b_255n的其他部分(与所述计算节点的其他部分一样)可被直接专用于正提供给其他客户端的其他计算机网络,可被直接解除到提供的计算机网络的指定并可被该可配置网络服务所使用,和/或同样可以是相同特别提供的虚拟计算机网络的一部分。在成为该特别提供的虚拟计算机网络一部分的虚拟机计算节点207a上的为该客户端所执行的程序可随后将离开的通信(未示出)指向该特别提供的虚拟计算机网络的虚拟机计算节点207d,如通过为该提供的虚拟计算机网络指定已被分配到该目标虚拟机计算节点207d的虚拟网络地址。该节点通信管理模块209a接收该离开的通信,并在至少一些实施方式中决定是否授权该离开通信的发送,如基于先前与该发送虚拟机计算节点207a相关和/或与该目标虚拟机计算节点207d相关的已配置信息,和/或通过动态地与该系统管理模块210交互(如,以获取授权确定,以获取一些或所有这样的信息,等)。
[0058]如果该节点通信管理模块209a确定该离开的通信被授权(或不实施这样的授权确定),该模块209a确定对应于该通信的目标虚拟网络地址的实际物理基板网络位置。在本实施例中,该交互网络使用IPv6来通过该交互网络为连接的计算节点展示实际网络地址,以及该模块209a重新确定该离开的通信的包头使得将其指向使用实际IPv6基板网络地址的节点通信管理模块209d。该节点通信管理模块209d可确定该实际IPv6目标网络地址以用于该目标虚拟计算节点207d的虚拟网络地址,通过例如,动态地与该系统管理模块210交互,或可以先前已经确定和存储了这样的信息(如,为了关于该目标虚拟网络地址的信息响应于来自该发送虚拟机计算节点207a的先前请求,这样的请求使用地址解析协议,或ARP)。在本实施例中,所使用的实际IPv6目标网络地址嵌入该虚拟目标网络地址和附加信息中,以便于在该没有封装的覆盖网络上发送该通信。
[0059]当该节点通信管理模块209d通过该交互网络220接收到该通信时,其从该实际IPv6目标网络地址处提取该虚拟目标网络地址和附加信息,并确定将该通信指向的虚拟机器计算节点207d。该节点通信管理模块209d下一步可选地确定是否为该目标虚拟机计算节点207d对通信授权,如通过从该实际IPv6源网络地址处提取该虚拟源网络地址和附加信息,并确认具有该虚拟源网络地址的计算节点实际上由推进该通信的节点通信管理模块所管理(在本实施例中,节点通信管理模块209a),以便于阻止来自恶意发送者的源网络地址的欺骗。如果确定该通信为被授权的(或该节点通信管理模块209d不实施这样的授权确定),随后该模块209d重新确定即将到来的通信的包头使得将其指向使用该虚拟网络的合适IPv4网络地址的目标虚拟机计算节点207d,如通过使用该发送虚拟机计算节点的虚拟网络地址用作该源网络地址和通过使用该目标虚拟机计算节点的虚拟网络地址用作该目标网络地址。在重新确定了该即将到来的通信的包头后,随后该模块209d将该已修改的通信推进到该目标虚拟机计算节点。在至少一些实施方案中,在将该即将到来的通信推进到该目标虚拟机之前,该模块209d同样可实施与安全相关的附加步骤。例如,该模块209d可证明授权该发送虚拟机计算节点以与该目标虚拟机通信(如,基于属于相同虚拟网络和/或基于为该提供的虚拟网络所指定的网络访问限制信息,与相同顾客或其他实体相关,与不同的其计算节点被授权以互相通信的实体相关,等)和/或该即将到来的通信属于允许类型,如基于该模块209d先前所获得的信息或基于与该系统管理模块210的交互。
[0060]如果该发送虚拟机计算节点207d可替换地(或附加地)将离开的通信(为示出)指向该数据中心200之外的一个或多个期望的目标计算系统,该节点通信管理模块209a以类似方式接收并处理该离开的通信。期望的外部目标计算系统可以是,例如,成为相同特别提供的虚拟计算机网络一部分的另一个计算节点(如,在远处虚拟客户端计算机网络上,该特别提供的计算机网络是其的延伸,或在另一个数据中心260处,其同样由该可配置网络服务所使用以提供该特定虚拟计算机网络的一部分),远程源服务的计算系统,在该互联网上公众可访问的计算系统,等。在至少一些实施方案和情况中,该模块209a可首先确定是否去授权该离开通信的发送,如果这样其确定相对于该通信的目标网络地址的实际物理基板网络位置。在本实施例中,该确定的物理基板网络位置对应于该外部通信管理模块270,这样如果该模块270与要不然被分配给节点通信管理模块的所有虚拟和/或实际网络地址相关。当该模块270通过该互连网络220接收到该通信,其类似地从该接收到的通信处提取该目标网络地址和附加信息,并确定是否和如何来推进该通信,包括可选地确定该通信是否被授权于期望的目标。如果该通信被确定为已授权(或该模块270不实施这样的授权确定),随后该模块270重新确定该即将到来的通信的包头使得将其指向使用合适IPv4公用网络地址的目标(或其他适合该公用网络235的网络地址),随后在该公用网络235上推进该已修改的通信。
[0061]因此,如上所述,在所述实施方案中该外部通信管理模块270处理来自提供的计算机网络的离开的通信,包括通过这些远程源服务的已配置访问机制发送到远程资源服务处的离开的通信。如果该离开的通信正通过该特别提供的计算机网络的已配置访问机制发送到远程资源服务,在至少一些实施方案和情况中,该模块270和/或该发送计算节点的相关节点通信管理模块可采取进一步行为。例如,该特别提供的虚拟计算机网络可能具有特定远程资源服务的已配置访问机制(如,通过一个或多个该计算系统245b或通过在另一数据中心260处的一个或多个计算系统提供的远程资源服务),将其映射到该远程资源服务的特定命名空间,以及该发送虚拟机计算节点207a可通过该已配置访问机制发送该通信。到该特别提供的计算机网络的远程资源服务的该已配置访问机制可以是,例如,被分配以展示该已配置访问机制的该特别提供的计算机网络的虚拟网络地址,如果这样,该分配的虚拟网络地址可与该模块270相关以使得将该离开的通信指向该模块270。在通过该公用网络235将这样的离开的通信推进到该远程资源服务之前,该模块270可采取各种行为以反映所使用的访问机制的配置,以便修改该离开的通信以参考或不然使用该访问机制对应的特定命名空间。在这样的情况中,该模块270可以各种方式确定该命名空间和该访问机制的其他配置信息,如通过将该配置信息本地存储,接入该系统管理模块210以获得该配置信息,等。另外,该模块270可确定如何和何时来修改通信以各种方式来使用该特定命名空间,如通过先前已将相应配置信息提供给该可配置网络服务的远程资源业务(如,一个或多个特定消息参数的指示,指示出命名空间;用来命名或参照资源的一个或多个特定消息参数的指示,其可选地包括命名空间标识;消息类型的指示,其允许指示命名空间或不然允许使用命名空间?目息;等)。
[0062]作为一个特殊的描述性实施例,该远程资源服务可提供数据存储服务,该离开的通信可以是访问特定与存储相关的资源的请求(如,恢复已存储的对象或已存储数据的其他分组)。如果这样,该客户端可先前已创建该特定存储资源作为该客户端所定义命名空间的一部分,如通过使用该提供的计算机网络之外的计算系统(如,在该客户端的远程专用计算机网络上。通过配置该特别提供的计算机网络的访问机制以使用该相同的命名空间,该提供的计算机网络的计算节点可访问并使用该客户端的现有已存储的资源。作为描述性实施例,如果该客户端的远程专用计算机网络是公司网络,该客户端可使用不同命名空间已存储不同类型数据,以便于在第一命名空间内存储敏感的人力资源数据,在第二命名空间内存储限制的软件开发软件和其他数据,通过第三命名空间存储在该公司范围内一般可获得的其他公司数据。如果仅仅该公司的特定子集使用了该可配置网络服务的提供的计算机网络(如,人力资源全体人员),可配置到该特别提供的计算机网络的远程资源服务的访问机制以使用该敏感人力资源数据的第一命名空间。进一步地,该特别提供的计算机网络可以可选地具有被配置到该远程资源服务的第二访问机制(如,使用该提供的计算机网络的不同的分配虚拟网络地址),以便于使用该一般可获得的公司数据的第三命名空间,使得该特别提供的计算机网络的计算节点可以可替换地与该特别提供的计算机网络的不同本地虚拟网络地址进行交互以获得到不同资源分组的访问。
[0063]作为另一个描述性实施例,可替换地将到该特别提供的计算机网络的远程资源服务的访问机制配置为仅仅允许该特别提供的计算机网络的计算节点具有到这些计算节点所创建和使用的存储资源的访问。如果这样,该可配置网络服务可确定新的命名空间用于该特别提供的计算机网络,如通过自动生成新的命名空间(如,没有将该信息提供给该特别提供的计算机网络的计算节点)或通过使用由具有该配置信息的客户端所指示的新的命名空间,以及可配置该访问机制以使用该新的命名空间。该可配置网络服务或该特别提供的计算机网络的计算节点可进一步地需要采取启动行为以在该远程资源服务内创建该新的命名空间,基于该远程资源服务。一旦可获得该新的命名空间,该特别提供的计算机网络的计算节点可类似地使用该已配置的访问机制来与该远程资源服务交互以创建成为该新的命名空间一部分的新的已存储资源并以访问这样的已存储资源,以及该外部通信管理模块270将类似地对该离开的通信进行合适修改以使用该新的命名空间。
[0064]作为被配置以实施相对于在特定远程资源服务内特定命名空间的已配置访问机制的补充和替换,在一些实施方案中可配置该外部通信管理模块270以包括一个或多个附加指示符,该指示符与通过该访问机制发送到该远程资源服务的一些或所有通信的访问控制相关,该发送虚拟机计算节点207a可通过该已配置访问机制发送这样的通信。在通过该公用网络235推进这样的离开的通信到该远程资源服务之前,该模块270可采取各种行为以反映该使用的访问机制的配置,以便修改该离开的通信来包括相对于该访问机制的一个或多个附加指示符,如以指定给该远程资源服务的方式来修改该通信的包头和/或主体(如,如果该远程资源服务允许一个或多个访问控制指示符的客户端说明,以采用该远程资源服务所支持的方式来包括该一个或多个附加指示符,无论对该发送虚拟机计算节点207a所指定的任意指示符进行替换或补充)。在这样的情况中,该模块270可以各种方式确定该访问机制的附加指示符,如通过本地存储该信息,接入该系统管理模块210以包括该信息,等。另外,该模块270可确定如何和何时来修改通信以采用各种方式来使用该特定附加指示符,如通过先前已经将相应配置信息提供给该可配置网络服务的该远程资源服务(如,指示这样的访问控制指示符的一个或多个特定消息参数的指示;用来访问资源的一个或多个特定消息参数的指示,可选地其可包括一个或多个这样的访问控制指示符;允许指定一个或多个这样的访问控制指示符或不然使用这样的访问控制指示符的消息的类型的指示;
坐')
寸/ ο
[0065]以类似于参照采用该已配置访问机制对命名空间信息的使用的先前所述实施例的方式,该远程资源服务可提供数据存储服务,该离开的通信可以是访问特定与存储相关的资源的请求(如,恢复已存储的对象或已存储数据的其他分组)。如果这样,该发送虚拟机计算节点207a所属于的提供的计算机网络的计算节点之一先前已经将该特定存储资源创建,或可以最近进行创建或作为该当前通信一部分进行访问。在一些实施方案中,该可配置网络服务可进一步需要采取启动行为以指定在该远程资源服务内使用的一个或多个附加指示符(如,以定义他们),基于该远程资源服务。如在别处进行更具体讨论的一样,该发送虚拟机计算节点207a和该相关客户端可能不了解该附加指示符的使用,但是该外部通信管理模块270将仍然对该离开的通信进行合适修改以使用该相关指示符。
[0066]进一步地,如上所述,该外部通信管理模块270在所述实施方案中处理离开的通信,该通信从提供的计算机网络延伸处到该延伸对应的远程计算机网络,如通过已配置VPN连接到发送到特定远程计算机网络的离开的通信。在至少一些实施方案中,该已配置网络服务提供了远程访问建立API,该API允许客户端可编程地启动从远程于该数据中心200的位置到在该数据中心200的客户端所提供计算机网络处的这样VPN连接的建立,以便使得在建立该VPN连接中将合适的硬件装置,软件和/或配置信息发送到由该客户端所使用的远程位置。例如,该计算系统245b中的一个可对应于销售或不然提供这样的硬件装置和/或软件的在线零售商,如果这样,该可配置网络服务可使用该零散商所提供的单独的API来放置这样硬件装置和/或软件的订单以发送到该远程位置或对应于该客户端的其他指定位置(如,当该客户端指定为调用该可配置网络服务的已提供API的一部分,基于由该可配置网络服务为该客户端先前所存储的信息,基于该零售商为该客户端先前所存储的信息,等)。一旦建立了这样的VPN连接或其他安全连接以允许该客户端具有到该提供的计算机网络的远程访问,该模块270可进一步地采取行为以支持该安全连接,如通过使用该安全连接以发送离开的通信,该通信为在该安全连接所对应的远程位置处的一个或多个目的计算系统所期望的。
[0067]因此,参照图2如上所述,在至少一些实施方案中,该可配置网络服务将虚拟计算机网络提供给客户端,通过将他们实施为使用了下面基板网络的覆盖网络,如使用该可配置网络服务的各个节点通信管理模块和该可配置网络服务的一个或多个外部通信管理模块。在至少一些实施方案中,一个或多个系统管理模块可进一步地实现对计算节点之间的通信的配置,如通过跟踪和/或管理哪一个计算节点属于哪一个提供的虚拟网络,和通过提供与用于特定虚拟网络的虚拟网络地址对应的实际物理基板网络地址相关的信息(如,通过特定顾客或其他实体)。另外,系统管理模块可接收在目标物理计算系统上的虚拟机计算节点和将相关于该虚拟机的提供的虚拟网络的指示,随后为该目标物理计算系统启动虚拟机节点通信管理模块的配置以便将该虚拟机与该虚拟网络相关,或者可替换地该节点通信管理模块可启动该配置(如,当该虚拟机第一次启动或接收到通信时)。
[0068]在至少一些实施方案中,未授权通信的检测和/或阻止可至少部分地基于虚拟网络所覆盖的该一个或多个中间基板网络的拓扑。在这样的实施方案中,用于这样计算节点以在该基板网络上通信的该物理网络地址包括了该计算节点的虚拟网络地址的指示,并包括了相对于该计算节点相关节点通信管理模块的位置的基板网络的部分网络地址(如,为了该基本板的子网或其他部分,该节点通信管理模块管理通信)。因此,为了对恶意用户正确地构建虚拟网络一部分的计算节点的有效物理网络地址,该恶意用户将需要获得到与该计算节点所属的虚拟网络的相关信息的访问,以获得到与该计算节点的物理基板网络位置的拓扑的相关信息的访问以确定该相关节点通信管理模块的部分网络地址,并以确定如何使用该信息来构建该物理网络地址。可以各种方式检查构建的物理网络地址的有效性,如通过识别出被嵌入在构建的物理网络地址中的虚拟地址所对应的计算节点,和验证与在对应于该部分网络地址的基板网络的一部分中的该计算节点之一所对应的已识别计算节点的位置(如,由该部分网络地址所对应的节点通信管理模块管理的计算节点之一)。另外,可在不同时间检查构建的物理网络地址的有效性,如通过接收目标计算节点所期望的将到通信的节点通信管理模块(如,验证该源物理网络地址有效),通过据称地接收来自代表已指示被管理计算节点的节点通信管理模块处的消息的管理模块(如,用来请求期望的关注目标计算节点的物理网络地址的消息),等。
[0069]图4,5和6提供了在至少一些实施方案中,与该系统管理模块210,节点通信管理模块,和外部通信管理模块270的行为分别相关的附加细节。进一步地,与实施可被用于至少一些实施方案中的覆盖网络相关的附加细节被包括于2008年3月31日提交的名为“配置在计算节点之间的通信”的第12/060,074号(代理人卷号120137.576)美国申请,其通过引用并入本文中。
[0070]图3是描述了适合执行为远程客户端的使用而提供了计算机网络的系统的实施方案的示例性计算系统的方框图。提拔是,图3描述了适合执行有助于提供可配置网络服务的可配置网络服务系统管理模块的实施方案的服务器计算系统300,与各个客户端计算系统350,主机计算系统360,和其他计算系统380 —样。当此处未示出时,在一些实施方案中,该所述计算系统的至少一些可以是共置的或不然相关的(如,该服务器计算系统300和成为该可配置网络服务一部分的该主机计算系统360的至少一些),如在数据中心处,如参照图1B和2更具体地描述一样。另外,当此处未示出时,该可配置网络服务的各个其他模块可被展示并用于至少一些实施方案中,如各个节点通信管理模块和一个或多个外部通信管理模块。
[0071]在所示实施方案中,该服务器计算系统300具有包括CPU 305,各个I/O组件310,储存器320,和存储器330的组件。该所述I/O组件包括显示器311,网络连接312,计算机可读媒体驱动器313,和其他I/O装置315 (如,键盘,鼠标,扬声器,等)。另外,该所述客户端计算系统350具有类似于服务器计算系统300的那些组件的组件,包括CPU 351,I/O组件352,储存器354,和存储器357。其他计算系统360和380每一个同样可包括类似于参照服务器计算系统300所述的一些或所有组件的组件,但是为了简洁的目的在本实施例中未示出这样的组件。
[0072]可配置网络服务(“CNS”)管理模块340的实施方案在存储器330中执行,其在一个或多个网络390 (如,通过该互联网和/或该万维网,通过专用蜂窝网络,通过该可配置网络服务所使用的专用基板网络,等)上与计算系统350,360和380互动。在本示例性实施方案中,该模块340包括与提供和管理各个客户端(未示出)所使用的计算机网络相关的作为可配置网络服务一部分的功能,该客户端使用计算系统350以配置和访问该提供的计算机网络。该主机计算系统360同样可以有助于提供该可配置网络服务,如通过提供该可配置网络服务所提供计算机网络的计算节点。类似地,在至少一些实施方案中,该其他计算系统380的至少一些可同样有助于提供该可配置网络服务,如通过实现在提供的计算机网络和外部远程计算机系统之间的互相通信(如,通过实施VPN连接或其他访问机制),通过提供该提供的计算机网络被配置来访问的远程资源服务,通过实现在提供的计算机网络的计算节点之间的互相通信(如,通过实施基板网络的部分或实现该通信的可配置网络服务的其他基础结构),等。
[0073]该其他计算系统350,360和380可被执行作为与该模块340交互的一部分的各个软件。例如,该客户端计算系统350的一些或全部可每一个被执行在存储器357中的软件以与模块340交互(如,作为网站浏览器或特定的客户端侧应用程序的一部分),以便于使得客户端计算系统的用户创建和配置该用户或该可配置网络服务的其他客户端所使用的计算网络。进一步地,一些或所有该客户端计算系统350和/或其他计算系统380每一个可被执行在存储器357中的软件以代表客户端与该可配置网络服务为该客户端所提供的计算机网络交互,如通过将多个该客户端计算系统350和/或成为客户端的远程网络一部分的其他计算系统380与多个为该客户端远程网络提供作为提供的计算机网络延伸一部分的计算节点的主机计算系统360连接的VPN连接。另外,该客户端计算系统350的一个或多个用户可与模块340交互以实施各个其他类型的行为(如,与具有该可配置网络服务的客户端的账户相关的管理功能,以监视提供的计算机网络的使用,等),如在他处更具体讨论的一样。进一步地,该主机计算系统360和/或该其他计算系统380的一些可执行软件模块(未示出)以有助于提供该可配置网络服务,如有助于管理发送到和来自提供的计算机网络的计算节点的通信的节点通信管理模块。另外,该计算系统360和380的其他可实施其他功能,以便于执行各个用户可获得的远程资源服务。也可在储存器320中存储与模块340和该可配置网络服务的功能相关的各个信息,如信息322,以及可包括与代表多个客户端的计算机网络的配置和/或规定相关的信息。
[0074]在该模块340接收一个或多个请求(或其他指示)来为客户端创建和配置计算机网络后,该模块340可实施如在他处更具体讨论一样的各个行为。这样行为可包括从将成为该计算机网络一部分的主机计算系统360处选择一个或多个计算节点,配置这些主机计算系统和/或其他计算系统来提供该计算网络,并启动该提供的计算机网络到客户端的远程计算系统350或远程其他计算系统380的访问。另外,该模块340可进一步地与计算系统360互动来管理被提供的计算机网络,如响应于来自客户端的请求或可替换地自动确定,包括在一些情况中用来增加或减少成为提供的计算机网络一部分的计算节点的数量,用来修改提供的计算机网络的已配置的网络拓扑,用来修改提供该提供的计算机网络的计算节点的特定主机计算系统(如,通过将在提供的计算机网络的一个或多个计算节点上执行的程序移到其他计算节点),等。另外,该模块340可监视或不然与该主机计算系统360的一个或多个互动以跟踪该提供的计算机网络的使用和操作。
[0075]应当清楚,该计算系统300,350,360和380仅仅是描述性的,并不是用于限制本发明的范围。该计算系统和/或计算节点可以可替换地每一个包括多个交互计算系统或装置,该计算系统/装置可连接未示出的其他装置,包括通过一个或多个如该互联网的网络,通过该网站,或通过专用网络(如,移动通信网络,等)。更具体地,计算节点或其他计算系统可包括可交互并实施所述类型功能的硬件或软件的任意组合,包括不限于台式或其他计算机,数据库服务器,网络存储装置和其他网络装置,PDA,手机,无线电话,寻呼机,电子记事本,互联网应用,基于电视的系统(如,使用机顶盒和/或个人/数字视频录像机),和包括合适的通信能力的各种其他顾客用品。另外,在一些实施方案中所述模块340所提供的功能可被分布在附加模块中,或该模块340可合并在别处所述的该可配置网络服务的多个模块(如,一个或多个系统管理模块,一个或多个节点通信管理模块,和一个或多个外部通信管理模块)所提供的功能。类似地,在一些实施方案中,可能未提供该模块340的一些功能和/或可获得其他附加功能。
[0076]同样应当清楚,当各个物品被描述为存入存储器或使用时在储存器上时,为了存储管理和数据完整可在存储器和其他存储装置之间转移这些物品或他们的部分。可替换地,在其他实施方案中,该软件模块和/或系统的一些或全部可在其他装置上的存储器中执行并通过计算机之间通信与所述计算系统通信。进一步地,在一些实施方案中,采用其他方式可实施或提供该系统和/或模块的一些或全部,如至少部分地以固件和/或硬件方式,包括,但不限于,一个或多个特定应用集成电路(ASICs),标准集成电路,控制器(如,通过执行合适的指令,并包括微控制器和/或嵌入式控制器),现场可编程门阵列(FPGAs),复杂可编程逻辑器件(CPLDs),等。可同样将该模块,系统和数据结构的一些或全部存储(如,作为软件指令或结构化数据)在计算机可读介质上,如硬盘,存储器,网络,或由合适驱动器或通过合适连接将阅读的便携式媒体文章。同样可将该系统,模块和数据结构传送为生成的数据信号(如,作为载波或其他模拟或数字传播信号的一部分),在多个计算机可读传送介质上,包括基于无线和基于有线/电缆的介质,并且可采用多种形式(如,作为单个或复用的模拟信号的一部分,或作为多个离散数据包或帧)。这样的计算机编程产品同样在其他实施方案中可采取其他形式。相应地,可采用其他计算机系统配置来实践本发明。
[0077]图4A和4B示出了可配置网络服务管理程序400的示例性实施方案的流程图。例如,可由图1A的系统管理模块110,图2的系统管理模块210,和/或图3的系统管理模块340的执行来提供该程序,以便于帮助将计算机网络提供给远程客户端的可配置网络服务的管理操作。在所述实施方案中,该程序400所创建和提供的计算机网络的至少一些可以是客户端的现有远程网络的延伸,而在其他实施方案中,该程序400所创建和提供的网络可替换地可以是客户端所使用的独立的网络,其不是其他网络的延伸。
[0078]该程序的所述实施方案开始于块405,其中来自客户端的消息或其他已接收信息的指示被接收。在至少一些实施方案中,该程序400所支持的可配置网络服务提供了一个或多个API以允许远程客户端来可编程地与该可配置网络服务进行互动,如果这样,可通过具有这些API的远程客户端的调用或其他编程互动来制作在块405中所接收到的一些或全部指示,而在其他实施方案和情况中,可替换地远程客户端可发起在块405中接收到的一些或全部指示,或其他客户端采用其他方式。
[0079]在块405后,该程序继续到块410处以确定在块405中接收的指示是否用来启动被提供的代表请求客户端的新计算机网络的创建,如该客户端的现有远程网络的延伸。如果这样,该程序继续到块415处以实施各个行为来创建该新计算机网络延伸或代表该客户端的其他新计算机网络。例如,如在他处更具体讨论的一样,用来创建该新计算机网络的接收到的通信可包括与将被创建的计算机网络相关的各种配置信息,如多个成为该创建的计算机网络一部分的计算节点,该新计算机网络是否是另一远程网络的延伸的指示,等。在块415中采取的行为可包括,例如,选择该可配置网络服务可获得的特定计算节点用于正被创建的新计算机网络;生成唯一标识并将其与正被创建的该新计算机网络相关;存储任意接收到的配置信息为以后使用;等。如在他处更具体讨论的一样,在各个实施方案中以各种方式从可获得的计算节点组中可选择这样的计算节点,如基于所选计算节点的性能,基于所选计算节点的网络位置(如,在该可配置网络服务的下面基板网络上,在与该计算机网络的其他计算节点相关的网络位置上,等),基于该所选计算节点的地理位置(如,在多个地理上分散的数据中心之一中,在与该计算机网络的其他计算节点相关的地理位置上,等),以随机方式,等。进一步地,当此处未示出时,该程序可将该新计算机网络的唯一标识或该新计算机网络的其他标记提供给该客户端,以便于允许该客户端随后在实施该新计算机网络的进一步配置时参照该新计算机网络。
[0080]在块415后,或如果可替代地在块410中确定了在块405中所接收的指示不将创建新计算机网络,该程序继续到块420以确定在块405中所接收的指示是否包括被指示的计算机网络的与访问限制相关的信息或其他访问信息。例如,在一些情况中,客户端可支持一个或多个请求或其他参照块405 —起接收和处理的信息,如创建新计算机网络延伸和该新计算机网络延伸的各种指定配置信息的请求-如果这样,支持访问信息的该被指定的计算机网络可以是刚参照块415所创建的新计算机网络延伸。在其他情况和实施方案中,可替代地远程客户端可支持在不同时间参照块405被接收和处理的不同通信,如创建新计算机网络的启动请求,和随后一个或多个其他独立请求以指定该先前创建的计算机网络的各种类型的配置信息。如果在块420中确定了在块405中接收了访问信息,该程序继续到块422处以确定该客户端是否已经调用远程访问建立API或不然是否已经请求从该客户端的远程位置处建立到该指示的计算机网络的远程访问,其在所述实施方案中由启动VPN连接的创建来实施,该VPN连接到在该远程位置处的客户端的一个或多个远程计算系统处的该指示的计算机网络。如果这样,该程序继续到块425处以执行VPN创建完成程序来采取行为建立该远程客户端访问,参照图8更具体地描述这样的程序的实施例。
[0081]在块425后,或如果可替代地在块422中确定了该访问信息未指出在远程客户端位置处启动VPN连接的创建,该程序继续到块430处以使用该指示的计算机网络的其他特定访问限制信息来配置该指示的计算机网络的可允许访问。如在他处更具体描述的一样,这样的配置信息可包括关于该计算机网络的任意计算节点是否允许具有到该互联网或不然到该计算机网络外部的访问的限制,和可选地指定在该计算机网络的计算节点之间的通信访问策略一样(包括该计算机网络的远程部分,如果该指示的计算机网络是远程计算机网络的延伸)。相应地,在块430中,该程序采用一个或多个行为,该行为可包括,例如,配置支持该计算机网络的节点通信管理模块和/或外部通信管理模块所使用的路由信息(如,通过采用将被配置的信息将消息发送给这些通信管理模块),如在他处更具体描述的一样。进一步地,如果在块425中采用行为以建立从远程客户端位置到该提供的计算机网络的VPN连接,在块430中所采用的行为可进一步包括采取行为以由该提供的计算机网络或不然由代表该提供的计算机网络的可配置网络服务来支持这样的VPN连接,如通过配置该提供的计算机网络来接收这样的VPN连接和使用合适的信息来解密为该VPN连接加密的通信。
[0082]在块430后,或如果可替代地在块420中确定了在块405中的指示不包括访问信息,该程序继续到块440以确定在块405中的指示是否包括指示的计算机网络的网络地址信息,如以另一形式指定的一个或多个网络地址范围和/或网络地址。如果这样,该程序继续到块445以存储用于该指示的计算机网络的计算节点的指定的网络地址信息,并可进一步继续到将这些指定网络地址与该指示的计算机网络的计算节点相关,如果这些计算节点已经被选中或不然进行使用,如参照块415和/或462。指定网络地址与计算机网络的计算节点的该相关可进一步包括配置将由支持该计算机网络的节点通信管理模块和/或外部通信管理模块所使用的路由信息,如在他处更具体描述的一样。在块445后,或如果可替代地在块440中确定了在块405中所接收到的指示不包括网络地址信息,该程序继续到块455以确定在块405中所接收到的该指示是否包括指示的计算机网络的网络拓扑信息。如果这样,该程序继续到块457以为该指示的计算机网络存储该网络拓扑信息,并可选地以继续依照该网络拓扑信息来配置该指示的计算机网络。该网络拓扑信息的配置可包括配置将由支持该计算机网络的节点通信管理模块和/或外部通信管理模块所使用的路由信息,以便于模仿成为该指定拓扑信息一部分的虚拟网络装置的行为,如在他处更具体描述的一样。
[0083]在块457后,或如果可替代地在块455中确定了在块405中的指示不包括网络拓扑信息,该程序继续到块460处以确定在块405中的指示是否包括将计算节点加到指示的计算机网络的指示,例如如果已经将该指示的计算机网络配置为包括指定数量的计算节点但少于已选中并进行使用的指定数量。进一步地,在一些实施方案中,客户端可采用各种方式修改由该可配置网络服务提供的现有计算机网络即使在已经进行该计算机网络的使用后,包括修改该计算机网络的网络拓扑信息,如在他处更具体描述的一样。如果在块460中确定了该指示是增加一个或多个计算节点,该程序继续到块462处以从该可配置网络服务可获得的计算节点组中选择一个或多个计算节点来加入到该指示的计算机网络。如在他处更具体描述的一样,可以各种方式来选择这样的计算节点。在块464中,随后该选中的计算节点被加入到该计算机网络,如采用与先前讨论相类似的方式(如,通过将合适的网络地址信息与这些选中的计算节点相关,通过依照该计算机网络延伸的任意指定的网络拓扑信息和/或其他访问限制信息来设置这些选中的计算节点的访问权限,等)。
[0084]在块464后,或如果可替代地在块460中确定了在块405中的指示不用来增加计算节点,该程序继续到块470以确定在块405中的指示是否用来将该指示的计算机网络的已配置访问增加到指示的远程资源服务中。如果这样,该程序继续到块475处以配置该指示的计算机网络的访问机制来访问该指示的远程资源服务,如通过将该提示的计算机网络的一个或多个网络地址映射到该远程资源服务,通过配置将由支持该计算机网络的节点通信管理模块和/或外部通信管理模块所使用的路由信息,通过配置将由外部通信管理模块为使用该访问机制的通信所采用的行为,等。该程序随后继续到块478处以确定该远程资源服务是否具有该指示的计算机网络可访问的资源的特定命名空间和/或是否具有用于该资源的该指示的计算机网络的一个或多个附加访问控制指示符,如可以在块405中被指示或不然由该可配置网络服务自动确定,如果这样,该程序继续到块480以将该命名空间信息和/或该访问控制指示符信息与该远程资源服务的已配置访问机制相关。
[0085]在块480后,或如果可替代地在块478中确定了命名空间和/或附加访问控制指示符将不被使用或在块470中确定了在块405中的指示未提供到指示的远程资源服务的访问,该程序继续到块490处以可选地合适地实施一个或多个其他指示的操作。例如,在完成客户端的特定计算机网络的配置后,该程序可进一步采取一个或多个最终步骤以从远程资源处提供到该计算机网络的访问,如从创建的新计算机网络延伸所属于的远程计算机网络处。这样的访问的提供可包括,例如,提供信息给该客户端以使得该客户端来访问该计算机网络(如,到该计算机网络的VPN的公用可访问网络地址),配置该计算机网络以接收来自该远程客户端的通信,等。另外,该程序可进一步地不时实施其他操作(如,周期地,在当前情况超出了指定阈值或不然触发了指定情况,等),以便于Ping或不然检查一些或所有计算机网络的一些或所有计算节点的状态,监视远程客户端对一些或所有计算机网络的使用,监视一些或所有提供的计算机网络对内部可配置计算机服务资源的使用,建立并保留使用该可配置网络服务的客户端的账户,响应于来自客户端以获取与他们账户或他们的提供的计算机网络相关的状态信息,获取来自客户端为使用该可配置网络服务的支付,减少指示的计算机网络的计算节点的数量,修改成为指示的计算机网络一部分的特定计算节点(如,通过将一个或多个执行程序从第一地理位置处的计算节点移到在第二地理位置处的新计算节点),等。在块490后,该程序继续到块495以确定是否继续,如直到接收到明确的终止指示。如果确定要继续,该程序返回到块405,以及如果不继续则到块499并结束。
[0086]图5是节点通信管理程序500的示例性实施方案的流程图。该程序可由,例如,图2的CNS节点通信管理模块209a,209d,和250的执行来提供,以便于在至少一些实施方案中控制去往和来自提供的计算机网络的相关计算节点处的通信。该程序500,在至少一些实施方案中,可由每一个与该可配置网络服务所提供的一个或多个计算节点相关的该可配置网络服务的多个节点通信管理模块的每一个来执行,以及可以各种方式提供每一个该节点通信管理模块(如,作为物理主机计算系统的虚拟机监视器管理程序的一部分,在其上执行其他虚拟机计算节点,作为独立代理计算系统或其他计算系统,其控制去往和来自提供的计算机网络的一个或多个计算节点的通信,等)。特别是,在所述实施方案中,该节点通信管理模块实现了客户端的计算机网络的提供,通过使用覆盖在一个或多个下面物理基板网络上的虚拟网络,该下面物理基板网络由该可配置网络服务使用以将该可配置网络服务的各个计算节点互连,尽管在其他实施方案中,该提供的计算机网络可具有不同于虚拟网络和/或覆盖网络的形式。进一步地,如在他处更具体描述的一样,在所述实施方案中的节点通信管理模块为提供的计算机网络提供依照指定网络拓扑信息的功能,如通过实施模仿的虚拟或幻像的网络装置的功能或不然以与展示的这样的网络装置一致的方式来处理通信,尽管在其他实施方案中,提供的计算机网络的网络拓扑信息可以替换地以其他方式提供(如,通过使用对应于该网络拓扑的实际物理网络装置)。
[0087]该程序的所述实施方案开始于块505处,其中接收到节点通信或其他消息的指示。该程序继续到块510处以确定该指示的消息的类型并相应地继续。特别是,如果确定该指示的消息为与该程序对应的通信管理模块相关的一个或多个目标计算节点所需的即将到来的节点通信,该程序继续到块515以确定该即将到来的节点通信的一个或多个所需目标计算节点。例如,在一个或多个下面的基板网络上可将该即将到来的通信指向节点通信管理模块,以及通过该基板网络发送的通信的包头或其他部分可包括与成为虚拟提供的计算机网络一部分的目标计算节点的虚拟网络地址相关的信息,或可不然指示该目标计算节点。如下面参照块525所述的一样,通过该基板网络对该即将到来的通信的处理可进一步包括以合适于该目标计算节点所属的提供的计算机网络的方式修改该通信,如通过重新确定该通信的包头以使用该目标和源计算节点的虚拟网络地址。
[0088]在块515后,该程序继续到块520处以验证该即将到来的通信为该期望的目标计算机节点所允许。如在他处更具体描述的一样,可以各种方式将该即将到来的通信确定为允许或不允许的,以便于提供防火墙性能或其他访问控制使得仅仅允许来自特定其他计算节点处的通信(如,成为相同提供的计算机网络一部分的其他计算节点)和/或使得仅仅允许特定类型的通信(如,对于来自其他计算系统的至少一些通信,仅仅如果该通信响应于其他从提供的计算机网络的计算节点之一处发送到这些计算系统的通信)。如上所述,可至少部分地基于为该程序所属的节点通信管理模块所先前指定的配置信息来作出是否允许该通信的确定,如以指定给该目标计算节点和/或这些目标计算节点所属的提供的计算机网络的方式(如,基于该目标计算节点所属的提供的计算机网络的指定的网络拓扑信息和/或其他为该提供的计算机网络指定的访问限制信息)。另外,在覆盖虚拟网络用于该目标计算节点所属的提供的计算机网络的实施方案中,该即将到来的通信的验证可部分地基于与该覆盖网络和/或该基板网络相关的信息,其被该可配置网络包括在该即将到来的通信中,在该最初发送计算节点发送该通信后,以便于验证该据说的发送方实际上发送了该通信。
[0089]如果确定了允许该即将到来的通信,在块525中将该即将到来的通信提供给该通信的一个或多个目标节点,如通过在该节点通信管理模块和该目标计算节点之间的一个或多个连接或通信链路上推进该通信。在通过下面的基板网络发送该即将到来的通信的实施方案中,可首先修改该即将到来的通信使得其与提供的计算机网络一致,如通过与该提供的计算机网络一致的方式来重新确定该即将到来的通信的包头(如,为该目标和源计算节点使用对应于该提供的计算机网络的虚拟网络地址)。另外,当这里未示出时,如果在块520中该通信未被确定为允许的,该程序可采取各种其他行为,以便于放弃该离开的节点通信而没有任何到该发送计算节点的指示,将错误消息返回给该发送计算节点,尝试将该离开的通信修改为允许的,等。
[0090]如果可替代地在块510中确定了在块505内的指示的消息是来自该程序所属节点通信管理模块所管理的提供的计算机网络的相关计算节点处的离开的节点通信,该程序可替代地继续到块530处以首先验证是否允许该离开的通信,如以类似于参照块520先前所述的方式。如在他处更具体描述的一样,可在各个实施方案中以各种方式来作出是否允许该离开的通信的确定,包括基于该发送计算节点所属的提供的计算机网络的指定网络拓扑信息和/或为该提供的计算机网络所指定的其他访问限制信息。在所述实施方案中,该提供的计算机网络是虚拟覆盖网络,以及在计算节点之间的通信实际上通过一个或多个下面的基板网络来发送。相应地,在块530后,该程序继续到块535处以确定对应于该离开的通信的一个或多个目标计算节点或其他目标计算系统的一个或多个基板目标网络地址(如,对应于管理这些目标计算节点的通信的一个或多个远程节点通信管理模块,对应于管理外部目标计算系统的通信的外部通信管理模块,等),如在他处更具体描述的一样。该程序随后继续到块540处以将该离开的节点通信推进到该期望的目标,通过使用该确定的基板目标网络地址。以与参照块525所述类似的方式,通过该下面基板网络将该节点通信的推进可包括修改该离开的通信使得其与该基板网络一致,如通过以与该基板网络一致的方式重新确定该离开的通信的包头(如,使用该确定的基板目标网络地址和/或包括与该目标和源计算节点的虚拟网络地址相关的信息),如在他处更具体描述的一样。
[0091]如果可替代地在块510中确定了在块505中接收到了另一种类型的指示消息,该程序可替代地继续到块590处以实施合适的一个或多个其他指示操作。例如,其他类型的消息可包括来自图4的可配置网络服务管理程序400处的配置信息或其他管理消息(如,用来指定该程序500为该程序500的例子所对应的一个或多个提供的计算机网络而使用的路由信息或其他配置信息),来自其他节点通信管理程序(如,传播提供的计算机网络的配置信息),等。类似地,在一些情况种,该程序可在块590中采取将提供的计算机网络的配置信息发送到其他节点通信管理模块的行为,如在从另一个节点通信管理模块或从该可配置网络服务管理模块处接收到该信息后以点对点的方式分布这样的信息。其他行为可包括各种类型的管理或家务行为,在至少一些实施方案和情况中,以便于检查一些或所有计算机网络的一些或所有计算节点的状态,监视远程客户端对一些或所有计算机网络的使用,监视一些或所有提供的计算机网络对内部可配置网络服务资源的使用,等。在块520,540,或590之后,该程序继续到块595处以确定是否继续,如直到接收到明确的终止指示。如果确定要继续,该程序返回到块505处,如果不继续则到块599处并结束。
[0092]因此,该程序500管理了多种类型的去往和来自成为由该可配置网络服务所提供的计算机网络一部分的计算节点处的通信。当在该程序的本示例性实施方案中未分别描述时,应当清楚,该程序500可进一步实施至少一些通信的配置以允许一个或多个对先前已发送通信的响应,以便于启动通信的会话或其他系列。因此,例如,可配置提供的计算机网络的特定计算节点以不接收来自至少一些其他计算系统的通信(如,外部计算系统),但可允许来自这些其他计算系统的通信,如果他们响应于该特定计算节点最初发出的通信。相应地,在块520中的确定可进一步部分基于该即将到来的通信是否响应于参照块530-540所处理的先前离开的通信。
[0093]图6示出了外部通信管理程序600的示例性实施方案的流程图。该程序,例如,可由图2的外部通信管理模块270的执行所提供,以便于管理进入或离开数据中心或由该可配置网络服务所控制的其他计算节点组的通信(如,在控制的计算节点组和处于该控制的计算节点之外位置处的其他计算系统之间,如客户端的远程位置,远程资源服务,和在该互联网或其他公用网络上一般可访问到的其他位置)。如在他处更具体描述的一样,在所述实施方案中的一个或多个外部通信管理模块提供了依照提供的计算机网络的特定访问限制信息和依照访问特殊远程资源服务的特定配置信息,如通过以与防火墙和其他访问信息一致的方式来处理通信,该信息由客户端为他们提供的计算机网络所指定和/或由该可配置网络服务为其提供的计算机网络所指定。另外,在所述实施方案中,由该可配置网络服务所提供的计算机网络是使用了一个或多个下面的物理基板网络的虚拟覆盖网络,该下面的物理基板网络与该可配置网络服务所提供的计算节点互连,尽管在其他实施方案中,该提供的计算机网络可以其他方式实施(如,未使用虚拟网络和/或覆盖网络)。
[0094]该程序的所述实施方案开始于块605,其中接收了去往或来自提供的计算机网络的计算节点的通信或另一消息的指示。在块605之后,在块610中的程序确定了接收到的指示消息的类型,并相应地继续。特别是,如果该指定的消息将来到由该可配置网络服务所控制的计算节点和为在提供的计算机网络上的一个或多个目标计算节点所期望(如,通过来自该客户端的远程位置处的VPN连接,其代表该客户端提供了该计算机网络,来自通过该互联网的外部计算系统,等),该程序继续到块612处。在块615中,该程序首先确定该即将到来的通信是否通过客户端的VPN连接来发送,如果是这样,则继续到块620以可选地解密或不然解码该通信(如,如果该可配置网络服务的其他软件尚未处理经过该VPN连接所接收到的这样的通信的管理)。在其他实施方案中,块615和620可能未被实施,例如如果该可配置网络服务的其他软件和/或硬件管理了经过VPN连接所接收到的这样的通信,在块605中接收到他们之前。在块620后,或者如果可替换地在块615中确定了经过VPN连接未接收到该即将到来的通信,该程序继续到块625处。
[0095]以类似于图5的这些块530-540的方式实施块625-629。特别是,在块625中,该程序首先验证是否允许该即将到来的通信,如至少部分地基于该目标计算节点所属的提供的计算机网络的指定网络拓扑信息和/或基于该提供的计算机网络的其他访问限制信息。如果验证了可接收该通信,该程序继续到块627以确定对应于该目标计算节点的一个或多个目标基板网络地址。在块629中,该程序随后将该通信推进到在该基板网络上的已确定的目标网络地址,如用来最终由一个或多个节点通信管理模块以如参照图5的块515-525如上所述的方式来处理。如上所述,如果在625中验证了允许该通信,可替换地可采取多种其他方式,如放弃该通信。另外,在该基板网络上通信的推进可包括以与该基板网络一致的一个或多个方式修改该通信,如在他处更具体描述的一样。进一步地,当此处未示出时,在至少一些实施方案中,该程序可实施与即将到被控制计算机节点组处的通信一致的其他功能(如,从公用网络到专用网络),如提供网络地址转换(“NAT”)和/或端口地址转换(“PAT”)的功能,以提供常用防火墙或代理或该可配置网络服务的其他安全功能,等。
[0096]如果可替换地在块610中确定了该指定的消息不是即将到提供的计算机网络的计算节点处的通信,但是可替换地是在该内部基板网络上从提供的计算机网络的计算节点处所接收到的并将离开到一个或多个外部目标计算系统的通信(如,通过到客户端的远程计算机网络或客户端的其他远程计算机系统的VPN连接,通过该互联网到公用可访问系统,等),该程序继续到块630。以与图5的块515-525类似的方式来实施块630,635和645。特别是,在块630中,该程序确定了在该离开的通信的一个或多个远程位置处的一个或多个期望的目标计算系统,如基于通过该基板网络所接收的通信中的信息。在块635中,该程序随后验证了是否允许该通信,如以类似于上述的方式(如,通过考虑该发送计算节点所属提供的计算机网络的指定网络拓扑信息和/或访问限制信息)。在块635后,该程序继续到块640以确定该离开的通信是否经过VPN连接被发送到一个或多个远程客户端计算系统,如该客户端的远程计算机网络的一部分。如果这样,该程序继续到块642以可选地为该VPN连接加密或不然编码该通信(如,如果该可配置网络服务的其他软件和/或硬件未处理这样的经过该VPN连接发送的通信的管理),随后将通信经过该VPN连接推进到该确定的目标计算系统。在其他实施方案中,保留该VPN连接的单独的软件和/或硬件将可替换地实施这样的操作。如果可替换地在块640中确定了该离开的通信未经过VPN连接被发送,该程序可替换地继续到块645处以将该通信经过该互联网或其他公用网络推进到该确定的目标计算系统。如上所述,该程序可进一步修改经过该基板网络所接收的这样的离开的通信,在将他们向外推出之前,以便于以与该通信将经过的该计算机网络一致的方式来重新确定该离开的通信的包头。进一步地,当此处未示出时,在至少一些实施方案中,该程序可实施与从被控制计算节点组处离开的通信一致的其他功能(如,从专用网络到公用网络),如提供网络地址转换(“NAT”)和/或端口地址转换(“PAT”)的功能,以提供常用防火墙或代理或该可配置网络服务的其他安全功能,等。
[0097]如果可替换地在块610中确定了该指示的消息是来自于在提供的计算机网络上的计算节点以访问具有该提供的计算机网络的已配置访问机制的远程资源服务,该程序可替换地继续到块650以执行该远程资源服务访问程序,参照图7更具体地描述该程序的一个示例性实施方案。否则,该程序继续到690以合适地实施一个或多个其他指示的操作,如响应于其他接收的消息或接收的信息。这样的其他指示的操作可以具有各种形式,如参照图5的块590进行更具体讨论一样。例如,其他类型的消息可包括来自图4的可配置网络服务管理程序400的配置信息或其他管理消息(如,指定该程序600为一个或多个提供的计算机网络所使用的路由信息或其他配置信息),来自节点通信管理程序(如,传播提供的计算机网络的配置信息),等。类似地,在一些情况中,该程序可在块690中采用行为以将提供的计算机网络的配置信息发送到节点通信管理模块,以便于以点对点方式分布这样的信息,在接收到来自其他节点通信管理模块或来自该可配置网络服务管理模块的信息之后。其他行为在至少一些实施方案和情况中可类似地包括各种类型的管理或家务行为,以便于检查一些或所有计算机网络的一些或所有计算节点的状态,监视远程客户端对一些或所有计算机网络的使用,监视一些或所有提供的计算机网络对内部可配置网络服务资源的使用,等。
[0098]在块629,642,645,650或690之后,该程序继续到块695处以确定是否继续,如直到接收到明确的终止指示。如果确定要继续,该程序返回到块605处,如果不继续则到块699处并结束。
[0099]因此,该程序600管理了多种类型的去往和来自成为该可配置网络服务所提供计算机网络一部分的计算节点的通信。当在该程序的本示例性实施方案中未分别描述时,应当清楚,该程序600可进一步实施至少一些通信的配置以允许一个或多个对先前已发送通信的响应,以便于启动通信的会话或其他系列。因此,例如,可配置特别提供的计算机网络以阻止来自启动的通信的任意外部计算系统到该计算机网络的计算节点,但是可能允许这样的外部计算系统去响应最初由该计算机网络的计算节点发送到该外部计算系统处的通信。相应地,在块625中的确定可进一步部分基于该即将到来的通信是否响应于参照块630-645所处理的先前离开的通信。类似地,对于被启动以访问远程资源服务的通信,如参照块650进行更具体讨论一样,可将来自该远程资源服务的响应设置为被允许,如参照块615-629,或可替换地以另一种方式。
[0100]图7示出了远程资源服务访问程序700的示例性实施方案的流程图。该程序,例如,可由图2的外部通信管理模块270的执行所提供,如可由图6的块650的执行来启动。该程序管理由提供的计算机网络的计算节点所作出的到远程资源服务的通信,特别是到先前已配置该提供的计算机网络以提供指定访问所到的远程资源服务,如与图4的块475-480一起。如在他处更具体讨论的一样,在至少一些实施方案中,可配置提供的计算机网络以提供到特定远程资源服务的指定访问(如,通过在该提供的计算机网络上分配一个或多个网络地址以展现该远程资源服务),以及可配置基板物理网络以将相应通信推进到管理外部通信的外部通信管理模块,将该外部通信管理模块配置为合适地管理这些被推进的通信。
[0101]在所述实施方案中,该程序开始于块705,其中接收了从在提供的计算机网络上计算节点到远程资源服务的通信的指示,因为该远程资源服务为该计算机网络提供已配置的访问机制,如基于用于该通信的网络地址。该程序随后继续到块710,其中其恢复了先前为用于该通信的访问机制所指定的配置信息。在块715中,该程序随后确定了该通信所期望的目标远程资源服务,如基于该恢复的配置信息。
[0102]在块715后,该程序继续到块725处以确定是否允许该通信,如以类似于参照图5的块520和530和图6的块625和635所讨论的方式。进一步地,在至少一些情况和实施方案中可基于所使用访问机制的已恢复配置信息来进一步作出该决定,以便于仅仅允许某些已配置访问机制的某些类型的通信。如果该通信被确定为可访问的,该程序随后继续到块730以可选地以基于所使用访问机制的先前配置的方式来修改该通信。例如,如在他处更具体讨论的一样,可配置访问机制以修改远程资源服务所使用的特定命名空间所对应的通信,以包括与发送该通信的计算节点的提供的计算机网络相关的信息或与该远程资源服务为鉴定目的的计算节点位置相关的信息,等。
[0103]该程序随后继续到块735以可选地实施该通信的附加的与鉴定相关的行动,以指定给该确定的远程资源服务的方式。例如,如在他处更具体讨论的一样,至少一些远程资源服务可附属于该可配置网络服务或不然允许该可配置网络服务以授权方式来访问该远程资源服务,该授权方式未被提供给与该远程资源服务在公用网络上通信的未鉴定请求方。如果这样,该程序可实施与鉴定相关的行动,例如,使得该远程资源服务来确定从信任或不然已知的请求方正发送该通信,如通过修改该通信以包括与该可配置网络服务相对应的标识(如,基于在该可配置网络服务和该远程资源服务之间的在前交互,如通过包括基于作为该已修改通信一部分的识别的数字签名)。
[0104]在块735后,该程序随后继续到块745以可选地加密该通信或不然访问到该确定的远程资源服务的安全连接(如,与特定附属远程资源服务的VPN连接,专门的专用租用线或到该远程资源服务的其他通信链接,等),并将该通信推进到该确定的远程资源服务。正被推进的通信,例如可以在该互联网或一个或多个其他公用网络上发送,或可以可替换地在一些实施方案中经过专用通信链路或其他安全连接来发送。在块745后,该程序继续到块799处并结束。
[0105]图8示出了 VPN创建实现程序800的示例性实施方案的流程图。该程序,例如可以由该可配置网络服务管理模块的执行来提供,如可以基于图4的块425的执行来启动,由该可配置网络服务的实施方案所提供的远程访问建立API的客户端调用产生。
[0106]在所述实施方案中,该程序开始于块805,其中接收到建立从该客户端的远程位置处(如,该客户端的远程专用计算机网络)到该客户端的提供的计算机网络(如,由该可配置网络服务为该客户端的远程专用计算机网络所提供的网络延伸)的VPN连接的客户端请求的指示。在至少一些实施方案中,建立该VPN连接的该客户端的请求是履行将被提供给该客户端远程位置的一个或多个合适网络装置和相应软件和/或配置信息的订单的请求的一部分,以便于使该可配置网络服务从在该远程客户端位置的一个或多个计算系统到该客户端所提供的计算机网络建立起该VPN连接。在至少一些这样的实施方案中,可通过该可配置网络服务实施该订单的履行而没有该客户端的任意进一步行为,在该远程访问建立API的调用或该客户端的请求的其他启动之后,而在其他实施方案中,与该客户端的一些附加互动可被实施为该订单履行的一部分(如,展现给该客户端的选项,获取来自该客户端的附加信息,获取来自该客户端的支付信息,等)。
[0107]在块815中,该程序随后获取与该客户端相关的各种信息以用于履行该请求,如可在块805中所接收到的请求中供给,先前从该客户端处接收和从具有该可配置网络服务的客户端的账户处恢复,和/或动态地从该客户端和/或一个或多个外部源处获得。该获得的信息可具有多种形式,如可能将网络装置和其他物品物理地交付给的客户端的地理位置相关的信息,可能将电子信息电性地交付给的电子通信地址,该客户端凭之将交纳与在块805中所接收到请求相关的费用的报酬信息,等。另外,可获得多种信息以有助于配置在该远程客户端位置和该客户端的提供的计算机网络之间的VPN连接,如从该远程客户端位置公开可获得的网络地址(或其他相应连接信息),以启动该VPN连接,用于识别将该VPN连接建立给的提供的计算机网络的唯一标识或其他信息,等。
[0108]在块815后,该程序继续到块825以确定用于该客户端一个或多个远程计算系统的一个或多个合适的网络装置以建立到该提供的计算机网络的VPN连接。如在他处更具体讨论的一样,,可以各种方式确定该合适的网络装置,如基于指定给该客户端的提供的计算机网络,给该客户端的远程计算系统,和/或给该可配置网络服务的信息(如,基于用作该可配置网络服务的该基板网络或该可配置网络服务的其他基础结构一部分的网络装置)。进一步地,可在各个实施方案中以各种方式作出该合适网络装置地确定,如通过该可配置网络服务自动地和/或至少部分地基于来自该客户端的信息(如,基于作为在块805中所接收请求的一部分或不然由该客户端指定的客户端选择,以便于在多个展现给该客户端的替换方案之间选择)。
[0109]在块825后,该程序继续到块835以生成该确定的网络装置的配置信息以用于准备将该网络装置连接该客户端的提供的计算机网络,尽管在其他实施方案中,该程序可指令第三方实体生成该配置信息(在块845中将接触的同一零售商)。在至少一些实施方案中,该确定的网络装置的配置信息将使得该已配置的网络装置来启动与该可配置网络服务的连接以完成该已配置网络装置的配置(如,通过从该可配置网络服务处获取附加的信息以采用指定给特别提供的计算机网络的方式来配置该网络装置)。另外,在至少一些实施方案中,该确定的网络装置的配置信息将使得该已配置的网络装置来启动与该客户端的提供的计算机网络的连接,以便于建立到该提供的计算机网络的VPN连接。在一些实施方案中该生成的配置信息对于确定的网络装置的类型和/或对于该确定的网络装置将把该VPN连接建立到的提供的计算机网络是明确的,以及该配置信息的生成可包括恢复先前准备的配置信息和/或动态地创建新的配置信息(如,通过修改先前准备的配置信息,以对于该确定的网络装置和/或该提供的计算机网络是明确的方式,例如如果该先前准备的配置信息用于任意网络装置和/或用于任意提供的计算机网络)。该生成的配置信息可类似地具有多种形式,如已配置的将在硬件装置上执行的软件,在该远程位置处由人类操作者所使用的文本指令,等。
[0110]在块845中,该程序随后启动给予零售商的订单以将该确定的网络装置供给该远程客户端位置以与该客户端的一个或多个远程计算系统一起使用,以及在所述实施方案中用来进一步启动将该生成的配置信息供给该客户端以与该网络装置一起使用。在这样的实施方案中,可以各种方式将该生成的配置信息提供给该零售商,如通过发送作为该订单一部分的配置信息,通过先前指令在块835中的零售商以生成该配置信息,等。如在他处更具体讨论的一样,可以各种方式将该生成的配置信息供给该客户端,包括下列中的一个或多个:通过将该生成的配置信息存储在物理装置可读存储介质上(如,⑶,DVD, USB存储键,等),其被物理地交付给该客户端;通过使用该生成的配置信息来配置该网络装置,在他们被交付给该客户端之前(如,通过在该零售商所使用的履行中心处将该生成的配置信息载入该网络装置);通过将该生成的配置信息电性地传送给该客户端;等。在其他实施方案中,可将该网络装置和/或该配置信息以各种方式提供给该客户端,如通过将具有该网络装置和生成的配置之一或两者直接通过该可配置网络服务而不是零售商来供给,通过使用第一个零售商以供给该网络装置和使用不同的第二零售商以供给该生成的配置信息,通过使用非零售商的一个或多个第三方,等。在块845后,该程序继续到块899处并返回。
[0111]同样应当理解,在一些实施方案中,可以替代方式提供上述程序所提供的功能,如被分成多个程序或统一成较少的程序。类似地,在一些实施方案中所述的程序可提供比所述或多或少的功能,如当其他所述程序可替换地分别缺少或包括这样的功能时,或当改变了所提供的功能数量时。另外,当可将各种操作描述为以特殊方式(如,串行或并行)和/或以特殊顺序实施时,本领域技术人员应理解在其他实施方案中可以其他顺序和其他方式来实施该操作。本领域技术人员同样应理解以上所讨论的数据结构可以不同方式构成,如通过将单个数据结构分成多个数据结构或通过将多个数据结构统一成单个数据结构。类似地,在一些实施方案中,所述的数据结构可存储比所述或多或少的信息,如当其他所述数据结构可替换地分别缺少或包括这样的信息时,或当改变了所存储信息的数量或种类时。
[0112]条款1.可配置网络服务的计算系统提供到专用计算机网络的访问的方法,该方法包括:
[0113]为该可配置网络服务提供编程接口以使得远程用户创建和配置到该远程用户的远程专用计算机网络的网络延伸,该可配置网络服务包括多个用于提供到该远程用户的创建的网络延伸的计算系统;和
[0114]在该可配置网络服务的计算系统的控制下,用于多个远程用户中的每一个,
[0115]经过该提供的编程接口接收该远程用户可编程地提供的配置信息以创建和配置到该用户的远程专用计算机网络的本地专用网络延伸,该专用网络延伸由该可配置网络服务提供并包括该多个计算系统的倍数的子集,该接收到的配置信息包括该专用网络延伸的指定用户的网络拓扑信息和将被分配给该多个计算系统的该专用计算机网络的多个网络地址的用户指定子集,该接收到的配置信息进一步包括该用户的专用计算机网络之外且从该专用网络延伸的多个计算系统处可访问的远程资源服务的指示;
[0116]自动配置该用户的专用网络延伸以提供在该用户的专用计算机网络和该用户的专用网络延伸的多个计算系统之间的专用访问,该配置包括了在该专用网络延伸和该用户的专用计算机网络之间建立虚拟专用网络连接并配置了依照该指定的网络拓扑信息将路由的专用网络延伸内的通信;
[0117]自动生成该专用网络延伸的唯一标识以展现在该指示的远程资源服务内的新命名空间,该远程资源服务将与计算相关的资源提供给多个用户,该展现的命名空间包括由仅从该专用网络延伸处可访问的远程资源服务所提供的一个或多个与计算相关的资源;
[0118]自动配置该用户的专用网络延伸以使能从该专用网络延伸的多个计算系统到该展现命名空间内远程资源服务所提供的一个或多个与计算相关的资源的访问,该配置包括分配网络地址的用户指定子集之一以展现该远程资源服务并将该唯一标识与该分配的网络地址相关,使得修改经过该分配网络地址发送给该远程资源服务的通信以将该远程资源服务所使用的该唯一标识包括在该展现的命名空间的识别中;和
[0119]提供在该专用网络延伸的多个计算系统和该用户的专用计算机网络之间的专用访问。
[0120]条款2.如条款I所述的方法,其中对于该多个用户之一,在该接收到的配置信息中的网络拓扑信息进一步指定了一个或多个网络装置以将该一个用户的专用网络延伸的多个计算系统划分为具有不同互相通信特性的不同组,该接收到的配置信息进一步包括指示:未允许该一个用户的专用网络延伸的多个计算系统去访问具有非该用户的专用计算机网络的多个网络地址一部分的网络地址的计算系统,自动配置该一个用户的专用网络延伸以将该一个用户的专用计算机网络的专用访问提供给该一个用户的专用网络延伸包括创建虚拟装置以模仿该指定的一个或多个网络装置并包括配置一个或多个实际网络地址以阻止在该一个用户的专用计算机网络和该一个用户的专用计算机网络之外的任意计算系统之间的通信。
[0121]条款3.如条款2所述的方法,其中该可配置网络服务是经过公用网络为该远程用户可访问且提供了使用云计算技术的网络延伸的基于付费业务,其中该多个远程用户是该可配置网络服务的顾客,其为该可配置网络服务提供给该用户的创建的网络延伸将报酬提供给可配置网络服务。
[0122]条款4.提供到专用计算机网络的访问的计算机实施方法,该方法包括:
[0123]在可配置网络服务的计算系统的控制下,该可配置网络服务提供多个客户端所使用的编程接口以配置该多个客户端所使用的专用计算机网络,
[0124]经过该编程接口接收第一客户端可编程地提供的第一信息以配置该第一客户端所使用的第一专用计算机网络,该第一专用计算机网络包括该可配置网络服务所提供的多个计算节点的倍数的组,配置该多个计算节点的每一个以与在用于该第一专用计算机网络的该第一信息内所指定的多个网络地址的至少一个相关;
[0125]获取第二信息以配置从该第一专用计算机网络到在网络可访问远程资源服务内命名空间关联的与计算相关的资源的子集的访问,该第二信息包括在该远程资源服务内命名空间关联的标识;
[0126]自动配置该第一专用计算机网络以使能从该多个计算节点到该远程资源服务所提供与计算相关的资源的子集的访问,该配置包括将该标识与展现该远程资源服务的多个网络地址的被指示的一个相关,使得修改经过该指示的网络地址被发送到该远程资源服务以访问该与计算相关的资源的子集的通信以将该远程资源所使用的标识的指示包括于该命名空间的识别中;和
[0127]启动来自该第一客户端的一个或多个远程计算系统处的到第一专用计算机网络的访问的可用性。
[0128]条款5.如条款4所述的方法,其中将该第一专用计算机网络配置为包括多个计算系统的第一客户端的远程专用计算机网络的延伸,其中该指定的多个网络地址是用于该远程专用计算机网络的多个专用网络地址的子集,其中自动配置该第一专用计算机网络以进一步地使能在该第一客户端的远程专用计算机网络的多个计算系统和该第一专用计算机网络的多个计算节点之间的专用访问。
[0129]条款6.如条款5所述的方法,其中启动到来自该第一客户端的一个或多个远程计算系统处的第一专用计算机网络的访问的可用性包括建立在该远程专用计算机网络和该第一专用计算机网络之间的安全连接以提供该使能的专用访问。
[0130]条款7.如条款5所述的方法,其中该可配置网络服务提供该第一专用计算机网络作为在该可配置网络服务的一个或多个物理基板网络上所覆盖的虚拟网络,其将该可配置网络服务所提供的多个计算节点互连,其中该指定的多个网络地址是虚拟网络地址。
[0131]条款8.如条款4所述的方法,其中该第一信息进一步包括该第一客户端所指定的附加信息以用于配置该第一专用计算机网络来控制在该第一专用计算机网络的多个计算节点之间的通信,其中该方法进一步包括自动配置该第一专用计算机网络以依照该指定的附加信息来允许和阻挡在该多个计算节点之间的通信。
[0132]条款9.如条款8所述的方法,其中该指定的附加信息包括网络拓扑信息,指示了成为该第一专用计算机网络一部分的一个或多个网络装置和共享相同互相通信特性的多个计算节点的一个或多个子组,其中该第一专用计算机网络的自动配置包括,如果该网络拓扑信息指示该一个或多个网络装置,配置该可配置网络服务的一个或多个模块以模仿该一个或多个网络装置的存在,其中该第一专用计算机网络的自动配置包括,如果该网络拓扑信息指示该一个或多个子组,配置该可配置网络服务的一个或多个模块以模仿该一个或多个子组的存在。
[0133]条款10.如条款4所述的方法,其中该第一信息进一步包括该第一客户端所指定的附加信息以用于配置该第一专用计算机网络,该附加信息包括该第一专用计算机网络的多个计算节点的一些,该多个计算节点的至少一些所在的一个或多个地理位置,和用来控制在该第一专用计算机网络的多个计算节点和该第一专用计算机网络之外的其他计算系统之间的通信的一个或多个网络访问限制的一个或多个,其中该方法进一步包括基于该指定的第一信息为该第一专用计算机网络自动选择该多个计算节点,并依照该指定的附加信息自动配置该第一专用计算机网络。
[0134]条款11.如条款4所述的方法,其中至少部分地基于经过该编程接口可编程地提供该第二信息的该第一客户端来获得该第二信息,其中该提供的第二信息包括该命名空间的相关标识,其中该与计算相关的资源的子集的至少一些存在于该命名空间内的远程资源服务,在提供该第二信息之前,其中该方法进一步包括获取从该多个计算节点的一个或多个处发送到该指示的网络地址以访问来自该远程资源服务的现有至少一些与计算相关的资源中的一个或多个的通信,并将该获得的一个或多个通信推进到该远程资源,在修改该获得的一个或多个通信以包括该标识的指示后。
[0135]条款12.如条款4所述的方法,其中获取被包括在该第二信息中的标识包括自动与该远程资源服务互动以创建用于该第一专用计算机网络的命名空间的可配置网络服务,该命名空间的创建包括确定该命名空间的标识,其中该方法进一步包括获取从该多个计算节点的一个或多个处发送到该指示的网络地址的一个或多个通信以创建来自该远程资源服务的一个或多个新的与计算相关的资源,并将该获得的一个或多个通信推进到该远程资源,在修改该获得的一个或多个通信以包括该标识的指示后。
[0136]条款13.如条款4所述的方法,其中经过一个或多个公用网络可访问该远程资源服务,其中配置该第一专用计算机网络以使能从该多个计算节点到该与计算相关的资源的子集的访问包括配置该可配置网络服务的一个或多个模块以将发送到该指示的网络地址处的通信在该一个或多个公用网络上推进到该远程资源服务。
[0137]条款14.如条款4所述的方法,进一步包括获取第三信息以配置从该第一专用计算机网络到该远程资源服务内不同第二命名空间关联的与计算相关的资源的不同第二子集的访问,该第三信息包括在该远程资源服务内的第二命名空间关联的不同第二标识,并自动地配置该第一专用计算机网络以使能从该多个计算节点到该与计算相关的资源的第二子集处的访问,通过将该第二标识与该多个网络地址的第二地址相关,使得修改经过该第二网络地址发送到该远程资源服务以访问该与计算相关的资源的第二子集的通信以将该远程资源服务所用的该第二标识的指示包括于该第二命名空间的识别中。
[0138]条款15.如条款4所述的方法,其中在该远程资源服务内命名空间关联的与计算相关的资源包括数据存储服务和程序执行服务和异步消息通过服务中的至少一个的资源,其中该方法进一步包括,在该远程资源服务的控制下:
[0139]接收从该第一专用计算机网络的多个计算节点处经过该指示的网络地址发送以访问该与计算相关的资源的子集的至少一个的通信,该接收到的通信包括该标识的指示;和
[0140]从与该指示的标识关联的命名空间处提供到该至少一些与计算相关的资源的访问。
[0141]条款16.如条款4所述的方法,其中该多个计算节点每一个是托管在该可配置网络服务的多个物理计算系统之一上的虚拟机,其中该第一专用计算机网络的配置包括配置在该物理计算系统的一个或多个上执行以管理该托管的虚拟机的通信的一个或多个虚拟机通信管理模块。
[0142]条款17.如条款4所述的方法,其中由该多个客户端所配置的专用计算机网络包括一个或多个已配置的专用计算机网络而不是该第一专用计算机网络,为了一个或多个客户端而不是该第一客户端,该第一客户端具有由该一个或多个其他客户端所指定的一个或多个网络地址,该其他客户端与用于该第一专用计算机网络而指定的多个网络地址中至少一个相同,其中该可配置网络服务进一步管理这些相同的网络地址使得,对于这些相同网络地址中的每一个,该其他专用计算机网络中的每一个具有对应于该网络节点的计算节点,其不同于该第一专用计算机网络的网络地址所对应的计算节点。
[0143]条款18.如条款4所述的方法,其中由该第一客户端配置该第一专用计算机网络包括允许该第一客户端从该第一信息中指定的多个网络地址选择任意网络地址以用于该第一专用计算机网络。
[0144]条款19.如条款4所述的方法,其中基于具有在该第一客户端的计算装置上显示给该第一客户端的图形用户界面的该第一客户端的一种或多种互动来接收该第一客户端经过该编程接口可编程地提供的第一信息。
[0145]条款20.计算机可读介质,其内容使可配置网络服务的计算系统能提供到专用计算机网络的访问,通过实施方法,该方法包括:
[0146]为可配置网络服务的多个远程顾客的每一个,
[0147]接收一个或多个请求,该请求由该远程顾客可编程地作出用来为该顾客的远程专用网络启动网络延伸的顾客的创建并用来为该顾客的创建的网络延伸指定配置信息,该配置信息包括该顾客的创建的网络延伸的网络拓扑信息;
[0148]自动选择多个计算节点以用作该顾客的创建的网络延伸的一部分,该多个计算节点成为由该可配置网络服务所提供的多个计算节点的子集且至少部分地基于该顾客所指定的配置信息而被选择;
[0149]自动配置该顾客的创建的网络延伸以使用该多个计算节点以便于提供到该顾客的创建的网络延伸的该顾客的专用访问,该专用访问将在该多个计算节点和该顾客的远程专用网络的一个或多个计算系统之间的互相通信使能,依照该顾客所指定的网络拓扑信息经过该创建的网络延伸来路由该互相通信;和
[0150]启动到该顾客的创建的网络延伸的该顾客的专用访问的提供。
[0151]条款21.如条款20所述的计算机可读介质,其中该可配置网络服务提供了由该多个远程顾客使用以供给请求的编程接口,其中经过该编程接口提供从该多个顾客中的每一个所接收到的一个或多个请求,其中,对于该一个或多个远程顾客中的每一个,该顾客所指定的网络拓扑信息包括用于该顾客的创建的网络延伸的多个网络地址的指示,配置为该顾客创建的网络延伸以使用该多个计算节点包括将该计算节点中的每一个与该指示的网络地址中的一个关联,该资源服务的访问机制包括被分配以展现该资源服务的该创建的网络延伸的该多个网络地址中的一个。
[0152]条款22.如条款21所述的计算机可读介质,其中该多个顾客中的至少一些的每一个指定了第一网络地址,其中该至少一些顾客的创建的网络延伸的自动配置包括为该至少一些顾客的创建的网络延伸不同地管理该第一网络地址,使得这些创建的网络延伸的每一个具有不同的成为分配该第一网络地址的该创建的网络延伸的一部分的计算节点。
[0153]条款23.如条款20所述的计算机可读介质,其中,对于该多个远程顾客中至少一个的每一个,基于该顾客与被显示给该顾客的图形用户界面的一种或多种互动来接收该一个或多个可编程地作出的请求,对于该多个远程顾客中至少一个其他顾客的每一个,从执行在该顾客的计算装置上的软件处接收该一个或多个可编程地作出的请求,该顾客可编程地调用了该可配置网络服务的编程接口。
[0154]条款24.如条款20所述的计算机可读介质,其中该方法进一步包括,对于该多个远程顾客中一个或多个的每一个:
[0155]获取信息以配置从该顾客的创建的网络延伸到该创建的网络延伸和该顾客的专用网络之外的资源服务所提供的一个或多个与计算相关的资源的访问,该信息包括与该一个或多个计算相关的资源关联的资源服务内命名空间的识别;和
[0156]自动配置该顾客的创建的网络延伸以使能从该创建的网络延伸的多个计算节点到该资源服务所提供的一个或多个与计算相关的资源的访问,该配置包括将该命名空间识别与该资源服务的访问机制关联,以经过到来自该创建的网络延伸处的资源服务的访问机制被发送以访问该一个或多个与计算相关的资源的通信自动修改为包括该资源服务所使用的该命名空间识别的指示的方式。
[0157]条款25.如条款20所述的计算机可读介质,其中该计算机可读介质是存储该内容的计算系统的存储器和包括包含该内容的生成的存储数据信号的数据传输介质中的至少一个,其中该内容为在被执行时导致该计算系统实施该方法的指令。
[0158]条款26.配置用来提供到专用计算机网络的访问的计算系统,包括:
[0159]一个或多个存储器;和
[0160]可配置网络服务管理模块,配置用来自动提供为远程客户端使用而创建的计算机网络,为多个远程客户端的每一个,通过:
[0161]接收该客户端可编程地提供的配置信息用来配置为该客户端使用而创建的计算机网络,该配置信息包括多个网络地址的指示以与被提供作为该客户端的创建的计算机网络一部分的多个计算节点相关;
[0162]依照该接收到的配置信息配置被提供作为该客户端的创建的计算机网络一部分的多个计算节点,该配置包括将该多个网络地址的至少一个与该多个计算节点中的每一个关联,从可为客户端的计算机网络所使用的多个计算节点处选择该多个计算节点;
[0163]获取附加信息以配置从为该客户端创建的计算机网络到网络可访问资源服务所提供的一个或多个资源的访问,该附加信息包括为具有该一个或多个资源的资源服务所关联的标识;
[0164]自动配置该为客户端创建的计算机网络以使能以与该标识关联的方式从该多个计算节点到由该资源服务所提供的一个或多个资源的访问,使得从该创建的专用网络发送到该资源服务以访问该一个或多个资源的通信包括为该资源服务所使用的标识的指示;和
[0165]将到该创建的计算机网络的多个计算节点的访问提供给该客户端。
[0166]条款27.如条款26所述的计算系统,其中该可配置网络服务管理模块是可配置网络服务的一部分并提供了该多个远程客户端所使用的编程接口以配置为该客户端所使用而创建的计算机网络,其中该创建的计算机网络可获得使用的该多个计算节点通过该可配置网络服务来提供,其中,对于该多个客户端中至少一些的每一个,该客户端可编程地提供的配置信息经过该编程接口被提供并进一步包括被配置以为该客户端所使用的创建的计算机网络的网络拓扑信息,为该客户端所使用而创建和配置的计算机网络是该客户端的远程专用计算机网络的专用计算机网络延伸并进一步依照该提供的网络拓扑信息而被配置,该创建的计算机网络的自动配置进一步用来使能在该远程专用计算机网络和该专用计算机网络延伸的多个计算节点之间的专用访问。
[0167]条款28.如条款26所述的计算系统,其中,对于该多个客户端中至少一些的每一个,提供了为该客户端的创建的计算机网络所配置的访问所到的一个或多个资源的网络可访问资源服务是非该创建的计算机网络一部分的远程资源服务,被包括在该获得的附加信息中的标识是在该远程资源服务内与该客户端的命名空间关联的唯一标识,在该客户端的关联的命名空间内存入该客户端的创建的计算机网络将访问的一个或多个资源,配置该客户端的创建的计算机网络以采用发送给该远程资源服务的通信来包括该标识的指示包括了为该创建的计算机网络分配该多个网络地址中的一个以再现该远程资源服务并将该标识与该分配的网络地址关联,采用了修改经过该分配的网络地址发送给该远程资源服务的通信来将该远程资源服务所使用的标识包括于该关联命名空间的识别中的方式。
[0168]条款29.如条款26所述的计算系统,其中该可配置网络服务管理模块包括由该计算系统执行的软件指令。
[0169]条款30.如条款26所述的计算系统,其中该可配置网络服务管理模块由自动提供为远程客户端所使用而创建的计算机网络的设备组成,对于该多个远程客户端中的每一个,通过:
[0170]接收该客户端可编程地提供的配置信息用来配置为该客户端使用而创建的计算机网络,该配置信息包括多个网络地址的指示以与被提供作为该客户端的创建的计算机网络一部分的多个计算节点相关;
[0171]依照该接收到的配置信息配置被提供作为该客户端的创建的计算机网络一部分的多个计算节点,该配置包括将该多个网络地址的至少一个与该多个计算节点中的每一个关联,从可为客户端的计算机网络所使用的多个计算节点处选择该多个计算节点;
[0172]获取附加信息以配置从为该客户端创建的计算机网络到网络可访问资源服务所提供的一个或多个资源的访问,该附加信息包括为具有该一个或多个资源的资源服务所关联的标识;
[0173]自动配置该为客户端创建的计算机网络以使能以与该标识关联的方式从该多个计算节点到由该资源服务所提供的一个或多个资源的访问,使得从该创建的专用网络发送到该资源服务以访问该一个或多个资源的通信包括为该资源服务所使用的标识的指示;和
[0174]将到该创建的计算机网络的多个计算节点的访问提供给该客户端。
[0175]由上述内容应当理解,尽管此处为了说明目的已经描述了特定实施例,可作出各种修改而不脱离本发明的精神和范围。相应地,本发明不是限制性的,除了由附属权利要求和此处引用的要素所限制之外。另外,当在下面以某些权利要求形式展现本发明的某些方面时,本发明人预料到了以任意可获得权利要求形式的本发明的各个方面。例如,当在计算机可读介质中实现时当前可能仅仅引用了本发明的一些方面,可同样地这样实现其他方面。
【权利要求】
1.一种网络服务的计算系统,包括: 一个或更多个处理器;以及 存储器,所述存储区包括指令,所述指令在由所述一个或更多个处理器中的至少一个处理器执行时,使所述计算系统: 提供用于配置由所述网络服务提供给客户端的虚拟网络的接口; 经由所提供的接口从所述网络服务的客户端接收针对要由所述网络服务提供的虚拟网络的配置信息,所接收的配置信息指定从所述虚拟网络到所述客户端的远程计算机网络的虚拟私有网络VPN连接的信息; 为所述客户端创建所述虚拟网络,所述创建包括向一个或更多个计算节点指派由所述网络服务提供的用于所述虚拟网络中的一个或更多个虚拟网络地址,并建立从所述虚拟网络到所述远程计算机网络的所述VPN连接以供所述虚拟网络使用;以及 向所述客户端提供对所述虚拟网络的访问。
2.根据权利要求1所述的计算系统,其中,所接收的配置信息还指定用于所述虚拟网络的网络拓扑,并且所述指令还使所述计算系统将所指定的网络拓扑实现为为所述客户端提供所述虚拟网络的一部分。
3.根据权利要求2所述的计算系统,其中,所指定的网络拓扑包括一个或更多个虚拟路由器设备,并且提供所述虚拟网络包括模拟所述一个或更多个虚拟路由器设备的功能。
4.根据权利要求2所述的计算系统,其中,所创建的虚拟网络包括多个计算节点,所指定的网络拓扑指示多个子组,每个子组包括所述多个计算节点的不同子集,并且提供所述虚拟网络包括模拟与所述多个子组有关的功能。
5.根据权利要求1所述的计算系统,其中,所述虚拟网络覆盖于所述网络服务的一个或更多个物理底层网络上,所述网络服务的一个或更多个物理底层网络将作为一个或更多个虚拟机的主机的所述网络服务的计算机进行互联,并且所述一个或更多个计算节点包括所述一个或更多个虚拟机。
6.根据权利要求1所述的计算系统,其中,所接收的配置信息包括网络访问限制信息,所述网络访问限制信息用于防止从所述虚拟网络到不是所述虚拟网络的一部分或不能经由所述VPN连接访问的外部计算系统的访问,并且所述指令还使所述计算系统防止所述从所述虚拟网络到所述外部计算系统的访问作为向所述客户端提供所述虚拟网络的一部分。
7.根据权利要求1所述的计算系统,其中,所述虚拟网络包括由多个计算机系统作为主机的多个虚拟机,所述多个计算机系统位于两个或更多个不同地理位置,所接收的配置信息包括所述地理位置中至少一个的指示,并且所述虚拟网络的创建包括:至少部分基于位于所指示的至少一个地理位置的所选择的一个或更多个虚拟机,选择所述多个虚拟机中的一个或更多个以包括在所述虚拟网络中。
8.根据权利要求1所述的计算系统,其中,在第一时间经由所提供的接口接收所述配置信息,并且所述指令还使所述计算系统: 在所述虚拟网络创建之后的稍后的第二时间,经由所提供的接口接收针对所述虚拟网络的附加配置信息,所述第二配置信息指定要对所述虚拟网络作出的一个或更多个修改;以及 响应于接收到所述附加配置信息,动态地修改所述虚拟网络,同时所述虚拟网络继续根据指定的一个或更多个修改进行操作。
9.根据权利要求8所述的计算系统,其中,所述指定的一个或更多个修改包括将附加计算节点添加到所述虚拟网络中。
10.根据权利要求8所述的计算系统,其中,在所述第一时间接收到的所述配置信息还指定用于所述虚拟网络的网络拓扑,并且所述指定的一个或更多个修改包括对所指定的网络拓扑的一个或更多个改变。
11.一种由计算机实现的方法,包括: 网络服务的一个或更多个计算系统提供用于对由所述网络服务提供的虚拟网络进行配置的接口; 所述一个或更多个计算系统经由所提供的接口从所述网络服务的客户端接收针对要由所述网络服务提供的虚拟网络的配置信息,所接收的配置信息指定用于所述虚拟网络的虚拟网络地址; 所述一个或更多个计算系统为所述客户端创建所述虚拟网络,所述创建包括向由所述网络服务提供的一个或更多个计算节点指派用于所述虚拟网络中的所指定的虚拟网络地址中的一个或更多个虚拟网络地址;以及 所述一个或更多个计算系统向所述客户端提供对所述虚拟网络的访问。
12.根据权利要求11所述的由计算机实现的方法,其中,所接收的配置信息还指定针对从所述虚拟网络到所述客户端的远程计算机网络的虚拟私有网络VPN连接的信息,并且所述方法还包括建立所述VPN连接以供所述虚拟网络使用。
13.根据权利要求12所述的由计算机实现的方法,其中,所指定的虚拟网络地址是在所述客户端的所述远程计算机网络中使用的虚拟网络地址范围的一部分。
14.根据权利要求12所述的由计算机实现的方法,其中,所接收的配置信息包括网络访问限制信息,所述网络访问限制信息用于防止从所述虚拟网络到不是所述虚拟网络的一部分或不能经由所述VPN连接访问的外部计算系统的访问,并且所述方法还包括根据所述网络访问限制信息对所述虚拟网络进行配置。
15.根据权利要求12所述的由计算机实现的方法,其中,所接收的配置信息还指定使用所述虚拟网络作为所述远程计算机网络的网络扩展,并且所述方法还包括经由所建立的VPN连接转发所述虚拟网络和所述远程计算机网络之间的一个或更多个通信。
16.根据权利要求11所述的由计算机实现的方法,其中,所述虚拟网络地址是使用无类域内路由选择CIDR记号来指定的。
17.根据权利要求11所述的由计算机实现的方法,还包括: 经由所提供的接口接收用于将所述虚拟网络连接到公共网络的请求;以及 配置至少一个虚拟边缘路由器,以将所述虚拟网络连接到所述公共网络。
18.根据权利要求11所述的由计算机实现的方法,其中,所接收的配置信息还包括用于所述虚拟网络的所指定的网络拓扑,并且所述方法还包括配置所述虚拟网络以具有所述所指定的网络拓扑。
19.根据权利要求18所述的由计算机实现的方法,其中,所创建的虚拟计算机网络包括多个计算节点,并且配置所述虚拟网络以具有所述所指定的网络拓扑包括:配置所述虚拟网络以具有多个虚拟网络子网,所述多个虚拟网络子网中的每一个包括所述多个计算节点的不同子集。
20.根据权利要求19所述的由计算机实现的方法,其中,所指定的网络拓扑信息还指示位于所述多个虚拟网络子网之间的一个或更多个虚拟路由器设备,并且所述方法还包括:模拟所述一个或更多个虚拟路由器设备的功能,用于在所述多个虚拟网络子网之间发送的通信。
21.根据权利要求18所述的由计算机实现的方法,还包括: 经由所提供的接口从第二客户端接收用于由所述网络服务提供的第二虚拟网络的附加配置信息,所述附加配置信息指定用于所述第二虚拟网络的第二网络拓扑;以及 为所述第二客户端提供所述第二虚拟网络,提供所述第二虚拟网络包括根据所述附加配置信息配置所述网络服务的一个或更多个附加计算节点。
22.根据权利要求21所述的由计算机实现的方法,其中,从所述第二客户端接收的附加配置信息还指定用于所述第二虚拟网络的第二虚拟网络地址,所指定的虚拟网络地址和所指定的第二虚拟网络地址包括公共的一个或更多个虚拟网络地址,并且所述方法还包括:对所述虚拟网络和所述第二虚拟网络同时使用所述一个或更多个虚拟网络地址进行管理。
23.根据权利要求18所述的由计算机实现的方法,其中,所指定的网络拓扑信息包括一个或更多个联网设备,并且所述方法还包括模拟所述一个或更多个联网设备的功能作为提供所述虚拟网络的一部分。
24.根据权利要求11所述的由计算机实现的方法,其中,所提供的接口包括图形用户界面,并且所述配置信息是经由所述图形用户界面而接收的。
25.根据权利要求11所述的由计算机实现的方法,其中,所提供的接口包括应用程序接口 API,并且所述配置信息的接收是基于所述客户端的远程计算系统对所述API的调用。
【文档编号】H04L29/06GK104283869SQ201410469606
【公开日】2015年1月14日 申请日期:2009年12月8日 优先权日:2008年12月10日
【发明者】埃里克·詹森·布兰德温, 克莱里萨·洛里·库克·布兰德温, 丹尼尔·T·科恩, 安德鲁·J·德恩, 卡尔·J·莫塞斯, 斯特芬·E·舒米特 申请人:亚马逊技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1