CN108353017A - 单个操作系统上的多网关操作 - Google Patents

单个操作系统上的多网关操作 Download PDF

Info

Publication number
CN108353017A
CN108353017A CN201680062446.4A CN201680062446A CN108353017A CN 108353017 A CN108353017 A CN 108353017A CN 201680062446 A CN201680062446 A CN 201680062446A CN 108353017 A CN108353017 A CN 108353017A
Authority
CN
China
Prior art keywords
grouping
virtual network
gateway
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.)
Granted
Application number
CN201680062446.4A
Other languages
English (en)
Other versions
CN108353017B (zh
Inventor
P·K·帕特尔
蔡依群
H·拉杰
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108353017A publication Critical patent/CN108353017A/zh
Application granted granted Critical
Publication of CN108353017B publication Critical patent/CN108353017B/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • 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
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/677Multiple interfaces, e.g. multihomed nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

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)

Abstract

一种多网关虚拟机,其操作多个网关。每个网关充当虚拟网络与虚拟网络外部的实体之间的接口。每个虚拟网络具有其自身的地址空间,即使那些虚拟网络的网关正操作在相同虚拟机上,其也可以与其他虚拟网络的地址空间重叠。因此,在此所描述的原理涉及可以在其上操作多个网关的虚拟机,并且因此涉及服务多个虚拟网络的多网关虚拟机。

Description

单个操作系统上的多网关操作
背景技术
计算系统和相关联的网络已经提供已经彻底改革人类工作、玩耍和通信的方式的技术能力,这为信息时代提供基本支持。我们的生活的几乎每个方面以某种方式受计算系统影响。网络的扩散已经允许计算系统共享数据并且通信,这极大地增加了信息访问。
基于将地址分配到网络中的每个设备的能力以及使用分配的地址在那些设备之间路由消息的能力,联网技术被发现。虚拟网络使用在物理地址之上的附加抽象层进行操作,其允许底层物理网络的复杂性被隐藏到虚拟网络节点,使得寻址可以是更简化的。
虚拟网络不限于具有物理机作为节点。例如,虚拟网络的节点可以是虚拟实体(诸如虚拟机)。虚拟网络中的虚拟节点的虚拟地址因此不需要与支持虚拟节点的物理机的物理地址匹配。此外,在虚拟网络中的每个节点之间的是虚拟链路。从虚拟网络上的节点的视角,虚拟链路是直接链路。然而,从物理的视角,链路可能是相当简单的,而且也可能是相当复杂的,调用物理网关、路由器、网桥等。因此,虚拟网络看起来如在相同网络内的虚拟网络中的每个节点,但是虚拟网络通过物理启用技术而被抽象,并且因此虚拟网络可以跨越一个或许多物理网络。虚拟网络例如被用于连接属于云计算环境的单个租户的虚拟机。
为了允许虚拟网络与外部世界外部的节点之间的交互,通常使用网关。网关从虚拟网络外部接收分组并且它们去往虚拟网络内的节点,并且将分组从虚拟网络内部发送到虚拟网络外部。当然,对于在虚拟网络内发送和接收二者的分组不需要网关。
在此要求保护的主题不限于解决任何缺点或者仅在诸如上文所描述的那些环境的环境中操作的实施例。相反,仅提供该背景技术以说明其中可以实践在此所描述的一些实施例的一个示例性技术区域。
发明内容
在此所描述的至少一个实施例涉及在单个操作系统上操作多个网关的多网关机器,无论该操作系统是操作在物理机上还是操作在虚拟机中。每个网关充当虚拟网络与虚拟网络外部的实体之间的接口。每个虚拟网络具有其自身的地址空间,即使那些虚拟网络的网关操作在相同虚拟机上,其也可以与其他虚拟网络的地址空间重叠。因此,在此所描述的原理涉及可以在其上操作单个操作系统上的多个网关的机器,并且因此涉及服务多个虚拟网络的多网关机器。
为了将分组接收到虚拟网络之一中,多网关机器访问从由多网关机器服务的虚拟网络外部接收到的对应的封装的分组。封装的分组包含对应于存在操作在多网关机器上的对应的网关的多个虚拟网络之一的虚拟网络标识符。多网关机器还对封装的分组进行解封装。例如,虚拟网络标识符可能已经被包括在分组的封装中。多网关机器然后基于虚拟网络标识符来标识虚拟网络,并且然后将解封装的分组递送到针对所标识的虚拟网络而运行的对应的网关。
为了从将分组发送出虚拟网络当,多网关机器访问来自针对对应的虚拟网络运行的网关的分组。多网关机器标识对应的虚拟网络,并且对分组进行封装以便包括对应的虚拟网络的虚拟网络标识符。多网关机器然后对封装的分组进行分派。
因此,多个网关可以被操作在单个机器内。本发明内容不旨在标识要求保护的主题的关键特征或基本特征,其也不旨在被用作辅助确定要求保护的主题的范围。
附图说明
为了描述可以获得上文记载的和其他的优点和特征的方式,将通过参考附图提供各种实施例的更具体描述。理解这些附图仅描绘样本实施例并且因此将不被认为是对本发明的范围的限制,通过使用附图利用附加的特性和细节将描述和解释实施例,其中:
图1抽象地图示了在其中可以采用在此所描述的一些实施例的计算系统;
图2象征性地图示了包括在其上操作针对相应虚拟网络操作的多个网关的多网关机器(在这种情况下,虚拟机)的系统;
图3图示了用于将分组接收到适合的虚拟网络中的方法的流程图;
图4A象征性地图示了在其中分组被封装并且包括虚拟网络标识符的状态中的分组的示例结构;
图4B象征性地图示了在其中分组被封装的状态中的分组的示例结构;
图5图示了在其中一部分表示图2的系统的更详细示例的较大系统;
图6图示了用于中介路由组件操作以封装并且包括虚拟网络标识符的方法的流程图;
图7图示了图2的物理机的更详细示例;
图8图示了待由多网关机器发送的分组中的至少一些中的每个分组的方法的流程图;以及
图9图示了用于对发送的分组解封装以递送到外部网络节点的方法的流程图。
具体实施方式
在此所描述的至少一个实施例涉及在单个操作系统上操作多个网关的多网关机器,无论该操作系统是操作在物理机上还是操作在虚拟机中。每个网关充当虚拟网络与虚拟网络外部的实体之间的接口。每个虚拟网络具有其自身的地址空间,即使那些虚拟网络的网关在相同虚拟机上操作,其也可以与其他虚拟网络的地址空间重叠。因此,在此所描述的原理涉及可以在其上操作单个操作系统上的多个网关的机器,并且因此涉及服务多个虚拟网络的多网关机器。
为了将分组接收到虚拟网络之一中,多网关机器访问从由多网关机器服务的虚拟网络外部接收到的对应的封装的分组。封装的分组包含对应于存在操作在多网关机器上的对应的网关的多个虚拟网络之一的虚拟网络标识符。多网关机器还对封装的分组进行解封装。例如,虚拟网络标识符可能已经被包括在分组的封装中。多网关机器然后基于虚拟网络标识符来标识虚拟网络,并且然后将解封装的分组递送到针对所标识的虚拟网络而运行的对应的网关。
为了将分组发送出虚拟网络,多网关机器访问来自针对对应的虚拟网络而运行的网关的分组。多网关机器标识对应的虚拟网络,并且对分组进行封装以便包括对应的虚拟网络的虚拟网络标识符。多网关机器然后对封装的分组进行分派。
因此,多个虚拟网络网关可以在相同机器上并且在相同操作系统上进行操作。将关于图1描述计算系统的一些引导性讨论。然后,将关于后续附图描述多网关机器架构和操作。
计算系统现在日益采用各种各样的形式。计算系统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型计算机、分布式计算系统、数据中心或者甚至尚未常规地被认为是计算系统的设备(诸如可穿戴装置(例如,眼镜))。在本说明书中和权利要求中,术语“计算系统”被广泛地定义为包括包含至少一个物理和有形处理器的任何设备或者系统(或其组合),并且物理和有形存储器能够在其上具有可以由处理器执行从而提供用于特殊目的的计算系统的计算机可执行指令。存储器可以采用任何形式并且可以依赖于计算系统的性质和形式。计算系统可以被分布在网络环境上并且可以包括多个构成的计算系统。
如在图1中所图示的,在其最基本配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理存储器系统,其可以是易失性、非易失性或者二者的某种组合。术语“存储器”还可以在此被用于指代非易失性海量存储装置(诸如物理存储介质)。如果计算系统被分布,则处理、存储器和/或存储能力也可以被分布。如在此所使用的,术语“可执行模块”或者“可执行组件”可以指代可以在计算系统上执行的软件对象、例程或者方法。在此所描述的不同的组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或者过程(例如,分离的线程)。利用在计算系统上操作的这样的对象和过程,计算系统是针对由对象实现的特殊目的运行的专用计算机的等同物。
在下面的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这样的动作以软件实现,则一个或多个处理器(执行动作的相关联的计算系统的)响应于已经执行计算机可执行指令而引导计算系统的操作,从而针对比在没有这样的引导的情况下更特殊的目的对计算系统进行转换和配置。例如,这样的计算机可执行指令可以被实现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例包含数据的操纵。计算机可执行指令(和操纵的数据)可以被存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,其允许计算系统100通过例如网络110与其他计算系统通信。
在此所描述的实施例可以包括或者利用专用或者通用计算系统,包括计算机硬件,诸如例如一个或多个处理器和系统存储器,如下面更详细地讨论的。在此所描述的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可以由通用或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,以示例而非限制的方式,本发明的实施例可以包括至少两个不同地不同的种类的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或者其他光盘存储装置、磁盘存储装置或者其他磁性存储设备或者可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码装置并且可以由通用或专用计算系统访问的任何其他物理和有形存储介质。
“网络”被定义为实现计算系统和/或模块和/或其他电子设备之间的电子数据的传输的一个或多个数据链路。当信息通过网络或者另一通信连接(或者硬连线、无线或者硬连线或无线的组合)被传送或者被提供到计算系统时,计算系统适当地将连接视为传输介质。传输介质可以包括可以用于以计算机可执行指令或数据结构的形式携带期望的程序代码装置并且可以由通用或专用计算系统访问的网络和/或数据链路。上文的组合还应当被包括在计算机可读介质的范围内。
进一步地,在达到各种计算系统组件时,以计算机可执行指令或数据结构的形式的程序代码装置可以从传输介质自动地传送到存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终地被传送到计算系统RAM和/或计算系统处的较少的易失性存储介质。因此,应当理解,存储介质可以被包括在还(或甚至主要地)利用传输介质的计算系统组件中。
计算机可执行指令包括例如指令和数据,其当在处理器处执行时,使得通用计算系统、专用计算系统或者专用处理设备执行特定功能或功能组。计算机可执行指令可以是例如二进制或者甚至在由处理器直接执行之前经历某种转译(诸如编译)的指令(诸如中间格式指令,诸如汇编语言或者甚至源代码)。虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是将理解到,所附的权利要求中定义的主题不必限于上文所描述的特定特征或动作。相反,所描述的特征和行为被公开为实现权利要求的示例形式。
本领域的技术人员将理解到,本发明可以被实践在具有许多类型的计算机系统配置的网络计算环境中,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、可穿戴设备、多处理器系统、基于微处理器或可编程的消费者电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜、手表等)等。本发明还可以被实践在其中通过网络链接(或者通过硬连线数据链路、无线数据链路或者通过硬连线数据链路和无线数据链路的组合)本地计算系统和远程计算系统二者执行任务的分布式系统环境中。在分布式系统环境中,程序模块可以被定位在本地存储器存储设备和远程存储器存储设备二者中。
图2图示了包括在其上操作针对相应虚拟网络操作的多个网关的多网关虚拟机210A的系统200。因此,多网关虚拟机210操作针对多个虚拟网络的网关。不是作为具有在管理程序上运行的操作系统的多网关虚拟机,而是在此所描述的原理同样地适用于直接地运行操作多个网关的操作系统的物理机。在任何情况下,本说明书将描述作为虚拟机的机器的示例,但是更宽广的原理不限于虚拟机上的实现,而是可以直接地被实现在物理机上。
多网关虚拟机210操作在物理机201上以用于底层物理支持。物理机201可以例如是能够处理或者在其上操作虚拟机的任何计算系统。作为示例,物理机201可以由关于图1所描述的计算系统100来实现。当然,如上文所提到的,计算系统100的物理形式可以相当地变化,并且多个网关211到215可以在不使用虚拟机210A的情况下在物理机201上直接地运行。
如上文所提到的,虚拟机210A提供多个网关。例如,(如由箭头231(1)和231(2)所表示的)网关211信道传输从虚拟网络221外部的源接收到虚拟网络221中的分组,并且(如由箭头241(1)和241(2)所表示的)发送从虚拟网络221内部的源被传送用于在虚拟网络221外部路由的分组。同样地,(如由箭头232(1)和232(2)所表示的)网关212信道传输从虚拟网络222外部的源接收到虚拟网络222中的分组,并且(如由箭头242(1)和242(2)所表示的)发送从虚拟网络222内部的源被传送用于在虚拟网络222外部路由的分组。最后,(如由箭头233(1)和233(2)所表示的)网关213信道传输从虚拟网络223外部的源接收到虚拟网络223中的分组,并且(如由箭头243(1)和243(2)所表示的)发送从虚拟网络223内部的源被传送用于在虚拟网络223外部路由的分组。椭圆214象征性地表示多网关虚拟机210A可以包括任何多个(两个或两个以上)数目的网关,每个网关用作用于如由椭圆224所表示的对应的虚拟网络的网关。
存在用于不同的虚拟网络的流量的性能隔离控制。换句话说,可以控制被分配到任何虚拟网络的处理能力。可以实现各种形式的策略。例如,策略可以将固定处理能力提供到每个虚拟网络,或者也许仅将最大或者最小能力提供到每个虚拟网络。
在一些实施例中,系统200可以由计算系统(诸如计算系统100)实现,计算系统通过特别地被结构化为实例化和/或操作如在此所描述的多网关虚拟机的计算机可执行指令的一个或多个处理器(诸如(一个或多个)处理器102)的操作而被配置。作为示例,多网关虚拟机可以在云计算环境内操作。
在本说明书和以下权利要求中,“云计算”被定义为用于实现对可配置的计算资源(例如,网络、服务器、存储装置、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于当适当地部署时可以从这样的模型获得的其他许多优点中的任一优点。
例如,云计算当前被采用在市场中以便提供对可配置的计算资源的共享池的普遍的且方便的按需访问。此外,可配置的计算资源的共享池可以经由可视化快速地被提供并且利用低管理努力或服务提供商交互被释放并且然后因此被缩放。
云计算模型可以包括各种特点(诸如例如按需自服务、宽网络访问、资源池化、迅速弹性、测量服务等)。云计算模型还可以以各种服务模型(诸如例如软件即服务(“SasS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”))的形式出现。还可以使用不同的部署模型(诸如私有云、社区云、公共云、混合云等)部署云计算模型。在本描述中并且在权利要求中,“云计算环境”是在其中采用云计算的环境。
如先前所提到的,系统200具有在其上已经操作多网关虚拟机210的物理机201。虽然这可以是在物理机201上操作的仅有多网关虚拟机210A,但是可以备选地在物理机201上操作的(一个或多个)多网关虚拟机210的多个实例210A、210B和210C,但是虚拟机210A利用最大程度的细节被图示。椭圆210D表示可以存在操作中的多网关虚拟机210A的任何数目的实例。例如,多个实例可以被用来执行负载平衡。在该情况下,也许多网关虚拟机210的实例相同,因为其各自具有相同服务虚拟网络221、222和223集合的网关。
然而,即使在没有针对虚拟机的每个实例服务的虚拟网络的完美标识的情况下,虚拟机的多个实例可以仍然提供负载平衡益处。因此,在此所描述的原理不限于全部具有服务相同虚拟网络集的网关的多网关虚拟机的多个实例。这就是说,在此所描述的原理甚至不限于在其中存在操作以执行网关功能的多个虚拟机的实施例。
多网关虚拟机操作以将分组接收到虚拟网络中以及从虚拟网络发送分组。接收和发送操作可以在存在于物理机201上的信道传输模块215的帮助下被执行。例如,在接收分组中,信道传输模块可以接收分组(如由箭头236(1)所表示的),准备分组,并且将分组(如由箭头236(2)所表示的)分派到适当的网关。同样地,在发送分组中,信道传输模块215可以接收分组(如由箭头237(1)所表示的),准备分组,并且将分组(如由箭头237(2)所表示的)分派到虚拟网络外部的适当的位置。现在将更详细地描述接收和发送操作中的每个操作。虽然未要求,但是信道传输模块215和网关211到214可以被执行为单个组件、分离组件或其组合。
图3图示了用于将分组接收到适合的虚拟网络中的方法的流程图。多网关虚拟机访问(动作301)包含虚拟网络标识符的对应的封装的分组。虚拟网络标识符对应于存在操作在多网关虚拟机上的对应的网关的多个虚拟网络221、222、223、224之一。例如,图4A象征性地图示了在其中其仅由虚拟机210A接收(如由箭头236(1)所表示的)的状态400A中的这样的接收到的分组400的示例结构。分组400A包括物理头部420、虚拟头部(内部头部)和有效载荷401。物理头部420还被图示为包括虚拟网络标识符421。虚拟头部420被用于在对应的虚拟网络内路由分组。
多网关虚拟机210A(例如,信道传输模块215)然后将封装的分组进行解封装(动作302)并且还基于虚拟网络标识符来标识虚拟网络(动作303)。解封装(动作302)和虚拟网络的标识(动作303)仅并行示出以用表示在这两个动作之间不存在时间依赖。解封装可以首先被执行,虚拟网络的标识可以首先被执行,和/或两个动作可以至少部分地并发地执行。对于被图示为并行发生的任何动作可以说相同。图4B图示了后续解封装状态中的分组400。现在,仅存在虚拟头部420和有效载荷401。在一些实施例中,虚拟网络标识符421可以被包括在任何位置中的图4A的分组的状态400A内,只要图4B的分组400的状态400B由多网关虚拟机(例如,由信道传输模块415)产生。
多网关虚拟机(例如,信道传输模块415)然后将解封装的分组递送(动作304)到针对所标识的虚拟网络而运行的对应的网关(动作304)。例如,如果在动作303中所标识的虚拟网络是虚拟网络221,那么信道传输模块215将解封装的分组分派到如由箭头236(2)和231(1)所表示的网关211。如果在动作303中所标识的虚拟网络是虚拟网络222,那么信道传输模块215将解封装的分组分派到如由箭头236(2)和232(1)所表示的网关211。如果在动作303中所标识的虚拟网络是虚拟网络223,那么信道传输模块215将解封装的分组分派到如由箭头236(2)和233(1)所表示的网关211。一旦在网关处,则虚拟头部可以被用于进一步路由。
图5图示了在其中一部分501表示图2的系统200的更详细示例的较大系统500。在该示例中,又存在名为虚拟网络1、虚拟网络2和虚拟网络3的三个虚拟网络,其是图2的对应的虚拟网络221、222和213的示例。此外,存在三个网关网关1、网关2和网关3,其是图2的对应的网关211、212和213的示例。组件510是图2的多网关虚拟机210A的示例。
然而,在这个较大系统中,存在所图示的中介路由组件520。该中介路由组件520可以负责准备去往特定网络端点530(即,去往虚拟网络如虚拟网络1、虚拟网络2或虚拟网络3之一内的位置)的分组。特别地,中介路由组件520可能已经将虚拟网络标识符字段421插入在图4B的封装的分组400B内。图6图示了用于中介路由组件520操作以那样做的方法600的流程图。
图6图示了用于生成封装的分组的方法600的流程图。中介路由组件首先访问接收到的分组(动作601)。例如,分组可以由中介路由组件520从网络端点530接收。在该示例中,这在信道531上执行。在一个实施例中,该信道531是QinQ信道,其中网络端点530的介质访问控制(MAC)地址是由中介路由组件520可发现的。这时候,分组可以具有图4B的状态400B。换句话说,分组尚未被封装。
中介组件然后标识用于接收到的分组的目的地虚拟网络(动作602)。作为示例,该标识可以基于接收到的分组的源的标识(例如,MAC地址)(动作603)。虚拟网络然后基于所标识的源而被标识(动作604)。例如,中间组件520可以维持MAC地址与对应的虚拟网络之间的映射。
中介路由组件520然后将接收到的分组进行封装以便可递送到多网关虚拟机的至少一个实例并且以便包括对应的目的地虚拟网络的虚拟网络标识符(动作605)。作为该封装的一部分,包括虚拟网络标识符421。因此,这时候分组可以具有图4A的状态400A。
中介路由组件然后指定将封装的分组提供到的多网关虚拟机的多个实例之一(动作606)。作为示例,中介组件可以去往将封装的分组发送到的多个实例210A、210B、210C(等210D)中的任一示例,只要那些多网关虚拟机210中的任一网关虚拟机可以充当来自由虚拟网络标识符标识的虚拟网络的网关。该动作是可选的,因为可能甚至不存在操作中的多网关虚拟机的多个实例。此外,即使存在操作中的多网关虚拟机的多个实例,该选择(动作606)对于中介路由模块520而已也是可以可选的(或者可能未由其执行),因为负载平衡可以由多网关虚拟机210的前端来执行。
封装的分组然后被发送到多网关虚拟机的实例(动作607)。例如,在图5中,中介路由组件520可以然后通过信道532(其示例是虚拟可扩展局域网信道)将封装的分组发送到虚拟机501。信道533表示从网络端点530通往虚拟机501的逻辑信道。在一个示例中,执行方法600的动作602到606的组件可以是中介路由组件521或522。
图7图示了图2的物理机201的更详细的示例701。在该示例中,信道传输模块715用作图2的信道传输模块215的示例。信道传输模块715已经将其与关联于虚拟网络中的每个虚拟网络的间隔模块711到714相关联。间隔模块711到714各自被配置为检测接收到的分组何时包括对应于其虚拟网络的虚拟网络标识符,并且移除虚拟网络标识符(动作303),并且将解封装的分组信道传输到用于该虚拟网络的适当的网关(动作304)。
现在将描述将分组从虚拟网络内部的位置发送到虚拟网络外部的位置。当这样的分组从对应的虚拟机内被发送时,分组可以直接地被路由到中介路由组件521或522之一。备选地,分组可以使用虚拟头部而被路由到对应的网关。因此,在该路由过程中,分组具有图4B的状态400B。例如,如果分组来自虚拟网络221,则网关211接收如由箭头241(2)所表示的分组。如果分组来自虚拟网络222,则网关212接收如由箭头242(2)所表示的分组。如果分组来自虚拟网络223,则网关213接收如由箭头243(2)所表示的分组。
图8图示了待由多网关虚拟机发送的分组中的至少一些分组中的每个分组的方法800的流程图。首先,多网关虚拟机访问来自网关的分组(动作801)。分组可以例如采用图4B的分组的状态400B。如果分组来自虚拟网络221,则信道传输模块215接收如由箭头241(1)和237(1)所表示的分组。如果分组来自虚拟网络221,则信道传输模块215接收如由箭头242(1)和237(1)所表示的分组。如果分组来自虚拟网络223,则信道传输模块215接收如由箭头243(1)和237(1)所表示的分组。参考图7,间隔711到714中的每一个可以负责从对应的网关接收分组。
多网关虚拟机然后标识对应的虚拟网络(动作802),并且将分组封装以便包括对应的虚拟网络标识符(动作803)。参考图7,间隔711到714中的每一个可以负责将对应的虚拟网络标识符插入到封装的分组中和/或对分组进行封装以便包括对应的虚拟网络标识符。这时候,封装的分组可以具有在图4A中所图示的状态400A。这允许间隔操作相对地简单,并且允许整个信道传输模块215通过添加进一步的间隔组件进行缩放。
多网关虚拟机然后向其目的地分派封装的分组(动作804)。在图2中,这由箭头237(2)表示。在图5中,例如,封装的分组可以由中间组件520接收。中介路由组件可以执行图6中所图示的过程的反转。例如,图9图示了用于对发送的分组进行解封装以递送到外部网络节点的方法900的流程图。
在访问封装的分组时(动作901),中间组件对分组进行解封装(动作902)并且标识目的地(动作903)。例如,中介节点访问(动作904)在接收到的分组中所指定的目的地虚拟地址,以及源虚拟网络(动作905),并且使用映射来标识目的地(动作906)。例如,目的地虚拟地址和源虚拟网络可以被映射到特定MAC地址。中间组件然后将解封装的分组(其现在具有图4B的状态400B)递送(动作907)到目的地(例如,目的地530)。
因此,在此所描述的原理允许单个虚拟机有效地操作用于多个虚拟机的多个网关。此外,当通过使用虚拟网络标识符执行消除歧义时,虚拟网络的地址空间可能甚至重叠。另外,可以通过使被分配到每个虚拟网络的间隔组件执行用于该虚拟网络的许多处理来良好地缩放虚拟机。
在不脱离本发明的精神或特点的情况下,可以以其他特定形式实现本发明。所描述的实施例将在所有方面中仅被认为是说明性的而非限制性的。因此,本发明的范围由所附的权利要求书而不是由前述说明书来指定。落在权利要求的等效物的含义和范围内的所有改变将被包含在其范围内。

Claims (10)

1.一种计算系统,包括:
一个或多个处理器;以及
一个或多个计算机可读存储介质,其具有在其上的一个或多个计算机可执行指令,所述一个或多个计算机可执行指令被结构化,使得当由所述一个或多个处理器执行时,将所述计算系统配置为创建和/或操作多网关机器,所述多网关机器操作多个网关,所述多个网关中的每个网关针对相应的虚拟网络进行操作,使得所述多网关机器操作针对多个虚拟网络的网关,操作的所述方法包括针对在所述多网关机器处接收到的所述分组中的至少一些分组中的每个分组的以下各项:
所述多网关机器访问对应的封装的分组的动作,所述封装的分组包含对应于所述多个虚拟网络中的一个虚拟网络的虚拟网络标识符,针对所述一个虚拟网络,存在在所述多网关虚拟机上操作的对应的网关;
所述多网关虚拟机对所述封装的分组解封装的动作;
所述多网关虚拟机基于所述虚拟网络标识符来标识所述虚拟网络的动作;以及
所述多网关机器向针对所标识的所述虚拟网络而运行的所述对应的网关递送解封装的所述分组的动作。
2.根据权利要求1所述的计算系统,其中所述计算系统实例化和/或操作所述多网关机器的多个实例。
3.根据权利要求1所述的计算系统,其中所述计算系统实例化和/或操作所述多网关机器的一个实例。
4.根据权利要求1所述的计算系统,所述方法还包括针对在所述多网关机器处访问的至少一个封装的分组的以下各项:公式化所述封装的分组的动作,公式化所述封装的分组的所述动作包括:
访问接收到的分组的动作;
标识用于接收到的所述分组的目的地虚拟网络的动作;
对接收到的所述分组进行封装以便可递送到所述多网关机器的至少一个实例并且以便包括对应的目的地虚拟网络的所述虚拟网络标识符的动作;以及
向所述多网关机器的所述至少一个实例中的一个实例提供所述封装的分组的动作。
5.根据权利要求1所述的计算系统,所述多网关机器具有操作在其上的、对应于所述多个网关中的每个网关的间隔模块,
所述间隔模块在去往由所述虚拟网络标识符标识的所述虚拟网络的封装的分组的解封装期间移除所述虚拟网络标识符,并且还被配置为执行所述多网关虚拟机向针对所标识的所述虚拟网络而运行的所述对应的网关递送解封装的所述分组的动作。
6.一种计算系统,包括:
一个或多个处理器;以及
一个或多个计算机可读存储介质,其具有在其上的一个或多个计算机可执行指令,所述一个或多个计算机可执行指令被结构化,使得当由所述一个或多个处理器执行时,将所述计算系统配置为创建和/或操作多网关机器,所述多网关机器操作多个网关,所述多个网关中的每个网关针对相应的虚拟网络进行操作,使得所述多网关机器操作针对多个虚拟网络的网关,操作的所述方法包括针对由所述多网关机器发送的所述分组中的至少一些分组中的每个分组的以下各项:
所述多网关机器访问来自针对对应的虚拟网络而运行的网关的分组的动作;
所述多网关机器标识所述对应的虚拟网络的动作;
所述多网关机器对所述分组进行封装以便包括所述对应的虚拟网络的虚拟网络标识符的动作;以及
所述多网关机器分派封装的所述分组的动作。
7.根据权利要求6所述的计算系统,所述多网关机器是多网关虚拟机。
8.根据权利要求7所述的计算系统,其中所述计算系统实例化和/或操作所述多网关虚拟机的一个实例。
9.根据权利要求7所述的计算系统,所述多网关机器是操作单个操作系统上的所述多个网关的物理机。
10.根据权利要求6所述的计算系统,所述方法还包括针对由所述多网关虚拟机分派的封装的所述分组中的至少一个分组的以下各项:
访问分派的封装的所述分组的动作;
标识作为分派的所述分组的源的所述虚拟网络的动作;
对分派的封装的所述分组进行解封装以发现所标识的所述虚拟网络的地址空间内的所述目的地网络地址的动作;以及
使用所述虚拟网络标识符和所标识的所述虚拟网络的所述地址空间内的所述目的地网络地址来向目的地实体递送解封装的所述分组的动作。
CN201680062446.4A 2015-10-30 2016-10-28 计算系统和用于操作多网关虚拟机上的多个网关的方法 Active CN108353017B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/929,049 US10075304B2 (en) 2015-10-30 2015-10-30 Multiple gateway operation on single operating system
US14/929,049 2015-10-30
PCT/US2016/059489 WO2017075466A1 (en) 2015-10-30 2016-10-28 Multiple gateway operation on single operating system

Publications (2)

Publication Number Publication Date
CN108353017A true CN108353017A (zh) 2018-07-31
CN108353017B CN108353017B (zh) 2020-09-25

Family

ID=57249938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680062446.4A Active CN108353017B (zh) 2015-10-30 2016-10-28 计算系统和用于操作多网关虚拟机上的多个网关的方法

Country Status (4)

Country Link
US (1) US10075304B2 (zh)
EP (1) EP3369217B1 (zh)
CN (1) CN108353017B (zh)
WO (1) WO2017075466A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020114185A1 (zh) * 2018-12-07 2020-06-11 达闼科技(北京)有限公司 云端机器人的通信方法、装置、存储介质以及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278135B (zh) * 2019-06-18 2021-11-16 深圳绿米联创科技有限公司 设备位置查找方法、装置、网关及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130142201A1 (en) * 2011-12-02 2013-06-06 Microsoft Corporation Connecting on-premise networks with public clouds
CN103733574A (zh) * 2011-08-16 2014-04-16 微软公司 虚拟化与非虚拟化网络之间的虚拟化网关

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339595B1 (en) 1997-12-23 2002-01-15 Cisco Technology, Inc. Peer-model support for virtual private networks with potentially overlapping addresses
AU2001288399A1 (en) 2000-08-24 2002-03-04 Tiara Networks, Inc. System and method for connecting geographically distributed virtual local area networks
AU2003231905A1 (en) 2002-06-14 2003-12-31 Flash Networks Ltd. Method and system for connecting manipulation equipment between operator's premises and the internet
EP1625696B1 (en) 2003-05-13 2012-08-08 TELEFONAKTIEBOLAGET LM ERICSSON (publ) An arrangement and a method relating to ethernet access systems
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20050044301A1 (en) 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US9014181B2 (en) 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
US7903655B2 (en) 2007-04-19 2011-03-08 Hewlett-Packard Development Company, L.P. Marked packet forwarding
WO2009155574A1 (en) 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US8549281B2 (en) 2008-10-21 2013-10-01 Cohesive Flexible Technologies Corporation System and methods for enabling customer network control in third-party computing environments
US8181009B2 (en) 2009-03-03 2012-05-15 Harris Corporation VLAN tagging over IPSec tunnels
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
CN101587577A (zh) 2009-05-12 2009-11-25 刘利华 社区出租屋信息管理系统
US20110016473A1 (en) 2009-07-20 2011-01-20 Srinivasan Kattiganehalli Y Managing services for workloads in virtual computing environments
US8532108B2 (en) 2009-09-30 2013-09-10 Alcatel Lucent Layer 2 seamless site extension of enterprises in cloud computing
US8619779B2 (en) 2009-09-30 2013-12-31 Alcatel Lucent Scalable architecture for enterprise extension in a cloud topology
US8369333B2 (en) 2009-10-21 2013-02-05 Alcatel Lucent Method and apparatus for transparent cloud computing with a virtualized network infrastructure
US20110126197A1 (en) 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US8259571B1 (en) 2010-03-26 2012-09-04 Zscaler, Inc. Handling overlapping IP addresses in multi-tenant architecture
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US8345692B2 (en) 2010-04-27 2013-01-01 Cisco Technology, Inc. Virtual switching overlay for cloud computing
US8493851B2 (en) 2010-05-07 2013-07-23 Broadcom Corporation Method and system for offloading tunnel packet processing in cloud computing
US8706864B1 (en) 2010-11-30 2014-04-22 Amazon Technologies, Inc. Behavior monitoring and compliance for multi-tenant resources
US8612600B2 (en) 2010-12-07 2013-12-17 Nec Laboratories America, Inc. Negotiation tool and method for cloud infrastructure data sharing
US9325525B2 (en) 2010-12-28 2016-04-26 Citrix Systems, Inc. Systems and methods for VLAN tagging via cloud bridge
US8873398B2 (en) 2011-05-23 2014-10-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing EPC in a cloud computer with openflow data plane
WO2011144067A2 (zh) 2011-05-24 2011-11-24 华为技术有限公司 处理报文的方法和装置
CN103107905B (zh) 2011-11-14 2017-08-04 华为技术有限公司 异常处理方法、装置和客户端
US9286444B2 (en) 2012-02-28 2016-03-15 Verizon Patent And Licensing Inc. Next generation secure gateway
US8856077B1 (en) 2012-06-15 2014-10-07 Amazon Technologies, Inc. Account cloning service for cloud computing environments
CN104871495B (zh) 2012-09-26 2018-07-13 华为技术有限公司 用于叠加网络的虚拟叠加网关
US9065661B2 (en) 2013-03-06 2015-06-23 Cisco Technology, Inc. Scalable multicast route distribution in a multitenant data center fabric in a network environment
WO2014210483A1 (en) 2013-06-28 2014-12-31 Huawei Technologies Co., Ltd. Multiprotocol label switching transport for supporting a very large number of virtual private networks
US9565034B2 (en) 2013-12-11 2017-02-07 Cisco Technology, Inc. System and method for scalable inter-domain overlay networking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103733574A (zh) * 2011-08-16 2014-04-16 微软公司 虚拟化与非虚拟化网络之间的虚拟化网关
US20130142201A1 (en) * 2011-12-02 2013-06-06 Microsoft Corporation Connecting on-premise networks with public clouds
CN103188339A (zh) * 2011-12-02 2013-07-03 微软公司 将场所内网络与公共云进行连接

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020114185A1 (zh) * 2018-12-07 2020-06-11 达闼科技(北京)有限公司 云端机器人的通信方法、装置、存储介质以及电子设备

Also Published As

Publication number Publication date
CN108353017B (zh) 2020-09-25
US10075304B2 (en) 2018-09-11
WO2017075466A1 (en) 2017-05-04
EP3369217B1 (en) 2021-08-25
US20170126430A1 (en) 2017-05-04
EP3369217A1 (en) 2018-09-05

Similar Documents

Publication Publication Date Title
CN104995880B (zh) 虚拟联网系统中的量化拥塞通知的方法和系统
US9602307B2 (en) Tagging virtual overlay packets in a virtual networking system
CN104717137B (zh) 管理覆盖网络中的数据流的方法和系统
CN104717156B (zh) 使用网络接口卡管理软件定义网络中的数据流的方法和系统
CN105743812B (zh) 通信方法、网络服务器装置以及代理服务器装置
CN109426549A (zh) 针对虚拟环境的加速器互连分配
CN104320350B (zh) 用于提供基于信用的流控制的方法及系统
CN104246734B (zh) 在无线链路上支持usb hub或外围设备的多跳树的可扩展wse hub
CN107689882A (zh) 一种虚拟化网络中业务部署的方法和装置
US10616141B2 (en) Large scale fabric attached architecture
CN110506411A (zh) 基于逻辑端口标识符管理虚拟交换机中的网络流量
CN104753715A (zh) 混合sdn控制器
CN107896195A (zh) 服务链编排方法、装置及服务链拓扑结构
CN101809943A (zh) 用于虚拟端口通信的方法和系统
CN107077699A (zh) 金融网络
CN109547349A (zh) 基于虚拟路由的流量管理方法、装置、终端及存储介质
CN104023039B (zh) 数据包传输方法和装置
CN109417507A (zh) 部分延迟的报文访问
CN112787913A (zh) 智能网卡组件、物理机、云服务系统以及报文发送方法
CN105009080B (zh) 与具有转发功能的电子设备的网络转发平面有关的实现规范
CN108353017A (zh) 单个操作系统上的多网关操作
CN107249038A (zh) 业务数据转发方法及系统
CN109672575A (zh) 数据处理方法及电子设备
CN109218230A (zh) 用于平衡跨多级网络交换机的输入端口的吞吐量的技术
CN108959134A (zh) 用于现场可编程门阵列设备的通信

Legal Events

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