逻辑路由器的制造方法_6

文档序号:9916910阅读:来源:国知局
于桥接)的LRE具体实例通过由控制器集群生成的配置数据集进行配置。在一些实施例中, 控制器又基于由不同租户或用户创建和指定的逻辑网络生成这些配置数据集。在一些实施 例中,用于网络虚拟化基础设施的网络管理器允许用户生成可以在网络虚拟化基础设施上 实现的不同逻辑网络,并且然后将这些逻辑网络的参数推送到控制器,以便控制器可以生 成特定于主机机器的配置数据集,其包括用于LRE的配置数据。在一些实施例中,网络管理 器向主机机器提供用于从控制器提取用于LRE的配置数据的指令。
[0235] 对于一些实施例,图36示出了网络虚拟化基础设施3600,其中逻辑网络规范被转 换为用于主机机器中的LRE(是MPRE/桥)的配置。如所示出的,网络虚拟化基础设施3600包 括网络管理器3610、一个或多个控制器集群3620、以及通过物理网络互连的主机机器3630。 主机机器3630包括主机机器3631-3639,但是主机机器3635-3639没有在该图中示出。
[0236] 网络管理器3610提供了用于一个或多个用户创建的逻辑网络的规范。在一些实施 例中,网络管理器包括一套让用户指定可以通过网络虚拟化基础设施3600进行虚拟化的其 自己的逻辑网络的应用。在一些实施例中,网络管理器为用户提供了应用编程接口(API), 以在编程环境中指定逻辑网络。网络管理员又将这些创建的逻辑网络推送到控制器集群 3620以供在主机机器处实现。
[0237] 控制器集群3620包括用于控制在网络虚拟化基础设施3600中的主机机器3630的 操作的多个控制器。控制器基于由网络管理器创建的逻辑网络创建用于主机机器的配置数 据集。控制器还动态地向主机机器3631-3634提供配置更新和路由信息。在一些实施例中, 控制器被组织,以便提供分布式或弹性控制平面体系架构,来确保即使某个控制平面节点 失效时,每个主机机器仍然可以接收更新和路由。在一些实施例中,控制器中的至少一些控 制器是在主机机器中操作的虚拟机。
[0238] 主机机器3630操作LRE并且从控制器集群3620接收用于将LRE配置为MPRE/桥的配 置数据。每个主机机器包括用于从控制器集群3620检索配置数据的控制器代理。在一些实 施例中,每个主机机器根据VDR控制平面更新其MPRE转发表。在一些实施例中,VDR控制平面 通过利用诸如0SPF(开放最短路径优先)或BGP(边界网关协议)的标准路由交换协议与路由 节点通信,以通告/确定最佳路由。
[0239] 图36还示出了在网络虚拟化基础设施3600中发生的以便配置主机机器3630中的 LRE的操作。在操作"Γ中,网络管理器3610向主机机器传递用于提取用于LRE的配置的指 令。在一些实施例中,该指令包括指向控制器集群3620中的特定位置的地址。在操作"2"中, 网络管理器3610将逻辑网络规范发送到集群3620中的控制器,并且控制器生成用于各个主 机机器和LRE的配置数据。
[0240]在操作"3"中,在主机机器3630中操作的控制器代理基于在操作"2"处接收到的指 令从控制器集群3620发送对LRE配置的请求。即,控制器代理联系它们由网络管理器3610指 向的控制器。在操作"4"中,控制器集群3620响应于请求向主机机器提供LRE配置。
[0241] 图37概念性地示出了从网络管理器3610向在各个主机机器3631-3634中操作的 LRE交付配置数据。如所示出的,网络管理器3610根据用户的规定创建用于不同租户的逻辑 网络。网络管理器将创建的逻辑网络3710和3720的描述交付给控制器3620。控制器3620又 将逻辑网络描述3710和3720处理为用于分别交付给各个主机机器3631-3634的配置数据集 3731-3734。但是,在其它实施例中,网络管理器生成这些配置数据集,并且控制器只负责交 付给主机机器。这些配置数据集又被使用来配置不同逻辑网络的LRE,以操作为各个主机机 器中的MPRE。
[0242] 图38示出了被交付给各个主机机器的配置数据集的结构。该图示出了用于主机 3631-3639的配置数据集3731-3737。主机机器正在操作用于两个不同租户X和Y的两个LRE 3810和3820。主机机器3631、3632、3634和3637每个都被配置为操作(租户乂)的1^^3810的 MPRE,而主机机器3632、3633、3634和3635每个都被配置为操作(用于租户Y的)LRE 3820的 MPRE。值得注意的是,用于不同租户的不同逻辑网络的不同LRE可以驻留在同一主机机器 中,如以上通过参考图7所讨论的。在图38的例子中,主机机器3632正在操作用于租户X的 LRE 3810和用于租户Y的LRE 3820两者的MPRE。
[0243] 用于租户X的LRE 3810包括用于网络段A、B和C的LIF。用于租户Y的LRE 3820包括 用于网络段D、E和F的LIF。在一些实施例中,每个逻辑接口特定于逻辑网络,并且没有逻辑 接口可以出现在用于不同租户的不同LRE中。
[0244] 在一些实施例中,用于主机的配置数据包括其VMAC(这对所有主机是通用的)、其 唯一PMAC、以及在那个主机上运行的LRE的列表。例如,用于主机3633的配置数据将表明主 机3633正在操作用于LRE 3820的MPRE,而用于主机3634的配置数据将表明主机3634正在操 作用于LRE 3810和LRE 3820的MPRE。在一些实施例中,用于给定主机机器的租户X的MPRE和 用于租户Y的MPRE两者都可通过分配给该主机机器的相同的唯一 PMAC寻址。
[0245] 在一些实施例中,用于LRE的配置数据包括LIF的列表、路由/转发表、以及控制器 集群信息。在一些实施例中,控制器集群信息通知主机在哪里获得更新的控制和配置信息。 在一些实施例中,用于LRE的配置数据被复制用于跨不同主机机器的所有LRE的具体实例 (即,MPRE) 〇
[0246] 在一些实施例中,用于LIF的配置数据包括逻辑接口的名称(例如,UUID)、其IP地 址、其MAC地址(即LMAC或VMAC)、其MTU(最大传输单元)、其目的地信息(例如,与它接口的网 络段的VNI)、它在特定的主机上是活动的还是不活动的、以及它是桥LIF还是路由LIF。在一 些实施例中,用于逻辑接口的配置数据集还包括外部面对(external facing)参数,其指示 在主机上作为其MPRE运行的LRE是否是指定的实例以及是否需要为物理(例如,非虚拟,非_ VDR)主机执行地址解析。
[0247] 在一些实施例中,LRE通过在网络管理器中操作的API来配置或控制。例如,一些实 施例提供用于创建LRE、删除LRE、添加 LIF和删除LIF的API。在一些实施例中,控制器不仅提 供用于配置在主机机器中操作(为MPRE/桥)的LRE的静态配置数据,而且还提供用于运行为 MPRE的本地LRE具体实例的静态和/或动态路由信息。一些实施例提供用于更新LIF(例如, 来更新LIF的MTU/MAC/IP信息)的API,以及为给定的LRE添加或修改路由条目。在一些实施 例中的路由条目包括诸如目的地IP或子网掩码、下一跳信息、逻辑接口、度量、路由类型(邻 居条目或下一跳或接口等)、路由控制标志、以及动作(诸如转发、黑洞等)的信息。
[0248] 一些实施例动态地收集和交付用于操作为MPRE的LRE的路由信息。图39示出了用 于LRE的动态路由信息的收集和交付。如所示出的,网络虚拟化基础设施3600不仅包括控制 器集群3620和主机机器3630,而且它还包括操作用于收集和分布动态路由信息的虚拟机 ("边缘VM")的主机机器3640。在一些实施例中,边缘VM 3640执行0SPF或BGP协议并且表现 为用于另一个LAN或其它网络的外部路由器。在一些实施例中,边缘VM 3640从其它路由器 获知网络路由。在其自己的网络段验证获知的路由之后,边缘VM 3640将获知的路由发送到 控制器集群3620。控制器集群3620又把获知的路由传播到主机机器3630中的MPRE。
[0249] IV.电子系统
[0250] 许多上述特征和应用被实现为软件过程,该软件过程被指定为一组记录在计算机 可读存储介质(也被称为计算机可读介质)上的指令。当这些指令被一个或多个处理单元 (例如,一个或多个处理器、处理器内核、或其它处理单元)执行时,它们使得这(一个或多 个)处理单元执行在指令中所指示的动作。计算机可读介质的例子包括,但不限于,CD-ROM、 闪存驱动器、RAM芯片、硬盘驱动器、EPR0M,等等。计算机可读介质不包括无线传递或通过有 线连接传递的载波和电子信号。
[0251] 在本说明书中,术语"软件"是指包括驻留在只读存储器中的固件或者可以被读入 到存储器中以供处理器处理的存储在磁存储中的应用。此外,在一些实施例中,多个软件发 明可以被实现为更大程序的子部分,同时保持独特的软件发明。在一些实施例中,多个软件 发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任 意组合是在本发明的范围之内。在一些实施例中,当软件程序被安装,以在一个或多个电子 系统上操作时,该软件程序定义运行和执行该软件程序的操作的一个或多个特定的机器实 现。
[0252] 图40概念性地示出了本发明的一些实施例利用其来实现的电子系统4000。可以使 用电子系统4000来执行任何上述控制、虚拟化或操作系统应用。电子系统4000可以是计算 机(例如,台式计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机等)、电 话、PDA或任何其它种类的电子设备。这种电子系统包括用于各种其它类型的计算机可读介 质的各种类型的计算机可读介质和接口。电子系统4000包括总线4005、(一个或多个)处理 单元4010、系统存储器4025、只读存储器4030、永久存储设备4035、输入设备4040、以及输出 设备4045。
[0253] 总线4005统一地表示通信连接电子系统4000的众多内部设备的所有系统、外设和 芯片组总线。例如,总线4005将(一个或多个)处理单元4010与只读存储器4030、系统存储器 4025、永久存储设备4035通信地连接。
[0254]从这些各种存储器单元中,(一个或多个)处理单元4010检索要执行的指令和要处 理的数据,以便执行本发明的过程。(一个或多个)处理单元在不同实施例中可以是单个处 理器或多核心处理器。
[0255] 只读存储器(R0M)4030存储由(一个或多个)处理单元4010和电子系统的其它模块 所需要的静态数据和指令。另一方面,永久存储设备4035是读和写存储器设备。这个设备是 即使当电子系统4000关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例 使用大容量存储设备(诸如磁或光盘及其对应的盘驱动器)作为永久存储设备4035。
[0256] 其它实施例使用可移除存储设备(诸如软盘、闪存驱动器等)作为永久存储设备。 与永久存储设备4035-样,系统存储器4025是读和写存储器设备。但是,与存储设备4035不 同,系统存储器是易失性读和写存储器,例如随机存取存储器。系统存储器存储处理器在运 行时需要的一些指令和数据。在一些实施例中,本发明的过程被存储在系统存储器4025、永 久存储设备4035和/或只读存储器4030中。从这些各种存储器单元中,(一个或多个)处理单 元4010检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
[0257] 总线4005还连接到输入和输出设备4040和4045。输入设备使用户能够传递信息和 选择到电子系统的命令。输入设备4040包括字母数字键盘和定点设备(也称为"光标控制设 备")。输出设备4045显示由电子系统生成的图像。输出设备包括打印机和显示设备,诸如阴 极射线管(CRT)或液晶显示器(LCD)。一些实施例包括诸如用作输入和输出设备两者的触摸 屏的设备。
[0258] 最后,如在图40中所示,总线4005还通过网络适配器(未示出)将电子系统4000耦 合到网络4065。以这种方式,计算机可以是计算机的网络(诸如局域网("LAN")、广域网 ("WAN")、或内联网、或诸如互联网的网络的网络)的一部分。电子系统4000的任何或所有组 件可以与本发明结合使用。
[0259] -些实施例包括电子组件,诸如微处理器、在机器可读或计算机可读介质(可替代 地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令 的储存装置和存储器。这种计算机可读介质的一些例子包括RAM、R0M、只读压缩盘(CD-R0M)、可记录压缩盘(⑶-R)、可重写压缩盘(⑶-RW)、只读数字多功能盘(例如,DVD-ROM,双 层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW,等等)、闪存存储器 (例如,SD卡、小型SD卡、微型SD卡等)、磁和/或固态硬盘驱动器、只读和可记录Bill-Ray? 盘、超密度光盘、任何其它光或磁介质、以及软盘。计算机可读介质可以存储可由至少一个 处理单元执行的并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机 代码的例子包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件、或利用解释 器的微处理器执行的更高级别代码的文件。
[0260] 虽然以上讨论主要指执行软件的微处理器或多核处理器,但是一些实施例通过诸 如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的一个或多个集成电路来执行。在一些 实施例中,这种集成电路执行在该电路自身上存储的指令。
[0261 ]如在本说明书中所使用的,术语"计算机"、"服务器"、"处理器"、以及"存储器"都 是指电子或其它技术设备。这些术语不包括人或人群。为了本说明书的目的,术语显示或正 在显示意味着在电子设备上显示。如本说明书中所使用的,术语"计算机可读介质"、"多个 计算机可读介质"和"机器可读介质"被完全限制为以由计算机可读的形式存储信息的、有 形的、物理的对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂的信 号。
[0262]虽然本发明已经参考许多特定细节进行了描述,但是本领域普通技术人员将认识 到,在不脱离本发明的精神的情况下,本发明可以以其它特定形式体现。此外,多个图(包括 图11、14、15、22和35)概念性地示出了过程。这些过程的特定操作可能没有以与所示出和描 述的确切顺序来执行。特定操作可能没有以一个连续的操作系列执行,并且不同的特定操 作可能在不同的实施例中执行。此外,过程可以利用若干个子过程来实现,或者作为较大宏 过程的一部分来实现。因此,本领域普通技术人员将理解,本发明不受上述说明性细节的限 制,而是由所附权利要求来限定。
【主权项】
1. 一种系统,包括: 用于托管多个虚拟机的多个主机机器,每个主机机器包括: 受管理的物理交换元件(MPSE),其包括用于执行去向和来自运行在主机机器上的一组 虚拟机的分组的链路层转发的多个端口,每个端口与唯一媒体访问控制(MAC)地址相关联; 及 受管理的路由元件(MPRE),用于从与所述多个主机机器中的所有主机机器共用的虚拟 MAC(VMAC)地址相关联的MPSE的端口接收数据分组,并且执行网络层路由,以便将接收到的 数据分组从第一网络段的第一虚拟机转发到第二网络段的第二虚拟机;及 物理网络,用于互连所述多个主机机器。2. 如权利要求1所述的系统,其中网络段是IP(互联网协议)子网和封装覆盖网络中的 一个。3. 如权利要求1所述的系统,其中网络段中的至少一个是封装覆盖网络。4. 如权利要求1所述的系统,其中第一和第二网络段是具有不同网络标识符的不同封 装覆盖网络。5. 如权利要求1所述的系统,其中每个主机机器被分配有用于从其它主机机器寻址其 MPRE的唯一物理MAC (PMAC)地址,其中不同的主机机器被分配有不同的PMAC。6. 如权利要求5所述的系统,其中每个主机机器在来自物理网络的到来数据分组到达 MPSE之前,将到来数据分组中的PMAC地址转换为VMAC地址。7. 如权利要求5所述的系统,其中每个主机机器在去向物理网络的外出数据分组离开 MPSE之后,将在外出数据分组中的VMAC地址转换为PMAC地址。8. 一种系统,包括: 多个主机机器,用于托管逻辑网络中的多个虚拟机,每个主机机器操作受管理的物理 路由元件(MPRE),所述MPRE用于在处于逻辑网络的不同段中的虚拟机之间路由数据分组, 其中在逻辑网络中的每个虚拟机通过相同的通用链路层地址来寻址每个MPRE,其中每个主 机机器通过唯一链路层地址来寻址由另一个主机机器操作的每个MPRE;及 物理网络,用于互连所述多个主机机器。9. 如权利要求8所述的系统,其中网络段是IP(互联网协议)子网和封装覆盖网络中的 一个。10. 如权利要求8所述的系统,其中每个主机机器还操作受管理的物理交换元件 (MPSE),所述MPSE用于执行去向和来自所述多个虚拟机和在主机机器中操作的MPRE的分组 的链路层转发。11. 如权利要求10所述的系统,其中每个主机机器在来自物理网络的到来数据分组到 达MPSE之前,将在到来数据分组中的唯一链路层地址转换为通用链路层地址。12. 如权利要求10所述的系统,其中每个主机机器在去向物理网络的外出数据分组离 开MPSE之后,将在外出数据分组中的通用链路层地址转换为唯一链路层地址。13. -种用作逻辑网络中的主机机器的计算设备,所述计算设备执行包括指令集的计 算机程序,所述指令集用于: 执行在逻辑网络的多个不同段中的多个虚拟机; 操作用于在逻辑网络的不同段之间路由数据分组的受管理的物理路由元件(MPRE),所 述MPRE包括多个逻辑接口,每个逻辑接口用于从逻辑网络的不同段接收数据分组,其中逻 辑接口中的每个逻辑接口能通过网络层地址来寻址; 当目的地地址与逻辑接口中的一个逻辑接口的网络地址相匹配时,截取地址解析协议 (ARP)广播消息;及 制定对ARP广播消息的ARP应答。14. 如权利要求13所述的计算设备,其中ARP广播消息由在主机机器中操作的虚拟机发 送。15. 如权利要求13所述的计算设备,其中ARP广播消息包括广播媒体访问控制(MAC)地 址,所述方法还包括利用用于MPRE的虚拟MAC (VMAC)地址替换广播MAC地址。16. 如权利要求13所述的计算设备,其中ARP应答的源MAC地址被设置为用于MPRE的虚 拟MAC (VMAC)地址,其中VMAC对逻辑网络中的所有主机机器是共用的。17. 如权利要求13所述的计算设备,其中逻辑网络的段中的至少一个是覆盖封装网络。18. -种用作逻辑网络中的主机机器的计算设备,所述计算设备执行包括指令集的计 算机程序,所述指令集用于: 执行在逻辑网络的多个不同段中的多个虚拟机; 操作用于在逻辑网络的不同段之间路由数据分组的第一受管理的物理路由元件 (MPRE); 截取由在逻辑网络的另一个主机机器中操作的第二MPRE发送的地址解析协议(ARP)广 播消息;及 制定对ARP广播消息的ARP应答。19. 如权利要求18所述的计算设备,其中ARP广播消息包括唯一地识别其它主机机器的 第二MPRE的物理MAC (PMAC)地址。20. 如权利要求19所述的计算设备,其中制定ARP应答消息包括:将目的地地址设置为 唯一地识别发送ARP广播消息的其它主机机器的MPRE的PMAC。21. 如权利要求18所述的计算设备,其中ARP广播消息是第一ARP广播消息,所述方法还 包括当MPRE不能解析在第一 ARP广播消息中的网络层地址时,发送第二ARP广播消息到在主 机机器中操作的虚拟机。22. -种系统,包括: 多个主机机器,用于托管在逻辑网络中的多个虚拟机,每个主机机器操作受管理的物 理路由元件(MPRE),所述MPRE用于在处于逻辑网络的不同段中的虚拟机之间路由数据分 组;及 物理主机机器,其不托管逻辑网络中的虚拟机,其中在特定主机机器中的特定MPRE被 选择用于执行对从物理主机机器到由所述多个主机机器托管的虚拟机的数据分组的网络 层路由。23. 如权利要求22所述的系统,其中从物理主机机器到除所述特定主机机器之外的主 机机器的数据分组由所选的MPRE进行路由。24. 如权利要求23所述的系统,其中从其它主机机器到物理主机机器的数据分组不由 所选的MPRE进行路由。25. 如权利要求24所述的系统,其中不是所述特定主机机器的主机机器从所述特定主 机机器请求用于物理主机的地址解析信息。26. 如权利要求22所述的系统,其中从物理主机机器到所述多个主机机器的数据分组 使用与所选的路由器相关联的唯一物理媒体访问控制(PMAC)地址作为目的地地址。27. 如权利要求26所述的系统,其中在所述多个主机机器中的每个主机机器在路由之 前利用虚拟MAC (VMAC)地址替换所选的路由器的PMAC,其中VMAC对在所述多个主机机器中 的MPRE是通用的。28. 如权利要求26所述的系统,其中从每个主机机器到物理主机机器的数据分组使用 每个主机机器自己的唯一 PMAC地址作为源地址。29. -种系统,包括: 多个主机机器,用于托管逻辑网络中的多个虚拟机,每个主机机器操作受管理的物理 路由元件(MPRE),所述MPRE用于在处于逻辑网络的不同段中的虚拟机之间路由数据分组; 及 物理主机机器,其不托管逻辑网络中的虚拟机,其中在特定主机机器中的特定MPRE被 选择用于响应由物理主机机器发送的地址解析协议(ARP)消息。30. 如权利要求29所述的系统,其中从所选的MPRE对ARP消息的响应包括操作所选的 MPRE的主机机器的唯一物理媒体访问控制(PMAC)地址。31. 如权利要求30所述的系统,其中除操作所选的MPRE的所述特定主机机器之外的主 机机器不对ARP消息进行响应。32. 如权利要求29所述的系统,其中所述特定主机机器基于ARP消息存储关于物理主机 机器的地址解析信息,并且向其它主机机器提供关于物理主机机器的地址解析信息。
【专利摘要】本发明公开涉及逻辑路由器。一些实施例提供了包括用于托管若干个虚拟机的若干个主机机器和用于互连主机机器的物理网络的系统。每个主机机器包括受管理的物理交换元件(MPSE),其包括用于执行去向和来自一组在主机机器上运行的虚拟机的分组的链路层转发的若干个端口。每个端口与唯一的媒体访问控制(MAC)地址相关联。每个主机机器包括受管理的路由元件(MPRE),用于从MPSE的端口接收数据分组和执行网络层路由,以便将接收到的数据分组从第一网络段的第一虚拟机转发到第二网络段的第二虚拟机。
【IPC分类】H04L12/713
【公开号】CN105684363
【申请号】
【发明人】G·钱德拉谢卡, R·K·夏布拉玛尼亚, R·D·辛格, V·埃加瓦尔, H·王
【申请人】Nicira股份有限公司
【公开日】2016年6月15日
【申请日】2014年10月10日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1