CN111585889A - 逻辑路由器 - Google Patents

逻辑路由器 Download PDF

Info

Publication number
CN111585889A
CN111585889A CN202010472379.1A CN202010472379A CN111585889A CN 111585889 A CN111585889 A CN 111585889A CN 202010472379 A CN202010472379 A CN 202010472379A CN 111585889 A CN111585889 A CN 111585889A
Authority
CN
China
Prior art keywords
logical
network
mpre
host
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
CN202010472379.1A
Other languages
English (en)
Other versions
CN111585889B (zh
Inventor
G·钱德拉谢卡
R·K·夏布拉玛尼亚
R·D·辛格
V·埃加瓦尔
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
Application filed by Nicira Inc filed Critical Nicira Inc
Publication of CN111585889A publication Critical patent/CN111585889A/zh
Application granted granted Critical
Publication of CN111585889B publication Critical patent/CN111585889B/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/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开涉及逻辑路由器。一些实施例提供了包括用于托管若干个虚拟机的若干个主机机器和用于互连主机机器的物理网络的系统。每个主机机器包括受管理的物理交换元件(MPSE),其包括用于执行去向和来自一组在主机机器上运行的虚拟机的分组的链路层转发的若干个端口。每个端口与唯一的媒体访问控制(MAC)地址相关联。每个主机机器包括受管理的路由元件(MPRE),用于从MPSE的端口接收数据分组和执行网络层路由,以便将接收到的数据分组从第一网络段的第一虚拟机转发到第二网络段的第二虚拟机。

Description

逻辑路由器
本申请是申请日为2014年10月10日、申请号为201480056094.2、发明名称为“逻辑路由器”的发明专利申请的分案申请。
技术领域
本发明公开通常涉及逻辑路由器。
背景技术
在网络虚拟化环境中,部署在管理程序上的较常见的应用之一是3层(3-tier)应用,其中网络层、数据库层和应用层在不同的L3子网上。这需要穿过一个子网中的一个虚拟机(VM)到另一个子网中的另一个虚拟机的IP分组首先到达L3路由器,然后被转发到目的地VM。即使目的地VM被托管在与发端VM相同的主机机器上,也是这种情况。
这产生了不必要的网络流量并且导致较高的延迟和较低的吞吐量,这显著地降低了在管理程序上运行的应用的性能。一般而言,只要任何两个VM是彼此通信的两个不同IP子网,这种性能降低就会发生。
图1示出了通过网络虚拟化基础设施实现的逻辑网络100,其中在不同段或子网上的虚拟机(VM)通过共享路由器110进行通信。如所示出的,VM 121-129在主机机器131-133上运行,这些主机机器是通过物理网络105通信地链接的物理机器。
VM在网络的不同段中。具体而言,VM 121-125在网络的段A中,VM 126-129在网络的段B中。在网络的相同段中的VM能够利用链路层(L2)协议彼此通信,而在网络的不同段中的VM不能利用链路层协议彼此通信,并且必须通过网络层(L3)路由器或网关彼此通信。在不同主机机器中操作的VM通过物理网络105中的网络流量彼此通信,无论它们是否处于相同的网络段中。
主机机器131-133正在运行实现软件交换机的管理程序,其允许在同一主机机器内的相同段中的VM彼此本地通信而无需经过物理网络105。但是,属于不同段的VM必须经过只有在物理网络的后面才能到达的L3路由器,诸如共享路由器110。即使在相同主机机器中操作的VM之间也是这种情况。例如,VM 125和VM 126之间的流量必须经过物理网络105和共享路由器110,即使它们两者都在主机机器132上操作。
所需要的是用于在VM可以运行的每个主机处转发L3分组的分布式路由器。该分布式路由器应该使得能够在本地(即,在起始管理程序处)转发数据分组,使得在源VM和目的地VM之间恰好只有一跳。
发明内容
为了便于在虚拟化网络环境中的主机机器上运行的逻辑网络的虚拟机(VM)之间的L3分组转发,一些实施例定义了用于逻辑网络的逻辑路由器或者逻辑路由元件(LRE)。在一些实施例中,LRE跨其逻辑网络的主机机器分布式地操作为虚拟分布式路由器(VDR),其中每个主机机器将其自己的LRE的本地实例操作为受管理的物理路由元件(MPRE),用于为在那个主机上运行的VM执行L3分组转发。在一些实施例中,MPRE允许在同一主机机器上运行的VM之间的分组的L3转发在主机机器处本地执行,而不必经过物理网络。一些实施例定义了用于不同租户的不同LRE,并且主机机器可以将不同的LRE操作为多个MPRE。在一些实施例中,在同一主机机器上运行的用于不同租户的不同MPRE在受管理的物理交换元件(MPSE)上共享同一端口和同一L2 MAC地址。
在一些实施例中,LRE包括一个或多个逻辑接口(LIF),每个逻辑接口用作到网络的特定段的接口。在一些实施例中,每个LIF可以通过其自己的IP地址寻址并且用作其网络的特定段的网络节点(例如,VM)的缺省网关或ARP代理。每个网络段具有其自己的到LRE的逻辑接口,并且每个LRE具有其自己的一组逻辑接口。每个逻辑接口具有在网络虚拟化基础设施内唯一的、其自己的标识符(例如,IP地址或覆盖网络标识符)。
在一些实施例中,采用此类逻辑路由器的逻辑网络通过使在不同主机机器中操作的MPRE对所有虚拟机看起来是相同的来进一步增强网络虚拟化。在这些实施例中的一些实施例中,可通过对于系统中所有LRE相同的虚拟MAC地址(VMAC)在L2数据链路层处对每个LRE寻址。每个主机机器与唯一的物理MAC地址(PMAC)相关联。可由其它主机机器通过物理网络利用其主机机器的唯一PMAC来对实现特定LRE的每个MPRE唯一寻址。在一些实施例中,离开MPRE的每个分组具有VMAC作为源地址,并且在分组进入PNIC和离开主机到物理网络之前,主机机器将把源地址改变为唯一PMAC。在一些实施例中,进入MPRE的每个分组具有VMAC作为目的地地址,并且如果目的地地址是与主机相关联的唯一PMAC地址,则主机将把目的地MAC地址改变为通用VMAC。在一些实施例中,网络段的LIF用作用于在该网络段中的VM的缺省网关。接收对其LIF中的一个的ARP查询的MPRE在本地响应查询,而无需将查询转发到其它主机机器。
为了为不运行虚拟化软件或操作MPRE的物理主机机器执行L3层路由,一些实施例指定运行在主机机器上的MPRE来充当用于这些非-VDR主机机器中的每一个的专用路由代理(指定的实例或指定的MPRE)。在一些实施例中,从虚拟机到物理主机的数据流量通过各个MPRE进行,而从物理主机到虚拟机的数据流量必须经过指定的MPRE。
在一些实施例中,在主机机器中的至少一个MPRE被配置为桥接MPRE,并且这种桥包括被配置为用于桥接而不是用于路由的逻辑接口。配置为用于路由的逻辑接口(路由LIF)通过将L3层网络地址解析为L2 MAC地址而在逻辑网络的不同段之间执行L3层路由。配置为用于桥接的逻辑接口(桥接LIF)通过将MAC地址与网络段标识符(例如,VNI)或逻辑接口绑定来执行桥接。
在一些实施例中,在如上所述的主机机器中操作的LRE通过由控制器集群生成的配置数据集进行配置。在一些实施例中,控制器又基于被不同租户或用户创建和指定的逻辑网络生成这些配置数据集。在一些实施例中,用于网络虚拟化基础设施的网络管理器允许用户生成可以通过网络虚拟化基础设施实现的不同的逻辑网络,并且然后将这些逻辑网络的参数推送到控制器,以便控制器能够生成特定于主机机器的配置数据集,包括用于LRE的配置数据。在一些实施例中,网络管理器向主机机器提供用于提取用于LRE的配置数据的指令。
一些实施例动态地收集和交付用于LRE的路由信息。在一些实施例中,边缘VM从其它路由器获知网络路由并且将获知的路由发送到控制器集群,控制器集群又将获知的路由传播到在主机机器中操作的LRE。
前面的发明内容旨在用作对本发明的一些实施例的简要介绍。它并不意味着是本文档中所公开的所有发明性主题的介绍或概述。以下的具体实施方式和在具体实施方式中参考的附图说明将进一步描述在发明内容以及其它实施例中所描述的实施例。因此,为了理解本文档所描述的所有实施例,需要对发明内容、具体实施方式和附图说明进行全面地阅读。此外,所要求保护的主题不受在发明内容、具体实施方式和附图说明中的说明性细节的限制,而是要由所附权利要求来限定,这是因为所要求保护的主题可以在不背离本主题的精神的情况下以其它特定的形式来体现。
附图说明
本发明的新颖特征在所附权利要求中阐述。但是,出于解释的目的,本发明的若干种实施例在以下图中阐述。
图1示出了通过网络虚拟化基础设施实现的逻辑网络,其中在不同段或子网上的虚拟机(VM)通过共享路由器进行通信。
图2示出了由在主机机器中本地操作为MPRE的LRE执行的分组转发操作。
图3示出了运行操作用于LRE的MPRE的虚拟化软件的主机机器。
图4示出了通过MPSE进行的L2转发操作。
图5a-b示出了通过MPRE结合MPSE的L3路由操作。
图6a-b示出了通过MPRE为来自主机之外的分组执行的L3路由操作。
图7概念性地示出了具有由跨不同主机机器的MPRE实现的LRE的逻辑网络。
图8示出了在网络虚拟化基础设施的主机机器中的MPRE的物理实现。
图9示出了来自不同段的虚拟机的数据分组如何被定向到主机内的不同逻辑接口。
图10示出了在主机机器中操作的示例MPRE的框图。
图11概念性地示出了当处理来自MPSE的数据分组时由MPRE执行的过程。
图12示出了用于一些实施例的、具有可通过共用VMAC和唯一PMAC寻址的MPRE的逻辑网络。
图13示出了使用共用VMAC和唯一PMAC的示例路由的L3网络流量。
图14概念性地示出了用于通过上行链路模块执行的预处理操作的过程。
图15概念性地示出了用于通过上行链路模块执行的后处理操作的过程。
图16示出了用于在逻辑网络中的LRE的逻辑接口的ARP查询操作。
图17示出了用于一些实施例的、MPRE发起的ARP查询。
图18示出了MPRE充当用于响应该MPRE能够解析的ARP询问的代理。
图19示出了在用于与发送者MPRE处于相同主机机器内的虚拟机的ARP询问中使用唯一PMAC。
图20和21示出了在MPRE已更新其解析表之后在不同段的VM之间的消息传递操作。
图22概念性地示出了用于通过利用MPRE为到来数据分组处理地址解析的过程。
图23示出了指定用于处理去向和来自物理主机的分组的L3路由的MPRE的逻辑网络。
图24示出了由逻辑网络中的非-VDR物理主机发起的ARP操作。
图25示出了使用指定的MPRE用于将来自不同主机上的虚拟机的分组路由到物理主机。
图26a-b示出了使用指定的MPRE用于将来自物理主机的分组路由到不同主机上的虚拟机。
图27概念性地示出了用于处理来自非-VDR物理主机的L3层流量的过程。
图28概念性地示出了用于处理到非-VDR物理主机的L3层流量的过程2800。
图29示出了包括用于用作不同覆盖网络之间的桥的桥LIF的LRE。
图30示出了包括多个主机机器的逻辑网络,其中至少一个主机机器是包括具有配置为桥LIF的逻辑接口的MPRE的主机机器。
图31示出了通过MPRE获知MAC地址。
图32示出了利用由MPRE先前获知的MAC-VNI配对在两个不同的覆盖网络上的两个VM之间的桥接。
图33示出了在两个VM之间的桥接,这两个VM不在与桥接MPRE相同的主机中操作。
图34a示出了其中目的地MAC地址在桥接表中没有匹配的条目并且MPRE必须泛洪网络以寻找配对的桥接操作。
图34b示出了从对泛红的响应中获知MAC地址配对。
图35概念性地示出了用于在MPRE处执行桥接的过程。
图36示出了网络虚拟化基础设施,其中逻辑网络规范被转换为用于主机机器中的LRE的配置。
图37概念性地示出了从网络管理器向在各个主机机器中操作的LRE交付配置数据。
图38示出了被交付给各个主机机器的配置数据集的结构。
图39示出了收集和交付动态路由信息到LRE的MPRE。
图40概念性地示出了本发明的一些实施例利用其来实现的电子系统。
具体实施方式
在以下描述中,出于解释的目的阐述了许多细节。但是,本领域普通技术人员将认识到,本发明可以在不使用这些具体细节的情况下进行实践。在其它的情况下,众所周知的结构和设备以框图的形式示出,以便防止用不必要的细节模糊本发明的描述。
为了便于在虚拟化网络环境中的主机机器上运行的逻辑网络的虚拟机(VM)之间进行L3分组转发,一些实施例定义了用于逻辑网络的逻辑路由器或者逻辑路由元件(LRE)。在一些实施例中,LRE跨其逻辑网络的主机机器分布式地操作为虚拟分布式路由器(VDR),其中每个主机机器将其自己的LRE的本地实例操作为受管理的物理路由元件(MPRE),用于为在那个主机上运行的VM执行L3分组转发。在一些实施例中,MPRE允许在同一主机机器上运行的VM之间的分组的L3转发在主机机器处本地执行,而不必经过物理网络。一些实施例定义了用于不同租户的不同的LRE,并且主机机器可以将不同的LRE操作为多个MPRE。在一些实施例中,在同一主机机器上运行的用于不同租户的不同MPRE在受管理的物理交换元件(MPSE)上共享同一端口和同一L2 MAC地址。
对于一些实施例,图2示出了由在主机机器中本地操作为MPRE的LRE执行的分组转发操作。每个主机机器执行虚拟化功能,以便托管一个或多个VM并且执行交换功能,使得VM可以在网络虚拟化基础设施中互相通信。每个MPRE在其主机机器内本地执行L3路由操作,使得即使当同一主机机器上的两个VM属于不同的网络段时,这两个VM之间的流量也将始终在本地进行。
图2示出了用于在VM 221-229之间的网络通信的逻辑网络200的实现。逻辑网络200是在通过物理网络205互连的一组计算和存储资源上被虚拟化的网络。互连的这组计算和存储资源以及物理网络形成网络虚拟化基础设施。VM 221-229被主机机器231-233托管,这些主机机器通过物理网络205通信地链接。在一些实施例中,每个主机机器231-233是由能够创建和托管VM的操作系统(例如,Linux)管理的计算设备。VM 221-229是每个都被分配一组网络地址(例如,用于L2的MAC地址、用于L3的IP地址等)并且可以向诸如其它VM的其它网络元件发送和从其接收网络数据的虚拟机。
VM由在主机机器231-233上运行的虚拟化软件(未示出)来管理。虚拟化软件可以包括一个或多个软件组件和/或层,可能地包括在虚拟机技术领域中被称为“虚拟机监视器”、“管理程序”或虚拟化内核的软件组件中的一个或多个软件组件。由于虚拟化术语随着时间的推移在演化并且还没有完全被标准化,因此这些术语并不总能在其所指代的软件层和组件之间提供明确的区分。如本文所使用的,术语“虚拟化软件”旨在一般地指逻辑上介于虚拟机和主机平台之间的软件层或组件。
在图2的例子中,每个VM在逻辑网络200的两个段中的其中一个段中操作。VM 221-225在段A中操作,而VM 226-229在段B中操作。在一些实施例中,网络段是其中网络元件通过链路层L2协议彼此通信的网络的一部分,诸如IP子网。在一些实施例中,网络段是封装覆盖网络,诸如VXLAN或VLAN。
在一些实施例中,在网络的相同段中的VM能够利用链路层(L2)协议(例如,根据每个VM的L2 MAC地址)彼此通信,而网络的不同段中的VM不能利用链路层协议彼此通信并且必须通过网络层(L3)路由器或网关彼此通信。在一些实施例中,VM之间的L2层流量由在每个主机机器内本地操作的MPSE(未示出)处理。因此,例如,从VM 223到VM 224的网络流量将经过在主机231中操作的第一MPSE,第一MPSE从其端口中的一个端口接收数据并且通过物理网络205将数据发送到在主机机器232中操作的第二MPSE,第二MPSE然后将通过其端口中的一个端口将数据发送到VM 224。同样,从VM 228到VM 229的同一段的网络流量将经过在主机233中操作的单个MPSE,该MPSE在主机233内本地地将流量从一个虚拟端口转发到另一个虚拟端口。
与其实现依赖于用于处理不同网络段之间的流量的外部L3路由器(其可以被实现为标准的物理路由器、专门用于执行路由功能的VM,等等)的图1的逻辑网络100不同,图2的逻辑网络200的实现分别使用MPRE 241-243在主机机器231-233内本地执行L3路由功能。在不同主机机器中的MPRE为逻辑网络200中的VM联合执行逻辑L3路由器的功能。在一些实施例中,LRE被实现为跨不同的主机机器被复制或实例化以成为其MPRE的数据结构。在图2的例子中,LRE在主机机器231-233中被实例化为MPRE 241-243。
在图2的例子中,源自VM 222并且去往VM 227的网络流量的L3路由通过MPRE 241来处理,其中MPRE 241是在托管VM 222的主机机器231上本地运行的LRE具体实例(instantiation)。在将路由的数据分组通过物理网络205发送到VM 227之前,MPRE 241在主机机器231内本地执行L3层路由操作(例如,链路层地址解析)。这是在没有外部的共享L3路由器的情况下完成的。同样,源自VM225并且去往VM 226的网络流量的L3路由通过MPRE242来处理,MPRE 242是在托管VM 225的主机机器232上本地运行的LRE具体实例。MPRE 242在主机232内本地执行L3层路由操作并且将路由的数据分组直接发送到也被主机机器232托管的VM 226。因此,在这两个VM 225和226之间的流量不需要通过物理网络205或外部路由器来发送。
下面描述若干个本发明更详细的实施例。部分I描述了VDR和实现基于LRE的MPRE的主机的体系架构。部分II描述了用于分组处理的VDR的各种用途。部分III描述了VDR的控制和配置。最后,部分IV描述了本发明的一些实施例利用其来实现的电子系统。
I.VDR的体系架构
在一些实施例中,LRE在运行在托管一个或多个VM(例如,在多租户数据中心内)的主机机器上的虚拟化软件(例如,管理程序、虚拟机监视器,等等)内操作。虚拟化软件管理VM的操作以及它们对主机机器的物理资源和网络资源的访问,并且LRE的本地具体实例在主机机器中操作为其本地的MPRE。对于一些实施例,图3示出了运行包括LRE的MPRE的虚拟化软件305的主机机器300。主机机器通过物理网络390连接到,例如,其它类似的主机机器。在一些实施例中,物理网络390可以包括各种物理交换机和路由器。
如所示出的,主机机器300可以通过物理NIC(PNIC)395对物理网络390访问。主机机器300还运行虚拟化软件305并且托管VM 311-314。虚拟化软件305用作托管的VM和物理NIC 395(以及其它物理资源,诸如处理器和存储器)之间的接口。每个VM包括用于通过虚拟化软件305访问网络的虚拟NIC(VNIC)。在VM中的每个VNIC负责在VM和虚拟化软件305之间交换分组。在一些实施例中,VNIC是由虚拟NIC仿真器实现的物理NIC的软件抽象。
虚拟化软件305管理VM 311-314的操作,并且包括用于管理VM对物理网络的访问(在一些实施例中,通过实现VM连接到的逻辑网络)的若干个组件。如所示出的,虚拟化软件包括若干个组件,包括MPSE 320、MPRE 330、控制器代理340、VTEP 350和一组上行链路管道370。
控制器代理340从控制器或控制器集群接收控制平面消息。在一些实施例中,这些控制平面消息包括用于配置虚拟化软件的各种组件(诸如MPSE 320和MPRE 330)和/或虚拟机的配置数据。在图3所示的例子中,控制器代理340从物理网络390接收来自控制器集群360的控制平面消息并且又通过控制信道而无需经过MPSE 320将接收到的配置数据提供给MPRE 330。但是,在一些实施例中,控制器代理340从独立于物理网络390的直接数据通道(未示出)接收控制平面消息。在一些其它实施例中,控制器代理从MPSE 320接收控制平面消息并且通过MPSE 320将配置数据转发到路由器330。控制器代理和虚拟化软件的配置将在下面的部分III中进一步描述。
VTEP(VXLAN隧道端点)350允许主机300用作用于逻辑网络流量(例如,VXLAN流量)的隧道端点。VXLAN是覆盖网络封装协议。由VXLAN封装创建的覆盖网络有时被称为VXLAN网络,或者简单地称为VXLAN。当主机300上的VM将数据分组(例如以太网帧)发送到在同一VXLAN网络中但是在不同主机上的另一个VM时,VTEP在把分组发送到物理网络之前,将利用VXLAN网络的VNI和该VTEP的网络地址封装数据分组。分组隧道穿过物理网络(即,封装使得底层分组对中间网络元件透明)到目的地主机。在目的地主机处的VTEP解封装分组并且只将原始内部数据分组转发到目的地VM。在一些实施例中,VTEP模块只用作用于VXLAN封装的控制器接口,而VXLAN分组的封装和解封装在上行链路模块370处完成。
MPSE 320将网络数据交付给物理NIC 395和接收来自物理NIC395的网络数据,物理NIC 395与物理网络390接口。MPSE还包括将物理NIC与VM 311-314、MPRE 330和控制器代理340通信地互连的多个虚拟端口(vPort)。在一些实施例中,每个虚拟端口与唯一的L2MAC地址相关联。MPSE在连接到其虚拟端口的任何两个网络元件之间执行L2链路层分组转发。MPSE还在连接到其虚拟端口中的任何一个端口的任何网络元件与物理网络390上的可到达的L2网络元件(例如,运行在另一个主机上的另一个VM)之间执行L2链路层分组转发。在一些实施例中,MPSE实现跨不同主机机器操作并且可以在同一主机机器上或不同主机机器上的VM之间执行L2分组交换的逻辑交换元件(LSE)的本地具体实例,或者实现用于若干个逻辑网络的若干个这种LSE。
MPRE 330对从MPSE 320的虚拟端口接收到的数据分组执行L3路由(例如,通过执行L3 IP地址到L2 MAC地址的解析)。每个路由的数据分组然后被发送回到MPSE 320,以根据解析的L2MAC地址被转发到其目的地。这个目的地可以是连接到MPSE 320上的虚拟端口的另一个VM,或者物理网络390上的可到达的L2网络元件(例如,在另一个主机上运行的另一个VM、物理的非虚拟化的机器,等等)。
如所提到的,在一些实施例中,MPRE是跨不同主机机器操作并且可以在同一主机机器上或在不同主机机器上的VM之间执行L3分组转发的逻辑路由元件(LRE)的本地具体实例。在一些实施例中,主机机器可以具有连接到单个MPSE的多个MPRE,其中在主机机器中的每个MPRE实现不同的LRE。MPRE和MPSE被称为“物理”路由/交换元件,以便与“逻辑”路由/交换元件进行区分,即使MPRE和MPSE在一些实施例中用软件实现。在一些实施例中,MPRE被称为“软件路由器”并且MPSE被称为“软件交换机”。在一些实施例中,LRE和LSE被统称为逻辑转发元件(LFE),而MPRE和MPSE被统称为受管理的物理转发元件(MPFE)。
在一些实施例中,MPRE 330包括一个或多个逻辑接口(LIF),每个逻辑接口用作与网络的特定段的接口。在一些实施例中,每个LIF可通过其自己的IP地址寻址并且用作用于其网络特定段的网络节点(例如,VM)的缺省网关或ARP代理。如下面详细描述的,在一些实施例中,在不同主机机器中的所有MPRE都可通过相同的“虚拟”MAC地址寻址,而每个MPRE也被分配“物理”MAC地址,以便指示MPRE在哪个主机机器中操作。
上行链路模块370在MPSE 320和物理NIC 395之间中继数据。上行链路模块370包括出口链和入口链,其中每一个都执行多个操作。这些操作中的一些是用于MPRE 330的预处理和/或后处理操作。上行链路模块370的操作将在下面通过参考图14-15进一步描述。
如由图3所示,虚拟化软件305具有来自多个不同LRE的多个MPRE。在多租户环境中,主机机器可以操作来自多个不同用户或租户的虚拟机(即,连接到不同的逻辑网络)。在一些实施例中,每个用户或租户在主机中具有用于处理其L3路由的相应的MPRE具体实例。在一些实施例中,虽然不同的MPRE属于不同的租户,但是它们都共享MPSE 320上的同一vPort,并且因此共享同一L2 MAC地址。在一些其它实施例中,属于不同租户的每个不同的MPRE具有其自己到MPSE的端口。
MPSE 320和MPRE 330使得数据分组有可能在VM 311-314之中转发,而无需通过外部物理网络390发送(只要VM连接到同一逻辑网络,因为不同租户的VM将彼此隔离)。
图4示出了通过MPSE 320的L2转发操作。标记为“1”的操作表示VM 311到VM 312之间的网络流量,其完全在主机机器300内发生。这与标记为“2”的操作形成对比,其中标记为“2”的操作表示在VM 313和另一个主机机器上的另一个VM之间的网络流量。为了到达另一个主机机器,MPSE 320通过NIC 395将分组发送到物理网络390。
图5a-b示出了通过与MPSE 320结合MPRE 330进行的L3路由操作。MPRE 330具有相关联的MAC地址并且可以从VM 311-314中的任何一个接收L2层流量。图5a示出了用于其目的地与MPRE 330在同一主机中的分组的第一L3路由操作。在标记为“1”的操作中,VM 312通过利用MPRE的MAC地址将数据分组发送到MPRE 330。在标记为“2”的操作中,MPRE 330通过将接收到的数据分组的目的地L3层IP地址解析为L2层目的地MAC地址对该数据分组执行L3路由操作。如下面详细描述的,这可能需要MPRE 330发送地址解析协议(ARP)请求。路由的分组然后在标记为“3”的操作中发送回到MPSE 320。由于目的地MAC地址用于主机机器300内的VM(即,VM 311),因此MPSE 320在操作“3”中将路由的分组直接转发到目的地VM,而无需分组曾经到达物理网络390。
图5b示出了用于其目的地在只能通过物理网络到达的远程主机内的分组的第二L3路由操作。操作“4”和“5”与“1”和“2”的操作类似,在此期间,VM 312发送数据分组到MPRE330并且MPRE 330对接收到的数据分组执行(一个或多个)L3路由操作并且将路由的分组发送回到MPSE 320(再一次,有可能发送ARP请求来将目的地IP地址解析为MAC地址)。在操作“6”期间,MPSE 320基于目的地的L2 MAC地址通过物理NIC 395将路由的分组发送出到物理网络。
图5a-b示出了用于在与MPRE同一主机机器中的VM的L3路由操作。在一些实施例中,也可以使用MPRE来为MPRE的主机机器之外的实体执行L3路由操作。例如,在一些实施例中,主机机器的MPRE可以用作用于为不具有其自己的MPRE的另一个主机机器执行L3路由的“指定的实例”。用作“指定的实例”的MPRE的例子将在下面部分II.C中进一步描述。
图6a-b示出了由MPRE 330为从物理网络390进入主机300的分组执行的L3路由操作。虽然从还操作其自己的MPRE的主机上的VM发送的分组将被该MPRE路由,但是分组也可以从本身不操作VDR MPRE的其它主机机器发送到VM 311-314。图6a示出了用于从物理网络接收到的并且在操作“1”至“3”中发送到主机300内的虚拟机的分组的路由操作。在操作“1”中,外部实体通过寻址MPRE的MAC地址通过到MPSE 320的物理网络将分组发送到MPRE 330。在标记为“2”的操作中,MPRE 330通过将接收到的数据分组的目的地L3层IP地址解析为L2层目的地MAC地址对该数据分组执行L3路由操作。路由的分组然后在标记为“3”的操作中经由MPSE 320发送到目的地虚拟机。
图6b示出了在操作“4”至“6”中用于从外部实体发送到另一个外部实体(例如,在另一个主机机器中的虚拟机)的分组的路由操作。操作“4”和“5”是与“1”和“2”类似的操作,在此期间,MPRE 330从物理网络和MPSE 320接收分组,并且对接收到的数据分组执行L3路由操作。在操作“6”中,MPRE 330将数据分组发送回到MPSE 320,MPSE 320基于解析的MAC地址将分组发送到在另一个主机机器中的另一个虚拟机。如下面所述,当MPRE 330是用于与不操作LRE的外部主机通信的LRE的指定的具体实例时,这可能发生。
在一些实施例中,主机机器300是通过用于形成能够支持逻辑网络的网络虚拟化基础设施的物理网络互连的许多主机机器之一。这种网络虚拟化基础设施能够通过同时实现一个或多个用户指定的逻辑网络支持多个租户。这种逻辑网络可以包括用于在虚拟机之间执行L3层路由的一个或多个逻辑路由器。在一些实施例中,逻辑路由器通过跨多个主机机器实例化的MPRE共同实现。
图7概念性地示出了具有由跨不同主机机器的MPRE实现的逻辑路由器的逻辑网络701和702。逻辑网络701和702在包括通过物理网络互连的若干个主机机器的网络虚拟化基础设施上同时被实现。如在该图中所示,第一逻辑网络701是用于租户X并且第二逻辑网络702是用于租户Y。每个租户的逻辑网络包括多个虚拟机。租户X的虚拟机被划分到段A、B、C和D中。租户Y的虚拟机被划分到段E、F、G和H中。在一些实施例中,在段中的虚拟机能够利用L2链路层协议通过逻辑交换机彼此通信。在一些实施例中,至少一些段是封装覆盖网络,诸如VXLAN网络。在一些实施例中,每个段形成不同的IP子网。
每个逻辑网络具有其自己的逻辑路由器。用于租户X的逻辑网络701具有LRE 711作为用于在段A、B、C和D之间路由的逻辑路由器。用于租户Y的逻辑网络702具有LRE 712作为用于在段E、F、G和H之间路由的逻辑路由器。每个逻辑路由器在网络虚拟化基础设施中通过跨不同主机机器实例化的MPRE来实现。在LRE 711中的一些MPRE具体实例与在LRE 712中的一些MPRE具体实例在同一主机机器中操作。
每个网络段具有其自己的到逻辑路由器的逻辑接口,并且每个逻辑路由器具有其自己的一组逻辑接口。如所示出的,逻辑路由器711具有分别用于段A、B、C和D的逻辑接口LIF A、LIF B、LIF C和LIF D,而逻辑路由器712具有分别用于段E、F、G和H的逻辑接口LIFE、LIF F、LIF G和LIF H。每个逻辑接口具有其自己的、在网络虚拟化基础设施中唯一的标识符(例如,IP地址或覆盖网络标识符)。因此,租户X的网络流量可以与租户Y的网络流量完全隔离。
图8示出了在网络虚拟化基础设施的主机机器中的逻辑路由器的物理实现。具体而言,该图示出了在主机机器801和802中的逻辑网络701和702的(部分)实现。如所示出的,主机机器801正在托管虚拟机811-815,并且主机机器802正在托管虚拟机821-826。在这些虚拟机中,虚拟机811-812和821-823是租户X的虚拟机,而虚拟机813-816和824-826是租户Y的虚拟机。
每个主机机器包括用于两个不同租户的两个MPRE。主机机器801具有分别用于租户X和Y的MPRE 841和842。主机802具有分别用于租户X和Y的MPRE 843和844。主机801操作用于在虚拟机811-816和MPRE 841-842之间执行L2层分组转发的MPSE851,而主机802正在操作用于在虚拟机821-826和MPRE 843-844之间执行L2层分组转发的MPSE 852。
每个MPRE具有一组用于与在其主机机器上操作的虚拟机接口的逻辑接口。由于MPRE 841和843是用于租户X的MPRE,因此它们只能具有用于租户X的网络段(即,段A、B、C或D)的逻辑接口,而租户Y MPRE 842和844只能具有用于租户Y的网络段(即,段E、F、G和H)的逻辑接口。每个逻辑接口与网络IP地址相关联。附连到MPRE的逻辑接口的IP地址允许MPRE可通过运行在其本地主机上的VM寻址。例如,VM 811是在主机801上运行的段A虚拟机,其通过利用LIF A的IP地址,即,1.1.1.253,使用MPRE 841作为其L3路由器。在一些实施例中,MPRE可以包括被配置为不活动的LIF。例如,MPRE 841的LIF D处于活动状态,这是因为主机801不操作任何在段D中的VM。即,在一些实施例中,用于特定LRE的每个MPRE被配置有所有LRE的逻辑接口,但是,基于在具有本地LRE具体实例的主机机器上操作的VM,LRE的不同本地具体实例(即,MPRE)可能具有不同的LIF不活动。
值得注意的是,在一些实施例中,即使用于相同段的LIF被附连到不同主机中的不同MPRE,这些LIF也具有相同的IP地址。例如,在主机801上的MPRE 842具有用于段E(LIF E)的逻辑接口,并且主机802上的MPRE 844也一样。MPRE 842的LIF E与MPRE 844的LIF E共享同一IP地址4.1.1.253。换句话说,VM 814(在主机801上运行的段E中的VM)和VM 824(在主机802上运行的段E中的VM)两者都使用同一IP地址4.1.1.253来访问其各自的MPRE。
如所提到的,在一些实施例中,在同一主机机器上运行的不同MPRE共享MPSE上的同一端口,这意味着在同一主机上运行的所有MPRE共享L2 MAC地址。在一些实施例中,使用逻辑接口的唯一IP地址来分离来自不同租户和不同数据网络段的数据分组。在一些实施例中,使用其它识别机制将来自不同网络段的数据分组定向到不同的逻辑接口。一些实施例使用用于不同段的唯一标识符来分离来自不同段的分组。对于是子网的段,一些实施例使用分组中的IP地址来查看该分组是否来自正确的子网。对于对应于覆盖网络的段,一些实施例使用网络段标识符来将数据分组定向到其相应的逻辑接口。在一些实施例中,网络段标识符是作为逻辑网络的段的覆盖网络的标识符(例如,VNI、VXLAN ID或VLAN标签或ID)。在一些实施例中,与段的类型无关,逻辑网络的每个段被分配VNI作为该段的识别符。
图9示出了来自不同段的虚拟机的数据分组如何被定向到主机801内的不同逻辑接口。如所示出的,VM 811-816被连接到MPSE851的不同端口,而租户X的MPRE 841和租户Y的MPRE 842被连接到具有MAC地址“01:23:45:67:89:ab”的端口(对于本文的讨论,被称为“VMAC”)。来自段A VM 811的分组901和来自段G VM 815的分组902被发送到MPSE 851中。MPSE 851又基于用于分组901和902的目的地MAC地址“VMAC”将这两个分组定向到用于MPRE841和842的虚拟端口。分组901携带用于段A的VNI(“VNI A”),而分组902携带用于段G的VNI(“VNI G”)。MPRE 841的逻辑接口“LIF A”基于其网络段标识符“VNI A”接受分组901,而MPRE 842的逻辑接口“LIF G”基于其网络段标识符“VNI G”接受分组902。由于租户不共享相同的网络段,并因此不共享VNI,因此来自不同租户的数据分组被安全地彼此隔离。
虽然这个图示出了使用分组上的VNI(网络标识符标签)来将分组分离到正确的逻辑路由器和逻辑路由器接口,但是不同的实施例可以使用其它鉴别机制。例如,一些实施例使用分组的源IP地址(以确保该分组是通过具有与源VM相同网络前缀的LIF发送的),或者源IP地址和网络标识符标签的组合。
对于一些实施例,图10示出了在主机机器中操作的示例MPRE具体实例1000的框图。如所示出的,MPRE 1000在虚拟端口1053处被连接到MPSE 1050。MPSE 1050被连接到与MPRE 1000在同一主机中操作的虚拟机以及通过上行链路模块1070和物理NIC 1090连接到物理网络。MPRE 1000包括数据链路模块1010和路由处理器1005、逻辑接口数据储存装置1035、查找表储存装置1040、以及配置数据储存装置1045。路由处理器1005包括入口管道1020、出口管道1025、定序器1030。
数据链路模块1010是用于MPRE 1000与MPSE 1050的链路层(L2)接口。它接受寻址到分配给端口1053的MAC地址(在所示的例子中是“01:23:45:67:89:ab”)的到来数据分组。它也将外出数据分组发送到MPSE 1050。在一些实施例中,数据链路模块还接受具有广播地址(“ff:ff:ff:ff:ff:ff”)和/或组播地址的数据分组。
入口管道1020用于使到来数据分组在它们顺序地被路由定序器1030处理之前排队。在一些实施例中,入口管道还包括对到来数据分组执行不同处理操作的多个管道阶段。在一些实施例中,这些入口处理操作包括入口访问控制(根据访问控制列表ACL)和源网络地址转换(NAT)。在一些实施例中,这些操作中的至少一些是基于存储在查找表储存装置1040和逻辑接口数据储存装置1035中的数据的路由或桥接操作。在一些实施例中,入口管道根据为识别为用于到来分组的入站LIF的逻辑接口指定的数据执行动作。
出口管道1025是用于使由路由定序器1030产生的外出数据分组在通过MPSE 1050被数据链路模块1010发送出之前排队。在一些实施例中,出口管道还包括对外出数据分组执行不同处理操作的多个管道阶段。在一些实施例中,这些出口处理操作包括出口访问控制(根据访问控制列表ACL)和目的地网络地址转换(NAT)。在一些实施例中,这些操作中的至少一些是基于存储在查找表储存装置1040和逻辑接口数据储存装置1035中的数据的路由或桥接操作。在一些实施例中,出口管道根据为识别为用于外出分组的出站LIF的逻辑接口指定的数据执行动作。
定序器1030在入口管道1020和出口管道1025之间执行顺序操作。在一些实施例中,路由定序器执行诸如ARP操作和桥接操作的顺序操作。在一些实施例中,当必要时,诸如产生ARP查询和响应时,路由定序器创建新的分组并将其注入到网络中。它从入口管道1020检索预处理的数据分组并且将外出分组存储到出口管道中用于后处理。
一些实施例的路由处理器1005通过首先将到来数据分组分类到各个逻辑接口中做出其路由决策。路由处理器1005还在逻辑接口数据储存装置1035中更新和维持每个逻辑接口的当前状态。例如,基于逻辑接口的当前状态,路由处理器1005产生对附连到第一逻辑接口的第一网络段中的第一虚拟机的ARP响应,同时将来自附连到第二逻辑接口的第二网络段中的第二虚拟机的数据分组传递到附连到第三逻辑接口的第三网络段中的第三虚拟机。第一、第二和第三逻辑接口的当前状态然后被相应地更新并且存储在逻辑接口数据储存装置1035中。在一些实施例中,路由处理器1005还代表特定的逻辑接口再一次基于该特定逻辑接口的当前状态产生新的数据分组(例如,用于ARP请求)。
路由处理器1005也基于查找表储存装置1040的内容做出其路由决策。在一些实施例中,查找表储存装置1040存储用于L3到L2的地址解析(例如,从网络层IP地址到链路层MAC地址)的解析表(或ARP表)。在一些实施例中,路由定序器不仅执行L3层路由(例如,从一个IP子网到另一个IP子网),而且还执行在相同IP子网中操作的不同覆盖网络之间(诸如VXLAN网络和VLAN网络之间)的桥接。在这种实施例的一些中,查找表储存装置1040存储将网络段标识符(VNI)与MAC地址绑定所需的桥接表。路由处理器1005还通过从到来分组获知来更新桥接表和ARP表中的条目。
MPRE 1000还包括配置数据储存装置1045。储存装置1045存储用于配置MPRE 1000内的各种模块的数据。例如,在一些实施例中,在储存装置1045中的配置数据指定多个逻辑接口,以及每个逻辑接口的参数(诸如其IP地址、相关联的网络段、活动/非活动状态、LIF类型,等等)。在一些实施例中,配置数据还指定其它参数,诸如被同一主机机器中的虚拟机使用来寻址MPRE 1000的虚拟MAC地址(VMAC)和被其它主机机器使用来寻址MPRE 1000的其物理MAC地址(PMAC)。在一些实施例中,配置数据还包括用于ACL、NAT和/或防火墙操作的数据。在一些实施例中,在配置数据存储1000中的数据经由在主机机器中的控制器代理(诸如图3的控制器代理340)从控制器集群接收。配置数据和控制平面操作将在下面部分III中进一步描述。
图11概念性地示出了当处理来自MPSE的数据分组时由MPRE执行的一些实施例的过程1100。在一些实施例中,处理1100由路由处理器1005执行。当MPRE接收到来自MPSE的数据分组时,过程1100开始。该过程基于例如网络段标识符(例如,VNI)识别(在1110处)用于入站数据分组(入站LIF)的逻辑接口。
该过程然后确定(在1120处)入站LIF是用于桥接的逻辑接口(桥LIF)还是用于执行L3路由的逻辑接口(路由LIF)。在一些实施例中,逻辑接口或者被配置为路由LIF或者被配置为桥LIF。如果识别的入站LIF是桥LIF,则过程前进到1123。如果识别的入站LIF是路由LIF,则过程前进到1135。
在1123处,该过程获知源MAC和到来分组的网络段标识符(例如,VNI)之间的配对。由于源MAC确定是在由VNI识别的网络段中,因此这个信息对于桥接具有相同MAC地址作为其目的地地址的分组是有用的。在一些实施例中,该信息被存储在桥表中,以提供在这个MAC地址与它的VNI之间的配对。
接下来,该过程确定(在1125处)在到来数据分组中的目的地MAC是否是需要桥接的MAC。需要桥接的目的地MAC是在源网络段中没有已知的目的地的MAC,并且不能被路由(例如,因为它与源VNI在同一IP子网上)。如果目的地MAC需要桥接,则过程前进到1130,否则,该过程结束。
在1130处,该过程通过根据桥接表将未知目的地MAC与VNI绑定执行桥接操作。在一些实施例中,如果没有找到这种条目,则过程泛洪附连到MPRE的所有其它桥LIF,以便找到匹配的用于未知目的地MAC的VNI。在一些实施例中,如果为这个桥LIF启用了防火墙,则该过程将不执行桥接。桥接操作将在下面的部分II.D中进一步描述。在一些实施例中,操作1130是由诸如定序器1030的顺序模块执行的顺序操作。在执行桥接之后,该过程前进到1150。
在1135处,该过程确定在到来数据分组中的目的地MAC是否寻址到MPRE。在一些实施例中,所有的MPRE回答通用的虚拟MAC地址(VMAC)作为目的地。在一些实施例中,在MPRE中的各个LIF回答其自己的LIF MAC(LMAC)作为目的地。如果目的地MAC地址用于MPRE(或LIF),则该过程前进到1140。否则,该过程1100结束。
在1140处,该过程解析(1140)到来数据分组中的目的地IP地址。在一些实施例中,MPRE首先尝试通过在ARP表中查找IP地址来在本地解析IP地址。如果在ARP表中没有找到匹配的条目,则该过程将发起ARP查询并且获取目的地MAC地址。ARP操作将在下面部分II.B中进一步描述。在一些实施例中,操作1140是由诸如定序器1030的顺序模块执行的顺序操作。
该过程下一步识别(1150)用于到来分组的出站LIF(或者在这一点上更合适地,外出分组)。对于通过作为桥LIF的入站LIF进来的数据分组,出站LIF是由通过桥绑定提供的VNI识别的桥LIF。对于通过作为路由LIF的入站LIF进来的数据分组,一些实施例通过检查目的地IP地址识别出站LIF。在一些实施例中,出站LIF是由通过ARP解析表提供的VNI识别的路由LIF。
在识别出站LIF之后,该过程通过利用出站LIF将外出分组发送(在1160处)到正确的目的地段。在一些实施例中,出站LIF通过例如利用目的地段的网络段标识符标记外出分组来准备用于目的地段的分组。该过程1100然后结束。
II.VDR分组处理操作
A.本地和远程访问MPRE
如所提到的,在以上部分I中描述的LRE是虚拟分布式路由器(VDR)。它将路由操作(无论L3层路由还是桥接)分布在不同主机中作为MPRE的LRE的不同具体实例上。在一些实施例中,采用VDR的逻辑网络通过使所有MPRE对所有虚拟机看起来相同进一步增强网络虚拟化。在这些实施例中的一些实施例中,每个MPRE可在L2数据链路层通过对于系统中所有MPRE都相同的MAC地址(VMAC)来寻址。这在本文被称为虚拟MAC地址(VMAC)。VMAC允许特定逻辑网络中的所有MPRE对于虚拟机和对于逻辑网络的用户(例如,网络管理员)看起来是一个连续的逻辑路由器。
但是,在一些实施例中,MPRE有必要彼此、与其它主机机器、或者与在其它主机机器中的网络元件(例如,在其它主机机器中的MPRE和/或VM)通信。在这些实施例中的一些实施例中,除了VMAC之外,每个MPRE可通过来自在物理网络上的其它主机机器的物理MAC(PMAC)地址唯一地寻址。在一些实施例中,用于寻址MPRE的这种唯一PMAC地址是分配给操作MPRE的主机机器的属性。由于MPRE可在其自己的逻辑网络内通过其主机机器的PMAC唯一地寻址,因此一些实施例将主机机器的这种唯一PMAC称为MPRE的唯一PMAC。在一些实施例中,由于用于不同租户的不同逻辑网络在主机机器内彼此安全地隔离,因此用于在同一主机机器上操作的不同租户的不同MPRE都可以使用那个主机机器的同一PMAC地址(以便可从其它主机机器寻址)。在一些实施例中,不仅每个MPRE与它的主机机器的PMAC相关联,而且每个逻辑接口与被称为LMAC的、其自己的唯一MAC地址相关联。
在一些实施例中,每个离开MPRE的分组具有MPRE的VMAC作为源地址,但是在分组进入PNIC和离开主机到物理网络之前,主机机器将把源地址改变为主机机器的唯一PMAC。在一些实施例中,进入MPRE的每个分组必须具有MPRE的VMAC作为其目的地地址。对于从物理网络到达主机的分组,如果目的地地址是主机机器的唯一PMAC地址,则主机将把目的地MAC地址改变为通用的VMAC。在一些实施例中,主机机器的PMAC被实现为其上行链路模块的属性(例如,370),并且是上行链路模块将外出分组的源MAC地址从通用VMAC改变为其唯一PMAC和将到来分组的目的地地址从其唯一PMAC改变为通用VMAC。
图12示出了用于一些实施例的、具有可通过共用VMAC和唯一PMAC寻址的MPRE的逻辑网络1200。如所示出的,逻辑网络1200包括两个不同的主机机器1201和1202。主机机器1201包括MPRE 1211、MPSE 1221和若干个虚拟机1231。主机机器1202包括MPRE 1212、MPSE1222和若干个虚拟机1232。这两个主机机器通过物理网络1290互连。MPSE 1222通过PNIC1282和上行链路模块1242从物理主机接收数据。
在主机1201中的MPRE 1211可由VM 1231通过利用VMAC地址12:34:56:78:90:ab来寻址。在主机1202中的MPRE 1212也可由VM 1232通过相同的VMAC地址12:34:56:78:90:ab来寻址,即使MPRE 1211和MPRE 1212是在不同主机机器中的不同MPRE(对于同一LRE来说)。虽然没有被示出,但是在一些实施例中,在不同逻辑网络中用于不同租户的MPRE也可以使用相同的VMAC地址。
MPRE 1211和MPRE 1212中的每个也可被其它主机机器中的其它网络实体通过其自己的唯一PMAC地址从物理网络中寻址。如所示出的,MPRE 1211与其自己的唯一PMAC地址11:11:11:11:11:11(PMAC1)相关联,而MPRE 1212与其自己的唯一PMAC地址22:22:22:22:22:22(PMAC2)相关联。
图12还示出了发送到另一个主机机器上的远程MPRE的数据流量的例子。与MPRE不同,远程MPRE不能直接通过用于从物理网络到来的分组的通用VMAC来寻址。在远程主机中的MPRE只能通过那个远程MPRE的唯一PMAC地址来寻址。在远程主机上运行的虚拟化软件在一些实施例中在执行L2交换之前将唯一PMAC地址改变回到通用VMAC地址。
图12示出了在四个标记为“1”、“2”、“3”和“4”的操作中从主机1201中的MPRE 1211到主机1202中的MPRE 1212的流量。在操作“1”中,VM 1231利用通用VMAC地址将分组发送到其MPRE 1211。这个分组也将具有对应于该流量的期望目的地的目的地IP地址(未示出)。在操作“2”中,主机1201的MPRE 1211通过利用MPRE1212的唯一物理MAC“PMAC2”作为目的地地址将分组发送到主机1202的MPRE 1212。为了执行这一转换,在一些实施例中,MPRE1211将在其ARP表中查找(或执行ARP)来识别对应于目的地IP地址的目的地MAC地址(PMAC2)。
在操作“3”中,数据分组已通过其物理NIC到达主机1202并且到达上行链路模块1242(在主机1202上运行的虚拟化软件的一部分)。上行链路模块1242又将MPRE 1212的唯一PMAC(“PMAC2”)转换为通用VMAC作为目的地地址。在操作“4”中,数据分组到达MPSE1222,其基于通用VMAC将分组转发到MPRE1212。
图13示出了使用用于网络1200的共用VMAC和唯一PMAC从一个VM到另一个VM路由的L3网络流量的例子。该网络流量是源自主机机器1201中的VM 1331并且去往主机机器1202中的VM1332的数据分组。该示例路由的L3流量在标记为“1”至“4”的四个操作中示出。在操作“1”期间,具有链路层L2地址“MAC1”的VM1331通过利用MPRE的共用VMAC作为目的地地址将数据分组发送到MPRE 1211。在操作“2”期间,MPRE 1211通过将目的地IP地址解析为用于具有链路层L2地址“MAC2”的目的地VM的目的地MAC地址来执行L3层路由。MPRE 1211还利用其自己的唯一物理链路层地址“PMAC1”(11:11:11:11:11:11)替代VM 1331的MAC地址“MAC1”作为源MAC地址。在操作“3”中,路由的分组到达MPSE 1222,其根据目的地MAC地址“MAC 2”将数据分组转发到目的地VM 1232。在操作“4”中,数据分组到达目的地虚拟机1232。在一些实施例中,当唯一PMAC是源地址时,没有必要将唯一PMAC(在这种情况下,“PMAC1”)改变为通用VMAC,这是因为VM1332忽略标准(非ARP)数据流量的源MAC地址。
如所提到的,上行链路模块是对从PNIC到MPSE的到来数据执行预处理和对从MPSE到PNIC的外出数据执行后处理的模块。图14概念性地示出了用于通过上行链路模块(诸如1242)执行的预处理操作的过程1400。在一些实施例中,过程1400的操作被实现为从PNIC进入主机机器的入口管道。
当该过程从PNIC(即,从外部物理网络)接收(在1410处)分组时,该过程开始。如果数据是用于诸如VXLAN或VLAN的覆盖网络,则该过程执行(在1420处)覆盖网络处理。当在远程主机上的VM向在同一VXLAN网络中但是在这个主机上的VM发送数据分组时,该过程将在让分组通过MPSE被转发到VM之前使分组去封装。通过执行这个操作,上行链路模块允许主机用作用于VXLAN的隧道端点(例如,VTEP)。
接下来,该过程确定(在1430处)在到来数据分组中的目的地MAC是否是唯一物理MAC(PMAC)。在一些实施例中,唯一PMAC地址用于将数据分组定向到特定的主机,但是不能用来将分组发送到主机的MPRE中(因为MPSE将用于MPRE的端口与VMAC而不是PMAC相关联)。如果目的地MAC是唯一PMAC,则该过程前进到1445。否则,该过程进行到1435。
在1435处,该过程确定在到来数据分组中的目的地MAC是否是广播MAC(例如,ff:ff:ff:ff:ff:ff)。在一些实施例中,主机将接受广播MAC,但是一些广播分组必须首先被MPRE处理,而不是被发送到连接到MPSE的每个VM。如果目的地MAC是广播MAC,则该过程前进到1440查看是否广播分组需要到MPRE。否则该过程前进到1450,以允许分组到MPSE而无需改变目的地MAC。
在1440处,该过程确定具有广播MAC的分组是否需要被转发到MPRE。在一些实施例中,只有某些类型的广播消息是MPRE感兴趣的,并且只有这些类型的广播消息需要把其广播MAC地址改变为通用VMAC。例如,广播ARP查询消息是MPRE是感兴趣的并且将通过把其目的地MAC地址改变为VMAC而被转发到MPRE。如果广播分组是MPRE感兴趣的,则该过程前进到1445。否则该过程前进到1450。
在1445处,该过程用通用VMAC替换目的地MAC(或者PMAC或广播),这确保具有这些目的地MAC的分组将被MPRE处理。该过程然后前进到1450,以允许分组带着被改变的目的地MAC前进到MPSE。该过程1400然后结束。
图15概念性地示出了用于通过上行链路模块执行的后处理操作的过程1500。在一些实施例中,过程1500的操作被实现为用于通过PNIC离开主机机器的分组的出口管道。该过程在它在上行链路模块处从MPSE接收到(在1510处)分组时启动。该过程然后确定(在1520处)分组是否要去远程主机。如果分组的目的地地址指示在本地主机机器内的端口(例如,MPRE或其中一个VM),则该过程忽略分组并且结束。否则,该过程前进到1530。
在1530处,该过程确定源MAC地址是否是通用VMAC,即,分组是否来自MPRE。如果是,则该过程前进到1540。否则,该过程前进到1550。在1540处,该过程用MPRE的唯一PMAC替换VMAC作为源MAC地址。这确保分组的接收者将能够通过利用其唯一PMAC地址正确地识别发送者MPRE。
如果数据要去诸如VXLAN或VLAN的覆盖网络,则该过程然后执行(在1550处)覆盖网络处理。当主机上的VM将数据分组发送到在同一VXLAN网络但是在不同主机上的另一个VM时,该过程将在把帧注入到物理网络之前利用VXLAN网络的VNI封装帧。通过执行这一操作,上行链路模块允许主机用作VXLAN(VTEP)下的隧道端点。接下来,该过程将分组转发(在1560处)到物理NIC。该过程1500然后结束。
B.利用VDR执行地址解析
如所提到的,每个LRE具有一组用于与每个网络段中的虚拟机接口的逻辑接口。在一些实施例中,从虚拟机的角度看,网络段的逻辑接口也用作网络段中的虚拟机的缺省网关。由于LRE操作在每个主机机器中的MPRE,因此,在一些实施例中,为它其中一个逻辑接口接收ARP查询(诸如用于缺省网关的ARP)的MPRE在本地响应查询而不将该查询转发到其它主机机器。
图16示出了用于在逻辑网络1600中的VDR/LRE MPRE的逻辑接口的ARP查询操作。逻辑网络1600跨至少两个主机机器1601和1602分布。主机机器1601具有MPRE 1611并且主机机器1602具有MPRE 1612。每个MPRE具有用于逻辑网络的段A的逻辑接口(LIF A)和用于段B的逻辑接口(LIF B)。(MPRE 1611具有LIF A 1621和LIF B 1631;MPRE 1612具有LIF A1622和LIF B1632)。主机机器1601具有使用MPRE 1611的LIF A的段A VM1629。主机机器1602具有使用MPRE 1612的LIF B的段B VM1639。
每个LIF与IP地址相关联。但是,如所示出的,MPRE 1611的LIF A 1621和MPRE1612的LIF A 1622两者都具有相同的IP地址(10.1.1.253)。这是段A的缺省网关的IP地址(子网10.1.1.x)。类似地,MPRE 1611的LIF B 1631和MPRE 1612的LIF B 1632两者都具有相同的IP地址(10.1.2.253)。这是段B的缺省网关的IP地址(子网10.1.2.x)。
该图示出了在标记为“1”至“6”的操作中由VM 1629和1639做出的两个ARP查询。在操作“1”中,段A的虚拟机1629做出对其段的缺省网关的ARP查询。该ARP查询消息使用LIF A的IP地址(10.1.1.253)作为目的地IP和使用广播MAC作为目的地MAC地址。在操作“2”期间,LIF A 1621通过将IP地址“10.1.1.253”解析为用于所有MPRE的VMAC地址来响应ARP查询。此外,LIF A1621不把ARP查询消息传递到物理网络上。这防止在网络中具有与LIF A相同IP地址“10.1.1.253”的其它实体响应,该其它实体诸如在其它主机机器中的其它VDR/LREMPRE上的LIF A(例如,在主机机器1602上的LIF A 1622)。在操作“3”中,VM 1629接收ARP应答消息并且更新其将缺省网关的IP地址解析为MAC地址“VMAC”的解析表。这个应答消息的目的地MAC地址是原始询问者的MAC地址(即,用于VM 1629的“MAC1”),并且源MAC地址是新解析的MPRE的MAC地址“VMAC”。VM 1629然后将这一条目存储在其解析表中,用于后续对MPRE 1611的访问,以便为后续发送的需要被路由的分组寻址。操作“4”、“5”和“6”是类似于操作“1”、“2”和“3”的操作,其中MPRE 1612的LIF B 1632响应于由段B VM1639进行的ARP请求,而无需将ARP查询消息传递到物理网络上。虽然由VM 1639进行的ARP请求被发送到不同MPRE上的不同LIF,但是同一地址“VMAC”被用在ARP应答中。
一旦虚拟机知道缺省网关的MAC地址,它就可以通过利用VMAC寻址MPRE的逻辑接口将数据分组发送到其它网络段。但是,如果MPRE不知道目的地IP地址(例如,用于目的地虚拟机)所解析到的链路层MAC地址,则MPRE将需要解析这个地址。在一些实施例中,MPRE可以从其它主机机器中的同一LRE的其它MPRE或者从控制器集群获得这种地址解析信息。在一些实施例中,MPRE可以在目的地虚拟机的网络段中发起其自己的ARP查询来确定它的MAC地址。当做出这种ARP请求时,MPRE使用它自己的唯一PMAC地址,而不是通用VMAC地址作为用于发送到去往其它MPRE的物理网络上的分组的源地址。
图17示出了一些实施例的MPRE发起的ARP查询。具体而言,该图示出了逻辑网络1700的实现,其中MPRE使用其自己的PMAC地址用于发起其自己的ARP查询。如所示出的,逻辑网络1700的实现包括至少两个主机机器1701和1702。驻留在主机机器1701上的是在段A中的VM 1731、具有用于段A的逻辑接口1721的MPRE 1711、以及用于从物理网络接收数据的上行链路模块1741。驻留在主机机器1702上的是在段B中的VM 1732、具有用于段B的逻辑接口1722的MPRE 1712、以及用于从物理网络接收数据的上行链路模块1742。除了通用VMAC之外,MPRE 1711具有唯一物理MAC地址“PMAC1”,并且MPRE 1712具有唯一物理MAC地址“PMAC2”。
在标记为“1”至“8”的操作中,该图示出了由来自主机1701的MPRE 1711发起对于段B中的VM 1732的ARP查询。在操作“1”期间,具有IP地址10.1.1.1的VM 1731(在段A中)发送分组到目的地网络层地址10.1.2.1(在段B中),这需要通过其MPRE 1711进行的L3路由。VM 1731已知道其缺省网关的L2链路层地址是“VMAC”(例如,从先前的ARP查询得知)并且因此它通过利用VMAC将数据分组直接发送到MPRE 1711,这是因为目的地IP是在另一个段中。
在操作“2”期间,MPRE 1711确定它不具有用于目的地VM 1732的L2链路层地址(例如,通过检查它的地址解析表得知),并且因此发起对目的地IP“10.1.2.1”的ARP查询。这个ARP查询使用MPRE 1711的唯一物理MAC地址(“PMAC1”)作为源MAC地址和使用广播MAC地址作为目的地MAC。MPRE 1711还对分组执行L3路由,以确定目的地IP“10.1.2.1”是在段B中,并且它因此将源IP改变为“10.1.2.253”(即,LIF B的IP地址)。这个广播ARP消息穿过物理网络到达主机1702。在一些实施例中,如果逻辑网络跨越附加的主机(即,具有附加的本地LRE具体实例作为MPRE的附加主机),则ARP消息也将被发送到这些其它主机。
在操作“3”期间,广播ARP查询到达运行在主机1702上的上行链路模块1742,其又用对所有MPRE通用的“VMAC”替换广播MAC地址(“ffffffffffff”),使得在主机1702中的MPSE将把ARP查询分组转发到MPRE 1712。但是,对发送者MPRE 1711唯一的源地址“PMAC1”保留在修改的ARP查询中。
在操作“4”期间,因为主机1702的MPRE 1712看到VMAC是目的地地址,因此它接收ARP查询。MPRE 1712不能解析目的地IP地址10.1.2.1,因此它又通过LIF B 1722将该ARP查询作为广播(目的地“ffffffffffff”)转发到段B上的主机1702的任何本地VM,包括VM1732。该ARP查询通过用于VM 1732的出站LIF 1722(用于B段)从MPRE 1712出来。
在操作“5”期间,具有“VMAC”作为源MAC地址的广播ARP查询到达VM 1732并且VM1732通过LIF B 1722向MPRE 1712发送对ARP查询的应答消息。在应答消息中,VM 1732指示对应于L3网络层地址“10.1.2.1”的L2层链路地址是其地址“MAC2”,并且应答要利用通用MAC地址“VMAC”发送到请求的MPRE 1712。MPRE1712还为“10.1.2.1”更新其自己的ARP解析表1752,以便它将来可以充当ARP代理。
在操作“6”期间,基于由MPRE 1712存储的、来自它对其做出响应的ARP查询的信息(指示IP 10.1.1.253解析为MAC“PMAC1”),MPRE 1712通过利用“PMAC1”作为目的地MAC地址将应答分组转发回给进行查询的MPRE 1711。在操作“7”期间,用于主机1702的上行链路模块1741将唯一“PMAC1”转换为通用“VMAC”,使得在主机1701处的MPSE将把分组在本地转发到MPRE 1711。最后,在操作“8”处,应答消息到达原始查询的MPRE1711,其由在其自己的解析表1751中存储用于IP地址10.1.2.1(即,“MAC2”)的地址解析,以便它将能够把分组从VM1731转发到VM 1732。这时,最初由VM 1731发送的数据分组可以被路由用于交付到VM 1732并且可以朝着主机1702被发送到物理网络上。
因为MPRE 1712自己不能为VM 1732解析地址,因此它必须继续传递ARP询问。但是,一旦MPRE 1712接收到来自VM 1732的ARP应答,它就能够自己响应对地址10.1.2.1的后续ARP查询,而无需必须继续传递ARP询问。图18示出了MPRE 1712在网络1700中充当用于响应MPRE 1712能够解析的ARP询问的代理。
图18示出了具有来自前面的图的主机1702以及另一个主机机器1703的网络1700。在主机1702中的MPRE 1712的ARP解析表1752已经具有用于为VM 1732解析IP地址10.1.2.1的条目。驻留在主机1703上的是在逻辑网络的段D上的VM 1733、具有用于段D的逻辑接口1724的MPRE 1713、以及用于从物理网络接收数据的上行链路模块1743。除了通用VMAC之外,MPRE 1713具有唯一物理MAC地址“PMAC3”。在标记为“1”至“6”的操作中,该图示出了由来自主机机器1703的MPRE 1713为段B中的VM 1732发起的ARP查询。
在操作“1”期间,具有IP地址10.1.5.1(在段D中)的VM 1733发送分组到目的地网络层地址10.1.2.1(在段B中),这需要通过其MPRE 1713进行的L3路由。VM 1733已知道其缺省网关的L2链路层地址是“VMAC”(例如,从先前的ARP查询得知)并且因此它通过利用VMAC将数据分组直接发送到MPRE 1713,这是因为目的地IP是在另一个段中。
在操作“2”期间,MPRE 1713意识到它不具有用于目的地VM1732的L2链路层地址(例如,通过检查它的地址解析表得知),并且因此发起对目的地IP“10.1.2.1”的ARP查询。这个ARP查询使用MPRE 1713的唯一物理MAC地址(“PMAC3”)作为源MAC地址和使用广播MAC地址作为目的地MAC。MPRE 1713还对分组执行L3路由,以确定目的地IP“10.1.2.1”是在段B中,并且它因此将源IP改变为“10.1.2.253”(即,LIF B的IP地址)。这个广播ARP消息穿过物理网络到达主机1702。此外,虽然没有示出,但是广播ARP消息也将到达主机1701,这是因为这个主机具有MPRE 1711。
在操作“3”期间,广播ARP查询到达运行在主机1702上的上行链路模块1742,其又用对所有MPRE通用的“VMAC”替换广播MAC地址(“ffffffffffff”),使得在主机1702中的MPSE将把ARP查询转发到MPRE 1712。但是,对发送者MPRE 1713唯一的源地址“PMAC3”保留在修改的ARP查询中。
在操作“4”期间,MPRE 1712检查其自己的解析表1752并且意识到它能够将IP地址10.1.2.1解析到MAC2。因此,MPRE通过物理网络将ARP应答发送到目的地地址“PMAC3”,而不是将ARP查询转发到其所有段B VM。在这种情况下,在ARP应答操作中不涉及LIF B 1722和VM 1732。
在操作“5”期间,用于主机1703的上行链路模块1743将唯一“PMAC3”转换为通用“VMAC”,使得在主机1703处的MPSE将把分组在本地转发到MPRE 1713。最后,在操作“6”处,应答消息到达原始查询的MPRE 1713,其又在其自己的解析表1753中存储用于IP地址10.1.2.1(即,“MAC2”)的地址解析,以便它将能够把分组从VM 1733转发到VM 1732。这时,最初由VM 1733发送的数据分组可以被路由用于交付到VM 1732并且可以朝着主机1702被发送到物理网络上。
图17和18示出了在对于与发送者MPRE处于不同主机机器中的虚拟机的ARP询问中使用唯一PMAC。但是,在一些实施例中,这个ARP机制对于解析在与发送者MPRE相同的主机机器中操作的虚拟机的地址也一样能很好地工作。图19示出了在对于与发送者MPRE处于相同主机机器中的虚拟机的ARP询问中使用唯一PMAC。
图19示出了在图17的网络1700中发生的另一个ARP查询。如在图19中所示,除了MPRE 1712之外,也驻留在主机1702中的是另一个段B VM 1734和段C VM 1735。MPRE 1712具有用于与段C中的VM,诸如VM 1735,接口的逻辑接口1723。图19示出了由MPRE 1712发起的ARP操作。这个ARP操作被启动是因为MPRE1712必须将来自在段C中的VM 1735的分组路由到在段B中的VM1734,这两个VM都驻留在主机1702上。与在图17中示出的、其中发起的MPRE1711是询问在另一个主机机器中的VM的ARP操作不同,在图19中示出的ARP操作是用于位于与发起的MPRE1712处于同一主机机器中的VM。
在标记为“1”至“9”的操作中,该图示出了由MPRE 1712发起的对于在段B中的VM1734的ARP查询。在操作“1”期间,具有IP地址10.1.3.1(在段C)的VM 1731发送分组到目的地网络层地址10.1.2.2(在段B中),这需要通过其MPRE 1712进行的L3路由。VM 1735已知道其缺省网关的L2链路层地址是“VMAC”(例如,从先前的ARP查询得知)并且因此它通过利用VMAC将数据分组直接发送到MPRE 1712,这是因为目的地IP是在另一个段中。
在操作“2”期间,MPRE 1712确定它不具有用于目的地VM 1734的L2链路层地址(例如,通过检查它的地址解析表得知),并且因此发起对在网络段B中的目的地IP“10.1.2.2”的ARP查询。该ARP查询将被广播到段B上的主机1702的所有本地VM以及到其它主机(诸如主机1701)。
在操作“3”期间,MPRE 1712通过LIF B 1722将ARP查询广播到本地段B VM,包括VM1734。由于这个广播位于主机1702内,因此源地址仍然是通用VMAC。在操作“4”期间,在主机1702内(在段B上)本地广播的ARP查询到达VM 1734并且VM 1734对ARP查询发送应答消息。
与操作“3”和“4”同时,MPRE 1712在操作“5”期间也向其它主机广播ARP请求。该广播消息使用广播MAC地址作为其目的地MAC和MPRE 1712的唯一PMAC“PMAC2”作为源MAC地址(例如,如在被发送到物理NIC之前通过上行链路修改的)。MPRE 1712还对分组执行L3路由以确定目的地IP“10.1.2.2”是在段B中,并且因此将源IP改变为“10.1.2.253”(即,LIF B的IP地址)。在操作“6”中的广播ARP到达主机1701,其上行链路模块1741将目的地MAC修改为用于其MPRE 1711的通用VMAC。但是,将没有来自其它主机的ARP应答,这是因为将没有对IP10.1.2.2的匹配(虽然在一些实施例中,这些主机将把ARP转发到其段B VM上)。
在操作“7”期间,VM 1734生成对在操作“4”期间接收到的ARP查询的应答消息。应答消息指示L2地址“MAC4”对应于所请求的L3网络层地址“10.1.2.2”,并且该应答要利用其通用MAC地址“VMAC”被发送到请求的MPRE。在操作“8”期间,由VM 1734生成的ARP应答通过LIF B 1722进入MPRE 1712。最后,在操作“9”处,MPRE 1712将用于IP地址10.1.2.2(即,“MAC4”)的地址解析存储在其自己的解析表1752中,使得它将能够把分组从VM 1735转发到VM 1734(包括初始发送的数据分组)。
图20和21示出了用于在MPRE已更新其解析表之后在不同段的VM之间发送数据流量的操作。具体而言,图20和21示出了在主机1701的MPRE 1711和MPRE 1712已通过先前的ARP查询更新了其解析表(如在图17和19中所示出的)之后在VM 1731、1732和1735之间的网络1700的数据流量。
图20示出了将数据分组从段A VM 1731和段C VM 1735路由到段B VM 1732。路由发生在MPRE 1711和1712中,其中MPRE是分别用于发送方VM 1731和发送方VM 1735的。MPRE1711使用解析表1751用于路由查找,而MPRE 1712使用解析表1752用于路由查找。
操作“1”至“3”示出了数据分组从段A VM 1731到段B VM 1732的路由。在操作“1”中,VM 1731利用通用VMAC将分组发送到MPRE 1711的LIF A 1721。该分组去往IP地址10.1.2.1,它与VM1731(IP地址10.1.1.1)处于不同的网络段中,并且因此需要L3层路由。在操作“2”期间,MPRE 1711通过利用在解析表1751中的条目(即,如通过图17所示的操作获知的)将IP地址10.1.2.1解析为L2地址“MAC2”和段B。MPRE 1711使用其自己的唯一L2地址“PMAC1”作为用于发送出到物理网络上的分组的源地址。MPRE1711还识别LIF B 1725作为出站LIF并且使用该LIF跨物理网络(标记有段B的网络标识符)将分组发送到主机1702。在操作“3”期间,路由的分组已穿越整个物理网络并且到达其L2地址是“MAC2”的目的地VM1732。
操作“4”至“6”示出了数据分组从段C VM 1735到段B VM 1732的路由,其中数据分组不需要离开主机1702。在操作“4”期间,VM1735利用通用VMAC作为分组的目的地MAC将分组发送到MPRE1712的LIF C 1723。该分组去往IP地址10.1.2.1,它在与VM 1735(IP地址10.1.3.1)不同的网络段上,并且因此需要L3路由。在操作“5”期间,MPRE 1712通过利用解析表1752中的条目将IP地址10.1.2.1解析为L2地址“MAC2”。因为该分组从未离开主机1702到物理网络,因此MPRE 1712也使用VMAC作为源L2 MAC地址。MPRE 1712已识别LIF B 1722作为出站LIF并且使用该LIF将分组发送到本地段B VM 1732。在操作“6”期间,数据分组到达其MAC地址是“MAC2”的目的地VM 1732。
图21示出了数据分组从段B VM 1732发送到段A VM 1731和段C VM 1735的路由。路由发生在MPRE 1712中,它是用于发送者VM 1732的本地路由器实例。如前所述,MPRE1712依靠解析表1752用于路由查找。MPRE 1712具有用于与段B中的VM,诸如VM 1732接口的逻辑接口1722(LIF B)。MPRE 1712具有用于与段C中的VM,诸如VM 1735接口的逻辑接口1723(LIF C)。MPRE 1712还具有用于与段A中的VM,诸如VM 1731接口的逻辑接口1725(LIFA)。
操作“1”至“3”示出数据分组从段B VM 1732到段A VM 1731的路由。在操作“1”期间,VM 1732利用通用VMAC作为目的地MAC将分组发送到MPRE 1712的LIF B 1722。该分组去往IP地址10.1.1.1,它在与VM 1732(IP地址10.1.2.1)不同的网络段中,并且需要L3层路由。数据分组通过将LIF B 1722用作入站LIF进入MPRE 1712。在操作“2”期间,MPRE 1712通过利用在解析表1752中的条目将IP地址10.1.1.1解析为L2地址“MAC1”。MPRE 1711也识别LIF A 1726作为出站LIF和使用LIF A将分组跨物理网络(标记有段A的VNI)发送到主机1701。在一些实施例中,MPRE1711也利用其自己的唯一L2地址“PMAC2”替代通用“VMAC”作为源MAC地址。在操作“3”期间,路由的分组到达其MAC地址是“MAC1”的目的地VM 1731。
操作“4”至“6”示出了数据分组从段B VM 1732到段C VM 1735的路由。在操作“4”期间,VM 1732利用通用VMAC作为分组的目的地MAC地址将分组发送到MPRE 1712的LIF B1722。该分组去往IP地址10.1.3.1,它在与VM 1732(IP地址10.1.2.1)不同的网络段中并且因此需要L3路由。在操作“5”期间,MPRE 1712通过利用解析表1752中的条目将IP地址10.1.3.1解析为L2地址“MAC3”。由于目的地L2地址“MAC3”指示在与MPRE 1712相同的主机机器(主机1702)中操作的虚拟机,因此在一些实施例中,MPRE将不把数据分组发送到物理网络上。因为该分组从未离开主机1702到物理网络,因此MPRE 1712也使用VMAC作为源L2MAC地址。MPRE 1712也识别LIF C 1723作为出站LIF并且使用这个LIF将分组发送到本地段C VM 1735。在操作“6”期间,分组到达其MAC地址是“MAC3”的目的地VM 1735。
对于一些实施例,图22概念性地示出了由一些实施例的MPRE具体实例执行的、用于为到来数据分组处理地址解析的过程2200。当过程2000接收到(在2210处)数据分组(例如,来自MPSE的)时,该过程开始。该数据分组可以是需要被路由或转发的常规数据分组,或者是需要应答的ARP查询。接下来,该过程确定(在2220处)接收到的分组是否是ARP查询。如果该数据分组是ARP查询,则过程前进到2225。否则,过程前进到2235。
在2225处,该过程确定它是否能够为ARP查询解析目的地地址。在一些实施例中,该过程检查其自己的ARP解析表,以确定是否存在相应的用于解析该分组的网络层IP地址的条目。如果过程能够解析该地址,则它前进到2260。如果过程不能解析该地址,则它前进到2230。
在2230处,过程转发ARP查询。如果ARP请求来自物理网络,则过程将ARP查询转发到本地主机内的VM。如果ARP请求来自在本地主机中的VM,则该过程将请求转发到在本地主机机器中的其它VM以及转发出到物理网络以被在其它主机机器中的MPRE处理。该过程然后等待和接收(在2250处)ARP应答并且基于应答消息更新其ARP解析表。过程2200然后应答(在2260处)ARP查询消息并且结束。
在2235处,该过程确定它是否能够为到来数据分组解析目的地地址。如果该过程能够解析目的地地址(例如,具有匹配的ARP解析表条目),则该过程前进到2245。否则,该过程前进到2240。
在2240处,该过程产生ARP查询并且通过其出站LIF向远程主机机器以及本地虚拟机广播该ARP查询。该过程然后接收(在2242处)对其ARP查询的应答并且更新其ARP表。该过程2200然后根据解析的MAC地址转发(在2245处)数据分组并且结束。
C.VDR作为用于非-VDR主机机器的路由代理
在一些实施例中,不是在底层物理网络上产生和接受网络流量的所有主机机器都运行虚拟化软件和操作VDR。在一些实施例中,这些主机中的至少一些是根本不运行虚拟化软件并且不托管任何虚拟机的物理主机机器。这些非-VDR物理主机机器中的一些是构建在底层物理网络中的遗留网络元件(诸如文件服务器或另一个非管理程序/非-VM网络栈),它们往往依赖于独立路由器用于L3层路由。为了为这些非-VDR物理主机机器执行L3层路由,一些实施例指定运行在主机机器上的本地LRE具体实例(即,MPRE)充当用于这些非-VDR主机机器中每个的专用路由代理(指定的实例或指定的MPRE)。在一些实施例中,去向和来自这种非-VDR物理主机的L2流量由在主机机器中的MPSE的本地实例(例如,320)处理,而无需必须经过指定的MPRE。
图23示出了指定用于处理去向和来自物理主机的分组的L3路由的MPRE的逻辑网络2300的实现。如所示出的,网络2300包括主机机器2301-2309。主机机器2301和2302运行分别操作MPRE2311和2312的虚拟化软件(其它运行MPRE 2313-2318的主机机器2303-2308没有示出)。主机机器2301和2302两者都托管多个虚拟机,并且每个主机机器正在操作MPRE。这些MPRE中的每个MPRE都具有用于逻辑网络2300的段A、B和C的逻辑接口(LIF A、LIFB和LIF C)。当被虚拟机在其自己的主机中寻址时,所有MPRE共享通用的“VMAC”。MPRE 2311和2312两者也具有其自己的唯一PMAC(“PMAC1”和“PMAC2”)。
主机机器2309是不运行虚拟化软件并且没有其自己用于L3层路由的MPRE的物理主机。物理主机2309与IP地址10.1.2.7相关联并且具有MAC地址“MAC7”(即,物理主机2309是在网络段B中)。为了将数据从物理主机2309发送到另一个网络段上的虚拟机,物理主机必须将数据(通过物理网络和L2交换机)发送到MPRE2312,这是为物理主机2309指定的MPRE。
图24示出了由逻辑网络2300中的非-VDR物理主机2309发起的ARP操作。如所示出的,在逻辑网络2300中的每个主机机器2301-2304都具有MPRE(分别地,2311-2314),并且每个MPRE都具有唯一PMAC地址(“PMAC3”用于MPRE 2313、“PMAC4”用于MPRE 2314)。每个MPRE都具有IP地址为10.1.2.253的用于段B的逻辑接口(LIF B)。但是,只有在主机机器2302中的MPRE 2312是“指定的实例”,并且只有它将对来自物理主机2309的ARP查询广播消息做出响应。
该ARP操作在操作“1”、“2”、“3”和“4”中示出。在操作“1”期间,物理主机2309通过物理网络广播用于其缺省网关“10.1.2.253”的ARP查询消息。如所提到的,IP地址10.1.2.253与在所有MPRE 2311-2314上存在的LIF B相关联。但是,只有主机2302的MPRE2312是用于物理主机2309的指定的实例,并且只有MPRE 2312将对ARP查询做出响应。在一些实施例中,控制器(或控制器的集群)指定其中一个MPRE作为用于特定段的指定的实例,如在下面部分III中所描述的。
在操作“2”期间,MPRE 2312从物理主机2309接收ARP查询消息并且将物理主机的MAC地址记录在解析表2342中用于将来的路由。所有其它不是物理主机2309的指定实例的MPRE(2301、2302和2303)都忽略该ARP。在一些实施例中,这些其它MPRE将仍然把物理主机的MAC地址记录在其自己的解析表中。
在操作“3”期间,MPRE 2312发送ARP应答消息到物理主机2309。在给非-VDR物理主机的这个应答中,源MAC地址是MPRE2312自身的唯一物理MAC地址(“PMAC2”)而不是通用VMAC。这使得物理主机2309将知道为了L3路由只与MPRE 2312通信,而不是任何其它MPRE具体实例通信。最后,在操作“4”处,物理主机2309将其缺省网关的唯一物理MAC地址(“PMAC2”)记录在其解析表2349中。一旦指定的实例和物理主机2309具有彼此的MAC地址,就可以在物理主机和逻辑网络2300的其余部分之间开始消息交换。
图25示出了使用指定的MPRE 2312用于将来自虚拟机2321和2322的分组路由到物理主机2309。如所示出的,具有IP地址10.1.1.1(段A)和MAC地址“MAC1”的VM 2321在主机2301上运行,并且具有IP地址10.1.3.2(段C)和MAC地址“MAC4”的VM 2322在主机2302上运行。物理主机2309具有IP地址10.1.2.7(B段)和MAC地址“MAC7”。由于物理主机2309、VM2321和VM 2322都在网络的不同段中,因此从VM 2321和2322穿过到物理主机2309的数据分组必须经过由MPRE进行的L3路由。用于VM2322的MPRE是为物理主机2309指定的MPRE(MPRE2312),而用于VM 2321的MPRE(MPRE 2311)不是,注意到这一点是重要的。
图25示出了在标记为“1”、“2”和“3”的三个操作中分组从VM2322到物理主机2309的路由。在操作“1”期间,段C VM 2322通过其LIF C 2334发送分组到MPRE 2312。数据分组使用通用“VMAC”作为目的地MAC地址,以便主机2302上的MPSE将分组转发到MPRE 2312。目的地IP地址是10.1.2.7,它是物理主机2309的IP地址。
在操作“2”期间,MPRE 2312使用其地址解析表2342的条目将目的地IP地址10.1.2.7解析为物理主机2309的MAC地址“MAC7”。当数据分组从主机机器发送到物理网络上时,MPRE 2312也使用其自己的唯一物理MAC地址“PMAC2”而不是通用“VMAC”作为源MAC地址。在操作“3”中,MPRE 2312利用其用于段B的逻辑接口(LIF B 2332)发送数据分组。路由的数据分组利用其解析的L2MAC地址(即,“MAC7”)被转发(通过物理网络和L2交换机)到物理主机2309。值得注意的是,当分组到达物理主机2309时,源MAC地址将保持为“PMAC2”,即,指定的实例的唯一物理MAC。在一些实施例中,物理主机将不会看到通用“VMAC”,而是仅仅利用指定的MPRE的“PMAC2”通信。
图25还示出了在标记为“4”、“5”和“6”的操作中分组从VM2321到物理主机2309的路由。与VM 2322不同,VM 2321的MPRE(2311)不是指定的实例。但是,在一些实施例中,其MPRE不是物理主机的指定实例的虚拟机仍然使用其自己的MPRE用于将路由的分组发送到物理主机。
在操作“4”期间,段A VM 2321通过其LIF A 2333将分组发送到MPRE 2311。数据分组使用通用“VMAC”作为用于虚拟路由器的MAC地址,以将分组路由到MPRE 2311。目的地IP地址是10.1.2.7,它是物理主机2309的IP地址。
在操作“5”期间,MPRE 2311确定目的地IP地址10.1.2.7是用于物理主机的,而且它不是用于物理主机2309的指定MPRE。在一些实施例中,作为其逻辑接口的配置的一部分的每个MPRE具体实例知道它是否是为每个特定的LIF指定的实例。在一些实施例中,配置还识别哪个MPRE具体实例是指定的实例。因此,MPRE 2311将尝试从指定的MPRE 2312获取解析信息。在一些实施例中,不是用于给定物理主机的指定实例的MPRE将发送查询(例如,通过UDP信道)到具有指定MPRE的主机,询问IP地址的解析。如果指定的实例具有解析信息,则它将把解析信息发送回到查询的MPRE(例如,通过相同的UDP信道)。如果指定的MPRE自己不能解析物理主机的IP地址,则它将发起对于物理主机的IP的ARP请求,并且将解析发送回到查询的MPRE。在这个例子中,MPRE2311将发送查询消息到主机2302(即,到MPRE 2312),并且主机2302将把用于物理主机2309的解析的MAC地址(从它的解析表2342中)发送回到MPRE2311。
在操作“6”期间,MPRE 2311使用解析的目的地MAC地址通过其LIF B 2331将数据分组发送到物理主机2309。在一些实施例中,MPRE 2311还将用于物理主机IP 10.1.2.7的解析的地址存储在其地址解析表中。用于数据分组的源MAC地址是MPRE 2311的唯一PMAC(“PMAC1”)而不是通用MAC也不是指定的实例的PMAC。因为这是数据流量分组而不是ARP分组,因此物理主机将不把PMAC1存储为要将用于段B VM的分组发送到其的MAC地址。路由的数据分组利用其解析的L2 MAC地址(“MAC7”)被转发到物理主机2309(通过物理网络和L2交换机)。
图26a-b示出了使用指定的MPRE 2312用于将来自物理主机2309的分组路由到虚拟机2321和2322。如所提到的,物理主机2309(具有段B IP地址10.1.2.7)与虚拟机2321和2322在不同的段上,因此从物理主机到这些虚拟机的数据分组必须在网络层进行路由。在一些实施例中,始终使用用于特定物理主机的指定的MPRE来对来自那个特定物理主机的分组,或者对特定段上的所有主机的分组执行L3路由。在这个例子中,MPRE 2312是用于将来自包括物理主机2309的、段B上的任何物理主机的数据分组路由到VM 2321和2322两者的指定MPRE,即使只有VM 2322在与指定MPRE 2312相同的主机机器2302中运行。
图26a示出了在标记为“1”、“2”和“3”的三个操作中从物理主机2309到VM 2322的数据分组的路由。在操作“1”中,物理主机2309将分组发送到主机2302。这个分组去往在段C中的、具有IP地址10.1.3.2的VM 2322。基于在其解析表2349中的条目(通过图24的ARP操作创建),MPRE将缺省网关IP地址10.1.2.253解析为“PMAC2”,这是MPRE 2312的唯一物理MAC地址。分组通过物理网络到达主机2302的上行链路模块2352。
在操作“2”中,上行链路模块2352将唯一“PMAC2”改变为通用VMAC,以便该分组能够在主机2302内被正确地转发一次。该分组然后到达MPRE 2312并且被MPRE 2312的LIF B2332处理。
在操作“3”中,MPRE 2312利用在其地址解析表中的信息将IP地址10.1.3.2解析为用于VM 2322的“MAC4”,并且将数据分组发送到VM 2322。MPRE 2312还利用通用VMAC替代物理主机2309的源MAC地址“MAC7”。
图26b示出了在标记为“4”、“5”和“6”的三个操作中数据分组从物理主机2309到VM2321的路由。在操作“4”中,物理主机2309通过物理网络将分组发送到操作指定MPRE 2312的主机2302。这个分组去往在段A中的、具有IP地址10.1.1.1的虚拟机2321。该分组基于在解析表2349中的条目被寻址到L2 MAC地址“PMAC2”,它是指定MPRE 2312的唯一物理MAC地址。值得注意的是,目的地VM 2321是在具有其自己的MPRE 2311的主机机器2301上。但是,物理主机2309仍然首先将分组发送到MPRE 2312,因为它是用于物理主机的指定的实例,而不是MPRE 2311。分组通过物理网络到达主机2302的上行链路模块2352。
在操作“5”中,上行链路模块2352将唯一“PMAC2”改变为通用VMAC,以便分组一旦在主机2302内就能够被正确地转发一次。该分组然后到达MPRE 2312并且被MPRE 2312的LIF B 2332处理。
在操作“6”中,MPRE 2312将IP地址10.1.1.1解析为用于VM2321的“MAC1”并且通过利用其LIF A 2335将数据分组发送到VM2321。路由的分组指示源MAC地址是指定的MPRE2312的“PMAC2”。由于MPRE 2312和目的地VM 2321在不同的主机机器上,因此在分组到达VM2321之前,分组实际上被发送通过主机2302上的MPSE、然后物理网络、并且然后主机2301上的MPSE。
如以上参考图25和26所讨论的,对从虚拟机到物理主机的数据流量的路由由各个MPRE执行,而从物理主机到虚拟机的数据流量必须经过指定的MPRE。换句话说,到物理主机的网络流量是点对点的,而来自物理主机的网络流量是分布的。虽然在图23-20的逻辑网络2300中没有示出,但是在一些实施例中逻辑网络的实现可以具有多个非-VDR物理主机。在一些实施例中,这些非-VDR物理主机每个在其中一个主机机器中具有对应的指定的MPRE。在一些实施例中,特定的MPRE将用作用于非-VDR物理主机中的一些或全部的指定的实例。例如,一些实施例指定特定的MPRE用于特定段上的所有物理主机。
对于一些实施例,图27概念性地示出了用于处理来自非-VDR物理主机的L3层流量的过程2700。在一些实施例中,过程2700由在主机机器上运行的虚拟化软件内的MPRE模块执行。在一些实施例中,这一过程在图26a-b所示的操作期间由MPRE 2311和2312执行。
过程2700在当主机接收到需要L3路由的数据分组(即,来自网络的一个段但是要去往网络的另一个段的分组)时开始。过程2700确定(在2710处)分组是否来自非-MPRE物理主机。在一些实施例中,MPRE通过针对物理主机及其IP地址的列表检查在数据分组中的IP地址做出该确定。在一些实施例中,这种列表是来自网络的控制器的一组配置数据的一部分。如果分组不是来自已知的物理主机,则该过程前进到2740。
在2720处,该过程确定MPRE是否是为发送数据分组的物理主机指定的实例。在一些实施例中,每个MPRE通过网络控制器进行配置,并且MPRE中的一些被配置为用于物理主机的指定实例。在这些实施例中的一些实施例中的MPRE将检查其自己的配置数据,以查看它是否是用于如在数据分组中指示的物理主机的指定实例。在一些其它实施例中,每个MPRE通过例如散列物理主机和其自己的唯一标识符(例如,IP地址)在本地确定它是否是用于所指示物理主机的指定的实例。如果MPRE不是用于特定物理主机的指定的实例,则该过程忽略(在2725处)来自物理主机的数据分组并且结束。否则,该过程前进到2730。
在2730处,该过程确定到来数据分组是否是ARP查询。如果是,则该过程利用MPRE的唯一物理MAC应答(在2735处)ARP查询并且结束(例如,如通过图24中的MPRE 2312执行的)。否则,该过程前进到2740。
在2740处,该过程通过例如将目的地的L3 IP地址解析为其L2MAC地址(或者通过发出ARP查询或者通过利用来自其解析表中存储的ARP结果)对数据分组执行L3路由。该过程然后基于解析的目的地MAC地址将路由的数据分组转发(在2750处)到目的地虚拟机。如果目的地VM与MPRE在同一主机机器上,则数据分组将通过主机上的MPSE被转发到VM。如果目的地VM在不同的主机上,则数据分组将通过物理网络转发到另一个主机。在转发分组之后,过程2700结束。
对于一些实施例,图28概念性地示出了用于处理到非-VDR物理主机的L3流量(即,从与执行该过程的MPRE相同的主机上的VM接收到的)的过程2800。在一些实施例中,这一过程是在图25示出的操作期间由MPRE 2311和2312执行的。
过程2800在当主机接收到需要L3路由的数据分组时开始。过程2800确定(在2810处)分组是否去往非-VDR物理主机。如果分组不是去往这种物理主机,则该过程前进到2840。如果分组是去往这种物理主机,则该过程前进到2820。
在2820处,该过程确定MPRE是否是用于数据分组被发送到其的物理主机的指定的实例(例如,基于物理主机是其一部分的段)。如果是,则该过程前进到2825。如果MPRE不是指定的实例,则该过程前进到2830。
在2830处,该过程请求指定的实例并且从它获得地址解析信息。在一些实施例中,这是通过利用UDP信道发送请求消息到指定的实例并且在应答消息中接收地址解析信息来实现的。在一些实施例中,不是指定的实例的MPRE不存储用于物理主机的地址解析信息,并且对于发送到物理主机的每个分组通过UDP信道发送请求。在其它实施例中,在接收到地址解析信息之后,MPRE存储这一信息用于在路由将来的分组时使用。
在2825处,该过程确定,作为指定的实例,它是否能够解析用于该物理主机的地址。在一些实施例中,该过程检查其自己的ARP表以查看是否存在用于该物理主机的匹配的条目。如果该过程能够解析该地址,则该过程前进到2840。否则,该过程执行(在2835处)对物理主机的地址的ARP请求,并且在ARP应答时更新其ARP表。在一些实施例中,只有指定的实例保留用于物理主机的路由信息。该过程然后前进到2840。
在2840处,该过程通过例如将物理主机的IP地址解析为其MAC地址对数据分组执行L3路由。无论MPRE是否是用于在数据分组中指示的物理主机的指定的实例,该过程都还将源MAC地址设置为MPRE的唯一PMAC。该过程然后基于解析的目的地MAC地址将路由的数据分组转发(在2850处)到物理主机。在转发分组之后,过程2800结束。
D.利用VDR作为不同覆盖网络之间的桥
在一些实施例中,在主机机器中操作的LRE不仅执行L3路由(例如,从一个IP子网到另一个IP子网),而且还在同一子网内的不同覆盖网络之间(诸如在VXLAN网络和VLAN网络之间)进行桥接。在一些实施例中,两个不同的覆盖网络有可能具有在同一IP子网中的VM。在这些情况下,不使用L3路由将数据分组从一个覆盖网络发送到另一个覆盖网络。相反,转发依赖于基于网络段标识符(例如,VNI,或其相关联的逻辑接口)和链路层地址(例如,MAC地址)之间的绑定或配对的桥接。
在一些实施例中,在主机机器中的至少一个本地LRE具体实例被配置为桥接MPRE而不是配置为路由MPRE。桥接MPRE是包括配置用于桥接而不是用于路由的逻辑接口的MPRE。配置用于路由的逻辑接口(路由LIF)通过将IP解析为MAC地址执行逻辑网络的不同段之间的L3路由。配置用于桥接的逻辑接口(桥接LIF)通过将MAC地址与网络段标识符(例如,VNI)或逻辑接口绑定并且当把分组从一个网络段发送到另一个网络段时修改分组的网络段标识符来执行桥接。
图29示出了包括用于用作不同覆盖网络之间的桥的桥LIF的LRE 2900。LRE 2900的逻辑接口2901-2904被配置为桥LIF。具体而言,桥LIF 2901用于获知和桥接在覆盖网络“VLAN10”中的MAC地址,桥LIF 2902用于获知和桥接在覆盖网络“VLAN20”中的MAC地址,桥LIF 2901用于获知和桥接在覆盖网络“VXLAN100”中的MAC地址,并且桥LIF 2901用于获知和桥接在覆盖网络“VXLAN200”中的MAC地址。如所示出的,在不同覆盖网络中的至少一些VM是在相同的IP子网“192.168.1.x”中。
图30示出了包括桥LIF和路由LIF两者的逻辑网络3000的实现。如所示出的,逻辑网络3000包括多个主机机器3001-3009,每个主机机器操作LRE的分布式实例。LRE具有用于与VLAN10、VLAN20、VXLAN100和VXLAN200接口的逻辑接口。因为在主机3001和3003中的本地LRE实例只具有路由LIF,因此LRE在那些主机机器中操作为路由MPRE 3011和3013。作为对照,因为主机3002的所有逻辑接口都被配置为桥LIF,因此LRE在主机3002中操作为桥接MPRE 3012。虽然没有被示出,但是在一些实施例中,在主机机器中操作的本地LRE实例(即,MPRE)可以具有B-LIF和R-LIF两者并且因此既充当桥接MPRE又充当路由MPRE。因此,在这种主机机器上的VM仍然可以通过其本地MPRE将分组发送到在其它IP子网中的目的地。
在一些实施例中,本地LRE实例被配置为只在一个主机机器中充当桥接MPRE(即,只具有桥LIF)。在一些实施例中,多个主机机器具有其配置为桥接MPRE的本地LRE实例。在一些实施例中,具有一组桥LIF的桥接MPRE还具有至少一个路由LIF,用于路由去向和来自桥LIF的数据分组。在一些实施例中,具有桥LIF的LRE实例还具有用于路由的沉淀的LIF(sedimented LIF,S-LIF),它与其它LIF不同,不是分布的,而是只在逻辑网络中的一个主机中活动。要被S-LIF路由的任何分组将被发送到具有活动S-LIF的主机机器。
在一些实施例中,桥接MPRE获知它们首先在其上看到特定MAC地址的逻辑接口(或相关联的网络段标识符),并且在桥接表(或获知表)中将那个逻辑接口与MAC地址相关联。当桥随后接收具有与其桥接表中的条目匹配的目的地MAC地址的数据帧或分组时,它在由桥接表中匹配的条目所指示的逻辑接口上将帧发送出。在一些实施例中,如果桥还没有看见用于分组的目的地MAC地址,则它将分组泛洪到除了在其上接收到数据分组的逻辑接口之外的所有活动逻辑接口上。当把分组发送出到特定的桥接接口上时,一些实施例的桥接MPRE修改分组,以具有用于相关联的网络段的适当的网络段标识符(例如,8-位VLAN标记、24位VXLAN ID、MPLS标签,等等)。在一些实施例中,桥接表的内容可以从一个主机传送到另一个主机,使得在具有桥接MPRE的主机发生故障的情况下,网络的控制器可以迅速地指定在另一个主机机器中运行的MPRE用作桥接MPRE。
图31示出了通过桥接MPRE获知MAC地址。如所示出的,主机3100具有MPSE 3120和桥接MPRE 3130,其中MPSE 3120具有与VM 3111-3114接口的端口。MPSE 3120具有连接到物理NIC3190和物理网络的上行链路(未示出)。桥接MPRE 3130具有分别用于覆盖网络“VLAN10”、“VLAN20”、“VXLAN100”和“VXLAN200”的桥LIF 3141-3144。
与只接受寻址到通用VMAC的分组的路由LIF不同,桥LIF将获知它在与MPSE的端口上看见的任何MAC地址。在一些实施例中,MPSE将把交换机不知道如何转发的任何数据分组发送到软件桥,诸如具有在源MAC地址的网络段或覆盖网络中不能找到的目的地MAC地址的分组。这种数据分组被发送到用于桥接的桥接MPRE,并且桥接MPRE将获知与源MAC地址相关联的网络段标识符或逻辑接口。
图31以三个操作“1”、“2”和“3”示出了这种获知过程。在操作“1”期间,具有源地址“MAC200”和“VXLAN200”的源VNI(这里使用VNI来表示任何网络段标识符)的分组3170正在从物理NIC 3190被发送到VM 3112。这个分组也具有在与VXLAN200不同的网络段上的目的地地址,并且因此交换机3120将分组转发到用于桥接的桥接MPRE 3130。
在操作“2”中,桥接MPRE 3130看到分组并且获知其源MAC地址(“MAC200”)及其网络标识符(“VXLAN200”)。在一些实施例中,使用用于与网络“VXLAN200”接口的逻辑接口3144来获知分组的MAC地址和VNI。在操作“3”中,获知的MAC地址和VNI的配对被存储在桥接表3150的条目中。桥接表3150已获知“MAC20”与VNI“VLAN20”的配对。虽然没有被示出,但是桥接MPRE 3130也将这个分组连同用于MAC地址的适当网络段标识符发送出到正确的桥接LIF。如在随后的三个图中所描述的,如果桥接MPRE 3130的桥接表知道这个目的地MAC与其中一个桥LIF之间的绑定,则该桥LIF将修改分组以包括正确的VNI,然后将分组发送出到识别出的LIF上。否则,如下面参考图34所描述的,桥将泛洪LIF来执行L2获知。
图32示出了利用由主机3100和桥接MPRE 3120先前获知的MAC-VNI配对在两个不同的覆盖网络上的两个VM之间桥接。该图以三个操作“1”、“2”和“3”示出了这种桥接过程。在操作“1”期间,VM 3113从覆盖网络“VLAN10”发送具有目的地地址“MAC20”的分组,但是“MAC20”不是可以在覆盖网络“VLAN10”中找到的地址,并且因此该分组被发送到桥BDR3130。在操作“2”期间,用于VLAN10的桥LIF 3141接收分组并且在桥接表3150中查找用于MAC地址“MAC20”的条目,其中先前已获知“MAC20”与VNI“VLAN20”相关联。因此,在操作“3”期间,桥LIF 3142(与VNI“VLAN20”相关联)将分组发送出到在VLAN20中并且具有MAC地址“MAC20”的VM 3111中。为了执行这两个LIF之间的桥接,一些实施例的桥接MPRE 3130首先剥离用于VLAN10的VNI(即,用于这个VLAN的VLAN标记),并且然后添加用于VLAN20的VNI(即,用于这个VLAN的VLAN标记)。在一些实施例中,桥接MPRE 3130接收作为来自控制器集群的配置数据的一部分的、关于如何剥离和为不同覆盖网络添加VNI的指令。
图33示出了在两个VM之间的桥接,这两个VM不在操作桥接MPRE 3130的主机3100中操作。如所提到的,在一些实施例中,不是每个主机机器都使其LRE实例配置为桥。在这些实施例中的一些实施例中,桥接MPRE提供在其它主机机器中的两个远程VM之间,或者本地VM(即,VM 3111-3114之一)和在另一个主机机器中的远程VM之间的桥接功能。
该图以三个操作“1”、“2”和“3”示出了这种桥接过程。在操作“1”中,主机3100通过物理NIC 3190从远程VM接收分组。该分组来自覆盖网络“VXLAN100”具有目的地地址“MAC200”,但是“MAC200”不是可以在覆盖网络“VXLAN100”中找到的地址。在操作“2”期间,用于VXLAN100的桥LIF 3143接收分组并且在桥接表3150中查找用于MAC地址“MAC200”的条目,其中先前已获知“MAC200”与VNI“VXLAN200”相关联。在操作“3”期间,桥LIF3144(与VNI“VXLAN200”相关联)将数据分组发送到物理网络前往在覆盖网络“VXLAN200”中具有MAC地址“MAC200”的远程VM。为了执行这两个LIF之间的桥接,一些实施例的桥接MPRE 3130首先剥离用于VXLAN100的VNI(即,24-位VXLAN ID),并且然后添加用于VXLAN200的VNI(即,24-位VXLAN ID)。
在这两种情况下(图32和33),虽然没有被示出,但是到来分组将具有源MAC地址。如在图31中所示,一些实施例的桥接MPRE 3130将存储这些源地址与到来LIF的绑定。即,在图32中的分组的源地址将在桥接表中存储为绑定到VLAN10 LIF,并且在图33中的分组的源地址将在桥接表中被存储为绑定到VXLAN100 LIF。
图32和33示出了其中桥接对已被预先获知并且可以在桥接表中找到的例子。图34a示出了其中目的地MAC地址在桥接表中没有匹配的条目并且桥接MPRE 3130将泛洪网络以寻找配对的桥接操作。该图以五个操作“1”、“2”、“3”、“4”和“5”示出了这种桥接过程。
在操作“1”中,主机3100通过物理NIC 3190接收来自远程VM的分组。该分组来自覆盖网络“VLAN10”具有目的地地址“MAC300”,但是“MAC300”不是可以在覆盖网络“VXLAN100”中找到的地址,并且因此该分组需要桥接到正确的覆盖网络。该分组也有VLAN10上的VM的“MAC400”的源地址。
在操作“2”期间,用于VLAN10的桥LIF 3141接收分组并且在桥接表3150中查找用于MAC地址“MAC300”的条目,但是不能找到匹配的对(即,桥接MPRE 3130还没有获知MAC300被绑定到的VNI)。此外,虽然没有被示出,但是“MAC400”到VLAN10的绑定被存储。因此,在操作“3”中,桥接MPRE 3130通过将数据分组(仍然具有目的地地址“MAC300”)发送到除VLAN10之外的所有VNI泛洪所有其它的桥LIF(3142-3144)。MPSE 3120然后负责在覆盖网络内的标准L2操作,以便使分组到达其正确的目的地。
在操作“4”中,利用不同VNI泛洪的数据分组到达在主机机器3100上操作的VM,并且在操作“5”中,利用不同VNI泛洪的数据分组经由用于其它主机机器的物理NIC被发送出去。在一些实施例中,MPSE 3120将分组泛洪到正确的覆盖网络上的所有VM。如果MPSE 3120知道MAC300的目的地,则它可以将分组发送到这个已知的目的地。此外,虽然用于所有三个覆盖网络的分组被示为被发送到物理网络上,但是在一些实施例中,MPSE将丢弃目的地地址不位于其上的两个分组。
图34b示出了从对泛洪的响应获知MAC地址配对。该图以三个操作“1”、“2”和“3”示出了这种响应和获知过程。在操作“1”中,来自具有用于“VXLAN100”的VNI的“MAC300”的响应到达主机机器3100。在一些实施例中,当VM将分组发送回到在VLAN10上的原始分组的源“MAC400”时,这种响应来自具有MAC地址“MAC300”的VM或其它机器。
在操作“2”中,数据分组进入桥接MPRE 3130并且被用于“VXLAN100”的桥LIF 3143接收到。在操作“4”中,桥接MPRE3130利用将“MAC300”与“VXLAN100”绑定的条目更新桥接表3150,并且将分组桥接到VLAN10。从这时开始,桥接MPRE 3130可以桥接去往“MAC300”的数据分组,而无需求助于泛洪。
对于一些实施例,图35概念性地示出了用于在采用VDR的逻辑网络处执行桥接的过程3500。在一些实施例中,该过程由具有桥LIF的MPRE(即,桥接MPRE)执行。过程3500在当桥接MPRE通过它与MPSE的端口接收到分组时开始。这个分组将具有不与其当前VNI匹配的目的地MAC地址,并且因此被发送到桥。该过程确定(在3505处)分组是否具有桥接MPRE以前从未见过的源MAC地址(即,该源MAC地址是否在其桥接表中被存储为绑定到特定的接口)。如果是,则该过程前进到3510。如果桥接MPRE以前已看见过该源MAC地址,则该过程前进到3520。
在3510处,该过程利用将源MAC地址与桥接MPRE从中接收到数据分组的覆盖网络(或网络段)的VNI(即,当分组被桥接MPRE接收到时该分组利用其进行标记的VNI)配对的新条目更新其桥接表。由于源MAC确定是在由VNI识别的网络段中,因此该信息对于桥接具有与它们的目的地地址相同的MAC地址的未来分组是有用的。该信息被存储在桥接表中,以提供这个MAC地址与其VNI之间的配对。
该过程然后确定(在3520处)用于目的地MAC地址的条目是否可以在其桥接表中找到。当桥接MPRE先前已桥接来自这个MAC地址的分组时,该地址应该在其表中被存储为MAC:VNI配对(除非桥接MPRE超时)。
如果目的地地址不在桥接表中,则该过程泛洪(在3530处)除了从中接收到数据分组的覆盖网络的桥LIF之外的所有桥LIF。在一些实施例中,该过程通过将相同的数据分组发送到承载不同VNI,但具有相同目的地MAC地址的不同覆盖网络泛洪所有的桥LIF。假设分组到达其目的地,则桥接MPRE将可能接收到来自目的地的应答分组,在那时,过程3500的另一个具体实例将会使桥接MPRE获知该MAC:VNT配对(在3505处)。
当目的地地址在桥接表中时,该过程通过利用用于目的地MAC的VNI将分组桥接(在3550处)到其目的地。这个VNI-MAC配对在桥接表中被找到,并且在一些实施例中,LIF配置包括关于如何执行桥接(即,如何将VNI附加到分组)的指令。在将分组桥接到其目的地接口之后(或者在泛洪的情况下,桥接到所有的LIF之后),过程3500结束。
III.VDR的控制和配置
在一些实施例中,如上所述在主机机器中本地操作为MPRE(或者用于路由和/或用于桥接)的LRE具体实例通过由控制器集群生成的配置数据集进行配置。在一些实施例中,控制器又基于由不同租户或用户创建和指定的逻辑网络生成这些配置数据集。在一些实施例中,用于网络虚拟化基础设施的网络管理器允许用户生成可以在网络虚拟化基础设施上实现的不同逻辑网络,并且然后将这些逻辑网络的参数推送到控制器,以便控制器可以生成特定于主机机器的配置数据集,其包括用于LRE的配置数据。在一些实施例中,网络管理器向主机机器提供用于从控制器提取用于LRE的配置数据的指令。
对于一些实施例,图36示出了网络虚拟化基础设施3600,其中逻辑网络规范被转换为用于主机机器中的LRE(是MPRE/桥)的配置。如所示出的,网络虚拟化基础设施3600包括网络管理器3610、一个或多个控制器集群3620、以及通过物理网络互连的主机机器3630。主机机器3630包括主机机器3631-3639,但是主机机器3635-3639没有在该图中示出。
网络管理器3610提供了用于一个或多个用户创建的逻辑网络的规范。在一些实施例中,网络管理器包括一套让用户指定可以通过网络虚拟化基础设施3600进行虚拟化的其自己的逻辑网络的应用。在一些实施例中,网络管理器为用户提供了应用编程接口(API),以在编程环境中指定逻辑网络。网络管理员又将这些创建的逻辑网络推送到控制器集群3620以供在主机机器处实现。
控制器集群3620包括用于控制在网络虚拟化基础设施3600中的主机机器3630的操作的多个控制器。控制器基于由网络管理器创建的逻辑网络创建用于主机机器的配置数据集。控制器还动态地向主机机器3631-3634提供配置更新和路由信息。在一些实施例中,控制器被组织,以便提供分布式或弹性控制平面体系架构,来确保即使某个控制平面节点失效时,每个主机机器仍然可以接收更新和路由。在一些实施例中,控制器中的至少一些控制器是在主机机器中操作的虚拟机。
主机机器3630操作LRE并且从控制器集群3620接收用于将LRE配置为MPRE/桥的配置数据。每个主机机器包括用于从控制器集群3620检索配置数据的控制器代理。在一些实施例中,每个主机机器根据VDR控制平面更新其MPRE转发表。在一些实施例中,VDR控制平面通过利用诸如OSPF(开放最短路径优先)或BGP(边界网关协议)的标准路由交换协议与路由节点通信,以通告/确定最佳路由。
图36还示出了在网络虚拟化基础设施3600中发生的以便配置主机机器3630中的LRE的操作。在操作“1”中,网络管理器3610向主机机器传递用于提取用于LRE的配置的指令。在一些实施例中,该指令包括指向控制器集群3620中的特定位置的地址。在操作“2”中,网络管理器3610将逻辑网络规范发送到集群3620中的控制器,并且控制器生成用于各个主机机器和LRE的配置数据。
在操作“3”中,在主机机器3630中操作的控制器代理基于在操作“2”处接收到的指令从控制器集群3620发送对LRE配置的请求。即,控制器代理联系它们由网络管理器3610指向的控制器。在操作“4”中,控制器集群3620响应于请求向主机机器提供LRE配置。
图37概念性地示出了从网络管理器3610向在各个主机机器3631-3634中操作的LRE交付配置数据。如所示出的,网络管理器3610根据用户的规定创建用于不同租户的逻辑网络。网络管理器将创建的逻辑网络3710和3720的描述交付给控制器3620。控制器3620又将逻辑网络描述3710和3720处理为用于分别交付给各个主机机器3631-3634的配置数据集3731-3734。但是,在其它实施例中,网络管理器生成这些配置数据集,并且控制器只负责交付给主机机器。这些配置数据集又被使用来配置不同逻辑网络的LRE,以操作为各个主机机器中的MPRE。
图38示出了被交付给各个主机机器的配置数据集的结构。该图示出了用于主机3631-3639的配置数据集3731-3737。主机机器正在操作用于两个不同租户X和Y的两个LRE3810和3820。主机机器3631、3632、3634和3637每个都被配置为操作(租户X)的LRE3810的MPRE,而主机机器3632、3633、3634和3635每个都被配置为操作(用于租户Y的)LRE 3820的MPRE。值得注意的是,用于不同租户的不同逻辑网络的不同LRE可以驻留在同一主机机器中,如以上通过参考图7所讨论的。在图38的例子中,主机机器3632正在操作用于租户X的LRE 3810和用于租户Y的LRE 3820两者的MPRE。
用于租户X的LRE 3810包括用于网络段A、B和C的LIF。用于租户Y的LRE 3820包括用于网络段D、E和F的LIF。在一些实施例中,每个逻辑接口特定于逻辑网络,并且没有逻辑接口可以出现在用于不同租户的不同LRE中。
在一些实施例中,用于主机的配置数据包括其VMAC(这对所有主机是通用的)、其唯一PMAC、以及在那个主机上运行的LRE的列表。例如,用于主机3633的配置数据将表明主机3633正在操作用于LRE 3820的MPRE,而用于主机3634的配置数据将表明主机3634正在操作用于LRE 3810和LRE 3820的MPRE。在一些实施例中,用于给定主机机器的租户X的MPRE和用于租户Y的MPRE两者都可通过分配给该主机机器的相同的唯一PMAC寻址。
在一些实施例中,用于LRE的配置数据包括LIF的列表、路由/转发表、以及控制器集群信息。在一些实施例中,控制器集群信息通知主机在哪里获得更新的控制和配置信息。在一些实施例中,用于LRE的配置数据被复制用于跨不同主机机器的所有LRE的具体实例(即,MPRE)。
在一些实施例中,用于LIF的配置数据包括逻辑接口的名称(例如,UUID)、其IP地址、其MAC地址(即LMAC或VMAC)、其MTU(最大传输单元)、其目的地信息(例如,与它接口的网络段的VNI)、它在特定的主机上是活动的还是不活动的、以及它是桥LIF还是路由LIF。在一些实施例中,用于逻辑接口的配置数据集还包括外部面对(external facing)参数,其指示在主机上作为其MPRE运行的LRE是否是指定的实例以及是否需要为物理(例如,非虚拟,非-VDR)主机执行地址解析。
在一些实施例中,LRE通过在网络管理器中操作的API来配置或控制。例如,一些实施例提供用于创建LRE、删除LRE、添加LIF和删除LIF的API。在一些实施例中,控制器不仅提供用于配置在主机机器中操作(为MPRE/桥)的LRE的静态配置数据,而且还提供用于运行为MPRE的本地LRE具体实例的静态和/或动态路由信息。一些实施例提供用于更新LIF(例如,来更新LIF的MTU/MAC/IP信息)的API,以及为给定的LRE添加或修改路由条目。在一些实施例中的路由条目包括诸如目的地IP或子网掩码、下一跳信息、逻辑接口、度量、路由类型(邻居条目或下一跳或接口等)、路由控制标志、以及动作(诸如转发、黑洞等)的信息。
一些实施例动态地收集和交付用于操作为MPRE的LRE的路由信息。图39示出了用于LRE的动态路由信息的收集和交付。如所示出的,网络虚拟化基础设施3600不仅包括控制器集群3620和主机机器3630,而且它还包括操作用于收集和分布动态路由信息的虚拟机(“边缘VM”)的主机机器3640。在一些实施例中,边缘VM 3640执行OSPF或BGP协议并且表现为用于另一个LAN或其它网络的外部路由器。在一些实施例中,边缘VM 3640从其它路由器获知网络路由。在其自己的网络段验证获知的路由之后,边缘VM 3640将获知的路由发送到控制器集群3620。控制器集群3620又把获知的路由传播到主机机器3630中的MPRE。
IV.电子系统
许多上述特征和应用被实现为软件过程,该软件过程被指定为一组记录在计算机可读存储介质(也被称为计算机可读介质)上的指令。当这些指令被一个或多个处理单元(例如,一个或多个处理器、处理器内核、或其它处理单元)执行时,它们使得这(一个或多个)处理单元执行在指令中所指示的动作。计算机可读介质的例子包括,但不限于,CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM,等等。计算机可读介质不包括无线传递或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”是指包括驻留在只读存储器中的固件或者可以被读入到存储器中以供处理器处理的存储在磁存储中的应用。此外,在一些实施例中,多个软件发明可以被实现为更大程序的子部分,同时保持独特的软件发明。在一些实施例中,多个软件发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任意组合是在本发明的范围之内。在一些实施例中,当软件程序被安装,以在一个或多个电子系统上操作时,该软件程序定义运行和执行该软件程序的操作的一个或多个特定的机器实现。
图40概念性地示出了本发明的一些实施例利用其来实现的电子系统4000。可以使用电子系统4000来执行任何上述控制、虚拟化或操作系统应用。电子系统4000可以是计算机(例如,台式计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机等)、电话、PDA或任何其它种类的电子设备。这种电子系统包括用于各种其它类型的计算机可读介质的各种类型的计算机可读介质和接口。电子系统4000包括总线4005、(一个或多个)处理单元4010、系统存储器4025、只读存储器4030、永久存储设备4035、输入设备4040、以及输出设备4045。
总线4005统一地表示通信连接电子系统4000的众多内部设备的所有系统、外设和芯片组总线。例如,总线4005将(一个或多个)处理单元4010与只读存储器4030、系统存储器4025、永久存储设备4035通信地连接。
从这些各种存储器单元中,(一个或多个)处理单元4010检索要执行的指令和要处理的数据,以便执行本发明的过程。(一个或多个)处理单元在不同实施例中可以是单个处理器或多核心处理器。
只读存储器(ROM)4030存储由(一个或多个)处理单元4010和电子系统的其它模块所需要的静态数据和指令。另一方面,永久存储设备4035是读和写存储器设备。这个设备是即使当电子系统4000关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(诸如磁或光盘及其对应的盘驱动器)作为永久存储设备4035。
其它实施例使用可移除存储设备(诸如软盘、闪存驱动器等)作为永久存储设备。与永久存储设备4035一样,系统存储器4025是读和写存储器设备。但是,与存储设备4035不同,系统存储器是易失性读和写存储器,例如随机存取存储器。系统存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的过程被存储在系统存储器4025、永久存储设备4035和/或只读存储器4030中。从这些各种存储器单元中,(一个或多个)处理单元4010检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
总线4005还连接到输入和输出设备4040和4045。输入设备使用户能够传递信息和选择到电子系统的命令。输入设备4040包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备4045显示由电子系统生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括诸如用作输入和输出设备两者的触摸屏的设备。
最后,如在图40中所示,总线4005还通过网络适配器(未示出)将电子系统4000耦合到网络4065。以这种方式,计算机可以是计算机的网络(诸如局域网(“LAN”)、广域网(“WAN”)、或内联网、或诸如互联网的网络的网络)的一部分。电子系统4000的任何或所有组件可以与本发明结合使用。
一些实施例包括电子组件,诸如微处理器、在机器可读或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的储存装置和存储器。这种计算机可读介质的一些例子包括RAM、ROM、只读压缩盘(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM,双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW,等等)、闪存存储器(例如,SD卡、小型SD卡、微型SD卡等)、磁和/或固态硬盘驱动器、只读和可记录
Figure BDA0002514734260000591
盘、超密度光盘、任何其它光或磁介质、以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的例子包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件、或利用解释器的微处理器执行的更高级别代码的文件。
虽然以上讨论主要指执行软件的微处理器或多核处理器,但是一些实施例通过诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的一个或多个集成电路来执行。在一些实施例中,这种集成电路执行在该电路自身上存储的指令。
如在本说明书中所使用的,术语“计算机”、“服务器”、“处理器”、以及“存储器”都是指电子或其它技术设备。这些术语不包括人或人群。为了本说明书的目的,术语显示或正在显示意味着在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“多个计算机可读介质”和“机器可读介质”被完全限制为以由计算机可读的形式存储信息的、有形的、物理的对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂的信号。
虽然本发明已经参考许多特定细节进行了描述,但是本领域普通技术人员将认识到,在不脱离本发明的精神的情况下,本发明可以以其它特定形式体现。此外,多个图(包括图11、14、15、22和35)概念性地示出了过程。这些过程的特定操作可能没有以与所示出和描述的确切顺序来执行。特定操作可能没有以一个连续的操作系列执行,并且不同的特定操作可能在不同的实施例中执行。此外,过程可以利用若干个子过程来实现,或者作为较大宏过程的一部分来实现。因此,本领域普通技术人员将理解,本发明不受上述说明性细节的限制,而是由所附权利要求来限定。

Claims (43)

1.一种用于主机计算机的方法,所述主机计算机托管(i)多个虚拟机,(ii)受管理物理交换元件(MPSE),其与其它主机计算机上的MPSE一起实现由逻辑路由器连接的多个逻辑网络段,以及(iii)受管理物理路由元件(MPRE),其与其它主机计算机上的MPRE一起实现逻辑路由器,所述方法包括:
在所述MPRE处:
通过所述MPSE从所述多个虚拟机中的一组虚拟机接收一组数据消息,其中所述数据消息是从所述MPSE的同一端口接收的;
对于所述一组数据消息中的每个数据消息,将所述数据消息从所述逻辑网络段中的一个路由到所述逻辑网络段中的另一个;
对于路由的数据消息中的每一个,将路由的数据消息返回到所述MPSE的从其接收所述路由的数据消息的端口,以便所述MPSE转发到所述数据消息的目的地。
2.如权利要求1所述的方法,其中MPRE包括多个逻辑接口,每个逻辑接口用于从多个逻辑网络段中的不同逻辑网络段接收数据消息。
3.如权利要求2所述的方法,其中:
每个逻辑接口共享相同的链路层地址;
实现逻辑路由器的每个所述主机计算机上的MPRE由在相同主机上执行的虚拟机使用由逻辑接口共享的相同内部链路层地址来寻址;
每个MPRE可由在单独的外部链路层地址处的其他主机计算机寻址;以及
每个主机计算机托管上行链路处理器,所述上行链路处理器将发送到MPRE的数据消息的链路层地址从单独的外部链路层地址转换为共享的内部链路层地址。
4.如权利要求2所述的方法,其中将特定数据消息从第一逻辑网络段路由到第二逻辑网络段包括:
识别在其上接收所述特定数据消息的第一逻辑接口;
针对与所述多个逻辑接口中的第一逻辑接口相关联的第一逻辑网络段执行一组入口操作;以及
识别与所述第二逻辑网络段相关联的出口第二逻辑接口;以及
针对所述第二逻辑网络段执行一组出口操作。
5.如权利要求4所述的方法,其中识别在其上接收所述数据消息的所述第一逻辑接口包括基于源网络地址来识别所述第一逻辑接口。
6.如权利要求4所述的方法,其中识别在其上接收所述数据消息的第一逻辑接口包括基于虚拟网络标识符来识别所述第一逻辑接口。
7.如权利要求1所述的方法,其中:
所述MPRE是第一MPRE,所述多个逻辑网络段是第一多个逻辑网络段,所述逻辑路由器是第一逻辑路由器,所述一组数据消息是第一组数据消息,并且所述一组虚拟机是第一组虚拟机;
所述主机计算机还托管第二MPRE,所述第二MPRE连同其他主机计算机上的其他MPRE一起实现第二逻辑路由器;以及
所述第二MPRE:
通过所述MPSE从第二组虚拟机接收一组数据消息,其中所述数据消息是从所述MPSE的相同端口接收的;
对于所述第二组数据消息中的每个数据消息,将所述数据消息从第三逻辑网络段路由到第四逻辑网络段;
对于路由的数据消息中的每一个,将路由的数据消息返回到所述MPSE的从其接收所述路由的数据消息的端口,以便所述MPSE转发到所述数据消息的目的地。
8.一种用于主机计算机的方法,所述主机计算机执行在逻辑网络的多个不同段中的多个虚拟机,所述方法包括:
在所述主机计算机上执行的受管理物理路由元件(MPRE)处,所述受管理物理路由元件包括多个逻辑接口,每个逻辑接口用于从所述逻辑网络的不同段接收数据分组,其中所述逻辑接口中的每个逻辑接口能够通过网络层地址来寻址:
当地址解析协议(ARP)广播消息的网络层目的地地址与MPRE的逻辑接口之一的网络层地址匹配时,截取该消息;以及
基于匹配的逻辑接口的MAC(媒体访问控制)地址制定并交付对ARP广播消息的ARP应答。
9.如权利要求8所述的方法,其中所述ARP广播消息由在所述主机计算机上操作的虚拟机发送。
10.如权利要求8所述的方法,其中ARP广播消息包括广播媒体访问控制(MAC)地址,所述程序还包括用于用MPRE的虚拟MAC(VMAC)地址替换广播MAC地址的指令集。
11.如权利要求8所述的方法,其中ARP应答的源MAC地址被设置为MPRE的虚拟MAC(VMAC)地址,其中VMAC对于逻辑网络中的所有主机计算机是共用的。
12.如权利要求8所述的方法,其中所述逻辑网络的至少一个段是覆盖封装网络。
13.如权利要求8所述的方法,其中MPRE是第一MPRE并且主机计算机是第一主机计算机,其中ARP广播消息由在第二主机计算机上操作的第二MPRE发送。
14.如权利要求13所述的方法,其中第一MPRE和第二MPRE中的每一个与物理MAC(PMAC)地址相关联,所述物理MAC地址从在其它主机计算机上操作的MPRE中唯一地识别在所述主机计算机上操作的MPRE。
15.如权利要求14所述的方法,其中制定ARP应答包括将ARP应答的目的地地址设置为PMAC,所述PMAC唯一地识别发送ARP广播消息的第二主机计算机的第二MPRE。
16.如权利要求13所述的方法,其中ARP广播消息是第一ARP广播消息,所述方法还包括当第一MPRE不能解析第一ARP广播消息中的网络层地址时,将第二ARP广播消息发送到在第一主机计算机上操作的虚拟机。
17.一种在网络虚拟化基础设施上操作多个逻辑网络的方法,所述方法包括:
定义受管理物理交换元件(MPSE),所述MPSE包括用于向多个虚拟机转发分组和从所述多个虚拟机转发分组的多个端口,每个端口与唯一的媒体访问控制(MAC)地址相关联;
为多个不同逻辑网络定义多个受管理物理路由元件(MPRE),所述MPRE被定义为从所述MPSE的相同端口接收数据分组,其中每个MPRE被定义用于不同逻辑网络并且用于执行所述逻辑网络的不同逻辑L2段之间的数据分组的逻辑L3路由;以及
将定义的MPSE和定义的多个MPRE作为配置数据提供给多个主机计算机,其中每个主机计算机根据所提供的配置数据来操作所述MPSE和所述多个MPRE。
18.如权利要求17所述的方法,其中将定义的MPSE和定义的多个MPRE提供给多个主机计算机包括:
将所述配置数据提供给控制所述多个主机计算机的控制器集群;以及
向每个主机计算机提供用于从所述控制器集群获取一组配置数据的指令集。
19.如权利要求17所述的方法,还包括为每个MPRE定义多个逻辑接口,其中每个逻辑接口与不同网络段相关联。
20.如权利要求19所述的方法,其中每个逻辑接口与不同IP地址相关联。
21.如权利要求19所述的方法,其中不同逻辑网络通过不同逻辑接口彼此隔离。
22.如权利要求17所述的方法,其中所述网络虚拟化基础结构支持多个不同租户,其中每个逻辑网络是为不同租户定义的。
23.如权利要求17所述的方法,其中所提供的配置数据用于每个主机机器操作所述多个逻辑网络的多个MPRE。
24.一种方法,包括:
为要在多个主机计算机中操作的逻辑路由元件定义第一配置,其中每个主机计算机操作所述逻辑路由元件的实例以用于在逻辑网络的不同逻辑L2段之间执行数据分组的逻辑L3路由;
为逻辑路由元件的多个逻辑接口定义第二配置,每个逻辑接口用于与所述逻辑网络的不同段接口;以及
将所述第一配置和所述第二配置提供给所述主机计算机中的每一个。
25.如权利要求24所述的方法,其中将所述第一配置和所述第二配置提供给所述主机计算机中的每一个包括:
将所述配置提供给控制所述多个主机计算机的控制器集群;以及
将用于从所述控制器集群获取一组配置数据的指令集提供给每个主机计算机。
26.如权利要求24所述的方法,其中每一个逻辑接口与不同IP地址相关联。
27.如权利要求24所述的方法,其中所述多个主机计算机在支持多个不同租户的网络虚拟化基础设施中,其中每个主机计算机操作用于多个不同租户的多个逻辑路由元件。
28.如权利要求24所述的方法,其中所述逻辑路由元件是第一逻辑路由元件,其中所述方法包括为第二逻辑路由元件定义第三配置,所述第二逻辑路由元件要与所述第一逻辑路由元件同时在所述多个主机计算机中被操作。
29.一种方法,包括:
向控制网络虚拟化基础设施中的多个主机计算机的控制器集群提供逻辑网络的配置数据;以及
将用于从所述控制器集群获取一组配置数据的指令集提供给所述多个主机计算机中的每个主机计算机,其中所述一组配置数据用于将所述主机计算机配置为将逻辑路由元件的实例操作为受管理物理路由元件(MPRE)以用于在所述逻辑网络的不同逻辑L2段中操作的虚拟机之间执行数据分组的逻辑L3路由。
30.如权利要求29所述的方法,其中所述配置数据包括用于所述逻辑路由元件中的多个逻辑接口的参数,其中每个逻辑接口用于与所述逻辑网络的不同段接口。
31.如权利要求29所述的方法,其中所述逻辑网络的至少一个段是覆盖封装网络。
32.如权利要求31所述的方法,其中所述段中的至少两个段是与不同网络标识符相关联的不同覆盖封装网络。
33.一种存储程序的机器可读介质,所述程序在由至少一个处理单元实现时实现如权利要求1-32中任一项所述的方法。
34.一种计算设备,包括:
一组处理单元;以及
存储程序的机器可读介质,所述程序在由所述处理单元中的至少一个处理单元实现时实现如权利要求1-32中任一项所述的方法。
35.一种系统,包括用于实现如权利要求1-32中任一项所述的方法的装置。
36.一种系统,包括:
属于第一覆盖网络的第一多个虚拟机;以及
属于第二覆盖网络的第二多个虚拟机,其中所述第一多个虚拟机和所述第二多个虚拟机在多个主机计算机中操作,每个主机计算机执行受管理物理路由元件(MPRE),每个MPRE用于在不同覆盖网络中的虚拟机之间转发数据分组,
其中特定MPRE被配置为用于通过使用覆盖网络标识符和链路层地址之间的配对来在处于不同覆盖网络中的但是处于相同IP子网中的虚拟机之间桥接分组的桥,
其中(i)所述特定MPRE的逻辑接口(LIF)被配置为用于与特定覆盖网络接口的桥LIF,以及(ii)所述桥LIF由所述特定覆盖网络的覆盖网络标识符来识别,
其中在相同主机计算机上操作的、处于不同覆盖网络中的但是处于相同IP子网中的虚拟机之间的数据消息由所述特定MPRE转发到所述数据消息的目的地而不离开所述主机计算机。
37.如权利要求36所述的系统,其中所述第一覆盖网络是VLAN,并且所述第二覆盖网络是VXLAN。
38.如权利要求36所述的系统,其中每个MPRE包括多个LIF,每个LIF用于与不同覆盖网络接口。
39.如权利要求38所述的系统,其中未被配置为桥LIF的LIF被配置为用于通过使用网络层IP地址来路由数据分组的路由LIF。
40.如权利要求39所述的系统,其中每个路由LIF接收具有属于MPRE的目的地MAC地址的数据分组。
41.如权利要求39所述的系统,其中每个桥LIF从桥LIF与之接口的覆盖网络接收需要桥接的数据分组,其中当来自特定覆盖网络的特定数据分组的目的地MAC地址不在特定覆盖网络中时,所述特定数据分组需要桥接。
42.如权利要求41所述的系统,其中当MPRE没有存储识别所述目的地MAC地址属于哪个覆盖网络的数据时,所述MPRE在除了从其接收所述特定数据分组的桥LIF之外的所有桥LIF上将所述特定数据分组发送出。
43.如权利要求41所述的系统,其中所述MPRE从由所述MPRE接收的数据分组的源MAC地址和覆盖网络标识符学习MAC地址与覆盖网络之间的配对。
CN202010472379.1A 2013-10-13 2014-10-10 逻辑路由器 Active CN111585889B (zh)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
US201361890309P 2013-10-13 2013-10-13
US61/890,309 2013-10-13
US201361962298P 2013-10-31 2013-10-31
US61/962,298 2013-10-31
US14/137,877 2013-12-20
US14/137,869 2013-12-20
US14/137,877 US9977685B2 (en) 2013-10-13 2013-12-20 Configuration of logical router
US14/137,867 2013-12-20
US14/137,862 US9785455B2 (en) 2013-10-13 2013-12-20 Logical router
US14/137,867 US9575782B2 (en) 2013-10-13 2013-12-20 ARP for logical router
US14/137,862 2013-12-20
US14/137,869 US9910686B2 (en) 2013-10-13 2013-12-20 Bridging between network segments with a logical router
PCT/US2014/060183 WO2015054671A2 (en) 2013-10-13 2014-10-10 Logical router
CN201480056094.2A CN105684363B (zh) 2013-10-13 2014-10-10 逻辑路由器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480056094.2A Division CN105684363B (zh) 2013-10-13 2014-10-10 逻辑路由器

Publications (2)

Publication Number Publication Date
CN111585889A true CN111585889A (zh) 2020-08-25
CN111585889B CN111585889B (zh) 2022-08-16

Family

ID=52813757

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201480056094.2A Active CN105684363B (zh) 2013-10-13 2014-10-10 逻辑路由器
CN202210941374.8A Pending CN115174470A (zh) 2013-10-13 2014-10-10 逻辑路由器
CN202010472379.1A Active CN111585889B (zh) 2013-10-13 2014-10-10 逻辑路由器

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201480056094.2A Active CN105684363B (zh) 2013-10-13 2014-10-10 逻辑路由器
CN202210941374.8A Pending CN115174470A (zh) 2013-10-13 2014-10-10 逻辑路由器

Country Status (6)

Country Link
US (7) US9910686B2 (zh)
EP (2) EP3627780B1 (zh)
JP (3) JP5925820B2 (zh)
KR (4) KR102181554B1 (zh)
CN (3) CN105684363B (zh)
WO (1) WO2015054671A2 (zh)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9191360B2 (en) * 2013-01-22 2015-11-17 International Business Machines Corporation Address management in an overlay network environment
US9882713B1 (en) 2013-01-30 2018-01-30 vIPtela Inc. Method and system for key generation, distribution and management
US9531676B2 (en) * 2013-08-26 2016-12-27 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9876715B2 (en) * 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10158538B2 (en) * 2013-12-09 2018-12-18 Nicira, Inc. Reporting elephant flows to a network controller
US9467478B1 (en) * 2013-12-18 2016-10-11 vIPtela Inc. Overlay management protocol for secure routing based on an overlay network
CN103731353B (zh) * 2013-12-26 2017-07-14 华为技术有限公司 虚拟机的物理地址获取方法
US10200239B2 (en) * 2013-12-27 2019-02-05 Red Hat Israel, Ltd. Normalized management network
US9794128B2 (en) 2013-12-30 2017-10-17 International Business Machines Corporation Overlay network movement operations
KR20150088499A (ko) * 2014-01-24 2015-08-03 한국전자통신연구원 송신 노드의 ip 및 mac 테이블들 및 송신 노드와 연결된 서버의 arp 테이블을 관리하는 방법 및 장치
US10120729B2 (en) 2014-02-14 2018-11-06 Vmware, Inc. Virtual machine load balancing
CN106576075B (zh) 2014-03-27 2021-01-26 Nicira股份有限公司 在网络虚拟化基础设施上操作逻辑网络的方法和系统
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
KR101945886B1 (ko) * 2014-06-27 2019-02-11 노키아 솔루션스 앤드 네트웍스 오와이 계층-2 스위칭에 기초한 초고속 모바일 네트워크
US20160050146A1 (en) * 2014-08-15 2016-02-18 Turbostor, Inc. Accelerated storage appliance using a network switch
US9858100B2 (en) 2014-08-22 2018-01-02 Nicira, Inc. Method and system of provisioning logical networks on a host machine
US20160065503A1 (en) * 2014-08-29 2016-03-03 Extreme Networks, Inc. Methods, systems, and computer readable media for virtual fabric routing
US10560353B1 (en) * 2014-09-16 2020-02-11 Amazon Technologies, Inc. Deployment monitoring for an application
US9501307B2 (en) * 2014-09-26 2016-11-22 Comcast Cable Communications, Llc Systems and methods for providing availability to resources
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) * 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US10079779B2 (en) 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
CN106209636B (zh) 2015-05-04 2019-08-02 新华三技术有限公司 从vlan至vxlan的组播数据报文转发方法和设备
CN106209648B (zh) 2015-05-04 2019-06-14 新华三技术有限公司 跨虚拟可扩展局域网的组播数据报文转发方法和设备
CN106209689B (zh) 2015-05-04 2019-06-14 新华三技术有限公司 从vxlan至vlan的组播数据报文转发方法和设备
US10554547B2 (en) * 2015-05-07 2020-02-04 Cisco Technology, Inc. Scalable network address translation at high speed in a network environment
US9558029B2 (en) 2015-05-17 2017-01-31 Nicira, Inc. Logical processing for containers
US9804880B2 (en) * 2015-06-16 2017-10-31 Vmware, Inc. Reservation for a multi-machine application
JP2017011487A (ja) * 2015-06-22 2017-01-12 富士通株式会社 情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法
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
WO2017003957A1 (en) 2015-06-30 2017-01-05 Nicira, Inc Intermediate logical interfaces in a virtual distributed router environment
US9992153B2 (en) * 2015-07-15 2018-06-05 Nicira, Inc. Managing link aggregation traffic in edge nodes
US10243914B2 (en) * 2015-07-15 2019-03-26 Nicira, Inc. Managing link aggregation traffic in edge nodes
US10567347B2 (en) * 2015-07-31 2020-02-18 Nicira, Inc. Distributed tunneling for VPN
US10033622B2 (en) * 2015-08-07 2018-07-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controller-based dynamic routing in a software defined network environment
US10078526B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US10063469B2 (en) 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
US9980303B2 (en) 2015-12-18 2018-05-22 Cisco Technology, Inc. Establishing a private network using multi-uplink capable network devices
JP6579258B2 (ja) * 2016-03-02 2019-09-25 日本電気株式会社 ネットワークシステム、制御装置、仮想ネットワーク機能の構築方法及びプログラム
US10581793B1 (en) * 2016-04-29 2020-03-03 Arista Networks, Inc. Address resolution in virtual extensible networks
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
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
US10341371B2 (en) 2016-08-31 2019-07-02 Nicira, Inc. Identifying and handling threats to data compute nodes in public cloud
JP6744985B2 (ja) * 2016-08-27 2020-08-19 ニシラ, インコーポレイテッド ネットワーク制御システムのパブリッククラウドへの拡張
US20180150256A1 (en) 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
CN107094187A (zh) * 2017-04-01 2017-08-25 汕头大学 一种自动查找mac地址的接入交换机端口的方法
WO2019018261A1 (en) * 2017-07-17 2019-01-24 Nicira, Inc. DISTRIBUTED MULTICAST LOGIC ROUTER
US10873473B2 (en) 2017-07-17 2020-12-22 Nicira, Inc. Distributed multicast logical router
US10523455B2 (en) * 2017-07-17 2019-12-31 Nicira, Inc. Distributed multicast logical router
US10218523B2 (en) 2017-07-17 2019-02-26 Nicira, Inc. Using a central controller cluster to configure a distributed multicast logical router
US10567482B2 (en) 2017-08-24 2020-02-18 Nicira, Inc. Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
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
US10778579B2 (en) 2017-08-27 2020-09-15 Nicira, Inc. Performing in-line service in public cloud
US10623369B2 (en) * 2017-09-13 2020-04-14 Charter Communications Operating, Llc Device and method for discovery and announcement of secondary end-point reachability information
US10116671B1 (en) * 2017-09-28 2018-10-30 International Business Machines Corporation Distributed denial-of-service attack detection based on shared network flow information
US10992636B2 (en) * 2017-09-29 2021-04-27 Cisco Technology, Inc. Mitigating network/hardware address explosion in network devices
CN107579900B (zh) * 2017-10-13 2020-07-28 锐捷网络股份有限公司 从vlan网络接入vxlan网络的方法、装置及系统
KR102352156B1 (ko) * 2017-10-26 2022-01-17 삼성전자주식회사 Arp를 수행하는 슬레이브 장치 및 이의 동작 방법
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
US10601705B2 (en) 2017-12-04 2020-03-24 Nicira, Inc. Failover of centralized routers in public cloud logical networks
US10862753B2 (en) 2017-12-04 2020-12-08 Nicira, Inc. High availability for stateful services in public cloud logical networks
CN108471397B (zh) * 2018-01-31 2020-12-15 华为技术有限公司 防火墙配置、报文发送方法和装置
US10536563B2 (en) * 2018-02-06 2020-01-14 Nicira, Inc. Packet handling based on virtual network configuration information in software-defined networking (SDN) environments
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US10491466B1 (en) 2018-08-24 2019-11-26 Vmware, Inc. Intelligent use of peering in public cloud
US11374794B2 (en) 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US10992497B2 (en) * 2018-11-26 2021-04-27 Arrcus Inc. Logical router comprising disaggregated network elements
US10735541B2 (en) 2018-11-30 2020-08-04 Vmware, Inc. Distributed inline proxy
CN109873769A (zh) * 2018-12-28 2019-06-11 安徽中瑞通信科技股份有限公司 一种基于5g通信的智能路由器
US11101889B2 (en) * 2019-03-02 2021-08-24 Sealight Technologies, Inc. Virtual optical edge device
US11463398B2 (en) * 2019-07-10 2022-10-04 Vmware, Inc. Address resolution handling at logical distributed routers
US11115324B2 (en) * 2019-08-27 2021-09-07 Nokia Solutions Networks Oy System and method for performing segment routing over an MPLS network
CN113098749A (zh) * 2020-01-08 2021-07-09 华为技术有限公司 报文发送方法、装置及存储介质
US11394634B2 (en) 2020-04-06 2022-07-19 Vmware, Inc. Architecture for stretching logical switches between multiple datacenters
US11088919B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Data structure for defining multi-site logical network
US11374817B2 (en) 2020-04-06 2022-06-28 Vmware, Inc. Determining span of logical network element
US11496437B2 (en) * 2020-04-06 2022-11-08 Vmware, Inc. Selective ARP proxy
US11777793B2 (en) 2020-04-06 2023-10-03 Vmware, Inc. Location criteria for security groups
US11088902B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Synchronization of logical network state between global and local managers
US11689455B2 (en) 2020-05-28 2023-06-27 Oracle International Corporation Loop prevention in virtual layer 2 networks
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
JP2023535152A (ja) 2020-07-14 2023-08-16 オラクル・インターナショナル・コーポレイション 仮想レイヤ2ネットワーク
CN112019527B (zh) * 2020-08-13 2022-05-31 苏州浪潮智能科技有限公司 一种嵌入式设备固定mac地址的设置方法及系统
US11343283B2 (en) 2020-09-28 2022-05-24 Vmware, Inc. Multi-tenant network virtualization infrastructure
US11425044B2 (en) * 2020-10-15 2022-08-23 Cisco Technology, Inc. DHCP layer 2 relay in VXLAN overlay fabric
US11777849B2 (en) 2020-12-04 2023-10-03 Oracle International Corporation Multi-customer (multi-tenants) support with hypervisor based bond implementation
US11757773B2 (en) 2020-12-30 2023-09-12 Oracle International Corporation Layer-2 networking storm control in a virtualized cloud environment
US11671355B2 (en) 2021-02-05 2023-06-06 Oracle International Corporation Packet flow control in a header of a packet
US11777897B2 (en) 2021-02-13 2023-10-03 Oracle International Corporation Cloud infrastructure resources for connecting a service provider private network to a customer private network
US11805101B2 (en) 2021-04-06 2023-10-31 Vmware, Inc. Secured suppression of address discovery messages
US11595296B2 (en) 2021-06-29 2023-02-28 Vmware, Inc. Active-active support of multicast streams in virtualized environment
US11895010B2 (en) 2021-06-29 2024-02-06 VMware LLC Active-active support of multicast streams in virtualized environment
US11784926B2 (en) 2021-11-22 2023-10-10 Vmware, Inc. Optimized processing of multicast data messages in a host

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1520550A (zh) * 2001-04-20 2004-08-11 �������չɷ����޹�˾ 在处理系统中虚拟连网的系统及方法
CN1744552A (zh) * 2004-08-27 2006-03-08 国际商业机器公司 用于提供网络虚拟化的方法和装置
US20100107162A1 (en) * 2008-03-07 2010-04-29 Aled Edwards Routing across a virtual network
CN101822006A (zh) * 2007-10-03 2010-09-01 阿瓦雅公司 在包括多个交换机的集群交换机中设置抽象层
CN102334111A (zh) * 2009-03-30 2012-01-25 亚马逊技术有限公司 为受管计算机网络提供逻辑联网功能
CN102347898A (zh) * 2010-07-26 2012-02-08 丛林网络公司 有关网络内路由选择的方法和设备
CN102780601A (zh) * 2011-05-13 2012-11-14 国际商业机器公司 管理虚拟网络的方法与系统
WO2013020126A1 (en) * 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
US20130044751A1 (en) * 2011-08-17 2013-02-21 Martin Casado Packet processing in managed interconnection switching elements
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
US20130182574A1 (en) * 2012-01-13 2013-07-18 Verizon Patent And Licensing Inc. Method and system of congestion control in a mobile virtual network

Family Cites Families (342)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0737921B1 (en) 1990-09-17 2000-06-28 Cabletron Systems, Inc. System and method for modelling a computer network
US5742760A (en) 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
SE9402059D0 (sv) 1994-06-13 1994-06-13 Ellemtel Utvecklings Ab Sätt och anordning vid telekommunikation
US5751967A (en) 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5550816A (en) 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US6035105A (en) 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
JP3684262B2 (ja) 1996-01-17 2005-08-17 富士通株式会社 ネットワークシステム及び集線装置
US6108304A (en) 1996-03-08 2000-08-22 Abe; Hajime Packet switching network, packet switching equipment, and network management equipment
JPH09307587A (ja) 1996-05-09 1997-11-28 Fujitsu Ltd 交換機
CA2213984A1 (en) 1996-08-22 1998-02-22 Norand Corporation Enhanced mobility and address resolution in a wireless premises based network
US6456624B1 (en) 1997-10-29 2002-09-24 Enterasys Networks, Inc. Network address resolve blocker
US6172981B1 (en) * 1997-10-30 2001-01-09 International Business Machines Corporation Method and system for distributing network routing functions to local area network stations
JP3609256B2 (ja) 1998-05-19 2005-01-12 株式会社日立製作所 ネットワーク管理装置,ノード装置及びネットワーク管理システム
US6424659B2 (en) 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
EP0978977A1 (en) * 1998-08-07 2000-02-09 International Business Machines Corporation A method and system for improving high speed internetwork data transfers
US6584102B1 (en) 1998-12-21 2003-06-24 At&T Corp. Communication network apparatus and method
US6950428B1 (en) 1998-12-30 2005-09-27 Hewlett-Packard Development Company, L.P. System and method for configuring adaptive sets of links between routers in a system area network (SAN)
US6640251B1 (en) * 1999-03-12 2003-10-28 Nortel Networks Limited Multicast-enabled address resolution protocol (ME-ARP)
US6963585B1 (en) 1999-10-21 2005-11-08 International Business Machines Corporation Method and system for establishing a virtual path capability in a frame relay network
US6680934B1 (en) 1999-12-02 2004-01-20 Nortel Networks Limited System, device and method for expediting control flow in a communication system
US20020013858A1 (en) 2000-02-09 2002-01-31 Anderson Keith R. ARP caching apparatus and method
US7215637B1 (en) * 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US20020093952A1 (en) 2000-06-30 2002-07-18 Gonda Rumi Sheryar Method for managing circuits in a multistage cross connect
US7389358B1 (en) 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US7260648B2 (en) 2001-01-25 2007-08-21 Ericsson, Inc. Extension of address resolution protocol (ARP) for internet protocol (IP) virtual networks
US6999454B1 (en) 2001-02-09 2006-02-14 Nortel Networks Limited Information routing system and apparatus
US6785843B1 (en) 2001-02-23 2004-08-31 Mcrae Andrew Data plane restart without state change in a control plane of an intermediate network node
US7209439B2 (en) 2001-03-20 2007-04-24 Mci, Llc Pool-based resource management in a data network
US7069337B2 (en) 2001-03-20 2006-06-27 Mci, Inc. Policy-based synchronization of per-class resources between routers in a data network
US7102996B1 (en) 2001-05-24 2006-09-05 F5 Networks, Inc. Method and system for scaling network traffic managers
EP1267529B1 (en) 2001-06-14 2007-11-14 Hitachi Ltd. Data packets acknowledgment system
US20030026271A1 (en) * 2001-07-03 2003-02-06 Erb Guy C. L2/L3 network with LSP-enabled virtual routing
US7126944B2 (en) 2001-07-05 2006-10-24 Intel Corporation Routing packets across multiple forwarding elements
JP2003069609A (ja) 2001-08-23 2003-03-07 Fujitsu Ltd 仮想私設網サービスを提供するシステム
JP3879471B2 (ja) 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7200144B2 (en) 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7133365B2 (en) 2001-11-02 2006-11-07 Internap Network Services Corporation System and method to provide routing control of information over networks
US8095668B2 (en) 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
US7801155B2 (en) 2002-03-01 2010-09-21 Verizon Business Global Llc Resource allocation in virtual routers
US6941487B1 (en) 2002-03-07 2005-09-06 Riverstone Networks, Inc. Method, system, and computer program product for providing failure protection in a network node
JP3904968B2 (ja) 2002-04-19 2007-04-11 日本電信電話株式会社 Vpnシステムおよびルータ
US7197572B2 (en) 2002-05-06 2007-03-27 Qlogic, Corporation System and method for implementing logical switches in a network system
US6907039B2 (en) 2002-07-20 2005-06-14 Redback Networks Inc. Method and apparatus for routing and forwarding between virtual routers within a single network element
US7339929B2 (en) 2002-08-23 2008-03-04 Corrigent Systems Ltd. Virtual private LAN service using a multicast protocol
US20040073659A1 (en) 2002-10-15 2004-04-15 Carl Rajsic Method and apparatus for managing nodes in a network
US7180899B2 (en) * 2002-10-29 2007-02-20 Cisco Technology, Inc. Multi-tiered Virtual Local area Network (VLAN) domain mapping mechanism
US20040098505A1 (en) 2002-11-20 2004-05-20 Clemmensen Daniel G. Forwarding system with multiple logical sub-system functionality
US7224668B1 (en) 2002-11-27 2007-05-29 Cisco Technology, Inc. Control plane security and traffic flow management
JP4157409B2 (ja) 2003-03-31 2008-10-01 富士通株式会社 仮想パス構築装置および仮想パス構築方法
US7283473B2 (en) 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
EP1625489A2 (en) 2003-04-21 2006-02-15 Netcell Corp. Disk array controller with reconfigurable data path
US7792987B1 (en) 2003-04-21 2010-09-07 Juniper Networks, Inc. Supporting virtual private networks using a first network topology for forwarding and a subset of the first network topology or a smaller topology for signaling
US7710874B2 (en) 2003-06-04 2010-05-04 International Business Machines Corporation System and method for automatic management of many computer data processing system pipes
JP4278445B2 (ja) 2003-06-18 2009-06-17 株式会社日立製作所 ネットワークシステム及びスイッチ
US20050022017A1 (en) 2003-06-24 2005-01-27 Maufer Thomas A. Data structures and state tracking for network protocol processing
US7356818B2 (en) 2003-06-24 2008-04-08 International Business Machines Corporation Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor
US7463579B2 (en) 2003-07-11 2008-12-09 Nortel Networks Limited Routed split multilink trunking
US20050018669A1 (en) 2003-07-25 2005-01-27 International Business Machines Corporation Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port
US7697527B2 (en) 2003-07-30 2010-04-13 Nortel Networks Limited Method and apparatus for direct frame switching using frame contained destination information
US7593346B2 (en) 2003-07-31 2009-09-22 Cisco Technology, Inc. Distributing and balancing traffic flow in a virtual gateway
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7366181B2 (en) 2003-09-06 2008-04-29 Fujitsu Limited Virtual private network (VPN) with channelized ethernet over sonet (EoS) interface and method
US7342916B2 (en) 2003-09-10 2008-03-11 Intel Corporation Method, apparatus and system for optimizing routing of mobile IP packets
WO2005038599A2 (en) 2003-10-14 2005-04-28 Raptor Networks Technology, Inc. Switching system with distributed switching fabric
US8009556B2 (en) 2003-10-17 2011-08-30 Ip Infusion, Inc. System and method for providing redundant routing capabilities for a network node
US7555002B2 (en) 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US8146148B2 (en) 2003-11-19 2012-03-27 Cisco Technology, Inc. Tunneled security groups
US8095640B2 (en) 2003-12-12 2012-01-10 Alcatel Lucent Distributed architecture for real-time flow measurement at the network domain level
US7450598B2 (en) 2003-12-15 2008-11-11 At&T Intellectual Property I, L.P. System and method to provision MPLS/VPN network
US7478173B1 (en) 2003-12-18 2009-01-13 Wmware, Inc. Method and system for sharing a network connection in a virtual computer system
US8401024B2 (en) 2004-01-14 2013-03-19 Telefonaktiebolaget Lm Ericsson (Publ) Ethernet address management system
US7391771B2 (en) 2004-01-23 2008-06-24 Metro Packet Systems Inc. Method of sending information through a tree and ring topology of a network system
US8838743B2 (en) 2004-02-13 2014-09-16 Intel Corporation Apparatus and method for a dynamically extensible virtual switch
EP1730892A1 (en) 2004-03-24 2006-12-13 Koninklijke Philips Electronics N.V. Intelligent routing within wireless communication systems
EP1745631A1 (en) 2004-05-12 2007-01-24 Alcatel Automated containment of network intruder
US7502344B2 (en) 2004-06-25 2009-03-10 Fujifilm Corporation Communications terminal, server, playback control method and program
US8422500B2 (en) 2004-07-02 2013-04-16 Rockstar Consortium Us Lp VLAN support of differentiated services
DE602004011928T2 (de) 2004-08-02 2009-02-12 Alcatel Lucent Verfahren zur Steuerung einer gemeinsamen genutzten Ressource durch verschiedene Manager
US7706302B2 (en) 2004-09-14 2010-04-27 Alcatel Lucent Optimization of routing forwarding database in a network processor
GB2419703A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Isolated virtual overlay infrastructures each having an interface to control interaction with others
US8068408B2 (en) 2004-11-01 2011-11-29 Alcatel Lucent Softrouter protocol disaggregation
US9014181B2 (en) 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
JP2008524916A (ja) 2004-12-21 2008-07-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 通信システムにおけるパケットフローに関する装置及び方法
JP2008527772A (ja) 2004-12-31 2008-07-24 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー コネクションレス通信トラフィックのためのコネクション型通信スキーム
JP4733399B2 (ja) 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
US8254285B2 (en) 2005-02-25 2012-08-28 Ip Infusion, Inc. Hardware abstraction layer
US7936770B1 (en) 2005-03-08 2011-05-03 Enterasys Networks, Inc. Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces
WO2006099296A2 (en) 2005-03-10 2006-09-21 Nexthop Technologies, Inc. Flexible, scalable, wireless data forwarding and mobility for secure wireless networks
FR2883437B1 (fr) 2005-03-16 2007-08-03 Wavestorm Sarl Dispositif et procede de communication dans un reseau
US7529256B2 (en) 2005-07-08 2009-05-05 Cisco Technology, Inc. Communication device client update system and method
US20070201490A1 (en) 2005-07-13 2007-08-30 Mahamuni Atul B System and method for implementing ethernet MAC address translation
US7802000B1 (en) 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US7721299B2 (en) 2005-08-05 2010-05-18 Red Hat, Inc. Zero-copy network I/O for virtual hosts
US8149737B2 (en) 2005-08-09 2012-04-03 Motorola Solutions, Inc. Method and system for data transmission in a wireless network
US8799431B2 (en) 2005-08-15 2014-08-05 Toutvirtual Inc. Virtual systems management
CN100446469C (zh) 2005-09-09 2008-12-24 广东省电信有限公司研究院 一种对软交换网实现分权分域管理的网管系统和方法
US7363404B2 (en) 2005-10-27 2008-04-22 International Business Machines Corporation Creation and management of destination ID routing structures in multi-host PCI topologies
JP2007135109A (ja) 2005-11-11 2007-05-31 Hitachi Ltd 仮想ネットワーク管理方法、仮想ネットワーク管理プログラム、仮想ネットワーク管理システムおよび仮想ネットワーク管理手段
US20070140235A1 (en) * 2005-12-21 2007-06-21 Nortel Networks Limited Network visible inter-logical router links
US8856862B2 (en) 2006-03-02 2014-10-07 British Telecommunications Public Limited Company Message processing methods and systems
US8838756B2 (en) 2009-07-27 2014-09-16 Vmware, Inc. Management and implementation of enclosed local networks in a virtual lab
US8619771B2 (en) * 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US7839847B2 (en) 2006-05-08 2010-11-23 Cisco Technology, Inc. Methods and apparatus providing VPN traffic matrix construction
US7953089B1 (en) 2006-05-16 2011-05-31 Cisco Technology, Inc. Systems and methods for multicast switching in a private VLAN
US8060875B1 (en) 2006-05-26 2011-11-15 Vmware, Inc. System and method for multiple virtual teams
JP4714081B2 (ja) 2006-06-01 2011-06-29 アラクサラネットワークス株式会社 ネットワーク接続装置
US20070286209A1 (en) 2006-06-12 2007-12-13 Research In Motion Limited System and method for handling address resolution protocol requests
US7706303B2 (en) 2006-06-26 2010-04-27 Cisco Technology, Inc. Port pooling
US7643482B2 (en) 2006-06-30 2010-01-05 Sun Microsystems, Inc. System and method for virtual switching in a host
JP4882555B2 (ja) 2006-07-07 2012-02-22 双葉電子工業株式会社 無線ブリッジ通信機
US7916682B2 (en) 2006-07-14 2011-03-29 Symbol Technologies, Inc. Wireless switch network architecture implementing layer 3 mobility domains
US20080059556A1 (en) 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
US8204982B2 (en) 2006-09-14 2012-06-19 Quova, Inc. System and method of middlebox detection and characterization
US20080069107A1 (en) 2006-09-15 2008-03-20 Siemens Aktiengesellschaft Scalable packet based network
US7643488B2 (en) 2006-09-29 2010-01-05 Nortel Networks Limited Method and apparatus for supporting multiple customer provisioned IPSec VPNs
US7996835B2 (en) 2006-10-10 2011-08-09 International Business Machines Corporation System, method and program for managing communication with multiple configurations for virtual machine
JP5244332B2 (ja) 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
US7826482B1 (en) 2006-11-17 2010-11-02 Juniper Networks, Inc. Service-specific forwarding in an LDP-RSVP hybrid network
US8223668B2 (en) 2006-12-14 2012-07-17 Rockstar Bidco Lp Method and apparatus for exchanging routing information and the establishment of connectivity across multiple network areas
US20080181243A1 (en) * 2006-12-15 2008-07-31 Brocade Communications Systems, Inc. Ethernet forwarding in high performance fabrics
US7738457B2 (en) 2006-12-20 2010-06-15 Oracle America, Inc. Method and system for virtual routing using containers
US20080159301A1 (en) 2006-12-29 2008-07-03 De Heer Arjan Arie Enabling virtual private local area network services
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
EP2109965B1 (en) 2007-02-02 2015-04-08 Groupe Des Ecoles Des Telecommunications (GET) Institut National Des Telecommunications (INT) Autonomic network node system
US7760735B1 (en) 2007-02-06 2010-07-20 Google Inc. Method and system for discovering network paths
US7796594B2 (en) 2007-02-14 2010-09-14 Marvell Semiconductor, Inc. Logical bridging system and method
US8055789B2 (en) 2007-03-27 2011-11-08 Amazon Technologies, Inc. Configuring intercommunications between computing nodes
US8111707B2 (en) 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US8594085B2 (en) 2007-04-11 2013-11-26 Palo Alto Networks, Inc. L2/L3 multi-mode switch including policy processing
WO2008128194A2 (en) 2007-04-12 2008-10-23 Rutgers, The State University Of New Jersey System and method for controlling a file system
US7903655B2 (en) 2007-04-19 2011-03-08 Hewlett-Packard Development Company, L.P. Marked packet forwarding
JP4740897B2 (ja) 2007-05-24 2011-08-03 株式会社日立製作所 仮想ネットワーク構成方法及びネットワークシステム
US7948874B2 (en) 2007-05-24 2011-05-24 World Wide Packets, Inc. Transitioning a virtual interface from one tunnel to another tunnel
US8031633B2 (en) 2007-08-13 2011-10-04 Honeywell International Inc. Virtual network architecture for space data processing
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
JP5427181B2 (ja) 2007-10-03 2014-02-26 ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド 仮想化アプリケーション加速化インフラストラクチャ
US8539098B2 (en) * 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US8848544B2 (en) 2007-11-08 2014-09-30 Cisco Technology, Inc. Event correlation using network data flow simulation over unmanaged network segments
US7855982B2 (en) 2007-11-19 2010-12-21 Rajesh Ramankutty Providing services to packet flows in a network
US7984123B2 (en) 2007-12-10 2011-07-19 Oracle America, Inc. Method and system for reconfiguring a virtual network path
US7945647B2 (en) 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US8199750B1 (en) 2007-12-18 2012-06-12 World Wide Packets, Inc. Communicating with a control plane using a forwarding information format and control plane processing of packets devoid of a virtual switch identifier
US8194674B1 (en) 2007-12-20 2012-06-05 Quest Software, Inc. System and method for aggregating communications and for translating between overlapping internal network addresses and unique external network addresses
US9432213B2 (en) 2007-12-31 2016-08-30 Rpx Clearinghouse Llc IP forwarding across a link state protocol controlled ethernet network
CN101232339A (zh) 2008-02-18 2008-07-30 中国网络通信集团公司 动态服务水平协议控制系统及控制方法
GB2458157B (en) 2008-03-07 2012-04-25 Hewlett Packard Development Co Virtual machine liveness check
US8155028B2 (en) 2008-03-17 2012-04-10 Alcatel Lucent Method and apparatus for providing full logical connectivity in MPLS networks
US8146147B2 (en) 2008-03-27 2012-03-27 Juniper Networks, Inc. Combined firewalls
US8429739B2 (en) 2008-03-31 2013-04-23 Amazon Technologies, Inc. Authorizing communications between computing nodes
US20110035494A1 (en) 2008-04-15 2011-02-10 Blade Network Technologies Network virtualization for a virtualized server data center environment
JP2009278261A (ja) 2008-05-13 2009-11-26 Toshiba Corp 情報処理装置および通信制御方法
US8339959B1 (en) 2008-05-20 2012-12-25 Juniper Networks, Inc. Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US8849971B2 (en) 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
US8160063B2 (en) 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering
US7787399B2 (en) * 2008-07-25 2010-08-31 Alcatel-Lucent Usa Inc. Automatically configuring mesh groups in data networks
US7885276B1 (en) 2008-09-30 2011-02-08 Emc Corporation Isolating network traffic in multi-tenant virtualization environments
US20120015899A1 (en) 2008-10-25 2012-01-19 Plant Bioscience, Limited Modified plant virus particles and uses therefor
US7962647B2 (en) 2008-11-24 2011-06-14 Vmware, Inc. Application delivery control module for virtual network switch
US8055770B2 (en) 2008-12-15 2011-11-08 At&T Intellectual Property I, L.P. Method and apparatus for providing network virtualization
US8271775B2 (en) 2008-12-17 2012-09-18 Cisco Technology, Inc. Layer two encryption for data center interconnectivity
US8331362B2 (en) 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8054832B1 (en) 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US7995483B1 (en) 2009-01-20 2011-08-09 Juniper Networks, Inc. Simultaneously testing connectivity to multiple remote maintenance endpoints of the same maintenance association
US20100192225A1 (en) 2009-01-28 2010-07-29 Juniper Networks, Inc. Efficient application identification with network devices
US7948986B1 (en) 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
US8553581B2 (en) 2009-02-17 2013-10-08 Tellabs Operations, Inc. Method and apparatus for provisioning a network element
EP2399363B1 (en) 2009-02-19 2019-05-29 Huawei Technologies Co., Ltd. System and method for point to multipoint inter-domain multiprotocol label switching traffic engineering path calculation
US8213336B2 (en) 2009-02-23 2012-07-03 Cisco Technology, Inc. Distributed data center access switch
EP2408155A4 (en) 2009-03-09 2015-01-28 Nec Corp OPENFLOW COMMUNICATION SYSTEM AND OPENFLOW COMMUNICATION METHOD
US8265075B2 (en) 2009-03-16 2012-09-11 International Business Machines Corporation Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch
EP2804350B1 (en) 2009-04-01 2019-07-24 Nicira, Inc. Method and apparatus for implementing and managing virtual switches
US9727508B2 (en) 2009-04-27 2017-08-08 Intel Corporation Address learning and aging for network bridging in a network processor
US8589919B2 (en) 2009-04-28 2013-11-19 Cisco Technology, Inc. Traffic forwarding for virtual machines
US8027354B1 (en) 2009-04-29 2011-09-27 Cisco Technology, Inc. Network consolidation for virtualized servers
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8867349B2 (en) 2009-05-18 2014-10-21 Cisco Technology, Inc. Regulation of network traffic in virtual private networks
US8259726B2 (en) * 2009-05-28 2012-09-04 Force10 Networks, Inc. Method and apparatus for forwarding table reduction
US8644188B1 (en) 2009-06-25 2014-02-04 Amazon Technologies, Inc. Providing virtual networking functionality for managed computer networks
US20110032830A1 (en) 2009-08-06 2011-02-10 Jacobus Van Der Merwe Live Router Migration
US8339994B2 (en) 2009-08-27 2012-12-25 Brocade Communications Systems, Inc. Defining an optimal topology for a group of logical switches
US8619779B2 (en) 2009-09-30 2013-12-31 Alcatel Lucent Scalable architecture for enterprise extension in a cloud topology
US8599864B2 (en) 2009-10-08 2013-12-03 Brocade Communications Systems, Inc. Transit switches in a network of logical switches
US20110085557A1 (en) 2009-10-08 2011-04-14 Brocade Communications Systems, Inc. Partitioning of Switches and Fabrics into Logical Switches and Fabrics
EP2497234B1 (en) 2009-11-02 2018-09-19 Marvell World Trade Ltd. Network device and method based on virtual interfaces
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US8848508B2 (en) 2009-11-16 2014-09-30 Cisco Technology, Inc. Method for the provision of gateway anycast virtual MAC reachability in extended subnets
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US20110134931A1 (en) 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration
US8705513B2 (en) 2009-12-15 2014-04-22 At&T Intellectual Property I, L.P. Methods and apparatus to communicatively couple virtual private networks to virtual machines within distributive computing networks
US8224971B1 (en) 2009-12-28 2012-07-17 Amazon Technologies, Inc. Using virtual networking devices and routing information to initiate external actions
US7991859B1 (en) 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US7953865B1 (en) 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
JP5392137B2 (ja) 2010-02-17 2014-01-22 富士通株式会社 通信処理のためのプログラム、コンピュータ及び方法
US8345688B2 (en) 2010-02-23 2013-01-01 Google Inc. System and method for managing flow of packets
CN101808030B (zh) 2010-03-01 2013-01-30 浙江大学 一种基于虚拟路由器的逻辑网络构建方法
US8612627B1 (en) 2010-03-03 2013-12-17 Amazon Technologies, Inc. Managing encoded multi-part communications for provided computer networks
US9413649B2 (en) 2010-03-12 2016-08-09 Force10 Networks, Inc. Virtual network device architecture
US8224931B1 (en) 2010-03-31 2012-07-17 Amazon Technologies, Inc. Managing use of intermediate destination computing nodes for provided computer networks
US8611352B2 (en) 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline
US8566257B2 (en) 2010-04-26 2013-10-22 International Business Machines Corporation Address data learning and registration within a distributed virtual bridge
US8504718B2 (en) 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch
US8989186B2 (en) 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
US8625616B2 (en) 2010-05-11 2014-01-07 Brocade Communications Systems, Inc. Converged network extension
US8407366B2 (en) 2010-05-14 2013-03-26 Microsoft Corporation Interconnecting members of a virtual network
JP5617137B2 (ja) 2010-05-28 2014-11-05 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 仮想レイヤ2およびそれをスケーラブルにするための機構
US8989187B2 (en) * 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US8374183B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Distributed virtual network gateways
US8549120B2 (en) 2010-06-28 2013-10-01 Cisco Technology, Inc. System and method for location based address assignment in the distribution of traffic in a virtual gateway
CN103270736B (zh) 2010-06-29 2016-08-10 华为技术有限公司 一种网络设备
US9014054B2 (en) 2010-06-29 2015-04-21 Futurewei Technologies, Inc. Layer two over multiple sites
US8239572B1 (en) 2010-06-30 2012-08-07 Amazon Technologies, Inc. Custom routing decisions
US10103939B2 (en) * 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US8447909B2 (en) 2010-07-19 2013-05-21 International Business Machines Corporation Register access in distributed virtual bridge environment
US8456984B2 (en) 2010-07-19 2013-06-04 Ciena Corporation Virtualized shared protection capacity
US8837281B2 (en) 2010-09-10 2014-09-16 Futurewei Technologies, Inc. Use of partitions to reduce flooding and filtering database size requirements in large layer two networks
US8565108B1 (en) 2010-09-28 2013-10-22 Amazon Technologies, Inc. Network data transmission analysis
CN102457583B (zh) 2010-10-19 2014-09-10 中兴通讯股份有限公司 一种虚拟机移动性的实现方法及系统
US8521884B2 (en) 2010-12-15 2013-08-27 Industrial Technology Research Institute Network system and method of address resolution
CN102075591A (zh) 2010-12-21 2011-05-25 华为技术有限公司 获取介质访问控制地址的方法、装置和系统
WO2012093429A1 (en) 2011-01-05 2012-07-12 Nec Corporation Communication control system, control server, forwarding node, communication control method, and communication control program
US10142218B2 (en) 2011-01-14 2018-11-27 International Business Machines Corporation Hypervisor routing between networks in a virtual networking environment
US8665739B2 (en) 2011-03-16 2014-03-04 Juniper Networks, Inc. Packet loss measurement at service endpoints of a virtual private LAN service
CN103460653A (zh) 2011-03-31 2013-12-18 日本电气株式会社 计算机系统和通信方法
JP5760647B2 (ja) * 2011-04-27 2015-08-12 日本電気株式会社 仮想環境における仮想ルーティング方法及び仮想ルーティングシステム
JP5776337B2 (ja) 2011-06-02 2015-09-09 富士通株式会社 パケット変換プログラム、パケット変換装置、及びパケット変換方法
WO2012170016A1 (en) 2011-06-07 2012-12-13 Hewlett-Packard Development Company, L.P. A scalable multi-tenant network architecture for virtualized datacenters
US9229867B2 (en) 2011-06-16 2016-01-05 International Business Machines Corporation Shared network response cache
JP5824911B2 (ja) 2011-06-29 2015-12-02 富士通株式会社 情報処理装置、情報処理プログラムおよび管理方法
US8964563B2 (en) * 2011-07-08 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Controller driven OAM for OpenFlow
US9237124B2 (en) 2011-07-14 2016-01-12 Marvell Israel (M.I.S.L) Ltd. Scaling of virtual machine addresses in datacenters
US8935457B2 (en) 2011-07-29 2015-01-13 International Business Machines Corporation Network filtering in a virtualized environment
US20130034094A1 (en) 2011-08-05 2013-02-07 International Business Machines Corporation Virtual Switch Data Control In A Distributed Overlay Network
CN106850444B (zh) 2011-08-17 2020-10-27 Nicira股份有限公司 逻辑l3路由
US9124538B2 (en) 2011-08-17 2015-09-01 Nicira, Inc. Dynamic generation of flow entries for last-hop processing
US8867403B2 (en) * 2011-08-18 2014-10-21 International Business Machines Corporation Virtual network overlays
US8762501B2 (en) 2011-08-29 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US9167501B2 (en) * 2011-08-29 2015-10-20 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US8856518B2 (en) 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US9319459B2 (en) 2011-09-19 2016-04-19 Cisco Technology, Inc. Services controlled session based flow interceptor
WO2013063332A1 (en) 2011-10-25 2013-05-02 Nicira, Inc. Network virtualization apparatus and method with scheduling capabilities
US9154433B2 (en) 2011-10-25 2015-10-06 Nicira, Inc. Physical controller
US9294351B2 (en) 2011-11-10 2016-03-22 Cisco Technology, Inc. Dynamic policy based interface configuration for virtualized environments
WO2013074855A1 (en) * 2011-11-15 2013-05-23 Nicira, Inc. Control plane interface for logical middlebox services
US8819267B2 (en) 2011-11-16 2014-08-26 Force10 Networks, Inc. Network virtualization without gateway function
US8767737B2 (en) * 2011-11-30 2014-07-01 Industrial Technology Research Institute Data center network system and packet forwarding method thereof
US8738756B2 (en) * 2011-12-01 2014-05-27 International Business Machines Corporation Enabling co-existence of hosts or virtual machines with identical addresses
CN104067231B (zh) 2011-12-07 2017-03-29 西里克斯系统公司 使用虚拟交换代理控制网络接口
US8948054B2 (en) 2011-12-30 2015-02-03 Cisco Technology, Inc. System and method for discovering multipoint endpoints in a network environment
US8660129B1 (en) 2012-02-02 2014-02-25 Cisco Technology, Inc. Fully distributed routing over a user-configured on-demand virtual network for infrastructure-as-a-service (IaaS) on hybrid cloud networks
US8954964B2 (en) 2012-02-27 2015-02-10 Ca, Inc. System and method for isolated virtual image and appliance communication within a cloud environment
JP5834999B2 (ja) 2012-02-27 2015-12-24 富士通株式会社 データ収集方法、情報処理システムおよびプログラム
US9313048B2 (en) 2012-04-04 2016-04-12 Cisco Technology, Inc. Location aware virtual service provisioning in a hybrid cloud environment
US8923149B2 (en) 2012-04-09 2014-12-30 Futurewei Technologies, Inc. L3 gateway for VXLAN
CN103379010B (zh) 2012-04-20 2018-09-21 中兴通讯股份有限公司 一种虚拟网络实现方法及系统
US9407450B2 (en) * 2012-05-01 2016-08-02 Cisco Technnology, Inc. Method and apparatus for providing tenant information for network flows
US9504089B2 (en) 2012-05-14 2016-11-22 Broadcom Corporation System and method for wireless station bridging
CN104272668B (zh) * 2012-05-23 2018-05-22 博科通讯系统有限公司 层3覆盖网关
US8811409B2 (en) * 2012-06-04 2014-08-19 Telefonaktiebolaget L M Ericsson (Publ) Routing VLAN tagged packets to far end addresses of virtual forwarding instances using separate administrations
WO2013184941A1 (en) 2012-06-06 2013-12-12 Huawei Technologies Co., Ltd. Method of seamless integration and independent evolution of information-centric networking via software defined networking
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US8953441B2 (en) 2012-06-06 2015-02-10 Juniper Networks, Inc. Re-routing network traffic after link failure
US20150124612A1 (en) 2012-06-07 2015-05-07 Michael Schlansker Multi-tenant network provisioning
US9304801B2 (en) 2012-06-12 2016-04-05 TELEFONAKTIEBOLAGET L M ERRICSSON (publ) Elastic enforcement layer for cloud security using SDN
US8972602B2 (en) 2012-06-15 2015-03-03 Citrix Systems, Inc. Systems and methods for using ECMP routes for traffic distribution
US20140006585A1 (en) 2012-06-29 2014-01-02 Futurewei Technologies, Inc. Providing Mobility in Overlay Networks
CN102801715B (zh) * 2012-07-30 2015-03-11 华为技术有限公司 一种网络中虚拟机迁移的方法、网关及系统
US9288162B2 (en) 2012-08-03 2016-03-15 Cisco Technology, Inc. Adaptive infrastructure for distributed virtual switch
US9225549B2 (en) 2012-08-06 2015-12-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multi-chassis link aggregation in a distributed virtual bridge
US9210079B2 (en) * 2012-08-14 2015-12-08 Vmware, Inc. Method and system for virtual and physical network integration
US9172557B2 (en) 2012-08-17 2015-10-27 International Business Machines Corporation Load balancing overlay network traffic using a teamed set of network interface cards
US9602430B2 (en) * 2012-08-21 2017-03-21 Brocade Communications Systems, Inc. Global VLANs for fabric switches
US9215171B2 (en) 2012-08-29 2015-12-15 International Business Machines Corporation Hashing-based routing table management
US9104492B2 (en) 2012-09-04 2015-08-11 Wisconsin Alumni Research Foundation Cloud-based middlebox management system
CN102857416B (zh) 2012-09-18 2016-09-28 中兴通讯股份有限公司 一种实现虚拟网络的方法、控制器和虚拟网络
US9008095B2 (en) 2012-10-02 2015-04-14 Cisco Technology, Inc. System and method for hardware-based learning of internet protocol addresses in a network environment
US8989183B2 (en) 2012-10-10 2015-03-24 Microsoft Technology Licensing, Llc Virtual machine multicast/broadcast in virtual network
US9571507B2 (en) 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
CN103795623B (zh) * 2012-10-26 2017-03-15 杭州华三通信技术有限公司 一种在虚拟设备间实现流量互通的方法和装置
US8931046B2 (en) 2012-10-30 2015-01-06 Stateless Networks, Inc. System and method for securing virtualized networks
US9253140B2 (en) * 2012-11-20 2016-02-02 Cisco Technology, Inc. System and method for optimizing within subnet communication in a network environment
US9036639B2 (en) 2012-11-29 2015-05-19 Futurewei Technologies, Inc. System and method for VXLAN inter-domain communications
EP2932659A4 (en) * 2012-12-12 2016-05-18 Ericsson Telefon Ab L M METHOD AND DEVICE FOR VLAN INTERFACE ROUTING
US9049115B2 (en) 2012-12-13 2015-06-02 Cisco Technology, Inc. Enabling virtual workloads using overlay technologies to interoperate with physical network services
US9014056B2 (en) 2012-12-18 2015-04-21 Qualcomm Incorporated Bridging network devices in a hybrid communication network
US8982703B2 (en) * 2012-12-18 2015-03-17 Mellanox Technologies Ltd. Routing support for lossless data traffic
CN103905283B (zh) 2012-12-25 2017-12-15 华为技术有限公司 基于可扩展虚拟局域网的通信方法及装置
US9008097B2 (en) * 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US9116727B2 (en) * 2013-01-15 2015-08-25 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Scalable network overlay virtualization using conventional virtual switches
US9602334B2 (en) 2013-01-22 2017-03-21 International Business Machines Corporation Independent network interfaces for virtual network environments
US9210082B2 (en) 2013-02-19 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. High speed network bridging
US9699034B2 (en) 2013-02-26 2017-07-04 Zentera Systems, Inc. Secure cloud fabric to connect subnets in different network domains
US9306837B1 (en) * 2013-03-08 2016-04-05 Cisco Technology, Inc. Source IP-based pruning of traffic toward dually-connected overlay hosts in a data communications environment
US9432287B2 (en) 2013-03-12 2016-08-30 International Business Machines Corporation Virtual gateways and implicit routing in distributed overlay virtual environments
US10355930B2 (en) 2013-03-14 2019-07-16 Fortinet, Inc. System and method of subnetting a virtual network identifier
US9027087B2 (en) 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US9967111B2 (en) 2013-03-15 2018-05-08 Rackspace Us, Inc. Software-defined multinetwork bridge
US9197551B2 (en) * 2013-03-15 2015-11-24 International Business Machines Corporation Heterogeneous overlay network translation for domain unification
US9197553B2 (en) 2013-03-29 2015-11-24 Cisco Technology, Inc. Using a virtual internet protocol address to represent dually connected hosts in an internet protocol overlay network
US9225636B2 (en) 2013-04-04 2015-12-29 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for exchanging IP packets among network layer 2 peers
US9559952B2 (en) * 2013-05-06 2017-01-31 Cisco Technology, Inc. Routing internet protocol version 6 link-local addresses in a network environment
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9203738B2 (en) * 2013-05-21 2015-12-01 Cisco Technology, Inc. Optimal forwarding for trill fine-grained labeling and VXLAN interworking
JP5980725B2 (ja) 2013-05-24 2016-08-31 日本電信電話株式会社 ネットワーク装置、中継管理方法、中継管理プログラムおよび通信システム
US9749231B2 (en) 2013-07-02 2017-08-29 Arista Networks, Inc. Method and system for overlay routing with VXLAN on bare metal servers
US9282033B2 (en) * 2013-08-06 2016-03-08 Cisco Technology, Inc. Intelligent handling of virtual machine mobility in large data center environments
US9426060B2 (en) 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
US9621508B2 (en) 2013-08-20 2017-04-11 Arista Networks, Inc. System and method for sharing VXLAN table information with a network controller
US9531676B2 (en) 2013-08-26 2016-12-27 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
US9565105B2 (en) * 2013-09-04 2017-02-07 Cisco Technology, Inc. Implementation of virtual extensible local area network (VXLAN) in top-of-rack switches in a network environment
CN103491006B (zh) 2013-09-13 2016-08-17 清华大学 虚拟网络路由器的数据统一转发方法
US9485168B2 (en) 2013-10-03 2016-11-01 International Business Machines Corporation Temperature sensitive routing of data in a computer system
US9596126B2 (en) 2013-10-10 2017-03-14 Nicira, Inc. Controller side method of generating and updating a controller assignment list
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9264330B2 (en) 2013-10-13 2016-02-16 Nicira, Inc. Tracing host-originated logical network packets
US9264362B2 (en) 2013-10-17 2016-02-16 Cisco Technology, Inc. Proxy address resolution protocol on a controller device
US9876715B2 (en) 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US10951522B2 (en) 2013-11-05 2021-03-16 Cisco Technology, Inc. IP-based forwarding of bridged and routed IP packets and unicast ARP
US9729578B2 (en) 2014-01-10 2017-08-08 Arista Networks, Inc. Method and system for implementing a network policy using a VXLAN network identifier
US9246821B1 (en) 2014-01-28 2016-01-26 Google Inc. Systems and methods for implementing weighted cost multi-path using two-level equal cost multi-path tables
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
CN106576075B (zh) 2014-03-27 2021-01-26 Nicira股份有限公司 在网络虚拟化基础设施上操作逻辑网络的方法和系统
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US10826768B2 (en) 2014-03-28 2020-11-03 Hewlett Packard Enterprise Development Lp Controlled node configuration
CN103957160B (zh) 2014-05-12 2017-04-19 华为技术有限公司 一种发送报文的方法及设备
US10019278B2 (en) 2014-06-22 2018-07-10 Cisco Technology, Inc. Framework for network technology agnostic multi-cloud elastic extension and isolation
US10250529B2 (en) 2014-07-21 2019-04-02 Big Switch Networks, Inc. Systems and methods for performing logical network forwarding using a controller
US9858100B2 (en) 2014-08-22 2018-01-02 Nicira, Inc. Method and system of provisioning logical networks on a host machine
US9768980B2 (en) 2014-09-30 2017-09-19 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
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
WO2016053372A1 (en) 2014-09-30 2016-04-07 Nicira, Inc. Virtual distributed bridging module
US10075337B2 (en) 2015-01-23 2018-09-11 Cisco Technology, Inc. Mechanism for serving hardware resource information to an attached appliance
US10079779B2 (en) 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
WO2017003957A1 (en) 2015-06-30 2017-01-05 Nicira, Inc Intermediate logical interfaces in a virtual distributed router environment
US10587514B1 (en) * 2015-12-21 2020-03-10 Amazon Technologies, Inc. Filtering control plane decision requests for forwarding network packets
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

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1520550A (zh) * 2001-04-20 2004-08-11 �������չɷ����޹�˾ 在处理系统中虚拟连网的系统及方法
CN1744552A (zh) * 2004-08-27 2006-03-08 国际商业机器公司 用于提供网络虚拟化的方法和装置
CN101822006A (zh) * 2007-10-03 2010-09-01 阿瓦雅公司 在包括多个交换机的集群交换机中设置抽象层
US20100107162A1 (en) * 2008-03-07 2010-04-29 Aled Edwards Routing across a virtual network
CN102334111A (zh) * 2009-03-30 2012-01-25 亚马逊技术有限公司 为受管计算机网络提供逻辑联网功能
CN102347898A (zh) * 2010-07-26 2012-02-08 丛林网络公司 有关网络内路由选择的方法和设备
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
CN102780601A (zh) * 2011-05-13 2012-11-14 国际商业机器公司 管理虚拟网络的方法与系统
WO2013020126A1 (en) * 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
US20130044751A1 (en) * 2011-08-17 2013-02-21 Martin Casado Packet processing in managed interconnection switching elements
US20130182574A1 (en) * 2012-01-13 2013-07-18 Verizon Patent And Licensing Inc. Method and system of congestion control in a mobile virtual network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王文婷: "基于云平台的虚拟网络子系统", 《电脑知识与技术》 *

Also Published As

Publication number Publication date
EP3031178A2 (en) 2016-06-15
US9910686B2 (en) 2018-03-06
CN105684363B (zh) 2020-06-19
US9977685B2 (en) 2018-05-22
US11029982B2 (en) 2021-06-08
JP2016158285A (ja) 2016-09-01
KR20160057433A (ko) 2016-05-23
KR102181554B1 (ko) 2020-11-23
EP3627780B1 (en) 2021-11-03
WO2015054671A3 (en) 2015-06-11
US9575782B2 (en) 2017-02-21
EP3031178B1 (en) 2019-11-20
JP6317851B1 (ja) 2018-04-25
KR20200024343A (ko) 2020-03-06
KR102083749B1 (ko) 2020-03-02
US10528373B2 (en) 2020-01-07
CN111585889B (zh) 2022-08-16
US20180276013A1 (en) 2018-09-27
US20150103839A1 (en) 2015-04-16
KR102251661B1 (ko) 2021-05-12
EP3627780A1 (en) 2020-03-25
CN115174470A (zh) 2022-10-11
WO2015054671A2 (en) 2015-04-16
US20200081728A1 (en) 2020-03-12
JP2015076874A (ja) 2015-04-20
JP5925820B2 (ja) 2016-05-25
JP6266035B2 (ja) 2018-01-24
JP2018082449A (ja) 2018-05-24
KR20200131358A (ko) 2020-11-23
KR102084243B1 (ko) 2020-03-03
KR20180073726A (ko) 2018-07-02
US20210294622A1 (en) 2021-09-23
US20150106804A1 (en) 2015-04-16
US9785455B2 (en) 2017-10-10
US20150103843A1 (en) 2015-04-16
US20150103842A1 (en) 2015-04-16
CN105684363A (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
CN111585889B (zh) 逻辑路由器
US20230396540A1 (en) Address resolution using multiple designated instances of a logical router
US10491516B2 (en) Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US20200177670A1 (en) Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
CN112910750B (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