CN105900407A - 在虚拟网络之间路由消息 - Google Patents

在虚拟网络之间路由消息 Download PDF

Info

Publication number
CN105900407A
CN105900407A CN201480072700.XA CN201480072700A CN105900407A CN 105900407 A CN105900407 A CN 105900407A CN 201480072700 A CN201480072700 A CN 201480072700A CN 105900407 A CN105900407 A CN 105900407A
Authority
CN
China
Prior art keywords
virtual
virtual address
message
destination
address
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
CN201480072700.XA
Other languages
English (en)
Other versions
CN105900407B (zh
Inventor
P·帕特尔
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 CN105900407A publication Critical patent/CN105900407A/zh
Application granted granted Critical
Publication of CN105900407B publication Critical patent/CN105900407B/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/106Mapping addresses of different types across networks, e.g. mapping telephone numbers to data network addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

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

使用一个虚拟网络中的虚拟地址到另一虚拟网络的虚拟地址的映射来在各虚拟网络间路由消息。每个虚拟网络具有一有效虚拟地址集,其中一些虚拟地址被分配给相应网络内的虚拟节点。当一虚拟网络标识要被发送的消息时,该虚拟网络标识该消息的目的地。一些目的地可能在该同一虚拟网络内,且从而可被路由到该虚拟网络内的虚拟节点。其它目的地相反可能被映射到另一虚拟网络的虚拟地址。在该情况下,路由信息也可被获得且该消息可被分派到该另一虚拟网络的虚拟地址。这可在网关的需要的情况下执行,网关发布全局唯一的公共地址。

Description

在虚拟网络之间路由消息
背景
在任何给定物理网络中,向每个节点提供被称为网际协议(或即“IP”)地址的地址。每个节点的地址在该物理网络的域内被发布,以使得节点可被正确标识,且网络消息(例如IP分组)可在该物理网络内被正确地路由。物理节点对应于实际的物理组件,诸如服务器、网络接口卡、交换机等。
一个或多个虚拟网络可被覆盖在物理网络上。然而,在虚拟网络中,节点(在本文中被称为“虚拟节点”)是能够处理信息但可能不囿于任何物理边界的组件。例如,节点可以是软件组件、应用、虚拟机、虚拟交换机、管理程序、或能够发送和/或接收网络消息的任何其它组件。
在物理网络中操作的虚拟网络层将底层物理网络的性质抽象化为虚拟节点。具体而言,虚拟网络层保持跟踪被分配给每个虚拟节点的地址(即,虚拟地址),并将虚拟地址与该物理节点(例如交换机)的适用的物理地址相关联。
此处要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实现所述一些实施例的一个示例性技术领域。
简要概述
本文描述的至少一些实施例涉及使用一个虚拟网络中的虚拟地址到另一虚拟网络的虚拟地址的映射来在各虚拟网络间路由消息。每个虚拟网络具有一有效虚拟地址集,其中一些虚拟地址被分配给相应虚拟网络内的虚拟节点。在一个实施例中,这些虚拟网络覆盖同一物理网络。当一虚拟网络标识要被发送的消息时,该虚拟网络标识该消息的目的地。一些目的地可能在该同一虚拟网络内,且从而可被路由到该虚拟网络内的虚拟节点。
其它目的地相反可能被映射到另一虚拟网络的虚拟地址。在该情况下,路由信息也可被获得且该消息可被分派到该另一虚拟网络的虚拟地址。这可在无需网关的情况下被执行,网关发布全局唯一的公共地址。相反,该虚拟网络自身内的逻辑完成虚拟网络之间的消息收发。
提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1示出了其中可采用本文中所描述的原理的示例计算***;
图2示出了包括覆盖一物理网络并彼此通信的多个虚拟网络的网络环境;
图3示出了根据本文描述的原理的用于在虚拟网络之间路由消息的方法的流程图;
图4A抽象地示出在图3的示例中使用的原始消息,该消息包括有效载荷和报头;
图4B抽象地示出将图4A的原始消息与第一封装报头封装在一起的第一经封装消息;以及
图4C抽象地示出将图4B的第一经封装消息与第二封装报头封装在一起的第二经封装消息。
详细描述
本文描述的至少一些实施例涉及使用第一虚拟网络中的虚拟地址到另一虚拟网络的虚拟地址的映射来在虚拟网络间路由消息。每个虚拟网络具有一有效虚拟地址集,其中一些虚拟地址被分配给相应网络内的虚拟节点。在一个实施例中,这些虚拟网络覆盖同一物理网络。当一虚拟网络标识要被发送的消息时,该虚拟网络标识该消息的目的地。一些目的地虚拟地址可能在该同一虚拟网络内,且从而可被路由到该虚拟网络内的虚拟节点。
其它目的地虚拟地址相反可能被映射到另一虚拟网络的虚拟地址。在该情况下,路由信息也可被获得且该消息可被分派到该另一虚拟网络的虚拟地址。这可在无需网关的情况下执行,网关发布全局唯一的公共地址。相反,该虚拟网络自身内的逻辑完成各虚拟网络之间的消息收发。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作或上述动作的次序。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
计算***现在越来越多地采取多种多样的形式。例如,计算***可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算***或甚至常规上不被认为是计算***的设备。在本说明书以及权利要求书中,术语“计算***”被广义地定义为包括任何设备或***(或其组合),该设备或***包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。计算***可以分布在网络环境中,并可包括多个组分计算***。
如图1所例示,在其最基本的配置中,计算***100通常包括至少一个处理单元102和存储器104。存储器104可以是物理***存储器,该物理***存储器可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算***是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
如本文中所使用的,术语“可执行模块”或“可执行组件”可以指可以在计算***上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算***上执行的对象或进程(例如,作为分开的线程)。
在随后的描述中,参考由一个或多个计算***执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算***的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算***的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及***纵的数据)可以存储在计算***100的存储器104中。计算***100还可包含允许计算***100例如通过网络110与其他消息处理器通信的通信信道108。
在此描述的各实施例可包括或利用专用或通用计算机***,该专用或通用计算机***包括诸如例如一个或多个处理器和***存储器等计算机硬件,如以下更详细讨论的。***存储器可被包括在整体存储器104内。***存储器还可被称为“主存储器”,并且包括可被至少一个处理单元102在存储器总线上被寻址的存储器位置,在这种情况下地址位置被声明在存储器总线自身上。***存储器传统上是易失性的,但本文中描述的原理还应用于其中***存储器部分或者甚至全部是非易失性的情况。
本发明范围内的各实施例也包括用于实现或存储计算机可执行指令和/或数据结构的实体及其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机***访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
存储计算机可执行指令和/或数据结构的计算机存储介质是物理硬件存储介质。物理硬件存储介质包括计算机硬件,诸如RAM、ROM、EEPROM、固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的程序代码的任何其他硬件存储介质,其可由通用或专用计算机***访问来实现本发明公开的功能。
传输介质可包括可用于携带计算机可执行指令或数据结构形式的程序代码并可由通用或专用计算机***访问的网络和/或数据链路。“网络”被定义为使得电子数据能够在计算机***和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机***时,该计算机***将该连接视为传输介质。上述的组合应当也被包括在计算机可读介质的范围内。
此外,在到达各种计算机***组件之后,计算机可执行指令或数据结构形式的程序代码可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机***RAM和/或计算机***处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机***组件中。
计算机可执行指令例如包括,当在一个或多个处理器处执行时使通用计算机***、专用计算机***、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。
本领域的技术人员将理解,本文中描述的原理可以在具有许多类型的计算机***配置的网络计算环境中实践,这些计算机***配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器***、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机***两者都执行任务的分布式***环境中实施。如此,在分布式***环境中,计算机***可包括多个组成部分计算机***。在分布式***环境中,程序模块可以位于本地和远程存储器存储设备二者中。
本领域技术人员还将理解本发明可在云计算环境中实践。云计算环境可以是分布式的,但这不是必须的。在分布时,云计算环境可以国际性地分布在一个组织内,和/或具有跨多个组织拥有的组件。在该说明书和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其他多个优点。
图2示出包括多个虚拟网络201的网络环境200。在所示实施例中,有三个虚拟网络被示出,包括虚拟网络201A、虚拟网络201B和虚拟网络201C。然而,省略号201D象征性地表示在网络环境200内可存在任意多个数量(两个或更多个)的虚拟网络201。在所示实施例中,虚拟网络201各自在物理网络220上操作。
每个虚拟网络包括一个或多个虚拟节点。“虚拟节点”是能够处理信息但是可能不囿于任何物理边界的组件(诸如软件模块、对象、函数、方法、其集合、或其组合)。例如,节点可以是软件组件、应用、虚拟机、虚拟交换机、管理程序、或能够发送和/或接收网络消息的任何其它组件。
虚拟网络可包括任意数量的虚拟节点,但是在所示示例中,每个虚拟网络被示出为包括三个虚拟节点。例如,虚拟网络201A包括虚拟节点210A,其包括虚拟节点211A、212A和213A。类似地,虚拟网络201B包括虚拟节点210B,其包括虚拟节点211B、212B和213B。最后,虚拟网络201C包括虚拟节点210C,其包括虚拟节点211C、212C和213C。省略号214A、214B和214C象征性地表示在任何给定虚拟网络内可存在任意数量的虚拟节点,且任何给定虚拟网络中的虚拟节点的数量可随着虚拟节点随时间被终止或者创建而改变。
在所示实施例中,每个虚拟网络包括允许网络消息在虚拟节点之间,包括在虚拟网络之间,被路由的进一步组件。
例如,虚拟网络201A包括查找组件202A,该查找组件标识被虚拟网络201A中的虚拟节点之一传送或者从另一虚拟网络(例如,虚拟网络201B或虚拟网络201C)中的另一虚拟节点传送的消息的目的地虚拟地址。
虚拟网络201A还包括内部路由逻辑203A,该内部路由逻辑被配置成在虚拟网络201A内路由具有与任何内部节点210A相对应的目的地虚拟地址的任何消息。虚拟地址201A还包括内部地址路由信息204A(该内部地址路由信息标识虚拟网络201A内的每个虚拟节点(例如,虚拟节点211A、212A和213A)的虚拟地址)以及被用来向每个虚拟节点路由该消息的任何路由信息。例如,可能存在针对虚拟节点210A的每个虚拟地址的这种路由信息的记录。内部路由逻辑203A可使用内部地址路由信息204A(例如,与目的地虚拟地址相对应的记录)来标识作为该消息的目的地的内部虚拟节点,并将该消息路由到该内部虚拟节点。
虚拟网络201A还包括外部路由逻辑206A,该外部路由逻辑被配置成路由不以虚拟网络201A为目的地的消息。虚拟网络201A还包括对应于另一些虚拟地址的外部地址路由信息205A,这些虚拟地址1)是虚拟网络201A的有效虚拟地址,但是2)各自被映射到对应外部虚拟网络201B或201C中的有效地址。例如,对于多个外部节点中的每个外部节点可能存在包含这种路由信息的记录,虚拟网络201A内的每个虚拟节点210A可与该外部节点通信。
外部路由逻辑206A可使用外部地址路由信息205A(例如,对应于目的地虚拟地址的记录)来标识对应于其它虚拟网络201B和201C中的虚拟节点之一的被映射的虚拟地址。外部路由逻辑206A还可使用外部路由信息205A(例如,对应于目的地虚拟地址的记录)来通过物理网络220将该消息路由至处理该消息的下一虚拟网络的内部路由逻辑(例如,在被映射的虚拟地址在虚拟网络201B内的情况下,该内部路由逻辑为虚拟网络201B的内部路由逻辑202B,或者在被映射的虚拟地址在虚拟网络201C内的情况下,该内部路由逻辑为虚拟网络201C的内部路由逻辑202C)。在一个实施例中,查找组件和外部路由逻辑可被域名服务器(DNS)服务器取代,该DNS服务器被装备为返回被赋予该目的地的名称(例如同一资源定位符)的该被映射的虚拟地址。
注意,用于处理该消息的该下一虚拟网络可以是其中目的地虚拟节点在其中操作的虚拟网络,或者当消息从一个虚拟网络传递到下一虚拟网络时可以仅表示中间点。从而,虚拟网络201B和201C被示出为包括与虚拟网络201A的组件类似的组件。例如,虚拟网络201B包括查找组件202B、内部路由逻辑203B、内部地址路由信息204B、外部地址路由信息205B、以及外部路由逻辑206B,它们可相对于虚拟网络201B执行与以上描述的如由对应组件202A、203A、204A、205A和206A对第一虚拟网络201执行的操作相同的操作。
相应地,由第二虚拟网络201B的查找组件202B接收的消息可类似地取决于是否存在所接收的消息所寻址的内部虚拟节点来1)使用内部路由逻辑203B和内部地址路由信息204B将消息内部路由至虚拟网络201B的虚拟节点210B之一,或者2)使用外部路由逻辑206B和外部地址路由信息205B将该消息外部路由至其它虚拟网络201A或201C的虚拟节点之一。
类似地,由第三虚拟网络201C的查找组件202C接收的消息可取决于是否存在由所接收的消息所寻址的内部虚拟节点来1)使用内部路由逻辑203C和内部地址路由信息204C将消息内部路由至虚拟网络201C的虚拟节点210C之一,或者2)使用外部路由逻辑206C和外部地址路由信息205C将该消息外部路由至其它虚拟网络201A或201B的虚拟节点之一。
从而,消息可在同一虚拟网络内的虚拟节点之间传递,或者可以在不同虚拟网络的虚拟节点之间传递。而且,对于在不同虚拟网络的虚拟节点之间传递的那些消息,这些消息可使用0个或更多个中间虚拟网络来传输。
虚拟网络201A、201B和201C中的每一个分别包括对应的管理组件207A、207B和207C。管理组件207A可被用来配置内部地址路由信息204A和外部地址路由信息205A。例如,通过更改内部路由信息,虚拟节点可在对应的虚拟网络内被创建、终止或配置。通过更改外部路由信息,可使能到一个或多个外部虚拟节点的通信。类似地,管理组件207B可被用来配置内部地址路由信息204B和外部地址路由信息205B。而且,管理组件207C可被用来配置内部地址路由信息204C和外部地址路由信息205C。
在一个实施例中,平滑双向信道可通过将与返回路径相关联的进一步路由信息添加到该外部地址路由信息的相应记录中来创建。例如,考虑其中消息被从第一特定虚拟网络中的第一特定虚拟节点传送到第二特定虚拟网络中的第二特定虚拟节点的情形。
如前所述,第一特定虚拟网络的查找组件接收来自第一特定虚拟节点的消息,并验证目的地虚拟地址对应于外部地址路由信息。第一特定虚拟网络的外部路由逻辑使用与第二特定虚拟节点相对应的被映射的虚拟地址来分派该消息。然而,在这样做之前,记录还可包括与被映射的虚拟地址相对应的返回虚拟地址。返回虚拟地址是第二特定虚拟网络的有效虚拟地址。
在将消息分派到与第二特定虚拟节点相对应的被映射的虚拟地址之前,第一特定虚拟网络的外部路由逻辑修改该消息以使得对该消息的回复被路由至返回虚拟地址。同样,第二特定虚拟网络的外部地址路由信息被类似地更改以使得以返回虚拟地址为目的地的消息被映射到第一特定虚拟节点的虚拟地址。通过修改在两个虚拟网络中的每一个中的外部路由信息,这允许在不同虚拟网络中的两个虚拟节点之间双向通信。这已经被完成,而无需发布公共全局唯一地址。从而,不需要使用网关在不同虚拟网络之间通信。
图3示出了用于将消息从第一特定虚拟网络(例如,图2中的虚拟网络201A)路由到第二特定虚拟网络(例如,图2中的虚拟网络201B)的方法300的流程图。由于方法300可在图2的网络环境200的上下文中执行,所以现将频繁参考图2的网络环境200来描述图3的方法300。具体地,在此示例中,消息被经由第二虚拟网络201B从虚拟节点211A发送到虚拟节点212C(如由四个箭头221到224所表示的),且响应也经由第二虚拟网络201B被发送回去(如由四个箭头225到228所表示的)。
在此示例双向通信中,方法300将被执行六次。方法300的第一实例将消息从第一虚拟网络201A中的源虚拟节点211A传送到第二虚拟网络201B(参见箭头221和222)。方法300的第二实例将消息从第二虚拟网络传送到目标虚拟网络201C(参见箭头223)。方法300的第三实例将消息传送到目标虚拟网络201C中的目标虚拟节点212C(参见箭头224)。
方法300的第四实例将回复从第三虚拟网络201C中的目标虚拟节点212C传送到第二虚拟网络201B(参见箭头225和226)。方法300的第五实例将回复从第二虚拟网络201B传送到源虚拟网络201A(参见箭头227)。方法300的第六且最终实例被执行以将回复传递至源虚拟网络201A中的源虚拟节点211A(如由箭头228所表示的)。
现在将参考图2和箭头221和222来描述方法300的执行的第一实例。执行该方法的虚拟网络(在方法300的这一实例中为虚拟网络201A)接收要被递送的消息(动作301)。该消息的此接收由每个虚拟网络中的查找组件执行,且在一般情况下可包括接收来自创建该消息的源虚拟节点的消息,或可包括接收来自另一虚拟网络的消息。在方法300的第一实例的情况下,第一虚拟网络201A的查找组件202A接收来自源虚拟节点211A的消息(如由箭头221所表示的)。
该虚拟网络随后标识该消息中的目的地虚拟地址(动作302)。此目的地虚拟地址未必且几乎必然不是与目标虚拟网络中的目标虚拟节点的虚拟地址相同的地址。然热,在此点该消息中表达的目的地虚拟地址是被分配到该虚拟网络的有效虚拟地址集合中的有效虚拟地址。例如,在箭头221的情况下,该消息将具有是第一虚拟网络201A的有效虚拟地址之一的目的地虚拟地址。例如,此点的该消息的示例在图4A中被抽象表示。消息400A包括有效载荷401A和报头402A,其中报头包括源虚拟地址403A(用“A”来标记)以及目的地虚拟地址404A(用“B”来标记)。在此示例中,查找组件202A确定目的地虚拟地址为“B”(其可抽象地表示IP地址)。其它地址“A”,“C”,“D”,“E”和“F”可能类似地标记IP地址。
虚拟网络随后访问与该虚拟网络中的目的地虚拟地址相关联的记录(动作303)。例如,第一虚拟网络201A的查找组件202A可访问内部地址路由信息204A和/或外部地址路由信息205A来访问与目的地地址“B”相对应的记录。
该虚拟网络随后确定目的地虚拟地址是否被分配该该同一虚拟网络内的一虚拟节点(在决策框304中为“内部”),该目的地虚拟地址是否被映射到与另一虚拟网络相关联的一虚拟地址(在决策框304中为“外部”)。例如,在图2中,如果记录在内部地址路由信息204A中,则目的地虚拟地址被分配至同一虚拟网络内的虚拟节点(在决策框304中为“内部”)。如果记录在外部地址路由信息205A中,则目的地虚拟地址被映射到另一虚拟网络中的虚拟地址(在决策框304中为“外部”)。被映射的虚拟地址是下一虚拟网络的有效虚拟地址。
如果目的地虚拟地址是内部虚拟地址(在决策框304中为“内部”),则消息被使用包括在与目的地虚拟地址相对应的记录内的潜在信息路由至该虚拟网络内部的虚拟节点(动作305)。例如,这可在图2中使用内部路由逻辑203A来实现。
然而,如果目的地虚拟地址被映射到另一虚拟网络的虚拟地址(在决策框304中为“外部”),则该消息被修改(动作306)以被定址到下一虚拟网络中的被映射的虚拟地址。例如,在图2的示例中,假定虚拟地址“D”是第二虚拟网络201B中的有效虚拟地址,则该消息可被与具有目的地虚拟地址“D”的另一报头封装在一起。而且,为了促成双向通信,该消息也被修改(作为动作306的一部分),以使得当其它虚拟网络处理到该消息的回复时,该回复被发送至下一虚拟网络的有效虚拟地址。
例如,在图2的示例中,假定虚拟地址“C”是第二虚拟网络201B中的有效虚拟地址。在该情况下,封装报头也可包括源虚拟地址“C”。图4B示出已封装消息400B的示例,该已封装消息包括表示整个消息400A的已封装有效载荷401B,且其包括已封装报头402B,该已封装报头包括源虚拟地址403B(被标记为“C”)和目的地虚拟地址404B(被标记为“D”)。
虚拟网络随后将经修改的消息朝向经修改的虚拟地址的目的地虚拟地址路由(动作307)。与原始目的地虚拟地址相关联的记录可包括用于帮助此路由的路由信息。例如,在图2的示例中,外部路由逻辑206A可使用与目的地虚拟地址“B”相关联的记录来通过物理网络220将该消息(如由箭头222所表示的)朝向目的地虚拟地址“D”路由,该目的地虚拟地址是第二虚拟网络201B的有效虚拟地址。
注意,虚拟地址“C”和“D”中的零个、一个或两个也还可以是第一虚拟网络201A的有效虚拟地址。然而,只要虚拟地址“C”和“D”没有被分配给第一虚拟网络201A中的虚拟节点,如本文所述的通信仍旧可被实现。
在图2的示例之外,第一虚拟网络201A可使用方法300任意次来将消息发送到第二虚拟网络201B。而且,只要在外部地址路由信息205内存在针对这样的直接传送的路由信息,则第一虚拟网络201B可使用方法300任意次来将消息发送到第三虚拟网络201C,甚至无需将第二虚拟网络用作中间虚拟网络。
这完成针对该示例的方法300的六个实例中的第一实例,由此描述了可如何执行与箭头221和箭头222相关联的通信。
现在将参考图2和箭头223和箭头222来描述方法300的执行的第二实例。在此情况下,第二虚拟网络201B执行方法300。查找组件202B接收要被递送的消息(动作301),如由箭头222所表示的。查找组件202B随后将目的地虚拟地址标识为虚拟地址“D”(动作302),该虚拟地址“D”为第二虚拟网络201B的有效虚拟地址。查找组件202B随后访问与目的地虚拟地址“D”相关联的记录(动作303)。在此情况下,查找组件202B在外部路由信息内找到记录(决策框304中为“外部”),该记录包括被映射的虚拟地址“E”和“F”两者,这两者都是第三虚拟网络201C的有效虚拟地址。
该消息再次被用源虚拟地址“E”和目的地虚拟地址“F”修改(例如,封装)。图4C示出已双重封装的消息400C的示例,该已双重封装的消息包括表示整个消息400B的有效载荷401C,且其包括第二封装报头402C,该第二封装报头包括源虚拟地址403C(被标记为“E”)和目的地虚拟地址404C(被标记为“F”)。外部路由逻辑206B随后通过物理网络220将经修改的消息(如由箭头223所表示的)朝向目的地虚拟地址“F”路由,该目的地虚拟地址“F”是第三虚拟网络201C的有效虚拟地址。这完成针对该示例的方法300的六个实例中的第二实例,由此描述了可如何执行与箭头223相关联的通信。
现在将参考图2和箭头224来描述方法300的执行的第三实例。在此情况下,第三虚拟网络201C执行方法300。查找组件202C接收要被递送的消息(动作301),如由箭头223所表示的。查找组件202C随后将目的地虚拟地址标识为虚拟地址“F”(动作302),该虚拟地址“F”为第三虚拟网络201C的有效虚拟地址。查找组件202D随后访问与目的地虚拟地址“F”相关联的记录(动作303)。在此情况下,查找组件202B在内部地址路由信息204C内找到记录(在决策框304中为“内部”),其对应于目标虚拟节点212C。内部路由逻辑203C随后被用来将该消息路由到目标虚拟节点(动作305),如由箭头224所表示的。
目标虚拟节点212C接收并处理该消息以生成回复。使用方法300的最后三个实例将回复传递回源虚拟节点211A。然而,在此情况下,该消息是对原始消息的回复。
现在将参考图2和箭头224和225来描述方法300的执行的第四实例。执行方法300的虚拟网络是第三虚拟网络201C。查找组件202C接收来自目标虚拟节点212C的回复消息,如有箭头225所表示的(动作301)。查找组件202C随后将目的地虚拟地址标识为虚拟地址“E”(动作302)。回忆一下,原始消息被修改以使得对该消息的回复将被发送给虚拟地址“E”,虚拟地址“E”为第三虚拟网络201C的有效地址。查找组件202C随后访问与目的地虚拟地址“E”相关联的记录(动作303)。在此情况下,该记录在外部路由信息204C(在决策框304中为“外部”)中,且确定虚拟地址“E”被映射到虚拟地址“C”,虚拟地址“C”为第二虚拟网络201B中的有效虚拟地址。外部路由逻辑206C修改该消息(动作306),以便被分派向虚拟地址“C”(动作307),如由随后的箭头226所表示的。
现在将参考图2和箭头227来描述方法300的执行的第五实例。在此情况下,第二虚拟网络201B执行方法300。查找组件202B接收要被递送的回复消息(动作301),如由箭头226所表示的。查找组件202B随后将目的地虚拟地址标识为虚拟地址“C”(动作302),虚拟地址“C”为第二虚拟网络201B的有效虚拟地址。查找组件202B随后访问与目的地虚拟地址“C”相关联的记录(动作303)。在此情况下,查找组件202B在外部路由信息(在决策框304中为“外部”)内找到记录,其被映射到虚拟地址“A”,该虚拟地址“A”为第一虚拟网络201A中的有效第一地址,且恰好是原始消息的源虚拟节点211A的虚拟地址。外部路由逻辑206B修改该消息(动作306),以便被分派向虚拟地址“A”(动作307),如由箭头227所表示的。
现在将参考图2和箭头228来描述方法300的执行的第六且最后的实例。在此情况下,第一虚拟网络201A执行方法300。查找组件202A接收要被递送的回复消息(动作301),如由箭头227所表示的。查找组件202A随后将目的地虚拟地址标识为虚拟地址“A”(动作302),虚拟地址“A”为第一虚拟网络201A的有效虚拟地址。查找组件202A随后访问与目的地虚拟地址“A”相关联的记录(动作303)。在此情况下,查找组件202A在内部地址路由信息204A内找到记录(在决策框304中为“内部”),其对应于源虚拟节点211A。内部路由逻辑203A随后被用来将该消息路由到源虚拟节点(动作305),如由箭头228所表示的。
相应地,在本文中已经描述了其中虚拟节点可在不使用网关的情况下在虚拟网络之外通信的机制。本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (10)

1.一种用于将消息从第一虚拟网络路由到第二虚拟网络的方法,所述第一虚拟网络具有第一有效虚拟地址集合,所述第一有效虚拟地址集合中的一些有效虚拟地址被分配给所述第一虚拟网络中的虚拟节点,所述第二虚拟网络具有第二有效虚拟地址集合,所述方法包括:
所述第一虚拟网络标识消息的目的地的动作;
访问与所述目的地相关联的记录的动作;
从所述记录确定所述目的地被映射到所述第二虚拟网络的虚拟地址的动作;以及
将所述消息朝向所述第二虚拟网络的所述虚拟地址路由的动作。
2.如权利要求1所述的方法,其特征在于:
标识消息的目的地的动作包括标识所述消息的所述目的地的统一资源定位符的动作;
访问与所述目的地相关联的记录的动作包括访问在所述第一虚拟网络外部的域名服务器内的针对所述统一资源定位符的条目的动作,
其中所述条目将所述统一资源定位符映射到所述第二虚拟网络的所述虚拟地址。
3.如权利要求1所述的方法,其特征在于:
标识消息的目的地的动作包括标识作为所述第一有效虚拟地址集合中的一个虚拟地址的目的地虚拟地址的动作,
与所述目的地相关联的所述记录在所述第一虚拟网络内。
4.如权利要求3所述的方法,其特征在于,路由的动作包括:
将所述消息按以下方式路由的动作:当所述第二虚拟网络处理对所述消息的回复时,所述回复被发送到所述第二虚拟网络的有效虚拟地址。
5.如权利要求3所述的方法,其特征在于,所述第二虚拟网络被配置成使得当具有所述第二虚拟网络的所述有效虚拟地址的回复被处理时,所述回复被朝向所述第一虚拟网络中传送所述消息的虚拟节点路由。
6.如权利要求4所述的方法,其特征在于,所述第二虚拟网络的所述虚拟地址是所述第一虚拟网络的有效虚拟地址,但是尽管如此所述消息仍被路由到所述第二虚拟网络。
7.如权利要求3所述的方法,其特征在于,所述消息为第一消息,所述目的地虚拟地址为第一目的地虚拟地址,所述记录为第一记录,所述第二虚拟网络的所述虚拟地址为所述第二虚拟网络的第一虚拟地址,所述方法进一步包括:
标识针对第二消息的第二目的地虚拟地址的动作,所述第二目的地虚拟地址为所述第一有效虚拟地址集合中的一个虚拟地址;
访问与所述第二目的地虚拟地址相关联的第二记录的动作;
从所述第二记录确定所述第二目的地虚拟地址被映射到所述第二虚拟网络的第二虚拟地址的动作;以及
将所述第二消息朝向所述第二虚拟网络的所述第二虚拟地址路由的动作。
8.如权利要求3所述的方法,其特征在于,所述消息为第一消息,所述目的地虚拟地址为第一目的地虚拟地址,所述记录为第一记录,所述方法进一步包括:
标识针对第二消息的第二目的地虚拟地址的动作,所述第二目的地虚拟地址为所述第一有效虚拟地址集合中的一个虚拟地址;
访问与所述第二目的地虚拟地址相关联的第二记录的动作;
从所述第二记录确定所述第二目的地虚拟地址被映射到第三虚拟网络的虚拟地址的动作;以及
将所述第二消息朝向所述第三虚拟网络的所述虚拟地址路由的动作。
9.如权利要求3所述的方法,其特征在于,所述消息为第一消息,所述目的地虚拟地址为第一目的地虚拟地址,所述记录为第一记录,所述方法进一步包括:
标识针对第二消息的第二目的地虚拟地址的动作;
访问与所述第二目的地虚拟地址相关联的第二记录的动作;
从所述第二记录确定所述第二目的地虚拟地址在所述第一虚拟网络内的动作;以及
将所述第二消息朝向所述第一虚拟网络的所述第二目的地虚拟地址路由的动作。
10.一种包括其上具有一个或多个计算机可执行指令的一个或多个计算机可读存储介质的计算机程序产品,所述一个或多个计算机可执行指令被结构化为使得在被计算***的一个或多个处理器执行时,致使所述计算***执行一种用于支持将虚拟方法从特定虚拟网络传送到一个或多个外部虚拟网络的方法,所述方法包括:
维持针对第一虚拟地址集合的内部路由信息的动作,所述第一虚拟地址集合是所述源虚拟网络的有效虚拟地址且与所述源虚拟网络内的虚拟节点相关联;以及
维持针对第二虚拟地址集合的外部路由信息的动作,所述第二虚拟地址集合是所述源虚拟网络的有效虚拟地址但是每一虚拟地址被映射到相应外部虚拟网络中的有效地址。
CN201480072700.XA 2014-01-08 2014-12-24 用于在虚拟网络之间路由消息的方法和计算机可读存储介质 Active CN105900407B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/150,584 2014-01-08
US14/150,584 US9712438B2 (en) 2014-01-08 2014-01-08 Routing messages between virtual networks
PCT/US2014/072305 WO2015105690A1 (en) 2014-01-08 2014-12-24 Routing messages between virtual networks

Publications (2)

Publication Number Publication Date
CN105900407A true CN105900407A (zh) 2016-08-24
CN105900407B CN105900407B (zh) 2019-06-28

Family

ID=52350379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480072700.XA Active CN105900407B (zh) 2014-01-08 2014-12-24 用于在虚拟网络之间路由消息的方法和计算机可读存储介质

Country Status (5)

Country Link
US (3) US9712438B2 (zh)
EP (1) EP3092753A1 (zh)
CN (1) CN105900407B (zh)
BR (1) BR112016015096B1 (zh)
WO (1) WO2015105690A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245983A (zh) * 2017-07-11 2019-01-18 阿里巴巴集团控股有限公司 一种虚拟网络设备、路由设备及虚拟网络的连接方法
CN110419199A (zh) * 2017-03-08 2019-11-05 华为技术有限公司 使用主动式最短路径的sdn中的扁平化l3路由
CN112688985A (zh) * 2019-10-18 2021-04-20 华为技术有限公司 通信方法及装置
CN113170005A (zh) * 2018-09-13 2021-07-23 瑞典爱立信有限公司 支持在通信上耦接的通信设备的网络中的消息的选择性转发的方法和设备
CN113647065A (zh) * 2019-05-02 2021-11-12 华为技术有限公司 虚拟网络拓扑
CN115314437A (zh) * 2022-06-16 2022-11-08 阿里巴巴(中国)有限公司 容器虚拟网络通信方法和容器虚拟网络

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170142234A1 (en) * 2015-11-13 2017-05-18 Microsoft Technology Licensing, Llc Scalable addressing mechanism for virtual machines
US10778636B2 (en) * 2016-06-28 2020-09-15 ColorTokens, Inc. Dynamic credential based addressing
US10810033B2 (en) * 2017-08-11 2020-10-20 International Business Machines Corporation Propagating external route changes into a cloud network
US10999244B2 (en) * 2018-09-21 2021-05-04 Microsoft Technology Licensing, Llc Mapping a service into a virtual network using source network address translation
CN109739877B (zh) * 2018-11-21 2020-03-31 比亚迪股份有限公司 数据库***和数据管理方法
US11108735B2 (en) * 2019-06-07 2021-08-31 Microsoft Technology Licensing, Llc Mapping subnets in different virtual networks using private address space
US11474846B2 (en) * 2019-07-11 2022-10-18 Microsoft Technology Licensing, Llc Controller for bridging database architectures
CN110519406B (zh) * 2019-08-16 2022-05-17 济南浪潮数据技术有限公司 一种虚拟地址分配方法、装置及ctdb集群和存储介质
US11516291B2 (en) * 2020-09-29 2022-11-29 Cohesity, Inc. Secure communications of storage tenants that share a storage cluster system
US11632268B2 (en) * 2021-03-30 2023-04-18 Juniper Networks, Inc. Generating route target values for virtual private network routes

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186698A1 (en) * 2001-06-12 2002-12-12 Glen Ceniza System to map remote lan hosts to local IP addresses
US20030074472A1 (en) * 2001-10-16 2003-04-17 Lucco Steven E. Relsolving virtual network names
US20100246443A1 (en) * 2009-03-30 2010-09-30 Cohn Daniel T Providing logical networking functionality for managed computer networks
CN102047245A (zh) * 2008-03-31 2011-05-04 亚马逊技术有限公司 配置计算机节点之间的通信
CN102948132A (zh) * 2010-06-22 2013-02-27 微软公司 分布式虚拟网络网关
US8612576B1 (en) * 2010-06-29 2013-12-17 Amazon Technologies, Inc. Wide area network monitoring

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845203A (en) 1996-01-25 1998-12-01 Aertis Cormmunications Remote access application messaging wireless method
US6097719A (en) 1997-03-11 2000-08-01 Bell Atlantic Network Services, Inc. Public IP transport network
US6611872B1 (en) 1999-01-11 2003-08-26 Fastforward Networks, Inc. Performing multicast communication in computer networks by using overlay routing
US7552233B2 (en) 2000-03-16 2009-06-23 Adara Networks, Inc. System and method for information object routing in computer networks
WO2004051944A1 (en) 2002-12-02 2004-06-17 Operax Ab Arrangements and method for hierarchical resource management in a layered network architecture
US7991852B2 (en) 2004-01-22 2011-08-02 Alcatel-Lucent Usa Inc. Network architecture and related methods for surviving denial of service attacks
US20060098664A1 (en) 2004-11-09 2006-05-11 Tvblob S.R.I. Intelligent application level multicast module for multimedia transmission
US7660296B2 (en) 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US8166205B2 (en) 2007-07-31 2012-04-24 Cisco Technology, Inc. Overlay transport virtualization
GB2458154B (en) 2008-03-07 2012-06-27 Hewlett Packard Development Co Routing across a virtual network
US8046480B2 (en) 2008-03-31 2011-10-25 Amazon Technologies, Inc. Embedding overlay virtual network addresses in underlying substrate network addresses
US8688994B2 (en) 2010-06-25 2014-04-01 Microsoft Corporation Federation among services for supporting virtual-network overlays
US8825844B2 (en) * 2011-08-30 2014-09-02 Telefonaktiebolaget L M Ericsson (Publ) Notifying network operator when virtual addresses do not match on network elements configured for interchassis redundancy

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186698A1 (en) * 2001-06-12 2002-12-12 Glen Ceniza System to map remote lan hosts to local IP addresses
US20030074472A1 (en) * 2001-10-16 2003-04-17 Lucco Steven E. Relsolving virtual network names
CN102047245A (zh) * 2008-03-31 2011-05-04 亚马逊技术有限公司 配置计算机节点之间的通信
US20100246443A1 (en) * 2009-03-30 2010-09-30 Cohn Daniel T Providing logical networking functionality for managed computer networks
CN102948132A (zh) * 2010-06-22 2013-02-27 微软公司 分布式虚拟网络网关
US8612576B1 (en) * 2010-06-29 2013-12-17 Amazon Technologies, Inc. Wide area network monitoring

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110419199A (zh) * 2017-03-08 2019-11-05 华为技术有限公司 使用主动式最短路径的sdn中的扁平化l3路由
CN109245983A (zh) * 2017-07-11 2019-01-18 阿里巴巴集团控股有限公司 一种虚拟网络设备、路由设备及虚拟网络的连接方法
CN109245983B (zh) * 2017-07-11 2021-11-16 阿里巴巴集团控股有限公司 一种虚拟网络设备、路由设备及虚拟网络的连接方法
CN113170005A (zh) * 2018-09-13 2021-07-23 瑞典爱立信有限公司 支持在通信上耦接的通信设备的网络中的消息的选择性转发的方法和设备
CN113170005B (zh) * 2018-09-13 2023-08-08 瑞典爱立信有限公司 支持在通信上耦接的通信设备的网络中的消息的选择性转发的方法和设备
US11750411B2 (en) 2018-09-13 2023-09-05 Telefonaktiebolaget Lm Ericsson (Publ) Method of and devices for supporting selective forwarding of messages in a network of communicatively coupled communication devices
CN113647065A (zh) * 2019-05-02 2021-11-12 华为技术有限公司 虚拟网络拓扑
CN113647065B (zh) * 2019-05-02 2023-08-22 华为云计算技术有限公司 虚拟网络拓扑
CN112688985A (zh) * 2019-10-18 2021-04-20 华为技术有限公司 通信方法及装置
CN112688985B (zh) * 2019-10-18 2022-07-12 华为技术有限公司 通信方法及装置
CN115314437A (zh) * 2022-06-16 2022-11-08 阿里巴巴(中国)有限公司 容器虚拟网络通信方法和容器虚拟网络
CN115314437B (zh) * 2022-06-16 2024-03-01 阿里巴巴(中国)有限公司 容器虚拟网络通信方法和容器虚拟网络

Also Published As

Publication number Publication date
US9942143B2 (en) 2018-04-10
US9712438B2 (en) 2017-07-18
WO2015105690A1 (en) 2015-07-16
US20150195196A1 (en) 2015-07-09
EP3092753A1 (en) 2016-11-16
US20170295096A1 (en) 2017-10-12
CN105900407B (zh) 2019-06-28
BR112016015096B1 (pt) 2023-03-28
US10225188B2 (en) 2019-03-05
BR112016015096A2 (pt) 2017-08-08
US20180212873A1 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
CN105900407A (zh) 在虚拟网络之间路由消息
CN105706043B (zh) 推进式链接的列表吞吐量
CN104717081B (zh) 一种网关功能的实现方法及装置
CN106254256B (zh) 基于三层vxlan网关的数据报文转发方法和设备
CN109245984A (zh) 一种报文传输方法、一种信息处理方法及其相关设备
CN109952746A (zh) 在业务链网络环境中集成物理和虚拟网络功能
CN113411243B (zh) 数据传输方法及装置
CN111866064A (zh) 一种负载均衡的方法、装置和***
CN104038401A (zh) 用于分布式覆盖虚拟环境的互操作性
CN104052644A (zh) 用于在虚拟联网***中进行分组分发的方法和***
CN108062482A (zh) 向虚拟云基础结构提供虚拟安全装置架构
CN109408257A (zh) 用于片上网络noc的数据传输方法、装置及电子设备
CN102893559A (zh) 互连虚拟网络的成员
CN107771384A (zh) 虚拟分布式路由环境中的中间逻辑接口
CN104811382B (zh) 数据包的处理方法与装置
CN109547349A (zh) 基于虚拟路由的流量管理方法、装置、终端及存储介质
CN103812777B (zh) 覆盖虚拟化网络中的高效数据传输方法和***
CN108199958A (zh) 一种通用的安全资源池服务链实现方法及***
CN109525684A (zh) 报文转发方法和装置
CN103905312B (zh) IPv6/IPv4协议翻译网关及数据报文处理方法
US10681126B2 (en) Mechanism for overlay virtual networking
CN107276826A (zh) 一种容器网络配置方法和装置
CN110089078A (zh) 提供经由动态覆盖网络的业务转发器的方法和设备
Unnikrishnan et al. Reconfigurable data planes for scalable network virtualization
CN106559339A (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