CN112910750B - 使用逻辑路由器进行地址解析的方法、设备、系统及介质 - Google Patents

使用逻辑路由器进行地址解析的方法、设备、系统及介质 Download PDF

Info

Publication number
CN112910750B
CN112910750B CN202110052540.4A CN202110052540A CN112910750B CN 112910750 B CN112910750 B CN 112910750B CN 202110052540 A CN202110052540 A CN 202110052540A CN 112910750 B CN112910750 B CN 112910750B
Authority
CN
China
Prior art keywords
network
address
host machine
host
mpre
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
CN202110052540.4A
Other languages
English (en)
Other versions
CN112910750A (zh
Inventor
V·埃加瓦尔
G·钱德拉谢卡
R·K·夏布拉玛尼亚
R·D·辛格
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.)
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
Priority claimed from US14/227,959 external-priority patent/US9413644B2/en
Priority claimed from US14/227,964 external-priority patent/US9893988B2/en
Application filed by Nicira Inc filed Critical Nicira Inc
Publication of CN112910750A publication Critical patent/CN112910750A/zh
Application granted granted Critical
Publication of CN112910750B publication Critical patent/CN112910750B/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/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

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

Abstract

本公开涉及虚拟分布式路由环境中的进入ECMP。提供了具有用于将分组从物理主机(PH)路由到逻辑网络的多个指定实例的逻辑路由元件(LRE)。具有多个指定实例的网络段中的PH可以根据负载均衡算法在用于向逻辑网络中的其它网络节点发送网络流量的多个指定实例中进行选择。LRE的每个逻辑接口(LIF)被定义为可通过多个标识符或地址寻址,并且每个LIF标识符或地址被分配给不同的指定实例。

Description

使用逻辑路由器进行地址解析的方法、设备、系统及介质
本申请是申请日为2014年12月30日、申请号为 201480079219.3、发明名称为“虚拟分布式路由环境中的进入ECMP”的发明专利申请的分案申请。
技术领域
本发明公开通常涉及虚拟分布式路由环境中的进入ECMP。
背景技术
在网络虚拟化环境中,部署在管理程序(hypervisor)上较常见的应用之一是3层(3-tier)应用,其中web层、数据库层和应用层在不同的L3子网上。这需要穿过一个子网中的一个虚拟机(VM)到另一个子网中的另一个虚拟机的IP(互联网协议)分组首先到达L3 路由器,然后利用L2 MAC(媒体访问控制)地址被转发到目的地 VM。即使目的地VM被托管在与发端VM相同的主机机器上,也是如此。这产生了不必要的网络流量并且导致更高的延迟和更低的吞吐量,这显著地降低了在管理程序上运行的应用的性能。一般而言,每当在两个不同网络段(例如,不同IP子网、不同L2段或不同覆盖逻辑网络)中的任何两个VM彼此通信时,就会发生这种性能降级。
图1示出了在网络虚拟化基础设施100上实现的逻辑网络,其中属于不同网络段的虚拟机(VM)121-129通过共享L3路由器110 彼此通信。VM 121-129在主机机器131-133上运行,它们是通过物理网络105彼此通信地链接并且链接到共享L3路由器110的物理机器。网络段A中的VM只能通过物理网络105与网络段B中的VM 以及共享L3路由器110通信,无论VM是在不同的主机机器中(例如,从VM 122到VM 127)还是在同一主机机器中(例如,从VM 125到VM 126)。
于2013年12月20日提交的美国专利申请14/137,862描述了作为虚拟分布式路由器(VDR)跨不同主机机器分布式操作的逻辑路由器元件(LRE)。每个主机机器将其自己的LRE本地实例操作为受管理物理路由元件(MPRE),用于为在那个主机上运行的VM执行L3分组转发。因此,LRE使得可以在本地(即,在发端管理程序处)转发数据分组,而无需经过共享L3路由器。
此外,如美国专利申请14/137,862所描述的LRE不仅为在操作该LRE的主机机器中操作的VM执行L3路由,而且还为不操作 LRE的物理路由器/主机或其它网络节点执行L3路由。操作LRE的一个特定主机机器被选择作为指定的主机机器,并且其MPRE是 LRE的指定实例,用于处理来自物理路由器的流量的L3路由。
发明内容
在一些实施例中,逻辑路由元件(LRE)包括一个或多个逻辑接口(LIF),每个逻辑接口用作到逻辑网络的对应段的接口。每个网络段都有其自己的到LRE的逻辑接口,并且每个LRE都有其自己的一组逻辑接口。在一些实施例中,LRE的LIF中的至少一个被定义为可通过两个或更多个标识符(例如,IP地址)寻址。一些实施例允许每个LIF标识符用作网络流量的目的地地址。在一些实施例中,网络段可以包括多个IP子网,并且与这种网络段接口的LIF可以通过处于不同IP子网中的IP地址寻址。在一些实施例中,作为覆盖封装网络(例如,VXLAN或VLAN)的网络段包括多个IP子网。
物理主机(PH)是属于逻辑网络但不操作逻辑网络的LRE的本地实例的网络节点。在一些实施例中,从PH到VM的网络流量由确实操作LRE的本地实例(即,MPRE)的指定主机机器路由。在一些实施例中,在这种指定主机上运行的LRE的本地实例被称为“指定实例”或“DI”。在一些实施例中,逻辑网络(或LRE)具有用于一些或所有网络段的多个指定实例。具有多个指定实例的网络段中的PH 可以在多个指定实例中进行选择,用于出于负载均衡目的而向逻辑网络中的其它网络节点发送网络流量。为了支持每个网络段的多个指定实例,在一些实施例中,对应的LIF被定义为可通过多个标识符或地址(例如,IP地址)寻址,其中每个LIF标识符或地址被分配给不同的指定实例。在一些实施例中,每个LIF标识符用作网络流量的目的地地址。分配给特定LIF标识符的每个指定实例(DI)进而处理那个特定分配的LIF标识符的网络流量。
一些实施例将那个特定网络段的LIF的IP地址通告为可用的下一跳列表。一旦使指定实例列表对物理主机可用,物理主机就能够选择指定实例中的任何一个作为到逻辑网络中的下一跳。这种选择可以基于任何数量的标准并且可以针对任何数量的目的做出。在一些实施例中,物理主机基于当前网络流量信息选择指定实例作为下一跳,以便均衡不同指定主机机器之间的流量负载。在一些实施例中,PH使用指定实例列表对到逻辑网络的进入网络流量执行ECMP(等价多路径路由)算法。
在一些实施例中,来自物理主机(PH)的分组依赖指定实例中的路由表条目以进行路由。在一些实施例中,这些条目由被PH或被 DI自身发起的地址解析协议(ARP)填充。在一些实施例中,已接收到作为下一跳的IP地址列表的PH执行ARP操作来将接收到的 L3 IP地址转换为L2 MAC地址,以便确定指定实例的PMAC地址。在一些实施例中,指定实例不仅为来自外部PH的分组解析IP地址,而且为来自在具有LRE的本地实例的主机机器上运行的VM的分组解析IP地址。路由利用在特定LIF的可用指定实例中的路由表条目。
在一些实施例中,每个MPRE基于目的地IP地址选择用于请求地址解析的指定实例。在一些实施例中,这种地址解析请求和地址解析应答是UDP消息。在一些实施例中,MPRE将向与处于与目的地 IP地址相同IP子网中的LIF地址相关联的指定实例做出这种地址解析请求。在一些实施例中,每个指定实例用于解析处于与其分配的 LIF IP地址在相同子网中的IP地址。在一些实施例中,当指定实例在接收到地址解析请求时不能解析目的地IP地址时,它将执行ARP 操作以便解析未知的IP地址。
前面的发明内容旨在用作对本发明的一些实施例的简要介绍。它并不意味着是本文档中所公开的所有发明性主题的介绍或概述。以下的具体实施方式和具体实施方式中参考的附图说明将进一步描述在发明内容以及其它实施例中所描述的实施例。因此,为了理解本文档所描述的所有实施例,需要对发明内容、具体实施方式和附图说明进行全面地阅读。此外,所要求保护的主题不受在发明内容、具体实施方式和附图说明中的说明性细节的限制,而是要由所附权利要求来限定,这是因为所要求保护的主题可以在不背离本主题的精神的情况下以其它特定的形式来体现。
附图说明
本发明的新颖特征在所附权利要求中阐述。但是,出于解释的目的,本发明的若干种实施例在以下图中阐述。
图1示出了在网络虚拟化基础设施上实现的逻辑网络,其中不同段或子网上的虚拟机(VM)通过共享路由器通信。
图2概念性地示出了使用LRE实现网络节点之间的L3分组转发的虚拟化网络环境。
图3示出了与包括一个或多个IP子网的网络段接口的LIF。
图4示出了在网络虚拟化基础设施的主机机器中的LRE的物理实现。
图5示出了运行包括LRE的MPRE的虚拟化软件的主机机器。
图6示出了使用MPRE为不同主机机器中的VM执行分布式L3 路由。
图7示出了从VM到PH的数据分组的分布式L3路由。
图8概念性地示出了用于逻辑网络中的LIF的多个指定实例。
图9示出了通过利用两个不同的指定实例在逻辑网络中分组从 PH到VM的L3路由。
图10概念性地示出了LRE,其中每个LIF具有多个IP地址,并且每个IP地址具有其自己对应的指定实例。
图11概念性地示出了具有基于图10的LRE实现逻辑网络的主机机器的网络虚拟化基础设施。
图12概念性地示出了将LIF IP地址作为下一跳列表通告给网络虚拟化基础设施中的物理主机。
图13示出了其中用于进入到逻辑网络中的进入网络流量的路由器基于所通告的可用下一跳列表执行ECMP的网络系统。
图14概念性地示出了由物理主机执行的用于选择LRE的指定实例用于路由的过程。
图15概念性地示出了用于向外部物理主机机器提供多个指定实例的过程。
图16示出了用于解析通告给PH的LIF IP地址的ARP操作。
图17a-b示出了多个指定实例,它们在从PH接收到具有未知目的地IP地址的数据分组时充当ARP代理。
图18示出了利用其现有路由表条目路由来自PH的数据分组而不发起ARP操作的指定实例。
图19示出了分组从操作MPRE的主机机器中的VM到不操作 MPRE的物理主机的路由。
图20示出了当指定实例在接收到地址解析请求时不能解析IP地址时由其执行的ARP操作。
图21概念性地示出了用于在MPRE处处理数据分组的过程。
图22概念性地示出了用于在指定实例MPRE处执行地址解析的过程。
图23概念性地示出了在一些实施例中用于在MPRE处执行分组路由和转发的过程。
图24示出了网络虚拟化基础设施,其中逻辑网络规范被转换为用于主机机器中的LRE的配置。
图25概念性地示出了从网络管理器向在各个主机机器中操作的LRE交付配置数据。
图26示出了被交付给各个主机机器的配置数据集的结构。
图27示出了用于LRE的动态路由信息的收集和交付。
图28概念性地示出了本发明的一些实施例利用其来实现的电子系统。
具体实施方式
在以下描述中,出于解释的目的阐述了许多细节。但是,本领域普通技术人员将认识到,本发明可以在不使用这些具体细节的情况下进行实践。在其它的情况下,众所周知的结构和设备以框图的形式示出,以便防止用不必要的细节模糊本发明的描述。
在一些实施例中,逻辑路由元件(LRE)包括一个或多个逻辑接口(LIF),每个逻辑接口用作到网络的对应段的接口。每个网络段都有其自己的到LRE的逻辑接口,并且每个LRE都有其自己的一组逻辑接口。在一些实施例中,LRE的LIF中的至少一个被定义为可通过两个或更多个标识符(例如,IP地址)寻址。一些实施例允许每个LIF标识符用作网络流量的目的地地址。在一些实施例中,网络段可以包括多个IP子网,并且与这种网络段接口的LIF可以通过处于不同IP子网中的IP地址寻址。在一些实施例中,作为覆盖封装网络(例如,VXLAN或VLAN)的网络段包括多个IP子网。
对于一些实施例,图2概念性地示出了使用LRE实现网络节点之间的L3分组转发的虚拟化网络环境200。如所示出的,虚拟化网络环境200是用于两个不同租户X和Y的多租户网络环境,并且为这两个不同租户实现两个不同的逻辑网络201和202。逻辑网络201 包括用于租户X的段A、B、C和D,而逻辑网络202包括网络段用于租户Y的E、F、G和H。每个段包括一个或多个网络节点,其中每个被标记为“VM”(虚拟机)或“PH”(物理主机)。逻辑网络201 具有用于处理网络段A、B、C和D之间的L3路由的LRE 211,而逻辑网络202具有用于处理网络段E、F、G和H之间的L3路由的LRE 212。
在一些实施例中,虚拟化网络环境200在包括通过物理网络互连的若干主机机器的虚拟化基础设施上实现逻辑网络201和202,如下面更详细描述的。这些主机机器中的一些正在操作允许它们托管一个或多个VM的虚拟化软件或管理程序。这些主机机器中的一些还在将LRE的本地实例操作为允许主机机器在不同网络段中的网络节点之间分布式执行L3路由的受管理物理路由元件(MPRE)。在主机机器上运行的每个MPRE(即,LRE的本地实例)用作在该主机机器上操作的VM的本地物理路由器。逻辑路由元件(LRE)或虚拟分布式路由器(VDR)在美国专利申请14/137,862中描述,该申请通过引用被结合于此。
每个网络段包括消耗、产生或转发网络流量的一个或多个可单独寻址的网络节点。在一些实施例中,网络段是网络的一部分(例如, IP子网)。在一些实施例中,网络段由L2逻辑交换机定义并且包括通过该逻辑交换机互连的网络节点。在一些实施例中,网络段是封装覆盖网络,诸如VXLAN或VLAN。在一些实施例中,这种网络段可以跨多个数据中心和/或包括多个IP子网。在一些实施例中,逻辑网络可以包括不同类型的网络段(例如,VLAN和VXLAN的混合)。在一些实施例中,同一段中的网络节点能够通过利用链路层(L2) 协议(例如,根据每个网络节点的L2MAC地址)彼此通信,而网络的不同段中的网络节点不能利用链路层协议彼此通信,并且必须通过网络层(L3)路由器或网关彼此通信。
如图2所示,这些网络节点中的一些是在主机机器上运行的虚拟机(“VM”),而其它网络节点是诸如物理路由器或物理主机机器 (“PH”)的独立网络节点。对于一些实施例,VM是由主机机器托管的网络节点。主机机器中的每一个还将LRE的本地实例操作为其 MPRE,使得来自VM的分组可以在该主机机器处本地路由到其逻辑网络的其它段。相反,PH是不由这种主机机器托管的网络节点。PH 不具有用以将其分组本地路由到其逻辑网络的其它段的LRE的本地实例。在一些实施例中,属于网络段的PH使用另一主机机器的 MPRE(即,另一主机机器本地的LRE实例)用于在逻辑网络内进行路由。用于PH网络节点的路由将在下面的第II部分中进一步描述。
LRE 211和212分别是用于逻辑网络201和202的逻辑路由器。 LRE 211只为租户X的流量处理路由,而LRE 212只为租户Y的流量处理路由。因此,租户X的网络流量在逻辑平面中与租户Y的网络流量完全隔离,但是,如下面进一步描述的,它们可以共享物理资源。
如上所述,LRE跨其逻辑网络中的主机机器分布式地操作为虚拟分布式路由器(VDR),其中每个主机机器将其自己的LRE的本地实例操作为MPRE,用于为在那个主机上运行的VM执行L3分组转发。在图2中,LRE 211(用于租户X的LRE)被示为包括 MPRE 221-223,而LRE 212(用于租户Y的LRE)被示为包括 MPRE 231-233。换句话说,MPRE 221-223中的每一个是在用于租户X的不同主机机器上运行的LRE 211的本地实例,而MPRE 231- 233中的每一个是在用于租户Y的不同主机机器上运行的LRE 212 的本地实例。
如所示出的,LRE 211和212中的每一个包括一组逻辑接口 (LIF),每个逻辑接口用作到网络的特定段的接口。LRE 211具有 LIF A、LIF B、LIF C和LIF D,分别用于处理去往和来自网络段A、 B、C和D的分组,而LRE 212具有LIF E、LIF F、LIF G和LIF G,分别用于处理去往和来自网络段E、F、G和H的分组。每个逻辑接口被分配其自己的一组标识符(例如,IP地址或覆盖网络标识符),其在网络虚拟化环境200内是唯一的。例如,LRE 211的LIF A被分配IP地址1.1.1.251、1.1.1.252和1.1.1.253,而LIF F被分配 IP地址4.1.2.251、4.11.2.252和4.11.2.253。这些LIF标识符中的每一个可以用作网络流量的目的地地址,换句话说,LIF的多个IP地址(或标识符)允许LIF表现为多个不同的网络流量目的地。例如,在一些实施例中,每个LIF IP地址用作其特定网络段的网络节点的默认网关或ARP代理的地址。每LIF具有多个IP地址向对应网络段中的网络节点提供了网关或代理列表以从中选择。
在一些实施例中,网络段可以包含多个IP子网,并且与这种网络段接口的LIF可以通过处于不同IP子网中的IP地址寻址。在一些实施例中,作为覆盖封装网络(例如,VXLAN或VLAN)的网络段包括多个IP子网。图3示出了与包括一个或多个IP子网的网络段接口的LIF。具体而言,图3示出了LRE 211和212的LIF A-H及其对应的网络段A-H。
如所示出的,网络段中的一些(例如,网络段A和E)只包括一个IP子网。与这种网络段接口的LIF其全部LIF地址都在一个 IP子网中。例如,网络段A只包括在IP子网1.1.1.x中的网络节点,并且其对应LIF(LIF A)的LIF地址也都在IP子网1.1.1.x中(即, 1.1.1.251、1.1.1.252、1.1.2.253)。另一方面,网络段中的一些包括多个IP子网。例如,网络段B包括IP子网1.1.2.x和1.1.12.x,而段 C包括IP子网1.1.3.x、1.1.13.x和1.1.23.x。在一些实施例中,网络段的LIF也具有在网络段的那些多个子网中的LIF IP地址。例如,LIF B具有在IP子网1.1.2.x(1.1.2.251)以及IP子网1.1.12.x (1.1.12.252和1.1.12.253)中的IP地址。在这些实施例的一些中,在特定IP子网中的网络节点在访问LIF时只使用相同IP子网中的LIF地址。例如,在一些实施例中,段D的子网1.1.14.x中的VM只使用地址1.1.14.252或1.1.14.253来寻址LIF D,而不使用1.1.4.251,即使1.1.4.251也是相同LIF的地址。
在一些实施例中,LIF的IP地址不需要与LIF的网络段中的IP 子网完全对应。例如,LIF可以具有不在任何网络段的子网中的IP 地址(例如,网络段E不具有包含LIF E中的LIF地址4.10.1.253 的IP子网),或者LIF可以具有在其中没有至少一个LIF地址的子网(例如,LIF H不具有在子网4.1.14.x中的LIF地址)。
下面几个图(例如,图6-9)使用图2-4的IP地址和网络段分配。本领域普通技术人员将理解,图2-9的IP地址的值和网络段的标签是为了说明的目的而任意选择的,并且在这些图以及其它图中描述的各种实施例完全与所选择的具体名称或数值无关。
下面描述本发明若干个更详细的实施例。部分I描述了在虚拟化网络环境中利用LRE的分布式路由。部分II描述了具有多个LIF标识符的LIF的各种应用。部分III描述了LRE的控制和配置。最后,部分IV描述了本发明的一些实施例利用其来实现的电子系统。
I.逻辑路由元件
如所提到的,一些实施例使用逻辑路由元件(LRE)用于在不同网络段中的网络节点之间路由分组。这些LRE跨多个主机机器以分布式的方式操作,这些主机机器中的每一个将LRE的本地实例操作为其受管理物理路由元件(MPRE)。在一些实施例中,这些主机机器中的每一个还操作允许它托管一个或多个虚拟机(VM)并且向那些VM提供网络访问的虚拟化软件或管理程序。在一些实施例中,运行LRE的主机机器在物理网络上的网络虚拟化基础设施中。在一些实施例中,这种网络虚拟化基础设施包括属于由LRE之一服务但还不操作LRE本身的网络段的物理网络节点(诸如外部边缘路由器)。
图4示出了在网络虚拟化基础设施400的主机机器中的LRE 211 和212的物理实现。具体而言,该图示出了主机机器401-403中逻辑网络201和202的(部分)实现。主机机器401-403通过物理网络 490通信地互连。物理主机(PH)491-494也被连接到物理网络490 并且与主机机器401-403通信地互连。
如所示出的,主机机器401在托管VM 411-416,主机机器402 在托管VM 421-426,并且主机机器403在托管VM 431-436。这些 VM属于不同的网络段。即,VM 411属于段A,VM412属于段B, VM 413、421、422属于段C,VM 431、432属于段D,VM 414、 424属于段E,VM 425和433属于段F,VM 415、416属于段G并且VM 426、434-436属于段H。
每个主机机器正在操作用于两个不同LRE 211和212的两个 MPRE。具体而言,主机机器401正在操作MPRE 441和451,主机机器402正在操作MPRE 442和452,并且主机机器403正在操作 MPRE 443和453。MPRE 441-443分别是在主机机器401-403中操作的LRE 211的本地实例,用于租户X的逻辑网络201。MPRE 451-453分别是在主机机器401-403中操作的LRE212的本地实例,用于租户Y的逻辑网络202。
驻留在主机机器上的MPRE具有一组LIF(即,LRE的LIF),用于与在该主机机器上操作的VM接口。例如,MPRE 441具有LIF A、B、C和D作为LRE211的本地实例。MPRE 441的LIF A服务于VM 411(段A VM),MPRE 441的LIF B服务于VM 412(段B VM)、并且MPRE 441的LIF C服务于VM 413(段C VM)。如所示出的,LRE/逻辑网络的MPRE可以驻留在所有网络段中都不具有VM的主机机器上,并且MPRE因此可以具有不活动的LIF。例如,主机机器401不具有属于段D的VM,并且其MPRE 441的 LIF D因此没有被激活(以虚线边框示出)。
主机机器的每个MPRE处理来自由MPRE的LIF服务的VM 的分组的L3路由。换句话说,每个MPRE处理属于形成其父LRE 的逻辑网络的网络段的VM的L3路由。例如,MPRE 441为VM 411-413(属于逻辑网络201的网络段A、B、C)执行L3路由,而 MRPE 442为VM 414-416(属于逻辑网络202的网络段E和G)执行L3路由。
每个主机机器还在操作用于在该主机机器上的VM和MPRE之间执行L2层交换的受管理物理交换元件(MPSE)。每个主机机器的MPSE还具有到物理网络490的上行链路连接,使得主机机器中的VM和MPRE可以通过物理网络490与主机机器外部的网络节点 (例如,在其它主机机器和PH中的VM)交换分组。例如,分组可以通过上行链路从物理网络490、从MPRE(441或442)中的一个、或从VM(411-416)中的一个到达主机401的MPSE 461。需要L3 层路由的分组被MPSE 461转发到MPRE 441或451中的一个,并且路由分组被发送回MPSE 461,以被转发到它们在主机机器401内或在通过物理网络490可到达的主机机器外部的L2目的地。
在一些实施例中,通过相同的虚拟MAC地址(VMAC),所有 MPRE在其主机机器内可寻址(即,通过主机机器的MPSE),而通过唯一识别MPRE的物理MAC地址(PMAC),每个MPRE可从其主机机器外部的网络节点寻址。在一些实施例中,这种PMAC 将在一个主机机器中操作的MPRE与在另一个主机机器中操作的另一个MPRE区分开,即使当这些MPRE是相同LRE的实例。在一些实施例中,尽管在相同主机机器上的不同租户的MPRE可通过在主机机器的MPSE处的相同MAC(VMAC或PMAC)寻址,但是 MPRE能够通过利用网络段标识符(例如,VNI、VXLANID或 VLAN标签或ID)使不同逻辑网络(和不同客户端)的分组保持分离。例如,MPRE 441的LIF A、B、C和D确保MPRE 441只接收具有用于网络段A、B、C或D的标识符的分组,而MPRE 442的 LIF E、F、G和H确保MPRE 442只接收具有用于网络段E、F、G 和H的标识符的分组。MPSE的操作在美国专利申请14/137,862中描述。
物理主机(PH)491-494是虽然属于逻辑网络201或202但不操作LRE 211或LRE 212的本地实例的网络节点。具体而言,PH 491 属于网络段A,PH 492和493属于网络段C,并且PH 493属于网络段G。在一些实施例中,PH是根本不运行虚拟化软件并且不托管任何VM的物理主机机器。在一些实施例中,一些物理主机机器是内置在底层物理网络中的传统网络元件(诸如文件管理器(filer)或另一个非管理程序/非VM网络栈),其用来依赖于独立路由器进行L3 层路由。在一些实施例中,PH是用作逻辑网络201或202与其它外部网络的接口的边缘路由器或路由网关。在一些实施例中,这种边缘路由器是在操作管理程序/虚拟化软件的主机机器上运行的VM,但是边缘路由器的主机机器不为逻辑网络201或202操作LRE。为了为这些PH网络节点执行L3层路由,一些实施例指定在网络虚拟化基础设施400的主机机器中运行的一个或多个MPRE充当这些PH 的专用路由代理(指定实例或指定MPRE)。在一些实施例中,去往和来自这些PH的L2流量由主机机器中的MPSE的本地实例处理,而不必经过指定MPRE。指定实例将在下面的部分II.a中进一步描述。
在一些实施例中,LRE在托管一个或多个VM(例如,在多租户数据中心内)的主机机器上运行的虚拟化软件(例如,管理程序、虚拟机监视器等)内操作。虚拟化软件管理VM的操作以及它们对主机机器的物理资源和网络资源的访问,并且LRE的本地具体实例 (localinstantiation)在主机机器中操作为其本地的MPRE。对于一些实施例,图5示出了运行包括LRE的MPRE的虚拟化软件505的主机机器500。主机机器通过物理网络590连接到,例如,其它类似的主机机器。在一些实施例中,这种物理网络590可以包括各种物理交换机和路由器。
如所示出的,主机机器500可以通过物理NIC(PNIC)595对物理网络590访问。主机机器500还运行虚拟化软件505并且托管 VM 511-514。虚拟化软件505用作托管的VM和物理NIC 595(以及其它物理资源,诸如处理器和存储器)之间的接口。每个VM包括用于通过虚拟化软件505访问网络的虚拟NIC(VNIC)。VM中的每个VNIC负责在VM和虚拟化软件505之间交换分组。在一些实施例中,VNIC是由虚拟NIC仿真器实现的物理NIC的软件抽象。
虚拟化软件505管理VM 511-514的操作,并且包括用于(在一些实施例中,通过实现VM连接到其的逻辑网络)管理VM对物理网络的访问的若干个组件。如所示出的,虚拟化软件包括若干个组件,包括MPSE 520、MPRE 530、控制器代理540、VTEP 550和一组上行链路管线570。
控制器代理540从控制器或控制器集群接收控制平面消息。在一些实施例中,这些控制平面消息包括用于配置虚拟化软件的各种组件 (诸如MPSE 520和MPRE 530)和/或虚拟机的配置数据。在图5 所示的例子中,控制器代理540从物理网络590接收来自控制器集群 560的控制平面消息并且又通过控制信道而无需经过MPSE 520将接收到的配置数据提供给MPRE 530。但是,在一些实施例中,控制器代理540从独立于物理网络590的直接数据通道(未示出)接收控制平面消息。在一些其它实施例中,控制器代理从MPSE 520接收控制平面消息并且通过MPSE 520将配置数据转发到路由器530。控制器代理和虚拟化软件的配置将在下面部分III中进一步描述。
VTEP(VXLAN隧道端点)550允许主机500用作用于逻辑网络流量(例如,VXLAN流量)的隧道端点。VXLAN是覆盖网络封装协议。由VXLAN封装创建的覆盖网络有时被称为VXLAN网络,或者简单地称为VXLAN。当主机500上的VM将数据分组(例如以太网帧)发送到在同一VXLAN网络中但是在不同主机上的另一个 VM时,VTEP将在把分组发送到物理网络之前,利用VXLAN网络的VNI和该VTEP的网络地址封装数据分组。分组通过隧道穿过物理网络(即,封装使得底层分组对中间网络元件透明)到目的地主机。在目的地主机处的VTEP解封装分组并且只将原始内部数据分组转发到目的地VM。在一些实施例中,VTEP模块只用作用于VXLAN封装的控制器接口,而VXLAN分组的封装和解封装在上行链路模块 570处完成。
MPSE 520将网络数据交付给物理NIC 595和接收来自物理NIC 595的网络数据,其中物理NIC 595与物理网络590接口。MPSE还包括将物理NIC与VM 511-514、MPRE 530和控制器代理540通信地互连的多个虚拟端口(vPort)。在一些实施例中,每个虚拟端口与唯一的L2 MAC地址相关联。MPSE在连接到其虚拟端口的任何两个网络元件之间执行L2链路层分组转发。MPSE还在连接到其虚拟端口中的任何一个端口的任何网络元件与物理网络590上的可到达的L2网络元件(例如,运行在另一个主机上的另一个VM)之间执行L2链路层分组转发。在一些实施例中,MPSE是跨不同主机机器操作并且可以在同一主机机器上或不同主机机器上的VM之间执行 L2分组交换的逻辑交换元件(LSE)的本地具体实例。
MPRE 530对从MPSE 520上的虚拟端口接收到的数据分组执行 L3路由(例如,通过执行L3 IP地址到L2 MAC地址的解析)。每个路由的数据分组然后被发送回到MPSE 520,以根据解析的L2 MAC地址被转发到其目的地。这个目的地可以是连接到MPSE 520 上的虚拟端口的另一个VM,或者是物理网络590上的可到达的L2 网络元件(例如,在另一个主机上运行的另一个VM、物理的非虚拟化机器等)。
如所提到的,在一些实施例中,MPRE是跨不同主机机器操作并且可以在同一主机机器上或在不同主机机器上的VM之间执行L3 分组转发的逻辑路由元件(LRE)的本地具体实例。在一些实施例中,主机机器可以具有连接到单个MPSE的多个MPRE,其中在主机机器中的每个MPRE实现不同的LRE。MPRE和MPSE被称为“物理”路由/交换元件,以便与“逻辑”路由/交换元件区分,即使MPRE和 MPSE在一些实施例中用软件实现。在一些实施例中,MPRE被称为“软件路由器”并且MPSE被称为“软件交换机”。在一些实施例中, LRE和LSE被统称为逻辑转发元件(LFE),而MPRE和MPSE 被统称为受管理的物理转发元件(MPFE)。
在一些实施例中,MPRE 530包括一个或多个逻辑接口(LIF),每个逻辑接口用作与网络的特定段的接口。在一些实施例中,每个 LIF可通过其自己的IP地址寻址并且用作用于其网络特定段的网络节点(例如,VM)的缺省网关或ARP代理。如下面详细描述的,在一些实施例中,在不同主机机器中的所有MPRE都可通过相同的“虚拟”MAC地址寻址,而每个MPRE也被分配“物理”MAC地址,以便指示MPRE在哪个主机机器中操作。
上行链路模块570在MPSE 520和物理NIC 595之间中继数据。上行链路模块570包括外出链和进入链,其中每一个都执行多个操作。这些操作中的一些是用于MPRE 530的预处理和/或后处理操作。上行链路模块的操作在美国专利申请14/137,862中描述。
如由图5所示出的,虚拟化软件505具有来自多个不同LRE的多个MPRE。在多租户环境中,主机机器可以操作来自多个不同用户或租户的(即,连接到不同的逻辑网络的)虚拟机。在一些实施例中,每个用户或租户在主机中具有用于处理其L3路由的对应的 MPRE具体实例。在一些实施例中,虽然不同的MPRE属于不同的租户,但是它们都共享MPSE 520上的同一vPort,并且因此同一L2 MAC地址(VMAC或PMAC)。在一些其它实施例中,属于不同租户的每个不同的MPRE具有其自己到MPSE的端口。
MPSE 520和MPRE 530使得数据分组有可能在VM 511-514之中转发,而无需通过外部物理网络590发送(只要VM连接到同一逻辑网络,原因在于不同租户的VM将彼此隔离)。
在主机机器上运行的MPRE允许在同一主机机器上运行的VM 之间的分组的L3路由在主机机器处本地完成,而不必经过物理网络。图6示出了用于为在不同主机机器中的VM执行分布式L3路由的 MPRE的使用。具体而言,图6示出了在同一主机机器中的VM之间和在不同主机机器中的VM之间执行L3路由的MPRE。
如所示出的,物理网络690支持主机机器601-604(主机机器 604在图7中示出)之间的网络通信。主机机器601-604分别正在操作MPRE 631-634。MPRE 631-634是相同LRE的本地实例。每个 MPRE具有用于将L3 IP地址映射到L2 MAC地址的对应路由表 (分别用于MPRE 631-634的641-644)。LRE(并且因此MPRE) 具有用于网络段A、B、C和D的LIF。主机机器602正在托管VM 612,它是网络段B中的网络节点。主机机器604正在托管VM 614,它是网络段D中的网络节点。主机机器601正在托管VM 611和615,它们分别是网络段A和C中的网络节点。
图6示出了在标记为'1'至'5'的操作中将分组670从VM 612路由到VM 614。VM 612和614是在不同主机机器中操作的VM。分组670指示它来自IP地址1.1.2.2,并且它去往IP地址1.1.4.4。在操作 '1',VM 612通过其LIF B将分组670发送到MPRE 632,因为VM 612是网络段B中的网络节点(如由其IP地址1.1.2.2所指示的)。在操作'2',MPRE 632使用其路由表642将目的地IP地址1.1.4.4映射到“MAC4”,其是在主机机器604中的VM 614的L2地址。
在操作“3”,MPRE意识到目的地地址1.1.4.4在网络段D中的子网中并且因此使用其LIF D发出利用“MAC4”作为目的地MAC地址的分组670。虽然没有示出,但是分组670由主机机器602中的 MPSE转发出去。MPSE识别出“MAC4”不在主机机器602中并且将它发出到物理网络690。
在操作'4',分组670到达主机机器604。由于分组670已被路由 (即,具有路由的MAC地址),因此主机机器604的MPSE在操作'5'中将分组670转发到L2地址“MAC4”(即,VM614),而不经过MPRE 634。
图6还示出了在标记为“6”至“8”的操作中将分组680从VM 611 路由到VM 615。分组680指示它来自IP地址1.1.1.1并且它去往IP 地址1.1.3.5。VM 611和615是在同一主机机器601中操作的VM。在操作'6',VM 611通过其LIF A将分组680发送到MPRE 631,因为VM611是网络段A中的网络节点(如由其IP地址1.1.1.1所指示的)。在操作'7',MPRE 631使用其路由表641将目的地IP地址1.1.3.5映射到“MAC5”,其是VM 615的L2地址。
在操作'8',MPRE意识到目的地地址1.1.3.3在属于网络段C的子网中并且因此使用其LIF C发出利用“MAC5”作为目的地MAC地址的分组680。虽然没有示出,但是分组由主机机器601中的MPSE 转发。MPSE识别出“MAC5”在主机机器601中,因此它将分组680 直接转发到VM615,而不经过物理网络690。
如所提到的,物理主机(PH)是属于逻辑网络但不操作逻辑网络的LRE的本地实例的网络节点。在一些实施例中,从PH到VM 的网络流量因此由确实操作LRE的本地实例(即,MPRE)的指定主机机器路由。但是,在一些实施例中,反之不是这样。即,从VM 到PH的网络流量始终是以分布式的方式由每个主机机器自己的 MPRE本地路由,而不依赖于指定的主机。
图7示出了从VM 611-614到PH 695的数据分组的分布式L3路由。来自VM 611-614的分组每个在其主机机器的MPRE处被本地路由,即使目的地是不操作LRE的实例的PH 695。VM 611-614分别由主机机器601-604托管。主机机器611-614通过物理网络690彼此通信地链接。物理网络690还将PH 695与主机机器601-604连接。主机机器601-604分别正在操作MPRE 631-634,它们是特定逻辑网络的LRE的本地实例。PH 695是属于与VM 611-614相同的特定逻辑网络的网络节点,但是PH 695不操作该特定逻辑网络的LRE。
图7示出了标记为“1”到“4”的对应于从VM 611-614到PH 695 的四个不同分组转发操作的四个操作。托管这些VM的主机机器通过在这四个操作中的每个操作中利用其自己的MPRE本地执行转发操作。操作'1'示出了将分组671从VM 611路由到PH 695。VM 611 由正在操作MPRE 631的主机机器601托管。MPRE 631在其LIF A 处接收分组671(由于VM 611是在网络段A的网络节点)并且使用其路由表641将目的地IP地址1.1.2.10映射到“MAC10”,其是PH 695的MAC地址。路由分组从MPRE 641的LIF B出来(由于目的地IP地址1.1.2.10指示目的地网络节点在网络段B中)。然后,主机机器601的本地MPSE将路由分组671发出到物理网络690,并且然后基于路由的MAC地址“MAC10”发出到PH。操作'3'和'4'同样示出了分组673从VM 613到PH 695的L3路由和分组674从VM 614 到PH 695的L3路由。这些路由操作中的每一个由每个VM的相应主机机器(603和604)中的本地MPRE(633和634)通过利用每个MPRE自己的路由表(643和644)执行。
在操作'1'、'3'和'4'中,MPRE正在执行L3路由操作,因为 PH695处于与VM 611、613和614不同的网络段上。(PH 695的 IP地址是1.1.2.10,其产生网络段B的PH 695部分。VM 611的IP 地址是1.1.1.1,其在网络段A中。VM 613的IP地址是1.1.3.3,其在网络段C中。VM 614的IP地址是1.1.4.4,其在网络段D中。) 另一方面,操作“2”示出了从位于与PH695相同段B中的VM 612向 PH 695转发分组672。(VM 612在IP地址1.1.2.2,其也在段B 中)。如果分组672已指定目的地MAC地址(即,MAC10),则在一些实施例中,主机机器602的MPSE将经由物理网络690直接将分组转发到PH695而无需路由。如果目的地MAC地址是未知的,则MPRE632在一些实施例中将执行桥接操作,以将目的地IP地址 1.1.2.10映射到目的地MAC地址MAC10。执行桥接操作的MPRE 在美国专利申请14/137,862中描述。
II.每LIF多个地址
a.用于LIF地址的指定实例
如上所述,物理主机(PH)是属于逻辑网络但不操作逻辑网络的LRE的本地实例的网络节点。在一些实施例中,从PH到VM的网络流量因此由确实操作LRE的本地实例(即,MPRE)的指定主机机器来路由。在一些实施例中,在这种指定主机上运行的LRE的本地实例被称为“指定实例”或“DI”,因为它是用来处理来自不具有其自己的MPRE的物理主机的流量的指定MPRE实例。
在一些实施例中,逻辑网络(或LRE)具有用于一些或所有网络段的多个指定实例。在具有多个指定实例的网络段中的PH可以在用于向逻辑网络中的其它网络节点发送网络流量的多个指定实例中选择,用于例如负载均衡目的。为了支持每网络段多个指定实例,在一些实施例中,对应的LIF被定义为可通过多个标识符或地址(例如, IP地址)寻址,其中每个LIF标识符或地址被分配给不同的指定实例。在一些实施例中,每个LIF标识符用作网络流量的目的地地址。分配给特定LIF标识符的每个指定实例(DI)进而处理该特定分配的LIF标识符的网络流量。
图8概念性地示出了用于逻辑网络800中的LIF的多个指定实例。逻辑网络800正在实现用于网络段A、B、C和D的LRE 830,并且LRE 830具有LIF A、LIF B、LIF C以及LIF D,其用作这四个网络段的接口。逻辑网络800在包括由物理网络890(在图9中示出)互连的主机机器801-807的网络虚拟化基础设施上实现。这些主机机器中的每一个都在运行LRE 830的本地实例作为其MPRE(即, MPRE 831-837)。
逻辑网络800还包括两个PH 880和881。PH不运行其自己的 LRE 830的本地实例,并且因此依赖于指定实例用于逻辑网络800内的L3路由。PH 880的IP地址是1.1.2.10并且PH881的IP地址是 1.1.2.11,其指示PH880和PH881两者都在网络段B中并且通过利用LIFB与LRE830接口。
在图8的例子中,LIF B具有三个IP地址:1.1.2.251、1.1.2.252 和1.1.2.253。逻辑网络具有用于这三个LIF地址的三个指定主机机器(和三个DI):在主机机器801上运行的MPRE 831是用于LIF 地址1.1.2.251的DI,在主机机器802上运行的MPRE 832是用于 LIF地址1.1.2.252的DI,并且在主机机器803上运行的MPRE 833 是用于LIF地址1.1.2.253的DI。主机机器804-807中的MPRE不是用于LIF B的DI(虽然没有示出,但是它们可以是用于其它LIF的 DI)。因此,主机机器801、802和803都可以用作用于对来自PH 880和881的分组执行L3路由的指定主机机器。
如前面提到的,每个MPRE可以通过物理MAC地址(PMAC) 从其主机机器之外的网络节点寻址,该物理MAC地址从其它主机机器中的其它MPRE中唯一地识别该MPRE。在一些实施例中,PH 使用指定实例的PMAC作为其第一跳L2目的地。换句话说,为了发送要由DI路由的分组,PH将首先通过利用DI的PMAC地址把分组发送到DI。在图8的例子中,主机机器801中的DI具有 PMAC地址“PMAC100”,主机机器802中的DI具有PMAC地址“PMAC200”,并且主机机器803中的DI具有PMAC地址“PMAC300”。
图9示出了通过利用两个不同指定实例在逻辑网络800中分组从 PH 880到VM的L3路由。PH 880正在发送去往IP地址1.1.3.3的分组971以及还有去往IP地址1.1.4.4的另一个分组972。PH 880使用DI 833(即,主机机器803的MPRE)作为分组971的第一跳以及DI 831(即,主机机器801的MPRE)作为分组972的第一跳。
标记为“1”至“4”的操作示出了分组971的路由。在操作'1',PH 880将分组971发送到物理网络890上。分组971指定其去往IP 1.1.3.3而其第一跳MAC地址是“PMAC300”。在操作“2”,分组971 基于作为MPRE 833的PMAC的MAC地址“PMAC300”到达主机 803中的MPRE833。由于PH 880在网络段B中(IP地址 1.1.2.10),因此分组通过LIF B进入MPRE 833。在操作'3', MPRE 833使用其路由表843将目的地IP地址1.1.3.3转换为目的地 MAC地址“MAC3”。在操作“4”,主机机器803的MPSE(未示出) 识别出“MAC3”是在主机机器803内运行的VM 933的MAC地址。 MPSE然后将分组971转发到VM 933。
标记为“5”至“9”的操作示出了分组972的路由。在操作'5',PH 880将分组972发送到物理网络890上。分组972指定其去往IP 1.1.4.4而其第一跳MAC地址是“PMAC100”。在操作'6',分组972 基于作为MPRE 831的PMAC的MAC地址“PMAC100”到达主机机器801中的MPRE831。由于PH 880在网络段B中(IP地址 1.1.2.10),因此分组通过其LIF B进入MPRE 831。在操作'7', MPRE 831使用其路由表841将目的地IP地址1.1.4.4转换为目的地 MAC地址“MAC4”。在操作'8',主机机器801的MPSE意识到“MAC4”不是主机机器801内的任何网络节点的地址,并且将路由分组972转发出到物理网络890上。在操作'9',具有目的地“MAC4”的路由分组972到达主机机器804,主机机器804的MPSE(未示出) 将其识别为在该主机机器上运行的VM 934的L2地址。然后,主机机器804的MPSE将路由分组972转发到VM 934,其IP地址为1.1.4.4。
在一些实施例中,LRE的不同LIF具有不同的IP地址集合,并且LIF的每个IP地址具有对应的指定实例。图10概念性地示出了 LRE 1000,其中每个LIF具有多个IP地址,并且每个IP地址具有其自己对应的指定实例。LRE 1000(LRE X)具有用于四个不同网络段的四个LIF 1011-1014。LIF 1011和1012用于VLAN网络段 (VLAN100和VLAN200)。LIF 1013和1014用于VXLAN网络段 (VXLAN500和VXLAN600)。
如所示出的,LIF 1011-1014中的每一个具有多个IP地址,并且每个IP地址与正在操作LRE X的本地实例(即,MPRE)作为用于那个IP地址的指定实例的主机机器相关联。在一些实施例中,LIF 的每个IP地址与不同的主机机器相关联。如前面提到的,在一些实施例中,MPRE的PMAC是用来将一个主机机器中的一个MPRE相对于其它主机机器中的其它MPRE唯一地识别出的地址,因此,与不同PMAC地址相关联的IP地址指示在不同主机机器中的指定实例。例如,LIF 1012具有IP地址2.1.2.251、2.1.2.252和2.1.2.253。LIF IP地址2.1.2.251具有PMAC地址为“11:11:11:11:12:01”或“PMAC4”的指定实例,LIF IP地址2.1.2.252具有PMAC地址为“11:11:11:11:12:02”或“PMAC5”的指定实例,并且LIF IP地址2.1.2.253具有PMAC地址为“11:11:11:11:12:01”或“PMAC6”的指定实例。因此,LIF 1012的三个IP地址被分配给三个不同主机机器中的MPRE。
在一些实施例中,一个主机机器可以用作来自多个不同LIF的多个不同IP地址的指定主机机器(并且其MPRE作为指定实例)。例如,PMAC地址“PMAC1”对应于LIF 1011的IP地址2.1.1.251和 LIF 1013的IP地址2.1.3.251两者,即,具有“PMAC1”的MPRE用作这两个LIFIP地址的指定实例。同样,PMAC地址“PMAC6”对应于LIF 1012的IP地址2.1.2.253和LIF1014的IP地址2.1.4.253 两者。换句话说,具有“PMAC1”的MPRE是用于VLAN100和 VXLAN500两者的指定实例(并且其主机机器是指定主机机器),而具有“PMAC6”的MPRE是用于VLAN200和VXLAN600两者的指定实例。
图11概念性地示出了具有基于图10的LRE 1000实现逻辑网络的主机机器的网络虚拟化基础设施1100。网络虚拟化基础设施1100 包括多个主机机器,其中包括主机机器1101-1111。这些主机机器正在托管VM 1120。每个主机机器正在将LRE 1000的本地实例操作为 MPRE。每个主机机器也与PMAC相关联,因此其MPRE在LRE 1000内可唯一寻址。
网络虚拟化基础设施1100还包括PH 1181-1188,其不操作LRE 1000的本地实例。PH 1181-1182在VLAN100中,PH 1183-1184在 VLAN200中,PH 1185-1186在VXLAN500中,并且PH 1187-1188 在VXLAN600中。
一些主机机器,即,主机机器1101-1111,正在操作用作处理来自PH 1181-1188的流量的指定实例的MPRE。具体而言,主机机器 1101、1102和1103用作用于处理来自PH 1181和1182的流量的 VLAN100的指定主机机器,主机机器1104、1105和1106用作用于处理来自PH1183和1184的流量的VLAN200的指定主机机器,主机机器1101、1108和1109用作用于处理来自PH 1185和1186的流量的VXLAN500的指定主机机器,并且主机机器1110、1111和 1106用作用于处理来自PH1187和1188的流量的VXLAN500的指定主机机器。虽然没有示出,但是在一些实施例中,一些网络段被固有地分布,因此不需要指定实例来处理来自那些网络段的物理主机的流量。例如,在一些实施例中,一些VXLAN网络段具有能够分发路由并且因此不需要其它主机机器中的MPRE作为指定实例的物理主机。
每个网络段(以及用于那个网络段的LIF)具有其分配给不同主机机器的多个LIFIP地址。例如,用于VLAN200的LIF具有三个 IP地址2.1.2.251、2.1.2.252和2.2.253,并且这些IP地址中的每一个被分配给不同的主机机器(2.1.2.251被分配给主机机器1104、2.1.2.252被分配给主机机器1105,并且2.1.2.253被分配给主机机器 1106)。如前面参考图10所提到的,一些主机机器用作用于来自不同LIF/网络段的不同IP地址的指定主机机器。如图11所示,主机机器1101(PMAC1)用作用于VLAN100的2.1.1.251和VXLAN500 的2.1.3.251两者的指定主机机器(即,托管指定实例MPRE)。主机机器1106(PMAC6)用作用于VLAN200的2.1.2.253和 VXLAN600的2.1.4.253两者的指定主机机器。
b.利用多个LIF地址启用进入ECMP
如所提到的,在一些实施例中,每LIF具有多个指定实例给使用那个LIF的物理主机机器在选择下一跳时的选择列表。具有这种列表的物理主机机器能够选择一个指定实例作为目的地,例如,以跨不同指定实例均衡负载。为了向特定网络段的物理主机提供这种列表,一些实施例将那个特定网络段的LIF的IP地址通告为可用的下一跳列表。
图12概念性地示出了将LIF IP地址作为下一跳列表通告给网络虚拟化基础设施1100中的物理主机。网络基础设施1100正在实现 LRE 1000,其用于VLAN 100的LIF被分配IP地址2.1.1.251、 2.1.1.252和2.1.1.253。物理主机1181和1182两者都是VLAN100中的路由器。如所示出的,网络虚拟化基础设施1100包括网络控制器 1250。网络控制器1250将用于VLAN100的LIF IP地址作为下一跳列表1210通告给物理主机1181和1182。物理主机可以通过对这些 LIF IP地址执行ARP操作将这些IP地址解析为L2 MAC地址。
控制器1250还选择主机机器用作用于那些通告的LIF IP地址的指定实例/指定主机机器。如所示出的,控制器1250选择主机机器 1101作为用于LIF IP地址2.1.1.251的指定主机(即,其MPRE作为指定实例),主机机器1102作为用于LIF IP地址2.1.1.252的指定主机,并且主机机器1103作为用于LIF IP地址2.1.1.253的指定主机。当物理主机随后请求对于其接收到的下一跳IP地址的地址解析时,一些实施例将选定的指定实例/指定主机的PMAC作为解析的 L2 MAC地址提供给发出请求的物理主机。LIF IP地址的地址解析将在下面部分II.c中进一步描述。
一旦使指定实例列表对物理主机可用,物理主机就能够选择指定实例中的任何一个作为到逻辑网络中的下一跳。这种选择可以基于任何数量的标准,并且可以针对任何数量的目的做出。在一些实施例中,物理主机基于当前网络流量信息选择指定实例作为下一跳,以便均衡不同指定主机机器之间的流量负载。在一些实施例中,PH使用指定实例列表对到逻辑网络的进入网络流量执行ECMP(等价多路径路由)算法。
图13示出了其中用于进入到逻辑网络中的进入网络流量的路由器基于所通告的可用下一跳列表执行ECMP的网络系统1300。网络系统1300包括网络虚拟化基础设施1100、边缘路由器1361和1362 以及核心路由器1371-1373。网络虚拟化基础设施1100正在实现LRE 1000。核心路由器1371-1373是在客户端站点处的互联网主干的路由器,并且边缘路由器1361和1362是用于到网络虚拟化基础设施1100中的网络流量的网关。边缘路由器1361和1362已接收到它可以用作到虚拟化基础设施1100的下一跳的IP地址的列表1210。路由器1361和1362是VLAN100中的网络节点,并且IP地址的列表是用于VLAN100的LIF IP地址。
核心路由器1371-1373中的每一个执行ECMP算法来选择边缘路由器1361-1362中的一个作为用于从客户端站点流向网络虚拟化基础设施1100的流量的下一跳。边缘路由器1361-1362中的每一个又执行其自己的ECMP算法来选择指定实例中的一个作为用于进入到网络虚拟化基础设施1100中的流量的下一跳。在一些实施例中,路由器中的至少一些执行ECMP算法,以便在下游路由器中均衡流量和/或计算负载。在一些实施例中,这种ECMP算法基于动态网络流量状态,其中下一跳的选择是对指定实例中的每一个上的当前流量负载的认知。在一些实施例中,ECMP算法通过对进入数据分组进行盲式散列而不考虑任何实时网络流量状态来选择下一跳。
边缘路由器1361具有列表1341,并且边缘路由器1362具有列表1342。列表1341和1342两者都从通告的包括2.1.1.251、2.1.252 和2.1.1.253的LIF IP地址列表1210得出。每个路由器通过使用其 IP地址列表选择下一跳。例如,边缘路由器1361使用其列表1341来执行ECMP并且确定2.1.1.252对于特定数据分组是比2.1.1.251和 2.1.1.253更好的下一跳。然后,边缘路由器1361选择2.1.1.252作为目的地IP。在图13的例子中,在主机机器1102上运行的MPRE已被选为用于IP地址2.1.1.252的指定实例,其具有L2地址“PMAC2”。因此,去往IP地址2.1.1.252的特定数据分组将通过利用L2地址“PMAC2”被发送到主机机器1102。
图14概念性地示出了由物理主机执行的用于选择LRE的指定实例用于路由的过程1400。当物理主机接收(在1410)LIF IP地址列表作为可能的下一跳时,该过程开始。然后,该过程确定(在1420) 其是否具有需要由LRE路由的分组,即,其目的地是在利用LRE 的逻辑网络中的分组。如果是,则过程前进到1430。否则,过程 1400结束。
在1430,该过程更新网络信息。然后,该过程选择(在1440) IP地址作为下一跳。一些实施例基于实时网络信息更新来选择下一跳,以便实现负载均衡。一些实施例不使用这种网络信息更新而是依赖于随机选择(例如,简单散列)来实现负载均衡。一些实施例使用其它类型的ECMP算法用于选择下一跳。
该过程接下来确定(在1450)选定的下一跳IP地址是否具有对应的解析的L2地址。解析的L2地址是被选为用于下一跳IP地址的指定主机(并且托管指定LRE实例)的主机机器的实际MAC地址。如果选定的下一跳具有解析的L2地址,则该过程前进到1460来转发分组。否则,该过程执行(在1455)地址解析操作,以便解析选定的下一跳IP地址(例如,通过发送针对选定的下一跳IP地址的 ARP请求)。
一旦下一个IP地址已被解析为L2地址,该过程就通过利用解析的L2地址转发(1460)分组。过程1400然后返回到1420以查看是否存在要由LRE转发的另一个分组。指定实例的地址解析将在下面的部分II.c中进一步描述。
图15概念性地示出了用于向外部物理主机机器提供多个指定实例的过程1501。过程1501创建LRE并且提供LIF IP地址列表作为到外部主机机器的下一跳。它还选择主机机器用作指定实例。过程 1501通过创建(在1510)用于特定客户端的逻辑网络的LRE开始。LRE包括用于与不同网络段接口的不同LIF。
然后,该过程为LIF分配(在1515)一组IP地址。接下来,该过程将指定实例分配(在1520)给LIF的每个IP地址。每个指定实例是驻留在主机机器上的MPRE。然后,该过程通告(在1525)用于LIF的IP地址列表作为到连接到该LIF的外部主机机器(例如,边缘路由器)的可用下一跳列表。然后,该过程重复1515至1525,直到它确定(在1530)LRE中的所有LIF具有一组IP地址和一组对应的指定实例。在一些实施例中,每个LIF被分配唯一的一组IP 地址,并且没有两个LIF共享同一IP地址。在一些实施例中,主机机器的MPRE可以用作用于来自不同LIF的两个或更多个不同IP地址的指定实例。
一旦用于LIF IP地址的指定实例已被选择,该过程就产生(在 1540)LRE的配置。然后,该过程将LRE配置推送(1545)到网络虚拟化基础设施中的每个主机机器。接收配置的一些主机机器将知道它已被选择作为指定主机机器(即,具有指定实例MPRE)并且执行指定实例的功能。LRE的配置将在下面的部分III中进一步描述。然后过程1501结束。
图15还概念性地示出了用于在LIF IP地址列表已被推送到外部物理路由器之后动态更新指定实例的分配的过程1502。过程1502在其接收(在1550)特定网络段的流量负载信息的更新时开始。这种信息在一些实施例中提供每个网络段中的网络流量流的状态以及每个主机机器上的网络/计算负载。然后,该过程识别(在1560)用于需要对其改变指定实例的分配的网络段的LIF。接下来,该过程基于更新的流量负载信息更新(1570)用于那个LIF的指定实例的分配。最后,该过程将更新的配置推送(在1580)到主机机器,以便向主机机器通知新的指定实例分配。然后过程1502结束。然后物理主机可以对其下一跳IP地址执行ARP,以找出新选定的指定实例的 PMAC地址。
c.利用多个LIF地址的地址解析
图7和9中示出的路由操作依赖于MPRE中的路由表条目用于将L3 IP地址转换为L2MAC地址。来自物理主机(PH)的分组尤其依赖于指定实例中的路由表条目用于路由。在一些实施例中,这些条目由PH发起的地址解析协议(ARP)或DI本身填充。此外,在一些实施例中,已接收到IP地址列表作为下一跳的PH(诸如图12 和13中的路由器1181、1128、1361和1362)还执行ARP操作,以将接收到的L3 IP地址转换为L2 MAC地址。换句话说,为了使用接收到的LIF IP地址作为下一跳,在一些实施例中,PH执行ARP,以便确定指定实例的PMAC地址。
对于一些实施例,图16示出了用于解析通告给PH的LIF IP地址的ARP操作。该图示出了PH 1681和PH 1682的ARP操作。PH 1681和1682每个从逻辑网络1600接收到下一跳列表。PH 1681和 1682两者都是网络段VLAN 100中的网络节点,并且该列表提供用于VLAN100的LIF的IP地址列表,其包括2.1.1.251、2.1.2.252和 2.1.1.253。PH 1681正在维护路由表1641并且PH 1682正在维护路由表1642。
逻辑网络1600在包括主机机器1601和1602的主机机器阵列上实现。逻辑网络1600正在实现LRE 1650,并且逻辑网络的主机机器,包括主机机器1601和1602的,每个都正在运行LRE 1650的本地实例作为其MPRE。主机机器1601的PMAC地址是“PMAC1”,并且其MPRE被选为用于LIF地址2.1.1.251的指定实例。主机机器 1602的PMAC地址是“PMAC2”,并且其MPRE已被选为用于LIF 地址2.1.2.252的指定实例。
图16示出了在标记为“1”至“9”的九个操作中用于解析LIF IP地址的PH的ARP操作。在操作'1',PH 1681选择IP地址2.1.1.251 作为下一跳,但是其路由表1641不具有用于2.1.1.251的条目。PH 1681进而通过利用“ffffffffffff”作为目的地MAC地址来广播针对IP 地址2.1.1.251的ARP查询消息。在操作'2',主机机器1601接收 ARP查询广播。意识到它是用于IP地址2.1.1.251的指定实例,它向 PH 1681发送ARP应答,指示用于该IP地址的MAC地址是“PMAC1”。在操作'3',PH 1681接收ARP应答并且利用“PMAC1”更新其用于2.1.1.251的路由表条目。
在操作'4',PH 1681选择IP地址2.1.2.252作为下一跳,但是其路由表1641不具有用于2.1.2.252的条目。PH 1681进而广播针对IP 地址2.1.2.252的ARP查询消息。在操作'5',主机机器1602接收 ARP查询广播。意识到它是用于IP地址2.1.2.252的指定实例,它向PH 1681发送ARP应答,指示用于该IP地址的MAC地址是“PMAC2”。在操作'6',PH 1681接收ARP应答并且利用“PMAC2”更新其用于2.1.2.252的路由表条目。在操作'1'至'6'之后,路由器 1681将能够使用主机机器1601和1602的MPRE用于路由。
在操作'7',PH 1682还选择IP地址2.1.2.252作为下一跳,但是其路由表1642没有用于2.1.2.252的条目。PH 1682进而广播针对IP 地址2.1.2.252的ARP查询消息。在操作'8',主机机器1602接收 ARP查询广播。意识到它是用于IP地址2.1.2.252的指定实例,它向PH 1682发送ARP应答,指示用于该IP地址的MAC地址是“PMAC2”。在操作'9',PH 1682接收ARP应答并且利用“PMAC2”更新其用于2.1.2.252的路由表条目。在操作'7'至'9'之后,路由器 1682将能够使用主机机器1602的MPRE用于路由。
在一些实施例中,指定实例还用作ARP代理。在一些实施例中,如果指定实例不能解析目的地IP地址,则它执行其自己的ARP。图 17a-b示出了指定实例1601和1602,它们在从PH 1681接收到具有未知目的地IP地址的数据分组时充当ARP代理。如所示出的,PH 1681已经根据先前的ARP操作(即,图16中示出的操作)将其下一跳LIF IP地址2.1.1.251和2.1.2.252解析为“PMAC1”和“PMAC2”。因此,PH 1681能够选择“PMAC1”或“PMAC”用于路由。在一些实施例中,如以上在部分II.b中所讨论的,出于负载均衡目的,这种选择基于ECMP算法。
在标记为“1”至“12”的操作中,图14示出了通过主机机器1601 和1602中的指定实例将分组1771和1772路由到VM 1721和1734。在操作'1',PH 1681发送分组1771。分组1771具有“PMAC1”作为其目的地地址和“2.1.2.101”作为其目的地IP地址。MAC地址“PMAC1”对应于主机机器1601的MPRE。即使用于VLAN100的 LIF的两个IP地址都已被解析,在该操作,PH1681也根据选择算法(例如,用于负载均衡的ECMP)选择2.1.2.101(PMAC1)而不是2.1.3.102(PMAC2)。
在操作'2',主机机器1601基于MAC地址“PMAC1”接收分组 1771,但是其路由表1741不能解析IP地址2.1.2.101。在操作'3',主机机器1601的MPRE广播针对目的地IP地址2.1.2.101的ARP 查询。
在操作'4',主机机器1701的MPRE应答ARP查询,因为主机机器1701正在托管其IP地址为2.1.2.101的VM 1721。ARP应答指示用于2.1.2.101的MAC地址为“MAC21”。在操作'5',主机机器 1601接收ARP应答,并且更新其路由表1741用于2.1.2.101的条目。在操作'6',在解析了用于分组1771的目的地IP地址2.1.2.101之后,主机机器1601通过利用“MAC21”作为目的地地址将数据分组1771 发送到主机机器1701和VM 1721。
在操作'7',在将分组1771发送到用于2.1.1.251(PMAC1)的指定实例之后,PH1681将分组1772发送到用于2.1.2.252(PMAC2) 的指定实例。分组1772具有“PMAC2”作为其目的地地址和“2.1.3.102”作为其目的地IP地址。MAC地址“PMAC2”对应于主机机器1602的MPRE。即使用于VLAN100的LIF的两个IP地址都已被解析,在该操作,PH 1681也根据选择算法(例如,用于负载均衡的ECMP)选择2.1.3.102(PMAC2)而不是2.1.2.101 (PMAC1)。
在操作“8”,主机机器1602基于MAC地址“PMAC2”接收分组 1772,但是其路由表1742不能解析IP地址2.1.3.102。在操作'9',主机机器1602的MPRE广播针对目的地IP地址2.1.3.102的ARP 查询。在操作'10',主机机器1703的MPRE应答ARP查询,因为主机机器1703正在托管其IP地址为2.1.3.102的VM 1734。ARP应答指示用于2.1.3.102的MAC地址为“MAC34”。在操作'11',主机机器 1602接收ARP应答,并且更新其路由表1742用于2.1.3.102的条目。在操作'12',在解析了用于分组1772的目的地IP地址2.1.3.102之后,主机机器1602通过利用“MAC34”作为目的地地址将数据分组1772 发送到主机机器1703和VM 1734。
一旦指定实例的路由表具有用于目的地IP地址的MAC地址解析,具有相同目的地IP地址的任何后续数据分组就可以使用解析的 MAC地址并且将不会使指定实例发起针对那个同一目的地IP地址的另一个ARP请求。图18示出了利用其现有路由表条目路由来自其它PH 1682的数据分组1871而不发起ARP操作的指定实例1601。如所示出的,主机机器1601的路由表1741已经根据先前的ARP操作(即,图17a-b中示出的操作)具有用于2.1.2.101的为“MAC21”的地址解析条目。在标记为“1”至“3”的操作中,该图示出了分组 1871从PH 1682到VM 1721的路由。
在操作'1',PH 1682发送分组1871。分组1871具有“PMAC1”作为其目的地地址和“2.1.2.101”作为其目的地IP地址。MAC地址“PMAC1”对应于主机机器1601的MPRE。在操作“2”,主机机器1601基于MAC地址“PMAC1”接收分组1871,并且其路由表1741 已经具有用于将IP地址2.1.2.101解析为“MAC21”的条目。路由表 1741还基于分组的源IP地址和MAC地址(即,PH 1682的2.1.2.11 和“MAC11”)添加条目以供将来使用。在操作'3',主机机器1601通过利用“MAC21”作为目的地地址将数据分组1871发送到主机机器 1701和VM 1721。
在一些实施例中,指定实例不仅解析来自外部PH的分组的IP 地址,而且解析来自运行LRE的本地实例的主机机器的分组。图19 示出了分组1971从操作MPRE的主机机器1705中的VM 1745到不操作MPRE的物理主机的路由。路由利用用于LIF VLAN100的可用指定实例1601和1602中的路由表条目。主机机器1601的路由表 1741已经根据先前的路由操作(即,图18中分组1871从PH 1682 的路由)具有用于2.1.2.11的为“MAC11”的条目。
在标记为“1”至“6”的操作中,图19示出了分组1971从VM 1745到PH 1682的路由。在操作'1',在主机机器1705上运行的VM 1745正在发送数据分组1971,其具有目的地IP2.1.2.11和目的地 MAC地址“VMAC”。如前面所提到的,“VMAC”是当VM寻址其自己的本地MPRE时使用的MAC地址。由于主机机器1705中的 MPRE不能解析目的地IP地址2.1.2.11,因此主机机器1705分别在操作'2'和'3'向指定实例1601和1602发出解析请求。
在一些实施例中,需要解析目的地IP地址的MPRE将向指定实例请求地址解析。在一些实施例中,MPRE将向与和目的地IP地址在相同IP子网中的LIF地址相关联的指定实例做出这种地址解析请求。在图19的例子中,主机机器1602是用于IP地址2.1.2.252的指定实例,其与目的地地址2.1.2.11在相同的IP子网中。因此,主机机器1705中的MPRE向指定实例1602而不是向其IP地址2.1.1.251 在不同IP子网中的1601做出地址解析请求。在一些实施例中,每个指定实例用于解析与其分配的LIF IP地址在相同子网中的IP地址。
在操作“4”,主机机器1601检查其路由表并且找到IP地址 2.1.2.11作为“MAC11”的条目,并且在操作“5”应答主机机器1705中的MPRE。最后,在操作'6',主机机器1705的MPRE通过利用作为PH 1682的MAC地址的MAC地址“MAC11”将数据分组1671发送到PH 1682。
在一些实施例中,对指定实例的地址解析请求和来自指定实例的地址解析应答是UDP消息。在图19的例子中,指定实例中的一个具有用于目的地IP地址的路由表条目,并且因此能够利用其自己的路由表条目来应答地址解析请求。在一些实施例中,当指定实例在接收到地址解析请求时不能解析目的地IP地址时,其将执行ARP操作以便解析未知的IP地址。图20示出了当指定实例在接收到地址解析请求时不能解析IP地址时其执行的ARP操作。
图20示出了分组2071从VM 1756到PH 1683的路由,PH 1683也是VLAN 100中的物理主机并且通过用于网络段VLAN 100 的LIF连接到LRE。其IP地址是2.1.1.12并且其MAC地址是“MAC12”。该MAC地址对指定实例1601和1602是未知的。换句话说,如果指定实例接收到针对IP地址2.1.1.12的地址解析请求,则它将执行ARP操作。
在标记为“1”至“8”的操作中,图20示出了分组2071从VM 1756到PH 1683的路由。在操作“1”,在主机机器1706上运行的 VM 1756正在发送数据分组2071,其具有目的地IP2.1.1.12和目的地MAC地址“VMAC”。如前面所提到的,“VMAC”是在VM寻址其自己的本地MPRE时由其使用的MAC地址。由于主机机器1706 中的MPRE不能解析目的地IP地址2.1.1.12,因此它在操作'2'和'3' 中分别向指定实例1601和1602发出解析请求。在图20的例子中,主机机器1601是用于IP地址2.1.1.251的指定实例,其与目的地地址2.1.1.12在相同的IP子网中。因此,主机机器1706中的MPRE 向指定实例1601而不是其IP地址2.1.2.252在不同IP子网中的1602 做出地址解析请求。
在操作“4”,主机机器(指定实例)1601检查其路由表并且意识到其没有用于解析IP地址2.1.1.12的条目。因此它广播针对IP地址2.1.1.12的ARP请求。在操作'5',其IP地址为2.1.1.12的PH 1683 利用其MAC地址“MAC12”应答ARP请求。在操作'6',指定实例 1601从PH 1683接收ARP应答,并且更新其自己的路由表1741。在操作'7',指定实例1601向主机机器1706中的MPRE发送地址解析应答消息,通知MPRE用于IP地址2.1.1.12的MAC地址是“MAC12”。在操作'8',主机机器1756中的MPRE通过利用“MAC12”作为目的地MAC地址将分组2071转发到PH 1683。
在图19和20的例子中,被路由的分组(1971和2071)由在不是指定实例(在主机机器1705和1706上运行的VM 1745和1756) 的主机机器上操作的VM寻求来源。但是,本领域普通技术人员将理解,在图19和20中示出的操作也可以对在指定实例主机机器上操作的VM执行。
对于一些实施例,图21概念性地示出了用于在MPRE处处理数据分组的过程2100。在一些实施例中,过程2100由作为指定实例的 MPRE以及不是指定实例的MPRE执行。过程2100在它基于目的地 MAC地址接收(在2105)分组时开始。目的地MAC地址可以是广播MAC地址(例如,ffffffffffff)或接收MPRE的MAC地址(即,其PMAC地址或所有MPRE的通用VMAC地址)。然后,该过程确定(在2110)分组是否是针对IP地址的ARP查询。如果分组是 ARP查询,则该过程前进到2120。否则,该过程前进到2140。
在2120,该过程检查这个MPRE是否是被ARP查询的IP地址的指定实例。如果这个MPRE是用于被ARP查询的IP地址的指定实例,则该过程利用其自己唯一的PMAC地址响应(在2130)ARP 查询并且结束。否则,过程2100忽略(在2135)ARP查询并且结束。
在2140,该过程确定目的地IP地址是否在MPRE的路由表中。如果目的地IP地址不在路由表中,则该过程前进到2150。如果目的地IP在路由表中,则该过程通过利用用于目的地IP地址的路由表条目以寻找对应的MAC地址来路由(在2145)分组。然后,该过程通过利用MAC地址作为分组的目的地地址来转发(在2148)分组。在一些实施例中,这种转发操作通过利用主机机器的MPSE来执行。然后过程2100结束。
在2150,该过程选择用于解析IP地址的指定实例。如所提到的,在一些实施例中,每个LIF具有多个IP地址,并且每个IP地址被分配给指定实例。在一些实施例中,该过程将向对应于与目的地IP 地址在相同IP子网中的LIF IP地址的指定实例做出地址解析请求。然后,该过程确定(在2155)这个MPRE本身是否是选定的指定实例。如果这个MPRE是选定的指定实例本身,则该过程前进到2180。如果这个MPRE不是选定的指定实例,或者根本不是指定实例,则该过程从选定的指定实例请求(在2160)地址解析。然后,该过程从指定实例接收(在2165)地址解析。在一些实施例中,这种地址解析请求和应答作为UDP消息在指定实例和请求地址解析的主机机器之间传送。然后,该过程基于接收到的地址解析更新(在2170)MPRE的路由表,并且前进到2145以路由数据分组。
在2180,由于MPRE是选定的指定实例但不能从其现有路由表条目中解析目的地IP地址,因此该过程执行ARP操作来解析IP地址。在做出ARP请求并且接收到对ARP的应答之后,过程2100前进到2170来更新其路由表、路由(在2145)数据分组、转发(在 2148)数据分组、并且结束。
对于一些实施例,图22概念性地示出了用于在指定实例MPRE 处执行地址解析的过程2200。该过程在其从主机机器(例如,从执行过程2100的MPRE)接收(在2210)用于具有未知MAC地址的目的地IP地址的地址解析请求消息时开始。然后,该过程确定(在 2220)它是否能够本地解析所请求的目的地IP地址,即,所请求的地址是否在MPRE自己的路由表中。如果是,则该过程前进到2250。如果该过程不能解析所请求的地址,则它前进到2230以广播针对所请求的目的地IP地址的ARP请求。然后,在该过程接收到承载所解析的MAC地址的对应ARP应答之后,该过程更新(在2240)其路由表。然后,该过程通过向请求者通知所解析的MAC地址来应答(在2250)地址解析请求。然后过程2200结束。在一些实施例中,地址解析请求消息和地址解析应答消息是UDP消息。
图23概念性地示出了在一些实施例中用于在MPRE处执行分组路由和转发的过程2300。在一些实施例中,过程2300作为过程2100 中的操作2145和2148的一部分来执行。过程2300在其接收到具有解析的目的地MAC地址的数据分组时开始。MAC地址可以作为在发送者处已被解析的数据分组的一部分。这个MPRE也可以通过利用其自己的路由表、从指定实例请求地址解析、或通过执行ARP操作来本地解析MAC地址。解析的MAC地址通知该过程用于该消息的下一跳。然后,该过程确定(在2320)目的地MAC地址是否属于在这个主机机器上运行的VM。如果是,则该过程将分组转发(在 2325)到由该MAC地址识别的VM。否则,该过程将分组转发(在 2330)到这个主机机器之外。然后过程2300结束。
III.逻辑路由元件的配置
在一些实施例中,如上所述在主机机器中本地操作为MPRE (或者用于路由和/或用于桥接)的LRE具体实例通过由控制器集群生成的配置数据集进行配置。在一些实施例中,控制器又基于由不同租户或用户创建和指定的逻辑网络生成这些配置数据集。在一些实施例中,用于网络虚拟化基础设施的网络管理器允许用户生成可以在网络虚拟化基础设施上实现的不同逻辑网络,并且然后将这些逻辑网络的参数推送到控制器,以便控制器可以生成特定于主机机器的配置数据集,包括用于LRE的配置数据。在一些实施例中,网络管理器向主机机器提供用于从控制器获取用于LRE的配置数据的指令。
对于一些实施例,图24示出了网络虚拟化基础设施2400,其中逻辑网络规范被转换为用于主机机器中的LRE(是MPRE/桥)的配置。如所示出的,网络虚拟化基础设施2400包括网络管理器2410、一个或多个控制器集群2420、以及通过物理网络互连的主机机器2430。主机机器2430包括主机机器2431-2439,但是主机机器2435- 2439没有在这个图中示出。
网络管理器2410提供用于一个或多个用户创建的逻辑网络的规范。在一些实施例中,网络管理器包括一套让用户指定可以通过网络虚拟化基础设施2400进行虚拟化的其自己的逻辑网络的应用。在一些实施例中,网络管理器为用户提供应用编程接口(API),以在编程环境中指定逻辑网络。网络管理员又将这些创建的逻辑网络推送到控制器集群2420以便在主机机器处实现。
控制器集群2420包括用于控制在网络虚拟化基础设施2400中的主机机器2430的操作的多个控制器。控制器基于由网络管理器创建的逻辑网络创建用于主机机器的配置数据集。控制器还动态地向主机机器2431-2434提供配置更新和路由信息。在一些实施例中,控制器被组织,以便提供分布式或弹性控制平面体系架构,以便确保即使某个控制平面节点失效,每个主机机器仍然可以接收更新和路由。在一些实施例中,控制器中的至少一些是在主机机器中操作的虚拟机。
主机机器2430操作LRE并且从控制器集群2420接收用于将 LRE配置为MPRE/桥的配置数据。每个主机机器包括用于从控制器集群2420检索配置数据的控制器代理。在一些实施例中,每个主机机器根据VDR控制平面更新其MPRE转发表。在一些实施例中, VDR控制平面通过利用诸如OSPF(开放最短路径优先)或BGP (边界网关协议)的标准路由交换协议与路由对等端通信,以通告/ 确定最佳路由。
图24还示出了在网络虚拟化基础设施2400中发生的以便配置主机机器2430中的LRE的操作。在操作“1”中,网络管理器2410向主机机器传递用于获取用于LRE的配置的指令。在一些实施例中,该指令包括指向控制器集群2420中的特定位置的地址。在操作“2”中,网络管理器2410将逻辑网络规范发送到集群2420中的控制器,并且控制器生成用于各个主机机器和LRE的配置数据。
在操作“3”中,在主机机器2430中操作的控制器代理基于在操作“2”处接收到的指令从控制器集群2420发送对于LRE配置的请求。即,控制器代理联系它们通过网络管理器2410指向的控制器。在操作“4”中,控制器集群2420响应于请求向主机机器提供LRE配置。
图25概念性地示出了从网络管理器2410向在各个主机机器 2431-2434中操作的LRE交付配置数据。如所示出的,网络管理器 2410根据用户规范创建用于不同租户的逻辑网络。网络管理器将创建的逻辑网络2510和2520的描述交付给控制器2420。控制器2420 又将逻辑网络描述2510和2520处理为用于分别交付给各个主机机器 2431-2434的配置数据集2531-2534。但是,在其它实施例中,网络管理器生成这些配置数据集,并且控制器只负责交付给主机机器。这些配置数据集又被使用来配置不同逻辑网络的LRE,以操作为各个主机机器中的MPRE。
图26示出了被交付给各个主机机器的配置数据集的结构。该图示出了用于主机机器2431-2439的配置数据集2531-2537。主机机器针对两个不同的租户X和Y操作两个LRE2610和2620。主机机器 2431、2432、2434和2437每个被配置为操作(租户X的)LRE 2610的MPRE,而主机机器2432、2433、2434和2435每个被配置为操作(用于租户Y的)LRE 2620的MPRE。值得注意的是,用于不同租户的不同逻辑网络的不同LRE可以驻留在同一主机机器中,如以上参考图4所讨论的。在图26的例子中,主机机器2432为用于租户X的LRE 2610和用于租户Y的LRE 2620两者操作MPRE。
用于租户X的LRE 2610包括用于网络段A、B和C的LIF。用于租户Y的LRE 2620包括用于网络段D、E和F的LIF。在一些实施例中,每个逻辑接口特定于逻辑网络,并且在用于不同租户的不同 LRE中可以不出现逻辑接口。
在一些实施例中,用于主机的配置数据包括其VMAC(这对所有主机是通用的)、其唯一PMAC、以及在那个主机上运行的LRE 列表。例如,用于主机2433的配置数据将表明主机2433正在操作用于LRE 2620的MPRE,而用于主机2434的配置数据将表明主机 2434正在操作用于LRE 2610和LRE 2620的MPRE。在一些实施例中,用于给定主机机器的租户X的MPRE和用于租户Y的MPRE 两者都可通过分配给该主机机器的同一唯一的PMAC寻址。
在一些实施例中,用于LRE的配置数据包括LIF列表、路由/转发表、以及控制器集群信息。在一些实施例中,控制器集群信息通知主机在哪里获得更新的控制和配置信息。在一些实施例中,用于 LRE的配置数据被复制用于跨不同主机机器的所有LRE的具体实例(即,MPRE)。
在一些实施例中,用于LIF的配置数据包括逻辑接口的名称 (例如,UUID)、其IP地址集合、其MAC地址(即LMAC或 VMAC)、其MTU(最大传输单元)、其目的地信息(例如,与它接口的网络段的VNI)、它在特定主机上是活动的还是不活动的、以及它是桥LIF还是路由LIF。用于LIF的配置数据还包括指定实例标准字段2650。
在一些实施例中,指定实例标准是指示在主机上作为其MPRE 运行的LRE是否是指定实例并且是否需要对物理主机执行地址解析的面向外部的参数。在一些实施例中,用于指定实例的这种标准是用于LIF的IP地址列表(例如,2650),以及被选择用作那些IP地址的指定实例/指定主机机器的主机机器的对应标识符。在一些实施例中,接收配置数据的主机机器通过检查列表2650来确定其是否是用于LIF IP地址中的一个的指定主机机器(即,操作作为指定实例的MPRE)。当主机机器(例如,主机2)在指定实例标准2650中看到与那个特定LIF IP地址相关联的其自身的标识符时,它知道将其MPRE操作为用于特定LIF IP地址(例如,2.1.2.252)的指定实例。
在一些实施例中,LRE通过在网络管理器中操作的API来配置或控制。例如,一些实施例提供用于创建LRE、删除LRE、添加 LIF和删除LIF的API。在一些实施例中,控制器不仅提供用于配置在主机机器中操作(作为MPRE/桥)的LRE的静态配置数据,而且还向作为MPRE运行的本地LRE具体实例提供静态和/或动态路由信息。一些实施例提供用于更新LIF的API(例如,以更新LIF的MTU/MAC/IP信息),以及添加或修改用于给定LRE的路由条目。在一些实施例中,路由条目包括诸如目的地IP或子网掩码、下一跳信息、逻辑接口、度量、路由类型(邻居条目或下一跳或接口等)、路由控制标志、以及动作(诸如转发、黑洞等)的信息。
一些实施例动态地收集和交付用于作为MPRE操作的LRE的路由信息。图27示出了用于LRE的动态路由信息的收集和交付。如所示出的,网络虚拟化基础设施2400不仅包括控制器集群2420和主机机器2430,它还包括操作用于收集和分发动态路由信息的虚拟机(“边缘VM”)的主机机器2440。在一些实施例中,边缘VM 2440 执行OSPF或BGP协议并且表现为用于另一个LAN或其它网络的外部路由器。在一些实施例中,边缘VM 2440从其它路由器获知网络路由。在其自己的网络段中验证获知的路由之后,边缘VM 2440 将获知的路由发送到控制器集群2420。控制器集群2420又把获知的路由传播到主机机器2430中的MPRE。
IV.电子系统
许多上述特征和应用被实现为软件过程,其被指定为记录在计算机可读存储介质(也被称为计算机可读介质)上的一组指令。当这些指令被一个或多个处理单元(例如,一个或多个处理器、处理器内核、或其它处理单元)执行时,它们使得这(一个或多个)处理单元执行在指令中指示的动作。计算机可读介质的例子包括,但不限于,CD- ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”是指包括驻留在只读存储器中的固件或者可以被读入到存储器中以供被处理器处理的存储在磁存储装置中的应用。此外,在一些实施例中,多个软件发明可以被实现为更大程序的子部分,同时保留独特的软件发明。在一些实施例中,多个软件发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任意组合是在本发明的范围之内。在一些实施例中,当软件程序被安装,以在一个或多个电子系统上操作时,该软件程序定义执行该软件程序的操作的一个或多个特定的机器实现。
图28概念性地示出了本发明的一些实施例利用其来实现的电子系统2800。可以使用电子系统2800来执行上述控制、虚拟化或操作系统应用中的任意种。电子系统2800可以是计算机(例如,台式计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机等)、电话、PDA或任何其它种类的电子设备。这种电子系统包括用于各种其它类型的计算机可读介质的各种类型的计算机可读介质和接口。电子系统2800包括总线2805、(一个或多个)处理单元 2810、系统存储器2825、只读存储器2830、永久存储设备2835、输入设备2840、以及输出设备2845。
总线2805统一地表示通信连接电子系统2800的众多内部设备的所有系统、外设和芯片组总线。例如,总线2805将(一个或多个) 处理单元2810与只读存储器2830、系统存储器2825、永久存储设备 2835通信地连接。
从这些各种存储器单元中,(一个或多个)处理单元2810检索要执行的指令和要处理的数据,以便执行本发明的过程。(一个或多个)处理单元在不同实施例中可以是单个处理器或多核心处理器。
只读存储器(ROM)2830存储由(一个或多个)处理单元2810 和电子系统的其它模块所需要的静态数据和指令。另一方面,永久存储设备2835是读和写存储器设备。这个设备是即使当电子系统2800 关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(诸如磁或光盘及其对应的盘驱动器)作为永久存储设备2835。
其它实施例使用可移除存储设备(诸如软盘、闪存驱动器等)作为永久存储设备。与永久存储设备2835一样,系统存储器2825是读和写存储器设备。但是,与存储设备2835不同,系统存储器是易失性读和写存储器,诸如随机存取存储器。系统存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的过程被存储在系统存储器2825、永久存储设备2835和/或只读存储器2830中。从这些各种存储器单元中,(一个或多个)处理单元2810检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
总线2805还连接到输入和输出设备2840和2845。输入设备使用户能够传递信息和选择到电子系统的命令。输入设备2840包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备2845 显示由电子系统生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括诸如用作输入和输出设备两者的触摸屏的设备。
最后,如在图28中所示,总线2805还通过网络适配器(未示出) 将电子系统2800耦合到网络2865。以这种方式,计算机可以是计算机的网络(诸如局域网(“LAN”)、广域网(“WAN”)、或内联网、或诸如互联网的网络的网络)的一部分。电子系统2800的任何或所有组件可以与本发明结合使用。
一些实施例包括电子组件,诸如微处理器、在机器可读或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储设备和存储器。这种计算机可读介质的一些例子包括RAM、ROM、只读压缩盘(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM,双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡、小型SD卡、微型SD卡等)、磁和/或固态硬盘驱动器、只读和可记录
Figure GDA0003030061360000421
盘、超密度光盘、任何其它光或磁介质、以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的例子包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件、或利用解释器的微处理器执行的更高级代码的文件。
虽然以上讨论主要指执行软件的微处理器或多核处理器,但是一些实施例通过一个或多个集成电路,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)来执行。在一些实施例中,这种集成电路执行在该电路自身上存储的指令。
如在本说明书中所使用的,术语“计算机”、“服务器”、“处理器”、以及“存储器”都是指电子或其它技术设备。这些术语不包括人或人群。为了本说明书的目的,术语显示或正在显示意味着在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“多个计算机可读介质”和“机器可读介质”被完全限制为以由计算机可读的形式存储信息的、有形的、物理的对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂信号。
虽然本发明已经参考许多特定细节进行了描述,但是本领域普通技术人员将认识到,在不脱离本发明的精神的情况下,本发明可以以其它特定形式体现。此外,多个图(包括图14、15、18、21、22和 23)概念性地示出了过程。这些过程的特定操作可能没有以与所示出和描述的确切顺序执行。特定操作可能没有在一系列连续的操作中执行,并且不同的特定操作可能在不同的实施例中执行。此外,过程可以利用若干个子过程来实现,或者作为较大宏过程的一部分来实现。因此,本领域普通技术人员将理解,本发明不受上述说明性细节的限制,而是由所附权利要求来限定。

Claims (20)

1.一种方法,包括:
在多个主机机器中预配逻辑网络的逻辑路由元件LRE,每个主机机器执行一组虚拟机VM并操作受管理物理路由元件MPRE,所述MPRE用于将来自在所述主机机器上执行的VM中的一个VM的数据分组路由到逻辑网络中的网络节点以便实现LRE;
向不实现LRE的一组物理机器提供多个地址解析协议ARP网关地址;以及
将多个ARP网关地址的不同子集分配给操作LRE的不同主机机器,其中分配有ARP网关地址的子集的每个主机机器都响应针对其所分配的ARP网关地址的子集中的地址的ARP请求。
2.如权利要求1所述的方法,其中,分配有所述ARP网关地址的子集的每个主机机器都响应来自所述一组物理机器的针对其所分配的ARP网关地址的子集中的地址的ARP请求。
3.如权利要求2所述的方法,其中,分配有所述ARP网关地址的子集的每个主机机器忽略来自物理机器的针对不在其所分配的ARP网关地址的子集中的地址的ARP请求。
4.如权利要求1所述的方法,其中,所述逻辑网络包括多个网络段,其中每个相应的ARP网关地址与相应的网络段相关联。
5.如权利要求4所述的方法,其中,所述多个网络段中的至少一个与多个ARP网关地址相关联。
6.如权利要求4所述的方法,其中,所述网络段中的至少一个对应于覆盖封装网络。
7.如权利要求1所述的方法,其中,所述多个主机机器中的至少一个主机机器没有被分配任何所述ARP网关地址。
8.如权利要求1所述的方法,其中,在分配有所述ARP网关地址的子集的主机机器上操作的MPRE还对从所述物理机器发送到在所述主机机器上执行的VM的数据分组执行L3路由。
9.如权利要求1所述的方法,其中,分配有所述ARP网关地址的子集的每个主机机器通过将针对其请求了ARP的IP地址解析为所述主机机器的MAC地址来响应针对其所分配的ARP网关地址的子集中的地址的ARP请求。
10.如权利要求1所述的方法,其中,每个主机机器的MPRE对从在所述主机机器上执行的VM发送到所述一组物理机器的数据分组执行L3路由。
11.一种存储程序的机器可读介质,所述程序在由至少一个处理单元实现时实现如权利要求1-10中任一项所述的方法。
12.一种计算设备,包括:
一组处理单元;和
存储程序的机器可读介质,所述程序在由至少一个所述处理单元实现时实现如权利要求1-10中任一项所述的方法。
13.一种系统,包括用于实现如权利要求1-10中的任一项所述的方法的装置。
14.一种系统,包括:
多个实现逻辑网络的主机机器,所述逻辑网络包括用于路由逻辑网络的分组的逻辑路由元件LRE,每个主机机器操作一组虚拟机VM和受管理物理路由元件MPRE,所述MPRE用于路由从在主机机器上操作的VM发送到逻辑网络中的网络节点的数据分组以便实现LRE;和
不实现LRE的物理机器,其中,在多个主机机器的子集上操作的多个MPRE被选择为指定实例,用于将数据分组从物理机器路由到逻辑网络中的网络节点,其中多个MPRE中在所述子集中的每个MPRE被分配有不同的IP地址,用于响应来自物理机器的地址解析协议ARP查询。
15.如权利要求14所述的系统,其中,被选择为指定实例的每个所述MPRE通过将所述IP地址解析为其自身的MAC地址来响应针对其所分配的IP地址的ARP查询。
16.如权利要求14所述的系统,其中,分配给所述子集中的MPRE的不同IP地址属于相同的网络段。
17.如权利要求16所述的系统,其中,所述网络段对应于覆盖封装网络。
18.如权利要求16所述的系统,其中,所述网络段包括多个IP子网。
19.如权利要求16所述的系统,其中,所述不同IP地址属于至少两个不同的IP子网。
20.如权利要求14所述的系统,其中,每个主机机器的MPRE对从所述主机机器的VM发送到所述物理机器的数据分组执行L3路由。
CN202110052540.4A 2014-03-27 2014-12-30 使用逻辑路由器进行地址解析的方法、设备、系统及介质 Active CN112910750B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US14/227,964 2014-03-27
US14/227,959 US9413644B2 (en) 2014-03-27 2014-03-27 Ingress ECMP in virtual distributed routing environment
US14/227,964 US9893988B2 (en) 2014-03-27 2014-03-27 Address resolution using multiple designated instances of a logical router
US14/227,959 2014-03-27
PCT/US2014/072866 WO2015147942A1 (en) 2014-03-27 2014-12-30 Ingress ecmp in virtual distributed routing environment
CN201480079219.3A CN106576075B (zh) 2014-03-27 2014-12-30 在网络虚拟化基础设施上操作逻辑网络的方法和系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480079219.3A Division CN106576075B (zh) 2014-03-27 2014-12-30 在网络虚拟化基础设施上操作逻辑网络的方法和系统

Publications (2)

Publication Number Publication Date
CN112910750A CN112910750A (zh) 2021-06-04
CN112910750B true CN112910750B (zh) 2022-07-22

Family

ID=52462389

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110052540.4A Active CN112910750B (zh) 2014-03-27 2014-12-30 使用逻辑路由器进行地址解析的方法、设备、系统及介质
CN201480079219.3A Active CN106576075B (zh) 2014-03-27 2014-12-30 在网络虚拟化基础设施上操作逻辑网络的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201480079219.3A Active CN106576075B (zh) 2014-03-27 2014-12-30 在网络虚拟化基础设施上操作逻辑网络的方法和系统

Country Status (3)

Country Link
EP (2) EP3629529B1 (zh)
CN (2) CN112910750B (zh)
WO (1) WO2015147942A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977685B2 (en) 2013-10-13 2018-05-22 Nicira, Inc. Configuration of logical router
US9590901B2 (en) 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10038628B2 (en) 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US10243848B2 (en) 2015-06-27 2019-03-26 Nicira, Inc. Provisioning logical entities in a multi-datacenter environment
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US10616045B2 (en) 2016-12-22 2020-04-07 Nicira, Inc. Migration of centralized routing components of logical router
CN107547342B (zh) * 2017-06-27 2020-09-08 新华三技术有限公司 基于vxlan隧道的报文广播方法和装置
US10541925B2 (en) * 2017-08-31 2020-01-21 Microsoft Technology Licensing, Llc Non-DSR distributed load balancer with virtualized VIPS and source proxy on load balanced connection
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
TWI813742B (zh) * 2018-08-23 2023-09-01 美商阿爾克斯股份有限公司 在網路路由環境中的非同步物件管理機制
US11316773B2 (en) 2020-04-06 2022-04-26 Vmware, Inc. Configuring edge device with multiple routing tables
CN115914069A (zh) * 2021-09-30 2023-04-04 中兴通讯股份有限公司 数据转发方法、系统、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101816168A (zh) * 2007-10-02 2010-08-25 爱立信电话股份有限公司 Vrrp和学习网桥cpe
CN102334111A (zh) * 2009-03-30 2012-01-25 亚马逊技术有限公司 为受管计算机网络提供逻辑联网功能
US8560646B1 (en) * 2010-09-28 2013-10-15 Amazon Technologies, Inc. Managing communications using alternative packet addressing
CN103595648A (zh) * 2012-08-17 2014-02-19 国际商业机器公司 用于在服务器的接收侧进行负载均衡的方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808030B (zh) * 2010-03-01 2013-01-30 浙江大学 一种基于虚拟路由器的逻辑网络构建方法
US10142218B2 (en) * 2011-01-14 2018-11-27 International Business Machines Corporation Hypervisor routing between networks in a virtual networking environment
US8856518B2 (en) * 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US8923149B2 (en) * 2012-04-09 2014-12-30 Futurewei Technologies, Inc. L3 gateway for VXLAN
US8972602B2 (en) * 2012-06-15 2015-03-03 Citrix Systems, Inc. Systems and methods for using ECMP routes for traffic distribution
CN103491006B (zh) * 2013-09-13 2016-08-17 清华大学 虚拟网络路由器的数据统一转发方法
US9977685B2 (en) 2013-10-13 2018-05-22 Nicira, Inc. Configuration of logical router

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101816168A (zh) * 2007-10-02 2010-08-25 爱立信电话股份有限公司 Vrrp和学习网桥cpe
CN102334111A (zh) * 2009-03-30 2012-01-25 亚马逊技术有限公司 为受管计算机网络提供逻辑联网功能
US8560646B1 (en) * 2010-09-28 2013-10-15 Amazon Technologies, Inc. Managing communications using alternative packet addressing
CN103595648A (zh) * 2012-08-17 2014-02-19 国际商业机器公司 用于在服务器的接收侧进行负载均衡的方法和系统

Also Published As

Publication number Publication date
EP3629529A1 (en) 2020-04-01
EP3629529B1 (en) 2022-08-31
EP3123672B1 (en) 2019-11-20
CN106576075B (zh) 2021-01-26
EP3123672A1 (en) 2017-02-01
CN106576075A (zh) 2017-04-19
WO2015147942A1 (en) 2015-10-01
CN112910750A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US11736394B2 (en) Address resolution using multiple designated instances of a logical router
CN112910750B (zh) 使用逻辑路由器进行地址解析的方法、设备、系统及介质
US12073240B2 (en) Configuration of logical router
US9413644B2 (en) Ingress ECMP in virtual distributed routing environment
CN112039768B (zh) 虚拟分布式路由环境中的中间逻辑接口
US20220311705A1 (en) Leveraging Multicast Listener Discovery for Discovering Hosts

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