逻辑路由器的制造方法_4

文档序号:9916910阅读:来源:国知局
"6"处, 应答消息到达原始查询的Μ P R E 1713,其又在其自己的解析表17 5 3中存储用于IP地址 10.1.2.1 (即,"MAC2")的地址解析,以便它将能够把分组从VM 1733转发到VM 1732。这时, 最初由VM 1733发送的数据分组可以被路由用于交付到VM 1732并且可以朝着主机1702被 发送到物理网络上。
[0154] 图17和18示出了在对于与发送者MPRE处于不同主机机器中的虚拟机的ARP询问中 使用唯一PMAC。但是,在一些实施例中,这个ARP机制对于解析在与发送者MPRE相同的主机 机器中操作的虚拟机的地址也一样能很好地工作。图19示出了在对于与发送者MPRE处于相 同主机机器中的虚拟机的ARP询问中使用唯一PMAC。
[0155] 图19示出了在图17的网络1700中发生的另一个ARP查询。如在图19中所示,除了 MPRE 1712之外,也驻留在主机1702中的是另一个段B VM 1734和段C VM 1735 JPRE 1712 具有用于与段C中的VM,诸如VM 1735,接口的逻辑接口 1723。图19示出了由MPRE 1712发起 的ARP操作。这个ARP操作被启动是因为MPRE 1712必须将来自在段C中的VM 1735的分组路由 到在段B中的VM1734,这两个VM都驻留在主机1702上。与在图17中示出的、其中发起的MPRE 1711是询问在另一个主机机器中的VM的ARP操作不同,在图19中示出的ARP操作是用于位于 与发起的MPRE1712处于同一主机机器中的VM。
[0156] 在标记为"Γ至"9"的操作中,该图示出了由MPRE 1712发起的对于在段B中的VM 1734的ARP查询。在操作"Γ期间,具有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是在另一个段中。
[0157] 在操作"2"期间,MPRE 1712确定它不具有用于目的地VM1734的L2链路层地址(例 如,通过检查它的地址解析表得知),并且因此发起对在网络段B中的目的地IP " 10.1.2.2" 的ARP查询。该ARP查询将被广播到段B上的主机1702的所有本地VM以及到其它主机(诸如主 机 1701)。
[0158] 在操作"3"期间,MPRE 1712通过LIF B 1722将ARP查询广播到本地段B VM,包括VM 1734。由于这个广播位于主机1702内,因此源地址仍然是通用VMAC。在操作"4"期间,在主机 1702内(在段B上)本地广播的ARP查询到达VM 1734并且VM 1734对ARP查询发送应答消息。
[0159] 与操作"3"和"4"同时,MPRE 1712在操作"5"期间也向其它主机广播ARP请求。该广 播消息使用广播MAC地址作为其目的地MAC和MPRE 1712的唯一PMAC"PMAC2"作为源MAC地址 (例如,如在被发送到物理NIC之前通过上行链路修改的hMPRE 1712还对分组执行L3路由 以确定目的地IP"l〇. 1.2.2"是在段B中,并且因此将源IP改变为"10.1.2.253"(即,LIF B的 IP地址)。在操作"6"中的广播ARP到达主机1701,其上行链路模块1741将目的地MAC修改为 用于其MPRE 1711的通用VMAC。但是,将没有来自其它主机的ARP应答,这是因为将没有对 1?10.1.2.2的匹配(虽然在一些实施例中,这些主机将把41^转发到其段8¥1上)。
[0160] 在操作"7"期间,VM 1734生成对在操作"4"期间接收到的ARP查询的应答消息。应 答消息指示L2地址"MAC4"对应于所请求的L3网络层地址"10.1.2.2",并且该应答要利用其 通用MAC地址"VMAC"被发送到请求的MPRE。在操作"8"期间,由VM1734生成的ARP应答通过 LIF B 1722进入MPRE 1712。最后,在操作"9"处,MPRE 1712将用于IP地址10.1.2.2(即, "MAC4")的地址解析存储在其自己的解析表1752中,使得它将能够把分组从VM 1735转发到 VM 1734(包括初始发送的数据分组)。
[0161] 图20和21示出了用于在MPRE已更新其解析表之后在不同段的VM之间发送数据流 量的操作。具体而言,图20和21示出了在主机1701的MPRE 1711和MPRE 1712已通过先前的 ARP查询更新了其解析表(如在图17和19中所示出的)之后在VM 1731、1732和1735之间的网 络1700的数据流量。
[0162] 图20示出了将数据分组从段A VM 1731和段C VM 1735路由到段B VM 1732。路由 发生在MPRE 1711和1712中,其中MPRE是分别用于发送方VM 1731和发送方VM 1735的。MPRE 1711使用解析表1751用于路由查找,而MPRE 1712使用解析表1752用于路由查找。
[0163] 操作"Γ至"3"示出了数据分组从段A VM 1731到段B VM1732的路由。在操作"Γ 中,VM 1731利用通用VMAC将分组发送到MPRE 1711的LIF A 1721。该分组去往IP地址 10.1.2.1,它与VM 1731 (IP地址10.1.1.1)处于不同的网络段中,并且因此需要L3层路由。 在操作"2"期间,MPRE 1711通过利用在解析表1751中的条目(即,如通过图17所示的操作获 知的)将IP地址10.1.2.1解析为L2地址"MAC2"和段B JPRE 1711使用其自己的唯一L2地址 "PMAC1"作为用于发送出到物理网络上的分组的源地址。MPRE 1711还识别LIF B 1725作为 出站LIF并且使用该LIF跨物理网络(标记有段B的网络标识符)将分组发送到主机1702。在 操作"3"期间,路由的分组已穿越整个物理网络并且到达其L2地址是"MAC2"的目的地VM 1732。
[0164] 操作"4"至"6"示出了数据分组从段C VM 1735到段B VM1732的路由,其中数据分 组不需要离开主机1702。在操作"4"期间,VM 1735利用通用VMAC作为分组的目的地MAC将分 组发送到]^1^1712的1^?(: 1723。该分组去往1?地址10.1.2.1,它在与¥]\1 1735(1?地址 10.1.3.1)不同的网络段上,并且因此需要L3路由。在操作"5"期间,MPRE 1712通过利用解 析表1752中的条目将IP地址10.1.2.1解析为L2地址"MAC2"。因为该分组从未离开主机1702 到物理网络,因此MPRE 1712也使用VMAC作为源L2MAC地址。MPRE 1712已识别LIF B 1722作 为出站LIF并且使用该LIF将分组发送到本地段B VM 1732。在操作"6"期间,数据分组到达 其MAC地址是"MAC2"的目的地VM 1732。
[0165] 图21示出了数据分组从段B VM 1732发送到段A VM 1731和段C VM 1735的路由。 路由发生在MPRE 1712中,它是用于发送者VM 1732的本地路由器实例。如前所述,MPRE 1712依靠解析表1752用于路由查找。MPRE 1712具有用于与段B中的VM,诸如VM 1732接口的 逻辑接口 1722(LIF BhMPRE 1712具有用于与段C中的VM,诸如VM 1735接口的逻辑接口 1723(LIF ChMPRE 1712还具有用于与段A中的VM,诸如VM 1731接口的逻辑接口 1725(LIF A)〇
[0166] 操作"Γ至"3"示出数据分组从段B VM 1732到段A VM1731的路由。在操作"Γ期 间,VM 1732利用通用VMAC作为目的地MAC将分组发送到MPRE 1712的LIF Β 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" JPRE1711也识别 LIF A 1726作为出站LIF和使用LIF A将分组跨物理网络(标记有段A的VNI)发送到主机 1701。在一些实施例中,MPRE 1711也利用其自己的唯一L2地址"PMAC2"替代通用"VMAC"作 为源MAC地址。在操作"3"期间,路由的分组到达其MAC地址是"MAC1"的目的地VM 1731。
[0167] 操作"4"至"6"示出了数据分组从段B VM 1732到段C VM1735的路由。在操作"4"期 间,VM 1732利用通用VMAC作为分组的目的地MAC地址将分组发送到MPRE 1712的LIF B 1722。该分组去往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。
[0168] 对于一些实施例,图22概念性地示出了由一些实施例的MPRE具体实例执行的、用 于为到来数据分组处理地址解析的过程2200。当过程2000接收到(在2210处)数据分组(例 如,来自MPSE的)时,该过程开始。该数据分组可以是需要被路由或转发的常规数据分组,或 者是需要应答的ARP查询。接下来,该过程确定(在2220处)接收到的分组是否是ARP查询。如 果该数据分组是ARP查询,则过程前进到2225。否则,过程前进到2235。
[0169] 在2225处,该过程确定它是否能够为ARP查询解析目的地地址。在一些实施例中, 该过程检查其自己的ARP解析表,以确定是否存在相应的用于解析该分组的网络层IP地址 的条目。如果过程能够解析该地址,则它前进到2260。如果过程不能解析该地址,则它前进 到2230 〇
[0170] 在2230处,过程转发ARP查询。如果ARP请求来自物理网络,则过程将ARP查询转发 到本地主机内的VM。如果ARP请求来自在本地主机中的VM,则该过程将请求转发到在本地主 机机器中的其它VM以及转发出到物理网络以被在其它主机机器中的MPRE处理。该过程然后 等待和接收(在2250处)ARP应答并且基于应答消息更新其ARP解析表。过程2200然后应答 (在2260处)ARP查询消息并且结束。
[0171]在2235处,该过程确定它是否能够为到来数据分组解析目的地地址。如果该过程 能够解析目的地地址(例如,具有匹配的ARP解析表条目),则该过程前进到2245。否则,该过 程前进到2240。
[0172] 在2240处,该过程产生ARP查询并且通过其出站LIF向远程主机机器以及本地虚拟 机广播该ARP查询。该过程然后接收(在2242处)对其ARP查询的应答并且更新其ARP表。该过 程2200然后根据解析的MAC地址转发(在2245处)数据分组并且结束。
[0173] C.VDR作为用于非-VDR主机机器的路由代理
[0174]在一些实施例中,不是在底层物理网络上产生和接受网络流量的所有主机机器都 运行虚拟化软件和操作VDR。在一些实施例中,这些主机中的至少一些是根本不运行虚拟化 软件并且不托管任何虚拟机的物理主机机器。这些非-VDR物理主机机器中的一些是构建在 底层物理网络中的遗留网络元件(诸如文件服务器或另一个非管理程序/非-VM网络栈),它 们往往依赖于独立路由器用于L3层路由。为了为这些非-VDR物理主机机器执行L3层路由, 一些实施例指定运行在主机机器上的本地LRE具体实例(即,MPRE)充当用于这些非-VDR主 机机器中每个的专用路由代理(指定的实例或指定的MPRE)。在一些实施例中,去向和来自 这种非-VDR物理主机的L2流量由在主机机器中的MPSE的本地实例(例如,320)处理,而无需 必须经过指定的MPRE。
[0175] 图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、LIF B和LIF C)。当被虚拟机在其自己的主机中寻址时,所有MPRE共享通用的"VMAC" JPRE 2311 和2312两者也具有其自己的唯一PMAC( "PMAC1"和"PMAC2")。
[0176] 主机机器2309是不运行虚拟化软件并且没有其自己用于L3层路由的MPRE的物理 主机。物理主机2309与IP地址10.1.2.7相关联并且具有MAC地址"MAC7"( 即,物理主机2309 是在网络段B中)。为了将数据从物理主机2309发送到另一个网络段上的虚拟机,物理主机 必须将数据(通过物理网络和L2交换机)发送到MPRE 2312,这是为物理主机2309指定的 MPRE。
[0177] 图24示出了由逻辑网络2300中的非-VDR物理主机2309发起的ARP操作。如所示出 的,在逻辑网络2300中的每个主机机器2301-2304都具有MPRE(分别地,2311-2314),并且每 个MPRE都具有唯一PMAC地址("PMAC3" 用于MPRE 2313、"PMAC4" 用于MPRE 2314)。每个MPRE 都具有IP地址为1〇 . 1.2.253的用于段B的逻辑接口(LIF B)。但是,只有在主机机器2302中 的MPRE 2312是"指定的实例",并且只有它将对来自物理主机2309的ARP查询广播消息做出 响应。
[0178] 该ARP操作在操作"Γ、"2"、"3"和"4"中示出。在操作"Γ期间,物理主机2309通过 物理网络广播用于其缺省网关" 10 . 1 . 2.2 5 3 "的A R P查询消息。如所提到的,IP地址 10.1.2.253与在所有MPRE 2311-2314上存在的LIF B相关联。但是,只有主机2302的MPRE 2312是用于物理主机2309的指定的实例,并且只有MPRE 2312将对ARP查询做出响应。在一 些实施例中,控制器(或控制器的集群)指定其中一个MPRE作为用于特定段的指定的实例, 如在下面部分III中所描述的。
[0179] 在操作"2"期间,MPRE 2312从物理主机2309接收ARP查询消息并且将物理主机的 MAC地址记录在解析表2342中用于将来的路由。所有其它不是物理主机2309的指定实例的 MPRE(2301、2302和2303)都忽略该ARP。在一些实施例中,这些其它MPRE将仍然把物理主机 的MAC地址记录在其自己的解析表中。
[0180] 在操作"3"期间,MPRE 2312发送ARP应答消息到物理主机2309。在给非-VDR物理主 机的这个应答中,源MAC地址是MPRE2312自身的唯一物理MAC地址("PMAC2")而不是通用 VMAC。这使得物理主机2309将知道为了L3路由只与MPRE 2312通信,而不是任何其它MPRE具 体实例通信。最后,在操作"4"处,物理主机2309将其缺省网关的唯一物理MAC地址 ("PMAC2")记录在其解析表2349中。一旦指定的实例和物理主机2309具有彼此的MAC地址, 就可以在物理主机和逻辑网络2300的其余部分之间开始消息交换。
[0181] 图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路由。用于VM 2322的MPRE是为物理主机2309指定的MPRE (MPRE2312),而用于VM 2321的MPRE(MPRE 2311)不是,注意到这一点是重要的。
[0182] 图25示出了在标记为"Γ、"2"和"3"的三个操作中分组从VM 2322到物理主机2309 的路由。在操作"Γ期间,段C VM2322通过其LIF C 2334发送分组到MPRE 2312。数据分组使 用通用"VMAC"作为目的地MAC地址,以便主机2302上的MPSE将分组转发到MPRE 2312。目的 地IP地址是10.1.2.7,它是物理主机2309的IP地址。
[0183] 在操作"2"期间,MPRE 2312使用其地址解析表2342的条目将目的地IP地址 10.1.2.7解析为物理主机2309的MAC地址"MAC7"。当数据分组从主机机器发送到物理网络 上时,MPRE2312也使用其自己的唯一物理MAC地址"PMAC2"而不是通用"VMAC"作为源MAC地 址。在操作"3"中,MPRE 2312利用其用于段B的逻辑接口(LIF B 2332)发送数据分组。路由 的数据分组利用其解析的L2MAC地址(即,"MAC7")被转发(通过物理网络和L2交换机)到物 理主机2309。值得注意的是,当分组到达物理主机2309时,源MAC地址将保持为"PMAC2",即, 指定的实例的唯一物理MAC。在一些实施例中,物理主机将不会看到通用"VMAC",而是仅仅 利用指定的MPRE的"PMAC2"通信。
[0184] 图25还示出了在标记为"4"、"5"和"6"的操作中分组从VM 2321到物理主机2309的 路由。与VM 2322不同,VM 2321的MPRE(2311)不是指定的实例。但是,在一些实施例中,其 MPRE不是物理主机的指定实例的虚拟机仍然使用其自己的MPRE用于将路由的分组发送到 物理主机。
[0185] 在操作"4"期间,段A VM 2321通过其LIF A 2333将分组发送到MPRE 2311。数据分 组使用通用"VMAC"作为用于虚拟路由器的MAC地址,以将分组路由到MPRE 2311。目的地IP 地址是10.1.2.7,它是物理主机2309的IP地址。
[0186] 在操作"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(8卩,到MPRE 2312),并且 主机2302将把用于物理主机2309的解析的MAC地址(从它的解析表2342中)发送回到MPRE 2311〇
[0187] 在操作"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地址。路由的 数据分组利用其解析的L2MAC地址("MAC7")被转发到物理主机2309(通过物理网络和L2交 换机)。
[0188] 图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中运行。
[0189] 图26a示出了在标记为"Γ、"2"和"3"的三个操作中从物理主机2309到VM 2322的 数据分组的路由。在操作"Γ中,物理主机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。
[0190] 在操作"2"中,上行链路模块2352将唯一 "PMAC2"改变为通用VMAC,以便该分组能 够在主机23
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1