CN110999265A - 管理云计算服务端点和虚拟机之间的网络连接性 - Google Patents

管理云计算服务端点和虚拟机之间的网络连接性 Download PDF

Info

Publication number
CN110999265A
CN110999265A CN201880052441.2A CN201880052441A CN110999265A CN 110999265 A CN110999265 A CN 110999265A CN 201880052441 A CN201880052441 A CN 201880052441A CN 110999265 A CN110999265 A CN 110999265A
Authority
CN
China
Prior art keywords
namespace
network
data packet
packet
interface
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
CN201880052441.2A
Other languages
English (en)
Other versions
CN110999265B (zh
Inventor
M·希拉
S·斯洛亚
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.)
Nicira Inc
Original Assignee
Nicira Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nicira Inc filed Critical Nicira Inc
Publication of CN110999265A publication Critical patent/CN110999265A/zh
Application granted granted Critical
Publication of CN110999265B publication Critical patent/CN110999265B/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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • 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/2521Translation architectures other than single NAT servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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
    • 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
    • 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

Landscapes

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

Abstract

本文描述了用于增强云计算服务端点与虚拟机之间的连接性的系统、方法和软件。在一个实现中,管理第一命名空间中的数据包寻址的方法包括:在第一命名空间的第一接口处接收数据包,其中第一接口与第二命名空间的第二接口配对。该方法还包括:识别数据包是否发往第二命名空间的覆盖网络之外的底层网络中的服务节点,以及是否发往第二命名空间的覆盖网络之外的服务节点,修改数据包中的寻址以支持底层网络并通过虚拟机的虚拟网络接口传输数据包。

Description

管理云计算服务端点和虚拟机之间的网络连接性
M·希拉和S·斯洛亚
相关申请的交叉引用
本申请与2017年8月14日提交的标题为“管理云计算服务端点和虚拟机之间的网络连接性(MANAGING NETWORK CONNECTIVITY BETWEEN CLOUD COMPUTING SERVICEENDPOINTS AND VIRTUAL MACHINES)”的美国非临时专利申请15/676,410相关并且要求其优先权,其全部内容通过引用并入本文。
背景技术
云计算服务(诸如Google
Figure BDA0002383041360000011
Amazon
Figure BDA0002383041360000012
等)为组织提供了动态平台来部署和管理各种应用程序和服务。这些云计算服务允许组织生成和部署虚拟机,并管理每个虚拟机所属的网络。例如,组织可以部署多个虚拟机以为组织提供数据库功能。在部署虚拟机时,管理员可以定义交换、路由和防火墙策略,以确保各种虚拟机的安全。
除了为组织提供有效的平台以在不管理本地物理计算资源的情况下部署应用程序之外,云计算服务还可以提供附加服务,例如负载平衡服务、数据库管理服务或其他类似服务,其中服务可以在由云计算服务提供商管理的虚拟和物理计算元件上运行。由于这些服务未部署为由客户组织管理的虚拟机或容器,因此使用这些服务进行联网操作可能很困难且管理麻烦。特别地,组织可以在云服务提供商网络中为其虚拟机定义覆盖网络,但是,云服务提供商提供的任何服务可能无法识别与该覆盖网络相对应的数据包。结果,在提供组织虚拟机和所需服务之间的通信时会出现困难。
发明内容
本文公开的技术增强了对与云计算提供商服务通信的数据包的管理。在一个实现中,一种管理虚拟机的第一命名空间中的数据包寻址的方法包括:在第一命名空间的第一接口处接收数据包,其中第一接口与第二命名空间的第二接口配对。所述方法还提供识别所述数据包是否去往第一命名空间的覆盖网络之外的底层网络中的服务节点。该方法还包括:如果数据包去往底层网络中的服务节点,则修改数据包中的寻址以支持底层网络,并通过虚拟机的虚拟网络接口传输数据包。
附图说明
图1示出了根据一种实现的用于管理虚拟机中的数据包通信的计算环境。
图2示出了根据一种实现的底层网络操作。
图3示出了根据一种实现的从虚拟机发送通信的操作场景。
图4示出了根据一种实现的在虚拟机处接收通信的操作场景。
图5示出了根据一种实现的用于虚拟机的数据包通信概述。
图6示出了根据一种实现的用于虚拟机的数据包通信概述。
图7示出了根据一种实现的主机计算系统。
具体实施方式
图1示出了根据一种实现的用于管理虚拟机中的数据包通信的计算环境100。计算环境100包括虚拟机110、网络150和服务122。虚拟机110包括用户命名空间120和虚拟交换机命名空间121,其中命名空间隔离并虚拟化用于命名空间内的进程集合的系统资源。在本实现中,用户命名空间120(在一些示例中可以包括根命名空间)包括用户命名空间接口130,并且可以进一步包括用于一个或更多个应用程序的以对组织执行期望的服务的软件,并且虚拟交换机命名空间121包括配对的接口131、虚拟网络接口(VNIC)135和底层操作200,其将在图2中进一步描述。用户命名空间接口130和配对的接口131代表veth对或网桥,其在每个命名空间中包括虚拟网络接口,用于在虚拟机的命名空间之间传送数据包。虚拟机110使用网络150与服务122通信。网络150可以包括软件定义的联网模块、物理交换机和路由器、计算系统以及其他类似的联网元件。
在操作中,组织可以部署虚拟机110以提供各种功能和操作,其中操作可以包括数据库操作、数据处理操作或任何其他类似的操作。在部署虚拟机时,虚拟机110分为两个命名空间,其中用户命名空间120提供应用程序命名空间以支持虚拟机所需的应用程序和服务,例如数据库管理、数据处理等,同时虚拟交换机命名空间121为虚拟机110提供虚拟交换操作。这些虚拟交换操作包括底层操作200,并且还可以包括其他交换、路由和分布式防火墙操作。在某些示例中,命名空间可用于分隔进程标识符、网络访问、进程间通信和文件系统。
在此,除了虚拟机110之外,还包括服务122,该服务122可以包括容器、虚拟机、物理计算系统或一些其他类似的计算节点。服务122表示可由云计算服务提供商提供的服务节点,云计算服务提供商可以提供各种操作,例如负载平衡、数据库访问或某些其他类似的操作。由于该服务是由云计算服务提供的,因此该服务可能无法与虚拟机110的用户命名空间120在同一覆盖网络上运行。因此,尽管用户命名空间120可以与该覆盖网络上的其他计算节点进行通信,但服务122可能无法处理覆盖网络格式的数据包。
为了克服在虚拟机的覆盖网络之外执行的服务的缺陷,提供了虚拟交换机命名空间121。该第二命名空间用于为用户命名空间识别去往和来自服务的进出数据包,并修改数据包的寻址以支持与服务的通信。特别地,虚拟交换机命名空间121可以识别与服务122相关联的数据包中的目的地地址,并且转换该数据包的寻址以支持与服务122的通信。
图2示出了根据一种实现的底层网络操作200。在随后的段落中,参照图1的计算环境100的系统和元件,附带引用了操作200的过程。
如所描绘的,操作200在第一命名空间的第一接口处接收(201)数据包,其中第一接口与第二命名空间的第二接口配对。参照图1,虚拟交换机命名空间121包括配对的接口131,其与用户命名空间接口130配对。接口(虚拟网络接口)的这种配对确保了经由用户命名空间接口130传输的任何通信都将被配对的接口131接收。类似地,当通过配对的接口131发送通信时,该通信将由用户命名空间接口130接收。作为该配置的结果,在用户命名空间120内执行的应用程序和服务可以进行通信,就好像用户命名空间接口130是虚拟机的网络接口。
一旦在虚拟交换机命名空间121处接收到数据包,底层操作200进一步包括识别(202)所接收的数据包的目的地。特别地,在配对的接口131处接收到的数据包可以包括寻址信息,诸如与虚拟机的覆盖网络地址相关联的源互联网协议(IP)地址,目的地计算节点的目的地IP地址,源和目的地端口寻址信息,以及任何其他类似的寻址信息。一旦识别出数据包的目的地(例如,数据包的目的地IP地址),操作200确定(203)数据包的目的地是否对应于用户命名空间120的覆盖网络之外的底层网络中的服务。在一些实现中,虚拟交换机命名空间121可以维护至少一个数据结构,以识别与底层网络中的服务相对应的目的地地址。如果使用一个或更多个数据结构识别出与底层网络中的服务相对应的目的地网络地址,则操作200可以修改(205)数据包中的寻址以支持底层网络,并且使用修改后的寻址将数据包转发到底层网络目的地。
在一些实现中,在修改网络寻址中,虚拟交换机命名空间121可以执行源网络地址转换,其可以将与用户命名空间120相关联的源IP地址转换为与VNIC 135和虚拟机110相关联的第二源IP地址。结果,当在服务122处接收到通信时,服务122可以识别虚拟机110的与底层网络上的虚拟机的地址相对应的适当的源IP地址。此外,当从服务122返回通信时,底层操作200可用于将VNIC 135和虚拟机110的底层IP地址转换为与用户命名空间120相关联的覆盖IP地址。一旦转换后,来自服务122的数据包可以使用配对的接口131提供给用户命名空间120。
除了识别去往底层网络上的服务的数据包之外,底层操作200还可以识别对应于覆盖网络目的地的目的地。在这些示例中,底层操作200可以封装(204)数据包并将经封装的数据包转发到覆盖目的地,而不是替代数据包的寻址信息。例如,如果用户命名空间120中的应用程序正在与同一覆盖网络上的第二虚拟机通信,则底层操作200可以封装在配对的接口131处接收到的数据包,并使用VNIC 135将通信转发给第二虚拟机。该封装可以包括向数据包添加附加报头信息,例如虚拟机的底层源和目的地网络寻址、端口寻址等。
图3示出了根据一种实现的从虚拟机发送通信的操作场景300。操作场景300包括图1的计算环境100的用户命名空间接口130、配对的接口131、底层操作200和VNIC 135。
如所描绘的,用户接口130可以向配对的接口131提供数据包,其中接口130-131包括veth对或网桥,使得在用户命名空间接口130处发送的数据被单独的命名空间中配对的接口131接收。同样,在配对的接口131处发送的数据将被传递到用户命名空间接口130。该配对可确保虚拟交换机命名空间121可以管理用户命名空间120中的应用程序和服务通信的数据。一旦为操作200在配对的接口131处接收到数据包,则操作200确定是否将包定向到底层网络中的服务节点。如果数据包被定向到底层网络中的服务节点,则操作200在经由VNIC 135发送数据包之前修改数据包的寻址。
在一些实现中,在确定数据包是去往底层网络目的地还是覆盖网络目的地时,底层操作200可以执行数据包检查以识别用于通信的目的地地址。当目的地地址对应于用户命名空间的覆盖网络目的地(例如,覆盖网络中的第二虚拟机)时,可以封装数据包并经由VNIC 135转发到覆盖网络目的地。该封装可以包括将附加报头信息添加到数据包,例如底层网络寻址。相反,如果数据包的目的地地址对应于底层网络中的服务,则可以将数据包中的源地址从与覆盖网络相关联的源地址转换为与底层网络相关联的源地址。一旦转换后,经修改的数据包可以经由VNIC 135转发到底层网络中的服务。
参照使用图1的服务122的示例,当将数据包从虚拟机110传送到服务122时,需要底层操作200以将数据包中的源地址从与覆盖网络(和用户命名空间120)相关联的源地址转换到与底层网络和VNIC 135相关联的第二源地址。一旦转换,可以将数据包传送到服务122。以这种方式,不是封装数据包(其用于同一覆盖网络上的虚拟机之间的通信),而是可以修改数据包以支持底层网络目的地。
在一些实现中,一旦虚拟机已经使用转换后的源网络地址传输了通信,则也可以从目的地服务接收通信。例如,如果虚拟机110使用虚拟机110的转换后的源地址向服务122发送了传出通信,则当服务122响应该通信时,可能要求虚拟交换机命名空间121将通信从与VNIC 135相关联的地址(底层地址)转换到与用户命名空间120相关联的地址(覆盖地址)。因此,在外向通信中,可以将用户命名空间120的源地址转换为与虚拟机110相关联的第二地址并分配给VNIC 135,在返回通信中,可以将目的地地址从与虚拟机110相关联的第二地址转换回与用户命名空间120相关联的源地址。有利地,这允许虚拟交换机命名空间121充当透明操作,来转换对用户命名空间120的寻址,以与服务122交互。
在许多实现中,虚拟交换机命名空间可用于维护定义每个通信起源的状态信息。特别地,当在用户命名空间中针对底层网络中的目的地发起通信请求时,该通信请求可以使源地址从覆盖网络转换为与底层网络相关联的源地址。相反,当在虚拟交换机命名空间中发起通信请求时(例如,与虚拟交换机管理器或另一虚拟交换机的通信),该通信的源地址将已经包括底层网络源地址。结果,当接收到通信时,通过维护状态信息(例如,通过在答复时在发出数据包中使用映射到传输协议目的地端口的传输协议源端口),虚拟交换机命名空间可以确定在将数据包转发到用户命名空间之前,是否将目的地地址从虚拟交换机命名空间地址(底层地址)转换为用户命名空间地址(覆盖地址)。
图4示出了根据一种实现的在虚拟机处接收通信的操作场景。操作场景400包括图1的计算环境100的用户命名空间接口130、配对的接口131、底层操作200和VNIC 135。
如所描绘的,VNIC 135被配置为从其他虚拟计算元件、物理计算系统以及由云服务提供商提供的服务接收通信。当接收到数据包时,底层操作200识别该数据包并确定该数据包是否对应于底层网络源。例如,如果数据包是从与虚拟机110相同的覆盖网络的虚拟机传输的,则基于该数据包包括封装的覆盖数据包,该数据包将被识别为与覆盖网络相对应。相反,如果数据包是从服务122传递的,则该数据包的源将被识别为底层源,因为覆盖数据包不会被封装在接收到的数据包内。当从底层源(诸如服务122)接收到数据包时,底层操作可以首先确定该数据包是否发往虚拟交换机命名空间而不是用户命名空间中的服务,其中可以基于目的地端口、源端口、协议或数据包的一些其他信息进行确定。如果该数据包发往虚拟交换机命名空间中的服务,则可以在虚拟交换机命名空间中本地处理该数据包。相反,如果确定数据包发往用户命名空间,则底层操作可以将与虚拟交换机命名空间相关联的底层地址替换为与用户命名空间相关联的覆盖地址。一旦替换,该数据包可以被转发到用户命名空间。
一旦检查了数据包,并且如果确定数据包对应于底层网络,则底层操作200可以修改数据包的寻址以支持用户命名空间120。特别地,用户命名空间120可以与不同的IP地址相关联,而不是与虚拟交换机命名空间121的VNIC 135相关联。作为此配置的结果,当接收到一数据包,该数据包具有与虚拟机的IP地址相对应的目的地IP地址和与覆盖网络中的服务相对应的源,则可以将目的地IP地址从虚拟机的IP地址转换为与用户命名空间120相关联的IP地址。一旦经转换,可以将数据包转发到配对的接口131,其中数据包被提供给用户命名空间接口130。
作为说明性示例,可以使用由云服务提供商提供的负载平衡服务,其中该负载平衡服务可以在底层网络而不是虚拟机的覆盖网络上运行。因此,当负载平衡服务将数据包转发到虚拟机110时,可以使用虚拟交换机命名空间121检查该数据包。在检查期间,虚拟交换机命名空间121可以识别该数据包是否源自底层网络服务并且目标为用户命名空间,以及数据包是否与底层网络源相对应并且目标为用户命名空间,将目的地IP地址(与虚拟交换机命名空间相关联的虚拟机底层IP地址)转换为与用户命名空间120相关联的IP地址(覆盖IP地址)。一旦转换,该数据包就可以经由配对的接口131转发到用户命名空间120。
在一些实现中,在识别数据包是否源自底层网络服务并且目标为用户命名空间时,虚拟交换机命名空间可以首先确定底层数据包是否封装了覆盖数据包。如果被封装,则覆盖数据包可以从底层数据包中提取,并提供给用户命名空间。相反,如果底层数据包没有封装覆盖数据包,则虚拟交换机命名空间可以确定该数据包是否发往虚拟交换机命名空间内的服务(例如,该数据包来自虚拟交换机控制器、第二虚拟交换机等)。如果去往服务,则可以在虚拟交换机命名空间内本地处理该数据包,但是,如果该数据包不是发往服务,则该虚拟交换机命名空间可以将目的地IP地址从与虚拟交换机命名空间相关联的底层地址转换为与用户命名空间相关联的覆盖地址。
在将数据包传输到用户命名空间120之后,在用户命名空间120中执行的应用程序和服务可以将响应数据包传输到同一服务。在该示例中,可以向返回数据包提供与用户命名空间120相关联的源网络地址(覆盖地址)。当返回数据包被识别出时,底层操作可以将与用户命名空间120相关联的地址(覆盖地址)转换为与VNIC 135和虚拟交换机命名空间121相关联的地址(底层地址)。一旦转换后,就可以经由VNIC 135将数据包转发到服务。以这种方式,虚拟交换机命名空间121充当透明操作,以转换对用户命名空间120的寻址,以与覆盖网络外部的服务进行交互。
尽管前面的示例描述了转换数据包的目的地网络地址的配置,但是应该理解,并非所有接收到的数据包都转换为第二目的地地址。特别地,如果接收到的数据包不对应于底层网络服务,则可以将该数据包解封装并经由配对的接口131和用户命名空间接口130提供给用户命名空间120。这将确保在VNIC 135处接收到的封装的覆盖数据包被提供给用户命名空间120解封装。例如,如果覆盖网络上的第二虚拟机与虚拟机110通信,则可以使用虚拟交换机命名空间来封装来自第二虚拟机上的用户命名空间的数据包。一旦在VNIC 135处接收到该数据包,虚拟交换机命名空间121就可以识别该数据包包括封装的覆盖数据包,并且在将该数据包经由接口130-131提供给用户命名空间120之前解封装该数据包。
图5示出了根据一种实现的用于虚拟机的数据包通信概述500。数据包通信概述500表示由虚拟机的虚拟交换机命名空间对从用户命名空间(在一些示例中为虚拟机的根命名空间)提供的数据包执行的操作。概述500代表数据包从用户命名空间传送到底层网络服务,并包括数据包505、转换操作530、配对的接口540和VNIC 541。
在操作中,配对的接口540与用于虚拟机的用户命名空间的第二接口配对,其中配对的接口包括虚拟网络接口,其允许数据在两个命名空间之间进行通信。当在配对的接口540处接收到数据包(诸如数据包505)时,虚拟交换机命名空间可以确定该数据包是否定向到基于云的服务。在此,数据包505包括第一寻址520和数据有效载荷510。响应于虚拟交换机命名空间确定该数据包发往底层服务,转换操作530用于将第一寻址520转换为第二寻址521。
在一些实现中,在确定数据包的目的地时,虚拟交换机命名空间可以执行数据包检查以确定与数据包相关联的目的地网络地址。如果目的地对应于底层网络的服务,则虚拟交换机命名空间可以将数据包的源地址转换为第二源地址。特别地,可以为虚拟机和VNIC 541分配第一网络地址,而用户命名空间可以使用第二网络地址。因此,当识别出与底层网络服务相对应的数据包时,转换操作530可以用于将与用户命名空间相关联的源地址转换为与虚拟机和虚拟交换机命名空间相关联的第二源地址。一旦转换后,就可以经由具有第二寻址521和数据有效载荷510的VNIC 541来传送数据包505。
尽管在先前的示例中进行了说明,但是当从虚拟机传送数据包时,应该理解,可以对在VNIC 541处接收到的数据包执行类似的操作。特别地,当在VNIC 541处接收到源自底层网络服务(例如负载平衡器)的数据包时,则转换操作530可用于将与虚拟机相关联的地址转换为与用户命名空间相关联的地址。一旦转换后,数据包就可以经由配对的接口540传递到用户命名空间。作为该配置的结果,虚拟交换机命名空间可以透明地提供对数据包的转换操作,以提供用户命名空间和不驻留在覆盖网络上的服务之间的连接性。
图6示出了根据一种实现的用于虚拟机的数据包通信概述600。数据包通信概述600表示由虚拟机的虚拟交换机命名空间(例如,图1的虚拟交换机命名空间121)执行的操作。概述600表示数据包从也在覆盖网络中的用户命名空间通信到覆盖网络目的地。概述600包括数据包605、封装的数据包606、封装操作630、配对的接口640和VNIC 641。
在操作中,在用户命名空间内操作的服务或应用程序可以生成数据包605,其被通信至作为同一覆盖网络一部分的另一个虚拟机。当数据包被通信时,其通过用户命名空间接口(用户命名空间中的虚拟网络接口)被传输到虚拟机的虚拟交换机命名空间中的配对的接口640。一旦接收到,虚拟交换机命名空间就可以确定数据包的目的地(例如,互联网目的地、底层服务目的地或者覆盖网络中的另一个虚拟机或容器)。一旦确定了目的地,则在一些经由数据包检查的实现中,可以在经由VNIC 641传输数据包之前对数据包605执行动作。在此,因为第一寻址620中的数据包605的目的地对应于覆盖网络内的目的地,因此对数据包执行封装操作630。该封装可以包括为数据包605添加附加的报头信息,例如源和目的地寻址、端口信息等。一旦完成封装,就可以经由VNIC 641传送该数据包。
尽管此示例使用了从VNIC 641传输数据包,但是应该理解,可以对在虚拟机的VNIC 641处接收的数据包执行类似的操作。特别地,可以传送源自属于覆盖网络的其他虚拟节点的封装的数据包。响应于接收到封装的数据包,虚拟交换机命名空间可以基于数据包检查(例如,数据包中的源/目的地寻址信息)来确定该数据包是否对应于封装的数据包,并且可以解封装该数据包。一旦解封装,该数据包可以被转发到配对的接口640,其中该数据包可以在用户命名空间中被接收以便由命名空间中的服务和应用程序进行处理。在提供虚拟交换机作为虚拟机内的命名空间时,可以为虚拟机上的应用程序透明地封装和解封装去往和来自虚拟机的应用程序的通信。因此,可能不需要应用程序来识别通信的任何底层配置。
图7示出了根据一种实现的主机计算系统700。主机计算系统700表示可以实现本文所公开的主机的各种操作架构、过程、场景和序列的任何计算系统或系统。主机计算系统700是图1的虚拟机110的示例性主机,但是可以存在其他示例。主机计算系统700包括存储系统745、处理系统750和通信接口760。处理系统750可操作地链接到通信接口760和存储系统745。在一些实现中,通信接口760可以可通信地链接到存储系统745。主机计算系统700可以进一步包括为清楚起见未示出的其他组件,例如电池和外壳。
通信接口760包括通过通信链路进行通信的组件,例如网卡、端口、射频(RF)、处理电路和软件或某些其他通信设备。通信接口760可以被配置为通过金属、无线或光学链路进行通信。通信接口760可以被配置为使用时分复用(TDM)、互联网协议(IP)、以太网、光网络、无线协议、通信信令或一些其他通信格式—包括其组合。通信接口760是物理网络接口150的示例,并且可以被配置为与计算环境中的其他主机计算系统通信,并且还可以被配置为与一个或更多个其他联网的计算系统和设备通信。
处理系统750包括微处理器和从存储系统745检索并执行操作软件的其他电路。存储系统745可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储系统745可以被实现为单个存储设备,但是也可以跨多个存储设备或子系统被实现。存储系统745可以包括附加元件,例如用于从存储系统读取操作软件的控制器。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘和闪存,以及它们的任何组合或变形,或任何其他类型的存储介质。在一些实现中,存储介质可以是非暂时性存储介质。在某些情况下,至少一部分存储介质可以是暂时性的。应当理解,在任何情况下,存储介质都不是传播的信号。
处理系统750通常安装在还可以容纳存储系统的电路板上。存储系统745的操作软件包括计算机程序、固件或某种其他形式的机器可读程序指令。存储系统745的操作软件包括虚拟机平台730、虚拟机735和一个或更多个虚拟机736。虚拟机735还包括用户命名空间720和虚拟交换机命名空间721。存储系统745上的操作软件可以进一步包括操作系统、实用程序、驱动程序、网络接口、应用程序或某些其他类型的软件。当由处理系统750读取并执行时,存储系统745上的操作软件指示主机计算系统700如本文所述进行操作。
在至少一种实现中,虚拟机平台730可以包括管理程序和至少一个虚拟交换机,当由处理系统750读取和执行时,为虚拟机735-736提供执行平台,并为虚拟机735-736与其他虚拟节点、服务和外部计算系统提供连接性。特别地,可以使用虚拟机平台730来抽象主机计算系统700的物理组件,并向虚拟机735-736提供虚拟组件,例如处理系统、存储系统、网络接口等。另外,虚拟机平台730可以提供软件定义的联网操作,例如针对虚拟机的防火墙、交换和路由操作。
在本实现中,除了由虚拟机平台730提供的软件定义的联网之外,虚拟机735还包括虚拟交换机命名空间721。特别地,虚拟交换机命名空间721可以包括逻辑上映射到由虚拟机平台730提供的虚拟交换机的VNIC,并且可以进一步包括配对的接口,该配对的接口与用户命名空间720中的接口配对。在操作中,虚拟交换机命名空间721在由处理系统750读取和执行时,指示处理系统750接收在用户命名空间720中生成的数据包并通过配对接口通信。一旦识别出,虚拟交换机命名空间721将确定该数据包是否对应于底层网络目的地服务,例如负载平衡器、数据库或其他未驻留在用户命名空间720的覆盖网络中的其他类似服务。例如,用户命名空间720可以与第一网络地址(IP地址)相关联,该第一网络地址是用于与其他虚拟机和/或容器进行通信的覆盖网络的一部分。然而,当通信针对服务(诸如负载平衡服务)时,负载平衡服务可能不能够识别与用户命名空间720相关联的覆盖网络源地址。结果,当通信定向到用户命名空间720的底层网络中的服务时,虚拟交换机命名空间721可以将与用户命名空间720相关联的源地址转换为与虚拟机735的VNIC相关联的第二源地址。一旦转换并用所需的源地址修改了数据包,可以通过虚拟机的VNIC将通信转发到目的地服务。
尽管这是修改外发数据包的寻址的示例,但是应该理解,可以为进入数据包提供类似的操作。特别地,当在虚拟交换机命名空间721的VNIC处接收到数据包时,命名空间可以确定该数据包是否源自底层网络服务,例如负载平衡服务。例如,云服务提供商可以提供无法添加到虚拟机的覆盖网络的负载平衡服务。作为此配置的结果,当从服务中识别出通信时,需要虚拟交换机命名空间721将数据包的目的地地址转换为与用户命名空间720相关联的地址。例如,当服务与虚拟机735通信时,通信可以使用与虚拟机的VNIC相关联的IP地址。但是,在数据包被提供给命名空间之前,可能需要将此地址转换为与用户命名空间720相关联的覆盖IP地址。
虽然在先前的示例中被示为与底层网络的服务通信数据,但是虚拟交换机命名空间721可以进一步配置为管理在覆盖网络的节点之间通信的数据包。特别地,如果虚拟机735与同一覆盖网络上的另一虚拟机通信,则虚拟交换机命名空间721可以在将数据包传输到另一虚拟机之前封装来自用户命名空间720的通信数据包。另外,当从在覆盖网络上运行的第二虚拟机接收到数据包时,虚拟交换机命名空间721可以在将该数据包提供给用户命名空间720之前解封装该数据包。
本文包括的说明书和附图描绘了所要求保护的一个或更多个发明的具体实现。为了教导发明原理,已经简化或省略了一些常规方面。另外,可以理解,来自这些实现的一些变型落入本发明的范围内。还可以理解,上述特征可以以各种方式组合以形成多个实现。结果,本发明不限于上述的具体实现,而是仅由权利要求书及其等同物限制。

Claims (20)

1.一种管理虚拟机的第一命名空间中的数据包寻址的方法,所述方法包括:
在所述第一命名空间的第一接口处接收数据包,其中所述第一接口与第二命名空间的第二接口配对;
识别所述数据包是否发往所述第二命名空间的覆盖网络之外的底层网络中的服务节点;
如果所述数据包发往底层网络中的服务节点,则修改所述数据包中的寻址以支持所述底层网络,并通过所述虚拟机的虚拟网络接口传输所述数据包。
2.根据权利要求1所述的方法,其中修改所述数据包中的所述寻址以支持所述底层网络包括:将与所述覆盖网络相关联的第一源地址转换为与所述底层网络相关联的第二源地址。
3.根据权利要求2所述的方法,其中所述第一源地址和所述第二源地址包括互联网协议(IP)地址。
4.根据权利要求2所述的方法,还包括:
从所述服务节点接收返回数据包;以及
将与所述底层网络相关联的所述第二源地址转换为与所述覆盖网络相关联的所述第一源地址,并经由所述第一接口将所述返回数据包传输至所述第二命名空间。
5.根据权利要求1所述的方法,还包括:
识别所述数据包是否发往所述覆盖网络中的节点;以及
如果所述数据包发往所述覆盖网络中的节点,则封装所述数据包并传输经封装的所述数据包。
6.根据权利要求1所述的方法,其中所述服务节点包括负载均衡器。
7.根据权利要求1所述的方法,其中所述服务节点包括容器或虚拟机。
8.根据权利要求1所述的方法,其中所述第二命名空间包括所述虚拟机的根命名空间。
9.一种装置,包括:
存储系统;
处理系统,可操作地耦合到所述存储系统;
存储在所述存储系统上的程序指令,用于管理虚拟机的第一命名空间中的数据包寻址,所述程序指令在由所述处理系统读取并执行时,指示所述处理系统至少:
在所述第一命名空间的第一接口处接收数据包,其中所述第一接口与第二命名空间的第二接口配对;
识别所述数据包是否发往所述第二命名空间的覆盖网络之外的底层网络中的服务节点;
如果所述数据包发往所述第二命名空间的覆盖网络之外的底层网络中的服务节点,则修改所述数据包中的寻址以支持所述底层网络,并通过所述虚拟机的虚拟网络接口传输所述数据包。
10.根据权利要求9所述的装置,其中修改所述数据包中的所述寻址以支持所述底层网络包括:将与所述覆盖网络相关联的第一源地址转换为与所述底层网络相关联的第二源地址。
11.根据权利要求10所述的装置,其中所述第一源地址和所述第二源地址包括互联网协议(IP)地址。
12.根据权利要求10所述的装置,其中所述程序指令还指示所述处理系统:
从所述服务节点接收返回数据包;以及
将与所述底层网络相关联的所述第二源地址转换为与所述覆盖网络相关联的所述第一源地址,并经由所述第一接口将所述返回数据包传输至所述第二命名空间。
13.根据权利要求9所述的装置,其中所述程序指令还指示所述处理系统:
识别所述数据包是否发往所述覆盖网络中的节点;以及
如果所述数据包发往所述覆盖网络中的节点,则封装所述数据包并将经封装的所述数据包传输至所述覆盖网络中的节点。
14.根据权利要求9所述的装置,其中所述服务节点包括负载均衡器。
15.根据权利要求9所述的装置,其中所述服务节点包括容器或虚拟机。
16.根据权利要求9所述的装置,其中所述第二命名空间包括所述虚拟机的根命名空间。
17.一种装置,包括:
一个或更多个非暂时性计算机可读存储介质;
存储在所述一个或更多个非暂时性计算机可读存储介质上的程序指令,用于管理虚拟机的第一命名空间中的数据包寻址,所述程序指令在由处理系统读取并执行时,指示所述处理系统至少:
在所述第一命名空间的第一接口处接收数据包,其中所述第一接口与第二命名空间的第二接口配对;
识别所述数据包是否发往所述第二命名空间的覆盖网络之外的底层网络中的服务节点;
如果所述数据包发往所述第二命名空间的覆盖网络之外的底层网络中的服务节点,则修改所述数据包中的寻址以支持所述底层网络,并通过所述虚拟机的虚拟网络接口传输所述数据包。
18.根据权利要求17所述的装置,其中修改所述数据包中的所述寻址以支持所述底层网络包括:将与所述覆盖网络相关联的第一源地址转换为与所述底层网络相关联的第二源地址。
19.根据权利要求18所述的装置,其中所述第一源地址和所述第二源地址包括互联网协议(IP)地址。
20.根据权利要求18所述的装置,其中所述程序指令还指示所述处理系统:
从所述服务节点接收返回数据包;以及
将与所述底层网络相关联的所述第二源地址转换为与所述覆盖网络相关联的所述第一源地址,并经由所述第一接口将所述返回数据包传输至所述第二命名空间。
CN201880052441.2A 2017-08-14 2018-08-13 管理云计算服务端点和虚拟机之间的网络连接性 Active CN110999265B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/676,410 2017-08-14
US15/676,410 US10819675B2 (en) 2017-08-14 2017-08-14 Managing network connectivity between cloud computing service endpoints and virtual machines
PCT/US2018/046550 WO2019036381A1 (en) 2017-08-14 2018-08-13 MANAGING NETWORK CONNECTIVITY BETWEEN CLOUD COMPUTING SERVICE END POINTS AND VIRTUAL MACHINES

Publications (2)

Publication Number Publication Date
CN110999265A true CN110999265A (zh) 2020-04-10
CN110999265B CN110999265B (zh) 2021-10-08

Family

ID=63405489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880052441.2A Active CN110999265B (zh) 2017-08-14 2018-08-13 管理云计算服务端点和虚拟机之间的网络连接性

Country Status (4)

Country Link
US (2) US10819675B2 (zh)
EP (1) EP3669532B1 (zh)
CN (1) CN110999265B (zh)
WO (1) WO2019036381A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023016250A1 (zh) * 2021-08-09 2023-02-16 北京字节跳动网络技术有限公司 云服务控制系统、方法、装置、电子设备和存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10530747B2 (en) * 2017-01-13 2020-01-07 Citrix Systems, Inc. Systems and methods to run user space network stack inside docker container while bypassing container Linux network stack
US10880112B2 (en) * 2017-12-31 2020-12-29 Arista Networks, Inc. Multicast traffic in a virtual extensible local area network (VXLAN)
US11057459B2 (en) * 2018-06-06 2021-07-06 Vmware, Inc. Datapath-driven fully distributed east-west application load balancer
US11336733B2 (en) 2018-06-21 2022-05-17 Nicira, Inc. Networking connection management based on container identification
US10826916B2 (en) * 2018-09-17 2020-11-03 ShieldX Networks, Inc. Agent-less network traffic inspection using an overlay network
US10862804B2 (en) * 2018-10-09 2020-12-08 Colotokens Inc. Redirecting data packets between overlay network and underlay network
CN112671628B (zh) * 2019-10-15 2023-06-02 华为云计算技术有限公司 业务服务提供方法及系统
US11671347B2 (en) * 2020-09-30 2023-06-06 Vmware, Inc. On-demand packet redirection
CN112187671B (zh) * 2020-11-05 2024-03-12 北京金山云网络技术有限公司 一种网络接入方法及其相关设备
US20220182318A1 (en) * 2020-12-04 2022-06-09 Oracle International Corporation Support server high availability with network link bonding for cloud overlay networks
US11818104B2 (en) * 2022-03-01 2023-11-14 Netnut, Ltd. Anonymous proxying

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120307828A1 (en) * 2011-06-06 2012-12-06 Broadcom Corporation Method and System of Frame Forwarding with Link Aggregation in Distributed Ethernet Bridges
US20150381485A1 (en) * 2014-06-27 2015-12-31 International Business Machines Corporation Overlay Switch
US20160352633A1 (en) * 2015-05-27 2016-12-01 Cisco Technology, Inc. Operations, administration and management (oam) in overlay data center environments

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8867403B2 (en) * 2011-08-18 2014-10-21 International Business Machines Corporation Virtual network overlays
US9432287B2 (en) * 2013-03-12 2016-08-30 International Business Machines Corporation Virtual gateways and implicit routing in distributed overlay virtual environments
US9438670B2 (en) * 2013-03-13 2016-09-06 International Business Machines Corporation Data replication for a virtual networking system
US9686180B2 (en) * 2013-11-05 2017-06-20 Cisco Technology, Inc. Managing routing information for tunnel endpoints in overlay networks
US10708342B2 (en) * 2015-02-27 2020-07-07 Cisco Technology, Inc. Dynamic troubleshooting workspaces for cloud and network management systems
US9922201B2 (en) * 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
KR102120567B1 (ko) * 2015-06-22 2020-06-08 시스딕, 인크. 컨테이너들에서 고립된 애플리케이션들의 모니터링
US9838314B1 (en) * 2016-05-16 2017-12-05 Cisco Technology, Inc. Contextual service mobility in an enterprise fabric network environment
US10397136B2 (en) * 2016-08-27 2019-08-27 Nicira, Inc. Managed forwarding element executing in separate namespace of public cloud data compute node than workload application
US10686568B2 (en) * 2016-12-29 2020-06-16 Microsoft Technology Licensing, Llc Active flow diagnostics for cloud-hosted networks
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
US10855531B2 (en) * 2018-08-30 2020-12-01 Juniper Networks, Inc. Multiple networks for virtual execution elements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120307828A1 (en) * 2011-06-06 2012-12-06 Broadcom Corporation Method and System of Frame Forwarding with Link Aggregation in Distributed Ethernet Bridges
US20150381485A1 (en) * 2014-06-27 2015-12-31 International Business Machines Corporation Overlay Switch
US20160352633A1 (en) * 2015-05-27 2016-12-01 Cisco Technology, Inc. Operations, administration and management (oam) in overlay data center environments

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZHANG ZHE等: "Lark: Bringing Network Awareness to High Throughput Computing", 《2015 15TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND GRID COMPUTING》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023016250A1 (zh) * 2021-08-09 2023-02-16 北京字节跳动网络技术有限公司 云服务控制系统、方法、装置、电子设备和存储介质
CN115914389A (zh) * 2021-08-09 2023-04-04 北京字节跳动网络技术有限公司 云服务控制系统、方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
US20190052598A1 (en) 2019-02-14
US20210029077A1 (en) 2021-01-28
US10819675B2 (en) 2020-10-27
CN110999265B (zh) 2021-10-08
WO2019036381A1 (en) 2019-02-21
EP3669532B1 (en) 2022-10-26
US11374899B2 (en) 2022-06-28
EP3669532A1 (en) 2020-06-24

Similar Documents

Publication Publication Date Title
CN110999265B (zh) 管理云计算服务端点和虚拟机之间的网络连接性
US10541836B2 (en) Virtual gateways and implicit routing in distributed overlay virtual environments
US11108593B2 (en) Methods and systems to offload overlay network packet encapsulation to hardware
US11546288B2 (en) Techniques for managing software defined networking controller in-band communications in a data center network
CN110506411B (zh) 虚拟计算环境中用于使用逻辑端口提供分组实施的方法和系统
US10158502B2 (en) Network device that relays communication
US9825900B2 (en) Overlay tunnel information exchange protocol
US10237230B2 (en) Method and system for inspecting network traffic between end points of a zone
US10171357B2 (en) Techniques for managing software defined networking controller in-band communications in a data center network
US9602307B2 (en) Tagging virtual overlay packets in a virtual networking system
US9419897B2 (en) Methods and systems for providing multi-tenancy support for Single Root I/O Virtualization
CN108566445B (zh) 一种报文传输方法及装置
US10461958B2 (en) Packet transmission method and apparatus
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
CN111371666B (zh) 一种处理报文的方法、设备及系统
US9998376B2 (en) Control device, communication system, control method, and non-transitory recording medium
CN113709016B (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