CN107645444B - 用于虚拟机与云服务计算设备之间的快速路由传输的系统、设备和方法 - Google Patents

用于虚拟机与云服务计算设备之间的快速路由传输的系统、设备和方法 Download PDF

Info

Publication number
CN107645444B
CN107645444B CN201710599274.0A CN201710599274A CN107645444B CN 107645444 B CN107645444 B CN 107645444B CN 201710599274 A CN201710599274 A CN 201710599274A CN 107645444 B CN107645444 B CN 107645444B
Authority
CN
China
Prior art keywords
data packet
computing device
address
cloud service
end computing
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
Application number
CN201710599274.0A
Other languages
English (en)
Other versions
CN107645444A (zh
Inventor
程钢
吴结生
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN107645444A publication Critical patent/CN107645444A/zh
Application granted granted Critical
Publication of CN107645444B publication Critical patent/CN107645444B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/243Multipath using M+N parallel active paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种设备包括可经由云服务来访问的虚拟机(VM)。VM具有虚拟交换机,数据经由该虚拟交换机被路由到VM或从VM路由。虚拟交换机被配置为:访问快速路由流表,所述快速路由流表指示所述特定前端计算设备先前已经从所述VM接收到第一数据包,并且基于所述快速路由流表来确定是否对来自VM去往特定前端计算设备的第二数据包进行封装,以用于快速路由从而绕过云服务的负载平衡器。

Description

用于虚拟机与云服务计算设备之间的快速路由传输的系统、 设备和方法
本申请要求2016年07月21日提交美国专利商标局、申请号为15/216602、发明名称为“EXPRESS ROUTE TRANSMISSIONS BETWEEN VIRTUAL MACHINES AND CLOUD SERVICECOMPUTING DEVICES”的美国发明专利申请的优先权,其全部内容通过引用结合在本申请中。
背景技术
具有公共互联网接入的各种类型的云服务被托管在云服务提供商的数据中心内。例如,可以通过云服务提供商访问用于商业需求的诸如web服务、存储和虚拟机(VM)的云服务。为了保障可扩展性和鲁棒性,这些云服务通常位于负载平衡器后面,以便多个云服务计算设备能够共享业务负载。也就是说,云服务计算设备的输入业务和输出业务一般会通过负载平衡器。
此外,企业和个人越来越依赖于云服务提供商数据中心中托管的虚拟机来满足其计算需求。这些虚拟机可以访问在相同区域和/或同一数据中心内托管的公共云服务,从而在负载平衡器上施加更大的业务负载。为了解决负载均衡器上的不断增加的业务负载,可能需要云服务提供商相应地增加负载平衡器的总容量,而这会非常昂贵。
附图说明
参照附图对具体实施方式进行说明。在附图中,附图标记的最左边的数字表示该标记首次出现的图。不同图中使用相同的附图标记表示相似或相同的项目。此外,附图可以被认为是提供各个部件在各个图中的相对尺寸的近似描绘。然而,附图并不是按比例绘制的,并且各个部件在各个图中和各个图之间的相对尺寸可以与所描绘的不同。特别地,一些附图可以将部件描述为一定的尺寸或形状,而为了清楚起见,其它附图可以以更大的尺度或不同的形状描绘相同的部件。
图1示出了根据一些实施方式,通过快速路由和/或直接返回路由在虚拟机(VM)与云服务计算设备之间传送数据的示例环境。
图2是示出根据一些实施方式,在虚拟机(VM)与云服务计算设备之间的传输路由的各个阶段处理数据包的示例过程的示意流程图。
图3是示出根据一些实施方式的利用隧道协议经由一个或多个负载平衡器在VM与云服务计算设备之间传送数据的示例场景的示意图。
图4是示出根据一些实施方式的利用隧道协议经由直接返回路由在云服务计算设备与VM之间传送数据的示例场景的示意图。
图5是示出根据一些实施方式的利用隧道协议经由快速路由在VM与云服务计算设备之间传送数据的示例场景的示意图。
图6是示出根据一些实施方式的通过快速路由在虚拟机与云服务计算设备之间传送数据的示例过程的流程图。
图7是示出根据一些实施方式的通过快速路由在虚拟机与云服务计算设备之间传送数据的另一示例过程的流程图。
图8是示出根据一些实施方式在虚拟机与云服务计算设备之间传输数据时使用流表的示例过程的流程图。
图9是示出根据一些实施方式的通过直接返回路由在云服务计算设备与虚拟机(VM)之间传送数据的示例过程的流程图。
图10是示出根据一些实施方式的通过快速路由和直接返回路由在虚拟机(VM)与云服务计算设备之间传送数据的示例过程的流程图。
具体实施方式
详细说明
本公开部分地描述了用于在虚拟机(VM)与云服务计算设备之间传送数据的技术。在各种实施方式中,本文描述的技术可以包括经由绕过云服务的一个或多个负载平衡器的快速路由从VM向云服务计算设备(例如,云服务的前端计算设备)传送数据。另外或替代地,本文描述的技术可以包括通过绕过云服务的一个或多个负载平衡器的直接返回路由将数据从云服务计算设备传输到VM。在各种示例中,云隧道协议(例如,虚拟可扩展LAN(VXLAN))可用于经由绕过云服务的一个或多个负载平衡器的路由在VM与云服务计算设备之间传输数据。
如本文所使用的,绕过“一个或多个负载平衡器”的数据包(或数据传输)和/或路由(例如,快速路由、直接返回路由等)意味着数据包和/或者路线不与一个或多个负载平衡器交互、参与或以其他方式通过,使得数据包和/或路由不在一个或多个负载平衡器上施加网络业务负载。
在一些实现方式中,VM可以由数据中心中的主机计算设备托管。例如,主机计算设备可以驻留在云服务提供商的数据中心中。此外,数据中心还可以托管提供一个或多个云服务资源的各种计算设备。在某些情况下,云服务可以包括一个或多个负载平衡器、一个或多个前端计算设备和一个或多个后端计算设备。
在一些非限制性示例中,VM的用户可能希望访问云服务资源。VM可以向云服务发送第一数据包。例如,第一数据包可以包括从云服务获取信息的请求。交换机(例如,虚拟交换机)可以接收第一数据包。交换机可以访问指示被指定为快速路由目的地的一个或多个计算设备的流表。在某些情况下,被指定为快速路由目的地的计算设备包括能够经由绕过一个或多个负载平衡器的快速路由接收数据包的计算设备。
第一数据包可以包括目的地互联网协议(IP)地址。交换机可以基于流表确定第一数据包的目的地IP地址不对应于被指定为快速路由目的地的计算设备。结果,交换机可以在第一数据包到达前端计算设备之前经由负载均衡器(例如,软件负载平衡器)的路由将其转发到云服务。也就是说,交换机可以确定不经由绕过一个或多个负载平衡器的快速路由发送第一数据包。在某些情况下,通过一个或多个负载平衡器的路由可以被认为是默认路由。
在发送第一数据包之前,交换机可以基于隧道协议封装第一数据包以产生封装的第一数据包。例如,隧道协议可以是云隧道协议,例如VXLAN。封装的第一数据包可以包括隧道协议ID,例如VXLAN ID。在某些情况下,隧道协议ID可以与一个或多个云服务相关联。例如,隧道协议ID可以是与云服务相关联的全局VXLAN ID。
云服务的负载平衡器可以从交换机接收封装的第一数据包。负载平衡器可以将前端计算设备确定为封装的第一数据包的目的地。在一些示例中,负载平衡器可以为封装的第一数据包执行目的地网络地址转换(DNAT)以产生DNAT第一数据包。在执行DNAT时,负载平衡器可以用第二目的地IP地址替换第一目的地IP地址。例如,负载平衡器可以用与前端计算设备相关联的私有IP地址替换与云服务相关联的公共IP地址。
负载平衡器可以将DNAT第一数据包转发到云服务的前端计算设备。前端计算设备可以向VM发送第二数据包。例如,第二数据包可以包括响应于经由第一数据包接收到的请求的信息。在某些情况下,负载平衡器可以接收第二数据包,然后将第二数据包转发到VM。在其他情况下,如将参考下面的附图更详细讨论的,前端计算设备可以经由绕过云服务的一个或多个负载平衡器的直接返回路由向VM发送第二数据包。
在发送第二数据包之前,前端计算设备可以基于隧道协议封装第二数据包以产生封装的第二数据包。例如,隧道协议可以是云隧道协议,例如VXLAN。封装的第二数据包可以包括隧道协议ID,例如VXLAN ID。在某些情况下,隧道协议ID可以与一个或多个云服务相关联。例如,隧道协议ID可以是与云服务相关联的全局VXLAN ID。此外,用于将第二数据包封装和/或发送到VM的隧道协议可以与用于将第一数据包封装和/或发送到负载平衡器的隧道协议相同。然而,在某些情况下,用于将第二数据包封装和/或发送到VM的隧道协议可以不同于用于将第一数据包封装和/或发送到负载均衡器的隧道协议。
在各种实现方式中,交换机可以在封装的第二数据包到达VM之前从一个或多个负载平衡器接收封装的第二数据包。交换机可以从封装的第二数据包获取信息。例如,交换机可以从封装的第二数据包获取前端计算设备的IP地址。交换机可以访问流表以基于前端计算设备的IP地址,确定前端计算设备是否在流表中被指示为快速路由目的地。交换机可以确定前端计算设备尚未被指定为快速路由目的地。
此外,交换机可以决定将前端计算设备指定为快速路由目的地。交换机可以通过将前端计算设备的IP地址添加到流表来修改流表,使得前端计算设备例如被表示为快速路由目的地。在一些情况下,交换机可以在流表中将前端计算设备的IP地址映射到云服务的公共IP地址,使得将云服务的公共IP地址指示为目的地址的数据包可以经由绕过云服务的一个或多个负载平衡器的快速路由而发送到前端计算设备。
类似地,后续数据包可以经由绕过云服务的一个或多个负载平衡器的快速路由和/或经由绕过一个或多个负载平衡器的直接返回路由在VM与云服务的前端计算设备之间发送。
与传统方法相比,本文所描述的技术提供了VM与云服务计算设备之间无需通过负载平衡器的直接通信。因此,VM与云服务计算设备之间的通信可以避免对负载平衡器施加任何业务负载。因此,可以减少负载平衡器所需的总带宽。此外,由于业务直接在VM与云服务计算设备之间发送,因此可以减少VM与云服务之间的总延迟,并且可以改善用户体验。
图1示出了根据一些实施方式在虚拟机(VM)与云服务计算设备之间传送数据的示例环境100。环境100可以包括一个或多个数据中心102、主机计算设备104和云服务106。主机计算设备104可以通过一个或多个网络108与云服务进行通信。在一些情况下,主机计算设备104和云服务106可以驻留在相同的数据中心102内。另外或替代地,主机计算设备104和云服务106可以驻留在相同的地理区域内。然而,在某些情况下,主机计算设备104和云服务106可以驻留在不同的数据中心102和/或不同的地理区域内。尽管图1示出了单个主机计算设备104和单个云服务106,但是应当理解,一个或多个数据中心102可以包括多个主机计算设备、多个云服务和/或其他数据中心资源。
主机计算设备104可以包括虚拟机(VM)110、虚拟交换机112、一个或多个处理器114和/或存储器116。主机计算设备104可以托管VM 110和虚拟交换机112。然而,在一些实现方式中,主机计算设备104可以不托管虚拟交换机112。相反,主机计算设备104和/或VM110可以与主机计算设备104外部的交换机进行通信。
云服务106可以包括一个或多个负载平衡器118(例如,一个或多个软件负载平衡器)、前端计算设备(例如,第一前端计算设备120、第二前端计算设备122和第三前端计算设备124)以及一个或多个后端计算设备126。为了说明的目的,图1描绘了三个前端计算设备120、122和124,但是应当理解,云服务106可以包括更少或更多的前端计算设备。
前端计算设备120、122和124可以经由一个或多个网络(未示出)与一个或多个负载平衡器118和一个或多个后端计算设备126通信。一个或多个负载平衡器118可以被配置为将进入的工作负载分配到前端计算设备120、122和124。此外,后端计算设备126可以被配置将云服务资源存储和/或提供给向前端终端计算设备120、122和124。
一个或多个网络108(和本申请中所提及的其他网络)可以包括任何适当的网络,包括:广域网,诸如因特网;局域网,诸如内联网;无线网络,例如蜂窝网络、诸如Wi-Fi的本地无线网络和/或诸如
Figure BDA0001356734660000061
Figure BDA0001356734660000062
低能的近距离无线通信;有线网络,包括光纤和以太网;或任何其他此类网络或其任何组合。因此,一个或多个网络108可以包括有线和/或无线通信技术。用于此类通信的组件至少部分取决于网络的类型、所选择的环境或两者。
主机计算设备104的存储器116可以包括易失性存储器形式的计算机可读介质,如随机存取存储器(RAM),和/或非易失性存储器形式的计算机可读介质,如只读存储器(ROM)或闪存RAM。存储器116是计算机可读介质的示例。
计算机可读介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质的示例包括但不限于相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、读取(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD-ROM)、数字通用盘(DVD)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或可用于存储用于由计算设备访问的信息的任何其它非传输介质。如本文所定义的,计算机可读介质不包括诸如调制数据信号和载波之类的暂时介质。
存储器116可以存储一个或多个模块。例如,存储器116可以存储一个或多个路由模块128。一个或多个路由模块128可以至少部分地提供经由绕过云服务106的一个或多个负载平衡器118的快速路由在VM 110与云服务计算设备(例如,第一前端计算设备120)之间传输数据的功能。例如,VM 110可以经由至少部分基于隧道协议的隧道132向云服务计算设备发送数据包130。在各种示例中,隧道协议可以包括虚拟可扩展局域网(VXLAN)技术。
附加地或替代地,一个或多个路由模块128可以至少部分地提供用于经由绕过云服务106的一个或多个负载平衡器118的直接返回路由在云服务计算设备(例如,第一前端计算设备120)与VM 110之间发送数据的功能。例如,云服务计算设备可以经由隧道132向VM110发送数据包130。
图2是示出根据一些实施方式的用于在虚拟机(VM)与云服务计算设备之间的传输路由的各个阶段处理数据包的示例过程200的示意流程图。过程200可以包括:在202处发送数据包;在204处封装数据包;在206处,对封装的数据包执行目的地网络地址转换(DNAT)。
在202处,VM可以发送数据包,并且数据包可以发往云服务。数据包可以包括有效载荷(未示出)和一个或多个字段和/或报头。例如,数据包的一个或多个字段可以包括内部目的地互联网协议(IP)地址208、内部源IP地址210和内部介质访问控制(MAC)地址212。
在204处,交换机(例如,虚拟交换机)可以封装数据包以产生封装的数据包。交换机可以从VM接收数据包。封装的数据包可以包括内层214,其包括数据包的一个或多个字段。封装的数据包还可以包括一个或多个封装字段和/或报头的外层。封装的数据包的一个或多个封装字段可以包括隧道协议报头/ID 216(例如,VXLAN ID)、用户数据报文协议(UDP)报头218、外部目的地IP地址220(例如,负载均衡器IP地址)和外部源IP地址222。
在206处,负载平衡器可以在封装的数据包上执行DNAT以产生DNAT数据包。负载平衡器可以从交换机接收封装的数据包。在执行DNAT时,负载平衡器可以用第二目的地IP地址(例如,post DNAT IP地址224)替换第一目的地IP地址(例如,外部目的地IP地址220)。例如,后DNAT IP地址224可以是与云服务的前端计算设备相关联的IP地址。在封装的数据包上执行了DNAT之后,负载平衡器可以将DNAT数据包转发到云服务计算设备(例如,云服务的前端计算设备)。
图3是示出根据一些实施方式的示例场景300的示意图,其中使用隧道协议经由一个或多个负载平衡器在虚拟机(VM)与云服务计算设备之间传送数据。在示例场景300中,主机计算设备104可以托管虚拟机110和虚拟交换机112。此外,云服务106可以包括一个或多个负载平衡器118、一个或多个前端计算设备(例如,第一前端计算设备120、第二前端计算设备122和第三前端计算设备124)以及一个或多个后端计算设备(图3中未示出)。
在一些实现方式中,虚拟机110可以生成第一数据包302。第一数据包302可以包括有效载荷和一个或多个字段。例如,第一数据包302可以发往云服务106。因此,第一数据包302的一个或多个字段可以包括作为第一目的地因特网协议(IP)地址的云服务IP地址304。在某些情况下,云服务IP地址304可以是与云服务106相关联的公共IP地址。例如,在示例场景300中,云服务IP地址304被指示为132.1.1.1,其为与云服务106相关联的公共IP地址。
此外,第一数据包302的一个或多个字段可以包括作为第一源IP地址的VM IP地址306。在一些情况下,VM IP地址306可以是与VM 110相关联的私有IP地址。例如,在示例场景300中,VM IP地址306被指示为10.1.1.2,其是与VM 110相关联的私有IP地址。
VM 110可以将第一数据包302发送到虚拟交换机112。在某些情况下,虚拟交换机112可以访问指示快速路由目的地的流表(未示出)。例如,虚拟交换机112可以针对流表来检查云服务IP地址304,并确定云服务IP地址未映射到快速路由目的地。
虚拟交换机112可以封装第一数据包302以产生封装的第一数据包308。在各种实现方式中,虚拟交换机112可以至少部分地基于云隧道协议(例如,虚拟可扩展局域网(VXLAN)隧道协议)来封装第一数据包302。封装的第一数据包308可以包括第一数据包302的有效载荷和第一数据包302的一个或多个字段。封装的第一数据包308可以进一步包括一个或多个封装字段。封装的第一数据包308的一个或多个封装字段可以包括例如隧道协议ID 310(例如,VXLAN ID)。在一些情况下,隧道协议ID 310可以是表示VM与云服务之间的快速路由传输的全局唯一VXLAN ID。此外,在一些示例中,全局VXLAN ID可以是特定于云服务的。然而,在其他示例中,全局VXLAN ID可能对多个云服务是通用的。
此外,一个或多个封装字段可以包括作为第二目的地IP地址的负载均衡器IP地址312。在某些情况下,负载均衡器IP地址312可以是与负载平衡器118相关联的私有IP地址。例如,在示例场景300中,负载平衡器IP地址312被指示为10.3.1.1,其是与负载平衡器118相关联的私有IP地址。
此外,一个或多个封装字段可以包括作为第二源IP地址的主机IP地址314。在一些情况下,主机IP地址314可以是与主机计算设备104相关联的IP地址。例如,在示例场景300中,主机IP地址314被指示为10.0.2.1,其是与主机计算设备104相关联的IP地址。
虚拟交换机112可以将封装的第一数据包308发送到云服务106的负载平衡器118。在各种实现方式中,虚拟交换机112可以至少部分地基于云隧道协议将封装的第一数据包308发送到负载平衡器118。
负载平衡器118可以从虚拟交换机112接收封装的第一数据包30。在接收到封装的第一数据包308之后,负载平衡器118可以在封装的第一数据包上执行目的地网络地址转换(DNAT)308以产生DNAT第一数据包316。在对封装的第一数据包308执行DNAT时,负载平衡器118可以用前端计算设备IP地址318替换负载平衡器IP地址318。例如,负载平衡器118可以将第一前端计算设备120选择为封装的第一数据包308的目的地。负载平衡器在封装的第一数据包308上执行DNAT时,可以将负载均衡器IP地址312替换为与第一前端计算设备120相关联的IP地址。例如,在示例场景300中,前端计算设备IP地址318被指示为10.4.1.1,其为与第一前端计算设备120相关联的IP地址。
负载平衡器118可以将DNAT第一数据包316转发到第一前端计算设备120。在一些情况下,DNAT第一数据包316可以包括来自VM 110的请求。在这种情况下,第一前端终端计算设备120可以服务该请求。
图4是示出根据一些实施方式的示例场景400的示意图,其中使用隧道协议经由直接返回路由在云服务计算设备与虚拟机(VM)之间传送数据。
在一些实现方式中,示例场景400可以在第一前端计算设备120在图3的场景300中接收到DNAT第一数据包316之后的时间段期间发生。例如,第一前端计算设备120可以从DNAT第一数据包316获得关于VM 110和/或主机计算设备104的信息。因此,第一前端计算设备120可以使用这样的信息生成数据包并经由直接返回路由直接发送该数据包到VM 110,如下面进一步详细说明的。
在各种示例中,第一前端计算设备120可以至少部分地基于云隧道协议(例如,虚拟可扩展局域网(VXLAN)隧道协议)来生成封装的第二数据包402。封装的第二数据包402可以包括有效载荷和一个或多个字段。例如,封装的第二数据包402可以发往VM 110。因此,封装的第二数据包402的一个或多个字段可以包括作为第一目的地因特网协议(IP)地址的VMIP地址406。在一些情况下,VM IP地址406可以是与VM 110相关联的私有IP地址。例如,在示例场景400中,VM IP地址406被指示为10.1.1.2,其是与VM 110相关联的私有IP地址。
此外,封装的第二数据包402的一个或多个字段可以包括作为第一源IP地址的云服务IP地址408。在一些情况下,云服务IP地址408可以是与云服务106相关联的公共IP地址。例如,在示例场景400中,云服务IP地址408被指示为132.1.1,其是与云服务106相关联的公共IP地址。
封装的第二数据包还可以包括一个或多个封装字段。封装的第二数据包402的一个或多个封装字段可以包括例如隧道协议ID 410(例如,VXLAN ID)。在一些情况下,隧道协议ID 410可以是表示云服务与虚拟机之间的直接返回传输的全局唯一VXLAN ID。此外,在一些示例中,全局VXLAN ID可以是特定于云服务的。然而,在其他示例中,全局VXLAN ID可能对多个云服务是通用的。
此外,封装的第二数据包402的一个或多个封装字段可以包括作为第二目的地IP地址的主机IP地址412。在一些情况下,主机IP地址412可以是与托管VM 110的主机计算设备104相关联的IP地址。例如,在示例场景400中,主机IP地址412被指示为10.0.2.1,其是与主机计算设备104相关联的IP地址。
此外,封装的第二数据包402的一个或多个封装字段可以包括作为第二源IP地址的前端计算设备IP地址414。在一些情况下,前端计算设备IP地址414可以是与第一前端计算设备120相关联的IP地址。例如,在示例场景400中,前端计算设备IP地址414被指示为10.4.1.1,其是与第一前端计算设备120相关联的IP地址。
云服务106的第一前端计算设备120可以经由绕过云服务106的负载平衡器118的直接返回路由404将封装的第二数据包402发送到VM 104。虚拟交换机112可以接收封装的第二数据包402。在一些情况下,虚拟交换机112可以对封装的第二数据包402进行解封装以产生解封装的第二数据包416。在对封装的第二数据包402进行解封装时,虚拟交换机112可以去除封装的第二数据包402的一个或更多封装字段。
虚拟交换机112可以从封装的第二数据包402和/或解封装的第二数据包416获得信息。例如,虚拟交换机可以使用这样的信息来将VM 110标识为封装的第二数据包402和/或解封装的第二数据包416的目的地。因此,虚拟交换机112可以将封装的第二数据包402和/或解封装的第二数据包416转发到VM 110。
在一些示例中,虚拟交换机112可以在接收到封装的第二数据包402之后访问指示快速路由目的地的流表(未示出)。例如,虚拟交换机112可以针对流表来检查从封装的第二数据包402和/或解封装的第二数据包416获得的信息,并确定第一前端计算设备120未被指定为快速路由目的地。在一些情况下,虚拟交换机112可以决定修改流表,使得流表将第一前端计算设备120指示为快速路由目的地。因此,从VM 110发送到云服务106的后续数据包可以沿着绕过负载平衡器118的快速路由而到达第一前端计算设备120。
图5是示出根据一些实施方式的示例场景500的示意图,其中使用隧道协议经由快速路由在虚拟机(VM)与云服务计算设备之间传送数据。在一些实现方式中,示例场景500可以在虚拟交换机112修改流表之后的时间段内发生,以将第一前端计算设备120指示为快速路由目的地,如上面在图4的场景400中所讨论的。
在各种示例中,虚拟机110可以生成第三数据包502。第三数据包502可以包括有效载荷和一个或多个字段。例如,第三数据包502可以发往云服务106。因此,第三数据包502的一个或多个字段可以包括作为第一目的地因特网协议(IP)地址的云服务IP地址304。在某些情况下,云服务IP地址304可以是与云服务106相关联的公共IP地址。例如,在示例场景500中,云服务IP地址304被指示为132.1.1.1,其为与云服务106相关联的公共IP地址。
此外,第三数据包502的一个或多个字段可以包括作为第一源IP地址的VM IP地址306。在一些情况下,VM IP地址306可以是与VM 110相关联的私有IP地址。例如,在示例场景500中,VM IP地址306被指示为10.1.1.2,其是与VM 110相关联的私有IP地址。
VM 110可以将第三数据包502发送到虚拟交换机112。在一些情况下,虚拟交换机112可以访问指示快速路由目的地的流表。例如,虚拟交换机112可以针对流表检查第三数据包502的云服务IP地址304,并确定云服务IP地址304被映射到与云服务106的第一前端计算设备120相关联的IP地址。因此,虚拟交换机112可以确定第一前端计算设备120被指定为快速路由目的地。
至少部分地基于确定第一前端计算设备120被指定为快速路由目的地,虚拟交换机112可以确定封装第三数据包502以产生封装的第三数据包504,并经由绕过云服务106的负载平衡器118的快速路由506将封装的第三数据包504发送到第一前端计算设备120。
在各种实现方式中,虚拟交换机112可以至少部分地基于云隧道协议(例如,虚拟可扩展局域网(VXLAN)隧道协议)来封装第三数据包502。封装的第三数据包504可以包括第三数据包502的有效载荷和第三数据包502的一个或多个字段。封装的第三数据包504可以进一步包括一个或多个封装字段。封装的第三数据包504的一个或多个封装字段可以包括例如隧道协议ID 310(例如,VXLAN ID)。在一些情况下,隧道协议ID 310可以是表示VM与云服务之间的快速路由传输的全局唯一VXLAN ID。此外,在一些示例中,全局VXLAN ID可以是特定于云服务的。然而,在其他示例中,全局VXLAN ID可能对多个云服务是通用的。
此外,封装的第三数据包504的一个或多个封装字段可以包括作为第二目的地IP地址的前端计算设备IP地址318。在一些情况下,前端计算设备IP地址318可以是与云服务106的第一前端计算设备120相关联的IP地址。例如,在示例场景500中,前端计算设备IP地址318被指示为10.4.1.1,其是与第一前端计算设备120相关联的IP地址。
此外,封装的第三数据包504的一个或多个封装字段可以包括作为第二源IP地址的主机IP地址314。在一些情况下,主机IP地址314可以是与主机计算设备104相关联的IP地址。例如,在示例场景300中,主机IP地址314被指示为10.0.2.1,其是与主机计算设备104相关联的IP地址。
图6是示出了根据一些实施方式的通过快速路由在虚拟机(VM)与云服务计算设备之间传送数据的示例过程600的流程图,如上面参考图1-5进一步描述的。过程600和本文描述的其他过程被示为逻辑流程图中的块集合,其表示操作序列,其中一些或全部可以以硬件、软件或其组合来实现。在软件的上下文中,块可以表示存储在一个或多个计算机可读介质上的计算机可执行指令,当由一个或多个处理器执行时,程序对处理器执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述块的顺序不应被解释为限制。所描述的块的任何数量可以以任何顺序和/或并行组合以实现该过程或替代过程,并且并非所有块都被执行。为了讨论的目的,参考本文示例中描述的环境,体系结构和系统描述了过程,尽管可以在各种各样的其他环境、体系结构和系统中实现这些过程。
在602处,过程600可以接收数据包。在一些情况下,交换机(例如,虚拟交换机)可以从VM接收数据包,云服务可以是数据包的期望目的地。数据包可以包括一个或多个字段,诸如与VM相关联的源互联网协议(IP)地址和与云服务相关联的第一目的地地址。在某些情况下,与VM关联的源IP地址可以是VM的私有IP地址。此外,与云服务相关联的第一目的地地址可以是云服务的公共IP地址。
云服务可以包括用于在多个计算设备之间分配工作负载的一个或多个负载平衡器。例如,多个计算设备可以包括与云服务的一个或多个后端计算设备进行通信的前端计算设备。
在604处,过程600可以封装数据包以产生封装的数据包。在一些示例中,交换机可以至少部分地基于隧道协议来封装数据包。例如,隧道协议可以包括虚拟可扩展局域网(VXLAN)隧道技术。封装的数据包可以包括一个或多个字段,例如与云服务的多个计算设备中的一个计算设备相对应的第二目的地IP地址。在某些情况下,第二目的地IP地址可以是云服务的计算设备的私有IP地址。此外,封装的数据包的一个或多个字段可以包括与云服务相关联的隧道协议标识符(ID)。在某些情况下,隧道协议ID可以是与云服务相关联的VXLAN ID。
在606处,过程600可以经由绕过一个或多个负载平衡器的快速路由向云服务的一个或多个计算设备发送封装的数据包。例如,交换机可以将封装的数据包发送到云服务的前端计算设备。通过经由绕过云服务的一个或多个负载平衡器的快速路由来发送封装的数据包,封装的数据包可以到达前端计算设备,而不会在一个或多个负载平衡器上施加网络业务负载。
图7是示出根据一些实现方式的用于在虚拟机(VM)与云服务计算设备之间经由快速路由发送数据的另一示例性过程700的流程图,如上面参照图1至5进一步描述的。
在702处,过程700可以接收封装的第一数据包。例如,云服务的负载平衡器可以从托管VM的主机计算设备接收封装的第一数据包。封装的第一数据包可以包括第一数据包的一个或多个字段以及封装该第一数据包的一个或多个字段的一个或多个封装字段。在一些示例中,至少部分地基于云隧道协议,一个或多个封装字段可以封装第一数据包的一个或多个字段。例如,云隧道协议可以包括虚拟可扩展局域网(VXLAN)隧道技术。一个或多个封装字段可以包括例如与云服务相关联的隧道协议标识符(ID)和与云服务相关联的第一目的地互联网协议(IP)地址。例如,隧道协议ID可以是VXLAN ID。
在704处,过程700可以在封装的第一数据包上执行目的地网络地址转换(DNAT)以产生DNAT第一数据包。例如,负载平衡器可以在封装的第一数据包上执行DNAT。在封装的第一数据包上执行DNAT时,负载平衡器可以用第二目的地IP地址替换第一目的地IP地址。例如,第二目的地IP地址可以与云服务的前端计算设备相关联。
在706处,过程700可以将DNAT第一数据包发送到云服务的前端计算设备。例如,负载平衡器可以至少部分地基于与前端计算设备相关联的第二目的地IP地址将DNAT第一数据包发送到前端计算设备。
在708处,过程700可以从负载平衡器接收DNAT第一数据包。例如,前端计算设备可以在负载平衡器对封装的第一数据包执行了DNAT之后的第一时间段内,从负载平衡器接收DNAT第一数据包。
在710处,过程700可以经由绕过负载平衡器的快速路由来接收封装的第二数据包。在一些情况下,前端计算设备可以从托管VM的主机计算设备接收封装的第二数据包。例如,VM可以生成去往云服务的第二数据包。VM可以将第二数据包发送到交换机。在一些示例中,交换机可以是由主机计算设备托管的虚拟交换机。交换机可以访问流表并且至少部分地基于包括在第二数据包中的信息和包括在流表中的信息来确定经由绕过负载均衡器的快速路由将第二数据包发送到前端计算设备。交换机可以封装第二数据包以产生封装的第二数据包。在一些情况下,交换机可以至少部分地基于云隧道协议来封装第二数据包。此外,封装的第二数据包可以包括与云服务相关联的隧道协议标识符(ID)和与前端计算设备相关联的目的地IP地址。
在一些示例中,前端计算设备可以在上面针对接收DNAT第一数据包所提到的第一时间段之后的第二时间段期间接收封装的第二数据包。
图8是示出了根据一些实现方式使用流表在虚拟机(VM)与云服务计算设备之间传输数据的示例过程800的流程图,如上面参照图1-5进一步描述的。在一些情况下,过程800可以由交换机(例如,虚拟交换机)执行。然而,过程800或其一部分可以由任何合适的设备执行。
在802处,过程800可以接收数据包。例如,VM可以生成数据包并将数据包发送到交换机。
在804处,过程800可以访问指示快速路由目的地的流表。例如,交换机可以访问指示被映射到云服务的一个或多个计算设备的一个或多个目的地IP地址的流表,并且一个或多个计算设备可以被指定为数据包的快速路由目的地。
在806处,过程800可以确定数据包的目的地网际协议(IP)地址是否在流表中被指定为对应于快速路由目的地。
如果在806处,过程800确定数据包的目的地IP地址对应于快速路由目的地,则过程800可以808处,至少部分地基于隧道协议(例如,虚拟可扩展局域网(VXLAN)隧道协议)来封装数据包,以生成第一封装数据包。例如,数据包可以包括与云服务相关联的公共IP地址作为目的地IP地址。流表可以指示与云服务相关联的公共IP地址到与云服务的计算设备(例如,前端计算设备)相关联的私有IP地址之间的映射。
交换机可以封装数据包以包括一个或多个封装字段。一个或多个封装字段可以包括与云服务的计算设备相关联的私有IP地址作为目的地IP地址。此外,一个或多个封装字段可以包括隧道协议标识符(ID),诸如与云服务相关联的VXLAN ID。
在810处,过程800可以经由绕过云服务的一个或多个负载平衡器的快速路由将第一封装的数据包发送到云服务的计算设备。例如,交换机可以将第一封装的数据包发送到云服务的前端计算设备。通过经由绕过云服务的一个或多个负载平衡器的快速路由来发送第一封装的数据包,第一封装的数据包可以到达前端计算设备,而不会在一个或多个负载平衡器上施加网络业务负载。
如果在806处,过程800确定数据包的目的地IP地址不对应于快速路由目的地,则过程800可以在812处,至少部分地基于隧道协议来封装数据包,以生成第二封装的数据包。例如,流表可以不指示与云服务相关联的公共IP地址到与云服务的计算设备相关联的私有IP地址之间的映射。第二封装的数据包可以不同于第一封装的数据包。
交换机可以封装数据包以包括一个或多个封装字段。第二封装的数据包的一个或多个封装字段可以包括与云服务的负载平衡器相关联的私有IP地址作为目的地IP地址。此外,一个或多个封装字段可以包括隧道协议标识符(ID),诸如与云服务相关联的VXLAN ID。
在814处,过程800可以将第二封装的数据包发送到云服务的一个或多个负载平衡器。例如,交换机可以将第二封装的数据包发送到云服务的负载平衡器,并且负载平衡器可以将第二封装的数据包转发到云服务的前端计算设备。在一些情况下,负载平衡器可以在第二封装的数据包上执行目的地网络地址转换(DNAT)以产生第二DNAT数据包。第二DNAT数据包可以包括与云服务的前端计算设备相关联的私有IP地址作为目的地IP地址。因此,负载平衡器可以将第二DNAT数据包发送到前端计算设备。
图9是示出了根据一些实现方式的用于在云服务计算设备与虚拟机(VM)之间经由直接返回路由传输数据的示例过程900的流程图,如上面参考图1-5进一步描述的。
在902处,过程900可以从一个或多个负载平衡器接收第一数据包。例如,云服务的前端计算设备可以从云服务的负载平衡器接收第一数据包。
在904处,过程900可以将VM标识为第一数据包的源。例如,第一数据包可以包括与该VM相关联的私有IP地址作为源互联网协议(IP)地址。前端计算设备可以从第一数据包获取关于该VM的信息(例如,与该VM相关联的私有IP地址),并且使用该信息经由绕过负载平衡器的直接路由向VM发送数据包而不是通过负载平衡器将数据包发送到VM。
在906处,过程900可以生成第二数据包。例如,第一数据包可以包括来自VM的请求。前端计算设备可以生成第二数据包,并且第二数据包可以包括对第一数据包的请求的响应。然而,在其他情况下,第二数据包可以与第一数据包无关。
在908处,过程900可以经由绕过一个或多个负载平衡器的直接返回路由向VM发送第二数据包。例如,前端计算设备可以经由绕过负载平衡器的直接返回路由向VM发送第二数据包。在发送第二数据包之前,前端计算设备可以至少部分地基于云隧道协议(例如,虚拟可扩展局域网(VXLAN)隧道协议)来封装第二数据包。此外,前端计算设备可以经由云隧道(例如,VXLAN隧道)向VM发送第二数据包。
在910处,过程900可以接收第二数据包。在一些情况下,交换机(例如,虚拟交换机)可以接收第二数据包。交换机和VM可以由相同的主机计算设备来托管。
在912处,过程900可以解封装第二数据包以产生解封装的数据包。例如,交换机可以解封装第二数据包。交换机可以基于来自第二数据包和/或解封装的数据包的信息,确定与VM相关联的私有IP地址被指示为第二数据包的目的地。因此,在914处,过程900可以将解封装的数据包转发到VM。例如,交换机可以将解封装的数据包转发到VM。
在一些情况下,交换机在从第二数据包和/或解封装的数据包获得信息之后可以访问流表,并确定云服务的前端计算设备未被指示为快速路由目的地。因此,交换机可以修改流表,或者使流表被修改,使得前端计算设备被指定为快速路由目的地。例如,交换机可以修改流表,使得与前端计算设备相关联的私有IP地址被映射到与云服务相关联的公共IP地址。因此,交换机可以通过绕过负载均衡器的快速路由向VM前端计算设备发送来自VM并去往云服务的后续数据包。
图10是示出了根据一些实现方式的通过快速路由和直接返回路由在虚拟机(VM)与云服务计算设备之间传送数据的示例过程1000的流程图,如上面参照图1-5进一步描述的。在一些情况下,过程1000可以由云服务计算设备(例如,云服务的前端计算设备)来执行。然而,过程1000或其一部分可以由任何合适的设备执行。
在1002处,过程1000可以接收包括源自VM的数据的第一数据包。例如,云服务的前端计算设备可以从云服务的负载均衡器接收第一数据包。
在1004处,过程1000可以生成第二数据包。然后,在1006处,过程1000可以经由负载平衡器向VM发送第二数据包。例如,云服务的前端计算设备可以生成第二数据包,并且经由负载平衡器将第二数据包发送到VM。
在1008处,过程1000可以经由绕过负载平衡器的快速路由来接收第三数据包。第三数据包可以包括源自VM的数据。例如,VM可以至少部分地基于云隧道协议(例如,虚拟可扩展局域网(VXLAN)隧道协议)将第三数据包发送到前端计算设备。
在1010处,过程1000可以生成第四数据包。然后,在1012处,过程1000可以经由绕过负载平衡器的直接返回路由向VM发送第四数据包。例如,前端计算设备可以至少部分地基于从第一数据包或第三数据包中的至少一个获得的信息,经由直接返回路由将第四数据包发送到VM。
在一些示例中,经由快速路由接收的第三数据包和经由直接返回路由发送的第四数据包可以各自包括相同的隧道协议标识符(ID)。例如,第三数据包和第四数据包可以各自包括与云服务相关联的相同的VXLAN ID。然而,在其他示例中,第三数据包可以包括第一VXLAN ID,第四数据包可以包括不同于第一VXLAN ID的第二VXLAN ID。
虽然已经以具体结构特征和/或方法动作的语言描述了几个实施例,但是应当理解,权利要求不必限于所描述的特定特征或动作。相反,具体特征和行为被公开为实现所要求保护的主题的说明性形式。

Claims (19)

1.一种用于虚拟机与云服务计算设备之间的快速路由传输的系统,其特征在于,包括:
云服务的多个前端计算设备;
虚拟机,其能够访问虚拟交换机,经由所述虚拟交换机来传输数据,所述虚拟交换机被配置为路由第一数据包,所述第一数据包包括:
一个或多个字段,和
一个或多个封装字段,其封装第一数据包的所述一个或多个字段,所述一个或多个封装字段包括与所述云服务相关联的隧道协议标识符以及与所述云服务相关联的第一目的地互联网协议地址;以及
负载平衡器,其被配置为:
接收所述第一数据包,
通过用第二目的地互联网协议地址替换所述第一目的地互联网协议地址对所述第一数据包执行目的地网络地址转换,以产生目的地网络地址转换第一数据包,所述第二目的地互联网协议地址与所述多个前端计算设备中的特定前端计算设备相关联,包括:所述第二目的地互联网协议地址为所述多个前端计算设备中的至少一个前端计算设备的IP地址,所述第一目的地互联网协议地址为所述负载平衡器IP地址,以及
将所述目的地网络地址转换第一数据包发送到所述特定前端计算设备,
其中,所述虚拟机的所述虚拟交换机被配置为:
访问快速路由流表,所述快速路由流表指示所述特定前端计算设备先前已经从所述虚拟机接收到所述第一数据包,并且
基于所述快速路由流表来确定是否对来自所述虚拟机去往所述特定前端计算设备第二数据包进行封装,以用于快速路由从而绕过所述负载平衡器;
所述虚拟机的所述虚拟交换机还被配置为:
在所述快速路由流表中将前端计算设备的IP地址映射到云服务的公共IP地址,以将所述云服务的公共IP地址指示为目的地址的数据包经由绕过云服务的一个或多个负载平衡器的直接返回路由发送到云服务的前端计算设备。
2.根据权利要求1所述的系统,其特征在于,所述云隧道协议包括虚拟可扩展局域网隧道技术。
3.根据权利要求1所述的系统,其特征在于,所述虚拟机将所述第一数据包发送到所述虚拟交换机。
4.根据权利要求3所述的系统,其特征在于,所述快速路由流表还指示:被映射到一个或多个前端计算设备的一个或多个目的地互联网协议地址,该一个或多个前端计算设备被指定为数据包的快速路由目的地,以及
其中,当确定所述快速路由流表不指示特定数据包的目的地互联网协议地址时,所述虚拟交换机:
将所述特定数据包的所述一个或多个字段与所述一个或多个封装字段封装起来以产生封装的特定数据包,该封装包括至少部分地基于确定所述快速路由流表不指示所述特定数据包的目的地互联网协议地址,使用与所述负载平衡器相关联的第一互联网协议地址作为所述一个或多个封装字段的所述第一目的地互联网协议地址,以及
将所述封装的特定数据包发送至所述负载平衡器。
5.根据权利要求4所述的系统,其特征在于,所述前端计算设备被配置为:
在所述负载平衡器对所述第一数据包执行目的地网络地址转换之后的第一时间段内,从所述负载平衡器接收所述目的地网络地址转换第一数据包,以及
在所述第一时间段之后的第二时间段期间,经由所述虚拟机与所述前端计算设备之间的所述快速路由直接接收所述封装的第二数据包。
6.一种用于虚拟机与云服务计算设备之间的快速路由传输的设备,其特征在于,包括:
可经由云服务访问的虚拟机,所述虚拟机具有虚拟交换机,数据经由所述虚拟交换机被路由到所述虚拟机和从所述虚拟机路由,
其中,所述虚拟交换机被配置为:
访问快速路由流表,所述快速路由流表指示特定前端计算设备先前已经从所述虚拟机接收到第一数据包,并且
基于所述快速路由流表来确定是否对来自所述虚拟机去往所述特定前端计算设备的第二数据包进行封装,以用于快速路由从而绕过所述云服务的负载平衡器;
所述虚拟交换机还被配置为:
在所述快速路由流表中将前端计算设备的IP地址映射到云服务的公共IP地址,以将所述云服务的公共IP地址指示为目的地址的数据包经由绕过云服务的一个或多个负载平衡器的直接返回路由发送到云服务的前端计算设备;
其中,所述负载平衡器被配置为:
接收所述第一数据包,
通过用第二目的地互联网协议地址替换第一目的地互联网协议地址对所述第一数据包执行目的地网络地址转换,以产生目的地网络地址转换第一数据包,所述第二目的地互联网协议地址与所述多个前端计算设备中的特定前端计算设备相关联,包括:所述第二目的地互联网协议地址为所述多个前端计算设备中的至少一个前端计算设备的IP地址,所述第一目的地互联网协议地址为所述负载平衡器IP地址,以及
将所述目的地网络地址转换第一数据包发送到所述特定前端计算设备。
7.根据权利要求6所述的设备,其中,当确定所述第二数据包要经由所述快速路由去往所述特定前端计算设备时,所述虚拟交换机还被配置为使用所述虚拟机的互联网协议地址和所述特定前端计算设备的互联网协议地址、以虚拟可扩展局域网隧道技术执行所述第二数据包的封装。
8.根据权利要求6所述的设备,其特征在于,所述虚拟机将所述第一数据包发送至所述虚拟交换机。
9.根据权利要求6所述的设备,其特征在于,所述快速路由流程表还指示:映射到一个或多个前端计算设备的一个或多个目的地互联网协议地址,该一个或多个前端计算设备被指定为数据包的快速路由目的地,以及
其中,当确定所述快速路由流表不指示特定数据包的目的地互联网协议地址时,所述虚拟交换机:
将所述特定数据包的一个或多个字段与一个或多个封装字段封装起来以产生封装的特定数据包,该封装包括至少部分地基于确定所述快速路由流表不指示所述特定数据包的目的地互联网协议地址,使用与所述负载平衡器相关联的第一互联网协议地址作为所述一个或多个封装字段的所述第一目的地互联网协议地址,以及
将所述封装的特定数据包发送至所述负载平衡器。
10.根据权利要求6所述的设备,其特征在于,所述特定前端计算设备被配置为:
在所述负载平衡器对所述第一数据包执行目的地网络地址转换之后的第一时间段内从所述负载平衡器接收所述目的地网络地址转换第一数据包,以及
在所述第一时间段之后的第二时间段期间,经由所述虚拟机与所述前端计算设备之间的所述快速路由直接接收所述封装的第二数据包。
11.一种用于虚拟机与云服务计算设备之间的快速路由传输的方法,其特征在于,包括:
经由虚拟交换机访问快速路由流表,所述快速路由流表指示特定前端计算设备先前已经从云服务中的虚拟机接收到第一数据包,并且
基于所述快速路由流表来确定是否对来自所述虚拟机去往所述特定前端计算设备的第二数据包进行封装,以用于快速路由从而绕过所述云服务的一个或多个负载平衡器;
所述方法还包括:
在所述快速路由流表中将前端计算设备的IP地址映射到云服务的公共IP地址,以将所述云服务的公共IP地址指示为目的地址的数据包经由绕过云服务的一个或多个负载平衡器的直接返回路由发送到云服务的前端计算设备;
其中,所述负载平衡器被配置为:
接收所述第一数据包,
通过用第二目的地互联网协议地址替换第一目的地互联网协议地址对所述第一数据包执行目的地网络地址转换,以产生目的地网络地址转换第一数据包,所述第二目的地互联网协议地址与所述多个前端计算设备中的特定前端计算设备相关联,包括:所述第二目的地互联网协议地址为所述多个前端计算设备中的至少一个前端计算设备的IP地址,所述第一目的地互联网协议地址为所述负载平衡器IP地址,以及
将所述目的地网络地址转换第一数据包发送到所述特定前端计算设备。
12.根据权利要求11所述的方法,其特征在于,所述第一数据包具有一个或多个字段,包括与所述虚拟机相关联的源互联网协议地址以及与所述云服务相关联的第一目的地互联网协议地址,以及
其中,所述方法还包括:
接收所述第一数据包;
至少部分地基于隧道协议来封装所述第二数据包以产生具有一个或多个封装字段的封装的数据包,所述封装字段包括与所述特定前端计算设备相对应的第二目的地互联网协议地址;和
至少部分地基于所述隧道协议,经由绕过所述一个或多个负载平衡器的快速路由将所述封装的数据包发送至所述特定前端计算设备。
13.根据权利要求12所述的方法,其特征在于,所述隧道协议包括虚拟可扩展局域网隧道技术。
14.根据权利要求13所述的方法,其特征在于,所述一个或多个封装字段还包括与所述云服务相关联的虚拟可扩展局域网标识符。
15.根据权利要求12所述的方法,其特征在于,所述封装由虚拟交换机执行。
16.根据权利要求12所述的方法,其特征在于:
在所述第一数据包的所述一个或多个字段中,所述源互联网协议地址是所述虚拟机的私有互联网协议地址,所述第一目的地互联网协议地址是所述云服务的公共互联网协议地址,
在所述封装的数据包的所述一个或多个封装字段中,所述第二目的地互联网协议地址是所述特定前端计算设备的私有互联网协议地址,并且
所述封装的数据包的所述一个或多个封装字段还包括与所述云服务相关联的隧道协议标识符。
17.根据权利要求11所述的方法,其特征在于,还包括确定所述特定前端计算设备已经被指定为快速路由目的地。
18.根据权利要求17所述的方法,其特征在于,所述快速路由流表还指示被映射到一个或多个计算设备的一个或多个互联网协议地址,该一个或多个计算设备被指定为数据包的快速路由目的地,以及
其中,确定所述特定前端计算设备已经被指定为快速路由目的地是至少部分地基于访问所述快速路由流表而进行的。
19.根据权利要求11所述的方法,其特征在于,还包括:
经由所述虚拟交换机接收响应数据包,所述响应数据包将所述特定前端计算设备的私有互联网协议地址指示为所述响应数据包的源;和
至少部分地响应于接收到所述响应数据包,将所述特定前端计算设备指定为快速路由目的地。
CN201710599274.0A 2016-07-21 2017-07-21 用于虚拟机与云服务计算设备之间的快速路由传输的系统、设备和方法 Active CN107645444B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/216,602 US10419330B2 (en) 2016-07-21 2016-07-21 Express route transmissions between virtual machines and cloud service computing devices
US15/216602 2016-07-21

Publications (2)

Publication Number Publication Date
CN107645444A CN107645444A (zh) 2018-01-30
CN107645444B true CN107645444B (zh) 2021-09-07

Family

ID=60988991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710599274.0A Active CN107645444B (zh) 2016-07-21 2017-07-21 用于虚拟机与云服务计算设备之间的快速路由传输的系统、设备和方法

Country Status (2)

Country Link
US (1) US10419330B2 (zh)
CN (1) CN107645444B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10404788B2 (en) 2016-06-30 2019-09-03 Alibaba Group Holding Limited Express route transmissions between virtual machines and cloud service computing devices
US10333959B2 (en) 2016-08-31 2019-06-25 Nicira, Inc. Use of public cloud inventory tags to configure data compute node for logical network
US10193749B2 (en) 2016-08-27 2019-01-29 Nicira, Inc. Managed forwarding element executing in public cloud data compute node without overlay network
US10425506B2 (en) * 2016-11-15 2019-09-24 Xaptum, Inc. Transforming machine data in a communication system
US10652320B2 (en) * 2017-02-21 2020-05-12 Microsoft Technology Licensing, Llc Load balancing in distributed computing systems
US10491516B2 (en) * 2017-08-24 2019-11-26 Nicira, Inc. Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10567482B2 (en) 2017-08-24 2020-02-18 Nicira, Inc. Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10778579B2 (en) 2017-08-27 2020-09-15 Nicira, Inc. Performing in-line service in public cloud
US10601705B2 (en) 2017-12-04 2020-03-24 Nicira, Inc. Failover of centralized routers in public cloud logical networks
US10862753B2 (en) 2017-12-04 2020-12-08 Nicira, Inc. High availability for stateful services in public cloud logical networks
US10965653B2 (en) 2018-03-28 2021-03-30 Xaptum, Inc. Scalable and secure message brokering approach in a communication system
US10805439B2 (en) 2018-04-30 2020-10-13 Xaptum, Inc. Communicating data messages utilizing a proprietary network
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US11374794B2 (en) 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US10924593B2 (en) 2018-08-31 2021-02-16 Xaptum, Inc. Virtualization with distributed adaptive message brokering
US11271905B2 (en) 2018-09-21 2022-03-08 Google Llc Network architecture for cloud computing environments
CN111193756B (zh) * 2018-11-14 2023-04-07 中移(杭州)信息技术有限公司 一种vxlan隧道负载均衡方法及相关设备
US10938877B2 (en) 2018-11-30 2021-03-02 Xaptum, Inc. Optimizing data transmission parameters of a proprietary network
US11102114B2 (en) * 2018-12-28 2021-08-24 Alibaba Group Holding Limited Method, apparatus, and computer-readable storage medium for network optimization for accessing cloud service from on-premises network
US10912053B2 (en) 2019-01-31 2021-02-02 Xaptum, Inc. Enforcing geographic restrictions for multitenant overlay networks
CN113691640B (zh) * 2020-05-19 2023-04-25 阿里巴巴集团控股有限公司 通信方法、装置、电子设备及计算机可读存储介质
CN111740910A (zh) * 2020-06-19 2020-10-02 联想(北京)有限公司 一种报文处理方法、装置、网络传输设备及报文处理系统
CN111740909A (zh) * 2020-06-19 2020-10-02 联想(北京)有限公司 一种报文处理方法、装置、网络传输设备及报文处理系统
CN113067824B (zh) * 2021-03-22 2023-04-07 平安科技(深圳)有限公司 数据调度方法、系统、虚拟主机及计算机可读存储介质
CN113448729B (zh) * 2021-06-25 2023-01-31 平安科技(深圳)有限公司 负载均衡方法、装置、设备及存储介质
US11895182B1 (en) 2023-01-23 2024-02-06 Bank Of America Corporation Systems, methods, and apparatuses for dynamically determining data center transmissions by implementing load balancers in an electronic network

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303809A1 (en) * 2011-05-25 2012-11-29 Microsoft Corporation Offloading load balancing packet modification
CN103201989A (zh) * 2012-08-09 2013-07-10 华为技术有限公司 控制数据传输的方法、装置和系统
US20140195666A1 (en) * 2011-08-04 2014-07-10 Midokura Sarl System and method for implementing and managing virtual networks
WO2014198060A1 (zh) * 2013-06-14 2014-12-18 华为技术有限公司 一种数据报文的路由方法和设备
CN104756466A (zh) * 2012-10-16 2015-07-01 微软公司 负载平衡器绕过
US20160026505A1 (en) * 2012-07-12 2016-01-28 Microsoft Technology Licensing, Llc Load balancing for single-address tenants
CN105745886A (zh) * 2013-09-23 2016-07-06 迈克菲股份有限公司 在两个实体之间提供快速路径
CN106131204A (zh) * 2016-07-22 2016-11-16 无锡华云数据技术服务有限公司 应用于负载均衡系统的报文快速分发方法及其系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572608B2 (en) 2008-10-22 2013-10-29 Vmware, Inc. Methods and systems for converting a related group of physical machines to virtual machines
US9197549B2 (en) 2013-01-23 2015-11-24 Cisco Technology, Inc. Server load balancer traffic steering
US9124536B2 (en) 2013-12-12 2015-09-01 International Business Machines Corporation Managing data flows in overlay networks
US9813385B2 (en) 2015-02-10 2017-11-07 DeNA Co., Ltd. Method and system for load balancing
JP6512990B2 (ja) 2015-08-05 2019-05-15 アラクサラネットワークス株式会社 転送装置及び転送システム
US11005682B2 (en) 2015-10-06 2021-05-11 Cisco Technology, Inc. Policy-driven switch overlay bypass in a hybrid cloud network environment
US10404788B2 (en) 2016-06-30 2019-09-03 Alibaba Group Holding Limited Express route transmissions between virtual machines and cloud service computing devices

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303809A1 (en) * 2011-05-25 2012-11-29 Microsoft Corporation Offloading load balancing packet modification
US20140195666A1 (en) * 2011-08-04 2014-07-10 Midokura Sarl System and method for implementing and managing virtual networks
US20160026505A1 (en) * 2012-07-12 2016-01-28 Microsoft Technology Licensing, Llc Load balancing for single-address tenants
CN103201989A (zh) * 2012-08-09 2013-07-10 华为技术有限公司 控制数据传输的方法、装置和系统
CN104756466A (zh) * 2012-10-16 2015-07-01 微软公司 负载平衡器绕过
US20160105499A1 (en) * 2012-10-16 2016-04-14 Microsoft Technology Licensing, Llc Load balancer bypass
WO2014198060A1 (zh) * 2013-06-14 2014-12-18 华为技术有限公司 一种数据报文的路由方法和设备
CN105745886A (zh) * 2013-09-23 2016-07-06 迈克菲股份有限公司 在两个实体之间提供快速路径
CN106131204A (zh) * 2016-07-22 2016-11-16 无锡华云数据技术服务有限公司 应用于负载均衡系统的报文快速分发方法及其系统

Also Published As

Publication number Publication date
US20180026873A1 (en) 2018-01-25
CN107645444A (zh) 2018-01-30
US10419330B2 (en) 2019-09-17

Similar Documents

Publication Publication Date Title
CN107645444B (zh) 用于虚拟机与云服务计算设备之间的快速路由传输的系统、设备和方法
CN107566441B (zh) 用于虚拟机与云服务计算设备之间的快速路由传输的方法及系统
US11671367B1 (en) Methods and apparatus for improving load balancing in overlay networks
US10541836B2 (en) Virtual gateways and implicit routing in distributed overlay virtual environments
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US11777848B2 (en) Scalable routing and forwarding of packets in cloud infrastructure
US10461958B2 (en) Packet transmission method and apparatus
EP4272384A1 (en) Internet group management protocol (igmp) of a layer 2 network in a virtualized cloud environment
US20150304450A1 (en) Method and apparatus for network function chaining
CN103200069A (zh) 一种报文处理的方法和设备
CN110753072A (zh) 负载均衡系统、方法、装置及设备
US12074846B2 (en) Scaling IP addresses in overlay networks
CN107645433B (zh) 报文转发方法及装置
US11102114B2 (en) Method, apparatus, and computer-readable storage medium for network optimization for accessing cloud service from on-premises network
EP4272399A1 (en) Layer-2 networking storm control in a virtualized cloud environment
EP3369217B1 (en) Multiple gateway operation on single operating system
EP4272379B1 (en) Layer-2 networking using access control lists in a virtualized cloud environment
CN113765799A (zh) 容器报文发送和接收的方法及存储介质、容器通信系统
EP4272383B1 (en) Layer-2 networking information in a virtualized cloud environment
CN118860924A (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