CN104320418A - 提供对远程服务的本地安全网络访问 - Google Patents

提供对远程服务的本地安全网络访问 Download PDF

Info

Publication number
CN104320418A
CN104320418A CN201410643770.8A CN201410643770A CN104320418A CN 104320418 A CN104320418 A CN 104320418A CN 201410643770 A CN201410643770 A CN 201410643770A CN 104320418 A CN104320418 A CN 104320418A
Authority
CN
China
Prior art keywords
network
service
client
computer network
communication
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.)
Granted
Application number
CN201410643770.8A
Other languages
English (en)
Other versions
CN104320418B (zh
Inventor
埃里克·詹森·布兰德温
丹尼尔·T·科恩
安德鲁·J·德恩
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
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN104320418A publication Critical patent/CN104320418A/zh
Application granted granted Critical
Publication of CN104320418B publication Critical patent/CN104320418B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • 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/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

描述了用于为用户提供对计算机网络进行访问的技术,比如使用户能够创建由远程可配置的网络服务为供所述用户使用而提供的计算机网络。这种被提供的计算机网络可被配置成仅可由创建了它们的用户访问的专用计算机网络,并且每个都可以由可配置的网络服务的客户端创建和配置成是对客户端现有的计算机网络的扩展,比如对客户端现有的专用计算机网络的专用计算机网络扩展。另外,对远程资源服务的访问可以按各种形式配置并且从这种计算机网络提供,比如用于包括作为被提供的计算机网络一部分的本地访问机构,其被配置成将被发送到所述访问机构的通信转发至特定的远程资源服务。

Description

提供对远程服务的本地安全网络访问
本申请是2011年6月10日提交的、申请号为200980149575.7、发明名称为“提供对远程服务的本地安全网络访问”的专利申请的分案申请。
背景技术
许多公司和其他组织运营着计算机网络,这种计算机网络将大量计算系统进行互连以支持它们的工作,比如,其中计算系统被共同布置(例如,作为本地网络的一部分),或者作为代替,位于多个不同的地理位置(例如,经由一个或多个专用的或公共的中间网络连接)。例如,安放着大量互连的计算系统的数据中心已变得平常,比如由单个组织运营或者代表单个组织的专用数据中心,以及作为商业组织由实体所运营以便为客户提供计算资源的公共数据中心。一些公共数据中心的运营者为各种客户所拥有的硬件提供网络访问、权力、以及安全安装设施,而其他的公共数据中心运营者则提供“完全服务”设施,其还包括可供它们的客户使用的硬件资源。然而,随着一般的数据中心的规模和范围的增大,提供、管理、和经营物理的计算资源的任务已变得越来越复杂。
对商品硬件进行虚拟化的技术的出现已提供了一些益处,这些益处是关于为许多有不同需求的客户管理大规模计算资源,允许各种计算资源由多个用户有效地且安全地共享。例如,通过VMWare、XEN、或用户模式的Linux所提供的虚拟化技术,其可以允许通过给每个用户提供由单个物理的计算机主机托管(hosted)的一个或多个虚拟机,在多个用户之间共享所述单个物理的计算机,每个这种虚拟机作为软件模拟充当着不同的逻辑计算系统,其给用户提供了一种他们是给定硬件计算资源唯一的操作者和管理者的假象,同时还提供了在各种虚拟机之间的应用隔离和安全。此外,一些虚拟化技术能够提供跨一个或多个物理资源的虚拟资源,比如具有多个虚拟处理器的单个虚拟机,该虚拟机跨多个不同的物理的计算系统。
附图简述
图1A和1B是网络图,其示出的互动过程的示例实施方式,牵涉创建和配置了专用计算机网络的远程客户端。
图2是网络图,其示出的互联的计算系统的示例实施方式,其用于提供到达客户端的计算机网络。
图3是框图,其示出的示例计算系统适合用于执行一种用于提供计算机网络供远程客户端使用的系统的实施方式。
图4A和4B示出可配置的网络服务管理例程的示例实施方式的流程图。
图5示出节点通信管理例程的示例实施方式的流程图。
图6示出外部通信管理例程的示例实施方式的流程图。
图7示出远程资源服务访问例程的示例实施方式的流程图。
图8示出VPN创建实现例程的示例实施方式的流程图。
详细描述
此处描述了用于比如在对于远程用户可用的、可配置的网络服务的控制下,给用户提供到计算机网络的访问的技术。在至少一些实施方式中,远程用户可以通过公共网络上与可配置的网络服务互动,以便创建和配置计算机网络用于供用户使用,其中被配置的计算机网络是由可配置的网络服务提供的,并且包括多个计算节点,所述计算节点由可配置的网络服务所维持,或者以其他的方式受可配置的网络服务所控制。在配置了这样一个计算机网络之后,用户可以从一个或多个远程位置与计算机网络互动,所述计算机网络是由可配置的网络服务提供给用户的,比如用于执行在所提供的计算机网络的计算节点上的程序。在至少一些实施方式中,可配置的网络服务是付费服务,使得可配置的网络服务的用户是为了至少一些由可配置的网络服务所提供的功能性而向可配置的网络服务支付费用的客户。另外,在至少一些实施方式中,所描述的技术中的一些或全部是由可配置的网络服务管理模块的实施方式被自动执行的,可选择地是与其他的通信管理模块一起被自动执行的,正如下面以更多细节描述的一样。
在至少一些实施方式中,由可配置的网络服务提供的计算机网络中的至少一些是专用计算机网络,其仅能由可配置的网络服务的用户访问,以便这些被提供的计算机网络被创建和配置(或者通过其他为其明确配置访问)。例如,可配置的网络服务可以给用户提供到计算机网络的安全专用访问,所述用户是可配置的网络服务的客户端,而所述计算机网络被提供用于客户端,这通过比如启用在客户端的一个或多个远程计算系统与被提供的计算机网络之间的VPN(“虚拟专用网络”)连接或其他安全连接,或者可以使用其他的安全和/或认证技术使得客户端能够以专用其安全的方式与被提供的计算机网络互动。另外,在至少一些实施方式中,由可配置的网络服务提供的计算机网络中的至少一些每个都由客户端创建和配置,成为对客户端的现有计算机网络的扩展,比如对客户端现有的远程专用计算机网络的专用计算机网络扩展(例如,客户端即企业实体的远程企业网络)。在这样的实施方式中,在现有的计算机网络与被提供的新的计算机网络扩展之间的安全专用访问可以使用一个或多个VPN连接或其他专用连接被相类似地启用。关于建立客户端到计算机网络的访问的额外细节被包括在下文中,所述计算机网络由可配置的网络服务的实施方式所提供。
在各种实施方式中,可配置的网络服务的客户端可以按多种方式创建和配置由可配置的网络服务提供的计算机网络。在至少一些实施方式中,可配置的网络服务提供一个或多个API(“应用编程接口”),其使得客户端的计算系统能够与可配置的网络服务编程式地互动,以执行由可配置的网络服务所提供的计算机网络的创建、配置和启动用途中的一些或全部动作,同时在至少一些实施方式中,作为可配置的网络服务的客户端的用户,其可以与可配置的网络服务交互式地互动,以执行一些或全部这种动作(例如,经由GUI、或图形用户接口、或者由可配置的网络服务所提供的其他控制台),而不管是不是经由这些API的使用来代替或附加地执行了这些动作。在一些实施方式中,对于用户可用的GUI可基于对用户选择性可用的基础API,而在其他实施方式中,可以按其他方式实现GUI。另外,客户端的计算设备与可配置的网络服务之间的互动过程可能至少部分地建立在所述客户端的计算设备与可配置的网络服务之间所发送的电子消息(例如,电子邮件消息)的基础上,比如按照可配置的网络服务中的基于消息的API。
例如,在至少一些实施方式中,客户端可以与可配置的网络服务的实施方式互动,从而为要被提供用于客户端的计算机网络具体指定配置信息,其中配置信息可选择地包括各种类型的信息,比如以下非排他性的列表中的一个或多个:多个被具体指定的网络地址,其分配给被提供的计算机网络中的多个计算节点;被提供的计算机网络的具体指定的网络拓扑信息;以及被提供的计算机网络的具体指定的网络访问限制。多个被具体指定的网络地址可包括例如网络地址中的一个或多个范围,并且如果被提供的计算机网络是客户端的远程专用计算机网络的扩展,其可相应于虚拟的和/或专用的网络地址的子集,用于远程专用计算机网络。被具体指定的网络拓扑信息可以指示,例如要被分组到一起的、被提供的计算机网络中的计算节点的子集,或者其为以其他方式共享的公共互通特征,比如将一个或多个连网的设备具体指定成被提供的计算机网络的一部分(例如,路由器、交换机,等等),并且管理或者以其他方式与具有被特殊具体指定的网络地址的计算节点相关联,或者通过其他方式指示被提供的计算机网络的子集、或者被提供计算机网络的计算节点的其他分组。具体指定的网络访问限制信息可以指示,例如,对于被提供的计算机网络的计算节点中的一个或多个的每一个而言,哪些其他的计算节点可以与所述计算节点互通;和/或被允许到达和/或来自所述计算节点的通信的类型,包括被提供的计算机网络的计算节点是否被允许与被提供的计算机网络外部的任何计算节点通信(或者其中所述被提供的计算机网络是对现有的其他计算机网络的扩展的情况,无论被提供的计算机网络的计算节点是否被允许与其所属的其他计算机网络外部的任何计算节点通信)。关于由可配置的网络服务的实施方式所提供的创建和配置计算机网络的额外细节被包括在下文中。
另外,在至少一些实施方式中,由可配置的网络服务所使用以给客户端提供计算机网络的计算节点可具有各种形式,比如物理的计算系统和/或虚拟机,其每个都被主机托管在一个或多个物理的计算系统上。例如,在一些实施方式中,可配置的网络服务可包括由可配置的网络服务提供的大量计算节点,这些计算节点可在被提供给客户端的计算机网络中使用,比如在一个或多个地理位置上的一个或多个数据中心。另外,在至少一些实施方式中,由可配置的网络服务所提供的计算节点中的一些或全部通过一个或多个中间物理网络互连,并且被提供给客户端的计算机网络可以是虚拟网络(或者“逻辑”网络),其通过使用中间物理网络作为底层网络而覆盖在所述中间物理网络上。此外,在至少一些实施方式中,计算节点中的至少一些可由程序执行服务(或称“PES”)使用,其执行代表多个客户或者程序执行服务的其他用户的多个程序。关于计算节点和基础计算机网络的额外细节被包括在下文中,并且关于将虚拟网络提供给客户端和提供程序执行服务的示例实施方式的额外细节被包括在以下申请中,即于2006年3月31日提交的、标题为“Managing Communications BetweenComputing Nodes”的第11/394,595号美国申请(代理人文案号120137.524);于2006年3月31日提交的、标题为“Managing Execution of Programs byMultiple Computing Systems”的第11/395,463号美国申请(代理人文案号120137.525);于2007年3月27日提交的、标题为“ConfiguringIntercommunications Between Computing Nodes”的第11/692,038号美国申请(代理人文案号120137.554);于2008年3月31日提交的、标题为“Configuring Communications Between Computing Nodes”的第12/060,074号美国申请(代理人文案号120137.576);以及于2007年6月18日提交的、标题为“Providing Enhanced Access To Remote Services”的第11/764,739号美国申请(代理人文案号120137.555);上述申请中的每一个的全部内容在此处通过引用被并入。
在一些实施方式中,客户端还可配置由可配置的网络服务所提供的计算机网络,以提供到位于被提供的计算机网络的远程的一个或多个其他可网络访问的服务的访问,比如可通过互联网或其他公共网络的其他远程可网络访问的服务,或者以其他方式连接到被提供的计算机网络外部的且不是被提供的计算机网络的一部分的其他远程可网络访问的服务的访问。至少一些这种远程服务可以在一些实施方式中与可配置的网络服务相关联(例如,由可配置的网络服务的运营者或相关联的实体所提供;由可配置的网络服务的另一个客户端所提供,比如经由通过可配置的网络服务提供到其他客户端的计算机网络,等等),并且至少一些这样的远程服务在一些实施方式中可能反而独立于可配置的网络服务。在各种实施方式中,这些其他的远程服务可具有各种形式,其中包括提供对一个或多个类型的与计算相关的资源的网络访问以供远程计算系统使用的服务(例如,提供对存储数据资源的访问的储存器服务;提供对消息队列资源或者其他存储消息资源的访问的消息服务;提供对存储数据库资源的访问的数据库服务;提供对程序执行资源的访问的程序执行服务,等等);或者以其他方式提供对有用的信息或功能或其他资源的访问的服务(例如,提供股票交易信息的资源或者扫描有疑问结果的资源的服务;提供照片共享功能的资源或社交网络能力的资源的服务;等等)。在某些情况下,可配置的网络服务的实施方式可提供在数据中心或其他地理位置上的多个计算节点,并且可以使用这些计算节点的子集以便提供到不同客户端的不同计算机网络(例如,其中每个被提供的计算机网络是共享公共底层网络的不同虚拟网络)-在这种情况下,一个客户端可以配置用于该客户端的被提供的计算机网络,以提供对一个或多个网络可访问的远程服务的访问,所述网络可访问的远程服务由其他客户端使用了在该地理位置处其他被提供的计算机网络来提供,比如一个客户端不知道这些远程资源是由相同地理位置处的其他计算节点物理地提供的。
在至少一些实施方式中,客户端可对于该客户端配置所提供的计算机网络,以包括访问特定资源服务的机构,该访问机构能够被配置成提供各种用于所述被提供的计算机网络的功能。作为一个特定的例子,在一些实施方式中,具有多个相关虚拟网络地址的被提供的虚拟计算机网络可以分配这些虚拟网络地址中的一个(或多个)以代表特定的远程资源服务,使得被提供的计算机网络的计算节点或其他参与者可以经由代表性的被分配网络地址与被提供的计算机网络外部的远程资源服务通信,所述代表性的被分配网络地址位于被提供的计算机网络内。以这种方式,一种配置有网络访问限制以便阻止在被提供的计算机网络外部的通信的(例如,阻止将要通过互联网或一个或多个其他公共网络的通信)被提供的计算机网络可被配置成允许经由这样一种被配置的访问机构来与特定的外部远程资源服务进行通信,所述访问机构是被提供的计算机网络的一部分。
此外,在至少一些实施方式中可以使用各种技术,以为这种通信提供增强安全性,所述通信经由被提供的计算机网络的被配置的访问机构从被提供的计算机网络到达远程资源服务。例如,在至少一些实施方式中,特定的远程资源服务可具有可公开访问的接口,其经由互联网或其他公共网络(例如,经由一个或多个公共网络地址和相关域名)对用户可用,但是,特定的远程资源服务还可实现可从底层网络直接访问的接口,所述底层网络由可配置的网络服务使用以互连计算节点,比如,如果特定远程资源服务由和可配置的网络服务相同的运营者提供,或者以其他方式隶属于可配置的网络服务。如果这样一个可直接访问的接口被实现在底层网络上用于特定远程资源服务,可配置的网络服务中的一个或多个被提供的计算机网络每个都可以具有关于该远程资源服务的、被配置的访问机构,其将供远程资源服务使用的通信引导至在底层网络上实现的该接口,而不是引导至远程资源服务中可远程公开访问的接口。该远程资源服务可以相应地在至少一些实施方式和情况中进行选择,以按照某一方式将关于至少一些客户端请求的远程资源服务的功能中的一些或全部,本地地提供到可配置的网络服务(例如,如果可配置的网络服务的一个或多个计算节点被用于实现该本地功能),而在其他的实施方式和情况中,远程资源服务可以为至少一些这种客户端请求提供功能中的一些或全部,这通过以安全的方式管理在一个或多个公共网络上的可配置的网络服务的底层网络到远程资源服务的远程位置的通信。可选择地,在至少一些实施方式中,可配置的网络服务可以为至少一些远程资源服务执行额外的动作,以按类似的方式通过一个或多个公共网络将安全通信从可配置的网络服务提供至远程资源服务的远程位置,比如通过可访问远程资源服务的方式为通信加密和/或通过将所述通信认证为来自受信任的源。涉及从被提供的计算机网络访问远程资源的额外细节被包括在下文中。
此外,在至少一些实施方式中,关于客户端的被提供的计算机网络可被配置成接收对由可网络访问的远程资源服务所提供的与计算相关的资源的特定子集,比如相应于客户端的子集的访问。作为一个例子,远程资源服务可使用不同的命名空间,将其被提供的资源划分成不同的组,这些组具有不同的访问权并被分离地引用,使得不同的命名空间中不同的资源可具有相同的本地名称,或者具有其他标识符,但基于这些命名空间被分离引用,并且具有相应于特定客户端的特定命名空间。如果是这样,关于客户端的、被提供的计算机网络可包括一个或多个机构,用于访问特定的远程资源服务,每个机构都被配置成自动相应于该远程资源服务中的特定命名空间,使得被提供的计算机网络的计算节点可使用被配置的访问机构来获得对该客户端中的特定相应命名空间内的资源的访问。此外,在至少一些实施方式中,被提供的计算机网络的计算节点可以不知道被配置的机构所对应的命名空间,使得计算节点可发送请求或其他消息至远程资源服务,所述请求或其他消息指示了在命名空间背景内感兴趣资源的名称或其他标识符,而没有命名空间的实际指示。如果是这样,被配置的访问机构可自动地修改或翻译消息,使得被指示的名称或其他标识符相关于与被配置的访问机构相应的命名空间,其中所述修改或翻译有选择地对于发送消息的计算节点而言是透明的。
被提供的计算机网络的配置和代表了远程资源服务的访问机构可以按各种方式执行。例如,在一些情况下,客户端可具体指定在远程资源服务内的客户端的现有命名空间,比如其中客户端已经被预先储存或者以其他方式使用特定资源的命名空间。可选择地,在其他实施方式中,可配置的网络服务可以关于可从被提供的计算机网络访问的新资源自动地开始在远程资源服务内新命名空间的使用,这比如是通过与远程资源服务互动以创建新的命名空间。这种与远程资源服务的互动过程可以在各种时刻执行,比如当客户端创建和配置被提供的计算机网络时,或者代替地,在稍后(例如,当被提供的计算机网络上的计算节点第一次尝试经由被配置的访问机构访问远程资源服务)。此外,在至少一些实施方式和情况中,可配置的网络服务可以生成唯一的标识符,其与被提供的计算机网络相关,并且使用该标识符来引用新的命名空间,虽然在其他实施方式中,远程资源服务可以提供这样一个标识符或者被创建的新命名空间的其他指示。在任何一种情况下,被提供的计算机网络的客户端和计算节点可有选择地不知道被新自动开始的命名空间和/或唯一的标识符,所述唯一的标识符被可配置的网络服务用来引用新的命名空间。可选择地,在一些实施方式中,客户端可具体指定要由可配置的网络服务使用的标识符,其与由可配置的网络服务提供给客户端的计算机网络相关联,而无论客户端是否知道标识符将由可配置的网络服务使用以引用新的命名空间或者以其他方式代替。此外,在至少一些实施方式中,被提供给客户端的、与计算机网络相关的标识符可以是与客户端相关的标示符,比如,如果客户端具有单个被提供的计算机网络,而在其他实施方式中,被提供的计算机网络标示符不同于任何客户端指定的标示符。涉及使用命名空间的额外细节被包括在下文中。
另外,在至少一些实施方式中,被提供的计算机网络对于客户端使用访问机构以访问来自特定远程资源服务的资源,所述访问机构可被配置以协助远程资源服务认证或生效从被提供的计算机网络接收的通信,比如用于使从特定位置发送的通信生效(例如,以便甚至是防止相同的客户端从另一个位置访问特定资源)。例如,至少一些远程资源服务可以允许或请求由远程资源服务所提供的资源每个都具有一个或多个相关的访问控制指示符(例如,名称或其他文字标识符、数字标识符、标签或其他访问关键字、凭证,等等),使得仅当请求者提供了所有这些相关指示符时,这样一种资源才能够由外部的请求者访问。对于这些远程资源服务而言,由被提供的计算机网络的计算节点对于客户端而使用的访问控制指示符中的一个可以是与客户端相应的标识符,比如关于使用了该远程资源服务的客户端的客户标识符。如果仅有单个关于客户端的客户标识符与资源相关联,则通过提供相同的单个客户标识符,该客户端可能能够从客户端的远程计算系统访问该资源。这样一种资源例如可以响应于来自客户端的请求而被创建,或者以其他方式(例如,临时地)被访问或关联到该客户端。
然而,在至少一些实施方式中,被提供的计算机网络为客户端使用被配置的访问机构以访问来自特定远程资源服务的资源,所述被配置的访问机构可被配置以修改发送至远程资源服务的通信,从而包括一个或多个其他额外的访问控制指示符。这些其他额外的访问控制指示符可以包括例如,与被提供的计算机网络相应的标识符,其由可配置的网络服务自动生成,并且在至少一些实施方式中,被提供的计算机网络的客户端和/或计算节点可以不知道被使用的特定额外的访问控制,或者甚至不知道注意任何这种额外的访问控制指示符的存在和使用。如果一个或多个额外的访问控制指示符对于客户端来说未知,则不同于经由被配置的访问机构从被提供的计算机网络进行访问,该客户端不可以访问这些资源,因为客户端将不能在对该资源进行访问的请求中以其他方式提供与这样一种资源相关联的所有指示符。因此,正如之前所注意到的,这种额外的访问控制指示符可以被远程资源服务用来作为资源或者对资源进行访问的请求的位置的指示符,使得来自其他位置的请求不给出对资源的访问。可选择地,仅当对该资源提供了所有访问控制指示符时,来自其他位置的请求可以被给定对这样一个资源的不同访问,比如用于配置资源以允许对该资源的写入或者其他修改访问,但是在其他情况下,比如如果提供了客户端指定的标识符则允许由来自另一个位置的客户端对资源进行读取或其他访问,允许由任何人对资源进行读取或其他访问而不提供任何访问控制指示符,等等。另外,这种额外的访问控制指示符可具有不同的形式,比如自动生成随机的数字字母式指示符,与被提供的计算机网络相关联的真实地理位置的指示,等等。
在与使用命名空间相类似的方式中,对于被提供的计算机网络,对访问机构进行配置,以使用一个或多个这样的额外访问控制指示符,这可以按各种方式执行。例如,在一些实施方式中,客户端可以具体指定一个或多个额外的指示符与被提供的计算机网络相关联,用于由到远程资源服务的被配置的访问机构所使用。可选择地,在其他实施方式中,可配置的网络服务可自动地开始使用一个或多个新的额外的指示符,用于关于被提供的计算机网络的到远程资源服务的访问机构(例如,通过生成和使用与被提供的计算机网络相关的唯一标识符),使得经由被配置的访问机构从远程资源服务访问的新资源仅可从被提供的计算机网络访问。另外,正如以下用更多细节讨论的,可配置的网络服务的一些实施方式可使用各种模块来管理在被提供的计算机网络的计算节点之间的通信,比如用于促进通信在底层网络上的传输,并且如果是这样的话,一个或多个这样的模块可被配置以实现特定的访问机构,这通过自动修改通信以包括命名空间标识符和/或访问控制指示符、和/或通过一个或多个公共网络将通信(可选地在修改之后)转发至特定的远程资源服务来实现。关于实现访问机构的额外细节被包括在下文中,包括协助远程资源服务来使来自被提供的计算机网络的位置具体指定的通信有效。
在至少一些实施方式中,可配置的网络服务还提供API,其使得客户端能够编程性地与可配置的网络服务互动,以使可配置的网络服务采取行动,以有利于建立客户端对计算机网络的远程访问,所述计算机网络通过可配置的网络服务被提供至所述客户端。在各种实施方式中,这样一种远程访问建立API可执行各种动作,并且在至少一些实施方式中协助客户端建立从客户端的远程位置到由可配置的网络服务为客户端提供的计算机网络的VPN连接。正如之前所注意到的,在一些情况下,客户端可以具有在可配置的网络服务外部的远程专用计算机网络,并且由可配置的网络服务创建并提供的计算机网络可以是对远程专用网络的扩展,或者以其他方式连接到该远程专用网络。在其他的情况下,客户端可使用一个或多个其他的远程计算系统来访问由可配置的网络服务提供的计算机网络并与之进行访问。在任何情况下,客户端可以在至少一些实施方式中使用从远程专用网络或其他远程计算系统到由可配置的网络服务提供的计算机网络的VPN连接或其他安全连接。在这种实施方式中,由可配置的网络服务所提供的远程访问建立API可以在受到可配置的网络服务的客户端编程式地请求时,使可配置的网络服务开始预备一个或多个适当的联网组件的客户端,以允许客户端的远程专用网络或其他远程计算系统建立到由可配置的网络服务所提供的计算机网络的VPN连接或其他安全连接。这些联网组件可包括,例如一个或多个硬件设备(例如,路由器或其他联网设备)、软件组件、和/或多组配置信息。
例如,在一些实施方式中,客户端的远程访问建立API的请求导致可配置的网络服务与商家互动,以便购买或者以其他方式获得被递送到客户端远程位置处的适当的路由设备或其他硬件联网设备,并且使关于被获得的联网设备的、被适当配置的软件或其他配置信息递送至客户端,使得设备当使用软件或基于配置信息进行配置并且连接到客户端的一个或多个远程计算系统上时,将开始与计算机网络联系,所述计算机网络是通过可配置的网络服务为客户端提供的。以这种方式,在由客户端接收到联网设备、软件、和/或配置信息之后,客户端可以例如,将被接收到的联网设备连接到远程专用网络或者其他远程计算系统,并且使用软件和/或配置信息来配置所接收的联网设备。被配置的联网设备可随后自动地与被提供给客户端的计算机网络进行联系,并且建立VPN连接以启用到被提供的计算机网络的客户端专用安全访问。在其他情况下,被配置的联网设备可首先自动地联系可配置的网络服务的被配置的计算系统,以便获得针对被提供用于客户端的计算机网络的专用额外配置信息,并随后自动地建立起到被提供的计算机网络的VPN连接。
在一些实施方式中,用于为客户端提供联网设备的商家可具有各种形式,比如由与运营可配置的网络服务相同的运营者所运营的或以其他方式隶属于所述可配置的网络服务的在线商家或其他零售商,或者作为代替,是不隶属于该可配置的网络服务的第三方商家。在各种实施方式中,要使用的硬件设备可以按不同的方式被类似地选择,其中包括基于与由可配置的网络服务所提供的计算机网络和/或与客户端所使用的远程计算系统的兼容性,比如可由客户端自动检测和/或具体指定的。此外,在一些实施方式中,客户端可从中进行选择的多个备选方案是可用的,比如在当开始请求远程访问建立API时由客户端具体指定,或者响应于来自可配置的网络服务的之后的查询(例如,具体指定了客户端可从中进行选择的多个备选方案的查询)。在其他实施方式中,可使用单个类型的联网设备或其他硬件设备,另外,被配置的软件和/或其他配置信息可以从各种源提供到客户端(例如,通过与提供联网设备相同的商家,直接通过可配置的网络服务,或者通过另一个实体),并且可以按照各种方式来提供(例如通过将软件和/或配置信息电子地传输至客户端;通过将软件和/或配置信息存储到物理的设备可读的介质比如DVD或USB存储器钥匙上,并且将媒体物理地递送到客户端;通过在软件和/或配置信息被递送到客户端之前将软件和/或配置信息存储到联网设备上,比如预先配置设备;等等)。另外,在一些实施方式中,被提供至客户端的被配置的软件,比如当其与客户端已经在远程位置上具有的一个或多个计算系统或者其他硬件设备一起使用时,足以建立起VPN连接。
此外,在各种实施方式中,按照各种方式执行从零售商或其他第三方实体获得硬件设备用于客户端,比如购买设备或者作为代替,以另一种方式获得所述硬件设备(例如,获得该硬件设备用于租用、租借、临时评估,等等),并且在一些实施方式中可包括可配置的网络服务,其向零售商付款并随后分离地从客户端获得付款(例如,其中来自客户端的付款多于、少于、或等同于给零售商的付款),或者作为代替,使客户端直接给零售商付款(例如,通过可配置的网络服务给零售商提供关于客户端的付款信息,通过可配置的网络服务给零售商提供用于和客户端联系或以其他方式互动的信息已获得支付信息,通过让零售商使用之前从客户端获得信息以获得付款,等等)。另外,虽然在一些实施方式中,开始从零售商获得硬件设备用于客户端,会导致硬件设备从零售商直接递送到客户端的远程位置,在其他实施方式中,可配置的网络服务可按照其他方式执行这种获得,比如开始采取硬件设备的递送,并且随后将其递送至客户端(例如,在使用适当的软件和/或配置信息配置硬件设备之后,或者作为代替,以和接收相同的方式通过将硬件设备转发至客户端之后)。在各种实施方式中,关于这些动作的额外细节被包括在下文中,所述动作由可配置的网络服务执行以实现远程访问建立API的客户端的编程性请求。
出于示意性的目的,以下描述了一些实施方式,其中执行了特殊类型的计算节点、网络、通信、和配置操作。这些例子出于示意性的目的被提供,并且为了简洁被简化,并且该创造性的技术可以被使用在各种各样的其他情况下,其中的一些将在下文中讨论。例如,在一些实施方式中,为了由客户端访问而创建和配置的计算机网络是对这些客户端的现有专用计算机网络的专用计算机网络扩展,而同时在其他实施方式中,被创建和配置的计算机网络可以是独立计算机网络和/或可以是公共计算机网络,其中所述独立计算机网络不是对其他计算机网络的扩展,而公共计算机网络不可由客户端专用地访问,所述公共计算机网络为了客户端被创建和配置。另外,在一些实施方式中,由可配置的网络服务提供的计算机网络使用由可配置的网络服务提供并控制的计算节点,而同时在其他实施方式中,至少一些这样的用于被提供的计算机网络的计算节点可以由其他方控制和维持(例如,由第三方、由客户端,等等),但是可以供可配置的网络服务使用。
图1A是示出了可配置的网络服务的示例实施方式的网络图,所述网络服务使得远程客户端能够创建和配置计算机网络供客户端使用。在这个例子中,被创建和配置的计算机网络是对客户端的现有专用计算机网络的专用网络扩展,并且可配置的网络服务105通过一个或多个公共网络100(例如,通过互联网)将这种功能提供给客户端(未显示)。因此,远程客户端可以使用可配置的网络服务(“CNS”)105,以动态地修改它们的专用计算机网络的尺寸和/或性能,比如通过在公共网络100上使用云计算技术。
特别是,在图1A的例子中,大量客户端(未显示)在公共网络100上与管理模块110互动,以创建和配置对远程的现有客户端专用网络130的各种专用计算机网络扩展120,其中计算机网络扩展120中的至少一些被配置以使得能够通过公共网络100(例如,经由在互连100a和100b上建立的VPN连接)从一个或多个相关的客户端专用网络130进行安全专用访问。在这个示例实施方式中,管理模块110协助将CNS 105的功能提供至远程客户端,比如连同各种CNS 105的其他模块(未显示),和由CNS105使用以提供专用计算机网络扩展120的各种计算节点和联网设备(未显示)。在至少一些实施方式中,CNS管理模块110可在CNS 105的一个或多个计算系统(未显示)上执行,并且可提供一个或多个API,其使得远程计算系统能够编程式地与模块110互动,以代表客户端访问CNS 105的功能中的一些或全部(例如,创建、配置、和/或开始使用专用网络扩展120)。另外,在至少一些实施方式中,作为代替,客户端可以手动地与模块110互动(例如,经由通过模块110提供的用户接口),以执行一些或全部这种动作。
公共网络100可以是例如被链接的网络中可公开访问的网络,比如互联网,其有可能通过不同的方进行操作。远程客户端专用网络130每个都可以包括一个或多个现有的专用网络,比如公司或专用的网络(例如,家庭、大学,等等),其对未经特许的用户而言部分地或完全地不可访问,并且其包括计算系统和/或客户端的其他联网设备。在所示例子中,每个被提供的网络扩展120都包括多个计算节点(未显示),它们中的至少一些由CNS 105提供,或者以其他方式受CNS 105控制,并且每个被提供的网络扩展120都可以按各种方式由客户端进行配置,所述网络扩展120被提供用于所述客户端。在所示实施方式中,网络扩展120中的每一个可以是专用计算机网络,其仅可由创建了该专用计算机网络的客户端访问,然而在其他实施方式中,由CNS 105提供用于客户端的至少一些计算机网络可以是可公共访问的计算机网络和/或可以是独立计算机网络,该计算机网络不是其他现有的计算机网络的扩展。类似地,虽然在该例子中,被提供的计算机网络120是远程客户端计算机网络130的扩展,远程客户端计算机网络130是专用网络,在其他实施方式中,被提供的计算机网络120可以是客户端计算机网络130的扩展,客户端计算机网络130不是专用网络。
在远程客户端专用计算机网络130和被提供用于客户端的相应专用计算机网络扩展120之间的专用访问可以按各种方式启用,比如通过在它们之间建立VPN连接或其他安全连接,其允许以安全专用的方式在公共网络100上进行互通。例如,CNS 105可以在其计算节点和其他计算系统上自动地执行适当的配置,以启用对客户端的特定专用网络扩展120的VPN访问,比如通过自动地配置由CNS 105主机托管的一个或多个VPN机构(例如,软件和/或硬件VPN机构),和/或可以自动地为客户端提供适当的配置信息(例如,凭证、接入点、和/或其他参数),以允许在远程客户端专用网络130上主机托管的VPN机构建立VPN访问。在VPN访问已经被适当地启用和/或配置之后,可以在远程客户端专用网络与专用网络扩展之间建立VPN连接,比如通过使用了IPsec(“互联网协议安全”)或其他适当通信技术的客户端发起。例如,在一些实施方式中,VPN连接或其他安全连接可以建立到使用了用于数据传输的MPLS(“多协议标签交换”)的网络或者建立在这些网络之间,比如代替基于Ipsec的VPN连接。关于启用或建立安全连接的额外细节在别处以更多细节进行讨论,比如响应由CNS 105所提供的相应远程访问建立API的客户端请求。
另外,在所示实施方式中,各种可网络访问的远程资源服务140对公共网络100上的远程计算系统可用,其中包括远程客户端专用网络130上的计算系统。资源服务140可为远程计算系统提供各种功能,比如用于资源服务140中的至少一些,以为远程计算系统提供对各种类型的涉及计算的资源的访问。此外,由CNS 105所提供的专用网络扩展120中的至少一些可被配置成提供对远程资源服务140中的至少一些的专用访问或其他专门的访问,其中对于专用网络扩展120的计算节点,被提供的访问有选择地可视作经由虚拟连接115本地提供,所述虚拟连接115是专用网络扩展120的一部分,然而与远程资源服务140的真实通信可以出现在公共网络100上(例如,经由互连100b和100c)。关于建立和使用这种对远程资源服务的专用访问或其他专门的访问的额外细节在别处以更多细节进行了讨论。
正如之前所注意到的,被提供的网络扩展120每个都可由客户端以各种方式进行配置。例如,在至少一些实施方式中,CNS 105提供多个计算节点,其可供被提供给客户端的网络扩展使用,使得每个被提供的网络扩展120可包括由客户端配置数量的多个这种计算节点,其专门使用作为被提供的网络扩展的一部分。特别是,客户端可以与模块110互动以配置一些计算节点,以便一开始就包括在被提供用于客户端的计算机网络中(例如,经由与通过CNS 105所提供的API的一个或多个编程性的互动过程)。另外,在至少一些实施方式中,计算节点可之后被动态地添加到客户端的被提供的计算机网络,或者从其移除(例如,经由与通过CNS 105所提供的API的一个或多个编程性互动过程),比如在被提供的计算机网络已经由客户端使用之后(例如,通过表明要开始或终止在特定计算节点上的特定程序的执行)。此外,在至少一些实施方式中,CNS 105可提供多个不同类型的计算节点,例如有各种性能特性(例如,处理器速度、存储器可用性、储存器可用性,等等)和/或其他功能的计算节点。如果是的话,在至少一些实施方式中,客户端可具体指定一些类型的计算节点要被包括在被提供的计算机网络中,用于客户端。
另外,在至少一些实施方式中,客户端可以与模块110互动,以配置被提供用于客户端的计算机网络的网络地址(例如,经由与通过CNS 105所提供的API的一个或多个编程性的互动过程),并且在至少一些实施方式中,网络地址可以之后被动态地添加、移除、或修改用于客户端的被提供的计算机网络,比如在被提供的计算机网络已经由客户端使用之后。例如,如果正被配置的、特定的被提供的计算机网络是对现有的远程客户端计算机网络的扩展,则客户端可具体指定一个或多个地址范围(例如,无级域间路由选择(“ClDR”)地址块)或者其他组网络地址,其为由现有的远程客户端计算机网络所使用的网络地址的子集,使得具体指定的网络地址用于被提供的计算机网络的计算节点。在一些情况下,这种被配置的网络地址可以是虚拟的或专用的网络地址,其不能够从公共网络100上的计算系统直接寻址(例如,如果现有的远程客户端计算机网络和相应的被提供的网络扩展使用网络地址翻译技术和/或虚拟联网技术用于客户端计算机网络和其被提供的网络扩展),而同时在其他情况下,被配置的网络地址中的至少一些可以是公共网络地址,其可从公共网络100上的计算系统直接寻址(例如,公共网络地址,其为静态的互联网可路由IP地址或其他未改变的网络地址)。在其他实施方式中,CNS 105可以自动地选择要供至少一些被提供的计算机网络扩展中的至少一些计算节点所使用的网络地址,比如基于可供CNS 105使用的网络地址、基于是由相应于被提供的计算机网络的远程的现有计算机网络所使用的相关网络地址的选择网络地址,等等。另外,在至少一些实施方式中,其中CNS 105为客户端提供虚拟网络,比如通过使用底层网络上的覆盖网络,每个客户端可以被允许具体指定要用于其被提供的计算机网络的任何网络地址,即使多个客户端具体指定相同的或覆盖的网络地址用于它们相应的被提供的计算机网络-在一些实施方式中,CNS 105不同地为每个客户端管理网络地址,使得第一客户端可具有第一计算节点,其与特殊具体指定的网络地址相关,用于第一客户端的被提供的计算机网络,而同时不同的第二客户端可具有不同的第二计算节点,其与相同的特殊具体指定的网络地址相关,用于第二客户端的被提供的计算机网络。一旦网络地址被配置或者以其他方式关于被提供的计算机网络确定,CNS 105可将网络地址分配给被选择用于被提供的计算机网络的各种计算节点,比如以随机的形式,通过使用DHCP(“动态主机配置协议”)或者其他用于动态分配网络地址的技术,等等。另外,即使公共网络地址被用于特定的计算机网络,CNS 105可以映射这些公共网络地址中的一个或多个用于以其他方式使用,比如使用特定公共网络地址充当用于特定远程资源服务的访问机构,正如在别处以更多细节描述的一样,使得通过该特定计算机网络中的计算节点发送至该特定公共网络地址的通信将被转发至相应的远程资源服务,而不是在互联网或其他网络上的另一个计算系统,所述特定公共网络地址被分配给所述计算系统。图1B提供关于使用被配置的网络地址的例子的额外细节,以路由在被提供的计算机网络内的通信。
另外,在至少一些实施方式中,客户端可以与模块110互动以配置关于计算机网络的网络拓扑信息,所述计算机网络被提供用于所述客户端(例如,经由与通过CNS 105所提供的API的一个或多个编程性的互动过程),并且在至少一些实施方式中,这种网络拓扑信息可以之后关于被提供的计算机网络被动态地修改,比如在被提供的计算机网络已经由客户端使用之后。例如,客户端可以具体指定特定类型的联网设备(例如,路由器、交换机,等等)和/或其他网络设备或节点(例如,防火墙、代理、网络储存设备、打印机,等等)为被提供的计算机网络的一部分,和/或可以具体指定被提供的计算机网络的计算节点的子集要被分组到一起,或者以其他方式共享公共的互通特征(例如,计算节点的特定子集,其为对与其不用过滤互通的子集的一部分,和/或其与特定的联网设备有关)。另外,在至少一些实施方式中,关于被提供的计算机网络的具体指定的配置信息包括在联网设备和/或计算设备的组之间的路由信息或者其他互连性信息。此外,在至少一些实施方式中,CNS 105可以在多个地理位置(例如,多个在地理上分布的数据中心)上提供可用的计算节点,并且由客户端具体指定用于被提供的计算机网络的配置信息可进一步指示一个或多个地理位置,其中被提供的计算机网络的计算节点被定位(例如,通过使所述计算节点位于多个地理位置,以提供在被提供的计算机网络的计算节点中的故障容错),和/或可以按其他方式提供关于被提供的计算机网络的计算节点如何互用的偏好或需求的信息,其由CNS 105使用以选择一个或多个这样的地理位置(例如,关于计算节点互通的最小或最大的网络延迟或带宽;在计算节点之间最小或最大的网络邻近度;在计算节点之间最小或最大的地理邻近度;具有对特定资源或者在所有这种地理位置中不可用的功能的本地访问;具有关于其他外部的计算系统比如客户端的远程计算机网络和/或远程资源服务的具体指定的位置;等等)。
正如在别处以更多细节所讨论的,在至少一些实施方式中,被提供的计算机网络的计算节点之间的互连和互通使用CNS 105的基础底层网络来管理,并且如果是的话,在至少一些实施方式中,被配置的网络拓扑信息中的一些或全部可以使用CNS 105的基础底层网络和相应模块进行模拟。例如,由CNS 105所提供的计算节点中的每一个可以与CNS 105的节点通信管理模块相关联,所述节点通信管理模块管理到达或来自其相关计算节点的通信。如果是的话,按照与一个或多个被模拟的防火墙设备相一致的方式,防火墙设备可以通过使用用于计算节点的相关通信管理模块来模拟,从而不准许或者按其他方式处理到达和/或来自所述计算节点的通信。这种节点通信管理模块可以类似地模拟路由器或者子网,通过控制所述互通如何并且是否在计算节点之间传递,并且通过以适当的响应信息回应来自关于信息的计算节点的请求(例如,ARP或称地址解析协议请求)。CNS105的一个或多个外部的通信管理模块可以管理在由CNS 105所提供的计算节点与外部的计算系统之间的通信,比如为了相类似地模拟防火墙设备并实施具体指定的网络访问限制,以及为了管理关于远程资源服务的被配置的访问机构、和到远程客户端专用计算机网络的安全连接。其他类型的网络拓扑信息可以被类似地模拟,并且关于CNS 105的各种模块在一些实施方式中的用途的额外细节在别处讨论和在下面关于图2讨论。
另外,在至少一些实施方式中,客户端可以与模块110互动,以配置各种网络访问限制信息,其用于被提供给客户端的计算机网络(例如,经由与通过CNS 105所提供的API的一个或多个编程性的互动过程),并且在至少一些实施方式中,这种网络访问限制信息可以之后关于被提供的计算机网络被动态地修改,比如在被提供的计算机网络已经由客户端使用之后。例如,客户端可以具体指定关于被提供的计算机网络的计算节点中的一些或全部是否并且如何被允许与被提供的计算机网络的其他计算节点和/或与其他外部的计算系统通信的信息,比如基于下列项中的一个或多个:通信方向(传入对比传出);通信类型(例如,基于所包括内容的类型和/或所使用通信协议的类型,比如允许对文本而非图像的HTTP请求并且不允许FTP请求);其他计算系统的位置(例如,无论是被提供的计算机网络的一部分,相应于所述被提供的计算机网络的远程客户端计算机网络的一部分,已经对其建立专用访问或其他专门访问的远程资源服务的一部分,被提供的计算机网络的外部,以及任何相应的远程客户端计算机网络,等等);其他计算系统的类型;等等。另外,正如别处以更多细节讨论的,在至少一些实施方式中,被提供的计算机网络可被配置成提供对一个或多个远程资源服务的专用访问或者其他被具体指定的访问,比如经由被配置的访问机构的访问,其中被配置的所述访问机构是被提供的计算机网络的一部分或以其他方式位于被提供的计算机网络中的。以与关于网络拓扑信息和其他路由信息的相类似的方式,CNS 105可以按各种方式实施关于被提供的计算机网络的网络访问限制信息。在一些实施方式中,涉及管理用于被提供的计算机网络的通信的额外细节在别处并且在下面根据图2进行讨论。
图1B示出关于示例计算机网络120a的额外细节,所述示例计算机网络120a可以通过CNS 105(或者可配置的网络服务的其他实施方式)提供用于客户端,其中在该例子中,被提供的计算机网络120a是对所述客户端的远程专用计算机网络的专用网络扩展,比如图1A中的远程专用计算机网络130的一个。在这个例子中,以概念上的方式显示了各种关于被提供的计算机网络120a的连接和通信路径,以示出可配置的网络访问限制和网络拓扑的类型,并且图2示出关于可用于创建被提供的计算机网络比如示例被提供的计算机网络120a的基础底层网络和连接的例子的额外细节。
特别是,在图1B中,被提供的计算机网络120a包括各种通过CNS 105所提供的计算节点,其位于第一地理位置1即160处(例如,在地理位置1上的第一数据中心),在该例子中,各种计算节点被配置成逻辑组164、165和166(例如,用于回应不同的子网和/或相关的被配置的联网设备,未显示)。在这个例子中,单个概念上的虚拟路由器162在地理位置1上显示,用于控制在这些计算节点和其他计算系统之间的通信,以便显示可能出现的不同类型的通信,然而在地理位置1上被提供的计算机网络120a实际上可以具有多个或没有被配置的联网设备,并且计算机网络120a可以按照各种方式通过可配置的网络服务在地理位置1上实现,比如经由多个物理互连的路由器或其他联网设备,通过使用基础底层网络和控制了在所述基础底层网络上的通信的相关模块,等等。在这个例子中,虚拟路由器162按照关于被提供的计算机网络120a的配置信息来操作,所述配置信息包括:被配置的网络拓扑信息,对远程资源服务的被配置的专用访问或者其他具体指定的访问,以及其他被配置的网络访问限制信息,视情况而定,这比如是为了将被发送至被提供的计算机网络120a内的网络地址的信息路由至被提供的计算机网络120a上的相应的目的地计算节点,并且为了将其他通信路由至在被提供的计算机网络120a以外的其他网络地址。此外,未经过被配置的防火墙设备许可的通信、被配置的网络拓扑信息、或者其他被配置的网络访问限制可以由虚拟路由器162阻挡或者以其他方式管理。
在这个例子中,计算机网络120a被提供用于示例客户端1,并且是对客户端1的远程计算机网络的网络扩展。客户端1的远程计算机网络包括在第一远程位置站点A 190处的多个计算系统(未显示),并且虚拟路由器162被配置成经由在地理位置1的虚拟通信链路170与该多个计算系统通信。例如,正如在别处以更多细节讨论的,被提供的计算机网络120a可以包括到站点A 190的多个计算系统的一个或多个被配置的VPN连接,并且通信链路170可以相应于一个或多个这样的VPN连接。另外,客户端1的远程计算机网络可以有选择地包括在一个或多个其他位置上的计算系统,比如被示出的任意站点B 192,并且如果是的话,虚拟路由器162可以进一步被配置成与在其他位置处的那些其他的计算系统通信,比如经由到达站点B 192的任意虚拟通信链路172(例如,经由直接到站点B的一个或多个其他被配置的VPN连接)。当多个VPN连接或其他安全连接用于远程计算机网络的远程计算系统时,每个连接可相应于所述远程计算系统的子集(例如,通过与相应于远程计算系统的远程计算机网络的网络地址的子集相关联),以便导致通信被路由至适当的连接。在其他实施方式中,多个VPN连接或其他安全连接可以用于在一个或多个位置上的远程计算系统,但是每个都可以支持到远程计算系统中的任何一个的通信,比如,如果多个连接是冗余的备选方案(例如,用于负载平衡)。此外,在一些实施方式中,客户端的远程计算机网络可包括在多个站点处的多个计算系统,但是仅可使用到远程计算系统的单个VPN连接或其他安全连接,其中远程计算机网络负责将通信路由至适当的站点和计算系统。
另外,被提供的计算机网络120a可被配置成允许在被提供的计算机网络120a的计算节点与其他外部的计算系统之间的所有通信、一些通信、或者不通信,所述外部的计算系统在互联网196或其他公共网络上一般是可访问的。如果至少一些这样的外部通信被允许,则虚拟路由器162可进一步被配置成经由被提供的计算机网络120a中的任意虚拟通信链路178与这外部的多个计算系统通信,比如连同用于被提供的计算机网络120a的任何虚拟边界路由器155。虚拟边界路由器155可以按照各种方式物理地实现,比如通过使用一个或多个真实防火墙设备或边界路由器设备的CNS 105,其管理在外部的计算系统与由CNS 105在地理位置1上所提供的各种计算节点之间的通信(例如,支持通过CNS 105所提供的大量计算机网络到使用那些CNS 105的计算节点的客户端的真实设备),这通过使用基础底层网络和使用控制了在基础底层网络上的通信的相关模块(例如,为了防止未允许的通信由被提供的计算机网络120a的计算节点发送到底层网络上),等等。此外,虚拟边界路由器155可以进一步在概念上协助管理连接到被提供的计算机网络120a外部的其他计算系统的其他通信,比如连接到在站点A和B上的远程客户端计算机网络,一个或多个远程资源服务,等等。
另外,被提供的计算机网络120a可被配置提供对一个或多个远程资源服务的专用访问或其他被具体指定的访问,这比如通过分配被提供的计算机网络120a的一个或多个网络地址来代表这一个或多个远程资源服务,并且通过有选择地配置特定动作,该特定动作要被采取用于发送到被分配的网络地址的通信。在这个例子中,虚拟路由器162已经被配置成提供经由被提供的计算机网络120a的虚拟通信链路174的、对远程资源服务的本地访问。因此,例如,如果被提供的计算机网络120a的计算节点中的一个发送通信至映射到通信链路174的、被提供的计算机网络120a的特定网络地址,则虚拟路由器可以将该通信转发到在被提供的计算机网络120a外部的远程资源服务194(例如,经由互联网或其他公共网络)。在其他实施方式中,远程资源服务194可以实现作为CNS 105一部分的或者以其他方式位于地理位置1上的接口,并且如果是的话,发送至映射到通信链路174的、被提供的计算机网络120a中的特定网络地址的通信,作为代替,可以被转发到远程资源服务的接口,用于进行处理。
另外,在至少一些实施方式中,虚拟通信链路174可被配置以便按各种方式管理经由链路发送的通信,比如在其被转发至远程资源服务194之前按一个或多个方式修改这些通信,或相反按一特别指定的方式访问远程资源服务194。例如,在所示实施方式中,虚拟通信链路174可被配置相应于远程资源服务194内的特定命名空间,其中由远程资源服务194所提供的计算相关资源的子集是该命名空间的一部分。所以,虚拟通信链路174可被配置访问所述特定命名空间内的资源,比如通过修改或翻译通信以使用与所述命名空间相关的名称或其他标识符,这通过使用支持了指示特定命名空间的远程资源服务的特定接口,等等。另外,如果虚拟通信链路174被配置成相应于特定命名空间,或者以其他方式相应于由远程资源服务194所提供的资源的子集,则被提供的计算机网络120a可以有选择地被进一步配置以包括一个或多个其他虚拟的通信链路,该虚拟的通信链路也相应于相同的远程资源服务194但是被配置成按其他方式访问远程资源服务194。例如,被提供的计算机网络120a可以有选择地包括不同的虚拟通信链路176,其被配置成按不同于对虚拟通信链路174使用的方式对远程资源服务194进行访问,比如相应于不同的第二命名空间,不相应于任何特定的命名空间,使用不同于为通信链路174使用的客户标识符的、远程资源服务194的客户的标识符,等等。在这个例子中,虚拟通信链路174和176被配置成使用不同的标识符(例如,不同的命名空间的标识符),在这个例子中,对于链路174和176而言这些标识符被分别表示为ID 1和ID 2。因此,被提供的计算机网络120a的计算节点可能能够访问来自远程资源194的不同类型的功能。此外,虽然没有在这里示出,但是被提供的计算机网络120a可以被类似地配置,以访问一个或多个其他的远程资源服务(未显示),这使用了到这些其他的远程资源服务的其他虚拟通信链路。
附加到或代替配置虚拟通信链路174,以访问远程资源服务194的特定命名空间,在至少一些实施方式中,虚拟通信链路可被配置成为远程服务资源194提供额外的信息,以允许远程资源服务194使通信的位置或其他源生效作为被提供的计算机网络120a。例如,在所示实施方式中,虚拟通信链路174可被配置成相应于一个或多个特定的标识符或其他的访问控制指示符,所述标识符和指示符通过可配置的网络服务或通过远程资源服务194而与所提供的计算机网络120a相关联,使得经由虚拟通信链路174访问的、由远程资源服务194提供的新的和/或现有的计算相关资源的子集与所述访问控制指示符相关联,用于在限制对这些资源的访问时供远程资源服务194使用。所以,虚拟通信链路174可被配置成使用具体指定的额外指示符,其按照各种方式与被提供的计算机网络120a相关,比如用于修改通信以包括额外的指示符,用于与通信一起发送额外的指示符而不修改所述通信,用于使用支持包括了这种额外的指示符的远程资源服务的特定接口,等等。另外,如果虚拟通信链路174被配置与一个或多个额外的指示符相应,则被提供的计算机网络120a可被有选择地进一步配置成包括一个或多个其他的虚拟通信链路,其也相应于相同的远程资源服务194但是被配置成以其他方式访问远程资源服务194。例如,被提供的计算机网络120a可有选择地配置不同的虚拟通信链路176,以访问远程资源服务194而不使用任何额外的指示符(例如,用于提供与本来可公共访问的相同的、对远程资源服务194的访问),以便使用不同于用于虚拟通信链路174的那些、一个或多个其他的额外访问控制指示符,以便使用与用于虚拟通信链路174的顾客标识符不同的、远程资源服务194的客户的标示符,等等。此外,虽然未在这里示出,被提供的计算机网络120a可被类似地配置成访问一个或多个其他的远程资源服务(未显示),其使用到这些其他的远程资源服务的其他的虚拟通信链路,比如被配置成使用与虚拟通信链路174相同的一个或多个额外指示符、或者以其他方式被配置的其他虚拟通信链路。
在所示实施方式中,除了在地理位置1处的CNS 105的计算节点之外,被提供的计算机网络120还可包括通过CNS 105所提供的计算节点184,其位于第二地理位置2即180处(例如,在地理位置2上不同的第二数据中心处)。所以,虚拟路由器162可被配置成包括任意的虚拟通信链路168,其到地理位置2处的被提供的计算机网络120a的一部分。在这个例子中,在地理位置2处的被提供的计算机网络120a的一部分被类似地示出带有概念上的虚拟路由器182,以管理到达或来自计算节点184的通信,包括经由虚拟通信链路188与在地理位置1处的被提供的计算机网络120的一部分进行通信。在各种实施方式中,这种在不同的地理位置处的CNS 105的计算节点之间的通信可以按照各种方式进行处理,比如通过在互联网或者其他公共网络上发送通信(例如,作为比如使用由CNS 15所支持的加密的安全信道的一部分),通过以专用的安全方式发送通信(例如,经由在地理位置之间专门租用的线路),等等。另外,虽然未在这里示出,在地理位置2处的被提供的计算机网络120a的一部分可类似地包括和用于地理位置1处的部分相同类型的被示出的其他虚拟通信链路中的一些或全部,其比如到远程客户端专用网络(例如,经由不同于任何到地理位置1的VPN连接的一个或多个VPN连接),到远程资源服务,到互联网,等等。
将理解,图1B中示例的被提供的计算机网络120a出于示例性的目的而被包括,并且通过CNS 105所提供用于客户端的其他计算机网络可以不包括所有类型的被配置的通信链路和网络拓扑信息,和/或可以包括未在这里示出的其他类型的被配置的通信链路和网络拓扑信息。例如,在一些实施方式和情况中,被提供的计算机网络可包括添加到计算节点或代替计算节点的被配置的设备和其他资源,并且如果是这样,每个这种其他的资源可以优选地分配被提供的计算机网络的网络地址。此外,在图1B中示出的、概念上的设备和通信链路可使用各种类型的基础物理的设备、连接和模块来实现。另外,虽然未在这里示出,客户端可以执行各种其他类型的与远程资源服务的互动过程,无论是来自被提供的计算机网络或代替其他的远程计算系统,比如用于订阅/注册使用资源,接收/创建各种凭证(例如,用户ID、密码,等等),从(例如是远程专用企业网络的一部分)其他远程计算系统创建之后从被提供的计算机网络(例如,对专用企业网络的网络扩展)可访问的资源和/或命名空间,等等。
图2是示出了用于提供计算机网络的计算系统的示例实施方式的网络图,比如通过可配置的网络服务的实施方式。特别是,在这个例子中,大量物理的计算系统位于数据中心200中的同一位置,并且经由各种联网设备和一个或多个物理网络互连。在这个例子中,物理的计算系统和其他设备由可配置的网络服务使用,以提供多个计算机网络用于客户端,这通过建立和维持被提供的计算机网络中的每一个作为虚拟网络,并且通过使用物理网路作为其上叠加了虚拟网络的底层网络。例如,关于图1B的例子,数据中心200可位于地理位置1处,并且被示出的物理的计算系统可以用于提供被提供的计算机网络120a的计算节点164、165和166。在至少一些实施方式中,叠加网络和基础底层网络的使用对被提供的计算机网络的计算节点而言是透明的。
因此,在这个例子中,由可配置的网络服务所提供的计算机网络被实现为虚拟叠加网络,其经由基础物理底层网络发送通信。在各种实施方式中,被提供的虚拟叠加网络可以按各种方式实现,比如在一些实施方式中不对通信进行包封(例如,通过将关于虚拟网络的虚拟网络地址信息嵌入到被配置用于物理底层网络的联网协议的通信中)。作为示意性的例子,虚拟网络可使用32位的IPv4(“互联网协议版本4”)网络地址来实现,并且可嵌入那些32位的虚拟网络地址作为由物理底层网络使用的128位的IPv6(“互联网协议版本6”)网络地址的一部分,比如通过重新形成通信数据包或其他数据传输的头(例如,使用无状态IP/ICMP翻译,或称SIIT),或者以其他方式修改这种数据传输以便从第一联网协议中对它们进行翻译,而对于该第一联网协议这些头被配置成不同的第二联网协议。作为另一个示意性的例子,虚拟网络和底层网络这两者可以使用相同的网络寻址协议(例如,IPv4或IPv6)来实现,并且使用虚拟网络地址经由被提供的虚拟叠加网络发送的数据传输可被修改,以使用相应于底层网络的不同的物理的网络地址,同时该传输在底层网络上发送,但是其中原始的虚拟网络地址存储在被修改的数据传输中,或者以其他方式被跟踪,使得当它们离开底层网络时该数据传输可根据它们的原始形式来存储。在其他实施方式中,重叠网络中的至少一些可以使用通信的包封来实现。
被示出的图2的例子包括具有多个物理的计算系统的数据中心200,其由可配置的网络服务的实施方式操作。数据中心200连接到在数据中心200外部的一个或多个公共网络235,该数据中心200提供经由专用网络240对一个或多个远程计算系统245a的访问,对在其他地理位置上每个都具有多个计算系统的一个或多个其他的全球可访问的数据中心260的访问,以及对一个或多个其他的远程计算系统245b的访问。公共网络235可以是例如可能由各种不同方操作的、网络中的可公开访问的网络,比如互联网,并且专用网络240可以是例如从在专用网络240外部的计算系统可整个地或部分地访问的企业网络。计算系统245b每个都可以是例如直接连接到互联网的家庭计算系统(例如,经由电话线路、有线调制解调器、数字用户线路(“DSL”),等等)。
在这个例子中,通过可配置的网络服务的管理模块210将有助于虚拟的被提供的计算机网络的配置,并且可配置的网络服务的多个其他的模块被用于实现被提供的计算机网络的功能,比如从物理的底层网络的边界,这通过修改进入和/或离开底层网络的通信。特别是,在这个例子中,可配置的网络服务中的多个节点通信管理模块,其中每个都管理到达和来自相关计算节点的通信,所述通信管理模块是比如如在下面以更多细节讨论的被示出的节点通信管理模块209a、209d和250。另外,在这个例子中,可配置的网络服务的外部的通信管理模块270管理在数据中心200内的物理的计算系统与外部的计算系统之间的通信,正如下面以更多细节所描述的。然而在这个例子中,仅示出了单个外部的通信管理模块270,将理解,模块270的功能可以使用多个设备实现,比如用于冗余和负载的平衡。
数据中心200包括:多个物理的计算系统205a-205d和255a-255n,和在一个或多个其他的计算系统(未显示)上执行以管理关于相关计算系统255a-255n的通信的CNS节点通信管理模块250,以及在一个或多个计算系统上执行的可配置的网络服务的管理模块210(未显示)。在这个示例实施方式中,每个物理的计算系统205a-205d主机托管多个虚拟机计算节点,并且还包括虚拟机(“VM”)节点通信管理模块(例如,作为关于物理的计算系统的虚拟机管理程序监控器的一部分),比如在计算系统205a上的CNS VM节点通信管理模块209a和虚拟机207a,以及比如在计算系统205d上的CNS VM节点通信管理模块209d和虚拟机207d。虚拟机计算节点中的每一个可以由可配置的网络服务使用,作为被提供用于客户端的计算机网络的不同计算节点。在这个例子中,物理的计算系统255a-255n不执行任何虚拟机,并因此每个都可以充当不同的计算节点,其为由可配置的网络服务提供用于客户端的计算机网络的一部分。在其他实施方式中,在数据中心处,所有物理的计算系统或没有物理的计算系统可以主机托管虚拟机。
该示例数据中心还包括多个物理联网的设备,比如交换机215a和215b、边界路由器225a-225c、以及核心路由器230a-230c。交换机215a是包括了物理计算系统205a-205c的物理网络的一部分,并且连接到边界路由器225a。交换机215b是包括了物理的计算系统205d、255a-255n、和提供CNS节点通信管理模块250和系统管理模块210的计算系统的不同物理网络的一部分,并且交换机215b连接到边界路由器225b。接下来,由交换机215a-215b所建立的物理的网络经由中间的互连网络220彼此连接和连接到其他网络(例如,公共网络235),其包括边界路由器225a-225c和核心路由器230a-230c。边界路由器225a-225c提供在两个或多个网络之间的网关。例如,边界路由器225a提供在由交换机215a所建立的物理的网络和互连网络220之间的网关。边界路由器225c提供在互连网络220与公共网络235之间的网关。核心路由器230a-230c管理在互连网络220之间的通信,这比如通过基于这些数据传输的特征(例如,包括源和/或目的地底层网络地址、协议标识符等等的头信息)和/或互连网络220本身的特征(例如,基于物理的网络拓扑的路由,等等),视情况而定转发数据包或其他数据传输。
被示出的节点通信管理模块管理被发送到相关的计算节点和来自相关的计算节点的通信。例如,节点通信管理模块209a管理相关的虚拟机计算节点207a,节点通信管理模块209d管理相关的虚拟机计算节点207d,并且其他的节点通信管理模块中的每一个可以类似地管理关于一组一个或多个其他的相关计算节点的通信。被示出的节点通信管理模块可以管理在计算节点之间的通信,以便将特定的虚拟网络叠加到中间的物理底层网络(例如,与交换机215a和215b相关的互连网络220和物理网络),并且可以实现防火墙策略和其他的网络访问限制,以控制这些通信。外部的通信管理模块270管理进入和离开数据中心200的外部通信,比如关于这种外部通信进一步实现在数据中心200内的底层网络上的叠加网络。外部的通信管理模块270可以采取行动实现防火墙策略和其他的网络访问限制,其包括:关于被提供的计算机网络的至少一些被配置的访问机构,该访问机构允许对数据中心200外部的远程资源服务的专用访问和其他被具体指定的访问;并且有选择地允许到外部的远程客户端计算机网络的至少一些VPN连接;或者可以作为代替,连同其他的硬件和/或软件(未显示)一起操作,其实现这种VPN连接的可配置的网络服务部分。
因此,作为一个示意性的例子,在计算系统205a上的虚拟机计算节点207a中的一个可以是特定被提供用于客户端的虚拟计算机网络(例如,图1B中的被提供的计算机网络120a)的一部分,其连同计算系统205d的虚拟机计算节点207d之一,并连同计算系统255a(且有选择地,在该数据中心或一个或多个其他的数据中心260的其他计算节点,其也由可配置的网络服务使用),并且连同用于代表关于虚拟网络的虚拟网络地址的IPv4。其他的虚拟机计算节点207a、虚拟机计算节点207d、和计算系统255b-255n(以及其他被示出的计算节点)一般可能专门用于被提供给其他客户端的其他计算机网络,其可以当前不分配给被提供的计算机网络,并且可供可配置的网络服务使用,和/或还可以是相同的被特别提供的虚拟计算机网络的一部分。作为被特别提供的虚拟计算机网络的一部分的虚拟机计算节点207a上的客户端的执行的程序可以随后将传出的通信(未显示)引导至被特别提供的虚拟计算机网络的虚拟机计算节点207d,这比如是通过具体指定虚拟网络地址用于被提供的虚拟计算机网络,其被分配到目的地虚拟机计算节点207d。节点通信管理模块209a接收传出的通信,并且在至少一些实施方式中,确定是否授权传出通信的发送,比如基于之前关于发送虚拟机计算节点207a和/或关于目的地虚拟机计算节点207d配置的信息,和/或通过动态地与系统管理模块210进行互动(例如,为了获得授权的确定,为了获得一些这样的信息或所有这样的信息,等等)。
如果节点通信管理模块209a确定传出的通信被授权(或者不执行这样一个授权确定),则模块209a确定真实的物理底层网络位置,其相应于通信的目的地虚拟网络地址。在这个例子中,互连网络使用IPv6以代表经由互联网络连接的计算节点的真实网络地址,并且模块209a重新形成传出通信的头,使得其被引导至使用了真实的IPv6底层网络地址的节点通信管理模块209d。节点通信管理模块209a可以确定真实的IPv6目的地网络地址,以用于目的地虚拟计算节点207d的虚拟网络地址,这通过例如动态地与系统管理模块210互动,或者节点通信管理模块209a可具有之前确定的或存储的该信息(例如,响应来自发送虚拟机计算节点207a的、对关于目的地虚拟网络地址的信息的之前的请求,比如使用地址解析协议或称ARP的请求)。在这个例子中,被使用的真实IPv6目的地网络地址嵌入虚拟目的地网络地址和额外信息,以便在叠加网络上发送通信而不进行包封。
当节点通信管理模块209d经由互连网络220接收通信时,其从真实IPv6目的地网络地址中提取虚拟目的地网络地址和额外信息,并且确定该通信被引导至哪一个虚拟机计算节点207d。节点通信管理模块209d接下来有选择地确定所述通信是否被授权用于目的地虚拟机计算节点207d,比如通过从真实IPv6源网络地址提取虚拟源网络地址和额外信息,并且证实具有该虚拟源网络地址的计算节点由转发通信的节点通信管理模块(在这个例子中为节点通信管理模块209a)真实管理,以便防止怀有恶意的发送者的源网络地址的电子欺诈。如果确定通信要被授权(或者节点通信管理模块209d不执行这样一个授权确定),则模块209d随后重新形成传入通信的头,使得其被引导至使用了适当IPv4网络地址的目的地虚拟机计算节点207d用于虚拟网络,这比如是通过使用发送虚拟机计算节点的虚拟网络地址作为源网络地址,并且通过使用目的地虚拟机计算节点的虚拟网络地址作为目的地网络地址。在重新形成了传入通信的头之后,模块209d随后将被修改的通信转发至目的地虚拟机计算节点。在至少一些实施方式中,在将传入通信转发至目的地虚拟机之前,模块209d还可以执行与安全相关的额外步骤。例如,模块209d可以验证发送虚拟机计算节点被授权与目的地虚拟机通信(例如,基于与相同虚拟网络的关系和/或基于被具体指定用于被提供的虚拟网络的网络访问限制信息,其与相同的客户或其他实体相关联,与其计算节点被授权要进行互通的不同实体相关联,等等),和/或传入的通信是被允许类型的通信,这比如是基于之前由模块209d所获得的信息,或者基于与系统管理模块210的互动。
如果发送虚拟机计算节点207a作为代替而(或另外)将传出通信(未显示)引导至数据中心200外部的一个或多个预期的目的地计算系统,则节点通信管理模块209a以相类似的方式接收和处理传出通信。预期的外部目的地计算系统可以是例如另一个计算节点,其为相同的被特别提供的虚拟计算机网络的一部分(例如,在远程虚拟客户端计算机网络上,对于该远程虚拟客户端计算机网络而言,被特别提供的计算机网络是一种扩展,或在另一个也由可配置的网络服务所使用的数据中心260处,以提供特定虚拟计算机网络中的一部分)、远程资源服务的计算系统、在互联网上可被公共访问的计算系统,等等。在至少一些实施方式和情况中,模块209a可以首先确定是否授权传出通信的发送,并且如果是的话,确定相应于目的地网络地址的真实物理底层网络位置用于通信。在这个例子中,被确定的物理底层网络位置相应于外部的通信管理模块270,比如如果模块270与不以其他方式分配给节点通信管理模块的所有虚拟网络地址和/或真实网络地址相关联。当模块270经由互联网络220接收通信时,其类似地从所接收的通信提取目的地网络地址和额外信息,并且确定是否并且如何转发所述通信,这包括有选择地确定所述通信是否被授权用于预期的目的地。如果该通信被确定要授权(或者模块270不执行这样一个授权确定),则模块270随后重新形成传入通信的头,使得其使用适当的IPv4公共网络地址(或者适用于公共网络235的其他网络地址)被引导至目的地,并随后在公共网络235上转发被修改的通信。
因此,正如以上所注意到的,在所示实施方式中,外部的通信管理模块270处理从被提供的计算机网络传出的通信,其中包括为这些远程资源服务经由被配置的访问机构发送至远程资源服务的传出的通信。如果传出的通信经由被配置的访问机构发送至远程资源服务用于被特别提供的计算机网络,在至少一些实施方式和情况中,模块270和/或与发送计算节点相关的节点通信管理模块可以采取进一步的动作。例如,被特别提供的虚拟计算机网络可具有被配置的访问机构,用于特定的远程资源服务(例如,经由计算系统245b中的一个或多个或者经由在另一个数据中心260处的一个或多个计算系统提供的远程资源服务),其被映射到该远程资源服务的特定命名空间,并且发送虚拟机计算节点207a可以经由该被配置的访问机构发送通信。对用于被特别提供的计算机网络的该远程资源服务的被配置的访问机构可以是例如被特别提供的计算机网络的虚拟网络地址,其被分配以代表该被配置的访问机构,并且如果是这样,该分配的虚拟网络地址可以与模块270相关联,以导致传出通信被引导至模块270。在经由公共网络234将这样一个传出通信转发至远程资源服务之前,模块270可采用各种动作以反映对所使用的访问机构的配置,比如用于修改所述传出通信以引用或以其他方式使用所述访问机构所对应的特定命名空间。在这种情况下,模块270可以按各种方式确定命名空间和关于所述访问机构的其他配置信息,这比如是通过本地存储配置信息、联系系统管理模块210以获得配置信息,等等。此外,模块270可以按各种方式确定如何以及何时修改通信,以使用特定的命名空间,这比如是通过具有之前被提供给可配置的网络服务的相应配置信息的远程资源服务(例如,一个或多个特定消息参数的指示,其指示了命名空间;用于命名或引用资源的一个或多个特定消息参数的指示,其可以有选择地包括命名空间标识符;允许命名空间被指示或者以其他方式使用命名空间信息的消息类型的指示;等等)。
作为一个特定的示意性的例子,远程资源服务可提供数据储存器服务,并且传出通信可以是对关于特定存储器资源的访问的请求(例如,用于恢复被存储的对象或其他组的被存储数据)。如果是的话,特定的储存器资源可能之前已经由客户端创建作为由客户端所定义的命名空间的一部分,这比如是通过使用在被提供的计算机网络外部的计算系统,例如在客户端的远程专用计算机网络上。通过配置用于被特别提供的计算机网络的访问机构以使用相同的命名空间,被提供的计算机网络的计算节点可以访问和使用客户端的现有存储资源。作为示意性的例子,如果客户端的远程专用计算机网络是企业网络,则客户端可使用不同的命名空间来存储不同类型的数据,比如用于在第一命名空间中存储敏感的人力资源数据,在第二命名空间中存储受限制的软件开发软件和其他数据,并且经由第三命名空间存储一般在整个企业内部都可用的其他企业数据。如果可配置的网络服务的被提供的计算机网络仅由企业中的特定子集使用(例如,人力资源管理人员),则对被特别提供的计算机网络的远程资源服务的访问机构可被配置成使用第一命名空间用于敏感的人力资源数据。此外,被特别提供的计算机网络可以有选择地具有对远程资源服务配置的第二访问机构(例如,使用被提供的计算机网络的不同分配的虚拟网络地址),比如使用第三命名空间用于一般可用的企业数据,使得被特别提供的计算机网络的计算节点可以与被特别提供的计算机网络的不同本地虚拟网络地址互动,以获得对不同组资源的访问。
作为另一个示例性的例子,对被特别提供的计算机网络的远程资源服务的访问机构可以作为代替而被配置成仅允许被特别提供的计算机网络的计算节点具有对储存器资源的访问,所述储存器资源由这些计算节点创建和使用。如果是这样,可配置的网络服务可以确定新的命名空间,以与被特别提供的计算机网络一起使用,这比如是通过自动生成新的命名空间(例如,不向被特别提供的计算机网络的计算节点提供该信息)或者是通过使用由客户端使用配置信息指示的新命名空间实现的,并且可配置的网络服务可以配置访问机构以使用新的命名空间。被特别提供的计算机网络的可配置的网络服务或计算节点可能进一步需要采取初始的动作,以创建在远程资源服务内的新命名空间,这依赖于所述远程资源服务。一旦新的命名空间可用,被特别提供的计算机网络的计算节点可以类似地使用被配置的访问机构,以与远程资源服务互动来创建作为新命名空间一部分的新存储资源,并且访问这些存储资源,并且外部的通信管理模块270将类似地视情况而定修改传出通信,以使用新的命名空间。
除了或者代替被配置成实现相应于特定远程资源服务内的特定命名空间的被配置的访问机构,在一些实施方式中,外部的通信管理模块270可被配置成包括一个或多个额外的指示符,其涉及对经由该访问机构发送至该远程资源服务的一些或全部通信的访问控制,并且发送虚拟机计算节点207a可以经由被配置的访问机构发送这样一个通信。在将这样一个传出通信经由公共网络235转发至远程资源服务之前,模块270可以采用各种行动以反映对所使用的访问机构的配置,比如修改传出通信以包括访问机构所对应的一个或多个额外的指示符,这比如通过以对远程资源服务特定的方式修改通信的头和/或主体(例如,如果远程资源服务允许一个或多个访问控制指示符的客户端规格,通过远程资源服务支持的方式包括一个或多个额外的指示符,无论是代替或除了由发送虚拟机计算节点207a具体指定的任何指示符)。在这些情况下,模块270可以按各种方式确定关于访问机构的额外指示符,比如通过本地地存储信息,联系系统管理模块210以获得信息,等等。另外,模块270可以确定如何并且何时修改通信,以按照各种方式使用特定的额外指示符,这比如是通过远程资源服务,其具有之前所提供的、和可配置的网络服务相应的配置信息(例如,一个或多个特定消息参数的指示,其指示这种访问控制指示符;用于访问资源的一个或多个特定消息参数的指示,其可以有选择地包括一个或多个这样的访问控制指示符;消息类型的指示,其允许一个或多个这样的访问控制指示符被具体指定或者以其他方式使用这种访问控制指示符;等等)。
以之前关于命名空间信息与被配置的访问机构的使用所讨论的例子相类似的方式,远程资源服务可以提供数据储存器服务,并且传出通信可以是对特定存储相关资源的访问的请求(例如,用于恢复被存储的对象或其他组的被存储数据)。如果是这样,特定的储存器资源可以之前已经由发送虚拟机计算节点207a所属的、被提供的计算机网络的计算节点中的一个所创建,或者可以作为当前通信的一部分被新创建或访问。在一些实施方式中,可配置的网络服务可能进一步需要采取初始动作以具体指定一个或多个额外的指示符,用于在远程资源服务内使用(例如,对它们进行定义),这依赖于远程资源服务。正如在别处以更多细节讨论的,发送虚拟机计算节点207a并且相关的客户端可以不知道额外指示符的使用,但是外部的通信管理模块270仍将视情况而定修改传出通信,以使用相应的指示符。
此外,正如上面所注意到的,在被示出的实施方式中,外部的通信管理模块270处理传出通信,该传出通信从被提供的计算机网络扩展到该扩展相应的远程计算机网络,比如传出通信经由被配置的VPN连接发送至特定的远程计算机网络。在至少一些实施方式中,可配置的网络服务提供远程访问建立API,其允许客户端编程性地开始这样一个VPN连接的建立,该VPN连接从位于数据中心200远程的位置到在数据中心200处的被提供用于客户端的计算机网络,这比如用于使适当的硬件设备、软件和/或配置信息被传递至远程位置,用于供客户端在建立VPN连接时使用。例如,计算系统245b中的一个可以相应于出售或者以其他方式提供这种硬件设备和/或软件的在线零售商,并且如果是这样,可配置的网络服务可以使用由该零售商所提供的分离的API,以订购这种硬件设备和/或软件用于发送至相应于客户端的远程位置或者其他指定位置(例如,正如由客户端所具体指定的作为调用可配置的网络服务中被提供的API的一部分,这基于之前由可配置的网络服务所存储的用于客户端的信息,基于之前由零售商所存储的用于客户端的信息,等等)。一旦建立了这样一个VPN连接或者其他安全连接,以允许客户端具有对被提供的计算机网络的访问,则模块270可以进一步采取动作以支持所述安全连接,这比如是通过使用安全连接来发送传出通信,所述传出通信预期用于在远程位置处的一个或多个目的地计算系统,所述安全连接相应于该目的地计算系统。
因此,正如上面关于图2讨论的,在至少一些实施方式中,可配置的网络服务将虚拟计算机网络提供给客户端,这通过使用基础底层网络将它们实现为叠加网络,比如使用可配置的网络服务的各种节点通信管理模块、以及可配置的网络服务的一个或多个外部的通信管理模块。在至少一些实施方式中,一个或多个系统管理模块可以进一步促进配置在计算节点之间的通信,这比如是通过跟踪和/或管理哪一个计算节点属于哪一个被提供的虚拟网络,并且通过提供关于真实物理底层网络地址的信息,所述真实物理底层网络地址相应于虚拟网络地址,其用于特定的虚拟网络(例如,通过特定的客户或其他实体)。另外,系统管理模块可以接收在目标的物理的计算系统上的虚拟机计算节点的指示,以及虚拟机相关的被提供的虚拟网络的指示,并随后开始为目标的物理的计算系统配置虚拟机节点通信管理模块,以便将虚拟机与虚拟网络相关联,或者节点通信管理模块可以作为代替而开始该配置(例如,当虚拟机第一次开始或接收通信时)。
在至少一些实施方式中,检测和/或防止未授权的通信,如之前所注意到的,这可以至少部分地基于其上叠加了虚拟网络的一个或多个中间的底层网络的拓扑结构。在这种实施方式中,为了在底层网络上通信,用于这样一个计算节点的物理的网络地址包括计算节点的虚拟网络地址的指示,并且包括与计算节点相关的节点通信管理模块的位置相应的底层网络的部分网络地址(例如,节点通信管理模块为其管理通信的底层网络的子网络或其他部分)。因此,为了针对有恶意的用户正确地构建关于作为虚拟网络一部分的计算节点的、有效的物理的网络地址,有恶意的用户将需要得到对关于计算节点所属的虚拟网络的信息的访问,得到对关于计算节点的物理底层网络位置的拓扑结构的信息的访问,以便确定相关节点通信管理模块的部分网络地址,并且确定如何使用该信息构建物理的网络地址。所构建的物理的网络地址的有效性可以按照各种方式检查,这比如是通过识别被嵌入所构建的物理的网络地址中的虚拟地址相应的计算节点,并且验证被识别的计算节点的位置相应于在底层网络的一部分的计算节点中的一个,其相应于部分网络地址(例如,由所述部分网络地址所对应的节点通信管理模块所管理的计算节点中的一个)。另外,所构建的物理的网络地址的有效性可以在各种时间检查,这比如是通过接收了用于目的地计算节点的传入通信的节点通信管理模块(例如,为了验证该源的物理的网络地址有效),通过接收到来自据称代表了被指示管理的计算节点的节点通信管理模块的消息的管理模块(例如,请求关于感兴趣的预期目的地计算节点的物理的网络地址的消息),等等。
图4、5和6提供了在至少一些实施方式中,分别与系统管理模块210、节点通信管理模块、和外部的通信管理模块270的动作相关的额外细节。此外,与实现可以在至少一些实施方式中使用的叠加网络相关的额外细节可以包括在于2008年3月31日所提交并且标题为“ConfiguringCommunications Between Computing Nodes”的第12/060,074号美国申请(代理人文案号120137.576)中,此处通过引用而并入其全部内容。
图3是是示出了适于实现系统的实施方式的示例计算系统的框图,其用于提供计算机网络以供远程客户端使用,特别是,图3示出服务器计算系统300,适于实现可配置的网络服务系统管理模块的实施方式,其协助提供可配置的网络服务,以及各种客户端计算系统350、主机计算系统360、以及其他的计算系统380。虽然未在这里示出,但是在一些实施方式中,被示出的计算系统中的至少一些可以位于同一位置,或者以其他方式相关(例如,服务器计算系统300和作为可配置的网络服务中的一部分的至少一些主机计算系统360),比如在数据中心处,正如关于图1B和2以更多细节描述的。另外,虽然未在这里示出,但是可配置的网络服务的各种其他的模块可以在至少一些实施方式中出现或使用,比如各种节点通信管理模块和一个或多个外部的通信管理模块。
在所示实施方式中,服务器计算系统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示出的组件中的一些或全部组件相类似的组件,但是为简洁起见,这些组件在本例子中未被示出。
可配置的网络服务(“CNS”)管理模块340的实施方式实现在存储器330中,并且其与一个或多个网络390上的计算系统350、360和380互动(例如,经由互联网和/或万维网、经由专用蜂窝网络、经由可配置的网络服务使用的专用底层网络,等等)。在这个示例实施方式中,模块340包括的功能涉及提供和管理计算机网络,用于供各种客户端(未显示)使用,作为可配置的网络服务的一部分,其中使用计算系统350的客户端配置并且访问被提供的计算机网络。主机计算系统360还可以协助提供可配置的网络服务,这比如是通过提供计算节点,用于由可配置的网络服务所提供的计算机网络。类似地,在至少一些实施方式中,其他计算系统380中的至少一些也可以协助提供可配置的网络服务,这比如是通过促进在被提供的计算机网络与外部的远程计算系统之间的互通(例如,通过实现VPN连接或其他访问机构),通过提供被提供的计算机网络被配置要访问的远程资源服务,通过促进在被提供的计算机网络的计算节点之间的互通(例如,通过实现促进了通信的、可配置的网络服务的底层网络或其他设施的一些部分),等等。
其他的计算系统350、360和380可以执行各种软件,作为与模块340的互动过程的一部分。例如,客户端计算系统350中的一些或全部每个都可以执行存储器357中的软件,以与模块340互动(例如,作为网络浏览器或者特别指定的客户端应用程序的一部分),比如使得客户端计算系统的用户能够创建和配置计算机网络,用于供可配置的网络服务的用户或其他客户端使用。此外,客户端计算系统350和/或其他计算系统380中的一些或全部每个都可以执行存储器357中的软件,以代表客户端与计算机网络互动,所述计算机网络由可配置的网络服务提供用于客户端,这比如是经由VPN连接,该VPN连接用于连接作为关于客户端的远程网络的一部分的客户端计算系统350和/或其他计算系统380中的多个到提供计算节点作为关于客户端的远程网络的被提供的计算机网络扩展的一部分的多个主机计算系统360。另外,客户端计算系统350的一个或多个用户可以与模块340互动,以执行各种其他类型的动作(例如,涉及使用可配置的网络服务的客户端的账户、监控被提供的计算机网络的使用等等的管理功能),正如在别处以更多细节讨论的。此外,主机计算系统360和/或其他计算系统380中的一些可以实现软件模块(未显示),以协助提供可配置的网络服务,比如协助管理被发送到和来自被提供的计算机网络的计算节点的通信的节点通信管理模块。另外,其他的计算系统360和380可以执行其他的功能,比如实现对各种用户可用的远程资源服务。涉及模块340和可配置的网络服务的功能的各种信息,比如信息322,也可以存储在储存器320,并且可以包括涉及代表多个客户端的计算机网络的配置和/或供应的信息。
在模块340接收一个或多个请求(或其他指示)以创建和配置计算机网络用于客户端之后,模块340可以执行各种动作,正如在别处以更多细节所讨论的。这些动作可包括:从主机计算系统360选择一个或多个计算节点,其将作为计算机网络的一部分;配置这些主机计算系统和/或其他计算系统以提供计算机网络;以及开始对到客户端的远程计算系统350或其他远程计算系统380的被提供的计算机网络的访问。另外,模块340还可以与计算系统360互动以管理被提供的计算机网络,比如响应来自客户端的请求或者代替地被自动地确定,包括在一些情况下增加或降低作为被提供的计算机网络一部分的计算节点的量,以修改被配置的网络拓扑用于被提供的计算机网络,修改提供了被提供的计算机网络的计算节点的特定的主机计算系统(例如,通过将在被提供的计算机网络的一个或多个计算节点上执行的程序迁移到其他计算节点),等等。另外,模块340可以监控主机计算系统360中的一个或多个,或者以其他方式与之互动,以跟踪被提供的计算机网络的使用和操作。
将会明显的是,计算系统300、350、360和380仅仅是示意性的,并且无意于限制本发明的范围。计算系统和/或计算节点可代替地,每个都包括多个互动的计算系统或设备,并且计算系统/节点可以连接到未示出的其他设备,其中包括通过一个或多个网络比如互联网,经由网络,或者经由专用网络(例如,移动通信网络,等等)。更一般地,计算节点或其他计算系统可以包括硬件或软件的任意组合,其可以互动和执行所描述类型的功能,包括而不限于台式计算机或其他计算机、数据库服务器、网络储存器设备和其他网络设备、PDA、移动电话、无线电话、寻呼机、电子时间安排器、互联网设备、基于电视的系统(例如,使用机顶盒和/或个人/数字视频录像机),以及包括适当通信能力的各种其他的消费产品。另外,在一些实施方式中,由被示出的模块340所提供的功能可以分布在额外的模块中,或者模块340可以包括在别处所描述的功能,正如通过可配置的网络服务的多个模块所提供的一样(例如,一个或多个系统管理模块、一个或多个节点通信管理模块、和一个或多个外部的通信管理模块)。类似地,在一些实施方式中,模块340功能中的一些可以不被提供和/或其他额外的功能可能存在。
还将认识到,虽然各种项目被示出为在被使用时存储在存储器中或者储存器上,但是出于存储器管理和数据完整的目的,这些项目或它们的一些部分可以在存储器和其他储存器设备之间传输。可选择地,在其他实施方式中,软件模块和/或系统中的一些或全部可以在另一个设备上的存储器中执行,并且经由计算机内部通信与被示出的计算系统进行通信。此外,在一些实施方式中,系统和/或模块中的一些或全部可以按其他的方式来执行或提供,比如至少部分在固件和/或硬件中,其包括但不限于一个或多个专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD),等等。模块、系统、和数据结构中的一些或全部也可以(例如,作为软件指令或结构数据)被存储在计算机可读介质上,比如要由适当驱动器或经由适当连接被读取的硬盘、存储器、网络、或便携式媒体物品。作为被生成的数据信号,还可以在各种计算机可读的传输介质上传输系统、模块、和数据结构(例如,作为载波一部分,或者其他的模拟或数字传播信号),所述传输介质包括基于无线的和基于有线/电缆的媒体,并且可以采用各种形式(例如,作为单个或复用模拟信号的一部分,或者作为多个离散的数字数据包或帧)。在其他实施方式中,这些计算机程序产品可以采用其他形式。所以,本发明可以使用其他的计算机系统配置来实践。
图4A和4B示出可配置的网络服务管理例程400的示例实施方式的流程图。该例程可以通过例如,图1A中的系统管理模块110、图2中的系统管理模块210、和/或图3中的系统管理模块340的执行来提供,比如用于协助管理可配置的网络服务的操作,所述可配置的网络服务提供到远程客户端的计算机网络。在所示实施方式中,由例程400所创建和提供的计算机网络中的至少一些可以是对客户端的现有远程网络的扩展,然而在其他实施方式中,由例程400所创建和提供的网络作为代替,可以是独立的网络,用于供客户端使用,其不是对其他网络的扩展。
例程被示出的实施方式在块405开始,其中接收到来自客户端的消息的指示或者接收到其他信息的指示。在至少一些实施方式中,例程400支持的可配置的网络服务提供一个或多个API,以便允许远程客户端编程性地与可配置的网络服务互动,并且如果是这样,在块405接收的指示中的一些或全部可经由请求、或使用了这些API的远程客户端的其他编程式互动过程完成,虽然在其他实施方式和情况中,在块405中所接收的指示中的一些或全部可以作为代替而按照其他方式由远程客户端或其他客户端发起。
在块405之后,例程继续到块410,以确定块405中所接收的指示是否开始创建代表发请求的客户端所提供的新计算机网络,比如对客户端的现有远程网络的扩展。如果是的话,例程继续到块415以执行各种动作,以便创建新的计算机网络扩展或者代表客户端的其他新计算机网络。例如,如在别处以更多细节描述的,被接收的、用于创建新计算机网络的通信可包括涉及要创建的计算机网络的各种配置信息,比如作为所创建的计算机网络一部分的大量计算节点,对新的计算机网络是否是对另一个远程网络的扩展的指示,等等。块415中所采取的动作可以包括,例如,选择特定计算节点,其可用于可配置的网络服务,以在要创建的新的计算机网络中使用;生成唯一的标识符并且将其与要创建的新计算机网络相关联;存储任何被接收的配置信息供之后使用;等等。正如在别处以更多细节所描述的,在各种实施方式中,可以按照各种方式从一组可用的计算节点中选择这种计算节点,这比如是基于被选择的计算节点的能力,基于被选择的计算节点的网络位置(例如,在可配置的网络服务的基础底层网络上,在相对于计算机网络的其他计算节点的网络位置上,等等),基于被选择的计算节点的地理位置(例如,在多个地理上分布的数据中心的一个中,在相对于计算机网络的其他计算节点的地理位置上,等等),按随机的方式,等等。此外,虽然未在这里示出,例程可为客户端提供唯一的标识符,用于新的计算机网络或者对新的计算机网络的其他参考,以便当执行对新的计算机网络的进一步配置时允许客户端之后引用新的计算机网络。
在块415之后,或者如果作为代替,在块410中确定在块405中接收的指示不创建新的计算机网络,则例程继续到块420以确定在块405处接收的指示是否包括涉及访问限制的信息或者关于被指示计算机网络的其他访问信息。例如,在某些情况下,客户端可以提供一个或多个请求或其他消息,其相对于块405被一起接收和处理,比如对创建新的计算机网络扩展和关于该新的计算机网络扩展的各种具体指定的配置信息的请求-如果是这样,为其提供了访问信息的被指示的计算机网络可以是新的计算机网络扩展,该计算机网络扩展只相对于块415创建。在其他情况和实施方式中,远程客户端可以作为代替而在不同时间提供不同的通信,其相对于块405被接收和处理,比如对创建新的计算机网络的初始请求,以及之后一个或多个其他分离的请求,以具体指定关于之前创建的计算机网络的、各种类型的配置信息。如果在块420中确定访问信息在块405中接收,则例程继续到块422以确定客户端是否已经调用远程访问建立API,或者以其他方式请求从客户端的远程位置建立到被指示的计算机网络的远程访问,其在被示出的实施方式中被执行,这通过开始创建从远程位置处的客户端的一个或多个远程计算系统到被指示的计算机网络的VPN连接。如果是这样,例程继续到块425以执行VPN创建实现例程,以便采取动作以建立远程客户端访问,其中这样一个例程的例子关于图8以更多细节进行了描述。
在块425之后,或者如果作为代替,在块422中确定了访问信息不指示开始在远程客户端位置处创建VPN连接,则例程继续到块430以使用其他具体指定的访问限制信息用于被指示的计算机网络,以便配置对被指示的计算机网络的可允许的访问。正如在别处以更多细节描述的,这些配置信息可包括一些限制,其是关于计算机网络的计算节点中的任何节点是否被允许具有对互联网的访问或者以其他方式访问计算机网络外部,以及有选择地具体指定在计算机网络的计算节点之间的通信访问策略(如果被指示的计算机网络是对远程计算机网络的扩展,则包括计算机网络的远程部分)。所以,在块430中,例程采用一个或多个动作,其可以包括例如,配置要由节点通信管理模块和/或支持计算机网络的外部的通信管理模块所使用的路由信息(例如,通过将消息发送至信息要被配置的通信管理模块),正如在别处以更多细节描述的。此外,如果在块425采取动作以建立从远程客户端位置到被提供的计算机网络的VPN连接,则在块430采取的动作还可包括采取动作以通过被提供的计算机网络或者以其他方式通过代表被提供的计算机网络的可配置的网络服务,来支持这样一个VPN连接,比如通过配置被提供的计算机网络以接受这样一个VPN连接,并且使用适当的信息对被加密用于VPN连接的通信进行解密。
在块430之后,或者如果作为代替,在块420中确定了在块405中的指示不包括访问信息,则例程继续到块440以确定块405中的指示是否包括关于被指示的计算机网络的网络地址信息,比如一个或多个网络地址范围和/或以其他方式具体指定的网络地址。如果是的话,则例程继续到块445以存储具体指定的网络地址信息用于被指示的计算机网络的计算节点,并如果这些计算节点已经被选择或者以其他方式投入使用,比如关于块415和/或462,则可以进一步进行以将这些具体指定的网络地址与被指示的计算机网络的计算节点相关联。将具体指定的网络地址与计算机网络的计算节点相关联,还可包括配置要由节点通信管理模块和/或支持计算机网络的外部的通信管理模块使用的路由信息,正如在别处以更多细节描述的。在块445之后,或者作为代替,在块440中确定了在块405中接收的指示不包括网络地址信息,则例程继续到块455以确定在块405中接收的指示是否包括关于被指示的计算机网络的网络拓扑信息。如果是的话,例程继续到块457以存储关于被指示的计算机网络的网络拓扑信息,并且有选择地进行以按照网络拓扑信息配置被指示的计算机网络。网络拓扑信息的配置可包括配置要由节点通信管理模块和/或支持计算机网络的外部的通信管理模块使用的路由信息,比如模拟作为具体指定的拓扑信息一部分的虚拟联网设备的动作,正如在别处以更多细节描述的。
在块457之后,或者如果作为代替,在块455中确定了在块405中的指示不包括网络拓扑信息,则例程继续到块460以确定块405中的指示是否包括对将计算节点添加到被指示的计算机网络的指示,比如,如果被指示的计算机网络已经被配置成包括具体指定的计算节点的量,但是小于已经选择并投入使用的该具体指定的量。此外,在一些实施方式中,客户端可以按照各种方式修改由可配置的网络服务所提供的现有的计算机网络,甚至是在计算机网络的使用已经开始进行之后,包括修改计算机网络中计算节点的量和/或修改关于计算机网络的网络拓扑信息,正如在别处以更多细节讨论的。如果在块460中确定了所述指示是添加一个或多个计算节点,则例程继续到块462以从可配置的网络服务的一组可用的计算节点中选择一个或多个计算节点添加到被指示计算机网络。正如在别处以更多细节描述的,这些计算节点可以按照各种方式选择。在块464中,被选择的计算节点随后被添加到计算机网络,比如按照类似于之前所讨论的方式(例如,通过将适当的网络地址信息与那些被选择的计算节点相关联,通过按照关于计算机网络扩展的任何具体指定的网络拓扑信息和/或其他访问限制信息为那些被选择的计算节点设定访问权,等等)。
在块464之后,或者如果作为代替,在块460中确定了在块405中的指示不是添加计算节点,则例程继续到块470以确定在块405中的指示是否是将关于被指示的计算机网络的、被配置的访问添加到被指示的远程资源服务。如果是的话,例程继续到块475以配置关于被指示的计算机网络的访问机构,以访问被指示的远程资源服务,这比如通过将关于被指示的计算机网络的一个或多个网络地址映射到远程资源服务,通过配置由节点通信管理模块和/或支持计算机网络的外部的通信管理模块所使用的路由信息,通过配置由外部的通信管理模块对于使用了所述访问机构的通信所采用的动作,等等。例程最后继续到块478,以确定远程资源服务是否具有关于可从被指示的计算机网络访问的资源的特定命名空间,和/或具有和资源一起使用的、关于被指示的计算机网络的一个或多个额外的访问控制指示符,比如可以在块405中指示或者以其他方式由可配置的网络服务自动确定,并且如果是的话,例程继续到块480以将命名空间信息和/或访问控制指示符信息与关于远程资源服务的被配置的访问机构相关联。
在块480之后,或者如果作为代替,在块478中确定了命名空间和/或额外的访问控制指示符未被使用,或者在块470中,块405中的指示未提供对被指示的远程资源服务的访问,则例程继续到块490以便视情况而定有选择地执行一个或多个其他的被指示操作。例如,在完成了特定计算机网络关于客户端的配置之后,例程还可采用一个或多个最终的步骤以提供从远程源对计算机网络的访问,比如从被创建的新计算机网络扩展所属的远程计算机网络。访问的这种提供可包括,例如,为客户端提供信息以使客户端能够访问计算机网络(例如,到计算机网络的、关于VPN的可公开访问的网络地址),配置计算机网络以接受来自远程客户端的通信,等等。另外,例程有时还可执行其他操作(例如,周期性地,当目前的情况超过具体指定的临界值或者以其他方式触发具体指定的情况,等等),比如ping或以其他方式检查用于一些或所有计算机网络的一些或所有计算节点的状态,监控一些或所有计算机网络由远程客户端的使用,监控内部可配置的网络服务资源由一些或所有被提供的计算机网络的使用,使用可配置的网络服务建立并维持客户端的账户,响应来自来自客户端的、对关于他们的账户或者关于他们的被提供的计算机网络的状态信息的请求,从客户端获得关于可配置的网络服务的使用的付款,降低关于被指示的计算机网络的计算节点的量,修改作为被指示的计算机网络一部分的特定计算节点(例如,通过将一个或多个执行程序从在第一地理位置处的计算节点移动至在第二地理位置处的新的计算节点),等等。在块490之后,例程继续到块495以确定是否继续,比如直到接收到明确的指示要终结为止。如果确定要继续,则例程返回到块405,并且如果不是的话,则继续到块499并且结束。
图5是节点通信管理例程500的示例实施方式的流程图。在至少一些实施方式中,该例程通过例如图2中的CNS节点通信管理模块209a、209d、和250的执行来提供,这比如是用于控制到达和来自被提供的计算机网络的相关计算节点的通信。在至少一些实施方式中,例程500可通过可配置的网络服务的大量节点通信管理模块中的每一个来实现,每一个这种模块都与由可配置的网络服务所提供的计算节点中的一个或多个相关联,并且节点通信管理模块中的每一个可以按照各种方式被提供(例如,作为用于物理的主机计算系统的虚拟机监控设备的一部分,其他的虚拟机计算节点在所述物理的主机计算系统上实现;作为独立的代理计算系统或其他计算系统,其控制到达和来自被提供的计算机网络中的一个或多个计算节点的通信;等等)。特别是,在所示实施方式中,节点通信管理模块有助于通过使用虚拟网络提供计算机网络用于客户端,所述虚拟网络叠加在由可配置的网络服务使用的一个或多个基础物理的底层网络上,以与可配置的网络服务的各种计算节点互联,然而在其他实施方式中,被提供的计算机网络可以具有不同于虚拟网络和/或叠加网络的形式。此外,正如在别处以更多细节描述的,在被示出的实施方式中的节点通信管理模块按照关于被提供的计算机网络具体指定的网络拓扑信息来提供功能,比如通过实现模拟虚拟或虚构的联网设备的功能,或者否则按照与这种联网设备所表现得一致的方式来处理通信,然而在其他实施方式中,关于被提供的计算机网络的网络拓扑信息可以作为代替,以其他方式来提供(例如,通过使用相应于网络拓扑的、真实的物理联网设备)。
例程的被示出的实施方式在块505开始,其中接收到节点通信或其他消息的指示。例程继续到块510,以确定被指示消息的类型并且相应地进行处理。特别是,如果确定被指示消息是进入节点通信,其计划用于与和例程对应的通信管理模块相关的一个或多个目的地计算节点,例程继续到块515以确定关于该进入节点通信的一个或多个计划的目的地计算节点。例如,所述进入通信可被引导至一个或多个基础底层网络上的节点通信管理模块,并且经由底层网络发送的通信的头部或其他部分可以包括关于作为虚拟的被提供的计算机网络一部分的目的地计算节点的虚拟网络地址的信息,或者可以按其他方式指示目的地计算节点。正如下面相对于块525讨论的,对经由底层网络进入的通信的处理还可以包括按照适用于目的地计算节点所属的被提供的计算机网络的方式来修改通信,比如通过重新形成通信的头以使用关于目的地和源计算节点的虚拟网络地址。
在块515之后,例程继续到块520,以验证进入通信可允许用于计划的目的地计算节点。正如在别处以更多细节讨论的,进入通信可以按照各种方式被确定是可允许的或不可允许的,比如用于提供防火墙能力或者其他访问控制,使得仅允许来自具体指定的其他计算节点的通信(例如,作为相同的被提供的计算机网络一部分的其他计算节点)和/或使得仅允许具体指定类型的通信(例如,对于来自其他计算系统的至少一些通信,只有通信响应于从被提供的计算机网络的计算节点中的一个发送至这些计算系统的其他通信时)。正如之前所注意到的,至少部分地基于配置信息,可以做出对通信是否可允许的确定,所述配置信息是之前例程所响应的节点通信管理模块具体指定的,比如按照对目的地计算节点和/或这些目的地计算节点所属的被提供的计算机网络的具体方式(例如,基于目的地计算节点所属的被提供的计算机网络的具体指定的网络拓扑信息和/或为被提供的计算机网络具体指定的其他访问限制信息)。另外,在这些实施方式中,叠加虚拟网络用于目的地计算节点所属的被提供的计算机网络,在通信由初始的发送计算节点发送之后,对进入通信的验证可以部分地基于关于叠加网络和/或关于由可配置的网络服务包括在进入通信中的底层网络的信息,比如为了验证所述通信实际上是由据称发送方发送的。
如果确定了进入通信可允许,则该进入通信在块525被提供至关于通信的一个或多个目的地节点,这比如是通过在节点通信管理模块与目的地计算节点之间的一个或多个连接或通信链路上转发通信。在一些实施方式中,进入通信经由基础底层网络发送,该进入通信首先被修改,使得其与被提供的计算机网络一致,这比如是通过按照与被提供的计算机网络一致的形式重新形成进入通信的头(例如,使用相应于用于目的地和源计算节点的被提供的计算机网络的虚拟网络地址)。另外,虽然未在这里示出,如果通信不确定在块520中可允许,例程可以采取各种其他的动作,比如放弃离开节点通信而没有任何对发送计算节点的指示,将错误消息返回发送计算节点,尝试修改可允许的向外通信,等等。
如果作为代替,在块510确定了块505中的被指示消息是来自被提供的计算机网络的相关计算节点的离开节点通信,其由例程所属的节点通信管理模块管理,例程改为继续到块530,以首先验证向外通信是否可允许,比如按照与之前相对于块520所描述的相类似的方式。正如在别处以更多细节讨论的,在各种实施方式中,可以按照各种方式作出向外通信是否可允许的确定,这包括基于关于发送计算节点所属的被提供的计算机网络的具体指定的网络拓扑信息和/或为该被提供的计算机网络具体指定的其他访问限制信息进行确定。在所示实施方式中,被提供的计算机网络是虚拟的叠加网络,并且在计算节点之间的通信经由一个或多个基础底层网络被实际发送。所以,在块530之后,例程继续到块535,以确定一个或多个底层目的地网络地址,其与关于(例如,到管理关于这些目的地计算节点的通信的一个或多个远程节点通信管理模块,到管理关于外部目的地计算系统的通信的外部的通信管理模块,等等的)向外通信的一个或多个目的地计算节点或者其他目的地计算系统相对应,正如在别处以更多细节讨论的。例程随后继续到块540,以将离开节点通信转发至计划的目的地,这通过使用确定的底层目的地网络地址实现。以和相对于块525所描述的相类似的方式,经由基础底层网络转发节点通信可以包括修改向外通信,使得其与底层网络一致,这比如是通过按照与底层网络相一致的方式重新形成向外通信的头(例如,使用确定的底层目的地网络地址和/或包括关于目的地和源计算节点的虚拟网络地址的信息),正如在别处以更多细节描述的。
如果作为代替,在块510中确定了在块505中接收到另一个类型的被指示消息,例程改为继续到块590以视情况而定执行一个或多个其他的被指示操作。例如,其他类型的消息可以包括的配置信息或者其他管理消息,其来自图4的可配置的网络服务管理例程400(例如,用于具体指定要由例程500使用的路由信息或其他配置信息,其用于例程500的实例相对应的一个或多个被提供的计算机网络),来自其他节点通信管理例程(例如,用于传播关于被提供的计算机网络的配置信息),等等。类似地,在一些情况下,例程可以在块590中采取动作以将关于被提供的计算机网络的配置信息发送至其他的节点通信管理模块,比如在从另一个节点通信管理模块或者从可配置的网络服务管理模块接收到信息之后,按照点对点的方式发布这种信息。在至少一些实施方式和情况中,其他的动作可包括各种类型的管理动作或内务动作,比如检查关于一些或所有计算机网络的一些或所有计算节点的状态,监控一些或所有计算机网络由远程客户端的使用,监控内部可配置的网络服务资源由一些或所有被提供的计算机网络的使用,等等。在块525、540、或590之后,例程继续到块595以确定是否继续,比如直到接收到明确的指示要终结为止。如果确定要继续,则例程返回到块505,并且如果不确定,则继续到块599并且结束。
因此,例程500管理到达和来自计算节点的各种类型的通信,所述计算节点作为由可配置的网络服务提供的计算机网络的一部分。虽然在例程的这个示例实施方式中没有分离地示出,但是将认识到,例程500还可以执行关于至少一些通信的配置,以允许一个或多个对之前发送的通信的响应,比如用于开始对话或者其他通信序列。因此,例如,被提供的计算机网络中的特定计算节点可被配置成不接受来自至少一些其他的计算系统(例如,外部的计算系统)的通信,但是如果其响应最初从特定计算节点发送的通信,则可以允许来自这些其他计算系统的通信。所以,在块520中的确定还可以是部分地基于进入通信是否是对之前的向外通信的响应,所述向外通信关于块530-540进行处理。
图6示出外部通信管理例程600的示例实施方式的流程图。该例程例如可以由图2中的外部的通信管理模块的执行来提供,比如用于管理被传递到或传递出数据中心或者由可配置的网络服务所控制的其他组计算节点的通信(例如,在该组受控制的计算节点和位于这些受控制的计算节点外部的位置的其他计算系统之间,比如在客户端的远程位置、远程资源服务、以及在互联网或其他公共网络上一般可访问的其他位置)。正如在别处以更多细节描述的,在被示出的实施方式中的一个或多个外部的通信管理模块按照关于被提供的计算机网络的、具体指定的访问限制信息以及按照关于访问特定远程资源服务的、具体指定的配置信息来提供功能,这比如是通过以与防火墙一致的方式处理通信,和处理由客户端具体指定用于它们的被提供的计算机网络的、和/或由可配置的网络服务具体指定用于其被提供的计算机网络的其他可访问信息。另外,在所示实施方式中,由可配置的网络服务提供的计算机网络是虚拟叠加网络,其使用与由可配置的网络服务提供的计算节点互连的一个或多个基础物理底层网络,然而在其他实施方式中,被提供的计算机网络可以按其他方式实现(例如,不使用虚拟网络和/或叠加网络)。
被示出的例程的实施方式在块605开始,其中接收到达或来自被提供的计算机网络的计算节点的通信的指示或者另一个消息的指示。在块605之后,块610中的例程确定所接收被指示消息的类型,并相应地处理。特别是,如果被指示消息进入由可配置的网络服务所控制的计算节点,并且计划用于被提供的计算机网络中的一个或多个目的地计算节点(例如,经由来自客户端远程位置的、提供了代表其的计算机网络的VPN连接,来自经由Internet的外部的计算系统的VPN连接,等等),例程继续到块612。在块615,例程首先确定进入通信是否是经由客户端的VPN连接发送的,并且如果是的话,继续到块620以有选择地解密或者以其他方式解码通信(例如,如果可配置的网络服务中的其他软件尚未处理这种经由所述VPN连接接收的通信的管理),在其他实施方式中,比如如果在块605中接收通信之前,可配置的网络服务的其他软件和/或硬件管理这种经由VPN连接接收的通信,则可以不执行块615和620。在块620之后,或者如果作为代替,在块615中确定进入通信未经由VPN连接被接收,则例程继续到块625。
以类似于图5中的块530-540的方式执行块625-629。特别是,在块625,例程首先验证进入通信是否是可允许的,这比如是至少部分地基于关于目的地计算节点所属的被提供的计算机网络的、具体指定的网络拓扑信息,和/或是基于关于该被提供的计算机网络的其他访问限制信息。如果所述通信被验证为是可允许的,则例程继续到块627以确定相应于目的地计算节点的一个或多个目的地底层网络地址。在块629,例程随后将通信转发至在底层网络上确定的目的地网络地址,比如,正如之前根据图5中的块515-525所描述的,最终由一个或多个节点通信管理模块进行处理。正如之前所注意到的,如果通信未被验证在块625中允许,则作为代替,可以采用各种其他动作,比如放弃通信。另外,正如在别处以更多细节讨论的,在底层网络上转发通信可以包括按一个或多个与底层网络一致的方式来修改通信。此外,虽然未在这里示出,在至少一些实施方式中,例程可以执行与进入一组受控制的计算节点的通信一致的其他功能(例如,从公共网络到专用网络),比如提供网络地址翻译(“NAT”)和/或端口地址翻译(“PAT”)的功能,提供用于可配置的网络服务的一般防火墙或代理或其他安全功能,等等。
如果作为代替,在块610中确定了被指示消息不是到达被提供的计算机网络中的计算节点的进入通信,而作为代替,其为通过内部底层网络从被提供的计算机网络的计算节点接收的、并且输出到达一个或多个外部目的地计算系统的通信(例如,经由VPN连接到达客户端的远程计算机网络或者客户端的其他远程计算系统,通过互联网到达可远程访问的系统,等等),例程继续到块630。以类似于图5中的块515-525的方式执行块630、635、和645。特别是,在块630,例程确定关于向外通信的、一个或多个远程位置上的一个或多个计划的目的地计算系统,这比如是基于在经由底层网络接收的通信中的信息。在块635,例程随后验证通信是否可允许,比如按和之前所描述的相类似的方式(例如,通过考虑具体指定的网络拓扑信息和/或关于发送计算节点所属的被提供的计算机网络的限制信息)。在块635之后,例程继续到块640以确定向外通信是否经由VPN连接发送至一个或多个远程客户端计算系统,比如客户端的远程计算机网络的一部分。如果是的话,例程继续到块642,以有选择地加密或以其他方式编码关于VPN连接的通信(例如,如果可配置的网络服务的其他软件和/或硬件不处理经由VPN连接发送的通信的这种管理),并随后经由VPN连接将该通信转发至确定的目的地计算系统。在其他实施方式中,维持VPN连接的分离的软件和/或硬件将作为代替而执行这些操作。如果作为代替,在块640中确定了向外通信不经由VPN连接发送,则例程改为继续到块645,以通过互联网或其他公共网络将通信转发至确定的目的地计算系统。正如之前所描述的,例程还可以在通信被外部转发之前进一步修改这种经由底层网络接收的向外通信,比如按照和计算机网络相一致的方式重新形成向外通信的头,通信将在所述计算机网络上经过。此外,虽然未在这里示出,在至少一些实施方式中,例程可执行与从一组受控制的计算节点向外的通信相一致的其他功能(例如,从专用网络到公用网络),比如提供网络地址翻译(“NAT”)和/或端口地址翻译(“PAT”)的功能,提供用于可配置的网络服务的一般防火墙或代理或其他安全功能,等等。
如果作为代替,在块610中确定了被指示消息来自被提供的计算机网络上的计算节点以访问远程资源服务,该远程资源服务具有用于被提供的计算机网络的被配置的访问机构,作为代替,例程继续到块650以执行远程资源服务访问例程,其中例程的一个示例实施方式是根据图7以更多细节描述的。否则,例程继续到块690,以视情况而定执行一个或多个其他被指示的操作,比如响应于其他的被接收消息或被接收信息。这些其他的被指示的操作可具有各种形式,比如相对于图5中的块590以更多细节讨论的。例如,其他类型的消息可包括来自图4中的可配置的网络服务管理例程400的配置信息或管理消息(例如,用于具体指定要由例程600用于一个或多个被提供的计算机网络的路由信息或其他配置信息),来自节点通信管理例程(例如,用于传播关于被提供的计算机网络的配置信息),等等。类似地,在一些情况下,所述例程可在块690中采取动作,以将关于被提供的计算机网络的配置信息发送至节点通信管理模块,比如用于在从其他节点通信管理模块或从可配置的网络服务管理模块接收到信息之后按点对点的方式来发布这种信息。在至少一些实施方式和情况中,其他的动作可以类似地包括各种类型的管理动作或内务动作,比如检查关于一些或所有计算机网络的一些或所有计算节点的状态,监控一些或所有计算机网络由远程客户端的使用,监控内部可配置的网络服务资源由一些或所有被提供的计算机网络的使用,等等。
在块629、642、645、650、或690之后,例程继续到块695以确定是否继续,比如直到接收到明确的指示要终结为止。如果确定要继续,例程返回到块605,并且如果不是,则例程继续到块699并且结束。
因此,例程600管理到达和来自计算节点的各种类型的通信,所述计算节点作为由可配置的网络服务提供的计算机网络的一部分。虽然在例程的这个示例实施方式中没有分离地示出,但是应理解,例程600还可以执行关于至少一些通信的配置,以允许一个或多个对之前发送的通信的响应,比如开始对话或者其他通信序列。因此,例如,被特别提供的计算机网络可被配置成防止任何外部的计算系统发起到该计算机网络的计算节点的通信,但是可以允许这样一个外部的计算系统相应于最初从该计算机网络的计算节点发送到外部计算系统的通信。所以,块625中的确定还可以是部分地基于进入通信是否响应根据块630-645处理的之前的向外通信。类似地,正如相对于块650以更多细节讨论的,对于被发起的访问远程资源服务的通信,来自远程资源服务的响应可配置成要被允许,比如根据块615-629,或者作为代替,以另一种方式。
图7是远程资源服务访问例程700的示例实施方式的流程图。该例程例如可以由图2中的外部的通信管理模块270的执行来提供,比如可以通过图6中的块650的执行来发起。例程管理由被提供的计算机网络的计算节点进行的通信到达远程资源服务,并且特别是到达其中被提供的计算机网络之前已经被配置成提供具体指定的访问的远程资源服务,比如连同图4中的块475-480一起。正如在别处以更多细节讨论的,在至少一些实施方式中,被提供的计算机网络可被配置成提供到特定远程资源服务的具体指定的访问(例如,这是通过在该被提供的计算机网络上分配一个或多个网络地址以代表远程资源服务),并且底层物理网络可被配置成将相应通信转发至外部的通信管理模块,所述外部的通信管理模块管理外部通信,其中外部的通信管理模块视情况而定配置成管理这些被转发的通信。
在所示实施方式中,例程在块705开始,其中接收从被提供的计算机网络的计算节点到达远程资源服务的通信的指示,对该远程资源服务提供被配置的访问机构,用于所述计算机网络,这比如是基于用于所述通信的网络地址。例程随后继续到块710,在该块710中恢复配置信息,该配置信息之前被具体指定用于通信的访问机构,在块715,例程随后比如基于所恢复的配置信息,确定为其计划了通信的目的地远程资源服务。
在块715之后,例程继续到块725,以比如按根据图5中的块520和530以及图6中的块625和635所讨论的相类似的方式来确定通信是否是可允许的。此外,还可以在至少一些情况和实施方式中作出该确定,这是基于为访问机构所使用的所恢复的配置信息,比如仅允许关于某些被配置的访问机构的某些类型的通信。如果所述通信被确定是可允许的,例程随后继续到块730,以按基于之前用于所述访问机构的配置的方式有选择地修改通信。例如,正如在别处以更多细节讨论的,访问机构可被配置成修改通信,以相应于由远程资源服务使用的特定命名空间,以包括关于计算节点的被提供的计算机网络的信息,所述计算节点发送关于计算节点位置的通信或其他信息用于由远程资源服务进行验证的目的,等等。
例程随后继续到块735,以按关于确定的远程资源服务特殊的方式有选择地执行关于通信的、与额外验证相关的活动。例如,正如在别处以更多细节讨论的,至少一些远程资源服务可隶属于可配置的网络服务,或否则以特权方式允许可配置的网络服务访问远程资源服务,所述特权方式未通过公共网络被提供至与远程资源服务通信的未认证的请求者。如果是这样,例程可以执行与认证相关的活动,该活动例如使得远程资源服务能够确定通信是否是从受信任的或者以其他方式已知的请求者发送的,这比如是通过修改该通信以包括相应于可配置的网络服务的标识符(例如,这是基于在可配置的网络服务与远程资源服务之间的在前的互动过程,这比如是通过包括基于作为被修改的通信的一部分的标识符的数字签名)。
在块735之后,例程随后继续到块745,以有选择地加密通信,或者以其他方式访问到达确定的远程资源服务的安全连接(例如,与特定隶属远程资源服务的VPN连接,到达远程资源服务的专门租用的线路或其他通信链路,等等),并且将通信转发至确定的远程资源服务。被转发的通信可以例如在互联网或一个或多个其他公共网络上发送,或者可以作为代替,在一些实施方式中经由专用通信链路或其他安全连接发送。在块745之后,例程继续到块799并且结束。
图8是VPN创建实现例程800的示例实施方式的流程图。例程可以通过例如可配置的网络服务管理模块的执行来提供,这比如可以是基于图4中的块425的执行来实现的,其由可配置的网络服务的实施方式所提供的远程访问建立API的客户端请求产生。
在所示实施方式中,例程在块805开始,在该块805中,接收建立VPN连接的客户端请求的指示,所述VPN连接从客户端的远程位置(例如,客户端的远程专用计算机网络)到关于客户端的被提供的计算机网络(例如,由可配置的网络服务提供用于客户端的远程专用计算机网络的网络扩展)。在至少一些实施方式中,由客户端请求建立VPN连接是用于实现对要被提供至客户端的远程位置的一个或多个适当联网设备以及相应软件和/或配置信息的订购的请求的一部分,以便能够通过可配置的网络服务建立从远程客户端位置上的一个或多个计算系统到被提供用于客户端的计算机网络的VPN连接。在至少一些实施方式中,订购的实现可以通过可配置的网络服务执行,而没有在远程访问建立API的请求或者来自客户端请求的其他发起之后由客户端进行任何进一步的动作,然而在其他实施方式中,一些与客户端的额外互动过程可以被执行,作为订购的实现的一部分(例如,代表对客户端的选择,获得来自客户端的额外信息,获得来自客户端的支付信息,等等)。
在块815,例程随后获得用于实现请求的、关于客户端的各种信息,这比如可以是在块805中接收到的请求中提供,之前从客户端接收并且使用可配置的网络服务从客户端账户恢复,和/或从客户端和/或一个或多个外部源动态地获得。所获得的信息可以具有各种形式,比如关于可向其物理地发送联网设备和其他项目的客户端地理位置的信息,可向其电子地发送电子信息的电子通信地址,客户端将经由其支付关于在块805中所接收的请求的费用的支付信息,等等。另外,可获得各种信息以协助配置在远程客户端位置与被提供的计算机网络之间的、用于客户端的VPN连接,比如可从远程客户端位置(或其他相应连接信息)公共访问以开始VPN连接的网络地址,用于识别要向其建立VPN连接的被提供的计算机网络的唯一标示符或者其他信息,等等。
在块815之后,例程继续到块825,以确定一个或多个适当的联网设备,用于和客户端的一个或多个远程计算系统一起使用,以建立到被提供的计算机网络的VPN连接。正如在别处以更多细节讨论的,可以按各种方式确定适当的联网设备,比如基于对客户端的被提供的计算机网络特殊的信息,对客户端的远程计算系统特殊的信息,和/或对可配置的网络服务特殊的信息(例如,这是基于作为可配置的网络服务的底层网络或可配置的网络服务的其他基础设施的一部分使用的联网设备)。此外,在各种实施方式中,可以按各种方式作出对适当联网设备的确定,比如自动地通过可配置的网络服务和/或至少部分地基于来自客户端的信息(例如,基于作为在块805中被接收的或以其他方式由客户端具体指定的请求的一部分的、由客户端作出的选择,比如在呈现给客户端的多个备选方案之间进行选择)。
在块825之后,例程继续到块835,以生成关于确定的联网设备的配置信息,用于准备联网设备以连接到被提供的计算机网络用于客户端,然而在其他实施方式中,该例程可指示第三方实体生成配置信息(例如,在块845中,相同的零售商将被联系)。在至少一些实施方式中,关于确定的联网设备的配置信息将导致被配置的联网设备发起与可配置的网络服务的联系,以完成对被配置的联网设备的配置(例如,通过以对被特别提供的计算机网络具体的方式,从可配置的网络服务获得额外的信息以配置联网设备)。另外,在至少一些实施方式中,关于确定的联网设备的配置信息将导致被配置的联网设备发起与客户端的被提供的计算机网络联系,比如建立到被提供的计算机网络的VPN连接。在一些实施方式中,所生成的配置信息对确定的联网设备的类型和/或对被提供的计算机网络可以是特殊的,所确定的联网设备将建立到所述被提供的计算机网络的VPN连接,并且生成配置信息可包括恢复之前准备的配置信息和/或动态创建新的配置信息(例如,通过按对确定的联网设备和/或对被提供的计算机网络具体的方式来修改之前准备的配置信息,比如,如果之前准备的配置信息用于与任何联网设备和/或与任何被提供的计算机网络一起使用)。所述生成的配置信息类似地可具有各种形式,比如要在硬件设备上实现的被配置的软件,供远程位置处的操作人员使用的文字指令,等等。
在块845,例程随后发起与零售商的订购,以将预定的联网设备提供至远程客户端位置用于与客户端中的一个或多个远程计算系统一起使用,并且在被示出的实施方式中还开始将所生成的配置信息提供至客户端,用于与联网设备一起使用。在这种实施方式中,所生成的配置信息可按各种方式被提供至零售商,比如通过发送配置信息作为订购的一部分,通过在块835中事先命令零售商生成配置信息,等等。正如在别处以更多细节讨论的,所生成的配置信息可以按各种方式被提供至客户端,所述方式包括下列项中的一个或多个:通过将所生成的配置信息存储在物理设备可读的、被物理地传递至客户端的储存器媒体(例如,CD、DVD、USB存储键,等等);通过在配置信息被传递至客户端之前使用所生成的配置信息来配置联网设备(例如,通过将所生成的配置信息加载到由零售商所使用的实现中心处的联网设备上);通过将所生成的配置信息电子地传输至客户端;等等。在其他实施方式中,可按其他方式将联网设备和/或配置信息提供至客户端,这比如是通过使联网设备和所生成配置中的一个或两个由可配置的网络服务直接提供而不是由零售商提供,通过使用第一零售商提供联网设备并且使用不同的第二零售商提供所生成的配置信息,通过使用不是零售商的一个或多个第三方,等等。在块845之后,例程继续到块899并且结束。
应认识到,在一些实施方式中,由以上所讨论的例程所提供的功能可以按可选方式来提供,比如在多个例程之间进行分离或者联合到较少例程中。类似地,在一些实施方式中,比如当其他被示出的例程相应地代替地缺少或者包括这种功能,或者当被提供的功能的量是可改变的时,被示出的例程可提供和所讨论的相比差不多的功能。另外,虽然各种操作可以被示出为按特定方式(例如,串行或并行)和/或按特定顺序执行,本领域中的技术人员将理解的是,在其他实施方式中,这些操作可以按其他的顺序和其他的方式执行。本领域中的技术人员还将理解的是,以上所讨论的数据结构可按不同的方式构造,这比如是通过将单个数据结构分离成多个数据结构,或者将多个数据结构联合成单个数据结构。类似地,在一些实施方式中,比如当其他被示出的数据结构代替地相应地缺少或者包括这种功能,或者当被存储的信息类型的数量是可改变的时,被示出的数据结构可存储和所描述的差不多的信息。
条款1.一种用于可配置的网络服务的计算系统以提供具有对远程网络服务的本地网络访问的专用计算机网络的方法,所述方法包括:
提供用于可配置的网络服务的编程性接口,以使得远程用户能够创建和配置对远程用户的远程专用计算机网络的网络扩展,可配置的网络服务包括多个计算系统,其用于提供所创建的对远程用户的网络扩展;以及
在可配置的网络服务的计算系统的控制下,并用于多个远程用户中的每一个;
接收由远程用户经由被提供的编程性接口来编程式地提供的配置信息,以便创建和配置对用户的远程专用计算机网络的本地专用网络扩展,所述专用网络扩展由可配置的网络服务提供,并且包括若干个计算系统中的多个的子集,所接收的配置信息包括要分配给多个计算系统的专用计算机网络的多个专用网络地址的用户指定子集,并包括在可从专用网络扩展中的多个计算系统访问的专用计算机网络外部的远程资源服务的指示,并且包括防止从对外部的计算系统的专用网络扩展进行访问的网络访问限制信息,所述外部的计算系统不是专用计算机网络的一部分;
按照所接收的配置信息,自动配置所述用户的专用网络扩展,所述配置包括:将多个计算系统中的每一个与专用网络地址的用户具体指定子集中的一个相关联,并且包括分配专用网络地址的用户具体指定子集中的一个来代表远程资源服务,并且包括执行配置以防止通信从多个计算系统发送至并非所述多个专用网络地址一部分的其他网络地址;以及
自动管理在专用网络扩展上发送的通信,所述管理包括,关于发送至被分配给所述远程资源服务的专用网络地址的一个或多个通信中的每一个,经由在专用计算机网络外部的一个或多个公共网络将通信转发至所述远程资源服务。
条款2.如条款1中所述的方法,其中对于多个用户中的一个而言,所述对一个用户的专用网络扩展的自动配置包括,配置在所述专用网络扩展的多个计算系统与所述一个用户的远程专用计算机网络的多个其他计算系统之间的虚拟专用网络连接,以便能够进行专用访问;所述对在专用网络扩展上发送的通信的自动管理还包括,经由所配置的虚拟专用网络连接,在所述专用网络扩展的多个计算系统与所述一个用户的远程专用计算机网络的多个其他计算系统之间提供专用访问;并且执行所述配置以防止通信从多个计算系统到达并非多个专用网络地址的一部分的其他网络地址包括,配置一个或多个联网设备以防止在所述一个用户的专用计算机网络与在所述一个用户的专用计算机网络外部的任何计算系统之间的通信。
条款3.如条款2中所述的方法,其中所述可配置的网络服务是可经由公共网络访问远程用户的付费服务,并且该付费服务提供使用了云计算技术的网络扩展,并且其中所述多个远程用户是所述可配置的网络服务的用户,其为了通过可配置的网络服务提供给用户的所创建的网络扩展而向所述可配置的网络服务进行付费。
条款4.一种用于提供对远程网络服务的本地网络访问的计算机实现的方法,所述方法包括:
受到向多个远程客户提供专用计算机网络的可配置的网络服务中的一个或多个计算系统的控制,
从第一远程客户接收一个或多个请求,以发起为包括了多个计算节点的第一专用计算机网络的第一客户的创建,并且具体指定关于所述第一专用计算机网络的配置信息,所述配置信息包括用于所述第一专用计算机网络的多个具体指定的网络地址,并且包括对提供了计算相关资源的可网络访问远程资源服务的指示,并且包括网络访问限制信息以限制所述第一专用计算机网络中的多个计算节点对并非所述第一专用计算机网络一部分的计算系统的访问;
按照所述配置信息,自动配置所述第一专用计算机网络,所述配置包括将所述计算节点中的每一个与所述具体指定的网络地址中的一个相关联,并且包括分配所述具体指定的网络地址中被指示的一个来代表所述被指示的远程资源服务,并且包括执行配置以防止至少一些通信从多个计算节点到并非所述具体指定的网络地址一部分的网络地址,所述多个计算节点是由所述可配置的网络服务提供的若干个计算节点的子集;以及
按照所述配置信息,管理由所述多个计算节点发送的通信,所述管理包括,对于由多个计算节点中的一个或多个发送至所指示的网络地址的一个或多个通信,经由在第一专用计算机网络外部的一个或多个网络将一个或多个通信转发至远程资源服务。
条款5.如条款4中所述的方法,其中包括在所述具体指定的配置信息中的所述网络访问限制信息禁止所述第一专用计算机网络中的多个计算节点对并非所述第一专用计算机网络一部分的计算系统的访问,其不同于所述远程资源服务中的一个或多个计算系统,并且其中执行所述配置以防止从多个计算节点到并非所述具体指定的网络地址的一部分的其他网络地址的至少一些通信包括,防止任何通信从所述多个计算节点被发送至并非所述具体指定的网络地址一部分的其他网络地址。
条款6.如条款4中所述的方法,其中所述专用计算机网络由所述可配置的网络服务提供作为在所述可配置的网络服务的物理底层网络上叠加的虚拟网络,其互连了由所述可配置的网络服务所提供的多个计算节点,其中所述具体指定的网络地址是虚拟网络地址,并且其中所述被指示的远程资源服务具有作为所述底层网络一部分的被配置的本地接入点,使得通过一个或多个计算节点发送至所指示的网络地址的所述一个或多个通信被提供至所指示的远程资源服务中的被配置的本地接入点。
条款7.如条款6中所述的方法,其中在作为所叠加虚拟网络一部分的多个计算节点之间发送的通信在底层网络上传输,并且被编码以使用在传输期间对底层网络特殊的信息,其中所述可配置的网络服务提供多个模块,其将来自多个计算节点的向外通信修改成要在所述底层网络上传输之前使用对底层网络特殊的信息来进行编码,并且其修改到达多个计算节点的进入通信以在底层网络上传输之后移除对底层网络特殊的被编码信息,其中所述将一个或多个通信提供至被配置的本地接入点包括,经由底层网络,使用了对所述底层网络特殊的被编码信息,将所述一个或多个通信传输至所述被配置的本地接入点,并且其中所指示远程资源服务的本地接入点被配置成管理在底层网络上传输的通信,其使用对所述底层网络特殊的信息进行编码。
条款8.如条款6中所述的方法,其中所指示的远程资源服务中的所述被配置的本地接入点由所述可配置的网络服务所提供的计算节点来提供,其中所述一个或多个外部网络是公共网络,并且其中所指示的远程资源服务中的被配置的本地接入点管理了将所述一个或多个通信从所述底层网络以安全的方式通过所述一个或多个外部的公共网络转发至所述远程资源服务。
条款9.如条款6中所述的方法,其中所述第一客户是多个远程客户中的一个,其中所述可配置的网络服务中的一个或多个计算系统还配置和提供不同于所述第一专用计算机网络的多个专用计算机网络给不同于所述第一客户的所述多个远程客户,其中所述多个其他专用计算机网络中的至少一些被配置成将这至少一些其他专用计算机网络中的其他网络地址分配给所指示的远程资源服务,并且其中管理关于所述至少一些其他专用计算机网络的通信包括将被发送至其他网络地址的其他通信转发至所指示的远程资源服务中的被配置的本地接入点。
条款10.如条款6中所述的方法,其中所述第一专用计算机网络还被配置成分配所述具体指定的网络地址中不同的第二个地址以代表第二远程资源服务,其中所述第二远程资源服务具有作为所述底层网络一部分的被配置的第二本地接入点,并且其与所指示的远程资源服务中的被配置的本地接入点有所不同,并且其中对由所述多个计算节点所发送的通信的管理包括,对于由多个计算节点中的一个或多个发送至所述第二网络地址的一个或多个其他通信,通过将所述一个或多个其他通信提供至所述第二远程资源服务中所配置的第二本地接入点,来将所述一个或多个其他通信转发至所述第二远程资源服务。
条款11.如条款4中所述的方法,其中所述可配置的网络服务提供管理了在多个计算节点之间通信的多个模块,并且其中所述第一专用计算机网络的自动管理包括配置所述可配置的网络服务中的多个模块,以将被发送至所指示网络地址的通信通过一个或多个外部网络转发至所述远程资源服务。
条款12.如条款4中所述的方法,其中由所述可配置的网络服务提供的所述多个计算节点位于单个地理位置上,其中所述可配置的网络服务中的一个或多个计算系统还将第二计算机网络提供给第二客户,该第二客户使用了若干个计算节点中的多个其他的计算节点,其不同于所述第一专用计算机网络中的多个计算节点,其中所述第二计算机网络中的多个其他计算节点中的至少一个提供了对其他计算节点可用的、可网络访问的远程服务,并且其中所指示的远程资源服务是由使用了所述第二计算机网络的第二客户所提供的远程服务。
条款13.如条款12中所述的方法,其中所述第一专用计算机网络和所述第二计算机网络由所述可配置的网络服务提供作为在可配置的网络服务的物理底层网络上叠加的不同虚拟网络,其互连所述多个计算节点,并且其中经由所述一个或多个外部网络将所述一个或多个通信转发至所述远程资源服务包括将所述一个或多个通信经由所述底层网络从所述第一专用计算机网络转发至所述第二计算机网络中的至少一个其他计算节点中的一个或多个。
条款14.如条款4中所述的方法,其中所述第一专用计算机网络被配置成是对包括了多个计算系统的、所述第一客户的远程专用计算机网络的扩展,其中所述具体指定的多个网络地址是用于所述远程专用计算机网络的若干个专用网络地址的子集,并且其中所述第一专用计算机网络的自动配置还使得能够在所述第一客户的远程专用计算机网络中的多个计算系统与所述第一专用计算机网络中的多个计算节点之间进行专用访问。
条款15.如条款14中所述的方法,其中对由所述多个计算节点发送的通信的管理还包括管理从所述远程专用计算机网络中的多个计算系统发送至所述第一专用计算机网络的通信,对从所述多个计算机系统发送的通信的管理包括,对于由所述多个计算系统中的一个或多个发送至所指示的网络地址的一个或多个其他通信,将所述一个或多个其他通信经由所述一个或多个外部网络转发至所述远程资源服务。
条款16.如条款4中所述的方法,其中所述第一客户的一个或多个请求是基于由所述可配置的网络服务提供的一个或多个编程性接口的请求来编程式地作出的,其用于供所述多个远程客户在配置由所述可配置的网络服务所提供的专用计算机网络时使用,其中所述具体指定的配置信息中的网络访问限制信息还控制了在所述第一专用计算机网络中的多个计算节点之间的通信,并且其中所述第一专用计算机网络的自动配置包括从所述多个计算节点中自动选择所述多个计算节点用作所述第一专用计算机网络的一部分,并且自动配置被进一步执行以按照所述具体指定的网络访问限制信息来允许和阻止在所述多个计算节点之间的通信。
条款17.如条款4中所述的方法,还包括,受所述远程资源服务的控制:
接收从所述第一专用计算机网络中的多个计算节点经由所指示的网络地址发送的通信,以访问所述计算相关资源的子集中的至少一些,所接收的通信包括所述标识符的指示;以及,
从与所指示的标识符相关的所述命名空间提供对所述至少一些计算相关资源的访问。
条款18.如条款4中所述的方法,其中由所指示的远程资源服务提供的所述计算相关资源包括用于数据储存器服务、和程序执行服务、和异步消息传递服务中的至少一个的资源,其中所述多个计算节点每个都是在所述可配置的网络服务的多个物理计算系统中的一个上被主机托管的虚拟机,并且其中对所述第一专用计算机网络的配置包括配置一个或多个虚拟机通信管理模块,其在所述物理的计算系统中的一个或多个上执行,以管理关于所述被主机托管的虚拟机的通信。
条款19.如条款4中所述的方法,其中所述被提供至所述多个远程客户的专用计算机网络包括用于不同于所述第一客户的一个或多个客户的、不同于所述第一专用计算机网络的一个或多个被提供的专用计算机网络,其具有的由所述一个或多个其他客户具体指定的一个或多个网络地址与用于所述第一专用计算机网络的具体指定的所述多个网络地址中的至少一个相同,并且其中,所述可配置的网络服务还管理这些相同的网络地址,使得对于这些相同网络地址中的每一个,所述其他专用计算机网络中的每一个都具有相应于网络地址的计算节点,该计算节点不同于和用于所述第一专用计算机网络的网络地址相对应的计算节点。
条款20.如条款4中所述的方法,其中通过所述可配置的网络服务中的一个或多个计算系统将所述专用计算机网络提供给所述多个远程客户包括,许可所述第一客户选择任何网络地址用于被具体指定用于所述第一专用计算机网络的多个网络地址。
条款21.如条款4中所述的方法,其中来自所述第一客户的一个或多个请求基于所述第一客户与在所述第一客户的计算设备上显示给该第一客户的图形用户界面之间的一个或多个互动过程被发起。
条款22.一种计算机可读介质,其内容使得计算系统能够提供对远程网络服务的本地网络访问,这通过执行一种方法实现,所述方法包括:
为多个远程客户端中的每一个,
接收来自所述客户端的第一信息,以配置对所述客户端的远程专用计算机网络的网络扩展,所述网络扩展被提供由所述客户端使用,并且所述第一信息包括被具体指定用于所述被提供的网络扩展的一个或多个专用网络地址;
获得第二信息以配置从所述专用计算机网络对可网络访问的资源服务的访问;
自动配置所提供的网络扩展,以使得能够访问所述资源服务,所述配置包括关联所述具体指定的专用网络地址中被指定的一个,以代表所述资源服务,使得由所述专用计算机网络的计算节点发送给所指示的专用网络地址的通信在不同于所述专用计算机网络的一个或多个网络上转发至所述资源服务;以及
启用关于所述客户端的、所述被配置的被提供网络扩展的可用性。
条款23.如条款22中所述的计算机可读介质,其中所述计算系统是所述可配置的网络服务的一部分,其将所述网络扩展提供给多个远程客户端,并且提供编程性的接口用于供所述多个远程客户端使用以便与所述可配置的网络服务互动,其中,对于所述多个客户端中的第一个,所述可配置的网络服务为其提供了第一网络扩展,所述第一信息经由第一客户端与所述编程性接口的一个或多个互动过程来接收,并且包括关于所述第一网络扩展的配置信息,所述配置信息包括关于所述第一网络扩展的多个具体指定的专用网络地址,并且包括所述第一网络扩展中的所指示网络地址相关的所述资源服务的指示,并且包括阻止了所述第一网络扩展中的多个计算节点对计算系统的访问的网络访问限制信息,所述计算系统不是所述网络扩展所属的专用计算机网络的一部分,所指示资源服务位于所述第一专用网络扩展的远程位置,其中所述第一网络扩展的自动配置进一步按照所包括的配置信息来执行,并且包括将所述多个计算节点中的每一个与所述多个具体指定的专用网络地址中的一个相关联,并且其中,所述方法还包括,在接收到由所述第一网络扩展的多个计算节点中的一个或多个发送至关于所述第一网络扩展的所指示网络地址的一个或多个通信之后,经由一个或多个公共网络将所接收通信转发至所指示网络地址相关的远程资源服务,以使得所述多个计算节点能够访问由所述远程资源服务所提供的计算相关资源。
条款24.如条款22中所述的计算机可读介质,其中所述计算系统是可配置的网络服务的一部分,其使用了多个位于同一位置的计算节点向多个远程客户端提供网络扩展,使得所提供网络扩展中的每一个成为使用了若干个计算节点中的多个的子集的不同网络,并且其中,对于所述多个客户端中的第一个,所述可配置的网络服务为其提供了第一网络扩展,关于所述第一网络扩展,使得能够访问的所述资源服务是由所述多个远程客户端中的另一个所提供的资源服务,这使用了由所述可配置的网络服务所提供的另一个网络扩展。
条款25.如条款22中所述的计算机可读介质,其中所述计算机可读介质是计算系统的存储器中的至少一个,其存储内容和数据传输介质,该数据传输介质包括了包含所述内容的被生成的存储数据信号,并且其中所述内容是执行时会导致所述计算系统执行所述方法的指令。
条款26.一种被配置成提供对远程网络服务的本地网络访问的计算系统,其包括:
一个或多个存储器;以及
可配置的网络服务管理模块,其被配置成为多个远程客户端中的每一个自动提供为了供远程客户端使用而创建的计算机网络,:
接收由客户端所提供的配置信息以配置为了供所述客户端使用而创建的计算机网络,所述配置信息包括一个或多个可网络访问的远程资源服务的指示,所述远程资源服务可经由所创建的计算机网络由被提供作为所创建的计算机网络一部分的多个计算节点访问;
按照所接收的配置信息自动配置所创建的计算机网络用于所述客户端,所述配置包括建立一个或多个访问机构,其是所创建的计算机网络的一部分,并且与所指示的远程资源服务相关联,所述关联是以使得通信要经由所建立的访问机构从所述多个计算节点发送至所指示的远程资源服务的这样一种方式实现的;以及
为所述客户端提供对所创建计算机网络中的多个计算节点的访问。
条款27.如条款26中所述的计算系统,其中所述可配置的网络服务管理模块是可配置的网络服务的一部分,并且提供用于供所述多个远程客户端使用的编程性接口,以配置为了供所述客户端使用而创建的计算机网络,其中所创建的计算机网络中每一个的所述多个计算节点是由所述可配置的网络服务所提供用于所创建的计算机网络的若干个计算节点的子集,并且其中,对于所述多个客户端的至少一些中的每一个,由所述客户端所提供的配置信息是经由所述编程性接口编程式地提供的,并且还包括关于为所述客户端所创建的计算机网络的额外配置信息,所述额外配置信息包括用于所创建的计算机网络的多个具体指定的网络地址,并且包括网络访问限制信息以防止所创建的计算机网络中的多个计算节点对并非所创建的计算机网络一部分的计算系统的访问,并且按照所接收的配置信息、为所述客户端创建的计算机网络的自动配置包括,自动选择所述多个计算节点用作所创建的计算机网络的一部分,并且将所述多个计算节点中的每一个与所述具体指定的网络地址中的一个相关联。
条款28.如条款27中所述的计算系统,其中对于所述至少一些客户端中的每一个,所述被创建和被配置用于供所述客户端使用的计算机网络是对所述客户端的远程专用计算机网络的专用计算机网络扩展,与所指定的远程资源服务相关的所创建的计算机网络中的一个或多个访问机构的建立包括,将关于所创建的计算机网络的所述多个具体指定的网络地址中的一个分配给所指示的远程资源服务中的每一个,所创建的计算机网络的自动配置还使得能够在所述远程专用计算机网络与所述专用计算机网络扩展的多个计算节点之间进行专用访问,并且给所述客户端提供对所创建计算机网络中的多个计算节点的访问包括管理由所述创建的计算机网络中的多个计算节点所发送的通信,所述管理包括,对于由所述多个计算节点中的一个或多个发送至一个所分配网络地址的一个或多个通信中的每一个,将所接收到的通信转发至所述远程资源服务,网络地址经由在所创建的计算机网络外部的一个或多个公共网络被分配给所述远程资源服务,以使得所述多个计算节点能够访问由该远程资源服务所提供的计算相关资源。
条款29.如条款26中所述的计算系统,其中所述可配置的网络服务管理模块包括用于由所述计算系统执行的软件指令。
条款30.如条款26中所述的计算系统,其中所述可配置的网络服务管理模块由一种装置组成,所述装置用于通过以下步骤为所述多个远程客户端中的每一个自动地提供被创建供远程客户端使用的计算机网络:
接收由所述客户端所提供的配置信息,以配置被创建用于供所述客户端使用的计算机网络,所述配置信息包括对一个或多个可网络访问的远程资源服务的指示,所述远程资源服务可经由所创建的计算机网络由被提供作为所创建的计算机网络的一部分的多个计算节点访问;
按照所接收的配置信息,自动配置所创建的计算机网络用于所述客户端,所述配置包括建立一个或多个访问机构,其为所创建的计算机网络的一部分,并且与所指示的远程资源服务相关联,所述关联是以使得通信要经由所建立的访问机构从所述多个计算节点发送至所指示的远程资源服务的这样一种方式实现的;以及
为所述客户端提供对所创建计算机网络中的多个计算节点的访问。
从上述内容,将认识到,虽然此处已经出于说明目的描述了特殊的实施方式,但是可以作出各种修改而不偏离本发明的精神和范围。所以,除非由所附权利要求和其中所列举的元件限制,本发明不受限制。另外,虽然本发明的某些方面在下面以确定的权利要求的形式来表现,但是发明人是以任何可用的权利要求形式考虑本发明的各个方面的。例如,虽然目前本发明仅有一些方面可以被列举为包含在计算机可读介质中,但是其他方面可以同样被如此包含。

Claims (25)

1.一种存储有内容的非瞬时性计算机可读介质,所述内容将可配置的网络服务的计算系统配置为:
基于从所述可配置的网络服务的客户端接收到的第一配置信息,在所述可配置的网络服务处为所述客户端创建专用虚拟网络,所述专用虚拟网络包括与多个专用网络地址相关联的多个计算节点;
经由所提供的所述可配置的网络服务的编程接口,接收针对所述专用虚拟网络的第二配置信息,所述第二配置信息指定在所述专用虚拟网络外部的所指示的服务;
通过指派所述多个专用网络地址中的专用网络地址以在所述专用虚拟网络中表示所指示的服务,在所述专用虚拟网络中配置表示所指示的服务的本地访问机制;以及
向所指示的服务转发向所指派的专用网络地址发送的通信。
2.根据权利要求1所述的非瞬时性计算机可读介质,其中,所存储的内容还将所述计算系统配置为:
配置所述可配置的网络服务和远程计算机网络的一个或更多个计算系统之间的虚拟专用网络连接;以及
经由所述虚拟专用网络连接在所述专用虚拟网络的所述计算节点和所述远程计算机网络的所述一个或更多个计算系统之间转发一个或更多个附加通信。
3.根据权利要求2所述的非瞬时性计算机可读介质,其中,所述多个虚拟网络地址是所述远程计算机网络的多个专用网络地址的子集,并且所述专用虚拟网络的创建包括:将所述专用虚拟网络配置为所述远程计算机网络的扩展。
4.根据权利要求1所述的非瞬时性计算机可读介质,其中,所接收的配置信息还包括用于防止从所述专用虚拟网络到与所述多个专用网络地址不相关联的外部计算系统的访问的网络访问限制信息。
5.根据权利要求1所述的非瞬时性计算机可读介质,其中,所接收的第一配置信息还指定使用所述专用虚拟网络具有的所述多个专用网络地址,所述专用虚拟网络的创建包括向所述多个计算节点指派所述多个专用网络地址中的多个专用网络地址,并且将所指派的用于表示所述专用虚拟网络中的所指示的服务的所述专用网络地址选择为与所述多个专用网络地址不同。
6.根据权利要求1所述的非瞬时性计算机可读介质,其中,所存储的内容还将所述计算系统配置为:
经由所提供的编程接口接收第三配置信息,所述第三配置信息指定在所述远程专用计算机网络外部并在所述专用虚拟网络外部的一个或更多个附加服务;以及
针对所述附加服务中的每一个,在所述专用虚拟网络中创建表示所述附加服务的不同的本地访问机制,所创建的本地访问机制中的每一个具有与所述多个计算节点中的任意一个均不相关联的所述多个专用网络地址中所指派的不同的专用网络地址。
7.根据权利要求1所述的非瞬时性计算机可读介质,其中,所指示的服务是数据存储服务、程序执行服务或异步消息传递服务。
8.根据权利要求1所述的非瞬时性计算机可读介质,其中,所提供的编程接口包括“应用编程接口”API,并且所述第一配置信息和所述第二配置信息中的一个或两者的接收是基于远程计算系统代表所述客户端对API的调用。
9.一种计算机实现的方法,包括:
由在一个或更多个计算机系统上执行的可配置的网络服务从所述可配置的网络服务的客户端接收用于配置虚拟网络的第一配置信息,所述第一配置信息从远程计算机网络所使用的地址范围中指定多个专用网络地址;
由所述可配置的网络服务基于所述第一配置信息创建所述虚拟网络,所创建的虚拟网络包括多个计算节点,每个所述计算节点与所指定的专用网络地址之一相关联;
由所述可配置的网络服务接收第二配置信息,所述第二配置信息指定在所述远程计算机网络外部且在所创建的虚拟网络外部的所指示的服务;
由所述可配置的网络服务在所创建的虚拟网络中创建表示所指示的服务且使通信能够从所创建的虚拟网络中的所述多个计算节点转发到所指示的服务的本地访问机制,所述创建包括指派所指定的专用网络地址之一以表示所创建的虚拟网络中的所指示的服务;以及
由所述可配置的网络服务向所指示的服务转发经由所创建的虚拟网络向针对所指示的服务的所指派的一个专用网络地址发送的通信。
10.根据权利要求9所述的计算机实现的方法,还包括:
由所述可配置的网络服务基于从所述客户端接收的指令配置所创建的虚拟网络的所述多个计算节点中的一个或更多个和所述远程计算机网络的一个或更多个计算系统之间的虚拟专用网络连接;以及
由所述可配置的网络服务经由所述虚拟专用网络连接在所创建的专用网络的所述一个或更多个计算节点和所述远程计算机网络的其他计算系统之间转发一个或更多个附加通信。
11.根据权利要求10所述的计算机实现的方法,其中,向针对所指示的服务的所指派的一个专用网络地址发送的所述通信是来自所创建的虚拟网络的所述多个计算节点之一,并且向所指示的服务的所述通信的转发至少部分经由所述可配置的网络服务的一个或更多个内部网络发生。
12.根据权利要求10所述的计算机实现的方法,其中,向针对所指示的服务的所指派的一个专用网络地址发送的所述通信是来自所述远程计算机网络的所述其他计算系统之一,并且所述方法还包括:在向所指示的服务的所述通信的转发之前,经由所配置的虚拟专用网络连接接收所述通信。
13.根据权利要求9所述的计算机实现的方法,其中,所述远程计算机网络是由所述客户端操作的,所述虚拟网络的创建包括将所述虚拟网络配置为所述远程计算机网络的网络扩展,并且所述第一配置信息还包括网络访问限制信息,所述网络访问限制信息用于避免从所创建的虚拟网络到与所述远程计算机网络使用的地址范围不相关联的外部计算系统的访问。
14.根据权利要求9所述的计算机实现的方法,其中,所接收的第二配置信息指定用于在所创建的虚拟网络中表示所指示的服务而要指派的一个专用网络地址。
15.根据权利要求9所述的计算机实现的方法,其中,所述第一配置信息和所述第二配置信息是由所述可配置的网络服务经由所述可配置的网络服务提供的用于由所述客户端使用的编程接口接收的,并且所述方法还包括:
由所述可配置的网络服务并经由所提供的编程接口接收第三配置信息,所述第三配置信息指定第二服务,所述第二服务是在所述远程计算机网络外部且在所创建的虚拟网络外部的远程资源服务;
由所述可配置的网络服务在所创建的虚拟网络中创建第二本地访问机制,所述第二本地访问机制表示所述第二服务并使通信能够经由所述第二本地访问机制向所述第二服务转发;以及
由所述可配置的网络服务向所述第二服务转发一个或更多个附加通信,所述一个或更多个附加通信是经由所创建的虚拟网络向针对所指示的服务的所述第二本地访问机制发送的。
16.根据权利要求9所述的计算机实现的方法,其中,所述可配置的网络服务提供用于由所述客户端使用的“应用编程接口”API,并且所述第二配置信息的接收是基于代表所述客户端对所述API的调用。
17.根据权利要求9所述的计算机实现的方法,其中,所指示的服务是程序执行服务或数据存储服务。
18.根据权利要求9所述的计算机实现的方法,其中,所指示的服务向客户端提供与计算有关的资源,并且所述方法还包括:在向所指示的服务转发所述通信之后,接收从所指示的服务向一个或更多个所提供的与计算有关的资源的访问。
19.一种计算系统,包括:
一个或更多个处理器;以及
可配置的网络服务的一个或更多个模块,所述一个或更多个模块被配置为当由所述一个或更多个处理器中的至少一个执行时,将所述计算系统配置为:
根据从客户端接收的第一配置信息来配置由所述可配置的网络服务提供的本地虚拟网络,并为所述客户端提供对所配置的本地虚拟网络的访问,其中,所述本地虚拟网络包括与多个专用网络地址相关联的多个计算节点;
经由所提供的所述可配置的网络服务的编程接口,从所述客户端接收针对所述本地虚拟网络的第二配置信息,所接收的第二配置信息包括在所述本地虚拟网络外部的远程资源服务的指示;
响应于接收到所述配置信息,配置所述本地虚拟网络中表示所指示的远程资源服务的本地访问机制,所述本地访问机制的配置包括将针对所述本地虚拟网络的附加专用网络地址与所指示的远程资源服务进行关联;以及
向所指示的远程资源服务转发经由所述本地虚拟网络向与所指示的远程资源服务相关联的附加专用网络地址发送的通信。
20.根据权利要求19所述的计算系统,其中,所述多个专用网络地址和所述附加专用网络地址是由远程计算机网络使用的多个专用网络地址的子集,并且所述一个或更多个模块还将所述计算系统配置为:
配置所述本地虚拟网络的多个计算节点和所述远程计算机网络的一个或更多个计算系统之间的虚拟专用网络连接;以及
经由所配置的虚拟专用网络连接在所述本地虚拟网络的所述计算节点和所述远程计算机网络的所述一个或更多个计算系统之间转发一个或更多个附加通信。
21.根据权利要求20所述的计算系统,其中,所述远程计算机网络是由所述客户端操作的,所述本地虚拟网络的配置包括建立所述本地虚拟网络作为所述远程计算机网络的专用网络扩展,并且所接收的配置信息还包括网络访问限制信息,所述网络访问限制信息用于避免从所述本地虚拟网络到与所述远程计算机网络的多个专用网络地址不相关联的外部计算系统的访问。
22.根据权利要求19所述的计算系统,其中,所述本地虚拟网络的配置包括向所述多个计算节点指派所述多个专用网络地址,并且所述一个或更多个模块还将所述计算系统配置为:选择与所述多个专用网络地址不同的所述附加专用网络地址。
23.根据权利要求19所述的计算系统,其中,对所述本地虚拟网络的访问是在第一时间向所述客户端提供,并且所述第二配置信息是在所述第一时间之后的第二时间、同时所述客户端使用所述本地专用虚拟网络时接收的。
24.根据权利要求19所述的计算系统,其中,所述远程资源服务和用于数据存储服务、程序执行服务或异步消息传递服务中的至少一个的与计算有关的资源相关联。
25.根据权利要求19所述的计算系统,其中,所提供的编程接口包括“应用编程接口”API,并且所述第二配置信息的接收是经由对所述API的调用发生的。
CN201410643770.8A 2008-12-10 2009-12-08 提供对远程服务的本地安全网络访问 Active CN104320418B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/332,216 2008-12-10
US12/332,216 US9137209B1 (en) 2008-12-10 2008-12-10 Providing local secure network access to remote services
CN200980149575.7A CN102246465B (zh) 2008-12-10 2009-12-08 提供对远程服务的本地安全网络访问

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200980149575.7A Division CN102246465B (zh) 2008-12-10 2009-12-08 提供对远程服务的本地安全网络访问

Publications (2)

Publication Number Publication Date
CN104320418A true CN104320418A (zh) 2015-01-28
CN104320418B CN104320418B (zh) 2017-12-22

Family

ID=42243051

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200980149575.7A Active CN102246465B (zh) 2008-12-10 2009-12-08 提供对远程服务的本地安全网络访问
CN201410643770.8A Active CN104320418B (zh) 2008-12-10 2009-12-08 提供对远程服务的本地安全网络访问

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN200980149575.7A Active CN102246465B (zh) 2008-12-10 2009-12-08 提供对远程服务的本地安全网络访问

Country Status (5)

Country Link
US (2) US9137209B1 (zh)
EP (2) EP2374242B1 (zh)
JP (3) JP5385404B2 (zh)
CN (2) CN102246465B (zh)
WO (1) WO2010068630A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475210A (zh) * 2015-12-23 2018-08-31 华为技术有限公司 机架感知
CN110537354A (zh) * 2017-02-01 2019-12-03 亚马逊科技公司 虚拟专用网关中的服务端点互连

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230050B1 (en) 2008-12-10 2012-07-24 Amazon Technologies, Inc. Providing access to configurable private computer networks
US9106540B2 (en) 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
US9036504B1 (en) 2009-12-07 2015-05-19 Amazon Technologies, Inc. Using virtual networking devices and routing information to associate network addresses with computing nodes
US8396946B1 (en) * 2010-03-31 2013-03-12 Amazon Technologies, Inc. Managing integration of external nodes into provided computer networks
US8966027B1 (en) 2010-05-24 2015-02-24 Amazon Technologies, Inc. Managing replication of computing nodes for provided computer networks
US8819229B1 (en) * 2011-10-04 2014-08-26 Amazon Technologies, Inc. Techniques for accessing logical networks via a programmatic service call
US8724642B2 (en) 2011-11-29 2014-05-13 Amazon Technologies, Inc. Interfaces to manage direct network peerings
US9106469B1 (en) 2011-11-29 2015-08-11 Amazon Technologies, Inc. Interfaces to manage last-mile connectivity for direct network peerings
EP2786261B1 (en) * 2011-11-29 2020-02-26 Amazon Technologies, Inc. Interfaces to manage direct network peerings
US10015083B2 (en) 2011-12-22 2018-07-03 Amazon Technologies, Inc. Interfaces to manage inter-region connectivity for direct network peerings
CN104272290B (zh) * 2012-04-18 2017-08-15 阿克米组件股份有限公司 用于实时通信的冗余
CN103516760B (zh) * 2012-06-28 2017-04-05 上海贝尔股份有限公司 一种虚拟网络系统接入方法、装置及系统
EP2893685B1 (en) * 2012-09-07 2017-07-26 Oracle International Corporation Infrastructure for providing cloud services
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9397884B2 (en) 2012-09-07 2016-07-19 Oracle International Corporation Workflows for processing cloud services
US10521746B2 (en) 2012-09-07 2019-12-31 Oracle International Corporation Recovery workflow for processing subscription orders in a computing infrastructure system
US10148530B2 (en) 2012-09-07 2018-12-04 Oracle International Corporation Rule based subscription cloning
US9667470B2 (en) 2012-09-07 2017-05-30 Oracle International Corporation Failure handling in the execution flow of provisioning operations in a cloud environment
US9253113B2 (en) 2012-09-07 2016-02-02 Oracle International Corporation Customizable model for throttling and prioritizing orders in a cloud environment
US9426154B2 (en) 2013-03-14 2016-08-23 Amazon Technologies, Inc. Providing devices as a service
CN104102524A (zh) * 2013-04-12 2014-10-15 中国银联股份有限公司 一种实现虚拟安全载体vse的方法
US10205638B1 (en) * 2013-05-28 2019-02-12 Ns3I, Llc. Method and apparatus for configuring a network topology in a cloud computing environment
GB2514550A (en) * 2013-05-28 2014-12-03 Ibm System and method for providing access to a resource for a computer from within a restricted network and storage medium storing same
JP2015001784A (ja) * 2013-06-13 2015-01-05 富士通株式会社 情報処理システム、情報処理装置、及び情報処理プログラム
CN104579887A (zh) * 2013-10-16 2015-04-29 宇宙互联有限公司 云网关、云网关创建配置系统及方法
US10217145B1 (en) 2014-02-18 2019-02-26 Amazon Technologies, Inc. Partitioned private interconnects to provider networks
US10164901B2 (en) 2014-08-22 2018-12-25 Oracle International Corporation Intelligent data center selection
CN105491082B (zh) * 2014-09-16 2019-02-19 华为技术有限公司 远程资源访问方法和交换设备
US9521053B1 (en) 2014-10-28 2016-12-13 Amazon Technologies, Inc. Providing diagnostic metrics for virtual connections over physical connections into a provider network
US10230571B2 (en) 2014-10-30 2019-03-12 Equinix, Inc. Microservice-based application development framework
WO2016146494A1 (en) * 2015-03-13 2016-09-22 Koninklijke Kpn N.V. Method and control system for controlling provisioning of a service in a network
CN105577632B (zh) * 2015-06-26 2018-08-24 宇龙计算机通信科技(深圳)有限公司 一种基于网络隔离的安全连网方法及终端
CN108847957B (zh) * 2015-08-24 2021-04-02 上海天旦网络科技发展有限公司 发现与呈现网络应用访问信息的方法和系统
US10142174B2 (en) 2015-08-25 2018-11-27 Oracle International Corporation Service deployment infrastructure request provisioning
US10893029B1 (en) * 2015-09-08 2021-01-12 Amazon Technologies, Inc. Secure computing service environment
US10411954B2 (en) 2015-10-13 2019-09-10 International Business Machines Corporation Pattern based network configuration
US20170214672A1 (en) * 2016-01-24 2017-07-27 Bassem ALHALABI Universal Physical Access Control System and Method
CN107295033B (zh) 2016-03-31 2020-07-28 阿里巴巴集团控股有限公司 一种路由方法及装置
US11449640B1 (en) * 2016-04-29 2022-09-20 Wells Fargo Bank, N.A. Real-time feature level software security
US10262156B1 (en) 2016-04-29 2019-04-16 Wells Fargo Bank, N.A. Real-time feature level software security
WO2018004600A1 (en) 2016-06-30 2018-01-04 Sophos Limited Proactive network security using a health heartbeat
CN109863720B (zh) * 2016-08-27 2022-05-13 Nicira股份有限公司 网络控制系统到公共云中的扩展
US10193749B2 (en) 2016-08-27 2019-01-29 Nicira, Inc. Managed forwarding element executing in public cloud data compute node without overlay network
US10778579B2 (en) 2017-08-27 2020-09-15 Nicira, Inc. Performing in-line service in public cloud
US10862864B2 (en) 2018-04-04 2020-12-08 Sophos Limited Network device with transparent heartbeat processing
US11140195B2 (en) 2018-04-04 2021-10-05 Sophos Limited Secure endpoint in a heterogenous enterprise network
US11271950B2 (en) 2018-04-04 2022-03-08 Sophos Limited Securing endpoints in a heterogenous enterprise network
US10972431B2 (en) * 2018-04-04 2021-04-06 Sophos Limited Device management based on groups of network adapters
US11616758B2 (en) 2018-04-04 2023-03-28 Sophos Limited Network device for securing endpoints in a heterogeneous enterprise network
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US11374794B2 (en) 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
US10834044B2 (en) 2018-09-19 2020-11-10 Amazon Technologies, Inc. Domain name system operations implemented using scalable virtual traffic hub
CN109726026B (zh) * 2018-12-29 2021-03-19 北京字节跳动网络技术有限公司 一种交互数据处理方法、装置、设备及存储介质
CN110995728A (zh) * 2019-12-06 2020-04-10 上海上讯信息技术股份有限公司 映射网络的rcp调用方法、装置及电子设备
US11177974B2 (en) * 2020-01-27 2021-11-16 International Business Machines Corporation Consistent provision of member node group information on virtual overlay network
US11238041B2 (en) * 2020-03-25 2022-02-01 Ocient Holdings LLC Facilitating query executions via dynamic data block routing
US11677859B2 (en) * 2021-08-16 2023-06-13 Cisco Technology, Inc. Federated service registries for access providers
US11936658B2 (en) 2021-11-15 2024-03-19 Bank Of America Corporation Intelligent assignment of a network resource

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1502195A (zh) * 2001-03-20 2004-06-02 ���˹���Ѷ��� 虚拟专用网络(vpn)知晓的客户前提设备(cpe)边缘路由器
US20050193103A1 (en) * 2002-06-18 2005-09-01 John Drabik Method and apparatus for automatic configuration and management of a virtual private network
EP1713231A1 (en) * 2005-04-14 2006-10-18 Alcatel Public and private network service management systems and methods
CN101090356A (zh) * 2006-06-12 2007-12-19 国际商业机器公司 使能对远程存储装置的访问的方法和系统
US20080240122A1 (en) * 2007-03-27 2008-10-02 Richardson David R Configuring intercommunications between computing nodes

Family Cites Families (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642515A (en) * 1992-04-17 1997-06-24 International Business Machines Corporation Network server for local and remote resources
US5826014A (en) * 1996-02-06 1998-10-20 Network Engineering Software Firewall system for protecting network elements connected to a public network
DE19711720C2 (de) * 1997-03-20 2001-05-31 Siemens Ag Kommunikationssystem zum Vermitteln von Datenpaketen zwischen angeschlossenen Kommunikationsendgeräten und/oder Kommunikationsendgeräten von angeschlossenen lokalen Netzen
US6154843A (en) 1997-03-21 2000-11-28 Microsoft Corporation Secure remote access computing system
US6463418B1 (en) * 1997-08-15 2002-10-08 Sun Microsystems, Inc. Secure and stateful electronic business transaction system
US6007408A (en) 1997-08-21 1999-12-28 Micron Technology, Inc. Method and apparatus for endpointing mechanical and chemical-mechanical polishing of substrates
US6278714B1 (en) * 1998-02-06 2001-08-21 Sun Microsystems, Inc. Efficient hardware implementation of virtual circuit bunching
US7032242B1 (en) 1998-03-05 2006-04-18 3Com Corporation Method and system for distributed network address translation with network security features
US6226751B1 (en) 1998-04-17 2001-05-01 Vpnet Technologies, Inc. Method and apparatus for configuring a virtual private network
IL126552A (en) * 1998-10-13 2007-06-03 Nds Ltd Remote administration of smart cards for secure access systems
US6507908B1 (en) * 1999-03-04 2003-01-14 Sun Microsystems, Inc. Secure communication with mobile hosts
CN100384191C (zh) 1999-06-10 2008-04-23 阿尔卡塔尔互联网运行公司 基于策略的网络体系结构
US6526581B1 (en) 1999-08-03 2003-02-25 Ucentric Holdings, Llc Multi-service in-home network with an open interface
US6982985B1 (en) 1999-09-02 2006-01-03 Verso Technologies, Inc. Interaction of VoIP calls and cellular networks
US6636983B1 (en) 1999-10-07 2003-10-21 Andrew E. Levi Method and system for uniform resource locator status tracking
US6970941B1 (en) * 1999-12-10 2005-11-29 Sun Microsystems, Inc. System and method for separating addresses from the delivery scheme in a virtual private network
JP2001273258A (ja) 2000-03-23 2001-10-05 Nippon Telegr & Teleph Corp <Ntt> ユーザ認証システム
US7752024B2 (en) 2000-05-05 2010-07-06 Computer Associates Think, Inc. Systems and methods for constructing multi-layer topological models of computer networks
GB2363297B (en) 2000-06-09 2004-04-07 Hewlett Packard Co Secure network communications
JP3859591B2 (ja) 2000-06-16 2006-12-20 富士通株式会社 Vpn収容機能を含む通信装置
ATE291803T1 (de) 2000-06-30 2005-04-15 Cit Alcatel Verfahren und apparat um mit apparate zu kommunizieren die nicht zum selben virtuellen privaten netzwerk (vpn) gehören
DE60113539T2 (de) * 2000-07-05 2006-06-22 Ernst & Young Llp Verfahren und vorrichtung zum bereitstellen von rechnerdiensten
US6829250B2 (en) * 2000-08-10 2004-12-07 Verizon Communications Inc. Automatic programming of customer premises equipment for vertical services integration
US6771673B1 (en) * 2000-08-31 2004-08-03 Verizon Communications Inc. Methods and apparatus and data structures for providing access to an edge router of a network
US7389358B1 (en) * 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US8250357B2 (en) * 2000-09-13 2012-08-21 Fortinet, Inc. Tunnel interface for securing traffic over a network
US7272643B1 (en) * 2000-09-13 2007-09-18 Fortinet, Inc. System and method for managing and provisioning virtual routers
US20020083342A1 (en) * 2000-12-21 2002-06-27 Webb Brian T. Systems, methods and computer program products for accessing devices on private networks via clients on a public network
US7127742B2 (en) 2001-01-24 2006-10-24 Microsoft Corporation Establishing a secure connection with a private corporate network over a public network
US20060242276A1 (en) 2001-02-16 2006-10-26 Lumenare Networks System and method for remotely configuring testing laboratories
US7171453B2 (en) 2001-04-19 2007-01-30 Hitachi, Ltd. Virtual private volume method and system
GB0109726D0 (en) 2001-04-20 2001-06-13 Koninkl Philips Electronics Nv Service access system
US7231430B2 (en) 2001-04-20 2007-06-12 Egenera, Inc. Reconfigurable, virtual processing system, cluster, network and method
JP3945297B2 (ja) 2001-04-24 2007-07-18 株式会社日立製作所 システム及び管理システム
US7099947B1 (en) * 2001-06-08 2006-08-29 Cisco Technology, Inc. Method and apparatus providing controlled access of requests from virtual private network devices to managed information objects using simple network management protocol
US7239409B2 (en) * 2001-06-22 2007-07-03 Hewlett-Packard Development Company, L.P. Remote access to print job retention
US7107464B2 (en) * 2001-07-10 2006-09-12 Telecom Italia S.P.A. Virtual private network mechanism incorporating security association processor
US7313819B2 (en) 2001-07-20 2007-12-25 Intel Corporation Automated establishment of addressability of a network device for a target network environment
US7827278B2 (en) 2001-07-23 2010-11-02 At&T Intellectual Property Ii, L.P. System for automated connection to virtual private networks related applications
US7197550B2 (en) 2001-08-23 2007-03-27 The Directv Group, Inc. Automated configuration of a virtual private network
US7155497B2 (en) 2001-09-27 2006-12-26 Hewlett-Packard Development Company, L.P. Configuring a network parameter to a device
EP1451702A4 (en) 2001-09-28 2009-11-11 Fiberlink Comm Corp NETWORK ACCESS GUIDELINES AND MANAGEMENT APPLICATIONS ON CLIENT PAGE
FI20011949A0 (fi) 2001-10-05 2001-10-05 Stonesoft Corp Virtuaalisen yksityisverkon hallinta
JP3879471B2 (ja) 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US6865564B2 (en) * 2001-11-08 2005-03-08 Hewlett-Packard Development Company, L.P. Method and system for printer suggested training
US6909519B2 (en) * 2001-11-08 2005-06-21 Hewlett-Packard Development Company, L.P. Method and system for printer suggested upgrades
JP2003167805A (ja) 2001-12-04 2003-06-13 Nippon Telegr & Teleph Corp <Ntt> 複数ユーザ側閉域網とサーバ側閉域網間のネットワーク通信方法およびサーバ装置
US20030140142A1 (en) 2002-01-18 2003-07-24 David Marples Initiating connections through firewalls and network address translators
US7818409B2 (en) 2002-01-22 2010-10-19 Alcatel-Lucent Usa Inc. Dynamic virtual private network system and methods
US7359387B2 (en) * 2002-03-01 2008-04-15 Verizon Business Global Llc Systems and methods for implementing virtual router
US7979528B2 (en) * 2002-03-27 2011-07-12 Radvision Ltd. System and method for traversing firewalls, NATs, and proxies with rich media communications and other application protocols
US7624437B1 (en) 2002-04-02 2009-11-24 Cisco Technology, Inc. Methods and apparatus for user authentication and interactive unit authentication
US20030217126A1 (en) 2002-05-14 2003-11-20 Polcha Andrew J. System and method for automatically configuring remote computer
CN1232080C (zh) * 2002-05-15 2005-12-14 华为技术有限公司 网络中节省ip地址提供内部服务器的方法
US20030217266A1 (en) * 2002-05-15 2003-11-20 Epp Edward C. Collaboration of resources in a distributed environment using credentials and encryption keys
JP4382328B2 (ja) 2002-06-11 2009-12-09 株式会社日立製作所 セキュアストレージシステム
US7401352B2 (en) * 2002-08-30 2008-07-15 International Business Machines Corporation Secure system and method for enforcement of privacy policy and protection of confidentiality
US7702739B1 (en) * 2002-10-01 2010-04-20 Bao Tran Efficient transactional messaging between loosely coupled client and server over multiple intermittent networks with policy based routing
JP4083531B2 (ja) * 2002-10-17 2008-04-30 株式会社エヌ・ティ・ティ・ドコモ 通信システム、転送装置、通信方法及びプログラム
US7386605B2 (en) 2002-11-05 2008-06-10 Enterasys Networks, Inc. Methods and apparatus for automated edge device configuration in a heterogeneous network
US7574738B2 (en) 2002-11-06 2009-08-11 At&T Intellectual Property Ii, L.P. Virtual private network crossovers based on certificates
FR2847097B1 (fr) 2002-11-08 2005-04-01 Cit Alcatel Procede pour attribuer a un terminal un identifiant de reseau virtuel; terminal, serveur de configuration dynamique d'un hote, et serveur d'annuaire pour la mise en oeuvre de ce procede
US8122136B2 (en) 2002-12-18 2012-02-21 Cisco Technology, Inc. Methods and apparatus for providing security to a computerized device
US7366188B2 (en) * 2003-01-21 2008-04-29 Samsung Electronics Co., Ltd. Gateway for supporting communications between network devices of different private networks
US7447751B2 (en) 2003-02-06 2008-11-04 Hewlett-Packard Development Company, L.P. Method for deploying a virtual private network
US7444675B2 (en) 2003-02-28 2008-10-28 Hewlett-Packard Development Company, L.P. Systems and methods for defining security information for web-services
US7496685B2 (en) 2003-03-03 2009-02-24 Hewlett-Packard Development Company, L.P. Method and system for managing a device within a private network using a management device external to the private network
US7349951B2 (en) * 2003-05-12 2008-03-25 Hewlett-Packard Development Company, L.P. Systems and methods for accessing a printing service
US20040255028A1 (en) * 2003-05-30 2004-12-16 Lucent Technologies Inc. Functional decomposition of a router to support virtual private network (VPN) services
US7715380B2 (en) 2003-06-19 2010-05-11 Cisco Technology, Inc. Apparatus and methods for handling shared services through virtual route forwarding (VRF)-aware-NAT
US7437769B2 (en) * 2003-06-24 2008-10-14 Realnetworks, Inc. Multiple entity control of access restrictions for media playback
US7386629B2 (en) 2003-06-30 2008-06-10 Intel Corporation System and method for synchronous configuration of DHCP server and router interfaces
EP1649398A2 (en) * 2003-07-11 2006-04-26 Computer Associates Think, Inc. Method and apparatus for translating a web services address
US7447203B2 (en) * 2003-07-29 2008-11-04 At&T Intellectual Property I, L.P. Broadband access for virtual private networks
JP4011528B2 (ja) 2003-08-07 2007-11-21 日本電信電話株式会社 ネットワーク仮想化システム
US7373660B1 (en) 2003-08-26 2008-05-13 Cisco Technology, Inc. Methods and apparatus to distribute policy information
GB2405561B (en) 2003-08-28 2006-07-26 Motorola Inc Computer network security system and method for preventing unauthorised access of computer network resources
US20050066335A1 (en) * 2003-09-23 2005-03-24 Robert Aarts System and method for exposing local clipboard functionality towards external applications
US7512715B2 (en) * 2003-09-26 2009-03-31 Nokia Corporation System and method for requesting a resource over at least one network with reduced overhead
US7640319B1 (en) * 2003-09-30 2009-12-29 Nortel Networks Limited Gateway shared by multiple virtual private networks
US7593388B1 (en) * 2003-09-30 2009-09-22 Nortel Networks Limited Convertor shared by multiple virtual private networks
US8051177B1 (en) * 2003-09-30 2011-11-01 Genband Us Llc Media proxy having interface to multiple virtual private networks
US20050192999A1 (en) 2003-11-21 2005-09-01 Cook Scott J. System and method of virtualizing physical locations
US8661158B2 (en) * 2003-12-10 2014-02-25 Aventail Llc Smart tunneling to resources in a network
US8590032B2 (en) * 2003-12-10 2013-11-19 Aventail Llc Rule-based routing to resources through a network
US7478173B1 (en) * 2003-12-18 2009-01-13 Wmware, Inc. Method and system for sharing a network connection in a virtual computer system
US20050190769A1 (en) 2004-01-28 2005-09-01 Smith B. S. System and method for securing remote access to a remote system
JP2005217757A (ja) * 2004-01-29 2005-08-11 Oki Techno Creation:Kk ファイアウオール管理システム、ファイアウオール管理方法、およびファイアウオール管理プログラム
US7756998B2 (en) 2004-02-11 2010-07-13 Alcatel Lucent Managing L3 VPN virtual routing tables
US20050185611A1 (en) 2004-02-25 2005-08-25 Torarp Carl-Johan Y. Broadband wireless network
US7424736B2 (en) * 2004-03-10 2008-09-09 Combrio, Inc. Method for establishing directed circuits between parties with limited mutual trust
US7679612B2 (en) 2004-04-30 2010-03-16 Microsoft Corporation Configuration goals via video presenting network
US8626730B2 (en) * 2004-06-28 2014-01-07 Sap Ag Data processing methods, systems and computer programs for providing a payment using a web service
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
EP2264956B1 (en) * 2004-07-23 2017-06-14 Citrix Systems, Inc. Method for securing remote access to private networks
US7587588B2 (en) 2004-08-11 2009-09-08 Avaya Inc. System and method for controlling network access
US7428754B2 (en) 2004-08-17 2008-09-23 The Mitre Corporation System for secure computing using defense-in-depth architecture
US7411975B1 (en) * 2004-08-26 2008-08-12 Juniper Networks, Inc. Multimedia over internet protocol border controller for network-based virtual private networks
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US20060095960A1 (en) * 2004-10-28 2006-05-04 Cisco Technology, Inc. Data center topology with transparent layer 4 and layer 7 services
US9043792B1 (en) * 2004-11-17 2015-05-26 Vmware, Inc. Virtual local area network (vlan) coordinator providing access to vlans
JP4339234B2 (ja) 2004-12-07 2009-10-07 株式会社エヌ・ティ・ティ・データ Vpn接続構築システム
US7551614B2 (en) * 2004-12-14 2009-06-23 Hewlett-Packard Development Company, L.P. Aggregation over multiple processing nodes of network resources each providing offloaded connections between applications over a network
US7457824B1 (en) 2004-12-28 2008-11-25 Emc Corporation Methods and apparatus for managing groups of resources
US7373661B2 (en) 2005-02-14 2008-05-13 Ethome, Inc. Systems and methods for automatically configuring and managing network devices and virtual private networks
US20060235973A1 (en) * 2005-04-14 2006-10-19 Alcatel Network services infrastructure systems and methods
US7483438B2 (en) * 2005-04-14 2009-01-27 Alcatel Lucent Systems and methods for managing network services between private networks
US7580415B2 (en) * 2005-04-27 2009-08-25 Hewlett-Packard Development Company, L.P. Aggregation of hybrid network resources operable to support both offloaded and non-offloaded connections
US7653648B2 (en) 2005-05-06 2010-01-26 Microsoft Corporation Permissions using a namespace
WO2007012083A2 (en) 2005-07-20 2007-01-25 Verimatrix, Inc. Network user authentication system and method
US7802000B1 (en) * 2005-08-01 2010-09-21 Vmware Virtual network in server farm
JP2009505254A (ja) 2005-08-16 2009-02-05 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ保守方法およびシステム
KR100678903B1 (ko) * 2005-09-07 2007-02-05 삼성전자주식회사 웹 서비스 제공 장치, 웹 서비스 요청 장치 및 그 방법
US7590733B2 (en) 2005-09-14 2009-09-15 Infoexpress, Inc. Dynamic address assignment for access control on DHCP networks
US8532095B2 (en) 2005-11-18 2013-09-10 Cisco Technology, Inc. Techniques configuring customer equipment for network operations from provider edge
US9397856B2 (en) * 2005-12-02 2016-07-19 Ca, Inc. Virtual tunnel network router
US20070136096A1 (en) * 2005-12-12 2007-06-14 Okalebo Lorna I Systems and methods for maintaining and accessing medical information
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US7716240B2 (en) 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
WO2007136423A2 (en) 2005-12-30 2007-11-29 Bmo Llc Digital content delivery via virtual private network(vpn) incorporating secured set-top devices
US20070174454A1 (en) * 2006-01-23 2007-07-26 Mitchell David C Method and apparatus for accessing Web services and URL resources for both primary and shared users over a reverse tunnel mechanism
US7693059B2 (en) * 2006-01-30 2010-04-06 International Business Machines Corporation Advanced VPN routing
US20070201361A1 (en) 2006-01-30 2007-08-30 Megasoft Consultants, Inc. method and apparatus for selecting a communication system based on a utilization analysis
WO2007089283A2 (en) 2006-02-01 2007-08-09 X2 Technologies, Inc. System and method for providing computer services
US8169903B2 (en) 2006-03-07 2012-05-01 Cisco Technology, Inc. Managing traffic within and between virtual private networks when using a session border controller
US7961722B1 (en) 2006-03-07 2011-06-14 Juniper Networks, Inc. Multiple virtualized operating environments within a VPN appliance
US7426627B2 (en) * 2006-03-10 2008-09-16 Microsoft Corporation Selective address translation for a resource such as a hardware device
US8190682B2 (en) 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
US8924524B2 (en) 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US20070268515A1 (en) 2006-05-19 2007-11-22 Yun Freund System and method for automatic configuration of remote network switch and connected access point devices
US7992002B2 (en) * 2006-07-07 2011-08-02 Hewlett-Packard Development Company, L.P. Data depository and associated methodology providing secure access pursuant to compliance standard conformity
US7843912B2 (en) * 2006-08-03 2010-11-30 Citrix Systems, Inc. Systems and methods of fine grained interception of network communications on a virtual private network
US20080215450A1 (en) 2006-09-28 2008-09-04 Microsoft Corporation Remote provisioning of information technology
US20080089338A1 (en) 2006-10-13 2008-04-17 Robert Campbell Methods for remotely creating and managing virtual machines
GB0623101D0 (en) * 2006-11-20 2006-12-27 British Telecomm Secure network architecture
US20080141320A1 (en) * 2006-12-07 2008-06-12 Sbc Knowledge Ventures, Lp System and method of providing public video content
US7852861B2 (en) * 2006-12-14 2010-12-14 Array Networks, Inc. Dynamic system and method for virtual private network (VPN) application level content routing using dual-proxy method
US7840701B2 (en) * 2007-02-21 2010-11-23 Array Networks, Inc. Dynamic system and method for virtual private network (VPN) packet level routing using dual-NAT method
US8214503B2 (en) * 2007-03-23 2012-07-03 Oracle International Corporation Factoring out dialog control and call control
US7865952B1 (en) * 2007-05-01 2011-01-04 Symantec Corporation Pre-emptive application blocking for updates
AU2008258222C1 (en) 2007-06-06 2013-11-07 Datavalet Technologies Remote service access system and method
US20080307486A1 (en) * 2007-06-11 2008-12-11 Microsoft Corporation Entity based access management
US7921686B2 (en) 2007-08-28 2011-04-12 Cisco Technology, Inc. Highly scalable architecture for application network appliances
US7954145B2 (en) 2007-09-27 2011-05-31 Novell, Inc. Dynamically configuring a client for virtual private network (VPN) access
US9330050B2 (en) 2007-10-02 2016-05-03 Aspect Software, Inc. Deployment wizard
KR20090056481A (ko) 2007-11-30 2009-06-03 한국전자통신연구원 센서 네트워크에서의 이종망 접속 장치 및 방법
US20090150565A1 (en) * 2007-12-05 2009-06-11 Alcatel Lucent SOA infrastructure for application sensitive routing of web services
JP5029373B2 (ja) 2008-01-11 2012-09-19 日本電気株式会社 ノード、経路制御方法および経路制御プログラム
US8364837B2 (en) * 2008-01-24 2013-01-29 International Business Machines Corporation Virtual web service
US7930732B2 (en) 2008-02-22 2011-04-19 Novell, Inc. Techniques for secure transparent switching between modes of a virtual private network (VPN)
US7958184B2 (en) 2008-03-04 2011-06-07 International Business Machines Corporation Network virtualization in a multi-node system with multiple networks
US20090276774A1 (en) 2008-05-01 2009-11-05 Junji Kinoshita Access control for virtual machines in an information system
US8473594B2 (en) 2008-05-02 2013-06-25 Skytap Multitenant hosted virtual machine infrastructure
US7720009B2 (en) * 2008-07-09 2010-05-18 Cisco Technology, Inc. Virtual private network (VPN) topology identifier
DE112008003966T5 (de) 2008-07-31 2011-06-01 Hewlett-Packard Development Co., L.P., Houston Selektives Um-Abbilden einer Netzwerktopologie
US8326972B2 (en) 2008-09-26 2012-12-04 Red Hat, Inc. Methods and systems for managing network connections in a software provisioning environment
US8045570B2 (en) 2008-09-30 2011-10-25 Nortel Networks Limited Extended private LAN
US8121118B2 (en) 2008-10-31 2012-02-21 At&T Intellectual Property I, L.P. Methods and apparatus to dynamically control connectivity within virtual private networks
US7921197B2 (en) * 2008-11-19 2011-04-05 Vmware, Inc. Dynamic configuration of virtual machines
US8201237B1 (en) 2008-12-10 2012-06-12 Amazon Technologies, Inc. Establishing secure remote access to private computer networks
US20110110377A1 (en) 2009-11-06 2011-05-12 Microsoft Corporation Employing Overlays for Securing Connections Across Networks
US9916545B1 (en) 2012-02-29 2018-03-13 Amazon Technologies, Inc. Portable network interfaces for authentication and license enforcement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1502195A (zh) * 2001-03-20 2004-06-02 ���˹���Ѷ��� 虚拟专用网络(vpn)知晓的客户前提设备(cpe)边缘路由器
US20050193103A1 (en) * 2002-06-18 2005-09-01 John Drabik Method and apparatus for automatic configuration and management of a virtual private network
EP1713231A1 (en) * 2005-04-14 2006-10-18 Alcatel Public and private network service management systems and methods
CN101090356A (zh) * 2006-06-12 2007-12-19 国际商业机器公司 使能对远程存储装置的访问的方法和系统
US20080240122A1 (en) * 2007-03-27 2008-10-02 Richardson David R Configuring intercommunications between computing nodes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475210A (zh) * 2015-12-23 2018-08-31 华为技术有限公司 机架感知
CN110537354A (zh) * 2017-02-01 2019-12-03 亚马逊科技公司 虚拟专用网关中的服务端点互连

Also Published As

Publication number Publication date
CN104320418B (zh) 2017-12-22
CN102246465A (zh) 2011-11-16
JP2014042306A (ja) 2014-03-06
EP2374242B1 (en) 2017-10-11
EP3333705A1 (en) 2018-06-13
WO2010068630A1 (en) 2010-06-17
JP2015165700A (ja) 2015-09-17
EP2374242A1 (en) 2011-10-12
CN102246465B (zh) 2014-11-26
US20160006610A1 (en) 2016-01-07
JP5998248B2 (ja) 2016-09-28
JP5740445B2 (ja) 2015-06-24
US10868715B2 (en) 2020-12-15
JP2012511293A (ja) 2012-05-17
EP2374242A4 (en) 2016-04-27
US9137209B1 (en) 2015-09-15
JP5385404B2 (ja) 2014-01-08
EP3333705B1 (en) 2023-08-09

Similar Documents

Publication Publication Date Title
CN102246465B (zh) 提供对远程服务的本地安全网络访问
US11290320B2 (en) Providing access to configurable private computer networks
US9756018B2 (en) Establishing secure remote access to private computer networks
US20170099260A1 (en) Providing location-specific network access to remote services
CN102473114A (zh) 动态迁移计算机网络

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant