买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】虚拟分布式桥接模块_NICIRA股份有限公司_201480082910.7 

申请/专利权人:NICIRA股份有限公司

申请日:2014-12-30

公开(公告)日:2021-01-12

公开(公告)号:CN107078934B

主分类号:H04L12/46(20060101)

分类号:H04L12/46(20060101)

优先权:["20140930 US 14/503,164","20140930 US 14/503,168","20140930 US 14/503,177"]

专利状态码:有效-授权

法律状态:2021.01.12#授权;2017.09.15#实质审查的生效;2017.08.18#公开

摘要:利用管理程序实施的逻辑网络的优点是众所周知的。但是仍然常常必须在逻辑网络比如VXLAN与物理网络比如VLAN之间提供桥接。当网络虚拟化的顾客在逻辑网络和物理网络共存的混合网络上需要以L2为中心的协议时特别是如此。桥接还允许进入到管理程序上的各个VM中的以L2为中心的工作负荷之间的无缝过渡。

主权项:1.一种用于在网络中发送分组的方法,所述方法包括:在实现第一指定分布式桥接实例的第一计算设备处,所述第一指定分布式桥接实例负责在i网络的第一分段的第一地址子集和ii网络的第二分段之间执行桥接操作:接收识别网络的第一分段中的第一地址子集的列表,其中第二计算设备实现第二指定分布式桥接实例,所述第二指定分布式桥接实例负责在i第一分段的第二地址子集和ii第二分段之间执行桥接操作;从网络接收分组,所述分组具有网络的第一分段中的源地址和网络的第二分段中的目的地地址;确定所述分组的源地址是否是包括在所接收的第一地址子集的列表中的地址之一;以及基于所述源地址是包括在所接收的第一地址子集的列表中的地址之一的确定,把所述分组从第一分段桥接到第二分段。

全文数据:虚拟分布式桥接模块背景技术[0001]利用管理程序实施的逻辑网络的优点是众所周知的。但是仍然常常必须在逻辑网络(比如VXLAN与物理网络(比如VLAN之间提供桥接。当网络虚拟化的顾客在其中逻辑网络和物理网络共存的混合网络上需要以L2为中心的协议时特别是如此。桥接还允许进入到管理程序上的各个VM中的以L2为中心的工作负荷之间的无缝过渡。发明内容[0002]在一些实施例中,运行在宿主机器中的虚拟化软件包括用于实施L3路由和或桥接操作的VDRB虚拟分布式路由器桥接器模块,其把分组从一个网络分段递送到另一个网络分段。在一些实施例中,至少其中一些VDRB被配置成VDB虚拟分布式桥接器)以用于按照分布式方式在不同网络分段之间实施桥接操作,其中在不同宿主机器中的VDB之间划分桥接任务。[0003]在一些实施例中,基于MAC地址在网络的几个VDB之间划分该网络的桥接任务。具体来说,在一些实施例中,属于覆盖逻辑网络的VM或其他类型的网络节点的MAC地址被划分到几个碎片中,每一个MAC地址碎片被指派到网络中的一个VDB。被指派了一个MAC地址碎片的每一个VDB在接收到承载属于为其指派的碎片的MC地址的分组时实施桥接。对于不具有落在该VDB的MAC地址碎片内的MAC地址的分组,VDB不在所述分组上实施桥接。[0004]在一些实施例中,MAC地址碎片由中央网络控制器创建。中央网络控制器收集来自被桥接的其中一个网络分段的所有MAC地址。所收集的MAC地址随后被划分到各个MAC地址碎片中。每一个碎片随后被指派到一个VDRB,从而使得所指派的VDRB成为对应于该碎片中的MAC地址的DB指定桥接器)。[0005]在一些实施例中,如果某一DB发生故障,则所述控制器对MAC地址进行重新碎片化,并且把MAC地址重新分配到仍然活跃的DB。在一些实施例中,参与桥接的DB实例的数目可以动态地增加或减少以便对发生改变的工作负荷作出响应。在宿主发生故障的情况下,工作负荷将被重新分配到其他宿主。在一些实施例中,每当检测到需要在可用DB之间重新分配MAC地址的事件时,所述控制器发起重新碎片化,比如当可用DB的数目发生改变时(例如某一DB发生故障,或者有新的DB上线),或者当用于桥接的已知MAC地址的列表发生改变时例如VM离线或上线)。[0006]在一些实施例中,分布式桥接方案通过引入防止桥接分组再次被桥接的机制而防止分布式VDB实例之间的循环和复制。在一些实施例中,DB利用标志对其所桥接的分组进行标记,从而表明该分组是桥接分组,并且其他DB不应当再次桥接该分组。在一些实施例中,DB检查一个表以便查明源MAC地址是否属于不同的网络分段并且因此是不应当再次被桥接的桥接分组。[0007]在一些实施例中,宿主机器基于源MAC地址识别运行正确的DB的隧道端点(也就是宿主机器)。在一些实施例中,每一个宿主机器由中央网络控制器提供一个表,其中详细标明哪一个宿主机器中的哪一个DB拥有哪一个MAC地址碎片。在一些实施例中,宿主机器在无需控制器提供的表的情况下基于其接收自物理网络基础设施的分组自主获知碎片化信息。宿主机器随后使用所获知的信息来识别应当被用于桥接其传出分组的DB。在一些实施例中,对于每一个传入VXLAN分组,宿主机器把源MAC地址和源隧道地址相关联并且获知所述关联,从而使得宿主机器在向源MAC地址发送回已封装分组时将知道要使用哪一个隧道地址。在一些实施例中,宿主机器获知目的地MAC地址(如果处于VXLAN中的话与源隧道地址之间的配对,以便确定哪一个DB被指派了包括目的地MAC地址的碎片。在一些实施例中,当宿主机器必须在尚未获知相应的DB的VTEPIP的情况下发送将被桥接的VXLAN分组时,其利用BUM广播、未知单播或多播分组洪泛网络以便找出所述未知DB的VTEPIP。[0008]在一些实施例中,用于特定VXLAN与特定VLAN之间的桥接的DB只在由所述VXLAN和VLAN全部二者共享的L2分段或集群中的宿主机器中被实例化。在一些实施例中,由VXLAN和VLAN共享的一个集群是用于提供去到因特网和外部世界的通信访问的服务集群,其他集群则是用于实施批量计算任务的计算集群。在一些实施例中,宿主机器中的RB适用于识别拥有特定VXLANMAC地址的DB。这样就允许VXLANVM的宿主host机器能够向寄存host所识别出的DB的隧道端点发送已封装分组,即使所述宿主机器和DB处于不同的L2分段或集群中。[0009]在一些实施例中,分布式桥接依赖于其中一些宿主机器中的本地桥接器LB。在一些实施例中,宿主机器中的LB应对以运行在该宿主机器上的VM为目的地或源的分组的桥接。在一些实施例中,宿主机器中的LB从一个或多个指定桥接器DB卸载桥接任务,从而使得DB只在未由网络中的LB服务的VXLANMAC地址上实施桥接。在一些实施例中,DB充当用于应对未由LB应对的桥接任务的默认桥接器。[0010]前面的发明内容部分意图充当针对本发明的一些实施例的简要介绍。其不意图作为在本文献中公开的所有发明性主题内容的介绍或总览。后面的具体实施方式部分以及在具体实施方式部分中所参照的附图将进一步描述在发明内容部分中所描述的实施例以及其他实施例。因此,为了理解本文献所描述的所有实施例,需要全面审视发明内容部分、具体实施方式部分以及附图。此外,所要求保护的主题内容不意图受限于发明内容部分、具体实施方式部分以及附图中的说明性细节,而是应当由所附权利要求书限定,这是因为在不背离主题内容的精神的情况下可以通过其他具体形式具体实现所要求保护的主题内容。附图说明[0011]在所附权利要求书中阐述了本发明的新颖特征。但是出于解释的目的,在附图中将阐述本发明的几个实施例。[0012]图1示出了其中按照分布式方式来实施覆盖逻辑网络与物理网络分段之间的桥接的网络。[0013]图2在概念上示出了通过对于网络共享MAC地址的分布式桥接。[0014]图3a_b示出了覆盖逻辑网络中的VM与物理网络分段中的VM之间的分组桥接。[0015]图4a-b示出了当源或目的地VM是与VDB相同的宿主机器上的本地VM时的分组桥接。[0016]图5在概念上示出了由网络的控制器对MC地址进行碎片化。[0017]图6在概念上示出了由于需要重新碎片化的事件而把MAC地址动态地重新指派到碎片的处理。[0018]图7a_b示出了对于本发明的一些实施例防止桥接循环。[0019]图8在概念上示出了由宿主机器在其VDRB实例处实施的处理。[0020]图9示出了由宿主机器出于识别用于桥接其传出分组的DB的目的而获知MAC地址碎片化。[0021]图10在概念上示出了用于从传入分组获知信息以便识别用于桥接传出分组的DB的处理。[0022]图11示出了使用所获知的MAC-VTEP配对来识别对应于传出分组的目的地隧道地址,其中既包括需要被桥接的传出分组也包括不需要被桥接的传出分组。[0023]图12a_b示出了由其相应地识别出的DB进行分组桥接。[0024]图13在概念上示出了识别用于桥接传出分组的DB的处理。[0025]图14示出了使用BUM分组来识别被指派到给定的VXLAN地址的已指派DB。[0026]图15a示出了将BUM分组从其VXLAN中的源桥接到其VLAN中的目的地。[0027]图15b示出了将答复分组从VLAN桥接回到VXLAN。[0028]图16示出了其中物理网络基础设施包括多个宿主机器集群的网络的更加详细的视图。[0029]图17示出了其中逻辑覆盖网络与物理网络分段之间的桥接依赖于宿主机器中的LB的本地桥接的网络。[0030]图18a-b示出了使用LB在覆盖逻辑网络中的VM与物理网络分段中的VM之间桥接分组。[0031]图19a在概念上示出了对应于默认桥接器的排除表的构造。[0032]图19b示出了用于把MAC地址添加到默认桥接器的排除表的示例性操作。[0033]图20a_b示出了由利用LB实施本地桥接的网络中的默认桥接器进行分组桥接。[0034]图21在概念上示出了用于在使用本地桥接的网络中进行分组桥接的处理。[0035]图22示出了其中LB被部署在一个宿主机器集群中的网络,在所述宿主机器集群中,VXLAN和VLAN工作负荷驻留在相同的L2分段上。[0036]图23示出了正在运行虚拟化软件的示例性宿主机器。[0037]图24在概念上示出了用以实施本发明的一些实施例的电子系统。具体实施方式[0038]在后面的描述中出于解释的目的阐述了许多细节。但是本领域技术人员将认识至IJ,可以在不使用这些具体细节的情况下实践本发明。在其他情况下,通过方块图的形式示出了众所周知的结构和设备,以免通过不必要的细节模糊本发明的描述。[0039]网络桥接是由网络装备采取的动作,以便从两个或更多通信网络、或者两个或更多网络分段或者在逻辑网络例如VXLAN之类覆盖逻辑网络与物理网络分段例如VLAN之类的物理或虚拟L2网络之间产生聚合网络。一些实施例在多个不同的网络桥接器之间分配桥接任务。在一些实施例中,这些网络桥接器当中的每一个由运行虚拟化软件或管理程序的宿主机器运行,其具有虚拟分布式桥接器VDB的一个分布式实例。[0040]图1示出了网络100,其中通过分布式方式实施覆盖逻辑网络与物理网络分段之间的桥接。具体来说,在不同宿主机器181-184中的VDB实例之间划分桥接任务,运行虚拟化软件的每一个宿主机器实施一个VDB实例。宿主机器181-184正在寄存虚拟机101-116VM,其中一些VM运行在覆盖逻辑网络VXLANl00中,一些VM运行在物理网络分段VLANlO中。在本文献中,术语“VXLAN”(虚拟可扩展LAN有时指代通过VNI定义的覆盖逻辑网络,术语“VLAN”虚拟LAN有时则指代通过IP子网或VLANID定义的物理网络分段或L2网络。在本文献中,VXLANl00被用来指代使用VXLAN或其他覆盖封装网络的示例性覆盖逻辑网络,VLANl0则被用来指代示例性物理网络分段或IP子网。[0041]如图所示,宿主机器181正在寄存VM105、114、107和113。宿主机器182正在寄存VM104、106、102和108。宿主机器183正在寄存VM111、101和116。宿主机器184正在寄存VM103、109、112和115。物理网络基础设施190将宿主机器181-184以及物理宿主机器PH117-119互连。VM101-109通过物理网络基础设施190在覆盖逻辑网络VXLAN100中通信。VM111-116和PH117-119通过物理网络基础设施190在物理网络分段VLANlO中通信。VM101-116分别具有MAC介质访问控制或L2链路层地址M1-M16,PH117-119则分别具有MAC地址M17-M19〇[0042]物理网络基础设施190支持覆盖逻辑网络VXLAN100和物理网络分段VLAN10。在一些实施例中,覆盖逻辑网络中的通信量是通过发送在逻辑网络的协议下被封装并且在逻辑网络的隧道端点之间隧道传送的分组而实施的。具体来说,运行在宿主机器181-0184中的虚拟化软件允许这些宿主机器当中的每一个充当覆盖逻辑网络中的隧道端点,这是通过根据例如VXLAN之类的覆盖逻辑网络标准对分组进行封装和解封。在一些实施例中,物理网络基础设施190跨越一个或多个数据中心和或互联网服务提供商网络,从而使得至少其中一些在物理方面不同的通信路径集合处于数据中心或提供商网络中。在一些实施例中,覆盖逻辑网络作为覆盖逻辑交换机运行,其通过底层L3网络向VM的总集提供L2连接(因此术语“逻辑交换机”和“覆盖逻辑网络”可以互换使用)。[0043]宿主机器181-184是支持一个或多个虚拟机的计算设备。每一个宿主机器通过物理网络基础设施190与包括其他宿主机器在内的其他计算设备进行通信。如图所示,每一个宿主机器181-184正在运行虚拟化软件VSW,其允许这些计算设备充当用于虚拟机的宿主机器,这是通过管理VM的运行及其对于宿主机器的计算资源和网络资源的访问。在一些实施例中,虚拟化软件提供每一个VM与底层网络所支持的逻辑交换机之间的接口。虚拟化软件可以包括一个或多个软件组件和或层,其中可能包括作为虚拟机监视器VMM、管理程序或者虚拟化内核的虚拟机技术领域内已知的其中一个或多个软件组件。由于虚拟化术语随着时间发生了演变并且还没有完全标准化,因此这些术语并不总是提供其所指代的软件层和组件之间的清楚区分。这里所使用的术语“管理程序”意图总体上指代在逻辑上介于虚拟机与宿主平台之间的软件层或组件。在后面的第IV节中将进一步描述充当宿主机器的计算设备。[0044]每一个宿主机器的虚拟化软件VSW运行覆盖网络隧道端点(VTEP、分布式虚拟交换机DVS以及虚拟分布式路由器桥接器VDRB模块。如图所示,宿主机器181运行VSW141,其包括VTEP151、DVS161和VDRB171。宿主机器182运行VSW142,其包括VTEP152、DVS162和VDRB172。宿主机器183运行VSW143,其包括VTEP153、DVS163和VDRB173。宿主机器184运行VSW144,其包括VTEP154、DVS164和VDRB174。[0045]每一个宿主机器的分布式交换机DVS应对去到和来自VM的L2层通信量。在一些实施例中,宿主机器的DVS充当用于实施宿主机器内的L2层交换操作的受管理物理交换单元MPSEAVS或MPSE允许L2层通信量在相同宿主机器的VM之间流动(例如宿主机器181的DVS应对VM105与107之间的L2层通信量)AVS还引导物理网络结构190与其宿主机器的VM之间的L2层通信量。如图所示,每一个宿主机器的DVS包括一个端口集合,宿主机器的VM通过所述端口集合连接到DVS。在一些实施例中,每一个DVS与一个MAC地址相关联,从而使得该DVS能够基于在数据分组中规定的目的地MC地址把数据分组递送到其中一个端口。在一些实施例中,DVS的数据分组递送还基于网络分段标识符,比如VNIVXLAN网络标识符)。对于示例性网络100,逻辑网络VXLAN100和物理网络VLANlO分别由其自身的VNI标识。在一些实施例中,通过使用VNI允许DVS在不同的L2层通信量之间进行区分,例如在不同的IP子网之间进行区分,在不同的物理网络分段之间进行区分,在不同的逻辑网络之间进行区分,或者在逻辑网络与物理网络之间进行区分。换句话说,只有在分组的VNI与VM相匹配并且分组的目的地MAC地址与端口相匹配的情况下,DVS才把分组递送到附属于所述端口的所述VM0[0046]每一个宿主机器的DVS还包括信宿端口,其应对不具有匹配其中一个其他端口的目的地MACVNI的所有传入数据分组。如图所示,DVS的信宿端口附属于分布式路由器桥接器模块VDRB模块。在一些实施例中,VDRB是用于应对不同的L2网络分段之间的L3通信量路由的受管理物理路由单元MPRE。在这些实施例当中的一些实施例中,MPRE是跨越多个宿主机器以便由所述多个宿主机器通过分布式方式实施L3层路由(例如基于IP地址)的逻辑路由单元LRE的本地实例化。在一些实施例中,VDRB充当VDB虚拟分布式桥接器)以用于把分组从一个网络分段桥接到另一个网络分段,这是通过MAC地址查找而不是IP地址路由而实现的。在一些实施例中,当分组的源和目的地处于相同的IP子网中但是具有不同的VNI时,所述分组被桥接而不是从一个网络分段路由到另一个网络分段。为了把分组从一个网络分段桥接到另一个网络分段,VDRB使用分组的目的地MAC地址来查找其相应的VNI,并且在通过所述VNI标识的网络分段中产生桥接分组。随后由(该宿主机器或另一宿主机器的DVS根据VNI和目的地MC地址来递送所述桥接分组。[0047]每一个宿主机器的DVS具有去到物理网络基础设施190的上行链路连接。来自物理网络基础设施190的通信量通过所述上行链路连接进入DVS以到达附属于DVS端口的VM和VDRB,并且相反地来自VM和VDRB的通信量离开DVS并且通过上行链路进入到物理网络基础设施190中。如图所示,每一个宿主机器中的DVS去到物理网络基础设施190的上行链路是通过覆盖逻辑网络隧道端点VTEP。在一些实施例中,每一个隧道端点与一个独有IP地址隧道地址或VTEPIP相关联,并且每一个作为隧道端点的宿主机器也就是其虚拟化软件被指派一个隧道地址。宿主机器的VTEP模块接受来自物理网络基础设施190的承载其宿主机器的隧道地址的分组。如图所示,宿主机器181-184分别被指派隧道地址V1、V2、V3和V4。[0048]对于去到物理网络基础设施的传出分组,在一些实施例中,宿主机器的VTEM模块根据其VNI所需的格式对分组进行封装或者不进行封装)。举例来说,当由宿主机器181的VDRB171产生的桥接分组规定对应于VXLAN100的VNI时,在把已封装分组发送到物理网络基础设施190上之前,VTEM模块151将根据VXLAN格式对分组进行封装。相反地,宿主机器的VTEM模块还对传入已封装分组进行处理,这是通过在令已解封分组通过DVS到达VM和VDRB之前剥除逻辑网络封装。在一些实施例中,上行链路包括去到来自物理网络基础设施190的外出路径和进入路径,并且VTEP模块在进入路径和外出路径处的单独模块处实施覆盖逻辑网络封装和解封。[0049]物理宿主机器PH117-119是不运行虚拟化软件并且不寄存任何VM的节点。在一些实施例中,一些物理宿主机器是内建到底层物理网络中的传统网络单元(比如文件管理器或者另一非管理程序非VM网络协议栈),其过去依赖于针对L3层路由的独立路由器。在一些实施例中,PH是充当覆盖逻辑网络也就是VXLAN100与其他外部网络的接口的边缘路由器或路由网关。在一些实施例中,这样的边缘路由器是运行在运行管理程序虚拟化软件的宿主机器上的VM,但是边缘路由器的宿主机器不运行VDRB。关于MPSE、MPRE、LRE和PH的进一步描述可以在2013年12月20日提交的标题为“逻辑路由器”的美国专利申请No.14137,862中找到。美国专利申请No.14137,862被合并在此以作参考。[0050]正如前面所提到的那样,运行在每一个宿主机器181-184中的虚拟化软件包括用于实施L3路由和或桥接操作的VDRB模块,其把分组从一个网络分段递送到另一个网络分段。在一些实施例中,至少其中一些VDRB被配置成VDB虚拟分布式桥接器)以用于通过分布式方式在不同网络分段之间实施桥接操作,其中在不同宿主机器中的VDB之间划分桥接任务。[0051]后面将描述本发明的几个更加详细的实施例。第I节描述了基于在几个VDB之间对MAC地址进行碎片化而划分桥接任务。第II节描述了识别用于桥接分组的另一宿主机器中的远程VDB。第III节描述了把桥接任务指派到覆盖逻辑网络的VM的本地VDB。第IV节描述了实施本发明的一些实施例的示例性通信设备。最后,第V节描述了用以实施本发明的一些实施例的电子系统。[0052]I、通过对MAC地址的碎片化进行桥接[0053]在一些实施例中,基于MAC地址在网络的几个VDB之间划分网络的桥接任务。具体来说,在一些实施例中,属于覆盖逻辑网络的VM或其他类型的网络节点的MAC地址被划分到几个碎片中,每一个MAC地址碎片被指派到网络中的一个VDB。每一个被指派了MAC地址碎片的VDB在接收到承载属于为其所指派的碎片的MC地址的分组时实施桥接。对于不具有落在该VDB的MAC地址碎片内的MAC地址的分组,VDB不在所述分组上实施桥接。[0054]对于一些实施例,图2在概念上示出了通过对于网络100共享MAC地址而进行分布式桥接。正如前面所提到的那样,网络100被建立在物理网络基础设施190上,其支持覆盖逻辑网络VXLAN100和物理网络分段VLAN10。如图所示,VXLAN100中的VM的MAC地址被划分在三个碎片201-203之间。碎片201包括属于VM101-0103的MAC地址M1-M3。碎片202包括属于VM104-0106的MAC地址M4-M6。碎片203包括属于VM107-0109的MAC地址M7-M9。所述碎片不包括来自VLANl0的MAC地址。[0055]在一些实施例中,当在两个不同网络分段比如VLANlO和VXLAN100之间进行桥接时,仅仅其中一个网络分段中的MAC地址处于桥接的目的被碎片化。换句话说,一些实施例基于仅仅其中一个分段的MAC地址决定哪一个桥接器应当被用于桥接分组。在该例中,由于需要桥接的分组必然承载来自VXLANl00的一个MC和来自VLANl0的一个MAC,因此通过仅使用VXLAN100MAC来选择分布式桥接器足以划分所有可能的桥接任务。这样还确保对于每一个需要桥接的分组仅选择一个分布式桥接器而不是基于VXLAN地址和VLAN地址全部二者的两个分布式桥接器。[0056]宿主机器181-183中的VDB是用于在VXLAN100与VLANlO之前桥接分组。宿主机器181-183中的VDB171-173分别被指派碎片201-203当中的一个MAC地址碎片。在一些实施例中,被指派了MAC地址碎片的宿主机器中的VDB实例被称作用于应对该碎片中的那些MAC地址的指定桥接器或“DB”。在一些实施例中,被指派了碎片的DB建立列出该碎片中的MAC地址的“包括表”,从而使得只有具有包括在该表中的MAC地址的分组才将被桥接。[0057]这些VDB当中的每一个在分组的源或目的地MAC地址落在其所指派的碎片内的情况下桥接该分组。如图所示,宿主机器181中的VDB171用于桥接去到或来自具有MAC地址M1-M3的VM的分组。宿主机器182中的VDB172用于桥接去到或来自具有MAC地址M4-M6的VM的分组。宿主机器183中的VDB173用于桥接去到或来自具有MAC地址M7-M9的VM的分组。VDB171-173当中的每一个用于把其碎片的VM与VLANlO中的VM111-116和PH117-119进行桥接。[0058]宿主机器184中的VDRB174未示出)未被指派MAC地址碎片,因此将不参与VXLAN100与VLANlO之间的桥接操作。对于第I和II节中的讨论将依赖于图2中所使用的示例性MAC地址碎片化方案。但是本领域技术人员将理解的是,在图2和后续附图中所使用的碎片化方案仅仅是出于说明的目的任意地选择的。[0059]图3a-b示出了根据图2的MAC地址碎片化的网络100中的覆盖逻辑网络VXLANl00中的VM与物理网络分段VLAN10中的VM之间的分组桥接。图3a示出了从VXLAN100中的VM105MAC地址M5到VLANlO中的VM111MAC地址Mil的分组310的桥接。图3b示出了从PH117MAC地址M17到VM102MAC地址M2的分组320的桥接。根据图2的示例性碎片化方案,碎片中的MAC地址M5被指派到VDRB172DB2,碎片中的MAC地址M2则被指派到VDRB171DBl。[0060]图3a在被标记为“Γ、“2”、“3”和“4”的四个操作中示出了分组310的桥接。在被标记为“Γ的第一操作处,VM105通过规定源MAC地址M5和目的地MAC地址Mll产生以VM111为目的地的分组310。由于VM105处于VXLAN100中,因此宿主机器181利用表明该分组属于VXLAN100的VNI对分组310进行封装。此外,由于分组310的VXLAN100地址其源MACM5被碎片化到DB2,因此宿主机器181把分组310隧道传送到运行DB2172的宿主机器182。宿主机器181把已封装分组310注入到物理网络基础设施190中。[0061]在被标记为“2”的第二操作处,已封装分组310通过物理网络基础设施190到达宿主机器182。宿主机器182在其上行链路处对分组310进行解封,并且允许已解封分组到达其DVS162。在一些实施例中,即使在分组被解封之后,每一个分组仍通过其VNI被加标签。由于目的地MAC地址Ml1和VNIVXLAN100不匹配DVS162的任何端口,因此该DVS把所述分组发送到其信宿端口(并且发送到DB172。[0062]在被标记为“3”的第三操作处,DB172辨识出源MAC地址M5处于为其所指派的碎片202中,并且接受分组310以进行桥接。DB172基于目的地MAC地址Mll实施针对VNI的查找,并且确定Mll属于VLAN10。其随后产生具有对应于VLANlO的VNI的桥接分组311。桥接分组311具有相同的源和目的地MAC地址M5和Mil。宿主机器182随后把桥接分组311注入到物理网络基础设施190中。[0063]在被标记为“4”的第四操作处,桥接分组311到达宿主机器183。由于桥接分组311的目的地MAC地址和VINMil和VLAN10与VM111相匹配,因此宿主机器183的DVS163把分组311转发到VM111。[0064]图3b在被标记为“5”、“6”、“7”和“8”的四个操作中示出了分组320的桥接操作“5”至Γ8”不一定是操作“Γ、“2”、“3”和“4”的后续操作)。在被标记为“5”的第一操作处,PH117MACM17通过规定源MAC地址M17和目的地MAC地址M2产生以VM103为目的地的分组320。由于PH117是附属于物理网络分段VLANlO的物理宿主,因此分组320随着表明该分组属于VLANlO的VNI池就是VLANID—起被注入到物理网络基础设施190中。[0065]在被标记为“6”的第二操作处,分组320通过物理网络基础设施190到达宿主机器181。所述分组通过其上行链路进入宿主机器181的DVS161。在一些实施例中,不管分组的封装格式如何,上行链路通过其VNIVXLAN网络标识符或VLANID对该分组加标签。由于目的地MAC地址M2和VNIVLANlO不匹配DVS161的任何端口,因此该DVS把所述分组发送到其信宿端口(并且发送到DB171。虽然没有示出,但是分组320还到达其他宿主机器并且最终也落在这些其他宿主机器的信宿端口处。[0066]在被标记为“7”的第三操作处,DB171辨识出目的地MAC地址M2处于为其所指派的碎片(图2中的包括M1-M3的碎片)中,并且接受分组320以进行桥接。虽然没有示出,但是其他宿主机器中的其他DB没有辨识出目的地MAC地址M2处于为其所指派的碎片中,因此不接受分组320以进行桥接。DB171基于目的地MAC地址M2实施查找,并且确定M2属于VXLAN100。其随后产生具有对应于VXLAN100的VNI的桥接分组321。桥接分组321具有相同的源和目的地MAC地址Ml1和M2。由于桥接分组的VNI是VXLANl00,因此宿主机器181在VXLAN下对分组310进行封装。已封装分组表明该已封装分组的目的地是具有IP地址“V2”的隧道端点,也就是寄存具有MAC地址M2的VM102的宿主机器182的隧道地址。宿主机器181随后把已封装分组321注入到物理网络基础设施190中。[0067]在被标记为“8”的第四操作处,已封装桥接分组321到达宿主机器182,也就是具有隧道地址V2的隧道端点。由于桥接分组321的目的地MAC地址和VINM2和VXLAN100与VM102相匹配,因此宿主机器182的DVS162把桥接分组321转发到VM102。[0068]图3a_b示出了示例性的桥接操作,其中被选择来基于MAC地址碎片化实施桥接操作的VDB不是本地VDB实例(也就是说不处在与源或目的地VM相同的宿主机器中)。在一些实施例中,被选择来通过碎片化实施桥接操作的VDB是本地VDB实例(也就是说处在与源或目的地VM相同的宿主机器中)。在这些实施例当中的一些实施例中,DVS在本地VDB与本地VM之间直接转发分组而不经过物理网络基础设施。[0069]图4a_b示出了当源或目的地VM是与VDB相同的宿主机器上的本地VM时的分组桥接。图4a示出了网络100中的从VLANlO中的VM114MAC地址M14到VXLAN100中的VM104MAC地址M4的分组410的桥接。图4b示出了网络100中的从VXLAN100中的VM106MAC地址M6至IjVLANlO中的PH118MAC地址M18的分组420的桥接。根据图2的示例性碎片化方案,MAC地址M4和M6都处于被指派到VDRB172的碎片(碎片202中。由于VDRB172与MAC地址M2M4处于相同的宿主机器182中,因此宿主机器182的DVS162在桥接操作期间将在VDRB172与VM102和VM104之间直接转发分组。[0070]图4a在被标记为“1”、“2”和“3”的三个操作中示出了分组410的桥接。在被标记为“Γ的第一操作处,VM114通过规定源MAC地址M14和目的地MAC地址M4产生以VM104为目的地的分组410。由于VM114处于VLANlO中,因此分组410被直接注入到物理网络基础设施190中而无需针对覆盖逻辑网络的封装,VNI则表明该分组属于VLAN10。[0071]在被标记为“2”的第二操作处,分组410通过物理网络基础设施190到达宿主机器182。所述分组进入宿主机器182的DVS162。由于目的地MAC地址M4和VNIVLANlO不匹配DVS162的任何端口,因此该DVS把所述分组发送到其信宿端口(并且发送到DB172。虽然没有示出,但是分组320还到达其他宿主机器并且最终也落在这些其他宿主机器的信宿端口处。[0072]在被标记为“3”的第三操作处,DB172辨识出目的地MAC地址M4处于为其所指派的碎片(202中,并且接受分组410以进行桥接。虽然没有示出,但是其他宿主机器中的其他DB也就是DB171和DB173没有辨识出目的地MAC地址M4处于为其所指派的碎片中,因此不接受分组410以进行桥接。DB172基于目的地MAC地址M4实施查找,并且确定M4属于VXLAN100。其随后产生具有对应于VLANlO的VNI的桥接分组411。由于桥接分组411的目的地MAC地址和VINM4和VXLAN100与VM104相匹配,因此宿主机器182的DVS162把桥接分组411转发到VM102而不经过物理网络基础设施190。[0073]图4b在被标记为“4”、“5”和“6”的三个操作中示出了分组420的桥接。在被标记为“4”的第一操作处,VM106M6通过规定源MAC地址M6和目的地MAC地址M18产生以VM111为目的地的分组420,其具有对应于VXLAN100的VNI。由于目的地MACM18和VNIVXLANlOOfe配DVS162中的任何端口,因此该DVS把所述分组发送到其信宿端口(并且发送到DB172。[0074]在被标记为“5”的第二操作处,DB172辨识出源MAC地址M6处于为其所指派的碎片图2的碎片202中,并且接受分组420以进行桥接。由于DB172接受了分组420以进行桥接,因此宿主机器182将不把分组420传送到物理网络基础设施190上,并且不针对VXLAN100封装所述分组。DB172基于目的地MAC地址M18实施查找,并且确定M18属于VLAN10。其随后产生具有对应于VLANl0的VNI的桥接分组421。桥接分组311分别具有相同的源和目的地MC地址M6和M18。宿主机器182随后把桥接分组421注入到物理网络基础设施190中。[0075]在被标记为“6”的第三操作处,桥接分组421到达PHIlSMlS,也就是附属于物理网络分段VLANlO的物理宿主。[0076]在一些实施例中,由中央网络控制器创建MAC地址的碎片。在一些实施例中,所述控制器负责管理分布式桥接的总体功能。中央网络控制器收集来自被桥接的其中一个网络分段的所有MAC地址。所收集的MAC地址随后被划分到各个MAC地址碎片中。每一个碎片随后被指派到一个VDRB,从而使得所指派的VDRB成为对应于该碎片中的MAC地址的DB指定桥接器)。图5在概念上示出了由网络100的控制器510对MAC地址进行碎片化。具体来说,网络控制器510从网络100中的宿主机器181-184收集覆盖逻辑网络VXLANl00中的所有MAC地址,把所收集的MAC地址划分到碎片201-203中,并且把每一个碎片指派到由一个宿主机器运行的一个VDRB。图5在三个阶段501-503中在概念上示出了这一碎片化处理。[0077]在第一阶段501处,中央网络控制器510从宿主机器181-184收集MAC地址。尽管桥接操作是在VXLAN100与VLANlO之间进行,但是仅有运行在VXLAN100中的VM的MAC地址被报告和收集。也就是说,控制器510从宿主机器181收集MAC地址M5和M7,从宿主机器182收集M2、M4、M6和M8,从宿主机器183收集M1,并且从宿主机器184收集M3和M9。所述控制器随后生成包括所有报告收集的MAC地址的MAC地址表520。[0078]在一些实施例中,每一个宿主机器在其VM上线时将其VM的MAC地址报告到控制器510。在一些实施例中,表520是VXLAN100中的MAC地址的完整列表。一些实施例将该MAC地址表520转发到宿主机器,从而使得宿主机器可以使用表520来确定某一MAC地址是否属于VXLAN100,其随后在一些实施例中被用来确定某一分组是否桥接分组。[0079]在第二阶段502处,控制器510把表520中的MAC地址的总集划分到单独的碎片201-203中。由控制510收集的每一个MAC地址被确切地指派到一个碎片。如图5和图2中所示,碎片201被指派了MAC地址Ml-M3,碎片202被指派了MAC地址M4-M6,并且碎片203被指派了MAC地址M7-M9。每一个碎片随后被指派到网络100中的其中一个宿主机器。具体来说,宿主机器181被指派了碎片201也就是MAC地址M1-M3,宿主机器182被指派了碎片202也就是MAC地址M4-M6,并且宿主机器183被指派了碎片203也就是MAC地址M7-M9。在一些实施例中,整个MAC地址表520作为碎片化表被转发到所有宿主机器181-183,并且每一个宿主机器从表520获知其自身的碎片指派。[0080]每一个被指派的宿主机器的VDRB随后成为其所指派的碎片中的MAC地址的指定桥接器DB。换句话说,宿主机器181的VDRB171成为M1-M3的DB,宿主机器182的VDRB172成为M4-M6的DB,并且宿主机器183的VDRB173成为M7-M9的DB。并非所有宿主机器都被指派碎片。在该例中,宿主机器184未被指派MAC地址碎片,因此其VDRB将不会参与桥接。[0081]在第三阶段503处,控制器510在MAC地址碎片化之后与宿主机器181-183保持通信。在一些实施例中,所述通信是用于检测DB171-173或控制器510中的故障。在一些实施例中,如果某一DB发生故障,则控制器510将MAC地址重新碎片化,并且把MAC地址重新分配到仍然活跃的DB。在一些实施例中,参与桥接的DB实例的数目可以动态地增加或减少,以便对发生改变的工作负荷作出响应。在宿主发生故障的情况下,工作负荷将被重新分配到其他宿主。在一些实施例中,每当检测到需要在可用DB之间重新分配MAC地址的事件时,所述控制器发起重新碎片化,比如当可用DB的数目发生改变时例如某一DB发生故障,或者有新的DB上线),或者当用于桥接的已知MAC地址的列表发生改变时例如VM离线或上线)。[0082]图6在概念上示出了由于需要重新碎片化的事件而把MAC地址动态地重新指派到碎片(也就是重新碎片化MAC地址)的处理600。在一些实施例中,处理600由网络控制器实施,比如网络控制器510。处理600在接收到关于DB的数目已发生改变的指示时或者在MAC地址的列表已发生改变时开始。一些实施例在心搏通信向控制器表明其中一个或多个DB发生了故障时也就是说没有心搏时确定有DB丢失或故障。一些实施例在接收到针对增加或减少充当DB的宿主机器的数目的命令时确定DB的数目发生了改变。一些实施例在接收到来自宿主机器的关于VM上线或离线的控制平面报告时确定将要碎片化的MAC地址列表发生了改变。[0083]处理600在610处)识别可用DB和用于碎片化的已知MAC地址。在图5的实例中,所述已知MAC地址是覆盖逻辑网络VXLAN100的M1-M9,其被划分到对应于可用DB171-173的碎片201-203中。如果除了DB171-173之外有新的DB被引入,或者如果其中一个DB171-173由于故障而丢失,则将必须在可用DB之间重新划分MAC地址M1-M9。或者如果已知MAC地址的列表发生了改变,也就是说如果M1-M9的其中之一丢失或者如果对于VXLAN100有新的VM上线,则已知MAC地址的列表将发生改变。[0084]处理600随后在620处重新碎片化已知的MAC地址,也就是说把已知的MAC地址重新指派或重新划分到不同的碎片中。在一些实施例中,当DB的数目或者已知MAC地址的列表发生改变时,所有已知的MAC地址都必须被重新碎片化。在一些实施例中,只有被指派到丢失的DB的MAC地址和或新上线的MAC地址需要被重新碎片化。所述处理随后把每一个碎片指派到一个DB。在一些实施例中,实施地址到不同碎片(因此是到不同DB的指派是为了在各个DB之间平衡桥接任务负荷。在一些实施例中,随后把碎片化指派编辑到一个碎片化表中。[0085]接下来,所述处理在630处把新的碎片指派发送到各个DB,从而使得每一个DB知道其被指派来应对哪一个MAC地址碎片。一些实施例通过发送碎片化表来实现这一点,其中包括对于各个DB的宿主机器已知的MAC地址的完整列表连同如前面的图5中所示的碎片化指派。所述处理随后从每一个所指派的DB接收640针对MAC碎片化指派的确认。[0086]所述处理随后确定650是否所有DB都确认了碎片化指派。对于一些实施例,这样在一些实施例中确保所有DB关于碎片化表都是同步的。如果所有DB都确认了碎片化指派,则所述处理随后在660处)向各个DB发送激活消息以用于激活桥接。在一些实施例中,每一条桥接消息用于在MAC的所有者DB处激活MAC地址的桥接。处理600随后结束。[0087]在一些实施例中,分布式桥接方案通过引入防止桥接分组再次被桥接的机制而防止分布式VDB实例之间的循环和复制。在一些实施例中,DB利用标志对其所桥接的分组进行标记,从而表明该分组是桥接分组,并且其他DB不应当再次桥接该分组。在一些实施例中,DB检查一个表以便查明源MAC地址是否属于不同的网络分段并且因此是不应当再次被桥接的桥接分组。图7a-b示出了对于本发明的一些实施例防止桥接循环。[0088]图7a示出了使用标志比特来防止网络100中的桥接循环。该图示出了通过DB171把分组710从VLANlO的VM111桥接到VXLAN100的VM102』Β171在桥接分组711中设定桥接标志比特以防止桥接循环。下面将在被标记为“1”、“2”和“3”的三个操作中说明分组710的桥接。[0089]在被标记为“Γ的第一操作处,VM111在VLANlO中产生具有源MAC地址Mll和目的地MAC地址M2的分组710。由于不知道目的地MAC地址M2处于VNIVLANlO中,因此分组710进入到每一个宿主机器的DVS信宿端口中。[0090]在被标记为“2”的第二操作处,宿主机器181的DB171接受分组710以进行桥接,这是因为DB171被指派了包括目的地MAC地址M2的MAC地址碎片。DB171随后基于对MAC地址M2的查找创建对应于VXLANl00的桥接分组711。DB171还把标志比特“桥接比特”嵌入到桥接分组711中。[0091]在被标记为“3”的第三操作处,桥接分组711被封装并且注入到物理网络基础设施190中。桥接分组711基于VNIVXLAN100和目的地MAC地址M2到达宿主机器182和目的地VM102。网络100中的DB将不在桥接分组711上实施进一步的桥接(包括宿主机器182的DB172,这是因为其标志比特“桥接比特”表明分组711已被桥接并且不应当被再次桥接。[0092]图7b示出了使用一个表来防止桥接循环。具体来说,所述表示列出VXLANl00中的MAC地址的表520。在VLANlO中接收到分组的DB可以使用表520来确定其源MAC地址是否处于VXLAN100中。如果是的话,则该分组是从VXLAN100到VLANlO的桥接分组,并且不需要再次桥接。同样地,在一些实施例中,在VXLAN100中接收到分组的DB可以使用表520确定其源MAC地址是否不处于VXLAN100例如VLAN10中。如果源MAC地址不处在表520中并且因此不处于VXLAN100中,则该分组是来自另一个分段也就是VLAN10的桥接分组,并且不需要再次桥接该分组。[0093]该图示出了由DB172把分组720从VXLAN100的VM105桥接到VLANlO的VM111。在被标记为“4”、“5”和“6”的三个操作中示出了分组720的桥接。在被标记为“4”的第一操作中,VM105在VXLAN100中产生具有源MAC地址M5和目的地MAC地址Mll的分组720。所述分组被隧道传送到“V2”,也就是运行拥有VXLAN100MAC地址M5的DBDB2172的宿主机器(182.[0094]在被标记为“5”的第二操作处,宿主机器182的DB172接受分组720以进行桥接,这是因为DB172被指派了包括目的地MAC地址M5的MAC地址碎片。DB172随后基于对MAC地址Mll的查找创建对应于VLANlO的桥接分组721。但是不同于桥接VXLAN分组,在一些实施例中,桥接VLAN分组不嵌入用于表明该分组被桥接的标志比特。[0095]在被标记为“6”的第三操作处,桥接分组721被注入到物理网络基础设施190中。桥接分组721基于VNIVLANlO和目的地MAC地址Mll到达宿主机器183和目的地VM111。网络100中的DB将不在桥接分组721上实施进一步的桥接包括宿主机器183的DB173,这是因为其源MACM5是由VXLAN100表520列出的其中一个MAC地址。通过在表520中包括源MACM5向各个DB表明,尽管分组721是VLANlO分组,但是分组721是来VXLAN100的桥接分组,因此不应当被再次桥接以免产生桥接循环。[0096]图8在概念上示出了在一些实施例中由宿主机器在其VDRB实例(例如宿主机器181-183的DB171-173处实施的处理800。该处理用于在物理网络分段(比如VLAN与覆盖逻辑网络(比如VXLAN之间进行桥接。所述处理通过确定所接收到的分组是否已经被桥接而防止桥接循环。[0097]处理800开始于在805处在宿主机器的DVS的信宿端口处接收到分组。在一些实施例中,潜在地需要L3路由或桥接的分组将具有不匹配DVS的任何端口(或者宿主机器的任何VM的VNI和目的地MAC。[0098]所述处理随后在810处确定所述分组是VXLAN分组还是VLAN分组。在一些实施例中,这是通过分组的VNI而确定的。如果所述分组是VLAN分组,则处理800继续到860。如果所述分组是VXLAN分组,则处理800继续到820。[0099]在820处,所述处理通过检查VXLAN分组是否设定了表明该分组被桥接的标志来确定所述分组是否桥接分组。如果存在表明分组已被桥接的标志,则处理800在不桥接所述分组的情况下结束。如果没有这样的标志或者如果所述标志表明所述分组尚未被桥接,则所述处理继续到830。在一些实施例中,所述处理检查VXLANMAC地址表以确定所述分组是否桥接分组。如果源MAC不处于VXLAN中(例如不处于VXLAN100表520中),则该分组是从另一个网络分段到VXLAN的桥接分组,并且处理800结束。否则所述处理继续到830。[0100]在830处,所述处理确定目的地MAC地址是否处于VXLAN中。由于所述处理此时已经确定所述分组是VXLAN分组,因此同样处于VXLAN中的目的地MAC地址将不需要桥接。如果目的地MAC处于VXLAN中,则处理800在没有桥接的情况下结束。如果目的地MAC不处于VXLAN中,则所述处理继续到840。[0101]在840处,所述处理确定源或目的地MAC地址是否被碎片化到该DB的VXLAN地址。如果源或目的地MAC地址都没有被包括在被指派到该DB的MAC地址碎片中,则处理800在不桥接所述分组的情况下结束。如果源或目的地MAC地址被包括在被指派到该DB的MAC地址碎片中,则所述处理继续到850。[0102]在850处,所述处理对分组进行桥接。在一些实施例中,所述处理使用目的地MAC地址来查找匹配的VNI。所述处理随后基于对应于通过匹配的VNI所表明的网络分段的传入分组而创建桥接分组。在创建了桥接分组并且将其发送到宿主机器的DVS其可以把桥接分组转发到宿主机器中的其中一个VM或者向外转发到物理网络之后,处理800结束。[0103]在860处,所述处理确定源MAC是否处于VXLAN中,以便确定传入分组是否已被桥接。在处理800的这一点处,所述处理已确定传入分组是VLAN分组。属于VXLAN的源MAC地址将表明所述分组是不应当被再次桥接的桥接分组。在一些实施例中,所述处理能够访问VXLAN中的MAC地址表比如VXLAN100表520,从而允许其确定源MAC地址是否处于VXLAN中。如果源MAC地址处于VXLAN中,则处理800在没有桥接分组的情况下结束。如果源MAC地址不处于VXLAN中,则所述处理继续到870。[0104]在870处,所述处理确定目的地MAC地址是否处于VLAN中。在处理800的这一点处,所述处理已确定传入分组是VLAN分组。因此,具有同样处于VLAN中的目的地MAC地址的分组不应当被桥接。如果目的地MAC地址不处于VLAN中,则所述处理继续到840。如果目的地MAC地址也处于VLAN中,则处理800在没有桥接分组的情况下结束。[0105]II、识别远程宿主机器中的桥接器[0106]正如前面所提到的那样,在一些实施例中,基于MAC地址划分网络的桥接任务,从而使得每一个指定桥接器DB负责一个MAC地址碎片。因此,在一些实施例中,需要被桥接的分组必须被发送到拥有包括所述源或目的地MAC地址的碎片的DB。正如前面参照图3所示出的那样,需要桥接的VXLAN分组被隧道传送到正在运行拥有VXLANMAC的相应DB的宿主机器。在一些实施例中,宿主机器因此基于源MAC地址识别运行正确的DB的隧道端点(也就是宿主机器)。在一些实施例中,由中央网络控制器为每一个宿主机器提供一个表,其中详细标明哪一个宿主机器中的哪一个DB拥有哪一个MAC地址碎片。在一些实施例中,宿主机器在无需控制器提供的表的情况下基于其接收自物理网络基础设施的分组自主获知碎片化信息。宿主机器随后使用所获知的信息来识别应当被用于桥接其传出分组的DB。[0107]图9示出了由宿主机器出于识别用于桥接其传出分组的DB的目的而获知MAC地址碎片化。具体来说,图9示出了由宿主机器184从接收自物理网络基础设施190的传入分组获知。正如参照图1所提到的那样,宿主机器184正在寄存VXLAN100VM103和109。其虚拟化软件144包括DVS164、VTEP154和VDRB174。此外,DVS164包括用于记录和累积被用来识别用于进行桥接的DB的远程桥接模块134RBJDRB174未被指派碎片,因此不是用于网络100的DB。该图在三个阶段901-903中示出了所述学习处理。[0108]在第一阶段901处,宿主机器184接收未被桥接的分组971-972。分组971和972是不具有表明所述分组被桥接的标志的VXLAN分组。在一些实施例中,对于每一个传入VXLAN分组,宿主机器把源MAC地址与源隧道地址相关联并且获知所述关联,从而使得宿主机器在把已封装分组发送回到源MAC地址时将知道要使用哪一个隧道地址。如图所示,对于分组971,源MAC是M6并且源隧道地址是V2,因此VTEM模块154把M6与V2之间的关联记录在VM-标识表954中。同样地,对于分组972,源MAC是M5并且源隧道地址是VI,因此VTEM模块154记录M5与Vl之间的关联。存储在VM标识表954中的每一个MAC-隧道地址对随后可以被用来识别寄存具有MC地址的宿主机器的隧道地址。[0109]在第二阶段902处,宿主机器184接收第三分组973。所述分组的源MAC是Mll,并且所述分组的源隧道地址是VlJTEP模块154随后把Ml1和Vl的配对存储在VM标识表954中。但是分组973是VXLAN分组,其具有被设定成表明其是来自另一个网络分段也就是VLAN10的桥接分组。在一些实施例中,宿主机器或者目的地MAC地址如果其处于VXLAN100中的话与源隧道地址之间的配对,以便确定哪一个DB被指派包括目的地MC地址的碎片。对于桥接分组973,源隧道地址是Vl并且目的地MAC是M3,因此可以推断出MAC地址M3处于被指派到具有隧道地址V1的宿主机器中的DB的碎片中。因此,RB模块134把M3和V1的配对存储在桥接器标识表934中。此外,由于分组被桥接,因此宿主机器能够确定桥接分组973的源MACMll不是VXLAN100地址。因此,RB模块134把MAC地址Mll存储在用于存储已知处于另一个网络分段例如VLAN10中的MAC地址的桥接表944中。[0110]在第三阶段903处,宿主机器184接收同样是桥接分组的第四分组974。与先前的分组973—样,所述分组的源MAC也是Ml1,但是所述分组的源隧道地址是V3而不是VlJTEP模块154又把Mll和V3的配对存储在VM标识表954中,从而撤销先前存储的Mll与Vl的配对。这是因为分组973的目的地MAC是M9,其处于被指派到(具有隧道地址V3的宿主机器183中的)DB173的碎片中,先前的分组972的目的地MAC则是M3,其处于被指派到(具有隧道地址Vl的宿主机器181中的DB171的碎片中。由于设定了桥接标志,因此RB模块134把M9和V3的配对存储在桥接器标识表934中。[0111]在一些实施例中,RB模块代表由虚拟化软件出于识别DB的目的而实施的功能的总集。虽然RB模块134被图示成位于DVS164的上行链路处,但是一些实施例在虚拟化软件而不是上行链路中的某些位置处实施RB功能。[0112]图10在概念上示出了用于从传入分组获知信息以便识别用于桥接传出分组的DB的处理1000。具体来说,所述处理通过把传入桥接分组的目的地MAC地址与源隧道地址相关联而获知。在一些实施例中,处理1000由例如宿主机器184之类的宿主机器及其RB模块实施以用于填充VM标识表954和桥接器标识表934。[0113]处理1000开始于在1010处接收到来自网络的VXLAN。所述处理随后(在1020处)把源隧道地址也就是源VTEPIP与源MAC地址相关联,并且把相关联的配对存储在VM标识表中。MC地址与隧道地址的关联被用来识别用于不需要被桥接的传出分组的目的地端点。[0114]所述处理随后在1030处确定所接收到的分组是否被桥接。正如前面所提到的那样,在一些实施例中,VXLAN分组伴随有用以表明其是否桥接分组的标志比特比如分组973中的桥接比特)。如果所述分组不是桥接分组例如没有设定桥接标志),则所述处理继续到1060。如果所述分组是桥接分组,则所述处理继续到1040。[0115]在1040处,所述处理把源MAC地址记录在桥接表(比如表944或VM标识表(比如表954中。由于所述分组被桥接,因此其MAC地址必然是来自不同于该分组的VXLAN的网络分段例如VLAN10。具有在桥接表中找到的目的地MAC的任何另外的传出分组是需要被桥接的分组。除了桥接表之外,通过将该信息存储在VM标识中还允许RB知道目的地MAC处于VLAN侧而无需咨询桥接表。在这些实施例当中的一些实施例中,RB将只有在目的地MAC需要被桥接时才咨询桥接表。[0116]接下来,所述处理在1050处把源隧道地址与目的地MAC地址相关联。相关联的隧道地址和MAC地址随后作为一对被存储在桥接器标识表中。由于该分组是桥接分组,因此其源隧道地址或VTEPIP是拥有当前传入分组的VXLANMAC的碎片的DB的源隧道地址。如果需要被桥接的话,任何具有相同的VXLANMAC的未来传出分组都将必须去到相同的DB以进行桥接。随后将使用桥接标识表来识别用于传出分组的DB。[0117]所述处理随后(在1060处把所述分组根据其目的地MAC转发到目的地VM。在一些实施例中,这是由宿主机器的DVS实施的。处理1000随后结束。[0118]图10示出了其中总是记录源VTEPIP与源MAC之间的关联而不管传入分组是否被桥接的处理。在一些实施例中,所述处理只有在传入分组未被桥接时才记录源VTEPIP与源MAC之间的关联。(换句话说,只有在操作1030确定了所述分组未被桥接之后才实施操作1010和1020。)[0119]图11示出了使用所获知的MAC-VTEP配对来识别用于传出分组的目的地隧道地址,其中既包括需要被桥接的传出分组也包括不需要被桥接的传出分组。在三个阶段1101-1103中,图11示出了由宿主机器184使用在图9的阶段903结束时存储在表954、934和944中的所获知的信息来传送分组1171-1174。分组1171-1174是需要通过VXLAN隧道递送的所有VXLAN分组,其需要知道目的地隧道地址。对于以VXLAN中的MAC地址为目的地的分组池就是说不需要桥接),通过存储在VM标识表954中的先前获知的MAC地址与隧道地址之间的配对来识别目的地隧道地址。对于以VLAN中的MAC地址为目的地并且从而需要桥接的分组,通过存储在桥接器标识表934中的先前获知的MAC地址与隧道地址之间的配对来识别目的地隧道地址,其被用来识别应当被用于桥接传出分组的DB。宿主机器184还使用存储在桥接表944中的信息来确定目的地MC地址是否需要桥接。[0120]在阶段1101处,宿主机器184发送分组1171和分组1172。对于分组1171,目的地MAC是M5,其根据VM标识表954与隧道地址Vl相关联。因此VTEP模块154把目的地隧道地址设定至IjVl。对于分组1172,目的地MAC是M6,其根据VM标识表954与隧道地址Vl相关联。因此VTEP模块154把目的地隧道地址设定到V2。由于目的地MAC地址没有被识别成处于VLAN中(例如通过使用桥接表944,因此分组将不会被桥接,并且桥接器标识表934不被用来识别用于桥接的DB。[0121]在阶段1102处,宿主机器184发送分组1173。对于分组1173,源MAC是M3,并且目的地MAC是Mll。目的地Mll通过桥接表944被识别成需要桥接。RB模块134随后使用桥接器标识表934来识别应当被用于桥接的DB。正如前面所提到的那样,MAC地址到DB的碎片化是基于VXLAN100MAC地址而不是VLAN10VLAN10,因此源MACM3其是VXLAN100MAC被用来识别将要使用的DB。根据桥接器标识表934,MAC地址M3由隧道地址Vl也就是宿主机器181后方的DB桥接。因此,RB模块134把分组1173的目的地隧道地址设定到Vl。存储在表954中的MAC-VTEP配对信息不被用来基于目的地MC地址Mll设定目的地隧道地址。[0122]在阶段1103处,宿主机器184发送分组1174。对于分组1174,源MAC是M9,并且目的地MAC是Ml1。由于Ml1通过表944被识别成需要桥接,因此分组1173将必须被桥接。RB模块134再次使用桥接器标识表934来识别应当被用来基于源MACM9其是VXLAN100MAC识别DB。根据桥接器标识表934,MAC地址M9由隧道地址V3也就是宿主机器183后方的DB桥接。因此,RB模块134把分组1173的目的地隧道地址设定到V3。存储在VM标识表954中的MAC-VTEP配对信息不被用来基于目的地MC地址Mll设定目的地隧道地址(否则分组将被隧道传送到具有错误的DB的错误目的地端点,其中所述错误的DB不拥有VXLANMAC地址的碎片)。[0123]图12a_b示出了通过其相应地识别出的DB来桥接分组1173和1174。具体来说,图12a示出了图11的阶段1102期间的分组1173的桥接,并且图12b示出了图11的阶段1103期间的分组1174的桥接。[0124]图12a示出了宿主机器184使用其RB模块134来识别将被用于桥接分组1173的DB。RB模块134把宿主机器181的)隧道地址Vl后方的DB171识别成拥有包括M3分组1173的源MAC地址)的碎片的DB。分组1173随后被隧道传送到宿主机器181,其DB171把分组1173基于其目的地MACMll桥接到VLAN10。桥接分组1273随后基于VNIVLANlO和目的地MACMll到达目的地VM111。[0125]图12b示出了宿主机器184使用其RB模块134来识别应当被用于桥接分组1173的DB13RB模块134识别出(宿主机器183的)隧道地址V3后方的DB173是拥有包括M9分组1174的源MAC地址)的碎片的DB。分组1174随后被隧道传送到宿主机器183,其DB173随后把分组1174基于其目的地MACMll桥接到VLAN10。桥接分组1274随后基于VNIVLANlO和目的地MACMl1到达目的地VM111。值得一提的是,尽管分组1173和1174共享相同的目的地MAC地址Mil,但是其由不同的DB桥接,这是因为其具有被碎片化到不同DB的不同源MAC地址。[0126]对于一些实施例,图13在概念上示出了识别用于桥接传出分组的DB的处理1300。具体来说,所述处理使用(例如通过使用处理1000从传入分组获知的信息来识别DB的隧道地址或VTEPIP。在一些实施例中,所述处理由例如宿主机器184之类的宿主机器及其RB模块实施,其使用存储在桥接表(比如表944和桥接器标识表(比如表934中的信息来识别DB的隧道地址。[0127]所述处理在从运行在处于VXLAN中的宿主机器上的其中一个VM接收到(1310待传送分组时开始。所述处理随后(在1320处确定目的地MAC是否需要桥接的目的地MAC。在一些实施例中,所述处理咨询桥接表比如所获知的桥接表944以便确定所述分组的目的地MAC是否处于另一个网络分段例如VLAN中。如果目的地MAC是需要桥接分组的MAC,则所述处理继续到1330。否则,所述处理继续到1360。[0128]在1330处,所述处理识别被指派来桥接该分组的DB的VTEPIP或隧道地址),也就是拥有包括所述分组的源MAC其必然是VXLANMAC的MAC地址碎片的DB。一些实施例使用分组的源MAC在桥接器标识表例如表934中查找VTEPIP,其是运行被基于先前的学习)指派来桥接具有所述源MAC的分组的DB的宿主机器的VTEPIP。在一些实施例中,如果所述处理无法基于先前获知的信息识别用于所述源MAC的DB,则所述处理将向控制器查询VTEPIP,或者利用目的地MAC洪泛网络并且等待来自承载所述DB的VTEPIP的隧道端点的答复。后面将参照图14进一步描述利用目的地MC洪泛网络以识别DB。[0129]所述处理随后在1340处把分组隧道传送到所识别出的VTEPIP以便由DB桥接分组。处理1300随后结束。[0130]在1360处,所述处理从VM标识表识别目的地MAC的VTEPIP。在处理1300的这一点处,所述处理确定了分组的目的地MC处于与VXLAN相同的网络分段中,并且将不需要桥接。因此,所述处理仅仅需要识别正在寄存承载目的地MAC地址的VM的宿主机器的VTEPIP。在一些实施例中,所述处理使用目的地地址在VM标识表例如表954中查找相应的VTEPIP,该表存储先前获知的VMMAC地址及其宿主的VTEPIP的配对。在一些实施例中,如果所述处理无法基于先前获知的信息来识别对应于目的地MAC的相应的VTEPIP,则所述处理将向控制器查询VTEPIP,或者利用目的地MAC洪泛网络并且等待来自寄存具有目的地MAC的VM的隧道端点的答复。[0131]所述处理随后在1370处把分组隧道传送到所识别出的VTEPIP以便到达目的地MAC地址的VM。处理1300随后结束。[0132]正如前面所提到的那样,在一些实施例中,为了把分组从VXLAN桥接到VLAN需要发送方首先把VXLAN分组隧道传送到具有对应于VXLANMAC的相应DB的宿主机器。这要求发送方宿主机器知道DB的隧道地址的VTEPIP。图9-10描述了使用传入桥接分组获知与给定的MAC地址配对的DB也就是拥有VXLANMAC的DB的VTEPIP。但是在一些实施例中,宿主机器有时必须在尚未获知相应DB的VTEPIP的情况下发送将要桥接的VXLAN分组。在一些实施例中,宿主机器向网络中央控制器查询未知DB的VTEPIP。在一些实施例中,宿主机器利用BUM广播、未知单播或多播分组洪泛网络,以便找出未知DB的VTEPIP。[0133]图14示出了使用BUM分组来识别被指派到给定的VXLAN地址的DB。该图示出了把来自宿主机器181的MACM7VM107的分组1470传送到目的地MACM15JM107连接到覆盖逻辑网络VXLAN100。但是关于目的地MACM15是否属于另一个VNI例如VLAN10是未知的。此夕卜,宿主机器181不知道哪一个DB拥有VXLAN地址M7并且因此被赋予桥接来自VM107的分组的任务。该图在三个阶段1401-1403中示出了由宿主机器181使用BUM分组来获知对应于MAC地址M7的DB的身份。[0134]在第一阶段1401处,VM107生成分组1470,其源MAC是M7并且目的地MAC是M15。目的地MACM15在宿主机器181的桥接表941中不具有相应的条目,因此不知道分组1470是否需要桥接。此外,源MACM7在桥接器标识表934中不具有相应的条目,因此关于哪一个DB及其相应的VTEPIP拥有MACM7并且因此被赋予桥接分组970的任务是未知的。为了把分组1470递送到其目的地M15,宿主机器181利用BUM分组1471洪泛物理网络基础设施190。[0135]BUM分组1471具有与由源VM107生成的分组1470相同的源和目的地MAC地址也就是M7和M15。此外,把多播群组ID规定为目的地VTEPIP的是VXLAN100中的已封装分组。在一些实施例中,多播群组是预订到特定多播群组ID的宿主机器的群组,其中多播群组中的所有宿主机器都将接收承载所述多播群组ID的分组。在一些实施例中,具有处于特定VNI例如VXLAN100中的VM的所有宿主机器都预订到相同的多播群组ID,从而使得所述多播群组ID可以被用来向VNI中的所有宿主机器广播分组。[0136]在第二阶段1402处,宿主机器181接收来自物理网络基础设施190的答复分组1472。答复分组1472是响应于BUM分组1471而来自M15。答复分组1472也是来自VTEPIP“V3”的桥接分组(其例如设定了桥接比特)。换句话说,该V3是对分组1472进行了桥接的DB的VTEPIP。桥接分组1472的目的地MAC是VXLANMACM7,因此可以推断出V3是拥有MAC地址M7的DB。如图所示,桥接器标识表931或者MAC地址M7与其DBV3之间的关联。桥接表941还获知MAC地址M15是来自需要桥接的VNI也就是说并非VXLAN100。[0137]在第三阶段1403处,VM107M7把另一个分组1473发送到M15。但是由于宿主机器已经知道M15不处在VXLAN100上(因此需要桥接并且MAC地址M7的DB处在来自桥接器标识表931的)隧道地址V3处,因此宿主机器利用V3的目的地VTEP对分组1473进行封装,从而使得分组1473将被隧道传送到正确的DB。[0138]图15a示出了把BUM分组1471从其VXLAN中的源桥接到其VLAN中的目的地。该图对应于图14的阶段1401,其中拥有BUM分组1471的VXLANMAC的DB从VXLAN100拾取BUM分组并且将其桥接到VLAN10,尽管BUM分组1471的发送方并不知道应当把所述分组发送到哪一个DB以进行桥接。图15a在被标记为T到“3”的三个操作中示出了BUM分组1471的桥接。[0139]在被标记为“Γ的第一操作处,宿主机器181通过发送BUM分组1471洪泛物理网络基础设施190AUM分组1471表明其是从源MACM7去到具有多播群组ID以作为目的地VTEP的目的地MACM16。宿主机器181洪泛网络是因为其不知道如何到达目的地MACM16。[0140]在被标记为“2”的第二操作处,BUM分组1471到达多播群组中的所有宿主机器或隧道端点(也就是接受多播群组ID的那些隧道端点)AUM分组1471最终落在所有宿主机器的信宿端口上,这是因为其目的地MACMl5和VNIVXLAN100不匹配任何端口。但是仅有宿主机器183VTEPIPV3中的DB173接受BUM分组1471以进行桥接,这是因为其是包括M7分组1471中的VXLAN地址)的MAC地址碎片的所有者。虽然没有示出,但是宿主机器183还获知MAC地址M7是来自VTEPIPVI,因此其将知道要隧道传送到VTEPIPVl以便在将来到达M7。前面参照图9和10描述了这一获知。[0141]在被标记为“3”的第三操作处,宿主机器183的DB对分组1471进行桥接并且创建对应于VLANlO中的桥接分组1571,其中源MAC是M7并且目的地MAC是Ml5。桥接分组1571随后遵循VNI和目的地MACM15、VLAN10以到达宿主机器184的VM115。[0142]图15b示出了将答复分组1472从VLAN桥接回到VXLAN。该图对应于图14的阶段1402,其中宿主机器184的VM115响应于BUM分组1471而发送答复分组1472。图15b在被标记为“4”到“6”的三个操作中示出了答复分组1472的桥接。[0143]在被标记为“4”的第一操作处,宿主机器184的VM115响应于桥接分组1571而发送答复分组1572。所述答复分组是以MAC地址M7也就是BUM分组1471并且从而是桥接分组1571的原始发送方为目的地的VLANlO分组。[0144]在被标记为“5”的第二操作处,具有目的地MACM7的答复分组1572被宿主机器183的DB173接受以进行桥接,这是因为宿主机器183的DB173拥有MAC地址M7AB173早前还桥接了BUM分组1471。这是因为答复分组1472的目的地MACM7与BUM分组1471的源MACM7相同,其处于由DB173所拥有的碎片中。因此,在接收到答复分组1472时,宿主机器181也就是BUM分组1471的发送方将能够获知被赋予桥接具有VXLANMACM7的分组的任务的DB的身份或VETPIP。[0145]在被标记为“6”的第三操作处,宿主机器183的DB173对分组1572进行桥接,并且创建对应于VXLAN100的桥接分组1472173把桥接分组1472隧道传送到对应于目的地MACM7的宿主机器181VTEPIPVI。宿主机器183知道要隧道传送到对应于MAC地址M7的宿主机器181,这是因为其在前面描述的操作“2”处接收到BUM分组1471时已经获知VTEPIPVl与MAC地址M7之间的配对。[0146]图15a-b示出了源自VXLAN的BUM分组的桥接,其中拥有BUM分组的VXLAN地址的DB被赋予对BUM分组进行桥接的任务。在一些实施例中,DB还应对来自VLAN的BUM分组的桥接。在一些实施例中,选择一个DB来应对来自VLAN的所有BUM分组的桥接。所选择的DB将利用来自VLAN的桥接分组洪泛VXLAN。在一些实施例中,不同的DB被选择来应对不同的多播群组,并且其中一个DB被选择来应对广播。[0147]在一些实施例中,物理网络基础设施包括多个宿主机器集群,每一个宿主机器集群被实施在物理网络基础设施中的一个L2分段上。在一些实施例中,物理网络分段(比如VLAN对应于物理网络基础设施的一个L2分段或IP子网),并且覆盖逻辑网络(比如VXLAN跨越物理网络基础设施的多个L2分段。在这些实施例当中的一些实施例中,DB主要被部署在物理网络基础设施的一个特定集群中,其中VXLAN和VLAN工作负荷驻留在相同的L2分段上。RB被部署在所有集群的宿主机器中,从而使得不同集群中的宿主机器可以识别所述一个特定集群中的正确的DB以用于桥接。[0148]图16示出了其中物理网络基础设施190包括多个宿主机器集群的网络100的更加详细的视图。如图所示,物理网络基础设施190包括三个L2分段191、192和193,各个L2分段通过L3路由器互连。每一个L2分段互连并且因此定义一个宿主机器集群。具体来说,对应于L2分段191的集群包括宿主机器185-186,对应于L2分段192的集群包括宿主机器181-184,并且对应于L2分段193的集群包括宿主机器187-188。[0149]宿主机器185运行具有MAC地址“MA”、“MB”、“MC”和“MD”的VM。宿主机器186运行具有MAC地址“ME”、“MF”、“MG”和“MH”的VM。宿主机器187运行具有MAC地址“MS”、“MT”、“MU”和“MV”的VM。宿主机器188运行具有MAC地址“MW”、“MX”、“MY”和“MZ”的VM。除了VM101-109M1-M9之外,这些VM都处于VXLAN100中。这些附加的MAC地址还被碎片化到宿主机器181-183中的其中一个DB也就是DB171、DB172和DB173,从而使得针对具有MAC地址MA-MH或MS-MZ的分组的桥接任务被划分在宿主机器181-183的DB之间。[0150]VXLAN100是跨越在xL2分段191-192上的覆盖逻辑网络,其包括宿主机器181-188。VLANlO是由L2分段192定义的物理网络分段,其仅包括宿主机器181-184。换句话说,VXLAN100和VLANlO共存于一个L2分段192和宿主机器181-184的集群中。在油L2分段192定义的)该集群内,VXLAN100和VLANlO的VM和PH共享相同的IP子网,并且分组可以在VLANlO与VXLAN100之间被桥接。[0151]在一些实施例中,用于在特定VXLAN例如VXLAN100与特定VLAN例如VLAN10之间进行桥接的DB仅在由所述VXLAN和VLAN全部二者共享的L2分段或集群中被实例化。在网络100中,仅有L2分段192中的宿主机器也就是宿主机器181-183的VDRB被配置成DB。其他集群的其他宿主机器中的VDRB未被配置成VXLAN与VLAN之间的DB。在一些实施例中,由VXLAN和VLAN共享的集群是用于提供去到因特网和外部世界的通信访问的服务集群,其他集群则是用于实施批量计算任务的计算集群。[0152]正如前面所提到的那样,宿主机器中的RB比如宿主机器184中的RB模块134用于识别拥有特定VXLANMAC地址的DB。这样就允许VXLANVM的宿主机器能够把已封装分组发送到寄存所识别出的DB的隧道端点,即使宿主机器和DB处于不同的L2分段或集群中。如图所示,具有处于VXLAN100中的VM的所有宿主机器包括集群191和193中的那些宿主机器具有用于隧道传送将由集群192中的DB桥接的RB模块。[0153]III、本地桥接[0154]在一些实施例中,分布式桥接依赖于其中一些宿主机器中的本地桥接器LB。在一些实施例中,宿主机器的LB应对以运行在该宿主机器上的VM为目的地或源的分组的桥接。在一些实施例中,宿主机器中的LB从一个或多个指定桥接器DB卸载桥接任务,从而使得DB只在未由网络中的LB服务的VXLANMAC地址上实施桥接。在一些实施例中,DB充当用于应对未由LB应对的桥接任务的默认桥接器。[0155]图17示出了网络1700,其中逻辑覆盖网络与物理网络分段之间的桥接依赖于宿主机器中的LB的本地桥接。网络1700与网络100完全相同,这是在于其被建立在互链宿主机器181-184和物理宿主117-119的物理网络190上。与网络100中一样,宿主机器181-184寄存VM101-116。其中一些VMVM101-109运行在覆盖逻辑网络VXLAN100中。其中一些VMVM111-116运行在物理网络分段VLANlO中。[0156]其中一个宿主机器运行虚拟化软件VSW,其包括DVS模块、停坐在DVS模块的信宿端口处的VDRB模块以及停坐在DVS模块的上行链路处的VTEP模块。网络1700与网络100的不同之处在于,宿主机器181、182和184中的VDRB实例171、172和174被配置成作为LB运行,宿主机器183的VDRB实例173被配置成作为默认桥接器运行。与网络100中一样,桥接任务的划分是基于覆盖逻辑网络VXLAN100中的MAC地址,因此每一个LB对于运行在VXLANl00中的本地VM而不对于运行在VLANl0中的VM应对桥接。[0157]如图所示,VXLAN100VM105和107处于宿主机器181本地,因此VDRB171其被配置成LB针对MAC地址M5和M7应对桥接。同样地,VXLANVM104、106、102、108处于宿主机器182本地,因此VDRB172针对MAC地址M4、M6、M2和M8应对桥接。VXLAN100VM103和109处于宿主机器184本地,因此VDRB174针对MAC地址M3和M9应对桥接。宿主机器183的VDRB173被配置成默认桥接器。其针对所有其他VXLANMAC地址应对桥接,其中包括由宿主机器183运行的VM的VXLANMAC地址也就是VM101的Ml〇[0158]图18a-b示出了在网络1700中使用LV在覆盖逻辑网络VXLAN100中的VM与物理网络分段VLANl0中的VM之间桥接分组。这些分组由寄存VXLANlOOVM的宿主机器的LB本地桥接。[0159]图18a示出了把分组1810从VXLAN100中的VM105MAC地址M5桥接到VLANlO中的VM112MAC地址M12。所述桥接由寄存VM105的宿主机器181的LB171实施。图18a在被标记为T和“2”的两个操作中示出了分组1810的桥接。在被标记为T的第一操作处,宿主机器181的VM105产生具有源MAC地址M5和目的地MAC地址M12的分组1810,其具有VXLAN100的VNI。由于目的地MAC不处于VXLAN100中,因此该分组将必须被桥接。但是由于源MAC地址M5是宿主机器181本地的VXLANl00地址,因此LB171接受分组1810以用于桥接。[0160]在被标记为“2”的第二操作处,LB171已确定目的地MAC地址M12处于VLANlO中,并且产生具有对应于VLANlO的VNI的桥接分组1811。桥接分组1811随后被注入到物理网络基础设施190中,并且到达宿主机器184的VM112。[0161]图18b示出了从VM112到VXLAN100中的VM107MAC地址M7的分组1820的桥接。所述桥接由寄存VM107的宿主机器181的LB171实施。图18b在被标记为“3”和“4”的两个操作中示出了分组1820的桥接。在被标记为“3”的第一操作处,宿主机器184的VM112产生具有源MAC地址M12和目的地MAC地址M7的分组1820,其具有VLANlO的VNI。由于目的地MAC不处于VLANlO中,该分组将必须被桥接。但是由于M7或M12都不是宿主机器184的本地VXLANMAC地址,因此LB174将不会应对分组1820的桥接。相反,分组1820被注入到物理网络基础设施190中以作为以M7为目的地的VLANlO分组。[0162]在被标记为“4”的第二操作处。宿主机器181的LB171辨识出分组1820的目的地MACM7处于宿主机器181本地。因此,宿主机器181的LB171接受分组1820以进行桥接。LB171确定M7处于VXLAN100中并且产生具有VXLAN100的VNI的桥接分组1821,其随后由DVS161基于目的地MACM7转发到VM107。[0163]正如前面所提到的那样,在一些实施例中,网络中的一个VDRB被配置成默认桥接器,其被指定来应对未由网络中的LB应对的所有VXLAN地址。在一些实施例中,默认桥接器创建列出其将不会桥接的MAC地址的排除表。在一些实施例中,默认桥接器通过获知已经由LB应对的VXLANMAC地址来填充排除表。[0164]图19a在概念上示出了用于默认桥接器的排除表的构造。具体来说,该图示出了用于宿主机器183中的默认桥接器173的排除表1973。如图所示,排除表1973的内容是从具有LB的宿主机器收集的,也就是宿主机器181、182和184。这些宿主机器中的VXLANVM的MAC地址被报告到宿主机器183并且由宿主机器183收集到排除表1973中,其包括来自宿主181的M5和M7,来自宿主182的M2、M4、M6和M8,以及来自宿主184的M3和M9。由于MAC地址Ml是处于宿主机器183和默认桥接器173本地的VM,因此其未被添加到排除表中。[0165]为了防止MAC地址被多于一个桥接器例如LB和默认桥接器桥接,在一些实施例中,LB将只有在知道特定MAC地址已被添加到默认桥接器的排除表中的情况下才对该特定MAC地址进行桥接。在一些实施例中,LB基于包括列表决定是否要实施桥接。LB只有在默认桥接器确认了特定本地MC地址已被添加到默认桥接器的排除列表中之后才把该特定本地MAC地址添加到其包括列表中。[0166]在两个阶段1901-1902中,图19b示出了用于把MAC地址添加到默认桥接器173的排除表1973中的示例性操作。[0167]在第一阶段1901中,宿主机器182其具有LB172已经成功地把MAC地址M2、M6和M8报告到宿主机器183其寄存默认桥接器173,并且开始基于这些MC地址实施桥接。宿主机器182还把MAC地址M4报告到宿主机器183。但是直到宿主机器183已确认M4已被成功地登记在其排除表1973中,宿主机器182中的LB172才将基于M4实施桥接。[0168]在第二阶段1902处,宿主机器183向宿主机器182确认其已把M4添加到排除表中。基于这一确认,宿主机器182的LB172将开始基于M4连同M2、M6和M8实施桥接操作。[0169]在一些实施例中,VDB控制器把在本地桥接器上获知的MAC地址同步到默认桥接器。所述控制器还在支持例如vMotion®之类的虚拟机移植时应对MAC地址到新宿主的移动。在一些实施例中,对于添加到默认桥接器的排除表中的报告和确认是借由宿主机器之间的通过网络的控制平面消息。在一些实施例中,所述控制器不从具有LB的宿主机器收集MC地址,而是把所述处理留到在宿主机器本身之间实施。[0170]图20a_b示出了由利用LB实施本地桥接的网络1700中的默认桥接器对分组进行桥接。图20a示出了从VXLAN100中的VM121MAC地址MB到VLANlO中的VM112MAC地址M12分组2010的桥接。VM121由不运行LB的宿主机器185寄存。图20b示出了从VM112到VXLAN100中的VM101MAC地址Ml的分组1920的桥接。这些分组由默认桥接器173桥接,这是因为这些分组的MC地址不处于默认桥接器173的排除表1973中。[0171]图20a在被标记为“1”、“2”和“3”的三个操作中示出了分组2010的桥接。在被标记为“Γ的第一操作处,宿主机器185产生具有VXLAN100的VNI的以M12为目的地的分组2010。由于目的地MACM12不处于VXLAN100中,因此分组2010必须被桥接。由于宿主机器185不运行LB,因此VXLAN分组2010被隧道传送到宿主机器183以便由默认桥接器173桥接。[0172]在被标记为“2”的第二操作处,被隧道传送的分组2010到达宿主机器183。由于分组2010的VXLAN地址“MB”不处于排除表1973中,因此所述分组被接受以便由默认桥接器173进行桥接。默认桥接器173查找对应于目的地地址M12的VNI,并且产生具有对应于VLANlO的VNI的桥接分组2011。[0173]在被标记为“3”的第三操作处,桥接分组2011被注入到物理网络基础设施190中,并且基于目的地MACM12和VNIVLANlO到达宿主机器184中的VM112。[0174]图20b在被标记为“4”、“5”和“6”的三个操作中示出了分组2020的桥接。在被标记为“4”的第一操作处,宿主机器184的VM112M12产生具有VLANlO的VNI的以MAC地址Ml为目的地的分组2020。因此VLAN分组2020被注入到物理网络基础设施190中。但是由于目的地MACMl不处于VLANlO中,因此分组2020将被桥接。[0175]在被标记为“5”的第二操作处,宿主机器183的默认桥接器173接受分组2020以进行桥接,这是因为其目的地MACMl不处于其排除表1973中。MAC地址Ml处于运行默认桥接器173的)宿主机器183的本地,并且因此未被添加到排除表1973中。默认桥接器173随后确定目的地MACMl的VNI是VXLAN100并且产生桥接分组2021。[0176]在被标记为“6”的第三操作处,宿主机器183的DVS163基于分组的VNI和目的地MACMl把桥接分组2021转发到VM101。桥接分组2021在宿主机器183内被本地转发,这是因为VM101处于宿主机器183的本地。[0177]图21在概念上示出了使用本地桥接在网络中对分组进行桥接的处理2100。在一些实施例中,所述处理由宿主机器的虚拟化软件的VDRB模块实施。处理2100在2110处在宿主机器的信宿端口处接收到分组时开始,也就是说所述分组是其VNI和目的地MAC地址不匹配宿主机器中的DVS的任何端口的分组。该分组可以是来自宿主机器本地的其中一个VM,或者可以是来自物理网络基础设施。[0178]接下来,所述处理器在2120处确定VDRB是被配置成本地桥接器或默认桥接器。如果VDRB被配置成本地桥接器,则所述处理继续到2130。如果VDRB被配置成默认桥接器,则所述处理继续到2140。[0179]在2130处,所述处理确定源或目的地MAC地址是否处于包括列表中。在一些实施例中,由于所述处理在此时已经确定VDRB是本地桥接器,因此包括列表将包括处于VXLAN中的本地VM的MAC地址,前提是LB知道MAC地址已经处于默认桥接器的排除表中。如果源或目的地MAC地址处于包括列表中,则所述处理继续到2150。否则,处理2100在没有对分组进行桥接的情况下结束。[0180]在2140处,所述处理确定源或目的地MAC地址是否处于排除列表中。在一些实施例中,由于所述处理在此时已确定VDRB是默认桥接器,则排除列表将具有处于LB本地的VM的VXLANMAC地址。如果源和目的地MAC地址不处于排除列表中,则所述处理继续到2150。如果源或目的地MAC地址处于排除列表中,则处理2100继续到2130以便查看VDRB是否应当充当用于被排除的MAC地址的本地桥接器。这是对于这样的一些实施例,其中VDRB即使在被选择成默认桥接器时,也仍将对于其本地MAC地址充当本地桥接器。对于其中VDRB无法同时充当默认桥接器和本地桥接器的一些实施例,如果源或目的地MAC地址处于排除列表中,则处理2100将结束。[0181]在2150处,所述处理识别目的地MAC的VNI,并且通过发送出具有所识别出的VNI的桥接分组而对分组进行桥接。处理2100随后结束。[0182]正如在前面的第II节中所提到的那样,在一些实施例中,物理网络基础设施包括多个宿主机器集群,每一个宿主机器集群被实施在物理网络基础设施中的一个L2分段上。在这些实施例当中的一些实施例中,LB主要被部署在物理网络基础设施的一个集群中,其中VXLAN和VLAN工作负荷驻留在相同的L2分段上。图22示出了其中LB被部署在一个宿主机器集群中的网络,其中VXLAN和VLAN工作负荷驻留在相同的L2分段上。[0183]图22示出了网络1700的更加详细的视图,其被实施在包括L2分段191-193的物理网络190上。每一个L2分段互连并且因此定义一个宿主机器集群。具体来说,对应于L2分段191的集群包括宿主机器185-186,对应于L2分段192的集群包括宿主机器181-184,并且对应于L2分段193的集群包括宿主机器187-188。[0184]如图所示,VXLAN100是跨越分布在L2分段191-193上的宿主机器181-188的覆盖逻辑网络,VLANlO则是由L2分段192定义的物理网络分段,其仅包括宿主机器181-184。换句话说,VXLAN100和VLANlO共享一个L2分段192以及宿主机器181-184的集群。在(由L2分段192定义的)该集群内,VXLAN100和VLANlO的VM和PH共享相同的IP子网,并且分组可以在VLANlO与VXLAN100之间被桥接。[0185]在一些实施例中,用于在特定VXLAN与特定VLAN例如VXLAN100和VLAN10之间进行桥接的LB仅在由所述VXLAN和VLAN全部二者共享的L2分段或集群中被实例化。在网络1700中,仅有L2分段192中的宿主机器也就是宿主机器181-184的VDRB被配置成LB或者被配置成默认桥接器。其他集群的其他宿主机器中的VDRB未被配置成VXLAN与VLAN之间的LB。为了对来自那些其他集群的分组进行桥接,宿主机器将必须把分组隧道传送到宿主机器183中的默认桥接器。对于一些实施例,当共享集群例如由VXLAN100和VLANlO共享的集群192是用于提供去到因特网和外部世界的通信访问的服务集群这是通过VLAN而其他集群则是用于实施计算任务并且因此很少需要发送将被桥接到VLAN中的分组的计算集群时,仅在网络的一个集群中把网络中的VDRB配置成LB和默认桥接器是一种优化。[0186]IV、计算设备[0187]正如早前所提到的那样,本发明的一些实施例是通过运行在充当宿主机器的计算设备上的虚拟化软件或管理程序来实施的。对于一些实施例,图23示出了运行虚拟化软件2305的示例性宿主机器2300。虚拟化软件2305允许宿主机器寄存虚拟机2311-2314以及把虚拟机连接到物理网络2390。该物理网络2390可以跨越一个或多个数据中心并且包括各种物理交换机和路由器。[0188]如图所示,宿主机器2300能够通过物理NICPNIC2395访问物理网络2390。虚拟化软件2305充当所寄存的VM2311-2314与物理NIC2395以及例如处理器和存储器之类的其他物理资源)之间的接口。每一个VM包括用于通过虚拟化软件2305访问网络的虚拟NICVNIC中的每一个VNIC负责在该VM与虚拟化软件2305之间交换分组。在一些实施例中,VNIC是通过虚拟NIC仿真器实施的物理NIC的软件抽象。[0189]虚拟化软件2305管理VM2311-2314的运行,并且包括用于管理VM对物理网络的访问的几个组件在一些实施例中这是通过实施VM所连接到的逻辑网络)。如图所示,虚拟化软件2305包括物理交换单元2320、物理路由单元2330、控制器接口2340、上行链路模块2370、桥接指派存储装置2350以及远程桥接模块2355。[0190]控制器接口2340从控制器或控制器集群2360接收控制平面消息。在一些实施例中,这些控制平面消息包括用于配置虚拟化软件和或虚拟机(比如物理交换单元2320和物理路由单元2330的各种组件的配置数据。在一些实施例中,控制平面消息还包括关于哪些MC地址应当被包括或排除以用于由计算设备2300桥接的目的的信息。[0191]物理交换单元2320或者受管理物理交换单元MPSE向从与物理网络2390接口的物理NIC2395递送网络数据。物理交换单元还包括把物理NIC与VM2311-2314、物理路由单元2330以及控制器接口2340可通信地互连的一定数目的虚拟端口(vPort。在一些实施例中,每一个虚拟端口与一个独有的L2MAC地址相关联。物理交换单元在连接到其虚拟端口的任何两个网络单元之间实施L2链路层分组转发。物理交换单元还在连接到其任一个虚拟端口的任何网络单元与物理网络2390上的可到达L2网络单元例如运行在另一个宿主上的另一个VM之间实施L2链路层分组转发。在一些实施例中,物理交换单元被称作虚拟交换单元,这是因为其是虚拟化软件或管理程序中的虚拟交换机或vSwitch。[0192]物理路由单元2330在接收自物理交换单元2320上的虚拟端口的数据分组上实施L3路由(例如通过实施L3IP地址到L2MAC地址解析)。在一些实施例中,物理路由单元2330所附属的虚拟端口是信宿端口。每一个被路由的数据分组随后被发送回到物理交换单元2320,以便根据所解析的L2MAC地址被转发到其目的地。这一目的地可以是连接到物理交换单元2320上的虚拟端口的另一个VM,或者可以是物理网络2390上的可到达L2网络单元例如运行在另一个宿主上的另一个VM、物理非虚拟化机器等等)。[0193]在一些实施例中,物理路由单元2330是还实施桥接操作的物理路由和桥接单元虚拟分布式路由器桥接器或VDBR。在一些实施例中,物理路由和桥接单元2330可以被配置成默认桥接器、指定桥接器DB或本地桥接器LB。在这些实施例当中的一些实施例中,物理路由和桥接单元2330使用在桥接指派模块2350中列出的MAC地址来决定是要包括还是排除用于桥接的分组。物理路由和桥接单元2330或VDRB作为DB的操作在前面的第I和II节中作了描述。物理路由和桥接单元2330作为LB或默认桥接器的操作在前面的第III节中作了描述。[0194]桥接指派模块2350存储将被包括或排除由物理路由和桥接单元2330进行桥接的MAC地址的列表。在一些实施例中,桥接指派模块2350把物理路由和桥接单元2330当其被配置成DB时)所使用的MAC地址碎片存储为包括表,以便确定应当对于哪些VXLAN地址实施桥接。在一些实施例中,桥接指派模块存储对应于运行在计算设备2300中的VM的VXLANMAC地址的列表,从而使得物理路由和桥接单元2330当其被配置成LB时)用作包括表以便确定应当对于哪些VXLAN地址实施桥接。在一些实施例中,桥接指派模块存储应当排除由物理路由和桥接单元2330当其被配置成默认桥接器时进行桥接的VXLANMC地址的列表。[0195]远程桥接模块2355RB用于识别或定位被指派来在传出分组上实施桥接的DB。在一些实施例中,RB模块235在特定DB向计算设备发送桥接分组时获知特定MAC地址被指派到该特定DB。前面的第II节更加详细地描述了RB模块的操作。[0196]上行链路模块2370在物理交换单元2320与物理NIC2395之间中继数据。在一些实施例中,上行链路模块2370允许宿主机器2300充当用于例如VXLAN和VLAN之类的封装覆盖网络的隧道端点。VXLAN是覆盖网络封装协议。通过VXLAN封装创建的覆盖网络有时被称作VXLAN网络,或者简称作VXLAN。当宿主2300上的VM向处于相同VXLAN网络但是不同宿主上的另一个VM发送数据分组例如以太网帧)时,在把分组发送到物理网络之前,上行链路模块2370利用VXLAN网络的VNI和VTEP的网络地址对数据分组进行封装。所述分组通过物理网络也就是说封装使得底层分组对于中间网络单元是透明的)被隧道传送到目的地宿主。上行链路模块2370还对传入VXLAN分组进行解封,并且仅把原始内部数据分组转发到目的地VM。[0197]在本文献中,术语“分组”指的是在特定格式中跨过网络传送的比特总集。本领域技术人员将认识到,术语“分组”在这里可以被用于可以跨过网络发送的多种格式化的比特总集,比如以太网帧、TCP节段、UDP数据报、IP分组等等。[0198]本说明书始终提到包括虚拟机VM的计算和网络环境。但是虚拟机仅仅是数据计算节点(DNC或数据计算末端节点的一个实例,其也被称作可寻址节点。DCN可以包括非虚拟化物理宿主、虚拟机、运行在宿主操作系统之上而不需要管理程序或单独的操作系统的容器以及管理程序内核网络接口模块。[0199]在一些实施例中,VM通过其自身的访客操作系统运行在宿主上并且使用通过虚拟化软件例如管理程序、虚拟机监视器等等虚拟化的所述宿主的资源。租户也就是VM的所有者可以选择哪些应用将运行在这些访客操作系统之上。另一方面,一些容器是运行在宿主操作系统之上的构造而不需要管理程序或单独的访客操作系统。在一些实施例中,宿主操作系统使用命名空间将各个容器彼此隔离,因此提供运行在不同容器内的不同应用群组的操作系统层级的分离。这一分离类似于在虚拟化系统硬件的管理程序虚拟化环境中所给出的VM分离,因此可以被视为隔离运行在不同容器中的不同应用群组的某种形式的虚拟化。这样的容器与VM相比更加轻量化。[0200]在一些实施例中,管理程序内核网络接口是包括具有管理程序内核网络接口和接收传送线程的网络协议栈的非VMDCN。管理程序内核接口模块的一个实例是作为VMware,Inc.的ESXi™^—部分的vmknic模块。[0201]本领域技术人员将认识到,虽然说明书提到了VM,但是所给出的实例可以是任何类型的DCN,其中包括物理宿主、VM、非VM容器以及管理程序内核网络接口模块。实际上,在一些实施例中,示例性的网络可以包括不同类型的DCN的组合。[0202]IV、电子系统[0203]前面描述的许多特征和应用被实施成软件处理,所述软件处理被规定为记录在计算机可读存储介质其也被称作计算机可读介质上的指令集合。当这些指令由一个或多个处理单元(例如一个或多个处理器、处理器的核心或者其他处理单元执行时,其使得(多个处理单元实施在所述指令中表明的动作。计算机可读介质的实例包括而不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等等。计算机可读介质不包括通过无线方式或者通过有线连接传递的载波和电子信号。[0204]在本说明书中,术语“软件”意图包括驻留在只读存储器中的固件或者存储在磁性存储装置中的应用,其可以被读取到存储器中以供处理器进行处理。此外,在一些实施例中,多项软件发明可以被实施成更大型程序的各个子部分,同时仍然保持是不同的软件发明。在一些实施例中,多项软件发明也可以被实施成单独的程序。最后,一起实施这里所描述的一项软件发明的单独程序的任何组合都落在本发明的范围内。在一些实施例中,当被安装以运行在一个或多个电子系统上时,所述软件程序定义执行并且实施所述软件程序的运行的一种或多种具体机器实现方式。[0205]图24在概念上示出了用以实施本发明的一些实施例的电子系统2400。电子系统2400可以被用来执行前面所描述的任何控制、虚拟化或操作系统应用。电子系统2400可以是计算机例如台式计算机、个人计算机、平板计算机、服务器计算机、大型计算机、刀片式计算机等等)、电话、PDA或者任何其他种类的电子设备。这样的电子系统包括多种类型的计算机可读介质以及用于多种其他类型的计算机可读介质的接口。电子系统2400包括总线2405、(多个处理单元2410、系统存储器2425、只读存储器2430、永久性存储设备2435、输入设备2440以及输出设备2445。[0206]总线2405总体上代表可通信地连接电子系统2400的大量内部设备的所有系统、夕卜围和芯片组总线。举例来说,总线2405把多个处理单元2410与只读存储器2430、系统存储器2425和永久性存储设备2435可通信地连接。[0207]多个处理单元2410从这些各种存储器单元取回将要执行的指令和将要处理的数据,以便执行本发明的处理。在不同实施例中,所述多个处理单元可以是单个处理器或多核处理器。[0208]只读存储器Φ0Μ2430存储(多个处理单元2410和电子系统的其他模块所需要的静态数据和指令。另一方面永久性存储设备2435是读写存储器设备。该设备是即使当电子系统2400被关断时仍然存储指令和数据的非易失性存储器。本发明的一些实施例使用大容量存储设备比如磁盘或光盘及其相应的盘驱动器以作为永久性存储设备2435。[0209]其他实施例使用可移除存储设备(比如软盘、闪存驱动器等等)以作为永久性存储设备。与永久性存储设备2435—样,系统存储器2425是读写存储器。但是不同于存储设备2435,系统存储器是易失性读写存储器,比如随机存取存储器。系统存储器存储处理器在运行时间所需要的其中一些指令和数据。在一些实施例中,本发明的处理被存储在系统存储器2425、永久性存储设备2435和或只读存储器2430中。(多个处理单元2410从这些各种存储器单元取回将要执行的指令和将要处理的数据,以便执行一些实施例的处理。[0210]总线2405还连接到输入和输出设备2440和2445。输入设备允许用户向电子系统传送信息和选择命令。输入设备2440包括字母数字键盘和指示设备其也被称作“光标控制设备”)。输出设备2445显示由电子系统生成的图像。输出设备包括打印机和显示设备,比如阴极射线管CRT或液晶显示器LCD。一些实施例包括同时充当输入和输出设备的例如触摸屏之类的设备。[0211]最后,如图24中所示,总线2405还把电子系统2400通过网络适配器未示出)耦合到网络2465。通过这种方式,计算机可以是计算机网络的一部分比如局域网(“LAN”)、广域网(“WAN”)、内联网或者例如因特网之类的网络的网络。电子系统2400的任何或所有组件都可以与本发明相结合来使用。[0212]一些实施例包括电子组件,比如微处理器、存储装置和存储器,其把计算机程序指令存储在机器可读或计算机可读介质(其替换地被称作计算机可读存储介质、机器可读介质或者机器可读存储介质)中。这样的机器可读介质的一些实例包括RAM、R0M、只读紧致盘CD-ROM、可记录紧致盘CD-R、可重写紧致盘CD-RW、只读数字通用盘例如DVD-ROM、双层DVD-ROM、多种可记录可重写DVD例如DVD-RAM、DVD-RW、DVD+RW等等)、闪存(例如SD卡、mini-SD卡、micr〇-SD卡等等)、磁性和或固态硬盘驱动器、只读和可记录Blu-Ray_®盘、超高密度光盘、任何其他光学或磁性介质以及软盘。计算机可读介质可以存储可由至少一个处理单元执行并且包括用于实施各种操作的指令集合的计算机程序。计算机程序或计算机代码的实例包括机器代码,比如由编译器产生的机器代码,以及包括由计算机、电子组件或微处理器利用解译器执行的高层级代码的文件。[0213]虽然前面的讨论主要涉及执行软件的微处理器或多核处理器,但是一些实施例可以由一个或多个集成电路实施,比如专用集成电路ASIC或现场可编程门阵列FPGA。在一些实施例中,这样的集成电路执行被存储在电路本身上的指令。[0214]在本说明书中使用的术语“计算机”、“服务器”、“处理器”和“存储器”都指代电子或其他技术设备。这些术语排除了人或人群。出于本说明书的目的,术语显示器或显示意味着在电子设备上进行显示。在本说明书中使用的术语“计算机可读介质”和“机器可读介质”完全被限制到通过可由计算机读取的形式存储信息的有形物理物体。这些术语排除任何无线信号、有线下载信号以及任何其他暂时性信号。[0215]虽然前面参照许多具体细节描述了本发明,但是本领域技术人员将认识到,在不背离本发明的范围的情况下可以通过其他具体形式来具体实现本发明。此外,一些附图(包括图6、8、10、13、21在概念上说明了一些处理。这些处理的具体操作可以不按照所示出和描述的确切顺序来实施。所述具体操作可以不在一系列连续操作中实施,并且在不同的实施例中可以实施不同的具体操作。此外,所述处理可以利用几个子处理来实施,或者被实施成更大型的宏处理的一部分。因此本领域技术人员将认识到,本发明不受限于前面的说明性细节,而是由所附权利要求书限定。

权利要求:1.一种用于在网络中发送分组的方法,所述方法包括:在计算设备处接收来自网络的第一分段的地址集合,其中所述地址集合是网络的第一分段中的所有地址的一个子集;从网络接收分组,所述分组具有网络的第一分段中的源地址和网络的第二分段中的目的地地址;以及只有在所述分组的源地址或目的地地址是包括在所接收到的地址集合中的地址之一时才把所述分组从第一分段桥接到第二分段。2.根据权利要求1所述的方法,其中,网络的第一和第二分段包括覆盖逻辑网络和L2网络。3.根据权利要求2所述的方法,其中,覆盖逻辑网络是VXLAN。4.根据权利要求2所述的方法,其中,所接收到的地址集合中的每一个地址对应于覆盖逻辑网络中的一个节点。5.根据权利要求2所述的方法,其中,所接收到的地址集合中的每一个地址是运行在覆盖逻辑网络中的虚拟机VM的地址。6.根据权利要求1所述的方法,其中,对分组进行桥接包括基于目的地地址识别网络的第二分段。7.根据权利要求1所述的方法,其中,所述地址集合中的每一个地址是链路层MAC介质访问控制地址。8.根据权利要求1所述的方法,其中,网络的第一和第二分段共存于网络的L2物理分段中。9.根据权利要求1所述的方法,其中,所述地址集合是网络的第一分段中的第一地址子集,其中网络的第一分段中的第二地址子集由另一个计算设备接收,从而只有在所述分组的源地址或目的地地址是包括在第二地址子集中的地址之一时才把分组从第一分段桥接到第二分段。10.—种用于控制网络的方法,所述方法包括:配置第一分布式桥接器以便在网络的第一分段与网络的第二分段之间桥接分组,从而使得第一分布式桥接器只有在分组具有属于第一地址集合的源地址或目的地地址时才桥接分组;以及配置第二分布式桥接器以便在网络的第一分段与网络的第二分段之间桥接分组,从而使得第二分布式桥接器只有在分组具有属于第二地址集合的源地址或目的地地址时才桥接分组,其中第一和第二地址集合对应于网络的第一分段中的不同节点集合。11.根据权利要求10所述的方法,其中,网络的第一和第二分段包括覆盖逻辑网络和L2网络。12.根据权利要求11所述的方法,其中,覆盖逻辑网络是VXLAN。13.根据权利要求11所述的方法,其中,第一和第二地址集合中的每一个地址是运行在覆盖逻辑网络中的虚拟机VM的地址。14.根据权利要求10所述的方法,其中,网络的第一和第二分段共存于网络的L2物理分段中。15.根据权利要求10所述的方法,其中,对分组进行桥接包括基于目的地地址识别网络的第二分段。16.根据权利要求10所述的方法,其中,第一和第二地址集合中的每一个地址是链路层MAC介质访问控制地址。17.—种系统,包括:多个计算设备,每一个计算设备运行用于寄存一个虚拟机VM的集合的虚拟化软件,所述计算设备通过网络互连,其中第一计算设备的虚拟化软件被配置成作为第一分布式桥接器运行,并且第二计算设备的虚拟化软件被配置成作为第二分布式桥接器运行,第一和第二分布式桥接器用于在网络的第一分段与网络的第二分段之间桥接分组,其中第一分段包括第一和第二地址集合,其中第一分布式桥接器只有在分组具有属于第一地址集合的源地址或目的地地址时才桥接分组,并且第二分布式桥接器只有在分组具有属于第二地址集合的源地址或目的地地址时才桥接分组。18.根据权利要求17所述的系统,其中,网络的第一和第二分段包括覆盖逻辑网络和L2网络。19.根据权利要求17所述的系统,其中,网络的第一和第二分段共存于网络的物理L2分段中。20.根据权利要求17所述的系统,其中,第一和第二地址集合中的每一个地址是链路层MAC介质访问控制地址。21.—种方法,包括:在计算设备处接收来自覆盖逻辑网络中的第一隧道端点的被桥接的第一分组,所述第一分组包括第一MAC介质访问控制地址以作为目的地地址;接收来自覆盖逻辑网络中的第二隧道端点的被桥接的第二分组,所述第二分组包括第二MAC地址以作为目的地地址;当第三分组需要桥接并且具有第一MAC地址以作为源地址时,把第三分组传送到第一隧道端点;以及当第四分组需要桥接并且具有第二MAC地址以作为源地址时,把第四分组传送到第二隧道端点。22.根据权利要求21所述的方法,还包括当第一分组的源MAC地址不属于覆盖逻辑网络时把第一分组识别成桥接分组。23.根据权利要求21所述的方法,还包括当第一分组包括表明第一分组已被桥接的标志比特时把第一分组识别成桥接分组。24.根据权利要求21所述的方法,还包括把第一分组的源MAC地址和第二分组的源MAC地址记录为需要桥接的MAC地址。25.根据权利要求24所述的方法,其中,当其目的地MAC地址是被记录为需要桥接的MAC地址时,所传送的分组需要桥接。26.根据权利要求21所述的方法,其中,第一和第二隧道端点用于把分组从覆盖逻辑网络桥接到L2网络。27.根据权利要求26所述的方法,其中,覆盖逻辑网络是VXLAN。28.根据权利要求26所述的方法,其中,覆盖逻辑网络和L2网络共存在网络的相同物理L2分段上。29.根据权利要求21所述的方法,其中,所述计算设备运行用于寄存多个虚拟机VM的虚拟化软件,其中第一MAC地址用于第一VM并且第二MAC地址用于第二VM。30.一种方法,包括:从逻辑网络中的源隧道端点接收第一分组,所述分组包括源隧道端点的隧道地址、源MAC地址和目的地MAC地址;当所述分组不是桥接分组时,在第一表中把源MC地址与隧道地址相关联;当所述分组是桥接分组时,在第二表中把目的地MC地址与隧道地址相关联;以及在传送第二分组时使用第一和第二表来识别目的地隧道端点。31.根据权利要求30所述的方法,其中,当第二分组的目的地MAC地址需要桥接时,使用第二表把目的地端点识别成用于第二分组的桥接器。32.根据权利要求31所述的方法,其中,目的地端点运行覆盖逻辑网络与L2网络之间的分布式桥接器。33.根据权利要求30所述的方法,还包括当第一分组的源MAC地址不属于覆盖逻辑网络时把第一分组识别成桥接分组。34.根据权利要求30所述的方法,还包括当第一分组包括表明第一分组已被桥接的标志比特时把第一分组识别成桥接分组。35.根据权利要求30所述的方法,还包括当第一分组是桥接分组时把第一分组的源MAC地址记录为需要桥接的MAC地址。36.—种计算设备,包括:用于寄存多个虚拟机VM并且用于充当覆盖逻辑网络中的隧道端点的虚拟化软件,其中在接收到来自远程隧道端点的第一分组时,所述虚拟化软件包括:用于在所接收到的第一分组不是桥接分组时把所述分组的源MAC地址与远程隧道端点的隧道地址相关联的第一表;以及用于在所接收到的分组是桥接分组时把所述分组的目的地MAC地址与远程隧道端点的隧道地址相关联的第二表,其中,所述虚拟化软件在传送第二分组时通过使用第一和第二表来识别目的地隧道端点。37.根据权利要求36所述的系统,其中,当第二分组的目的地MAC地址需要桥接时,使用第二表把目的地端点识别成用于第二分组的桥接器。38.根据权利要求37所述的系统,其中,目的地端点运行覆盖逻辑网络与L2网络之间的分布式桥接器。39.根据权利要求36所述的系统,其中,当第一分组的源MAC地址不属于覆盖逻辑网络时,所述虚拟化软件把第一分组识别成桥接分组。40.根据权利要求36所述的系统,其中,当第一分组包括表明第一分组已被桥接的标志比特时,所述虚拟化软件把第一分组识别成桥接分组。41.根据权利要求36所述的系统,其中,当第一分组是桥接分组时,所述虚拟化把第一分组的源MAC地址记录为需要桥接的MAC地址。42.—种用于在网络中发送分组的方法,所述方法包括:从多个计算设备接收多个地址集合,接收自计算设备的每一个地址集合对应于运行在该计算设备中的一个虚拟机VM集合;从网络接收分组,所述分组具有网络的第一分段中的源地址和网络的第二分段中的目的地地址;以及只有在所述分组的源地址和目的地地址不是包括在所接收到的多个地址集合中的地址之一时,才把所述分组从第一分段桥接到第二分段。43.根据权利要求42所述的方法,其中,网络的第一和第二分段包括覆盖逻辑网络和L2网络。44.根据权利要求43所述的方法,其中,覆盖逻辑网络是VXLAN。45.根据权利要求43所述的方法,其中,所接收到的地址集合中的每一个地址对应于覆盖逻辑网络中的一个节点。46.根据权利要求43所述的方法,其中,所述多个计算设备中的每一个计算设备是覆盖逻辑网络中的隧道端点。47.根据权利要求42所述的方法,其中,对分组进行桥接包括基于目的地地址识别网络的第二分段。48.根据权利要求42所述的方法,其中,所述地址集合中的每一个地址是链路层MAC介质访问控制地址。49.根据权利要求42所述的方法,其中,所述多个计算设备通过网络中的物理L2分段互连。50.根据权利要求49所述的方法,其中,网络的第一和第二分段共存于网络的L2物理分段中。51.—种用于在网络中发送分组的方法,所述方法包括:在计算设备处运行对应于一个地址集合的虚拟机VM集合;从网络接收分组,所述分组具有网络的第一分段中的源地址和网络的第二分段中的目的地地址;以及只有在所述分组的源地址或目的地地址是包括在所述地址集合中的地址之一时,才把所述分组从第一分段桥接到第二分段。52.根据权利要求51所述的方法,还包括把所述地址集合提供到默认桥接器,从而使得所述默认桥接器不对具有处于所提供的地址集合中的源地址或目的地地址的任何分组进行桥接。53.根据权利要求51所述的方法,其中,网络的第一和第二分段包括覆盖逻辑网络和L2网络。54.根据权利要求53所述的方法,其中,覆盖逻辑网络是VXLAN。55.根据权利要求53所述的方法,其中,所述多个计算设备当中的每一个计算设备是覆盖逻辑网络中的隧道端点。56.根据权利要求51所述的方法,其中,对分组进行桥接包括基于目的地地址识别网络的第二分段。57.根据权利要求51所述的方法,其中,所述地址集合中的每一个地址是链路层MAC介质访问控制地址。58.根据权利要求51所述的方法,其中,所述计算设备和默认桥接器通过网络中的物理L2分段互连。59.根据权利要求58所述的方法,其中,网络的第一和第二分段共存于网络的L2物理分段中。60.—种系统,包括:用于寄存第一虚拟机VM集合并且用于桥接以第一VM集合为目的地或源的分组的第一计算设备;用于寄存第二VM集合并且用于桥接以第二VM集合为目的地或源的分组的第二计算设备;用于桥接不以第一计算设备或第二计算设备所寄存的任何VM为目的地或源的分组的第三计算设备。61.根据权利要求60所述的系统,其中,第一计算设备运行用于寄存第一VM集合并且用于桥接以第一VM集合为目的地或源的分组的虚拟化软件。62.根据权利要求60所述的系统,其中,第一、第二和第三计算设备用于在覆盖逻辑网络与L2网络之间桥接分组。63.根据权利要求62所述的系统,其中,第一和第二VM集合连接到覆盖逻辑网络。64.根据权利要求62所述的系统,其中,第一、第二和第三计算设备连接到网络的特定物理L2分段,其中所述网络包括多个物理L2分段,所述多个物理L2分段包括所述特定物理L2分段。65.根据权利要求64所述的系统,其中,覆盖逻辑网络跨越网络的多个物理L2分段,其中L2网络在所述特定物理L2分段内运行。

百度查询: NICIRA股份有限公司 虚拟分布式桥接模块

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。