CN103944768B - 为受管计算机网络提供逻辑联网功能 - Google Patents
为受管计算机网络提供逻辑联网功能 Download PDFInfo
- Publication number
- CN103944768B CN103944768B CN201410186367.7A CN201410186367A CN103944768B CN 103944768 B CN103944768 B CN 103944768B CN 201410186367 A CN201410186367 A CN 201410186367A CN 103944768 B CN103944768 B CN 103944768B
- Authority
- CN
- China
- Prior art keywords
- network
- communication
- calculate node
- virtual machine
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/76—Routing in software-defined topologies, e.g. routing between virtual machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
- H04L41/122—Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明描述了用于为受管计算机网络,诸如代表用户或其它实体提供的虚拟计算机网络,提供逻辑联网功能的技术。在一些情况中,用户可以为虚拟计算机网络配置或是以其它方式指定网络拓扑,诸如将所述虚拟计算机网络的多个计算节点分成多个逻辑子网络,和/或为所述虚拟计算机网络指定一个或多个逻辑联网装置的逻辑网络拓扑。在为虚拟计算机网络指定网络拓扑之后,诸如在没有为所述虚拟计算机网络物理实施所述网络拓扑的情况下,可以各种形式提供对应于所述网络拓扑的逻辑联网功能。在一些情况中,所述计算节点可以包含诸如由或代表一个或多个用户托管在一个或多个物理计算机或系统上的虚拟机节点。
Description
本申请是2011年8月29日向国家知识产权局提交的、申请号为201080009620.1、发明名称为“为受管计算机网络提供逻辑联网功能”的专利申请的分案申请。
背景技术
许多公司和其它机构运行与许多计算系统互连以支持其运营的计算机网络,这些计算系统要么同地协作(例如,作为专用局域网的部分)要么相反位于多个不同的地理位置中(例如,经由一个或多个专用或共用的中间网络而连接)。例如,装备有大量互连的计算系统的数据中心已很普遍,诸如由和代表一个机构运行的专用数据中心,以及由如企业实体运行的公用数据中心。一些公用数据中心运营商为各个客户拥有的硬件提供网络接入、电源、以及安全安装设施,而其它公用数据中心运营商提供还包含其客户可使用的硬件资源的″全面服务″设施。然而,随着典型数据中心和计算机网络的规模和范围的扩大,供应、实施和管理相关的物理计算资源的任务变得越来越复杂。
商用硬件虚拟化技术的出现在为许多具有不同需求的客户管理大规模计算资源方面提供了一些益处,从而允许在多个客户之间有效且安全地共用各种计算资源。例如,诸如由VMWare、XEN或用户模式Linux提供的虚拟化技术可通过为每个用户提供一个或多个由单个物理计算机器托管的虚拟机而允许在多个用户中共用单个物理计算机器,每个这种虚拟机是充当不同逻辑计算系统的软件模拟,其为用户提供他们是给定硬件计算资源的唯一操作员和管理员的错觉,同时也在各个虚拟机中提供应用隔离和安全性。此外,一些虚拟化技术能够提供跨越一个或多个物理资源的虚拟资源,诸如具有多个实际上跨越多个不同物理计算系统的虚拟处理器的单个虚拟机。
附图简述
图1是示出配置和管理属于虚拟计算机网络的计算节点之间的通信的示例实施方案的网络图。
图2A至图2C示出了管理虚拟覆盖计算机网络的计算节点之间的通信的实例。
图2D示出了配置下层底层网络地址以便能够为覆盖网络嵌入虚拟网络地址的实例。
图3是示出适用于执行用于管理计算节点之间的通信的系统的实施方案的示例计算系统的方框图。
图4A至图4B示出了ONM系统管理器例行程序的示例实施方案的流程图。
图5A至图5B示出了ONM通信管理器例行程序的示例实施方案的流程图。
具体实施方式
描述了用于为受管计算机网络,诸如为代表用户或其它实体而提供的虚拟计算机网络,提供逻辑联网功能的技术。在至少一些实施方案中,该技术使得用户能够针对为该用户提供的虚拟计算机网络而配置或是以其它方式指定网络拓扑,诸如将虚拟计算机网络的多个计算节点分成多个逻辑子网络,和/或指定每个与指定组的多个计算节点相关的一个或多个逻辑联网装置的逻辑网络拓扑。在为虚拟计算机网络指定网络拓扑之后,可以多种方式,诸如在没有为虚拟计算机网络物理实施网络拓扑的情况下,提供对应于网络拓扑的逻辑联网功能。具体而言,如下文更详细描述,在至少一些实施方案中,管理虚拟计算机网络的多个计算节点之间的通信以便模拟将由指定逻辑联网装置(如果这些装置物理存在)提供的功能,和/或以其它方式模拟对应于指定网络拓扑(如果该指定网络拓扑经物理实施)的功能。在至少一些实施方案中,由覆盖网络管理器系统的实施方案自动执行所述技术的一些或全部。
在多个实施方案中,可以多种方式(诸如通过使用一个或多个隔开多个计算节点的中间物理网络来创建覆盖网络)而在多个计算节点之间提供虚拟局域网或其它虚拟计算机网络。在该实施方案中,中间物理网络可用作其上提供覆盖虚拟计算机网络的底层网络,其中在至少一些这种实施方案中,覆盖虚拟计算机网络的计算节点之间的消息在中间物理网络上传递,但是其中计算节点并不知晓中间物理网络的存在和使用。例如,多个计算节点每个可在中间物理网络内具有对应于计算节点的位置的不同物理底层网络地址,诸如底层IP(″互联网协议″)网络地址(例如,根据IPv4或″互联网协议版本4″,或根据IPv6或″互联网协议版本6″以便反映由中间物理网络使用的联网协议的IP网络地址)。在其它实施方案中,其上覆盖有虚拟计算机网络的底层网络本身可包含一个或多个其它虚拟计算机网络或由一个或多个其它虚拟计算机网络组成,所述计算机网络为诸如由一个或多个第三方(例如,由互联网或电信基础设施的运营商或供应商)实施的其它虚拟计算机网络。
当诸如从用于所提供的虚拟计算机网络的虚拟网络地址的范围中选择计算节点来参与到由覆盖网络管理器系统提供且覆盖于底层网络上的虚拟计算机网络中时,可为所提供的虚拟计算机网络对每个计算节点分配一个或多个虚拟网络地址,其与那些计算节点的底层网络地址不相关。在至少一些实施方案和情况中,所提供的虚拟计算机网络还可以使用与底层网络所使用的联网协议不同的联网协议(例如,其中虚拟计算机网络使用IPv4联网协议,且底层计算机网络使用IPv6联网协议)。虚拟计算机网络的计算节点使用虚拟网络地址来互相通信(例如,通过将另一目的计算节点的虚拟网络地址指定作为用于通信的目的网络地址而发送通信到该目的计算节点),但是可基于底层网络地址而将底层网络配置成路由或是以其它方式转送通信(例如,通过底层网络的物理网络路由器装置和其它物理联网装置)。如果是这样,那么可以通过将进入中间物理网络的通信修改成使用基于底层网络的联网协议的底层网络地址,且通过将离开中间物理网络的通信修改成使用基于虚拟计算机网络的联网协议的虚拟计算机地址,而从中间物理网络的边缘来实施覆盖虚拟计算机网络。下文包含与供应该覆盖虚拟计算机网络有关的其它详情。
在至少一些实施方案中,覆盖网络管理器(″ONM″)系统的实施方案诸如通过提供并且使用在一个或多个地理位置中(例如,在一个或多个数据中心中)且经由一个或多个中间物理网络而互连的许多计算节点来为客户和其它用户提供覆盖虚拟计算机网络。ONM系统可在一个或多个中间物理网络的边缘使用各种通信管理器模块来管理在各个覆盖虚拟计算机网络进入与离开中间物理网络时用于这些覆盖虚拟计算机网络的通信,且可使用一个或多个系统管理器模块来协调该ONM系统的其它操作。例如,为使得通信管理器模块能够为所提供的覆盖虚拟计算机网络管理通信,ONM系统可以追踪且使用有关每个虚拟计算机网络的计算节点的各种信息,以便将每个这种计算节点的底层物理网络地址映射到与计算节点相关的一个或多个覆盖虚拟网络地址。在各个实施方案中,可以多种方式,包含如下文更详细讨论的集中或以分散方式存储并传送该等映射和其它信息。
此外,在至少一些实施方案中,为了按所需方式向用户和其它实体提供虚拟计算机网络,ONM系统允许用户和其它实体与该ONM系统交互来配置各种类型的信息,以用于由代表用户或其它实体的ONM系统提供的虚拟计算机网络,并且可以追踪和使用这种配置信息作为提供这些虚拟计算机网络的部分。具有多个计算节点的特定虚拟计算机网络的配置信息可以包含(例如)一个或多个下列非详尽的清单:包含作为虚拟计算机网络的部分的一些多个计算节点;包含作为虚拟计算机网络的部分的一个或多个特定计算节点;与虚拟计算机网络的多个计算节点相关的一系列或其它组的多个虚拟网络地址;与特定计算节点或特定组的有关计算节点相关的特定虚拟网络地址;一种虚拟计算机网络的至少一些多个计算节点,以便反映计算节点要包含或是以其它方式可用的计算资源的量和/或类型;待定位的虚拟计算机网络的一些或全部计算节点的地理位置;等等。另外,在各个实施方案中,可以由用户或其它实体以各种方式来指定虚拟计算机网络的配置信息,诸如通过用户或其它实体的执行程序,其与由ONM系统出于该目的而提供,和/或由交互地使用由ONM系统出于该目的而提供的GUI(″图形用户界面″)的用户而提供的API(″应用编程界面″)交互。
另外,如前所述,在多个实施方案中,可由ONM系统以多种方式为受管计算机网络提供逻辑联网功能,其中该ONM系统执行各种动作以支持这种逻辑联网功能。例如,在至少一些实施方案中,用户或其它实体可以与ONM系统交互来配置有关特定虚拟计算机网络的网络拓扑的各种信息,且该ONM系统可追踪且使用这种网络拓扑配置信息作为提供该虚拟计算机网络的部分。用于虚拟计算机网络的网络拓扑配置信息可以包含各种类型的信息,包含下列非详尽的清单:虚拟计算机网络的多个计算节点的指定布置,以便具有第一子组的多个计算节点,该第一子组计算节点是与第一指定网络路由器装置相关的第一子网络的部分,并具有第二子组的多个计算节点,该第二子组计算节点是与第二指定网络路由器装置相关的第二子网络的部分,等等;一个或多个作为虚拟计算机网络的部分而操作的指定网络路由器装置或其它联网装置,以便每一个支持特定计算节点和/或执行特定指定的功能;等等。
ONM系统可采取各种动作以支持特定虚拟计算机网络专用的网络拓扑。具体而言,在至少一些实施方案中,ONM系统可模拟对应于为虚拟计算机网络指定网络拓扑的逻辑联网功能,而没有物理实施一些或全部指定网络拓扑。作为一个实例,ONM系统可使用多个通信管理器模块以下列方式而不受影响地管理由虚拟计算机网络的计算节点发送的通信和发送到该虚拟计算机网络的计算节点的通信:如果网络拓扑的一个或多个指定联网装置经物理实施后用于虚拟计算机网络且用来路由或是以其它方式转送通信,那么将模拟由网络拓扑的一个或多个联网装置所提供的功能。此外,该ONM系统可使用多个通信管理器模块来以局域物理联网装置的方式模拟对计算节点作出的联网请求的响应,以便响应ping请求、SNMP(″简单网络管理协议″)询问等等。以此方式,ONM系统可提供对应于虚拟计算机网络的指定网络拓扑的逻辑联网功能,而不用虚拟计算机网络的计算节点(或相关用户或其它实体)知晓虚拟计算机网络并未物理地实施指定的网络拓扑。此外,如下文更详细描述,在至少一些实施方案中,ONM系统的多个模块可以分散方式一起操作以提供对应于特定逻辑联网装置的功能,使得不会有单个模块或物理装置单独负责模拟特定逻辑联网装置。下文包含与根据指定配置信息为虚拟计算机网络提供逻辑联网功能有关的其它详情。
在至少一些实施方案中,在其间管理通信的计算节点可以是物理计算系统和/或可以是各个托管在一个或多个物理计算系统上的虚拟机,且通信可以包含各种格式的数据(例如,消息、包、帧、流等等)的传输。如前所述,在一些实施方案中,用于专门提供的覆盖虚拟计算机网络的一些或全部计算节点可以由用户使用的ONM系统提供,而在其它实施方案中,一些或全部这些计算节点可相反由使用这些计算节点的用户提供。此外,在至少一些情况中,ONM系统的实施方案可以是程序执行服务(或″PES″)的部分或是以其它方式附属于其,该程序执行服务执行代表服务的多个客户或其它用户的多个程序,诸如在多个物理网络(例如,数据中心内的多个物理计算系统和网络)上使用多个计算系统的程序执行服务。在至少一些这样的实施方案中,可基于相关用户,诸如基于代表用户或其它实体的计算节点执行程序而选择计算节点所属的虚拟计算机网络。另外,在一些情况中,ONM系统的实施方案可以是可配置的网络服务(或″CNS″)的部分或是以其它方式附属于其,该可配置网络服务诸如通过使用具有在多个物理网络(例如数据中心内的多个物理计算系统和网络)上提供的多个计算系统的云计算技术而向服务的多个客户或其它用户提供可配置的专用计算机网络。
如前所述,在一些实施方案中,可提供虚拟计算机网络作为将一个或多个中间物理网络用作底层网络的覆盖网络,且在各个实施方案中,可在底层网络上以各种方式来实施一个或多个这种覆盖虚拟计算机网络。例如,在至少一些实施方案中,覆盖虚拟计算机网络的节点之间的通信是通过在不封装通信的情况下在底层网络上发送这些通信,诸如通过在用于一个或多个中间物理网络的联网协议的较大物理网络地址空间中嵌入用于虚拟计算机网络的计算节点的虚拟网络地址信息(例如,目的计算节点的虚拟网络地址)来管理。作为一个说明性实例,可使用32位IPv4网络地址来实施虚拟计算机网络,而且可以将那些32位虚拟网络地址嵌入为由一个或多个中间物理网络使用的128位IPv6网络地址的部分,诸如通过对通信包或其它数据传输(例如,使用无国界IP/ICMP传送,或SIIT)重新定报头,或者以其它方式将这种数据传输修改成将其从所配置的第一联网协议传送到不同的第二联网协议。作为另一说明性实例,可使用相同网络寻址协议(例如,IPv4和IPv6)来实施虚拟计算机网络和底层计算机网络,且可在底层网络上发送传输时,将经由使用虚拟网络地址的所提供的覆盖虚拟计算机网络发送的数据传输修改成使用对应于底层网络的不同物理网络地址,但是其中原始虚拟网络地址是存储于经修改的数据传输中或是以其它方式加以追踪,使得在数据传输在离开底层网络时可被恢复到原始形式。在其它实施方案中,可使用通信封装来实施至少一些覆盖计算机网络。与SIIT有关的其它详情可从2000年2月在tools<dot>ieff<dot>org<slash>html<slash>rfc2765处的″Request For Comments2765-Stateless IP/ICMP Translation Algorithm″得到,(其中由这些名称的对应字符取代<dot>和<slash>),该案全文以引用的方式并入本文中。更一般而言,在一些实施方案中,当使用第二底层网络实施第一覆盖网络时,可将根据第一网络寻址协议指定用于第一覆盖网络的N位网络地址嵌入成根据第二网络寻址协议指定用于第二底层网络的另一M位网络地址的部分,其中″N″和″M″是对应于网络寻址协议的任意整数。另外,在至少一些实施方案中,诸如如果一组所关注的N位网络地址可使用较少量的位来表示,那么可使用多于或少于N位的其它网络地址来将N位网络地址嵌入于另一网络地址中(例如,其中L位标记或标识符被映射到特定N位网络地址且嵌入于其它网络地址中,其中″L″小于″N″)。
如下文更详细讨论,可从在用于下层物理底层网络的底层网络地址中嵌入虚拟网络地址信息中获得多种益处,包含在未封装通信或配置物理底层网络的物理联网装置的情况下实现虚拟计算机网络在物理底层网络上的覆盖。此外,在诸如专用于包含计算节点的特定虚拟计算机网络(例如,用于这些计算节点操作所代表的用户或其它实体的虚拟计算机网络)的标识符的至少一些实施方案和情况中,其它信息同样地嵌入于较大物理网络地址空间中以用于计算节点之间的通信。下文包含与经由使用覆盖网络而供应这种虚拟计算机网络有关的其它详情。
此外,在多种情况中,除为所提供的虚拟计算机网络管理经过配置的网络拓扑之外,ONM系统可使用所述技术来提供多种其它益处,诸如将往返于特定虚拟计算机网络的计算节点的通信限制到属于该虚拟计算机网络的其它计算节点。以此方式,属于多个虚拟计算机网络的计算节点可以共用一个或多个中间物理网络的部分,同时仍维持特定虚拟计算机网络的计算节点的网络隔离。另外,使用所述技术还允许将计算节点轻易加入到虚拟计算机网络和/或从虚拟计算机网络移除,以便允许用户动态修改虚拟计算机网络的大小(例如,动态修改计算节点的量以反映当前更多或更少计算资源需要的数量)。此外,使用所述技术还支持下层底层网络的变化,例如,如果下层底层网络扩展成包含其它地理位置的其它计算节点,那么由于下层底层网络将以与其它先前现有底层网络计算节点相同的方式路由往返于这些其它计算节点的底层网络地址的通信,故而所提供的现有或新的虚拟计算机网络可以无缝使用这些其它的计算节点。在至少一些实施方案中,下层底层网络可以是任意大小(例如,跨越多个国家或大陆),而不考虑不同位置的计算节点之间的网络延迟。
出于说明之目的,下文描述执行特定类型的计算节点、网络、通信、网络拓扑和配置操作的一些实施方案。这些实例是出于说明之目的而提供且为简短起见而简化,且可在许多各种其它情况中使用本发明技术,下文讨论一些这类情况。
图1是示出配置和管理属于虚拟计算机网络的计算节点之间的通信,使得以不影响计算节点的方式在一个或多个中间物理网络上覆盖通信的示例实施方案的网络图。在这个实例中,ONM系统的示例实施方案的系统管理器模块和多个通信管理器模块促进通信的配置和管理。示例ONM系统可,例如,结合可公开访问的程序执行服务(未示出)和/或可公开访问的可配置网络服务(未示出)来使用,或者相反可在其它情况中使用,诸如结合代表一个或多个实体的虚拟计算机网络(例如,以支持用于机构的专用网络上的业务或其它机构的不同部分的多个虚拟计算机网络)任意使用。
所示出的实例包含示例数据中心100,其中多个物理计算系统代表ONM系统进行操作。该示例数据中心100连接到数据中心100外部的全球互联网135,该全球互联网135经由专用网络140而提供对一个或多个计算系统145a的访问,对每个具有多个计算系统(未示出)的一个或多个其它可全球访问的数据中心160的访问,以及对一个或多个其它计算系统145b的访问。全球互联网135可以是,例如,网络(可能由各个不同方来操作)中可公开访问的网络,诸如互联网,且专用网络140可以是,例如,完全不能或部分不能从专用网络140外部的计算系统访问的企业网络。计算系统145b可以是,例如,每个均直接连接到互联网的家庭计算系统或移动计算装置(例如,经由电话线、电缆调制解调器、数字订户线(″DSL″)、蜂窝网络或其无线连接等等)。
示例数据中心100包含许多物理计算系统105a至105d和155a至155n,以及在一个或多个其它计算系统(未示出)上执行用于管理相关计算系统155a至155n的通信的通信管理器模块150,和在一个或多个计算系统(未示出)上执行的系统管理器模块110。在这个实例中,每个物理计算系统105a至105d托管多个虚拟机计算节点且包含相关虚拟机(″VM″)通信管理器模块(例如,作为用于物理计算系统的虚拟机管理程序监视器的部分),诸如主机计算系统105a上的VM通信管理器模块109a和虚拟机107a,以及诸如主机计算系统105d上的VM通信管理器模块109d和虚拟机107d。在这个实例中,物理计算系统155a至155n不执行任何虚拟机,且因此每个可以充当直接执行代表用户的一个或多个软件程序的计算节点。管理相关计算系统155a至155n的通信的通信管理器模块150可以具有通过其而往返于物理计算系统的通信的多种形式,诸如,例如,代理计算装置、防火墙装置,或联网装置(例如,交换机、路由器、网络集线器等等)。在其它实施方案中,数据中心处的全部物理计算系统或无物理计算系统可托管虚拟机。
这个示例数据中心100还包含多个物理联网装置,诸如交换机115a至115b、边缘路由器装置125a至125c,和核心路由器装置130a至130c。交换机115a是包含物理计算系统105a至105c的物理子网络的部分,且连接到边缘路由器125a。交换机115b是包含物理计算系统105d和155a至155n,以及提供通信管理器模块150和系统管理模块110的计算系统的不同物理子网络的部分,且连接到边缘路由器125b。反过来,由交换机115a至115b建立的物理子网络互相连接且经由包含边缘路由器125a至125c和核心路由器130a至130c的中间互连网络120而连接到其它网络(例如,全球互联网135)。边缘路由器125a至125c在两个或多个子网络或网络之间提供网关。例如,边缘路由器125a在由交换机115a建立的物理子网络与互连网络120之间提供网关,同时边缘路由器125c在互连网络120与全球互联网135之间提供网关。核心路由器130a至130c,诸如通过基于这种数据传输(例如,包含源地址和/或目的地址、协议标识符等的报头信息)的特性,和/或互连网络120本身的特性(例如基于物理网络拓扑的路径,等等)酌情路由或是以其它方式转送数据包或其它数据传输而管理互连网络120内的通信。
所示出的系统管理器模块和通信管理器模块可以执行所述技术的至少一些以配置、授权和以其它方式管理发送往返于相关计算节点的通信,包含以支持为使用各种计算节点而提供的一个或多个虚拟计算机网络提供各种逻辑联网功能。例如,通信管理器模块109a管理相关虚拟机计算节点107a,通信管理器模块109d管理相关虚拟机计算节点107d,且每个其它通信管理器模块可类似地管理用于一组一个或多个其它相关计算节点的通信。所示出的通信管理器模块可配置计算节点之间的通信,以便在用作底层网络的一个或多个中间物理网络上,诸如在互连网络120上,覆盖特定虚拟机网络。此外,在一些实施方案中,诸如如果一个或多个其它数据中心160同样提供可用于由示例ONM系统使用的计算节点,那么特定虚拟网络可选择地扩展超过数据中心100,而且该特定虚拟网络在两个或多个不同地理位置的两个或多个这种数据中心处包含计算节点。多个这种数据中心或一个或多个计算节点的其它地理位置可以多种方式互连,包含以下:直接经由一个或多个公用网络;经由未示出的专用连接(例如,不与任何第三方共用的专用物理连接、VPN或在公用网络上提供专用连接的其它机构等等);等等。另外,虽然此处未示出,但是其它这种数据中心或其它地理位置每个可包含管理数据中心或其它地理位置的计算系统的通信,以及全球互联网135上到数据中心100和任何其它这种数据中心160的通信的一个或多个其它通信管理器模块。
另外,在其它实施方案中,诸如如果在边缘路由器125c与全球互联网135之间放置数据中心100处的一个或多个其它通信管理器模块,或者相反基于数据中心100外部的一个或多个其它通信管理器模块(例如,如果使另一通信管理器模块成为专用网络140的部分,以便管理全球互联网135和专用网络140上的计算系统145a的通信;等等),那么可选择地以其它方式将特定虚拟计算机网络扩展超过数据中心100。因此,例如,如果操作专用网络140的机构期望将其专用计算机网络140虚拟地扩展到数据中心100的一个或多个计算节点,那么该机构可能通过将一个或多个通信管理器模块实施为专用网络140的部分(例如,作为专用网络140与全球互联网135之间的界面的部分)而如此进行,以此方式,专用网络140内的计算系统145a可与数据中心计算节点通信,只要这些数据中心计算节点是专用网络的部分。
因此,作为一个说明性实例,计算系统105a上的虚拟机计算节点107a之一(在这个实例中,为虚拟机计算计算节点107a1)可能是与计算系统105d上的虚拟机计算节点107d之一(在这个实例中,为虚拟机计算节点107d1)相同的虚拟局域计算机网络的部分,诸如其中IPv4联网协议是用来表示虚拟局域网的虚拟网络地址。接着虚拟机107al可,诸如通过为目的虚拟机计算节点107dl指定虚拟网络地址而将输出的通信(未示出)导引至该目的虚拟机计算节点。通信管理器模块109a接收输出通信,且在至少一些实施方案中,诸如基于先前获得的关于发送虚拟机计算节点107al和/或关于目的虚拟机计算节点107dl的信息(例如,关于与计算节点相关的虚拟网络和/或实体),和/或通过与系统管理器模块110动态地交互(例如,用来获得授权确定,获得一些或全部这种信息,等等),确定是否授权发送输出通信。通过将未经授权的通信不输送给计算节点,得以增强实体虚拟计算机网络的网络隔离和安全性。
如果通信管理器模块109a确定输出的通信获授权(或者未执行这种授权确定),那么模块109a确定用于通信的对应于目的虚拟网络地址的实际物理网络地址。例如,通信管理器模块109a可以通过与系统管理器模块110动态地交互而确定用于目的虚拟机107d1的虚拟网络地址的实际目的网络地址,或者其可具有先前确定并且存储的信息(例如,响应来自发送虚拟机107al中用于关于该目的虚拟网络地址的信息的请求,诸如虚拟机107al指定使用地址解析协议(或ARP)的请求)。接着诸如如果通信管理器模块109d与一系列的多个这种实际底层网络地址相关,那么该通信管理器模块109a重新对输出的通信定报头或者以其它方式修改该输出通信,使得使用实际底层网络地址将该输出通信导引到通信管理器模块109d。图2A至图2D提供在一些实施方案中执行这种通信管理的实例,包含模拟为虚拟网络指定的逻辑联网功能。
在这个实例中,当通信管理器模块109d经由互连网络120而接收通信时,其获得用于通信的虚拟目的网络地址(例如,通过从通信提取虚拟目的网络地址),且确定导引通信至由通信管理器模块109d管理的虚拟机计算节点107d。通信管理器模块109d接着确定是否为目的虚拟机计算节点107d1授权通信,其中在图2A至图2D的实例中更详细讨论这种授权活动的实例。如果确定授权通信(或者通信管理器模块109d未执行这种授权确定),那么通信管理器模块109d接着,诸如通过使用发送虚拟机计算节点107al的虚拟网络地址作为源网络地址且通过使用目的虚拟机计算节点107d1的虚拟网络地址作为目的网络地址,对输入的通信重新定报头或者以其它方式修改该输入通信,使得使用虚拟计算机网络的适当虚拟网络地址将该输入通信导引到目的虚拟机计算节点107d1。接着该通信管理器模块109d将经修改的通信转送到目的虚拟机计算节点107d1。在至少一些实施方案中,如其它处更详细讨论,在将输入通信转送至目的虚拟机之前,通信管理器模块109d也可执行关于安全性的其它步骤。
另外,虽然未在图1示出,但是在一些实施方案中,各种通信管理器模块可采取进一步动作,诸如通过以指定方式管理虚拟计算机网络的计算节点之间的通信,且通过响应由虚拟计算机网络的计算节点发送的其它类型的请求,为虚拟计算机网络提供对应于指定网络拓扑的逻辑联网功能。例如,在图1的示例实施方案中,尽管通过互连网络120而与物理计算系统105a上的计算节点107al隔开,然而物理计算系统105d上的虚拟机计算节点107d1可配置成与计算节点107al相同的虚拟计算机网络的逻辑子网络的部分(例如,不通过任何逻辑指定路由器装置而隔开)。相反地,在图1的示例实施方案中,尽管物理计算系统105c上的虚拟机计算节点107c1物理接近于物理计算系统105a上的虚拟机计算节点107al(亦即,是不具有任何干预物理路由器装置的相同物理子网络的部分),然而可将计算节点107c1配置成虚拟计算机网络中与计算节点107al的逻辑子网络不同的部分(例如,可配置成由一个或多个逻辑指定路由器装置(未示出)隔开)。如果是这样,那么由于计算节点107al和107d1是配置成指定网络拓扑中的单个子网络的部分,故而可在未模拟任何干预逻辑路由器装置的动作的情况下,以前述方式执行将通信从计算节点107al发送到计算节点107d1的先前实例(尽管为转送通信而在底层互连网络120中使用多个物理路由器装置)。
然而,如果计算节点107al发送其它通信给计算节点107c1,那么主机计算系统105a和105c上的通信管理器模块109a和/或109c可以执行对应于在指定网络拓扑中配置成隔开计算节点107al和107c1的一个或多个逻辑指定路由器装置的其它动作。例如,源计算节点107al可以这样的方式发送其它通信:最初将其它通信导引至配置成作为计算节点107al的局域网装置的第一逻辑指定路由器装置(例如,通过包含在对应于该第一逻辑指定路由器装置的其它通信的报头中的虚拟硬件地址),其中期望该第一逻辑指定路由器装置经由指定逻辑网络拓扑而朝目的计算节点107c1转送其它通信。如果是这样,那么源通信管理器模块109a可以检测到其它通信到逻辑第一路由器装置的转送(例如,基于其它通信的报头中使用的虚拟硬件地址),或者以其它方式知晓虚拟计算机网络的经过配置的网络拓扑,且可采取动作来模拟在指定网络拓扑中配置用于隔开计算节点107al和107c1的一些或全部逻辑指定路由器装置的功能。例如,可期望转送其它通信的每个逻辑路由器装置采取诸如修改用于通信的TTL(″生存时间″)跳跃值的动作,修改虚拟目的硬件地址,其为通信指定指示至目的计算节点的路径上的其它通信的下个所需目的,和/或以其它方式修改通信报头。如果是这样,那么源通信管理器模块109a可以在底层网络(在这种情况下,经由物理交换机装置115a)上将其它通信转送到目的通信管理器模块109c以供给目的计算节点107c1之前执行一些或全部这些动作。或者,在其它信息由通信管理器模块109a转送到通信管理器模块109c后,可相反由目的通信管理器模块109c执行为已发送的其它通信提供逻辑联网功能的一些或全部这种其它动作。图2C的实例提供关于提供逻辑联网功能的实例的其它详情。
通过使用所述技术来提供逻辑联网功能,ONM系统提供了各种益处。例如,因为各种通信管理器模块管理覆盖虚拟网络且可模拟逻辑联网装置的功能,所以无需为所提供的虚拟计算机网络物理地实施指定联网装置和其它网络拓扑,且因此无需对应修改互连网络120和交换机115a至115b以支持特定配置的网络拓扑。虽然如此,如果虚拟计算机网络的计算节点和软件程序已配置成虚拟计算机网络的期望特定网络拓扑,那么通过上述技术仍可不受影响地为这些计算节点提供该网络拓扑。
图2A至图2C示出了具有与管理计算节点之间经由一个和多个物理网络上的覆盖网路而出现的通信(诸如,可由图1和其它情况中的计算节点和网络使用)有关的其它说明性详情的进一步的实例。具体而言,图2A示出了可通过使用一个和多个中间互连网络250作为底层网络而互相通信的不同的示例计算节点205和255。虽然在其它实施方案中,互连网络250和覆盖虚拟计算机网络可以使用相同联网协议(例如,IPv4),但是在这个实例中,互连网络250是其上覆盖IPv4虚拟计算机网络的IPv6底层网络。另外,在这个示例实施方案中,计算节点代表多个不同实体来操作,而且系统管理器模块290管理特定计算节点与特定实体和虚拟计算机网络的关联,且追踪为虚拟计算机网络指定的各种配置信息。图2A的示例计算节点包含代表示例实体Z和为实体Z提供的对应虚拟计算机网络的部分的四个计算节点,这些计算节点是计算节点205a、205c、255a和255b。另外,其它计算节点是代表其它实体来操作且属于其它提供的虚拟计算机网络,诸如计算节点205b和其它计算节点255。
虽然未在这个实例中示出计算节点、模块与互连网络之间的物理互连,但是在该实例中,计算节点205是由相关通信管理器模块R210进行管理且物理连接到该相关通信管理器模块R210,计算节点255是由相关通信管理器模块S260进行管理且物理连接到该相关通信管理器模块R260,且ONM通信管理器模块210和260与系统管理器模块290一样物理连接到互连网络250。作为一个实例,计算节点205每个可以是由单个物理计算系统托管的多个虚拟机之一,且通信管理器模块R可以是用于该物理计算系统的管理程序虚拟机监视器的部分。例如,参考图1,计算节点205可以表示虚拟机107a,且计算节点255可以表示虚拟机107d。如果是这样,那么通信管理器模块R可以对应于图1的通信管理器模块109a,通信管理器模块S将对应于图1的通信管理器模块109d,互连网络250将对应于图1的互连网络120,且系统管理器模块290将对应于图1的系统管理器模块110。或者,计算节点205和255每个可相反为不同的物理计算系统,诸如以对应于图1的计算系统155a至155n,或者对应于其它数据中心和地理位置的计算节点(例如,另一数据中心160、计算系统145a等处的计算系统)。
图2A的每个通信管理器模块与一组多个物理底层网络地址相关,该通信管理器模块管理代表其相关计算节点。例如,将通信管理器模块R示出成与IPv6网络地址范围″::0A:01/72″相关,该IPv6网络地址范围″::0A:01/72″对应于从XXXX:XXXX:XXXX:XXXA:0100:0000:0000:0000到XXXX:XXXX:XXXX:XXXA:01FF:FFFF:FFFF:FFFF的128位地址(按十六进制)(表示到56个唯一IPv6地址的电源的2),其中每个″X″可表示适于特定情况(例如,如结合图2D更详细讨论,其中最初64位对应于特定机构和网络拓扑)的任何十六进制字符。互连网络250将具有该范围中的目的网络地址的任何通信转送到通信管理器模块R,因此,对于所指定范围的最初72位,通信管理器模块R可以使用剩余可取得的56位来表示其管理的计算节点且确定如何处理其目的网络地址在该范围中的输入通信。
出于图2A所示出的示例之目的,计算节点205a、205c、255a和255b是用于实体Z的单个虚拟计算机网络的部分,且分别具有分配的IPv4虚拟网络地址″10.0.0.2″、″10.0.5.1″、″10.0.0.3″和″10.1.5.3″。因为计算节点205b是用于实体Y的不同虚拟计算机网络的部分,所以其可在不混乱的情况下共用与计算节点205a相同的虚拟网络地址。在这个实例中,计算节点A205a希望与计算节点G255a通信,在这个实例中,这些计算节点是配置成用于虚拟计算机网络的网络拓扑中的单个共用局域物理子网络(未示出)的部分,且在这个实例中,互连网络250和通信管理器模块不会影响计算节点A和G。具体而言,尽管物理地隔开计算节点A和G,然而通信管理器模块210和260进行操作以便在物理互连网络250上覆盖实体Z的虚拟计算机网络,以用于这些计算节点之间通信,使得实际局域网的缺失不会影响计算节点A和G。
在所示出的实施方案中,为发送通信到计算节点G,计算节点A与通信管理器模块R210交换各种消息220,尽管不知晓通信管理器模块R的存在(亦即,计算节点A可能相信其正,诸如经由计算节点A相信的指定交换装置而在局域子网络上传输广播消息给全部其它节点而连接该局域子网络上的节点)。具体而言,在这个实例中,计算节点A首先发送ARP消息请求220-a,该ARP消息请求220-a包含计算节点G(亦即″10.0.0.3″)的虚拟网络地址且请求计算节点G的对应硬件地址(例如,48位MAC地址)。通信管理器模块R截取该ARP请求220-a,且以包含计算节点G的虚拟硬件地址的欺骗ARP响应消息220-b响应计算节点A。
为获得计算节点G的虚拟硬件地址以与响应消息一起使用,通信管理器模块R首先校验将虚拟硬件地址映射到对应IPv6实际物理底层网络地址的局域信息存储器212,其中每个虚拟硬件地址同样对应于特定实体的虚拟网络的IPv4虚拟网络地址。如果局域存储器212不含有用于计算节点G的实体(例如,如果先前计算节点205没一个与计算节点G通信,如果局域存储器212中用于计算节点G的先前实体基于相关截止时间而截止,等等),那么通信管理器模块R与系统管理器模块290交互225以获得代表计算节点A的计算节点G的对应实际IPv6物理底层网络地址。具体而言,在这个实例中,系统管理器模块290诸如通过在实体和虚拟计算机网络的计算节点上起始执行程序而维持识别每个计算节点实际定位之处和计算节点所属的实体和/或虚拟计算网络的供应信息292,或是通过其它方式获得这种供应信息。如结合图2B更详细讨论,系统管理器模块确定来自代表用于计算节点G的实际IPv6物理底层网络地址的计算节点A的通信管理器模块R的请求是否有效,包含计算节点A是否被授权与计算节点G通信,并且如果是这样,那么提供该实际IPv6物理底层网络地址。
通信管理器模块R从系统管理器模块290接收用于计算节点G的实际IPv6物理底层网络地址,且存储这个接收到的信息作为用于计算节点G的新条目的部分,作为映射信息212的部分供稍后使用(选择地具有截止时间和/或其它信息)。另外,在这个实例中,通信管理器模块R确定计算节点G将使用的伪虚拟硬件地址(例如,通过产生由通信管理器模块R管理的计算节点局部唯一的标识符),存储结合所接收的实际IPv6物理底层网络地址的伪虚拟硬件地址作为新映射信息实体的部分,并且提供该伪虚拟硬件地址给计算节点A作为响应消息220-b的部分。通过维持这种映射信息212,在不与系统管理器模块290的进一步交互的情况下,可基于使用先前由通信管理器模块R提供的伪虚拟硬件地址而由该通信管理器模块R授权从计算节点A到计算节点G的稍后通信。在其它实施方案中,诸如如果系统管理器模块290进一步维持关于由多个计算节点使用的硬件地址(例如,分配给虚拟机计算节点的虚拟硬件地址、分配给充当计算节点的计算系统的实际硬件地址,等等)的信息,并且提供由计算节点G使用的硬件地址给通信管理器模块R作为交互225的部分,那么由通信管理器模块R使用用于计算节点G的硬件地址可相反不是伪地址。在这种实施方案中,如果不同虚拟网络上的计算节点使用相同的虚拟硬件地址,那么通信管理器模块R可采取进一步动作,诸如可将计算节点硬件地址与虚拟计算机网络的每个组合映射到对应底层网络地址。
在其它实施方案中,通信管理器模块R可以与系统管理器模块290交互以获得用于计算节点G的物理底层网络地址或在接收ARP请求以外的时间以其它方式确定这种物理底层网络地址,诸如响应被导引至使用作为实体Z的虚拟计算机网络的部分的虚拟网络地址″10.0.0.3″的计算节点G的任何接收通信。此外,在其它实施方案中,诸如如果由系统管理器模块290指定虚拟硬件地址,如果虚拟硬件地址不是随机的且相反存储一种或多种类型专用于对应计算节点的信息,等等,那么所使用的虚拟硬件地址可与这个实例不同。另外,在这个实例中,如果未确定是否由系统管理器模块290和/或通信管理器模块R授权计算节点A发送通信给计算节点G,那么通信管理器模块R不会发送具有虚拟硬件地址的响应消息220-b(例如,相反发送无响应或错误消息响应)。
在这个实例中,在交互225中对应于计算节点G返回的IPv6实际物理底层网络地址为″::0B:02:<Z-identifier>:10.0.0.3″,其中″10.0.0.3″被存储于128位IPV6地址的最后32位中,且其中<Z-identifier>是计算节点G对应于实体Z的虚拟计算机网络的24位实体网络标识符(例如,如先前由系统管理器模块分配给该网络以反映对应于该实体的随机数字或一些其它数字)。IPv6网络地址的最初72位对应于子网络或者互连网络的其它部分存储::0B:02标示,该子网络或者互连网络的其它部分具有通信管理器模块S对应的网络地址范围″::0B:02/72″,因此,在互连网络250上发送到IPv6目的网络地址″::0B:02:<Z-identifier>:10.0.0.3″的通信将被路由到通信管理器模块S。在其它实施方案中,实体网络标识符可以是其它长度(例如,32位,如果通信管理器模块S具有64位而非56位的相关网络地址范围),和/或可以具有其它形式(例如,可以是随机的,可以存储各种类型的信息,等等),且用于″::0B:02″标示后网络地址范围的剩余的56位可以存储其它类型的信息(例如,特定实体的标识符、虚拟网络的标记或标签,等等)。结合图2D描述了结合覆盖虚拟计算机网络使用的示例配置IPv6实际物理网络地址的其它详情。
在从通信管理器模块R接收响应消息220-b后,计算节点A创建且起始发送通信到计算节点G,图2A示出为通信220-C。具体而言,通信220-c的报头包含目的计算节点G的目的网络地址″10.0.0.3″,消息220-b中提供给计算节点A的虚拟硬件地址的目的计算节点G的目的硬件地址,用于发送计算节点A的源网络地址″10.0.0.2″,和用于发送计算节点A(先前识别为计算节点A的实际或伪硬件地址)的源硬件地址。由于计算节点A相信计算节点G是与其自身相同的局域子网络的部分,故而计算节点A无需将通信220-c导引到在网络拓扑中被配置成以隔开计算节点的任何中间逻辑路由器装置。
通信管理器模块R截取通信220-c,酌情修改该通信,且在互连网络250上将经修改的通信转送到计算节点G。具体而言,通信管理器模块R从报头中提取计算节点G的虚拟目的网络地址和虚拟目的硬件地址,且接着从映射信息212检索对应于该虚拟目的硬件地址的IPv6实际物理底层网络地址。如前所述,在这个实例中,IPv6实际物理底层网络地址为″::0B:02:<Z-identifier>:10.0.0.3″,且通信管理器模块R创建包含实际物理底层网络地址作为目的地址的新IPv6报头。类似地,通信管理器模块R从接收通信的报头中提取计算节点A的虚拟源网络地址和虚拟源硬件地址,获得对应于该虚拟源硬件地址的IPv6实际物理底层网络地址(例如,如果先前未获得,那么通过与系统管理器模块290交互以从映射信息212中的已存储的实体中获得该信息,等等),且包含该实际物理底层网络地址作为新IPv6报头的源网络地址。在这个实例中,计算节点A的IPv6实际物理底层网络地址为″::0A:01:<Z-identifier>:10.0.0.2″,如果在应答中由通信管理器模块S代表计算节点G使用,那么其将被路由到通信管理器模块R用于转送到计算节点A。接着通信管理器模块R通过修改通信220-c创建通信230-3以便(例如,根据SIIT)以新IPv6报头取代先前IPv4报头,包含酌情以其它信息装入该新IPv6报头而用于通信(例如,载荷长度、通信量类分组优先,等等)。因此,在未在通信230-3内封装通信220-c的情况下,通信230-3包含与通信220-c相同的内容或载荷。此外,这种重新定报头无需访问载荷内的特定信息,诸如以允许通信管理器模块R处理加密载荷而无需解密该载荷的通信。
在至少一些实施方案中,在将通信230-3转送到通信管理器模块S之前,通信管理器模块R可以执行一个或多个动作以,诸如基于包含用于在通信220-c中使用的目的虚拟硬件地址的有效实体(例如,在一些实施方案中,专用于发送计算节点205a的实体,或者在其它实施方案中相反对应于任何计算节点205的实体)的映射信息212,而确定是否授权将通信220-c转送到计算节点G作为通信230-3。在其它实施方案中,对于每个输出通信,这种授权确定可并非由通信管理器模块R执行,或者代替地可以其它方式执行(例如,基于发送节点和目的节点是相同虚拟计算机网络的部分或是与相同的实体相关,或者以其它方式被授权互相通信的确定,基于与系统管理器模块290的交互以获得通信的授权确定,等等)。
在通信管理器模块R将经修改的通信230-3转送到互连网络250后,互连网络使用通信的物理IPv6目的网络地址来路由到通信管理器模块S的通信。这样做之后,互连网络250的装置不会使用包含嵌入式实体网络标识符或嵌入式虚拟网络地址的目的网络地址的部分,且因此无需任何特殊配置以转送这种通信,或者甚至无需知晓虚拟计算机网络正覆盖在物理互连网络上。
当通信管理器模块S经由互连网络250接收通信230-3时,其执行与通信管理器模块R的动作类似但与之相逆的动作。具体而言,在至少一些实施方案中,通信管理器模块S验证该通信230-3是否合法且诸如经由与系统管理器模块的一次或多次交互240而验证是否授权将该通信230-3转送到计算节点G。如果确定通信获授权(或者如果未执行授权确定),那么通信管理器模块S接着酌情修改通信230-3且将经修改的通信转送到计算节点G。结合图2B讨论了与通信230-3的验证有关的其它详情。
具体而言,为修改通信230-3,通信管理器模块S从对应于计算节点G的映射信息262中检索包含由计算节点G使用的虚拟硬件地址(或者诸如为新计算节点产生这种先前无法取得的虚拟硬件地址)的信息。通信管理器模块S接着通过修改通信230-3而创建通信245-e以便(例如根据SIIT)以新IPv4报头取代先前IPv6报头。新IPv4报头包含计算节点G的虚拟网络地址和虚拟硬件地址作为新IPv4报头的目的网络地址和目的硬件地址,且酌情包含其它信息以用于通信(例如,总长度、报头校验和等等)。由通信管理器模块S使用用于计算节点A的虚拟硬件地址可以与由通信管理器模块R使用用于计算节点A的硬件地址相同,但是在其它实施方案中,每个通信管理器模块可以维持与由其它通信管理器模块使用的信息无关的单独硬件地址信息(例如,如果通信管理器模块S响应来自用于计算节点A的硬件地址的计算节点255之一的先前ARP请求产生其自身用于计算节点A的伪虚拟硬件地址)。因此,通信245-e包含与通信220-c和230-3相同的内容或载荷。接着通信管理器模块S将通信245-e转送到计算节点G。
在接收通信245-e之后,计算节点G使用来自通信245-e用于计算节点A的源虚拟网络地址和源虚拟硬件地址确定发送响应通信245-f给计算节点A。通信管理器模块S接收响应通信245-f,且以与先前相对于通信220-c和通信管理器模块R所述方式类似的方式进行处理。具体而言,通信管理器模块S可选择地验证是否授权计算节点G发送通信到计算节点A,且接着通过使用映射信息262来产生新IPv6报头而修改通信245-f以创建通信230-6。在将通信230-6转送到互连网络250之后,通信被发送到通信管理器模块R,该通信管理器模块R以与先前相对于通信230-3和通信管理器模块S所述方式类似的方式处理输入通信。具体而言,通信管理器模块R可选择地验证是否授权计算节点G发送通信到计算节点A且验证实际从计算节点G的底层网络位置发送的通信230-6,并且接着通过使用映射信息212来产生新Ipv4报头而修改通信230-6以创建响应通信220-d。接着通信管理器模块R将响应通信220-d转送到计算节点A。在其它实施方案和情况中,通信管理器模块R和/或S可以与最初通信不同地处理响应通信,诸如以假定在至少一些情况中授权响应通信,且不执行这些情况中用于响应通信的一些或全部授权活动。
以此方式,在这些计算节点没有任何特殊配置来处理实际干预的基于IPv6的底层互连网络的情况下,计算节点A和G可以使用基于IPv4的虚拟计算机网络互相通信,且在互连网络的任何物理联网装置没有任何特殊配置的情况下,基于通信管理器模块在未封装通信的情况下在实际物理互连网络上覆盖虚拟计算机网络,且基于在底层物理网络地址中使用嵌入式虚拟网络地址,互连网络250可转送IPv6通信。
另外,虽然结合图2A未示出,在至少一些实施方案中,通信管理器模块可以接收和处理代表相关计算节点的其它类型的请求和通信。例如,通信管理器模块可以采取各种动作以支持广播和多播能力以用于其管理的计算节点。作为一个实例,在一些实施方案中,可以从用于在发信号联网层2原始封装通信中使用的每个实体网络标识符前缀中保留特殊多播组虚拟网络地址后缀。类似地,对于链路局域广播和多播通信,可以保留特殊多播组/64前缀(例如,″FF36:0000::″),同时可为其它多播通信使用不同目的地址前缀(例如,″FF15:0000::″)。因此,例如,128位IPv6地址的开头64位的对应保留的64位前缀可封装多播和广播IP帧,其中剩余64位以与前述方式类似的方式包含用于目的计算节点的虚拟IPv4网络地址和用于目的计算节点的实体网络标识符。或者,在其它实施方案中,一种或多种类型的广播和/或多播通信每个可以具有对应保留的具有不同值或形式的标记或其它标识符,包含使用不同数量的位和/或以网络地址前缀之外的方式进行存储。当计算节点发送广播/多播通信时,具有预订该广播/多播组的相关计算节点的任何通信管理器模块被识别(例如,基于预订该组的通信管理器模块,诸如响应由相关计算节点发送的先前接入通信),且用于发送计算节点的通信管理器模块将通信转送到该组的经过识别的每个通信管理器模块,用来转送到其适当的受管计算节点。另外,在一些实施方案和情况中,通信管理器模块可不转送至少一些广播或多播通信,诸如具有IPv4前缀224.0/16或者另一指定前缀或其它标记或标识符的通信。
除为受管计算节点支持广播和多播能力之外,通信管理器模块可以接收且处理代表相关计算节点的其它类型的请求和通信,这些相关计算节点对应于这些计算节点所属的虚拟计算机网络的经过配置的网络拓扑。例如,计算节点可以发送期望处理的指定局域路由器装置或其它指定联网装置的各种请求(例如,ping请求、SNMP询问,等等),且相关通信管理器模块可以截取这种请求且采取各种对应动作以模拟已由该指定联网装置(如果其经过物理实施)所提供的功能。
另外,应了解,通信管理器模块可以促进与该通信管理器模块相关的多个计算节点之间的通信。例如,结合图2A,计算节点205a可希望发送其它通信(未示出)给计算节点205c。如果是这样,那么由于通信将不会在互连网络上行进,故而通信管理器模块R将执行与先前相对于由通信管理器模块R处理输出通信220-c和由通信管理器模块S处理输入通信230-3所描述的动作类似的动作,而无需使用IPV6报头来对其它通信重新定报头。然而,如结合图2C更详细讨论,如果在虚拟计算机网络的网络拓扑中计算节点205a和205c被配置成由一个或多个逻辑联网装置隔开,那么通信管理器模块R可以采取其它动作来模拟这些逻辑联网装置的功能。
虽然结合图2A未示出,但是在至少一些实施方案中,其它类型的请求和通信同样可以以各种方式处理。例如,在至少一些实施方案中,实体可以具有一个或多个由通信管理器模块管理且是用于该实体的虚拟计算机网络的部分的计算节点,且还可具有一个或多个其它非受管计算系统(例如,直接连接到互连网络250和/或本来使用IPv6网络寻址的计算系统),这些非受管计算系统不具有管理其通信的相关通信管理器模块。如果实体期望这些非受管计算系统是该虚拟计算机网络的部分或者以其它方式与该虚拟计算机网络的受管计算节点通信,那么在至少一些这种实施方案中,受管计算节点与非受管计算系统之间的这种通信可由管理一个或多个计算节点的通信管理器模块进行处理。例如,在这种情况中,如果这种非受管计算系统提供有用于这种受管计算节点的实际IPv6目的网络地址(例如,这个实例中受管计算节点A的″::0A:01:<Z-identifier>:10.0.0.2″),那么非受管计算系统可以经由互连网络250使用目的网络地址而将通信发送到计算节点A,且如果通信管理器模块R被配置成接受来自非受管计算系统(或者来自任何非受管计算系统)的通信,那么通信管理器模块R将这些通信转送到计算节点A(例如,在以与前述方式类似的方式对通信重新定报头之后)。此外,通信管理器模块R可以产生对应于这种非受管计算系统的伪虚拟网络地址,将其映射到用于该非受管计算系统的实际IPv6网络地址,且提供该伪虚拟网络地址给计算节点A(例如,作为用于从非受管计算系统转送到计算节点A的通信的源地址),因此允许计算节点A发送通信到该非受管计算系统。
类似地,在至少一些实施方案和情况中,可以将至少一些受管计算节点和/或其虚拟计算机网络配置成允许与不是该虚拟计算机网络的部分的其它装置通信,诸如不具有管理其通信的相关通信管理器模块的其它非受管计算系统或其它类型的网络应用装置。在这种情况中,如果将受管计算节点和/或虚拟计算机网络配置成允许与这种其它非受管装置的通信,那么这种非受管装置可以类似地提供有用于这种计算节点的实际IPv6目的网络地址(例如,这个实例中用于计算节点A的″::0A:01:<Z-identifier>:10.0.0.2″),从而容许非受管装置经由互连网络250使用该目的网络地址而发送通信到计算节点A,其中通信管理器模块R接着将这些通信转送到计算节点A(例如,在以与前述方式类似的方式对通信重新定报头之后)。此外,通信管理器模块R可以类似地管理从计算节点A到这种非受管装置的输出通信以允许计算节点A发送这种通信。
另外,如前所述,通信管理器模块以各种方式管理用于相关计算节点的通信,包含(在一些实施方案中)通过分配虚拟网络地址给虚拟计算机网络的计算节点,和/或通过从对应于通信管理器模块的一定范围的底层物理网络地址中分配底层物理网络地址给受管计算节点。在其它实施方案中,一些这种活动可相反由虚拟计算机网络的一个或多个计算节点来执行,诸如以允许虚拟计算机网络的DHCP(动态主机配置协议)服务器或其它装置将虚拟网络地址和/或底层物理网络地址指定给虚拟网络的特定计算节点。在这种实施方案中,通信管理器模块从虚拟网络装置获得这种配置信息,且相应更新其映射信息(且在一些实施方案中,还可更新一个或多个维持关于与虚拟网络相关的计算节点的信息的系统管理器模块)。在其它实施方案中,与虚拟计算机网络相关的用户或其它实体可以直接配置特定计算节点以使用特定虚拟网络地址。如果是这样,那么通信管理器模块和/或系统管理器模块可以追踪被特定计算节点使用的虚拟网络地址,且类似地更新相应存储的映射信息。
另外,在一些实施方案和情况中,受管计算节点自身可被视为幻象路由器,其中多个虚拟网络地址与该受管计算节点相关,且其中该受管计算节点将通信转送到对应于该多个虚拟网络地址的其它计算节点。在这种实施方案中,为该受管路由器计算节点管理通信的通信管理器模块以与前述方式类似的方式处理往返于该计算节点的通信。然而,通信管理器模块配置有对应于受管路由器计算节点的多个虚拟网络地址,使得至任何该多个虚拟网络地址的输入通信被转送到该受管路由器计算节点,且使得对应于经由该受管路由器计算节点发送通信的特定计算节点的底层源物理网络地址给出来自该受管路由器计算节点的输出通信。以此方式,特定客户或其它实体的路由器或其它联网装置可由为该实体实施的虚拟计算机网络来虚拟地表示。
图2B示出了结合图2A讨论的一些计算节点和通信,但是提供了相对于由通信管理器模块210和260和/或系统管理器模块290采取的一些动作的其它详情以授权计算节点之间的通信。例如,在计算节点A发送消息220-a以请求计算节点G的硬件地址后,通信管理器模块R可以诸如基于计算节点A是否被授权与计算节点G通信而执行与系统管理器模块290的一个或多个交互225以确定是否提供该信息,以及基于互连网络250而确定计算节点G的对应底层物理网络地址。如果通信管理器模块R先前获得且存储该信息且将其有效保存(例如未到期),那么可不执行交互225。在这个实例中,为获得所需对应于计算节点G的物理网络地址,通信管理器模块R发送消息225-1给系统管理器模块290,其包含用于计算节点A和G的虚拟网络地址,且包含每个计算节点的实体网络标识符,在这个实例中,实体网络标识符是实体Z的虚拟计算机网络的实体网络标识符(例如,32位或24位唯一标识符)。在至少一些实施方案中,通信管理器模块R可以使用任播寻址和路由方来发送消息225-1给系统管理器模块290,使得可实施多个系统管理器模块(例如,一个用于包含通信管理器模块和相关计算节点的每个数据中心)且选择这些系统管理器模块的适当一个以接收并且处理消息。
在系统管理器模块290确定授权计算节点A与计算节点G通信之后(例如,基于具有相同实体网络标识符,基于计算节点A具有被授权以与用于计算节点G的实体网络标识符的计算节点通信的实体网络标识符,基于由计算节点A提供或与之相关的指示计算节点A被授权执行这种通信的其它信息,基于由计算节点G提供或与之相关的指示计算节点G被授权执行这种通信的信息,等等),该系统管理器模块290返回包含所需对应于计算节点G的实际物理网络地址的响应消息225-2。另外,在至少一些实施方案中,在发送所需实际物理网络地址之前,系统管理器模块290还可验证通信管理器模块R是否被授权发送代表计算节点A的消息225-1,诸如基于确定计算节点A为与该通信管理器模块R相关的计算节点之一。
在其它实施方案中,通信管理器模块R可以执行如由系统管理器模块290执行的所述一些或全部的动作,诸如以维持用于各种计算节点的供应信息和/或以确定是否授权计算节点A发送通信到计算节点G,或者相反在一些或全部情况中可不执行这种授权确定。此外,在其它实施方案中,可诸如基于通信类型、通信大小,通信时间等等而对两个或两个以上计算节点之间的通信执行其它类型的授权确定。
如先前结合图2A所述,在通信管理器模块S经由互连网络250而接收用于计算节点G的通信230-3之后,通信管理器模块S可以与系统管理器模块290执行一次或多次交互240以确定是否授权该通信。具体而言,在这个实例中,为验证通信230-3是否有效且经过授权被转送到计算节点G,通信管理器模块S首先从通信230-3的报头提取实际IPv6目的网络地址和实际IPv6源网络地址,且接着从经过提取的每个Ipv6网络地址检索嵌入式实体网络标识符和虚拟网络地址。通信管理器模块S接着与系统管理器模块290交换消息240以用于代表计算节点G的发送计算节点A获得对应实际IPv6物理网络地址,包含消息240-4,该消息240-4包含经过提取且用于计算节点A和G的虚拟网络地址以及用于每个计算节点的实体网络标识符。在至少一些实施方案中,通信管理器模块S可以使用如先前所述的任播寻址和路由方案发送消息240-4给系统管理器模块290。
系统管理器模块290接收消息240-4,且返回包含对应于计算节点A的实际物理底层网络地址的响应消息240-5,在这个实例中,其为″::0A:01:<Z-identifier>:10.0.0.2″。如先前结合消息225-1和225-2所讨论,在一些实施方案中,系统管理器模块290和/或通信管理器模块S还可以执行一种或多种类型的授权确定活动,诸如来确定计算节点G是否被授权与计算节点A通信,通信管理器模块S是否被授权发送代表计算节点G的消息240-4,等等。通信管理器模块S接着验证响应消息240-5匹配从通信230-3的报头提取的源IPv6网络地址的所返回的物理网络地址,以便防止尝试欺骗消息是来自实际从其它位置中的其它计算节点发送的计算节点A。通信管理器模块S可选择地存储来自响应消息240-5的这个接收的消息连同计算节点A的虚拟网络地址和用于计算节点A的虚拟硬件地址一道作为映射消息262中的计算节点A的实体供稍后使用。
图2C示出了管理用于结合图2A和图2B所述的虚拟计算机网络的持续通信的另一实例,但是其中将通信管理成根据虚拟计算机网络的经过配置的网络拓扑而支持用于该虚拟计算机网络的逻辑联网功能。具体而言,图2C以与图2A和图2B所示的方式类似的方式示出了计算节点A、通信管理器模块R和S、系统管理器模块290,和互连网络250。然而,相较于图2A,图2C还示出了关于计算节点205a和计算节点H255b的其它信息,以及是虚拟计算机网络的经过配置的网络拓扑的部分但不是实际物理实施为提供该虚拟计算机网络的部分的两个指定路由器装置的逻辑表示270a和270b。具体而言,在这个实例中,计算节点A发送通信到计算节点H,且示出了实际发送通信时物理实施模块210和260和网络250的装置的动作,以及逻辑发送该通信时逻辑路由器装置270a和270b的模拟动作。
在这个实例中,计算节点A和H被配置成虚拟计算机网络的两个不同子网络的部分,且逻辑路由器装置270a和270b在虚拟计算机网络的经过配置的网络拓扑中隔开计算节点A和H。例如,逻辑路由器装置J270a可以是计算节点A的局域路由器装置(例如,可以管理包含计算节点A的第一子网络),且逻辑路由器装置L270b可以是计算节点H的局域路由器装置(例如,可以管理包含计算节点H的不同第二子网络)。虽然在这个实例中,计算节点A和H在经过配置的网络拓扑中被示出为由两个路由器装置隔开,但是应了解,在其它情况中,两个这种计算节点可以被0、1或2个以上的路由器装置隔开,且在一些情况中,其它类型的联网装置可以隔开计算节点。
在图2C的实例中,示出计算节点A和H的其它信息包含与虚拟计算机网络的计算节点相关的硬件地址,诸如由系统管理器模块290和/或通信管理器模块R和S分配给计算节点的虚拟硬件地址。具体而言,在这个实例中,计算节点A已被分配硬件地址″00-05-02-OB-27-44″,且计算节点H已被分配硬件地址″00-00-7D-A2-34-11″。另外,逻辑路由器装置J和L每个同样已被分配硬件地址,在这个实例中,分别是″00-01-42-09-88-73″和″00-01-42-CD-11-01″,以及虚拟网络地址,在这个实例中,分别是″10.0.0.1″和″10.1.5.1″。如下文所述,各种硬件地址将用作从计算节点A发送通信到计算节点H的部分,和提供虚拟计算机网络的对应逻辑联网功能的部分。
因此,计算节点A以与结合图2A所述的方式类似的方式确定发送通信到计算节点H,且相应与通信管理器模块R210交换各种消息222。具体而言,在这个实例中,计算节点A首先为虚拟硬件地址信息发送ARP消息请求222-a。然而,不同于图2A中计算节点A和G是相同逻辑子网络的部分的实例,从计算节点A到计算节点H的通信在被转送到计算节点H之前期望首先通过逻辑路由器装置J的最初中间目的地。因此,由于逻辑路由器J是逻辑远程计算节点H的最初中间目的地,故而ARP消息请求222-a包含逻辑路由器J的虚拟网络地址(亦即,″10.0.0.1″)和用于逻辑路由器J的对应硬件地址的请求。在其它实施方案中,计算节点A可相反直接请求计算节点H的虚拟硬件地址信息(例如,使用计算节点H的虚拟网络地址″10.1.5.3″),但是提供有逻辑路由器J的对应硬件地址。
通信管理器模块R截取ARP请求222-a,且获得提供给计算节点A作为欺骗的ARP响应消息222-b的部分的硬件地址。在各个实施方案中,通信管理器模块R可以各种方式确定逻辑路由器J的硬件地址,以及确定计算节点H是与计算节点A不同的逻辑子网络的部分。例如,如先前所讨论,通信管理器模块R可以存储各种硬件地址信息作为映射信息212的部分,且如果是这样,那么可能已经为逻辑路由器J存储了硬件地址信息。然而,如果不是,那么通信管理器模块R与系统管理器模块290执行一次或多次的交互227以从模块290获得对应于所指示用于逻辑路由器J的虚拟网络地址的信息。然而,与其为图2A的计算节点G获得对应于所指示的虚拟网络地址的底层网络地址,系统管理器模块290不如指示虚拟网络地址对应于经过配置的网络拓扑的逻辑路由器装置,且同样可以提供指示逻辑路由器J的硬件地址信息的信息给通信管理器模块R。具体而言,系统管理器模块290维持关于虚拟计算机网络的经过配置的网络拓扑的各种信息,其提供或是以其它方式管理诸如关于指定联网装置的信息,且使用该信息来提供所请求的信息给通信管理器模块。接着该通信管理器模块R存储所接收的信息作为映射信息212的部分供以后使用,且以此方式在经过配置的网络拓扑中确定计算节点H是与计算节点A不同的子网络的部分。此外,通信管理器模块R为计算节点A提供对应于逻辑路由器J的硬件地址″00-01-42-09-88-73″作为响应消息222-b的部分。虽然从计算节点A的观点而言,请求222-a和响应消息222-b实际上以所讨论的方式在计算节点A与通信管理器模块R之间传递,但是通信222-a和222-b是与逻辑路由器装置J发生的逻辑交互263的部分。
在从通信管理器模块R接收响应消息222-b之后,计算节点A创建且起始发送通信到计算节点H(图2C中示出为通信222c)。具体而言,通信222-c的报头包含目的计算节点H的目的网络地址″10.1.5.3″、目的硬件地址(其在消息222-b中系提供给计算节点A的逻辑路由器J的虚拟硬件地址)、用于发送计算节点A的源网络地址″10.0.0.2″,和用于发送计算节点A的源硬件地址(其系先前识别给计算节点A的实际或伪硬件地址)。从计算节点A的观点而言,发送的通信将以示出逻辑通信265的方式来处理,且将基于通信中的目的硬件地址而被发送到逻辑路由器J作为用于转送的通信265a。如果逻辑路由器J被物理实施且接收这种通信265a,那么其将修改通信265a的报头且将经修改的通信265b转送到逻辑路由器L,逻辑路由器L将类似地修改通信265b的报头且将经修改的通信265c转送到计算节点H。逻辑路由器J对这种通信265a执行的修改可以包含递减报头中的TTL网络跳数值且将目的硬件地址变成相应的下个目的地,在这个实例中,下个目的地将是逻辑路由器L。类似地,逻辑路由器L对这种通信265b执行的修改还可以包含递减报头中的TTL网络跳数值且将该目的硬件地址变成对应于下个目的地,在这个实例中,下个目的地将是计算节点H。
虽然以示出通信265的方式逻辑地处理从计算节点A到计算节点H的通信222-c,但是通信222-c实际上是由通信管理器模块R截取并且处理。具体而言,通信管理器模块R以与图2A为通信220-c所述的方式类似的方式截取通信222-c,酌情修改该通信,且在互连网络250上将经修改的通信转送到计算节点H。为确定用于在互连网络250上转送经修改的通信的底层网络地址,通信管理器模块R从通信222-c的报头提取目的虚拟网络地址和目的虚拟硬件地址。然而,基于对应于逻辑路由器J的目的虚拟硬件地址,通信管理器模块R确定以与图2A的方式不同的方式使用目的虚拟网络地址以识别目的底层网络地址。因此,通信管理器模块R校验映射信息212以确定先前是否已经确定并且存储对应于计算节点H的虚拟网络地址的底层网络地址。如果不是,那么通信管理器模块R与系统管理器模块290以与图2A的交互225类似的方式执行一次或多次的交互227以确定该信息。如结合图2B更详细讨论,通信管理器模块R和/或系统管理器模块290还可以响应ARP请求消息222-a和/或通信222-c执行各种可选授权活动。
在通信管理器模块R确定对应于计算节点H的IPv6实际物理底层网络地址之后,其创建包含该实际物理底层网络地址作为目的地址的新IPv6报头,且类似地加入计算节点A的源IPv6地址到该新报头。在这个实例中,对应于计算节点H的物理底层网络地址类似于计算节点G的物理底层网络地址,且具体而言是IPv6底层网络地址″::0B:02:<Z-identifier>:10.1.5.3″,其中″10.1.5.3″被存储在128位IPv6地址的最后32位中,且其中″<Z-identifier>″是虚拟计算机网络的24位实体网络标识符。因此,如同发送到计算节点G的通信,在互连网络250上被发送到计算节点H的底层网络地址将被路由到通信管理器模块S。通信管理器模块R接着通过修改通信222-c创建新通信232-3以便以新IPv6报头(例如,根据SIIT)来取代先前的IPv4报头,包含酌情以其它信息装入新IPv6报头用于新通信(例如,载荷长度、通信量类分组优先,等等),并且在互连网络250上转送通信232-3。互连网络接着使用通信232-3的物理IPv6目的网络地址来路由通信到通信管理器模块S。当通信管理器模块S经由互联网络250接收通信232-3时,其相对于通信230-3而执行与图2A所述的动作类似的动作,包含修改通信以包含适当IPv4报头,且提供经修改的通信作为到计算节点H的通信247-e。
此外,在这个实例中,如其它处所述,通信管理器模块R和/或通信管理器模块S采取进一步动作以下列方式来修改从计算节点A到计算节点H的通信:提供对应于虚拟计算机网络的经过配置的网络拓扑的逻辑联网功能,包含模拟将由逻辑路由器J和L提供的功能,如果该虚拟计算机网络被物理实施。例如,如前所讨论,如果物理实施且使用逻辑路由器,那么在通信265被转送到计算节点H时,逻辑路由器J和L将对该通信265执行各种修改,包含修改TTL网络跳数值且执行其它报头修改。因此,通信管理器模块R和/或通信管理器模块S可以对通信222-c和/或247-e执行类似的修改以模拟逻辑路由器J和L的这种功能。因此,计算节点H接收呈现为经由虚拟计算机网络的指定网络拓扑而转送的通信265c的通信247-e。
以此方式,在虚拟计算机网络的计算节点或者干预底层互连网络的物理联网装置没有任何特殊配置的情况下,ONM系统可以基于通信管理器模块以模拟经过配置的网络拓扑的方式在实际物理互连网络上覆盖虚拟计算机网络而提供对应于该经过配置的网络拓扑的逻辑联网功能。另外,ONM系统的多个模块可以以分散方式一起操作以提供对应于特定逻辑联网装置的功能,诸如其中先前实例中模块210、260和290一起操作以模拟对应于每个逻辑路由器装置270a和270b的功能。
如前所述,指定用于虚拟计算机网络的配置信息可以包含各种网络拓扑信息,且可以为虚拟计算机网络选择各种计算节点并且根据网络拓扑而以各种方式进行配置。例如,在一些实施方案中,选择在虚拟计算机网络中要使用且/或在经过配置的网络拓扑中要分配特定角色的计算节点可至少部分基于计算节点的地理位置和/或网络位置,诸如在最小和/或最大指定地理距离或其它程度地接近所指示的其它计算资源或其它位置内,诸如绝对位置,或者相反相对于一个或多个其它所关注的计算资源的位置(例如,计算节点要使用的相同虚拟网络、存储资源等等的其它计算节点)。另外,在一些实施方案中,选择计算节点时使用的因数可能不是基于位置,而是诸如包含下列一个或多个:有关计算节点的能力的限制条件,诸如资源有关标准(例如,内存量、处理器使用量、网络带宽量和/或磁盘空间),和/或仅仅在可取得的计算节点子组上可用的专门能力;关于成本的限制条件,诸如基于与使用特定计算节点相关的费用或操作成本;等等。
可以在其它实施方案中执行除结合图2A至图2C所讨论的动作之外的各种其它类型的动作,包含用于除IPv4和IPv6之外的网络寻址协议类型。
图2D示出了在一些实施方案中结合所述技术使用的示例IPv6物理底层网络地址配置272,其中示例网络地址经过配置以便在底层网络地址中嵌入虚拟网络地址和其它信息以便在底层计算机网络上实现覆盖虚拟计算机网络。如前所讨论,这个示例IPv6网络地址配置使用128位网络地址空间来存储各种信息,其中最初64位存储地址的IPv6网络部分,且其中后续64位存储该地址的界面标识符(或″主机″)部分。
在这个实例中,IPv6地址的最初64位网络部分包含用于对应于企业的位0到位31的32位标识符272a或者由代表互联网编号分配机构的互联网注册操作者分配给这种机构的其它机构标识符(在这个实例中,基于来自区域互联网注册机构RIPE NNC、或欧洲IP资源网络协调中心)。例如,在一些实施方案中,操作ONM系统的实施方案的机构或者使用所述技术的另一机构可以具有相关的标识符272a。在这个实例中,地址的最初64位网络部分还包含对应于一组多个计算节点(例如,子网络或其它网络部分)的拓扑的32位组信息272b,所提供的该组多个计算节点代表在信息272a中指示的其标识符的组。如前所讨论,在至少一些实施方案中,地址的最初64位网络部分表示用于对应于多个有关计算节点的位置的底层网络的部分网络地址,诸如子网络或底层网络的其它部分。具体而言,在至少一些实施方案中,最初64位网络地址部分对应于特定通信管理器模块,其表示多个相关计算节点由通信管理器模块管理,诸如基于管理对应于一些或全部的64位界面标识符地址部分的网络地址的范围以表示各个受管计算节点的通信管理器模块。在其它实施方案中,部分网络地址可由不同量的位(例如,72)和/或使用除前缀之外的地址的部分来表示。
在不同实施方案中,32位组的拓扑信息272b可以各种方式表示各种信息,其中拓扑信息组274和276示出了拓扑信息的两个可选择示例配置。具体而言,在274和276的实例中,开头两位(总体IPv6地址的位32和33)指示拓扑信息的特定版本,使得剩余30位的涵义可以随时间或在不同情况中变化。结合实例274,如所示出的各个位每个指示不同的地理区域设置、区域设置内的地理区域,地理区域内的计算机机架,和计算机机架内的物理计算系统节点。在这个实例中,用于区域设置信息的6位可以表示64个唯一值,用于区域信息的8位可以表示用于每个区域设置值的256个唯一值,用于机架信息的8位可以表示用于每个区域值的256个唯一值,且用于物理计算系统节点信息的8位可以表示用于每个机架值的256个唯一值。相反地,结合实例276,仅仅示出区域设置和机架信息,但是每个具有其它的位以表示这些类型的信息,以便使用其14位而具有16,384个唯一区域设置值,且关于每个区域设置值使用其16位而具有65,536个唯一机架值。应了解,在其它实施方案中,可以其它方式来表示拓扑信息。
在这个实例中,将IPv6地址的64位界面标识符部分配置成存储数个类型的信息,包含对应于特定计算节点时槽的6位标识符272c(例如,特定物理计算系统上对应于IPv6地址的最初64位网络部分的特定虚拟机计算节点)、两个1位标识符272f和272g、嵌入实体网络标识符(例如,参考特定虚拟计算机网络)的24位标识符272d,和嵌入IPv4网络地址(例如,虚拟网络地址)的32位标识符272e。用于槽标识符的6位可以表示约64个唯一值,用于嵌入式实体网络标识符的24位可以表示约16.8百万个唯一值,以及用于嵌入式IPv4网络地址的32位可以表示约4.3十亿个唯一值。在这个实例中,1位标识符272g(IPv6地址的位70)表示在一些实施方案中可以指示地址是全球管理或局部管理的U/L全球/局域位,且1位标识符272f(IPv6地址的位71)表示在一些实施方案中可以指示地址是对应于单个计算节点或者对应于一组多个计算节点的I/G单个/组位(例如,作为广播或多播的部分)。在至少一些实施方案中,当正使用对应通信的虚拟转送时,I/G位设定成零,且U/L位设定成一,诸如用于经由幻象计算节点路由器而在虚拟分网中使用,和/或指示具有这种目的地址的输入通信被输送到对应于6位槽标识符的值的计算节点,而不是对应于32位IPv4嵌入式网络地址和24位实体网络标识符的计算节点。应了解,在其它实施方案中,可以其它方式来表示界面标识符信息。
如前所述,在至少一些实施方案中,ONM系统可以经由一个或多个通信管理器模块在一个或多个中间物理网络的边缘处的操作(诸如通过为这些虚拟计算机网络配置和以其它方式管理通信)而建立和/或维持虚拟计算机网络。在一些情况中,通信管理器模块追踪或是以其它方式确定模块相关计算节点所属的虚拟计算机网络(例如,基于代表虚拟计算机网络操作的实体)作为管理虚拟计算机网络的通信的部分。在各个实施方案中,可以各种方式来执行计算节点的对应虚拟计算机网络的通信管理器模块的确定,诸如通过与提供该信息的系统管理器模块交互,通过追踪在这种计算节点上执行的软件程序,通过追踪与这种计算节点相关的实体,等等。例如,当特定计算节点开始执行一个或多个代表用户的软件程序,且该用户也具有在其它计算节点上执行的其它软件程序时,可以为该用户选择执行用户程序的新计算节点以与包含这些其它计算节点的虚拟计算机网络相关。或者,诸如如果实体在不同组的计算节点之间维持多个不同虚拟计算机网络,那么用户或其它实体可以指定计算节点所属的特定虚拟计算机网络。另外,在至少一些实施方案中,ONM系统的一个或多个系统管理器模块可以有助于配置计算节点之间的通信,诸如通过追踪和/或管理计算节点所属于的虚拟计算机网络(例如,基于执行代表客户或其它实体的程序),且通过提供关于对应于用于特定虚拟计算机网络的虚拟网络地址的实际物理底层网络地址的信息(例如,通过特定客户或其它实体)。
如前所述,在一些实施方案中,程序执行服务使用每个托管多个虚拟机的多个物理计算系统(例如,在一个或多个数据中心中)而执行第三方客户程序,其中每个虚拟机可以为客户执行一个或多个程序。在一些这种实施方案中,客户可以提供待执行的程序给程序执行服务,且可以在由该程序执行服务提供的物理或虚拟硬件设施上保留执行时间和其它资源。另外,客户和/或程序执行服务可以为客户的计算节点定义将由程序执行服务使用的虚拟计算机网络,以便为虚拟计算机网络的计算节点不受影响地提供专用物理网络上的操作状况。另外,在一些实施方案中,由ONM系统的实施方案管理的虚拟计算机网络可以是由可配置的网络服务提供的经过配置的计算机网络。在一些这种实施方案中,客户或其它用户可以为其所提供的经过配置的计算机网络指定各种类型的配置信息,诸如用于所提供的计算机网络的网络拓扑信息和/或网络接入限制条件,并且可以从一个或多个远程位置中与其所提供的经过配置的计算机网络交互。
图3是示出适用于执行用于管理计算节点之间的通信的系统的实施方案的示例计算系统的方框图。具体而言,图3示出了计算系统和互连网络组399,诸如数据中心或其它组的共置计算节点。在一些实施方案中,组399的一些或全部的计算系统可以由ONM系统的实施方案使用以提供虚拟计算机网络给用户或其它实体。该组399包含服务器计算系统300、能够执行一个或多个虚拟机的主机计算系统350、与主机计算系统350类似的其它主机计算系统390,和管理主机计算系统390且在计算系统390之一或者在另一计算系统(未示出)上执行的可选通信管理器模块360。该系统管理器计算系统300和主机计算系统350和390经由内部网络380而彼此连接,该内部网络380包含联网装置362和其它联网装置(未示出)。该网络380可以是为该组399而接入多个不同物理网络(未示出)且可对外部网络(未示出)和/或系统(诸如其它计算系统395)提供访问的互连网络。在所示出的实例中,联网装置362在网络380与主机计算系统350和390之间提供网关。在一些实施方案中,联网装置362可以是,例如路由器或网桥。
该计算系统300操作以配置并且管理该组399内的虚拟计算机网络,同时提供其它功能(例如,供应、初始化和执行计算节点上的程序)。计算系统300包含CPU350、各种I/O组件310、存储器330和内存320。I/O组件包含显示器311、网络连接312、计算机可读介质驱动器313,和其它I/O装置315(例如,鼠标、键盘、扬声器等等)。
主机计算系统350进行操作以托管一个或多个虚拟机,诸如用于用作虚拟计算机网络中的计算节点(例如,执行代表各种用户的程序的计算节点)。该主机计算系统350包含CPU352、各种I/O组件353、存储器351和内存355。虽然此处未示出,但是I/O组件353可以包含与I/O组件310的组件类似的组件。虚拟机通信管理器模块356和一个或多个虚拟机358是在内存355中执行,其中模块356管理相关虚拟机计算节点358的通信。通信管理器模块356诸如以类似于图2A至图2B的映射信息212和262的方式维持与计算节点358和其它计算节点有关的存储器上的各种映射信息354。其它主机计算系统390的结构可以与主机计算系统350的结构类似,或者替代而言,一些或全部主机计算系统350和390可以通过在不使用托管虚拟机的情况下执行程序而直接充当计算节点。在一种典型设置中,组399可以包含数百或数千个诸如此处所示的主机计算系统且组织成大量不同的物理子网络和/或网络的主机计算系统。
系统管理器模块340的一个实施方案是在计算系统300的内存320中执行。在一些实施方案中,系统管理器模块340可以接收多个计算节点待用作虚拟计算机网络的部分的指示(例如,主机计算系统350上的一个或多个虚拟机计算节点或者使用主机计算系统390之一的一个或多个计算节点),且在一些情况中,可以为虚拟计算机网络选择特定计算节点。在一些情形中,可由模块340将关于各种虚拟计算机网络的结构和/或从属关系的信息存储在存储器330上的供应数据库332中,并且在不同的时间提供给通信管理器模块。类似地,在一些情形中,可由模块340诸如以与图2C的逻辑联网装置信息294类似的方式而将与各种虚拟网络的经过配置的网络拓扑有关的信息存储于存储器330上的逻辑联网装置数据库334中,并且在不同的时间提供给通信管理器模块。
如其它处更详细讨论,通信管理器模块356和360(和未示出且管理未示出的其它相关计算节点的其它通信管理器模块)以及系统管理器模块340可以各种方式交互以管理计算节点之间的通信,包含为所提供的虚拟计算机网络提供对应于经过配置的网络拓扑的逻辑联网功能。这种交互可以,例如,使得计算节点358和/或其它计算节点能够在计算节点没有任何特殊配置的情况下,在联网装置362或其它联网装置(未示出)没有任何特殊配置的情况下且在不封装通信的情况下,通过在网络380和可选择地一个或多个外部网络(未示出)上覆盖虚拟计算机网络而在虚拟计算机网络上互相通信。
应了解,计算系统300、350、390和395,以及联网装置362仅为说明性且并非旨在限制本发明的范围。例如,计算系统300和/或350可连接到未示出的其它装置,包含通过组399外部的一个或多个网络,诸如互联网或经由万维网(″Web″)。更一般而言,计算节点或其它计算系统可以包括可交互并且执行所述类型的功能的硬件或软件的任何组合,包含但不限于台式计算机或其它计算机、数据库服务器、网络存储装置和其它网络装置、PDA、蜂窝式电话、无线电话、寻呼机、电子记事本、互联网应用、基于电视的系统(例如,使用机顶盒和/或个人/数字视频录象机),和包含适当通信能力的各种其它客户产品。另外,在一些实施方案中,由所示模块提供的功能可以在较少模块中进行组合或分散在其它模块中。类似地,在一些实施方案中,可能不提供一些所示模块的功能和/或可提供其它额外的功能。
同样应了解,虽然在被使用时各个条项被说明为存储于内存中或存储器上,但是,这些条项或其部分可出于内存管理和数据完整性的目的而在内存与其它存储装置之间传送。或者,在其它实施方案中,一些或全部软件模块和/或系统可以在另一装置上的内存中执行且经由计算机间通信而与所示计算系统通信。此外,在一些实施方案中,可以其它方式,诸如至少部分地以固件和/或硬件实施或提供一些或全部系统和/或模块,包含但不限于一个或多个专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当指令,且包含微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑装置(CPLD),等等。也可以在由适当驱动器或经由适当连接而读取的计算机可读介质(诸如,硬盘、内存、网络或便携式介质物品)上存储(例如,作为软件指令或结构化数据)一些或全部的模块、系统和数据结构。还可以将这些系统、模块和数据结构传输为各种计算机可读传输介质(包含基于无线和有线/基于电缆的介质)上产生的数据信号(例如,作为载波或其它模拟或数字传送信号的部分),且可以采取各种形式(例如,作为单模拟信号或多路模拟信号的部分,或者作为多个离散数字包或帧)。在其它实施方案中,这种计算机程序产品还可以采取其它形式。因此,可以其它计算机系统配置来实践本发明。
图4A至图4B是ONM系统管理器例行程序400的示例实施方案的流程图。例如,可通过执行图1的系统管理器模块110、图2A至图2C的系统管理器模块290,和/或图3的系统管理器模块340来提供该例行程序,诸如协助管理跨越一个或多个中间网络的多个计算节点之间的通信,包含管理通信以便提供对应于虚拟计算机网络的经过配置的网络拓扑的逻辑联网功能,以及在一些情况中执行其它类型的管理操作。在至少一些实施方案中,可将例行程序提供为管理跨越共同中间网络的多个不同实体的通信的系统的部分,其中通信经过配置以便使得每个计算节点能够使用专用于该实体的专用虚拟计算机网络而不受影响地与其它相关节点通信。此外,例行程序可以有助于防止未经授权的通信被提供到目的计算节点,诸如通过协助通信管理器模块确定通信是否被授权。
在所示实施方案中,例行程序在接收请求的块405处开始。例行程序继续至块410以确定请求的类型。如果确定请求的类型是与具有特定指示的实体和/或实体的虚拟计算机网络的一个或多个计算节点相关,诸如如果这些计算节点是用于实体的虚拟计算机网络的部分(例如,正执行或将执行一个或多个代表该实体的程序),那么该例行程序继续至块415以将这些计算节点与已指示的实体和虚拟计算机网络相关。在一些实施方案中,例行程序还可以,诸如基于由所指示的实体提供的信息而确定一个或多个计算节点是否与已指示实体和虚拟计算机网络相关,而在其它实施方案中,选择这种计算节点和/或在这些计算节点上执行的适当程序可以其它方式执行。另外,如其它处更详细讨论,在一些实施方案中,一个或多个计算节点每个可以是由一个或多个物理计算系统托管的虚拟机。接着例行程序继续至块420以存储计算节点和其与所指示实体和虚拟计算机网络的相关的指示。具体而言,在所示实施方案中,例行程序存储对应于计算节点的物理底层网络地址、由实体为计算节点使用作为虚拟计算机网络的部分的虚拟网络地址、分配给计算节点的可选虚拟硬件地址的指示,和相关实体的指示。如其它处更详细讨论,在一些实施方案中,对应于计算节点的物理底层网络地址可以是专用于该单个计算节点的底层网络地址,而在其它实施方案中,可相反指,诸如可以由相关通信管理器模块来管理的子网络或者其它组的多个计算节点。
如果相反在块410中确定接收请求的类型是,诸如来自代表受管计算节点的通信管理器模块的用于计算节点或其它网络装置的虚拟网络地址的地址解析的请求,那么该例行程序相反继续至块425,其中该例行程序确定该请求是否以一种或多种方式被授权,诸如基于请求代表的受管计算节点是否被授权来发送通信到其虚拟网络地址解析被请求的计算节点(例如,基于两个计算节点所属的虚拟计算机网络),基于请求代表的受管计算节点是否是经过配置的虚拟计算机网络的当前部分的有效计算节点,和/或基于请求是否接收自实际上管理请求代表的已指示计算节点的通信管理器模块。如果确定请求被授权,那么该例行程序继续至块430,其中该例行程序获得用于特定虚拟计算机网络的所关注的虚拟网络地址,诸如所获得用于虚拟计算机网络的实体网络识别符或与虚拟计算机网络相关的实体的其它指示符(例如,唯一数字或字母数字标记)进行识别,该识别符或指示符为例如包含在块405中接收的请求中。接着该例行程序继续至块435以检索用于与虚拟计算机网络的虚拟网络地址相关的计算节点的存储信息,且具体而言,检索关联该虚拟网络地址与对应于计算节点的网络位置的物理底层网络地址的信息,诸如可以是先前可相对于块420而存储的信息,且可选择地检索虚拟网络地址的其它信息(例如,相关虚拟硬件地址,关于虚拟网络地址是否对应于具有实际底层网络地址的物理实施的计算节点或相反对应于不具有实际底层网络地址的逻辑联网装置的指示,关于对应于虚拟网络地址的装置相对于经过配置的网络拓扑信息的作用或状态的信息,等等)。在块435之后,该例行程序继续至440以提供经过检索的信息的指示给请求者。例如,如果虚拟网络地址是用于不具有相关物理底层网络地址的逻辑联网装置,那么该例行程序可以在块440中提供关于对应于该虚拟网络地址的装置的状态或类型的指示。虽然此处未示出,但是如果块425中的确定确定了请求未获授权,那么该例行程序可相反为该请求不执行块430-440,诸如通过以错误消息响应块405中接收的请求或不响应该接收的请求。另外,在其它实施方案中,该例行程序可执行一种或多种其它测试以在所请求的信息作响应之前验证接收的请求,诸如来验证起始请求的计算节点被授权以接收该信息。
如果相反在块410中确定接收的请求为已指示的虚拟计算机网络配置网络拓扑信息,诸如来自与虚拟计算机网络相关的用户,那么该例行程序继续至块470以接收网络拓扑信息的指示和已指示的虚拟计算机网络的其它配置信息(可选择),诸如以指定网络拓扑的一个或多个联网装置,该网络拓扑将由其功能被模拟的逻辑联网装置来表示。在块475中,该例行程序接着确定一些或全部指定联网装置的虚拟硬件地址,诸如供稍后在尝试经由这些逻辑联网装置发送通信时由计算节点使用。在块475之后,该例行程序继续至块480为已指示的虚拟计算机网络存储关于逻辑联网装置的信息和其它经过配置的网络拓扑信息。
如果相反在块410中确定接收的请求为另一类型,那么该例行程序相反继续至块485,以酌情执行另一指示的操作。例如,在一些实施方案中,诸如如果先前特定计算节点与特定实体和/或虚拟计算机网络相关但该相关性结束(例如,由于该实体在该计算节点上执行的一个或多个程序被终止,所以该计算节点失效或是以其它方式变得不可用,等等),那么该例行程序可接收更新关于特定计算节点的存储信息的请求。如其它处更详细讨论,该例行程序还可以执行各种与管理多个计算节点的系统有关的其它动作,包含自动确定特定计算节点的起始移动。另外,虽然此处未示出,但是在其它实施方案中,该例行程序可以有时执行其它类型的动作,诸如在预定时间段截止之后,例如酌情执行临时内务操作以检查和更新存储信息。另外,如果检测到可能的诸如相对于虚拟网络地址的接收地址解析请求的验证问题,那么该例行程序可采取各种动作以发出错误信号和/或酌情执行其它相应动作。
在块420、440、480和485之后,该例行程序继续至块495以确定是否继续,诸如直至接收到终止的明确指示。如果确定继续,那么该例行程序返回到块405,而如果不,那么继续至块499并结束。
图5A至图5B是ONM通信管理器例行程序500的示例实施方案的流程图。例如,该例行程序可以通过执行图1的通信管理器模块109a、109b、109c、109d和/或150,图2A至图2C的通信管理器模块210和/或260,和/或图3的通信管理器模块356和/或360而提供,诸如以管理往返于相关组的一个或多个计算节点的通信以在一个或多个共用中间网络上提供专用虚拟计算机网络,包含确定是否授权通信来往返于受管计算节点,和确定是否支持为虚拟计算机网络提供对应于已配置的网络拓扑的逻辑联网功能。
该例行程序在接收到节点通信或其它消息的指示的块505处开始。该例行程序继续至块510以确定通信或其它消息的类型和相应处理。如果在块510中确定消息是来自相关受管计算节点用于网络地址解析的请求,诸如ARP请求,那么该例行程序继续至块515以识别该请求中指示的受关注的虚拟网络地址。该例行程序接着继续至块520,为虚拟网络地址解析发送请求(诸如结合图4A至图4B的块425-440所讨论)到系统管理器模块,该虚拟网络地址解析用于与提供该请求的计算节点相关的虚拟计算机网络的已指示的虚拟网络地址。如其它处更详细讨论,在一些实施方案中,该例行程序可追踪关于与每个受管计算节点相关的虚拟计算机网络和/或实体的信息,以及虚拟计算机网络的配置的网络拓扑信息,而在其它实施方案中,可相反由计算节点和/或由系统管理器模块提供至少一些这种信息给例行程序,或者代替而言,系统管理器模块可以在不将该信息提供给当前例行程序且由该当前例行程序追踪的情况下追踪且存储该信息。虽然此处未示出,但是在其它实施方案和情况中,这种地址解析请求可以其它方式进行处理。例如,如果正由特定通信管理器模块管理的计算节点为同样由该通信管理器模块管理的另一计算节点提供地址解析请求,那么该例行程序可相反在不与该系统管理器模块交互的情况下,诸如基于局部存储信息,而响应该请求。另外,在所示实施方案中,虽然接收的请求是提供对应于已指示的联网层地址的计算计算节点的链路层硬件地址的请求,但是在其它实施方案中,地址解析请求可以具有其它形式,或者计算节点可以请求关于具有已指示的虚拟网络地址的计算节点的其它类型的信息。
在所示实施方案中,例行程序接着继续至块525以从包含物理底层网络地址和/或对应于已识别的虚拟网络地址的其它信息的系统管理器模块接收响应(例如,虚拟网络地址对应于未物理实施的逻辑联网装置的指示),且局部地存储将该物理底层网络地址和/或其它信息映射到唯一硬件地址的信息,供稍后由该例行程序使用(例如,基于由该例行程序产生或在响应时提供的伪虚拟硬件地址)。该例行程序接着将该硬件地址提供给请求的计算节点,其将用作发送至具有已指示的虚拟网络地址的计算节点的通信的部分。如其它处更详细讨论,在一些实施方案中,所提供的物理底层网络地址响应可以包含专用于所关注的已指示计算节点的物理底层网络地址,而在其它实施方案中,物理底层网络地址可以对应于已指示计算节点所属的子网络或其它组的多个计算节点,诸如以对应于管理这些其它计算节点的另一通信管理器模块。如相对于块540-560而讨论,该例行程序接着继续至块530以确定块515-525是否执行为处理输出节点通信的部分,且如果是这样,那么继续至块547。虽然此处未示出,但是在一些实施方案中,例行程序可相反从系统管理器模块接收错误响应(例如,基于请求的计算节点未获授权与已指示的目的计算节点通信)或无响应,且如果是这样,那么可不发送任何响应到请求的计算节点或者可发送相应错误消息给该计算节点。
如果相反在块510中确定通信或其它消息的类型是:从由该例行程序管理的计算节点通信到不由该例行程序管理的另一已指示的远程目的计算节点的输出节点通信,那么该例行程序继续至块540以识别通信报头中的目的计算节点的已指示的硬件地址。在块545中,如先前相对于块525所讨论,该例行程序接着确定该目的硬件地址是否是先前映射到对应于该目的计算节点(或者对应于该目的硬件地址对应于逻辑联网装置的指示)的物理底层网络地址的硬件地址。如果不,那么在一些实施方案中,该例行程序继续至块515以执行块515-525以确定用于输出节点通信的这种相应物理网络地址,而在其它实施方案中,这种动作不予执行(例如,如果已指示的硬件地址不是映射地址,那么例行程序可以诸如利用回到发送节点的错误消息而使得输出节点通信失效)。
如果已指示的硬件地址是映射地址,或者检验未执行,那么该例行程序继续至块547以确定目的硬件地址是否对应于是虚拟计算机网络的经过配置的网络拓扑的部分的逻辑联网装置。如果是这样,那么该例行程序继续至块549以从通信报头中识别目的虚拟网络地址,用于在导引通信到所期望的目的地中使用,且接着继续至块555。具体而言,在块549中,该例行程序诸如从先前存储的映射消息中或者通过与系统管理器模块交互而确定对应于已识别的目的虚拟网络地址的物理底层网络地址,以与块520和525的方式类似的方式执行网络地址解析请求。
如果相反在块547中确定目的硬件地址并未对应于逻辑联网装置,那么该例行程序继续至块550以检索映射到硬件地址的物理底层网络地址。在块555中,该例行程序接着根据联网地址协议使用块550中检索或块549中确定的物理底层网络地址为发送计算节点与目的计算节点之间的一个或多个中间网络重写通信报头。报头重写还可包含改变新报头中的其它信息,包含将发送计算节点的虚拟网络地址改变为相应的物理底层网络地址,且在至少一些实施方案中,包含在不封装的情况下将所接收的通信修改成在底层一个或多个中间物理网络上覆盖的虚拟计算机网络的部分。此外,对于其目的硬件地址不对应于逻辑联网装置的通信而言,块555中的例行程序还可执行对应于提供逻辑联网功能以模拟将由一个或多个逻辑联网装置执行的动作和功能的其它修改,该一个或多个逻辑联网装置将用来根据虚拟计算机网络的经过配置的网络拓扑而将通信转送到目的计算节点。在块560中,该例行程序接着诸如通过起始在底层中间网络上将已修改的输出通信转送到目的计算节点而促成将已修改的输出通信提供给目的计算节点。虽然此处未示出,但是在其它实施方案中,可对输出节点通信执行各种其它类型的处理,诸如以验证通信有效或另外以各种方式授权(例如,诸如基于与相同实体或相同虚拟计算机网络的部分相关,基于发送和目的计算节点与授权互相通信的不同实体相关,基于通信的类型或专用于通信的其它信息等等,而验证发送节点被授权发送通信到目的计算节点)。
如果相反在块510中确定所接收的信息是用于来自外部计算节点的受管计算节点之一的输入节点通信,那么该例行程序继续至块565以从通信报头中识别用于发送计算节点和目的计算节点的物理底层网络地址。在块565之后,该例行程序继续至块570,以一种或多种方式可选择地验证输入通信是否有效。例如,该例行程序可以诸如基于与系统管理器模块的交互和/或基于先前由该例行程序获得且存储的其它信息而确定发送通信节点的物理底层网络地址是否实际上映射到对应于源物理底层网络地址位置的计算节点。另外,该例行程序可确定目的通信节点的物理底层网络地址是否对应于实际受管计算节点。虽然此处未示出,但是如果输入通信被确定为无效,那么该例行程序可采取未示出的各种动作,诸如以产生一个或多个错误且执行相关处理和/或丢弃输入通信而不将其转送到已指示的目的节点。例如,如果输入通信指示不对应于当前受管计算节点的目的网络地址,那么该例行程序可以丢弃输入通信并且/或起始错误消息(尽管在一些实施方案中,这些错误消息并未被发送到发送计算节点),或者可采取其它动作以支持将通信转送到先前由该例行程序支持的移动计算节点。
在所示实施方案中,在块570之后,该例行程序继续至块575以检索映射到物理目的底层网络地址的硬件地址和虚拟网络地址,且重写虚拟计算机网络的通信报头使得其呈现为以该虚拟网络地址和硬件地址被发送到计算节点。例如,在一些实施方案中,可从目的物理底层网络地址本身中,诸如从目的物理底层网络地址的位的子组中获得目的虚拟网络地址。另外,如先前相对于块525所讨论,目的硬件地址可先前已映射到物理目的底层网络地址。在这种先前映射未发生的情况中,例行程序可相反执行块515-525以获得这种信息。该例行程序可类似地重写虚拟计算机网络的通信报头使得其呈现为从具有对应于发送计算节点的源虚拟网络地址和源硬件地址的计算节点进行发送。此外,在至少一些实施方案中,在块575中,例行程序还可对对应于提供逻辑联网功能以模拟将由一个或多个逻辑联网装置执行的动作和功能的输入通信执行其它修改,该一个或多个逻辑联网装置根据虚拟计算机网络的经过配置的网络拓扑而已用于将通信转送到目的计算节点。在块575之后,该例行程序继续至块580以诸如通过起始将已修改的输入通信转送到目的计算节点而促使将已修改的输入通信提供给目的计算节点。
如果相反在块510中确定接收另一类型的消息,那么该例行程序继续至块585以酌情执行另一指示的操作,诸如以存储关于与特定计算节点相关的实体的信息,存储关于特定虚拟计算机网络的经过配置的网络拓扑的信息,以提供对应于虚拟计算机网络的经过配置的网络拓扑的逻辑联网功能的方式响应来自计算节点的请求和其它消息(例如,通过模拟将由指定逻辑联网装置(如果其被物理实施)执行的动作和其它功能),更新先前映射或存储的信息以反映相对于正受管理的计算节点或相对于远程计算节点的变化,等等。
在块560、580或585之后,或者如果相反在块530中确定未相对于输出通信执行处理,那么该例行程序继续至块595以确定是否继续,诸如直至接收到终止的明确指示。如果确定继续,那么该例行程序返回到块505,而如果不是,那么继续到块599并结束。
另外,各种实施方案可以出于配置计算节点和其通信之目的而为客户用户和其它实体提供机制以与系统管理器模块的实施方案交互。例如,一些实施方案可以提供交互式控制台(例如,提供交互式用户界面、基于网页浏览器的界面等等的客户应用程序),从其处用户可以管理虚拟计算机网络的创建或删除、虚拟计算机网络的网络拓扑信息的配置,和虚拟网络成员资格的指定,以及与托管应用程序的操作和管理有关的更常用的管理功能(例如,创建或修改用户帐号;供应新应用程序;初始化、终止,或监控托管应用程序;分配应用程序到组;保留时间或其它系统资源;等等)。在一些实施方案中,可提供ONM系统的实施方案的一些或全部功能来交换用户或其它实体费,且如果是这样,那么用于与系统管理器模块的实施方案交互的客户用户和其它实体的机制可以包含为用户和其它实体提供支付和支付有关信息的机制,以及监控相应支付信息。另外,一些实施方案可提供允许其它计算系统和程序可编程地调用至少一些所述功能的API,诸如由库或分类界面(例如,由以C、C++或Java语言写成的程序进行调用)或以其它方式提供,和/或使用网络服务协议(诸如经由网页服务)的API。与可以结合所述技术使用的程序执行服务的示例实施方案的操作有关的其它细节可取自于2006年3月31日提交且名称为″Managing Communications BetweenComputing Nodes″的美国申请11/394,595;2006年3月31日提交且名称为″ManagingExecution of Programs by Multiple Computing Systems″美国申请11/395,463;2007年3月27日提交且名称为″Configuring Intercommunications Between Computing Nodes″的美国申请11/692,038;2008年12月10日提交且名称为″Providing Access ToConfigurable Private Computer Networks″的美国申请12/332,214,每个案件的全文以引用的方式并入本文。另外,与管理所提供的由ONM系统的至少一些实施方案使用的虚拟网络有关的其它细节可取自于2008年3月31日提交且名称为″Configuring CommunicationsBetween Computing Nodes″的美国申请12/060,074,该案全文也以引用的方式并入本文。
还应了解,尽管在一些实施方案中,在托管虚拟机的仓储多个物理机的数据中心的环境中采用了所述技术,然而其它实施方案同样也可行。例如,可在全机构网络或由企业或其它公共机构(例如大学)出于其雇员和/或成员的利益而运行的网络的环境中采用所述技术。或者,可由网络服务供应商采用所述技术来改进网络安全性、可用性和隔离。另外,可出于各种目的而在数据中心或其它环境内采用示例实施方案。例如,在一些实施方案中,售卖对托管应用程序的访问给客户的数据中心经营者或使用者可使用所述技术以在其客户应用程序与数据之间提供网络隔离;在一些实施方案中,软件研发团队可以使用所述技术以在其使用的各种环境之间提供网络隔离(例如,研发、组建、测试、部署、生产,等等);在一些实施方案中,机构可以使用所述技术以将由一人事组或部门(例如,人力资源)利用的计算资源与由另一人事组或部门(例如,会计)利用的计算资源相隔离;或者在一些实施方案中,部署多组件应用(例如多层次商业应用)的数据中心经营者或使用者可使用所述技术为各种组件类型提供功能分解和/或隔离(例如,网页前端、数据库服务器、业务规则引擎等等)。更通常而言,所述技术可用来虚拟化物理网络以反映常规上必要的不同计算系统和/或网络的物理分区的几乎任何情形。
还应了解,在一些实施方案中,由上述例行程序提供的功能可以替代方式提供,诸如分成更多个例行程序或者合并成更少个例行程序。类似地,在一些实施方案中,诸如在其它所示例行程序相反分别缺少或包含这种功能时,或者当所提供的功能的数量被改变时,所示出的例行程序可以提供比所述更多或更少的功能。另外,虽然如以特定方式(例如,串行或并行)和/或以特定顺序说明各种操作,但是本领域技术人员应了解,在其它实施方案中,可以其它顺序和以其它方式执行这些操作。本领域技术人员还应了解,可以不同方式来结构化上述数据结构,诸如通过具有分成多个数据结构的单个数据结构或通过具有合并成单个数据结构的多个数据结构。类似地,在一些实施方案中,诸如在其它所示数据结构相反分别缺少或包含这种信息时,或者在存储的信息的数量或类型被改变时,所示数据结构可以存储比所述更多或多更少的信息。
条款1.一种用于为计算机网络提供逻辑联网功能的计算系统的方法,所述方法包括:
为第一虚拟计算机网络接收指定经由指定网络拓扑设置的一些多个计算节点的配置信息,所述网络拓扑包含多个子网络,所述子网络各自包含不同子组的所述多个计算节点且各自与多个指定物理路由器装置之一相关,所述多个计算节点各自具有用于所述第一虚拟计算机网络的不同虚拟网络地址;
通过在互连所述多个计算节点的不同物理底层网络上覆盖所述第一虚拟计算机网络,根据所接收的配置信息自动实施所述第一虚拟计算机网络,所述多个计算节点各自位于在所述底层网络的不同位置上,实施所述第一虚拟计算机网络包含在没有物理提供所述多个物理路由器装置的情况下模拟所述多个物理路由器装置的功能;和
在控制于所述计算系统上执行的通信管理器模块之下,以模拟一个或多个所述多个物理路由器装置的功能的方式自动管理所述多个计算节点之间的多个通信,每个通信是来自发送所述多个计算节点之一且是旨在用于所述多个计算节点的远程目的计算节点,并且包含用于所述目的节点的虚拟网络地址且包含用于与所述发送计算节点所属的子网络之一相关的物理路由器装置的虚拟硬件地址,管理每个所述通信包含:
基于包含于所述通信中的所述虚拟网络地址而识别所述通信的目的计算节点,且在所述底层网络上将所述通信转送到所述底层网络中的所述目的计算节点的位置;
基于包含于所述通信中的所述虚拟硬件地址而识别用于所述通信的物理路由器装置,且如果所述已识别的物理路由器装置基于所述网络拓扑而从所述发送计算节点将所述通信转送到所述目的计算节点,那么将所述通信修改成包含将所述物理路由器装置加入到所述通信的信息;和
将所述经修改的通信提供到所述目的计算节点。
条款2.根据条款1所述的方法,其中所述通信管理器模块与所述多个计算节点的部分相关,使得由所述通信管理器模块管理的所述多个通信是由相关部分的所述计算节点发送的通信,其中所述通信管理器模块还管理所述相关部分的所述计算节点所属的物理底层网络的第一物理子网络,其中所述相关部分的计算节点属于所述第一虚拟计算机网络的两个或多个子网络,使得所述通信管理器模块模拟与所述两个或多个子网络相关的两个或多个所述物理路由器装置的功能,且其中对每个所述受管通信的修改包含将包含于所述通信中的虚拟硬件地址修改成对应于所述通信的目的计算节点的虚拟硬件地址。
条款3.根据条款2所述的方法,其中所述通信管理器模块是各自管理所述多个计算节点的相关部分的覆盖网络管理器系统的多个通信管理器模块之一,且其中所述第一虚拟计算机网络是由所述覆盖网络管理器系统代表多个远程用户而提供的多个虚拟计算机网络之一,所述多个虚拟计算机网络各自覆盖于所述物理底层网络上且各自包含多个由所述覆盖网络管理器系统提供的多个计算节点。
条款4.一种用于为计算机网络提供逻辑联网功能的计算机实施方法,所述方法包括:
接收包含经由指定网络拓扑而设置的多个计算节点的第一虚拟计算机网络的配置信息,所述多个计算节点各自具有用于所述第一虚拟计算机网络的不同虚拟网络地址,所述配置信息指示一个或多个指定联网装置,所述一个或多个指定联网装置与所述多个计算节点互连且各自与一个或多个所述多个计算节点相关;和
在控制一个或多个经过配置的计算系统之下,通过在不同底层网络上覆盖所述第一虚拟计算机网络,且通过在没有物理实施所述指定网络拓扑的情况下模拟所述多个计算节点之间的多个通信的所述指定网络拓扑,而根据所接收的配置信息自动提供所述第一虚拟计算机网络,所述多个通信各自从所述多个计算节点的发送计算节点发送到各自是用于所述通信的目的计算节点的一个或多个所述多个计算节点,每个通信包含对应于所述一个或多个目的计算节点的虚拟网络地址,且包含与所述通信的最初中间目的地的所述指定联网装置之一相关的虚拟硬件地址,对于每个所述多个通信而言,所述指定网络拓扑的模拟包含:
基于所述通信中包含的所述虚拟网络地址而识别所述一个或多个目的计算节点;和
对于每个所述一个或多个目的计算节点而言,在所述底层网络上将所述通信转送到所述目的计算节点的位置;
将所述通信修改成包含对应于所述通信的信息,所述通信已经由所述指定网络拓扑通过其相关虚拟硬件地址包含于所述通信中的所述指定联网装置从所述发送计算节点转送到所述目的计算节点;和
将所述经修改的通信提供给所述目的计算节点。
条款5.根据条款4所述的方法,其中所述指定网络拓扑包含所述第一虚拟计算机网络的多个逻辑子网络,所述多个逻辑子网络各自包含不同子组的所述多个计算节点,且其中所述一个或多个指定联网装置包含多个逻辑路由器装置,所述多个逻辑路由器装置各自与所述多个逻辑子网络之一相关。
条款6.根据条款5所述的方法,其中进行所述指定网络拓扑的模拟以用于作为不同逻辑子网络的部分的发送计算节点与目的计算节点之间发送的通信。
条款7.根据条款4所述的方法,其中所述指定网络拓扑的模拟包含以一个或多个逻辑联网装置逻辑表示所述一个或多个物理联网装置,且在经由所述指定网络拓扑转送所述多个通信时模拟所述一个或多个逻辑联网装置的功能。
条款8.根据条款4所述的方法,其中将一个或多个所述多个通信中的每个修改成包含对应于已由指定联网装置转送到目的计算节点的通信的信息,所述修改包含在通信中以对应于所述通信的所述目的计算节点的不同虚拟硬件地址取代与所述指定联网装置相关的所述虚拟硬件地址,且包含修改所述通信的报头以反映网络转送跳跃的发生。
条款9.根据条款8所述的方法,其中根据所述所接收的配置信息提供所述第一虚拟计算机网络,其包含:
为每个所述多个计算节点和每个所述指定联网装置追踪用于所述第一虚拟计算机网络的虚拟硬件地址;
在所述指定网络拓扑中为每个所述多个计算节点追踪所述指定联网装置的局域联网装置;和
对于来自所述多个计算节点且用于将由作出所述请求的请求计算节点的局域指定联网装置提供的信息的多个请求的每个而言,以模拟作出所述请求的请求计算节点的局域指定联网装置的功能的方式响应所述请求。
条款10.根据条款4所述的方法,其中所述一个或多个指定联网装置包含多个逻辑联网装置,其中经由所述指定网络拓扑转送一个或多个所述多个通信的每个,所述转送包含将转送所述通信的两个或多个所述多个逻辑联网装置,且其中将所述一个或多个通信的每个修改成包含对应于已由指定联网装置转送到目的计算节点的所述通信的信息,所述修改包含在所述通信中以对应于所述通信的所述目的计算节点的不同虚拟硬件地址取代与所述指定联网装置相关的所述虚拟硬件地址,且包含修改所述通信的报头以反映一些多个网络转送跳跃的发生,所述多个网络转送跳跃对应于将经由所述指定网络拓扑而转送所述通信的一些两个或多个逻辑联网装置。
条款11.根据条款4所述的方法,其中所述第一虚拟计算机网络的提供还包含管理所述多个计算节点之间的多个其它通信,所述多个其它通信各自从所述多个计算节点的发送计算节点发送到所述多个计算节点的目的计算节点,且包含用于所述目的计算节点的虚拟网络地址并且包含与所述目的计算节点相关的虚拟硬件地址,每个所述多个其它通信的管理包含在所述底层网络上将所述其它通信转送到所述目的计算节点的位置,且在没有修改成包含对应于已经由所述指定网络拓扑转送的所述通信的信息的情况下提供所述其它通信给所述目的计算节点。
条款12.根据条款11所述的方法,其中所述指定网络拓扑包含所述第一虚拟计算机网络的多个逻辑子网络,所述多个逻辑子网络各自包含不同子组的所述多个计算节点,其中所述多个通信各自在作为两个不同逻辑子网络的部分的发送计算节点与至少一个目的计算节点之间,且其中所述多个其它通信是在作为单个逻辑子网络的部分的发送计算节点与目的计算节点之间。
条款13.根据条款4所述的方法,其中所述底层网络是包含多个互连的物理联网装置的物理网络,其中每个所述多个计算节点在所述底层网络地址中具有相关底层网络地址,所述相关底层网络地址对应于所述计算节点的位置且不同于所述计算节点的虚拟网络地址,且其中在所述底层网络上将每个所述多个通信转送到目的计算节点的位置,所述转送包含将所述通信发送到所述底层网络的物理联网装置之一,使得所述一个物理联网装置使用所述目的计算节点的所述底层网络地址以在所述底层网络中将所述通信路由到所述目的计算节点的位置。
条款14.根据条款4所述的方法,其中所述第一虚拟计算机网络的配置信息接收自代表提供所述第一虚拟计算机网络的用户中。
条款15.根据条款14所述的方法,其中所述多个计算节点各自是托管在多个主机物理计算系统之一上的虚拟机,其中所述方法是由虚拟机通信管理器模块执行,所述虚拟机通信管理器模块在所述物理计算系统之一上执行以管理托管在所述一个物理计算系统上的所述虚拟机计算节点的通信,且其中所述虚拟机通信管理器模块是覆盖网络管理器系统的多个通信管理器模块之一,所述覆盖网络管理器系统提供将多个虚拟计算机网络提供给各自覆盖在所述底层网络上的多睂用户。
条款16.一种其内容使得计算系统能够通过执行包括以下的方法而为计算机网络提供逻辑联网功能的计算机可读介质:
获得关于用于包含多个计算节点的第一虚拟计算机网络的指定逻辑网络拓扑的信息,所述第一虚拟计算机网络覆盖在互连所述多个计算节点的不同底层网络上,每个所述多个计算节点具有用于所述第一虚拟计算机网络的相关虚拟网络地址且具有在所述底层网络中对应于所述计算节点的位置的不同相关底层网络地址;和
自动管理在所述多个计算节点之间发送的多个通信以便虚拟地实施用于所述第一虚拟计算机网络的指定逻辑网络拓扑,所述多个通信各自从第一计算节点发送且包含用于目的第二计算节点的所述虚拟网络地址,每个所述多个通信的管理包含:
使用与所述第二计算节点相关的所述底层网络以在所述底层网络上将所述通信转送到所述底层网络中的所述第二计算节点的位置;知
在提供所述通信到所述第二计算节点之前,将所述通信修改成包含经由所述逻辑网络拓扑而模拟所述通信从所述第一计算节点到所述第二计算节点的转送的信息。
条款17.根据条款16所述的计算机可读介质,其中所获得的信息是由代表提供所述第一虚拟计算机网络的用户指定的配置信息,其中所述指定逻辑网络拓扑指示一个或多个指定联网装置,所述一个或多个指定联网装置与所述多个计算节点互连且各自与一个或多个所述计算节点相关,且其中如果所述一个或多个指定联网装置物理实施且用来将所述通信从发送计算节点转送到目的计算节点,那么所述第一虚拟计算机网络的所述指定逻辑网络拓扑的虚拟实施包含模拟将由所述一个或多个指定联网装置提供的功能。
条款18.根据条款17所述的计算机可读介质,其中每个所述多个计算节点和每个所述一个或多个指定联网装置还具有用于所述第一虚拟计算机网络的不同虚拟硬件地址,其中每个所述多个通信还包含用于所述通信的最初期望的目的地的虚拟硬件地址,且其中对每个所述多个通信的修改还包含确定所述通信中包含的虚拟硬件地址对应的所述指定联网装置之一,并将在转送所述通信时已通过经确定的联网装置加入的信息加入到所述通信。
条款19.根据条款16所述的计算机可读介质,其中所述计算机可读介质是其上存储所述内容的所述计算系统的内存和存储含有所述内容的生成信号的数据传输介质中的至少一个,且其中所述内容是执行时使得所述计算系统执行所述方法的指令。
条款20.一种结构化成向计算机网络提供逻辑联网功能的系统,所述系统包括:
一个或多个计算系统的一个或多个处理器;和
一个或多个通信管理器模块,在由至少一个所述一个或多个处理器执行时,所述一个或多个通信管理器模块各自配置成向使用一个或多个中间网络来实施的第一虚拟计算机网络提供逻辑联网功能,所述一个或多个中间网络包含物理互连所述第一虚拟计算机网络的多个计算节点的多个物理联网装置,每个所述多个计算节点具有用于所述第一虚拟计算机网络的相关第一虚拟网络地址且具有对应于所述一个或多个中间网络的不同相关第二网络地址,所述逻辑联网功能的提供包含:
获得关于所述第一虚拟计算机网络的一个或多个指定逻辑联网装置的配置信息,所述一个或多个指定逻辑联网装置与所述多个计算节点逻辑互连且不同于所述一个或多个中间网络的所述物理联网装置;和
自动管理在所述多个计算节点之间发送的多个通信以便执行所述指定逻辑联网装置的功能,每个所述多个通信的管理包含使用用于所述通信的目的计算节点的所述第二网络地址以经由所述一个或多个中间网络的至少一个所述物理联网装置而将所述通信转送到所述目的计算节点,每个所述多个通信的管理还包含将所述通信修改成包含模拟通过逻辑互连所述多个计算节点的一个或多个所述指定逻辑联网装置对所述通信的转送的信息。
条款21.根据条款20所述的系统,其中所述一个或多个中间网络是其上覆盖所述第一虚拟计算机网络的底层网络,其中所述多个计算节点的所述相关第二网络地址是底层网络中对应于所述多个计算节点的位置的底层网络地址,其中所述一个或多个指定逻辑联网装置包含各自与所述多个计算节点的子组相关的多个指定逻辑联网装置,其中所述配置信息还指定包含所述多个逻辑联网装置的所述第一虚拟计算机网络的逻辑网络拓扑,且其中如果所述多个指定逻辑联网装置物理实施且用来将所述通信从发送计算节点转送到目的计算节点,那么所述逻辑联网装置功能的提供包含模拟将由所述多个指定逻辑联网装置提供的功能。
条款22.根据条款21所述的系统,其中每个所述多个计算节点和每个所述一个或多个指定逻辑联网装置还具有用于所述第一虚拟计算机网络的不同虚拟硬件地址,其中每个所述多个通信还包含用于所述通信的最初期望的目的地的虚拟硬件地址,其中每个所述多个通信的修改还包含确定包含于所述通信中的所述虚拟硬件地址对应的所述指定逻辑联网装置之一,和在转送所述通信时将已由经确定的逻辑联网装置加入的信息加入到所述通信,且其中所述一个或多个通信管理器模块是覆盖网络管理器系统的部分,所述覆盖网络管理器系统提供所述第一虚拟计算机网络且为所述第一虚拟计算机网络自动管理所述逻辑联网功能的提供。
条款23.根据条款20所述的系统,其中所述一个或多个通信管理器模块包含各自管理从所述多个计算节点的子组的相关组发送的通信的多个通信管理器模块,其中所述一个或多个计算系统包含执行所述多个通信管理器模块的多个计算系统,且其中所述系统还包括所述多个计算系统,一个或多个所述多个计算系统各自托管各自提供所述多个计算节点之一的多个虚拟机,且执行所述通信管理器模块之一作为用于所述计算系统的虚拟机管理器模块的部分,使得由所述计算系统的托管虚拟机所提供的所述计算节点是用于所述执行通信管理器模块的计算节点的相关组。
条款24.根据条款20所述的系统,其中所述一个或多个通信管理器模块各自包含用于由所述一个或多个计算系统的至少一个处理器执行的软件指令。
条款25.根据条款20所述的系统,其中所述一个或多个通信管理器模块各自由通过以下方式而用于为所述第一虚拟计算机网络提供逻辑联网功能的装置组成:
获得关于所述第一虚拟计算机网络的一个或多个指定逻辑联网装置的配置信息,所述一个或多个指定逻辑联网装置与所述多个计算节点逻辑互连且不同于所述一个或多个中间网络的所述物理联网装置;和
自动管理所述多个计算节点之间发送的多个通信以便执行所述指定逻辑联网装置的功能,每个所述多个通信的管理包含使用用于所述通信的目的计算节点的所述第二网络地址以经由所述一个或多个中间网络的至少一个所述物理联网装置而将所述通信转送到所述目的计算节点,每个所述多个通信的管理还包含将所述通信修改成包含模拟由逻辑互连所述多个计算节点的一个或多个所述指定逻辑联网装置转送所述通信的信息。
从前述中了解到,尽管本文已出于说明之目的而描述了特定实施方案,然而可在不偏离本发明的精神和范围的情况下做出各种修改。相应地,除所附权力要求和其中所引用的原理之外,本发明不受限制。另外,虽然下文以某些权力要求形式提出本发明的某些方面,但是发明人以任何可用的权利要求形式考虑到本发明的各个方面。例如,虽然当前仅列举出本发明的一些方面包含于计算机可读介质中,但是其它方面同样可如此包含于其中。
Claims (13)
1.一种计算机实施的方法,包括:
接收针对虚拟计算机网络的配置信息,所述虚拟计算机网络包括多个计算节点和一个或更多个逻辑路由器设备;以及
一个或更多个配置的计算系统以模拟所述一个或更多个逻辑路由器设备的功能的方式管理所述多个计算节点之间发送的一个或更多个通信,所述通信中的每个通信的管理包括:
通过下层计算机网络向所述通信的目的地计算节点转发所述通信,其中,所述下层计算机网络是所述虚拟计算机网络所覆盖的底层计算机网络,并且通过所述下层计算机网络转发通信包括:使用与所述通信的所述目的地计算节点相关联的目的地底层网络地址;
修改所述通信以包括来自所述一个或更多个逻辑路由器设备的模拟动作的信息;以及
向所述通信的目的地计算节点提供所修改的通信。
2.根据权利要求1所述的方法,其中,所述配置信息指示用户所指定的所述多个计算节点的逻辑网络拓扑,所述虚拟计算机网络是代表所述用户而提供的,所述逻辑网络拓扑包括所述一个或更多个逻辑路由器设备。
3.根据权利要求2所述的方法,其中,以模拟所述一个或更多个逻辑路由器设备的功能的方式管理所述一个或更多个通信包括:模拟所述一个或更多个逻辑路由器设备的功能,而不实现任意物理路由器设备来代表所述一个或更多个逻辑路由器设备。
4.根据权利要求2所述的方法,其中,所述逻辑网络拓扑包括所述虚拟计算机网络的多个逻辑子网络并包括多个逻辑路由器设备,每个逻辑子网络包括所述多个计算节点的不同子集,每个逻辑路由器设备与所述多个逻辑子网络之一相关联。
5.根据权利要求2所述的方法,还包括:通过以下步骤,根据所接收的配置信息提供所述虚拟计算机网络:
将所述虚拟计算机网络覆盖在所述下层计算机网络上;
针对所述多个计算节点中的每个计算节点和所述一个或更多个逻辑路由器设备中的每个逻辑路由器设备,跟踪所述虚拟计算机网络的虚拟硬件地址;以及
针对所述多个计算节点中的每个计算节点,跟踪与所述逻辑网络拓扑中的所述计算节点相关联的逻辑路由器设备。
6.根据权利要求1所述的方法,还包括:管理所述多个计算节点之间的另一通信而不模拟所述一个或更多个逻辑路由器设备的功能,所述另一通信的管理包括通过所述下层计算机网络向所述另一通信的所指示的目的地计算节点的位置转发所述另一通信,并包括向所指示的目的地计算节点提供所述另一通信而不对所述另一通信进行修改以包括与所述一个或更多个逻辑路由器设备中的任意一个的模拟动作相对应的信息。
7.根据权利要求1所述的方法,其中,所述一个或更多个通信之一还包括与所述逻辑路由器设备之一相关联的虚拟硬件地址,并且对所述一个通信进行修改以包括来自所述至少一个逻辑路由器设备的模拟动作的信息包括:如果所述一个逻辑路由器设备已经在物理上实现并已经转发了所述一个通信,则将与所述虚拟硬件地址相关联的所述一个逻辑路由器设备本将添加到所述一个通信中的信息添加到所述一个通信中。
8.根据权利要求7所述的方法,其中,对所述一个通信的修改包括:将所述一个通信中的所述虚拟硬件地址替换为与所述一个通信的所述目的计算节点相对应的不同的虚拟硬件地址。
9.根据权利要求7所述的方法,其中,对所述一个通信的修改包括:修改所述一个通信的首部,以反映网络转发跳跃的发生。
10.一种计算机系统,包括:
一个或更多个处理器;
第一装置,用于接收针对虚拟计算机网络的配置信息,所述虚拟计算机网络包括多个计算节点和一个或更多个逻辑路由器设备;以及
第二装置,用于以模拟所述一个或更多个逻辑路由器设备的功能的方式管理所述多个计算节点之间发送的一个或更多个通信,所述通信中的每个通信的管理包括:
通过下层计算机网络向所述通信的目的地计算节点转发所述通信,其中,所述下层计算机网络是所述虚拟计算机网络所覆盖的底层计算机网络,并且通过所述下层计算机网络转发每个通信包括:使用与所述通信的所述目的地计算节点相关联的目的地底层网络地址;
修改所述通信以包括来自所述一个或更多个逻辑路由器设备的模拟动作的信息;以及
向所述目的地计算节点提供所修改的通信。
11.根据权利要求10所述的计算机系统,其中,所述配置信息指示用户所指定的所述多个计算节点的逻辑网络拓扑,所述虚拟计算机网络是代表所述用户而提供的,所述逻辑网络拓扑包括所述一个或更多个逻辑路由器设备。
12.根据权利要求10所述的计算机系统,其中,所述一个或更多个通信之一还包括与所述逻辑路由器设备之一相关联的虚拟硬件地址,并且对所述一个通信进行修改以包括来自所述至少一个逻辑路由器设备的模拟动作的信息包括:如果所述一个逻辑路由器设备已经在物理上实现并已经转发了所述一个通信,则将与所述虚拟硬件地址相关联的所述一个逻辑路由器设备本将添加到所述一个通信中的信息添加到所述一个通信中。
13.根据权利要求12所述的计算机系统,其中,对所述一个通信的修改还包括将所述虚拟硬件地址替换为与所述一个通信的所述目的计算节点相对应的不同的虚拟硬件地址,并包括修改所述一个通信的首部以反映网络转发跳跃的发生。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/414,260 US9106540B2 (en) | 2009-03-30 | 2009-03-30 | Providing logical networking functionality for managed computer networks |
US12/414,260 | 2009-03-30 | ||
CN201080009620.1A CN102334111B (zh) | 2009-03-30 | 2010-03-18 | 为受管计算机网络提供逻辑联网功能 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080009620.1A Division CN102334111B (zh) | 2009-03-30 | 2010-03-18 | 为受管计算机网络提供逻辑联网功能 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103944768A CN103944768A (zh) | 2014-07-23 |
CN103944768B true CN103944768B (zh) | 2018-05-01 |
Family
ID=42784129
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080009620.1A Active CN102334111B (zh) | 2009-03-30 | 2010-03-18 | 为受管计算机网络提供逻辑联网功能 |
CN201410186367.7A Active CN103944768B (zh) | 2009-03-30 | 2010-03-18 | 为受管计算机网络提供逻辑联网功能 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080009620.1A Active CN102334111B (zh) | 2009-03-30 | 2010-03-18 | 为受管计算机网络提供逻辑联网功能 |
Country Status (8)
Country | Link |
---|---|
US (6) | US9106540B2 (zh) |
EP (2) | EP2414960B1 (zh) |
JP (3) | JP5358693B2 (zh) |
CN (2) | CN102334111B (zh) |
BR (1) | BRPI1009332B8 (zh) |
CA (2) | CA2751733C (zh) |
SG (2) | SG10201401039SA (zh) |
WO (1) | WO2010114715A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180041388A1 (en) * | 2015-03-13 | 2018-02-08 | Koninklijke Kpn N.V. | Method and Control System for Controlling Provisioning of a Service in a Network |
Families Citing this family (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892706B1 (en) | 2010-06-21 | 2014-11-18 | Vmware, Inc. | Private ethernet overlay networks over a shared ethernet in a virtual environment |
US8924524B2 (en) * | 2009-07-27 | 2014-12-30 | Vmware, Inc. | Automated network configuration of virtual machines in a virtual lab data environment |
US8217992B2 (en) * | 2007-01-11 | 2012-07-10 | The Jackson Laboratory | Microscopic imaging techniques |
US8065395B2 (en) * | 2009-03-13 | 2011-11-22 | Novell, Inc. | System and method for queuing to a cloud via a queuing proxy |
US8230050B1 (en) | 2008-12-10 | 2012-07-24 | Amazon Technologies, Inc. | Providing access to configurable private computer networks |
JP4780487B2 (ja) * | 2009-03-04 | 2011-09-28 | 日本電気株式会社 | 業務環境生成システム、業務環境生成方法、及び業務環境生成用プログラム |
US9106540B2 (en) | 2009-03-30 | 2015-08-11 | Amazon Technologies, Inc. | Providing logical networking functionality for managed computer networks |
EP2804350B1 (en) * | 2009-04-01 | 2019-07-24 | Nicira, Inc. | Method and apparatus for implementing and managing virtual switches |
US20110110377A1 (en) * | 2009-11-06 | 2011-05-12 | Microsoft Corporation | Employing Overlays for Securing Connections Across Networks |
US9203747B1 (en) | 2009-12-07 | 2015-12-01 | Amazon Technologies, Inc. | Providing virtual networking device functionality for managed computer networks |
US7937438B1 (en) | 2009-12-07 | 2011-05-03 | Amazon Technologies, Inc. | Using virtual networking devices to manage external connections |
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 |
US8995301B1 (en) | 2009-12-07 | 2015-03-31 | Amazon Technologies, Inc. | Using virtual networking devices to manage routing cost information |
US7953865B1 (en) | 2009-12-28 | 2011-05-31 | Amazon Technologies, Inc. | Using virtual networking devices to manage routing communications between connected computer networks |
US8224971B1 (en) | 2009-12-28 | 2012-07-17 | Amazon Technologies, Inc. | Using virtual networking devices and routing information to initiate external actions |
US7991859B1 (en) | 2009-12-28 | 2011-08-02 | Amazon Technologies, Inc. | Using virtual networking devices to connect managed computer networks |
US8224931B1 (en) * | 2010-03-31 | 2012-07-17 | Amazon Technologies, Inc. | Managing use of intermediate destination computing nodes for provided computer networks |
US8738745B1 (en) * | 2010-03-31 | 2014-05-27 | Amazon Technologies, Inc. | Managing use of intermediate destination hardware devices for provided computer networks |
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 |
US8296459B1 (en) * | 2010-06-30 | 2012-10-23 | Amazon Technologies, Inc. | Custom routing decisions |
US8239572B1 (en) * | 2010-06-30 | 2012-08-07 | Amazon Technologies, Inc. | Custom routing decisions |
JP5710928B2 (ja) * | 2010-10-07 | 2015-04-30 | 株式会社日立製作所 | ネットワークシステム、仮想ネットワーク管理方法及びルータ |
JP5580766B2 (ja) * | 2011-03-14 | 2014-08-27 | 株式会社エヌ・ティ・ティ・データ | サーバ装置、パケット伝送システム、パケット伝送方法及びプログラム |
US8924542B1 (en) | 2011-05-31 | 2014-12-30 | Amazon Technologies, Inc. | Methods and apparatus for scalable private services |
US8971334B2 (en) * | 2011-08-02 | 2015-03-03 | Telefonaktiebolaget L M Ericsson (Publ) | Packet broadcast mechanism in a split architecture network |
EP3462686B1 (en) | 2011-08-17 | 2019-10-16 | Nicira Inc. | Distributed logical l3 routing |
US9319272B1 (en) | 2011-09-21 | 2016-04-19 | Amazon Technologies, Inc. | Methods and apparatus for providing composed appliance services in virtualized private networks |
US10230687B1 (en) * | 2011-11-16 | 2019-03-12 | Google Llc | Apparatus and method for correlating addresses of different Internet protocol versions |
JP2014534789A (ja) * | 2011-11-29 | 2014-12-18 | アマゾン・テクノロジーズ・インコーポレーテッド | 直接ネットワークピアリングを管理するためのインターフェース |
US9705704B2 (en) * | 2012-01-13 | 2017-07-11 | Verizon Patent And Licensing Inc. | Method and system of forming a mobile virtual network |
US20130182605A1 (en) * | 2012-01-13 | 2013-07-18 | Verizon Patent And Licensing Inc. | Method and system for providing a mobile virtual router |
EP2795842B1 (en) | 2012-01-26 | 2016-08-24 | Siemens Aktiengesellschaft | Controller and method for controlling communication services for applications on a physical network |
US9256742B2 (en) | 2012-01-30 | 2016-02-09 | Intel Corporation | Remote trust attestation and geo-location of servers and clients in cloud computing environments |
CN104081713B (zh) * | 2012-01-30 | 2018-08-17 | 英特尔公司 | 云计算环境中的服务器和客户机的远程信任认证和地理位置 |
US20150135178A1 (en) | 2012-03-08 | 2015-05-14 | Anna Fischer | Modifying virtual machine communications |
US9129124B2 (en) * | 2012-04-12 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Dynamic provisioning of virtual systems |
US9965332B2 (en) * | 2012-05-18 | 2018-05-08 | Paypal, Inc. | Provisioning of devices |
CN103457752A (zh) * | 2012-05-30 | 2013-12-18 | 中国科学院声学研究所 | 一种虚拟网络映射方法 |
US9100216B2 (en) * | 2012-07-23 | 2015-08-04 | Cisco Technology, Inc. | System and method for scaling IPv6 on a three-tier network architecture at a large data center |
KR20140036542A (ko) * | 2012-09-17 | 2014-03-26 | 한국전자통신연구원 | 오버레이 네트워크를 구성하기 위한 장치 및 그 방법 |
US9426154B2 (en) * | 2013-03-14 | 2016-08-23 | Amazon Technologies, Inc. | Providing devices as a service |
CN104243258B (zh) * | 2013-06-20 | 2017-10-31 | 中国科学院声学研究所 | 一种基于分类的虚拟网络映射方法及系统 |
US9780993B2 (en) | 2013-06-26 | 2017-10-03 | Amazon Technologies, Inc. | Producer computing system leasing on behalf of consumer computing system |
US9369518B2 (en) | 2013-06-26 | 2016-06-14 | Amazon Technologies, Inc. | Producer system partitioning among leasing agent systems |
US9843631B2 (en) | 2013-06-26 | 2017-12-12 | Amazon Technologies, Inc. | Producer system selection |
JP6165978B2 (ja) * | 2013-06-26 | 2017-07-19 | アマゾン テクノロジーズ インコーポレイテッド | リースエージェントシステム間での制作者システムの分配 |
US9350801B2 (en) | 2013-06-26 | 2016-05-24 | Amazon Technologies, Inc. | Managing client access to a plurality of computing systems |
CA2924469A1 (en) * | 2013-10-10 | 2015-04-16 | AdaptiveApps, Inc. | Adaptive overlay networking |
US9977685B2 (en) * | 2013-10-13 | 2018-05-22 | Nicira, Inc. | Configuration of logical router |
US9807057B1 (en) | 2013-12-17 | 2017-10-31 | Amazon Technologies, Inc. | Private network peering in virtual network environments |
US9712438B2 (en) | 2014-01-08 | 2017-07-18 | Microsoft Technology Licensing, Llc | Routing messages between virtual networks |
JP5858205B1 (ja) * | 2014-03-07 | 2016-02-10 | 日本電気株式会社 | ネットワークシステムと拠点間ネットワーク連携制御装置及びネットワーク制御方法並びにプログラム |
EP3123672B1 (en) * | 2014-03-27 | 2019-11-20 | Nicira Inc. | Ingress ecmp in virtual distributed routing environment |
US9893988B2 (en) | 2014-03-27 | 2018-02-13 | Nicira, Inc. | Address resolution using multiple designated instances of a logical router |
EP2958267B1 (en) * | 2014-06-18 | 2019-09-04 | Airbus Defence and Space Limited | Communication network structure, method of interconnecting autonomous communication networks and computer program implementing said method |
WO2016015266A1 (zh) * | 2014-07-31 | 2016-02-04 | 华为技术有限公司 | 通信系统和通信方法 |
US9787499B2 (en) | 2014-09-19 | 2017-10-10 | Amazon Technologies, Inc. | Private alias endpoints for isolated virtual networks |
US10511458B2 (en) | 2014-09-30 | 2019-12-17 | Nicira, Inc. | Virtual distributed bridging |
US9832118B1 (en) | 2014-11-14 | 2017-11-28 | Amazon Technologies, Inc. | Linking resource instances to virtual networks in provider network environments |
US10212161B1 (en) | 2014-11-19 | 2019-02-19 | Amazon Technologies, Inc. | Private network layering in provider network environments |
FR3030076B1 (fr) * | 2014-12-10 | 2016-12-09 | Bull Sas | Procede de gestion d'un reseau de nœuds de calcul |
EP3259894B1 (en) * | 2015-02-16 | 2020-06-17 | Telefonaktiebolaget LM Ericsson (publ) | Multi-stage defense-aware security modules placement in the cloud |
US10021196B1 (en) | 2015-06-22 | 2018-07-10 | Amazon Technologies, Inc. | Private service endpoints in isolated virtual networks |
US10225184B2 (en) | 2015-06-30 | 2019-03-05 | Nicira, Inc. | Redirecting traffic in a virtual distributed router environment |
US20170293500A1 (en) * | 2016-04-06 | 2017-10-12 | Affirmed Networks Communications Technologies, Inc. | Method for optimal vm selection for multi data center virtual network function deployment |
US10693732B2 (en) | 2016-08-03 | 2020-06-23 | Oracle International Corporation | Transforming data based on a virtual topology |
US10389628B2 (en) | 2016-09-02 | 2019-08-20 | Oracle International Corporation | Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network |
US10469324B2 (en) * | 2016-11-22 | 2019-11-05 | Amazon Technologies, Inc. | Virtual network verification service |
US10862796B1 (en) * | 2017-01-18 | 2020-12-08 | Amazon Technologies, Inc. | Flow policies for virtual networks in provider network environments |
US10862709B1 (en) * | 2017-01-18 | 2020-12-08 | Amazon Technologies, Inc. | Conditional flow policy rules for packet flows in provider network environments |
US10462013B2 (en) * | 2017-02-13 | 2019-10-29 | Oracle International Corporation | Implementing a single-addressable virtual topology element in a virtual topology |
US10498810B2 (en) * | 2017-05-04 | 2019-12-03 | Amazon Technologies, Inc. | Coordinating inter-region operations in provider network environments |
US10637800B2 (en) | 2017-06-30 | 2020-04-28 | Nicira, Inc | Replacement of logical network addresses with physical network addresses |
US10681000B2 (en) | 2017-06-30 | 2020-06-09 | Nicira, Inc. | Assignment of unique physical network addresses for logical network addresses |
US11522763B2 (en) * | 2017-11-29 | 2022-12-06 | Nicira, Inc. | Agent-based network scanning in software-defined networking (SDN) environments |
US10693671B2 (en) | 2017-12-18 | 2020-06-23 | Cisco Technology, Inc. | Distributing traffic to multiple destinations via an isolation network |
CN108234325B (zh) * | 2018-01-10 | 2021-09-07 | 北京知道创宇信息技术股份有限公司 | 基于ip任播的系统及报文转发方法 |
US11822946B2 (en) * | 2018-06-28 | 2023-11-21 | Cable Television Laboratories, Inc. | Systems and methods for secure network management of virtual network functions |
US11563677B1 (en) * | 2018-06-28 | 2023-01-24 | Cable Television Laboratories, Inc. | Systems and methods for secure network management of virtual network function |
EP3609128A1 (en) * | 2018-08-07 | 2020-02-12 | Siemens Aktiengesellschaft | Communication system, provider node, communication node and method for providing a virtual network function to a customer node |
JP7132494B2 (ja) | 2018-08-21 | 2022-09-07 | 富士通株式会社 | マルチクラウド運用プログラム、およびマルチクラウド運用方法 |
US11232212B2 (en) | 2018-08-21 | 2022-01-25 | The Regents Of The University Of Michigan | Computer system with moving target defenses against vulnerability attacks |
US11108687B1 (en) | 2018-09-12 | 2021-08-31 | Amazon Technologies, Inc. | Scalable network function virtualization service |
US10834044B2 (en) | 2018-09-19 | 2020-11-10 | Amazon Technologies, Inc. | Domain name system operations implemented using scalable virtual traffic hub |
CN109347670B (zh) * | 2018-10-24 | 2021-09-28 | 杭州数梦工场科技有限公司 | 路径追踪方法及装置、电子设备、存储介质 |
US12106132B2 (en) * | 2018-11-20 | 2024-10-01 | Amazon Technologies, Inc. | Provider network service extensions |
WO2021034753A2 (en) * | 2019-08-16 | 2021-02-25 | The Regents Of The University Of Michigan | Thwarting control plane attacks with displaced and dilated address spaces |
CN112511569B (zh) * | 2021-02-07 | 2021-05-11 | 杭州筋斗腾云科技有限公司 | 网络资源访问请求的处理方法、系统及计算机设备 |
TWI786766B (zh) * | 2021-08-12 | 2022-12-11 | 鴻海精密工業股份有限公司 | 裸機部署方法、電子裝置及存儲介質 |
US11924046B1 (en) * | 2022-08-23 | 2024-03-05 | Cisco Technology, Inc. | Network hierarchy constructs enabling instant global wide area network connectivity |
CN115185616B (zh) * | 2022-09-14 | 2022-12-13 | 深圳依时货拉拉科技有限公司 | 业务规则引擎装置及业务规则引擎的处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520550A (zh) * | 2001-04-20 | 2004-08-11 | �������չɷ�����˾ | 在处理系统中虚拟连网的系统及方法 |
CN1639704A (zh) * | 2002-06-21 | 2005-07-13 | 国际商业机器公司 | 通过自动选择网络指定路由器自动配置覆盖网的方法和结构 |
CN1943179A (zh) * | 2004-02-13 | 2007-04-04 | 英特尔公司 | 用于动态地可扩展的虚拟交换机的装置和方法 |
Family Cites Families (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473599A (en) * | 1994-04-22 | 1995-12-05 | Cisco Systems, Incorporated | Standby router protocol |
US5752003A (en) * | 1995-07-14 | 1998-05-12 | 3 Com Corporation | Architecture for managing traffic in a virtual LAN environment |
US6006264A (en) * | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
US6007408A (en) | 1997-08-21 | 1999-12-28 | Micron Technology, Inc. | Method and apparatus for endpointing mechanical and chemical-mechanical polishing of substrates |
US5943317A (en) * | 1998-10-15 | 1999-08-24 | International Business Machines Corp. | Sub-network route optimization over a shared access transport facility |
US7752024B2 (en) * | 2000-05-05 | 2010-07-06 | Computer Associates Think, Inc. | Systems and methods for constructing multi-layer topological models of computer networks |
WO2002061599A1 (en) | 2001-01-25 | 2002-08-08 | Crescent Networks, Inc. | Extension of address resolution protocol (arp) for internet protocol (ip) virtual networks |
US7174390B2 (en) * | 2001-04-20 | 2007-02-06 | Egenera, Inc. | Address resolution protocol system and method in a virtual network |
US7231430B2 (en) * | 2001-04-20 | 2007-06-12 | Egenera, Inc. | Reconfigurable, virtual processing system, cluster, network and method |
US20020158900A1 (en) * | 2001-04-30 | 2002-10-31 | Hsieh Vivian G. | Graphical user interfaces for network management automated provisioning environment |
JP2003008612A (ja) | 2001-06-25 | 2003-01-10 | Mitsubishi Electric Corp | ネットワークインタフェース装置及びネットワークインタフェース方式及びネットワークインタフェース方法及びネットワークインタフェースプログラム及びネットワークインタフェースプログラムを記録した記録媒体 |
EP1429249A3 (en) * | 2002-01-04 | 2009-09-09 | Egenera, Inc. | Virtual networking system and method in a processing system |
US20030217126A1 (en) | 2002-05-14 | 2003-11-20 | Polcha Andrew J. | System and method for automatically configuring remote computer |
US20050193103A1 (en) | 2002-06-18 | 2005-09-01 | John Drabik | Method and apparatus for automatic configuration and management of a virtual private network |
US7606884B2 (en) * | 2002-09-04 | 2009-10-20 | Northrop Grumman Corporation | SNMP firewall for network identification |
US20060062187A1 (en) * | 2002-10-04 | 2006-03-23 | Johan Rune | Isolation of hosts connected to an access network |
JP4167089B2 (ja) * | 2003-01-17 | 2008-10-15 | 日本電信電話株式会社 | サーバシステム及びクライアントサーバ型システムにおける誤り隠蔽方法 |
US7814228B2 (en) * | 2003-02-13 | 2010-10-12 | Oracle America, Inc. | System and method for using data encapsulation in a virtual network |
US7949785B2 (en) * | 2003-03-31 | 2011-05-24 | Inpro Network Facility, Llc | Secure virtual community network system |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
JP2005086445A (ja) * | 2003-09-08 | 2005-03-31 | Nooza:Kk | ネットワーク構築方法、ネットワーク構築装置、およびネットワーク構築プログラム |
US20070061441A1 (en) | 2003-10-08 | 2007-03-15 | Landis John A | Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions |
US20070050520A1 (en) * | 2004-03-11 | 2007-03-01 | Hewlett-Packard Development Company, L.P. | Systems and methods for multi-host extension of a hierarchical interconnect network |
US7437469B2 (en) * | 2004-05-26 | 2008-10-14 | Ciena Corporation | Virtual network element framework and operating system for managing multi-service network equipment |
GB2418326B (en) | 2004-09-17 | 2007-04-11 | Hewlett Packard Development Co | Network vitrualization |
US7463637B2 (en) | 2005-04-14 | 2008-12-09 | Alcatel Lucent | Public and private network service management systems and methods |
US8799431B2 (en) * | 2005-08-15 | 2014-08-05 | Toutvirtual Inc. | Virtual systems management |
US9397856B2 (en) * | 2005-12-02 | 2016-07-19 | Ca, Inc. | Virtual tunnel network router |
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 |
US7643482B2 (en) * | 2006-06-30 | 2010-01-05 | Sun Microsystems, Inc. | System and method for virtual switching in a host |
JP4279300B2 (ja) | 2006-08-08 | 2009-06-17 | 株式会社東芝 | ネットワーク仮想化装置及びネットワーク仮想化プログラム |
CN100563211C (zh) * | 2006-09-29 | 2009-11-25 | 华为技术有限公司 | 一种虚拟网关、虚拟子网的实现方法以及系统 |
KR100817552B1 (ko) * | 2006-09-29 | 2008-03-27 | 한국전자통신연구원 | 맵핑 테이블을 이용한 IPv4/IPv6 단말 또는 응용프로그램간 프로토콜 변환 장치 및 방법과, 프로토콜 변환장치의 맵핑 테이블 생성 방법 |
US20080195756A1 (en) | 2007-02-08 | 2008-08-14 | Michael Galles | Method and system to access a service utilizing a virtual communications device |
US8442030B2 (en) * | 2007-03-01 | 2013-05-14 | Extreme Networks, Inc. | Software control plane for switches and routers |
US8055789B2 (en) | 2007-03-27 | 2011-11-08 | Amazon Technologies, Inc. | Configuring intercommunications between computing nodes |
JP4816572B2 (ja) * | 2007-05-30 | 2011-11-16 | 富士ゼロックス株式会社 | 仮想ネットワーク接続システム及び装置 |
US7940778B2 (en) | 2007-06-29 | 2011-05-10 | Intel Corporation | Cross-layer approach to virtualized overlay on ad hoc networks |
US8060074B2 (en) * | 2007-07-30 | 2011-11-15 | Mobile Iron, Inc. | Virtual instance architecture for mobile device management systems |
US8031633B2 (en) | 2007-08-13 | 2011-10-04 | Honeywell International Inc. | Virtual network architecture for space data processing |
US7975033B2 (en) * | 2007-10-23 | 2011-07-05 | Virtudatacenter Holdings, L.L.C. | System and method for initializing and maintaining a series of virtual local area networks contained in a clustered computer system |
GB2458154B (en) * | 2008-03-07 | 2012-06-27 | Hewlett Packard Development Co | Routing across a virtual network |
GB2459433B (en) * | 2008-03-07 | 2012-06-06 | Hewlett Packard Development Co | Distributed network connection policy management |
US8429739B2 (en) | 2008-03-31 | 2013-04-23 | Amazon Technologies, Inc. | Authorizing communications between computing nodes |
CN103354566B (zh) | 2008-03-31 | 2018-04-10 | 亚马逊技术有限公司 | 配置计算机节点之间的通信 |
US10127059B2 (en) | 2008-05-02 | 2018-11-13 | Skytap | Multitenant hosted virtual machine infrastructure |
US8521868B2 (en) | 2008-10-15 | 2013-08-27 | International Business Machines Corporation | Platform-level indicators of application performance |
US8230050B1 (en) | 2008-12-10 | 2012-07-24 | Amazon Technologies, Inc. | Providing access to configurable private computer networks |
US9137209B1 (en) | 2008-12-10 | 2015-09-15 | Amazon Technologies, Inc. | Providing local secure network access to remote services |
US9524167B1 (en) | 2008-12-10 | 2016-12-20 | Amazon Technologies, Inc. | Providing location-specific network access to remote services |
US8595378B1 (en) | 2009-03-30 | 2013-11-26 | Amazon Technologies, Inc. | Managing communications having multiple alternative destinations |
US9106540B2 (en) | 2009-03-30 | 2015-08-11 | Amazon Technologies, Inc. | Providing logical networking functionality for managed computer networks |
US8644188B1 (en) | 2009-06-25 | 2014-02-04 | Amazon Technologies, Inc. | Providing virtual networking functionality for managed computer networks |
US8532108B2 (en) | 2009-09-30 | 2013-09-10 | Alcatel Lucent | Layer 2 seamless site extension of enterprises in cloud computing |
US20110110377A1 (en) | 2009-11-06 | 2011-05-12 | Microsoft Corporation | Employing Overlays for Securing Connections Across Networks |
US8369345B1 (en) | 2009-11-13 | 2013-02-05 | Juniper Networks, Inc. | Multi-router system having shared network interfaces |
US9203747B1 (en) | 2009-12-07 | 2015-12-01 | Amazon Technologies, Inc. | Providing virtual networking device 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 |
US8995301B1 (en) | 2009-12-07 | 2015-03-31 | Amazon Technologies, Inc. | Using virtual networking devices to manage routing cost information |
US9282027B1 (en) | 2010-03-31 | 2016-03-08 | Amazon Technologies, Inc. | Managing use of alternative intermediate destination computing nodes for provided computer networks |
US20120099602A1 (en) | 2010-10-25 | 2012-04-26 | Brocade Communications Systems, Inc. | End-to-end virtualization |
EP2719124B1 (en) | 2011-06-07 | 2018-04-11 | Hewlett-Packard Enterprise Development LP | A scalable multi-tenant network architecture for virtualized datacenters |
US8868710B2 (en) | 2011-11-18 | 2014-10-21 | Amazon Technologies, Inc. | Virtual network interface objects |
US9916545B1 (en) | 2012-02-29 | 2018-03-13 | Amazon Technologies, Inc. | Portable network interfaces for authentication and license enforcement |
US20140241173A1 (en) | 2012-05-16 | 2014-08-28 | Erik J. Knight | Method for routing data over a telecommunications network |
US10389608B2 (en) | 2013-03-15 | 2019-08-20 | Amazon Technologies, Inc. | Network traffic mapping and performance analysis |
US10044581B1 (en) | 2015-09-29 | 2018-08-07 | Amazon Technologies, Inc. | Network traffic tracking using encapsulation protocol |
US9787499B2 (en) | 2014-09-19 | 2017-10-10 | Amazon Technologies, Inc. | Private alias endpoints for isolated virtual networks |
US9832118B1 (en) | 2014-11-14 | 2017-11-28 | Amazon Technologies, Inc. | Linking resource instances to virtual networks in provider network environments |
US10212161B1 (en) | 2014-11-19 | 2019-02-19 | Amazon Technologies, Inc. | Private network layering in provider network environments |
US10484297B1 (en) | 2015-03-16 | 2019-11-19 | Amazon Technologies, Inc. | Automated migration of compute instances to isolated virtual networks |
US10749808B1 (en) | 2015-06-10 | 2020-08-18 | Amazon Technologies, Inc. | Network flow management for isolated virtual networks |
US10021196B1 (en) | 2015-06-22 | 2018-07-10 | Amazon Technologies, Inc. | Private service endpoints in isolated virtual networks |
US10320644B1 (en) | 2015-09-14 | 2019-06-11 | Amazon Technologies, Inc. | Traffic analyzer for isolated virtual networks |
US10593009B1 (en) | 2017-02-22 | 2020-03-17 | Amazon Technologies, Inc. | Session coordination for auto-scaled virtualized graphics processing |
US10498693B1 (en) | 2017-06-23 | 2019-12-03 | Amazon Technologies, Inc. | Resizing virtual private networks in provider network environments |
-
2009
- 2009-03-30 US US12/414,260 patent/US9106540B2/en active Active
-
2010
- 2010-03-18 JP JP2011553177A patent/JP5358693B2/ja active Active
- 2010-03-18 BR BRPI1009332A patent/BRPI1009332B8/pt active Search and Examination
- 2010-03-18 CA CA2751733A patent/CA2751733C/en active Active
- 2010-03-18 CN CN201080009620.1A patent/CN102334111B/zh active Active
- 2010-03-18 SG SG10201401039SA patent/SG10201401039SA/en unknown
- 2010-03-18 CN CN201410186367.7A patent/CN103944768B/zh active Active
- 2010-03-18 CA CA2962527A patent/CA2962527C/en active Active
- 2010-03-18 EP EP10759205.7A patent/EP2414960B1/en active Active
- 2010-03-18 SG SG2011057361A patent/SG173613A1/en unknown
- 2010-03-18 WO PCT/US2010/027822 patent/WO2010114715A1/en active Application Filing
- 2010-03-18 EP EP18208718.9A patent/EP3486776A1/en not_active Ceased
-
2013
- 2013-09-02 JP JP2013181335A patent/JP5944870B2/ja active Active
-
2015
- 2015-08-10 US US14/822,704 patent/US10644933B2/en active Active
-
2016
- 2016-05-26 JP JP2016105505A patent/JP6306640B2/ja active Active
-
2020
- 2020-04-30 US US16/864,019 patent/US11108626B2/en active Active
-
2021
- 2021-08-27 US US17/459,955 patent/US11477076B2/en active Active
-
2022
- 2022-10-17 US US18/047,239 patent/US11909586B2/en active Active
-
2024
- 2024-01-08 US US18/407,162 patent/US20240243966A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520550A (zh) * | 2001-04-20 | 2004-08-11 | �������չɷ�����˾ | 在处理系统中虚拟连网的系统及方法 |
CN1639704A (zh) * | 2002-06-21 | 2005-07-13 | 国际商业机器公司 | 通过自动选择网络指定路由器自动配置覆盖网的方法和结构 |
CN1943179A (zh) * | 2004-02-13 | 2007-04-04 | 英特尔公司 | 用于动态地可扩展的虚拟交换机的装置和方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180041388A1 (en) * | 2015-03-13 | 2018-02-08 | Koninklijke Kpn N.V. | Method and Control System for Controlling Provisioning of a Service in a Network |
US11888683B2 (en) * | 2015-03-13 | 2024-01-30 | Koninklijke Kpn N.V. | Method and control system for controlling provisioning of a service in a network |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103944768B (zh) | 为受管计算机网络提供逻辑联网功能 | |
CN103354566B (zh) | 配置计算机节点之间的通信 | |
US11936524B2 (en) | Providing extendible network capabilities for managed computer networks | |
CN104090825B (zh) | 动态迁移计算机网络 | |
CN104320418B (zh) | 提供对远程服务的本地安全网络访问 | |
CN105847069B (zh) | 针对虚拟网络分组流的物理路径确定 | |
CN102246147A (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 |