在分布式以太网桥中利用链路聚合转发帧的方法和系统的制作方法

文档序号:7853037阅读:292来源:国知局
专利名称:在分布式以太网桥中利用链路聚合转发帧的方法和系统的制作方法
技术领域
本发明的实施方式涉及具有扩展的以太网桥的网络中的支持链路聚合I supporting link aggregationノ。
背景技术
在许多环境下,如数据中心(或服务器群),需要进行互连并管理大量的物理或虚拟服务器。存在与每个服务器的互连提供和策略管理相关的许多挑战,这些挑战会随着虚拟服务环境的增长而加剧。在虚拟化环境中,每个物理服务器实施ー个管理程序以管理多个虚拟服务器(或虚拟机,VM)0该管理程序可实施其自身的网络交換机,这样其组成VM之间可以彼此通信。然而,这造成了管理和性能的挑战。这种管理程序中的交换缺乏专用网络交换机的能力,且超出了数据中心网络的管理框架的范围。专用网络交换机(如以太网桥,交換机和路由器)通常以高性能硅实现,并且期望将这些交換机的益处扩展至VM间的流量管理。在这种环境下能够具有连接性的一个模式是通过使用“分布式交換机”或者“扩展的交換机”。如文中所使用的,分布式交換机也可被称为“分布式桥”或者“扩展桥”。这种模式包括控制桥实体(CB)和下属端ロ扩展器实体(PE)。CB实体包括用于交换以太网数据包(帧)的高性能硅,而PE实体提供分布式交換机的接入端ロ,该分布式交換机具备对去往或来自CB的数据包进行交換的有限能力。当数据包在PE端ロ处进入分布式交換机吋,PE在数据包上附上“端ロ标识符”标签(“端ロ标识符标签”)以助于在CB处识别和处理数据包。该端ロ标识符标签标示到分布式交換机的数据包的传入接ロ。PE可与多个CB相连,并且附在数据包上的端ロ标识符标签必须对数据包将要转发至的CB有意义,每个PE上行链路连接到唯一的CB,且因此CB可根据PE的上行链路接ロ而被识别。如果标识符的命名空间与PE的上行链路接ロ相关联,并因此关联到CB,则该端ロ标识符标签必须在该命名空间的范围内。为使能冗余,以太网链路聚合组(LAG)可被用于包括将PE连接至服务器/交換机、PE连接至PE、或PE连接至CB的任意链路的这种网络的任何地方。LAG使得多个以太网链路看起来像是具有用于将流量分配至LAG的单个成员链路的负载平衡技术的单个逻辑链路。如果存在LAG将分布式交換机的PE (或所谓的“接入PE”)的第一层与服务器/交換机互连,且如果通过LAG的成员链路发送的数据包通过CB的不同物理接ロ(且因此为不同命名空间)到达CB,那么在存在LAG时,基于端口标识符标签的数据包转发可能失败,这是因为标示单个LAG的端口标识符标签将被映射至不同的命名空间。因此,需要用于在包括LAG的分布式交换机的环境下转发数据包的方法和系统。

发明内容
实施方式涉及在链路聚合环境下转发数据包。一种用于通过扩展交换机转发数据包的方法,该扩展交换机包括直接或间接地分别通信耦合至控制桥的第一接口和第二接口的第一端口扩展器和第二端口扩展器,该方法包括将第一端口扩展器的第一端口扩展器接口与全局命名空间或接口专用命名空间相关联。该方法进一步包括通过第一端口扩展器接口接收数据包,利用与第一端口扩展器接口相关联的命名空间的指示来标记接收到的数据包,基于该指示在控制桥中处理已标记的数据包,将已处理的数据包发送出控制桥。一种用于转发数据包的系统,包括控制桥;直接或间接耦合至控制桥的第一接口的第一端口扩展器;直接或间接耦合至控制桥的第二接口的第二端口扩展器;接口配置 模块;数据包接收模块,被配置为通过第一端口扩展器接口接收数据包;数据包命名空间标记模块,被配置为利用与第一端口扩展器接口相关联的命名空间的指示来标记数据包;以及数据包处理模块,被配置为至少部分地基于该指示在控制桥中处理已标记的数据包。接口配置模块被配置为将第一端口扩展器的第一端口扩展器接口的命名空间配置与全局命名空间或接口专用命名空间相关联。一种存储指令的计算机可读存储介质,其中,所述指令在被处理器执行时适于通过扩展交换机执行数据包转发,其中,该扩展交换机包括直接或间接地分别通信耦合至控制桥的第一接口和第二接口的第一端口扩展器和第二端口扩展器。所述数据包转发利用包括以下步骤的方法执行将第一端口扩展器的第一端口扩展器接口与全局命名空间或者接口专用命名空间相关联,通过第一端口扩展器接口接收数据包,利用第一端口扩展器接口的命名空间配置的指示标记接收到的数据包,至少部分地基于该指示在控制桥中处理已标记的数据包,并且将已处理的数据包发送出控制桥。


将参考本公开的实施方式,其实例将在附图中示出。这些图旨在示例,而非限制。尽管在这些实施方式的背景下概括描述了本公开,但应理解,这不是为了将本公开的范围限制在这些特定实施方式中。图Ia示出了在扩展交换机中支持边缘链路聚合的系统。图Ib示出了通过扩展交换机转发的数据包。图2示出了扩展交换机的端口扩展器。图3示出了扩展交换机的控制桥。图4示出了在扩展交换机中支持边缘链路聚合的方法的流程图。图5示出了标记传入的数据包的方法的流程图。图6示出了在控制桥中处理数据包的方法的流程图。图7示出了判定在控制桥处要应用的处理的方法的流程图。图8示出了配置接口的方法的流程图。
具体实施例方式尽管此处參考用于特定应用的示例性实施方式描述了本公开,应理解,本发明并不限于此。获得本文教导的本领域技术人员将意识到其范围内的其他修改、应用、实施方式以及本发明将起到重要作用的其他领域。当前发展的被称为IEEE 802. IBR的标准定义了“端ロ扩展器”解决方案,以互联和管理非常大量的物理或虚拟服务器扩展交换机。本发明的实施方式可用干与IEEE802. IBR标准对应的扩展交换机。然而,“扩展交换机”或“分布式桥”,如文中所述,并不限于802. IBR标准,也可被包含于其他网络元素中。使用端ロ扩展技术的单个逻辑交换机(S卩,文中被称为扩展交换机或分布式交换机)包括控制交換机(文中也称为控制桥,CB)和一个或多个端ロ扩展器(PE)。如文中所使用的,术语“交换机”也可包括桥接功能。各PE直接或间接连接至CB上的ー个接ロ,并将多个接ロ有效添加至CB。例如,如果ー个CB接ロ之前只能连接至ー个终端站,通过将该接ロ耦合至具有四个连接至终端站的下行链路接ロ的PE,CB接ロ现在则可连接至4个终端站。 在虚拟环境中,扩展交換机的各物理接ロ可被用于连接至多个虚拟机終端站。虽然PE可被配置为执行多个转发功能,但大多数功能在CB处执行。由CB执行的功能可包括地址查找、学习和老化功能,VLAN功能,以及访问控制列表(ACL)处理。包括ー个CB和许多PE的扩展交換机的概念,提供了许多优点,例如可使PE设备得以简化,以及CB处的策略管理和集中控制。然而,CB中的许多处理根据数据包进入CB所通过的接ロ来确定。此接ロ特定处理(interface-specific processing)基于一个假设,即终端站的连接可被看作以CB的接ロ为根的“树”。然而,在许多环境中,包括其中虚拟化服务器通过LAG或其他聚合链路连接到扩展交換机的环境,以上对终端站可达性的假设无法成立。例如,由于LAG的单个链路可被耦合至不同的PE,ー个终端站或虚拟机可通过CB的两个不同接ロ(或更具体地,经由耦合至两个不同接ロ的PE)到达。从CB到终端站有多个路径可用,这会干扰CB处的接ロ特定处理。本发明的实施方式提供了方法、系统和计算机程序产品,以使数据包在连接到扩展交换机时存在多个路径的环境下(例如正在使用链路聚合吋)得以转发。在实施方式中,全局命名空间与连接至LAG的PE接ロ相关联,且通过这些PE接ロ进入扩展交换机的数据包被识别,使得它们可以通过扩展交換机被适当的处理(例如,用于学习和转发)。根据本发明的实施方式,图Ia示出了使用扩展交换机转发数据包的系统100。系统100包括将服务器102与层2的云(L2云)108互连的扩展交换机104。L2云108包括从扩展交換机104可达的终端站和/或中间平台(如,路由器、交換机、桥等)的网络。例如,L2云108可包括数据中心中的局域网(LAN)。扩展交换机104与L2云108之间的通信耦合107可基于有线或无线网络技木。根据ー个实施方式,通信链路107包括以太网链路。服务器102可包括通信耦合至扩展交換机104的ー个或多个虚拟服务器。根据所示实施方式,服务器102包括虚拟机(VM) VMl 137、VM2 138、VM3 139和VM4 140。服务器102和各个VM 137 140与扩展交换机104通信耦合。各VM 137 140均实施逻辑服务器,且具有发送和接收数据包的能力。各VM 137 140均实施可被分配媒体访问控制(MAC)地址的虚拟网络接ロ卡(vNIC,未示出)。其他标识符,例如,但不限干,虚拟LAN (VLAN)标识符也可被分配至vNIC。各VM通过其各自的vNIC发送和接收数据包。vNIC被映射至服务器102的物理接ロ。VM 137 140可通过ー个或多个交换层耦合至扩展交换机104。例如,在所示实施方式中,VMl 137和VM2138被耦合至虚拟以太网桥(VEB) 134,且VM3139和VM4140被耦合至虚拟以太网端ロ聚合器(VEPA)136。VEB 134和VEPA 136提供或帮助VM的桥接,如下所述。采用VEB和/或VEPA为VM实现桥接的服务器,如所示服务器102,也可被称为具备边缘虚拟桥接(EVB)功能的服务器。EVB例如在IEEE 802. IQbg中被描述,其全部内容并入本文作为參考。VEB 134可具有支持多个VM 137 138之间的数据包的本地桥接并且还支持VM137 138使用诸如交换机104的外部交换平台的功能。VEB 134可被配置为在VMl和VM2之间直接转发数据包,而无需通过外部交換平台。VEPA 136使VM3 139和VM4 140之间能够经由诸如交换机104的外部交换平台进行通信。VEPA 136发送来自与其连接的VM的所有流量至上行链路交换机。VEB 134和 VEPA 136可被实施为虚拟服务器102的管理程序(未示出)的一部分。VEB 134和VEPA 136通过S组件132耦合至扩展交换机104。S组件132具有对来自/去往VEB 134和VEPA 136的流量进行复用/解复用的功能。例如,S组件132使VEB 134和VEPA 136共享ー个聚合链路106,并通过该链路与上行链路扩展交换机104通信。根据ー个实施方式,S组件132在将数据包转发至扩展交換机104之前,对数据包添加了 VLAN标签(被称为服务VLAN标签)。VLAN标签标示该数据包是来自VEB 134还是VEPA136。在一个实施方式中,S组件132和扩展交换机104都可根据IEEE 802. Iad协议支持并处理服务VLAN标签。除上述以外的协议也可由S组件132和扩展交換机104实施以在VM 137 140和交换机104之间交换数据包。聚合链路106可包括两个以上链路(如124和126)。这些链路将服务器102的物理接ロ耦合至扩展交换机104的物理接ロ。服务器102的物理接ロ 131和133可被分别耦合至扩展交换物理接ロ 129和130。服务器102可配置接ロ 131和133作为LAG的接ロ。聚合链路106可在服务器102处根据标准化聚合协议如IEEE以太网链路聚合(IEEE 802. 3ad)或其他聚合协议来实施。S组件132可确定聚合链路106的链路124和126中的哪个被用于从VM Γ4中的任一个向扩展交换机104发送数据包。当S组件132确定应使用哪个链路将数据包发送至扩展交換机104时,可考虑使用诸如但不限于平衡链路124和126上的负载的标准。根据所示实施方式,扩展交换机104包括CB 112和PE 114和116。PE 114上的接ロ 121通过链路119与CB 112上的接ロ 117相连。PE 116上的接ロ 122通过链路120与CB 112上的接ロ 118相连。如上所述,PE 114和116允许与CB 112的各个接ロ相连的接ロ的数量增长。在图I所示实施方式中,聚合链路106的链路124与PE 114的接ロ 129相连,而聚合链路106的链路126与PE 116的接ロ 130相连。在一些实施方式中,PE 114和116可分别通过一个或多个其他PE直接耦合至CB 112。如上所述,CB112可被配置为执行对来自/去往VM 137 140的流量的大多数转发和其他处理功能。PE 114和116可被配置为在VM 137 140和CB 112之间转发数据包。由于LAG 106的链路124和126连接至不同PE,因此可通过CB112的多于ー个的接ロ到达VM 137 140。
图Ib示出了数据包150的格式,该数据包通过根据实施方式的扩展交换机104转发。数据包150包括用户数据151和数据包报头152。标签154 (也被称为“E标签”)在处被插入数据包150,数据包通过PE 114进入扩展交换机104。E标签154在数据包150进入扩展交换机104之前被从数据包移除。E标签154包括字段158和156以分别标示数据包的目的地和源。E标签154可选地包括命名空间指示符字段160和161,以包括分别与数据包的源PE接口和目的地PE接口相关联的命名空间的指示。源字段156和目的地字段158基于数据包150是进入(B卩,正从PE 114去往CB 112)还是退出(B卩,正从CB 112去往PE114或115以退出扩展交换机104)扩展交换机104而设定。当数据包150正在进入,源字段156被设定为标示数据包通过其进入扩展交换机104的那个PE 114的接口。在本例中,PE 114为数据包的源PE接口。E标签154的字段值将在下面进一步描述。图2示出了根据本公开的实施方式的PE 200。PE 200可代表PE 114和/或PE116的实现方式。PE 200包括处理器202、上行链路接口 204、一个或多个下行链路接口206a C、内存208、持久存储器210以及通信基础设施212。处理器202可包括一个或多个市面有售的微处理器或其他处理器,诸如数字信号 处理器(DSP)、专用集成电路(ASIC)、或者现场可编程门阵列(FPGA)。处理器202执行逻辑指令,以实现PE 200的一个或多个组件的功能或者控制该组件的操作。上行链路接口 104和下行链路接口 206a c进行操作,以将PE 200分别连接至诸如CB 112或其他PE的下行链路装置以及诸如服务器102的下行链路装置。根据一实施方式,上行链路接口 204和下行链路接口 206a c包括以太网接口。内存208包括诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等的一类内存。内存208可用于存储实现PE 200的一个或多个组件的功能的逻辑指令。在实施方式中,内存208也可用于保持配置信息、保持缓冲区(诸如对应于每个物理接口 204和206a c的队列)、以及保持PE 200的操作中的各种数据结构。在各种实施方式中,持久存储器210可包括计算机可读的持久数据存储介质,如磁盘、光盘、闪存等。这种计算机可读存储介质可用于存储实现PE 200的一个或多个组件的软件程序和/或逻辑指令。通信基础设施212可包括通信地耦合PE 200的各种模块的一个或多个互连的总线结构或其他内部互连结构。配置模块214具有配置PE 200的功能。例如,配置模块214进行操作,以配置上行链路接口 204连接至CB 112,和/或配置其中一个下行链路接口通过链路124或126连接至服务器102。PE 200的配置可由CB 112执行。配置模块214也可进行操作以存储配置,并在启动时根据所存储的配置或从CB 112收到的配置来重新配置PE 200。配置214可包括命名空间配置参数215,对于每个下行链路接口 206a c,该参数可被配置为代表该接口是与全局命名空间相关联还是与接口专用命名空间相关联。在某些实施方式中,PE转发表216可包括转发条目217,以指定下行链路206a c中的哪个可被用于到达VM 137 140中的各自一个。根据某些实施方式,转发逻辑模块220进行操作,以确定进入PE的数据包将通过哪个接口被转发。PE 200的数据包接收/发送模块218进行操作,以接收和发送数据包。PE标签模块222进行操作,以将E标签附至进入PE 200的数据包。根据一个实施方式,数据包150附有E标签154,以指示数据包是通过PE114或115的哪个接ロ进入扩展交换机104,以及可被用于在扩展交换机104内转发数据包的其他信息。根据ー个实施方式,由于E标签在扩展交換机内部使用,因此PE标签模块222还进行操作以在数据包退出扩展交換机之前移除E标签。在来自外部(例如,从服务器102)的数据包进入扩展交換机104所通过的PE (如PE 114)处,E标签的源字段156被设定为数据包进入扩展交换机时所通过的接ロ的标识符。例如,当来自VMl 137的数据包150通过接ロ 129进入扩展交换机104吋,E标签在PE114处被插入数据包,且E标签的源字段156被设置为代表接ロ 129 (或者,在某些实施方式中,接ロ 129处对应于VMl 137的虚拟接ロ(未示出))。根据ー个实施方式,CB 112的耦合至PE的各接ロ被分配了唯一的地址范围。PE的各接ロ被分配了一个或多个地址(例如,连续地址的子集),该地址来自其连接的CB 112上的接ロ的地址范围。例如,接ロ PE 114的接ロ 129被分配来自分配给接ロ 117的地址范围的地址的子集。类似地,PE 116的接ロ 130被分配来自分配给接ロ 118的地址范围的地址的子集。此外,考虑图Ia中所示的多个VM 137 140,在接ロ 129处配置多个子接ロ用于能 够发送数据包至第一 PE 114的各VM。接ロ 129的各子接ロ可被分配来自分配给接ロ 129的地址的子集的地址。PE 116的接ロ 130可采用类似方式配置。根据ー个实施方式,分配给CB 112的接ロ的地址范围可被分为两个非重叠范围接ロ专用地址范围和全局地址范围。来自前者的地址用于指示接ロ专用命名空间,来自后者的地址用于指示全局命名空间。根据另ー实施方式,用于接ロ专用命名空间和用于全局命名空间的单独地址范围可被分配给CB 112的各下行链路接ロ。PE标记模块224进行操作,以利用命名空间的指示(indication)标记进入的数据包,该指示与数据包的源PE接ロ相关联。与源PE接ロ相关联的命名空间表示一上下文(context),在该上下文中,E标签的地址(如字段值)在扩展交換机104进行处理期间将被解释。根据ー个实施方式,如果标记为源字段156与接ロ专用命名空间相关联,那么E标签中的数据包地址在数据包进入CB时通过的接ロ专用的上下文中被解释。例如,如图Ia所示的实施方式中,通过PE 114进入的数据包将通过接ロ 117进入CB 112,且如果源字段156与接ロ专用命名空间相关联,那么E标签中的地址将被在专用于接ロ 117的上下文中被解释。如果源字段156被标记为与全局命名空间相关联,那么E标签中的地址将被全局释义,即,在不考虑任何接ロ专用上下文的情况下解释数据包。在PE处标记数据包可通过基于所使用的命名空间从全局地址范围或接ロ专用地址范围中选择用于E标签字段的地址来执行。根据另ー实施方式,标记通过在数据包150的E标签154中的可选的命名空间字段160中插入预定的值来执行。例如,PE 114、116和CB 112之间的协议可被配置为包括具有字段160和161的E标签154,字段160和161用于指示与源字段相关联的命名空间。根据另ー实施方式,ー个或多个指示数据包的命名空间的字段可从E标签中分离出来。PE和CB被配置为可识别数据包中字段的位置,该位置对应于数据包的源命名空间,且PE和CB被配置为可解释字段中的值来确定所使用的命名空间。图3示出了根据本公开实施方式的CB 300ο CB 300可代表根据实施方式的CB 112的实现方式。CB 300包括处理器302、上行链路接口 304、一个或多个下行链路接口 306a C、内存308、持久存储器310以及通信基础设施312。处理器302可包括一个或多个市面有售的微处理器或其他处理器,诸如数字信号处理器(DSP)、专用集成电路(ASIC)或者现场可编程门阵列(FPGA)。处理器302执行逻辑指令,以实现CB 300的一个或多个组件的功能或者控制该组件的操作。上行链路接口 304和下行链路接口 306a c进行操作,以将CB分别连接至诸如L2云108的L2网络以及诸如PE或终端站的下行链路设备。根据该实施方式,上行链路接口304和下行链路接口 306a c包括以太网接口。内存308包括诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等的一类内存。内存308可用于存储实现CB 300的一个或多个组件的功能的逻辑指令。在实施方式中,内存308也可用于保持配置信息、保持缓冲区(诸如对应于每个物理接口 304和306a c的队列)、以及保持CB 300的操作中的各种数据结构。 在各种实施方式中,持久存储器310可包括计算机可读持久数据存储介质,如磁盘、光盘、闪存等。这种计算机可读存储介质可用于存储实现CB 300的一个或多个组件的软件程序和/或逻辑指令。通信基础设施312可包括通信地耦合CB 300的各种模块的一个或多个互连的总线结构或其他内部互连结构。CB 300的配置模块314进行操作,以配置CB 300以及直接或间接连接至CB 300的任意PE。例如,配置模块314可进行操作以配置上行链路接口 304连接至L2云,且配置下行链路接口中的两个分别连接至PE 114和116。配置模块314也可存储配置,并根据所存储的配置在启动时配置CB 300以及所连接的PE。CB 300中存储和/或其他方式可用的配置可包括命名空间配置332。根据一个实施方式,CB的各接口包括其自身缺省命名空间和全局命名空间。各命名空间可由唯一的地址范围标示。这些地址可自动生成或人工分配。各命名空间也可包括什么接口被分配给该命名空间的规范(例如,由配置确定)。例如,全局命名空间可被定义为包括PE 114的接口129 和 PE116 的接口 130。在某些实施方式中,CB转发表316可包括转发条目,例如用于确定通过其下行链路接口 306a c可到达哪些目的地,以及上行链路接口 304将发送至哪些目的地。转发逻辑模块326进行操作,以确定正在发出的数据包通过哪个CB接口被发送,以及数据包通过哪个(哪些)PE接口被最终发送出扩展交换机104。CB 300的数据包接收/发送模块318进行操作,以接收和发送数据包。CB标签处理模块322进行操作,以处理传入的数据包的E标签,并配置从CB传出的数据包的E标签。根据一个实施方式,CB标签处理模块322处理在数据包150进入扩展交换机104时通过的PE (如114或116)处附至数据包的E标签154。在CB 112处对E标签154的处理包括确定数据包通过哪个接口(如117或118)进入CB 112。一旦完成数据包的其他处理,诸如数据包报头处理,传入的E标签被替换为新的E标签,或在数据包从CB发往其目的地之前修改该传入的E标签。传出的数据包150的目的地字段158根据转发查找中所识别的目的地来设定。例如,E标签目的地字段158可被设定为数据包被发出扩展交换机104去往其目的地所通过的PE 116上的接口的地址。添加的目的地字段应使用字段161被正确地识别为属于接ロ专用命名空间或全局命名空间。命名空间模块324进行操作,以确定与数据包相关联的命名空间。例如,命名空间423可确定从PE 114或116进入CB 112的数据包150是否应基于接ロ专用命名空间或基于全局命名空间来处理。数据包命名空间的确定可基于确定该数据包是否包含其源命名空间的指示,例如,在数据包的E标签中。根据ー个实施方式,如果该数据包不包含其源命名空间的指示,那么其命名空间与其进入CB时通过的接ロ的接ロ专用命名空间相关联。学习模块328进行操作以自动学习终端站的可达性。根据ー个实施方式,终端站的可达性可由CB 112基于通过CB 112转发的数据包来学习。例如,CB 112可确定数据包150的源通过PE接ロ可达,此PE接ロ为该数据包进入扩展交换机所通过的PE接ロ。当数据包的源可通过多个PE接ロ到达时,如当LAG 106的单个链路124和126被耦合至扩展交换机104的不同PE时,那么可经由CB 112的多个接ロ到达源 VM1137 VM4140中的任ー个。当存在多于ー个可选路径时,可使用负载平衡技术选择到达节点的优选路径。根据ー个实施方式,节点可达性的学习在各自的命名空间的上下文中执行。例如,如果包150被标记为指示全局命名空间,那么该数据包的源可能经由多个CB 112接ロ可到达。访问控制列表(ACL)模块330进行操作,以执行数据包在进行转发处理前和/或后的过滤。根据ー个实施方式,ACL处理可在各自的命名空间的上下文中执行。例如,ACL条目可基于数据包进入CB时所通过的CB接ロ或数据包发出CB时所通过的接ロ来查找。图4示出了根据本公开实施方式的用于转发数据包的方法400 (步骤402 416)的流程图。方法400可在例如图I所示的系统100中实施。在步骤402中,通过耦合两个或更多端ロ扩展器至ー个CB来配置一个扩展交換机。例如,CB 112可被配置为耦合至PE 114和PE 116,以构成扩展交换机104。扩展交换机104可被耦合至如图I所示的服务器102和L2云108。在步骤404中,扩展交换机的PE的ー个或多个接ロ与全局命名空间相关联。例如,扩展交换机104的PE 114的接ロ 129和PE 116的接ロ 130被配置为与全局命名空间相关联。选择接ロ 129和130配置为与全局命名空间相关联,是因为它们分别经由链路124和126耦合至服务器102,链路124和126属于同一 LAG 106。使用接ロ专用命名空间的扩展交换机中的数据包处理,包括源修剪(sourcepruning)和发夹(hair pining),是基于节点可达性采用以CB的接ロ为根的树的形式的假设。然而,当诸如LAG 106的LAG被配置吋,这种节点可达性采用以CB的接ロ为根的各个树的形式的假设是错误的。例如,单个的链路被耦合至扩展交換机的不同PE的这种LAG 106可导致可经由扩展交换机的CB的多个接ロ到达节点(如VMl 137 VM4 140)。在步骤406中,要被转发的数据包在扩展交换机处从终端站接收。例如,数据包可在扩展交換机104的PE 114处从服务器102接收。该数据包可具有源和目的地,分别为VMl 137 和 VM4 140。在步骤408中,诸如E标签154的E标签被附至数据包。如上所述,E标签在扩展交換机内使用。E标签包括源字段156和目的地字段158。传入的数据包的源字段156被设定为标示数据包进入扩展交換机所通过的接ロ。在步骤410中,数据包被标记为指示其通过已被配置为与全局命名空间相关联的接ロ进入了扩展交換机。根据ー个实施方式,E标签的命名空间字段被用于数据包的源字段的命名空间的指示。如果源PE接口与全局命名空间相关联,则E标签中的命名空间字段例如可被设定为“I”。否则,命名空间字段可保持为其初始值“O”。然后,已标记的数据包被发送至扩展交换机的CB。在步骤412中,已标记的数据包基于数据包中指示的全局命名空间在CB中被处理,以确定数据包从扩展交换机所转发至的下一跳。对已标记数据包的基于全局命名空间的处理获得了数据包将要从扩展交换机转发至的下一跳。该处理也使得确定了数据包被设定为从扩展交换机的哪个接口发出。从CB到数据包发出扩展交换机所通过的接口的路径可包括一个或多个PE。在步骤414中,利用将要通过一个或多个PE被转发出扩展交换机的数据包的所需信息来更新E标签。E标签的更新根据转发要求来不同地执行。如果数据包要被转发出CB的上行链路接口(例如,在CB 112中的链路107上发 出),则E标签被移除,且数据包被转发至L2云。如果数据包要在CB的下行链路接口上被转发,则数据包的E标签被适当地更新,如下所述,以从CB通过一个或多个PE转发。基于数据包的传入和传出命名空间相同还是不同,E标签将被不同地更新。如上所述,数据包的传入命名空间可基于传入的E标签目的地字段中使用的地址或基于数据包的命名空间指示字段来确定。传出命名空间基于目的地和转发查找来确定。传出的数据包的命名空间基于数据包出扩展交换机104所通过的PE接口(S卩,该PE接口是否被配置为全局接口)以及传出的数据包出CB所通过的接口。若数据包的传入和传出命名空间不同,则E标签的源字段被更新为数值0,且E标签的目的地字段根据目的地更新。例如,如果数据包从VMl 137经由PE 114和CB接口 117到达CB 112,则其将与全局命名空间相关联,因为PE 114处的接口 129是LAG的一部分。根据CB 112处的转发查找,如果该数据包通过CB接口 118被发送至PE 116,经由PE接口141发送至另一服务器142上的目的地VM5 143,则E标签的源字段被设定为0,且E标签的目的地字段被设定为与接口 141相关联的值。如果数据包的传入和传出命名空间相同,则E标签的源字段保持不变。传出的E标签的目的地字段根据目的地更新。例如,如果来自VMl 137的数据包通过PE 114和CB接口 117到达,则其将与全局命名空间相关联,因为PE 114处的接口 129是LAG的一部分。根据CB 112处的转发查找,如果该数据包将要通过接口 117被发送回PE 114去往VM4 140,则传出的E标签的目的地字段在接口 129处被设定为代表VM4 140的值。如果数据包为组播数据包,则其必须被转发至组播组的所有接收器。扩展桥必须适当地复制数据包以确保各接收器得到一个且仅一个拷贝。E标签的目的地字段标示用于组播数据包的组播分发树,并非一个专用目的地接口。当没有LAG时,组播分发可被视为以CB为根的树。可直接在CB处或树中的各种中间节点(PE)处复制数据包。各CB和PE将目的地组播树ID映射至目的地接口的列表。将E标签中的源字段与目的地接口进行比较使得CB或PE可修剪掉源,并确保该源不会收到其自身的数据包拷贝。然而,当LAG存在于从CB到终端主机的路径中时,通过扩展交换机有多个路径可到达目的地。如果扩展交换机的每个节点基于将组播树ID匹配至目的地接口的列表来简单地转发数据包,则接收器(如VM4)将收到同一个数据包的多个拷贝。因此,扩展交换机必须实施适当的过滤方案来确保每个接收器只获得一个数据包拷贝。一种这样的方法是基于流来实施过滤。每个节点为数据包计算散列(hash)。如果目的地接ロ被标记为LAG的成员,则只有那些散列与掩码(mask)匹配的流才允许通过。这些掩码在不同节点处以互斥方式配置,以确保仅ー个数据包拷贝去往目的地。例如,在图I中,考虑来源于VMl的组播数据包。CB 112将复制该数据包到接ロ 117和118,使拷贝分别到达PE 114和116。因为接ロ 129和130为LAG的一部分,因此PE 114和116现在必须被配置为以互斥方式工作。一些流将被PE 114过滤,其他则被PE116过滤,以确保仅ー个拷贝到达各目的地。为确保正确的修剪,可将LAG的路径连接至CB的接ロ必须使用全局命名空间。例如,PE接ロ 129和130必须使用全局命名空间。PE 116的PE接ロ 141可使用接ロ专用命名空间,因为其未将LAG连接至CB。在步骤416中,传出的数据包被发送出CB。例如,该数据包可被发送出CB 112接ロ 118去往PE 116,从而传出扩展交换机104到PE接ロ 130之外。如上所述,在某些实施方式中,在CB接ロ 118和PE 116之间可存在数据包传出扩展交换机确定通过的一个或多个PE。基于数据包被传出扩展交换机所通过的PE 116处的接ロ(如,PE接ロ 130)的E标 签(如在CB中更新的标签),数据包通过ー个或多个PE发送。在PE 116处,E标签被移除,且数据包通过接ロ 130被转发至服务器102。在传出的数据包离开扩展交换机所通过的PE中,修剪技术可被实施以确保数据包不被转发回同一个终端主机。例如,修剪逻辑可在PE 114中实施以确保源于从VMl 137接收的数据包的组播数据包不被发送回VMl 137。图5示出了根据实施方式的方法500 (步骤502 508)的流程图,该方法用于标记数据包以指示相关联的命名空间。方法500可用于执行上述步骤410。方法500可在数据包通过PE进入扩展交换机时执行。例如,当数据包通过接ロ129进入时,方法500可在PE 114中被初始化。在步骤502中,数据包进入PE时通过的接ロ被确定。在许多实施方式中,数据包接收模块,诸如数据包发送/接收模块218,接收进入PE的传入数据包。该数据包接收逻辑可使得关于数据包进入PE所通过的接ロ的信息可用。例如,数据包发送/接收模块218可提供指向对应于数据包传入接ロ(诸如PE 114的接ロ 129)的数据结构的指针。在步骤504中,确定了要与数据包的源PE接ロ相关联的命名空间。要与数据包相关联的命名空间可基于传入接ロ(即,数据包进入扩展交換机所通过的接ロ)来确定。例如,配置设置可对于各PE接ロ(诸如PE接ロ 129)可用,该配置设置指定接ロ是否与全局命名空间相关联。如果没有提供具体配置,则该数据包可与接ロ专用命名空间相关联。如果指定接ロ与全局命名空间相关联的配置条目可用,则数据包的源PE接ロ与全局命名空间相关联。在步骤506中,E标签被插入数据包以在扩展交換机中使用。E标签的插入可根据有关步骤408的上述内容执行。在步骤508中,数据包被标记上与数据包进入扩展交换机时所通过的PE接ロ相关联的命名空间。例如,如果PE 114的接ロ 129是数据包进入扩展交换机104所通过的接ロ,且接ロ 129已被配置为与全局命名空间相关联,则E标签中的命名空间字段的值被设定为指示数据包的源PE与全局命名空间相关联。根据ー个实施方式,E标签中的I比特宽的字段被更新为指示命名空间。在其他实施方式中,该命名空间字段可位于数据包报头部分的别处,并可以是任意宽度,假设PE和CB被配置为识别这样的字段。在另ー个实施方式中,如上所述,经由E标签的源字段和/或目的地字段中的地址,源PE接口的命名空间关联被传达。上述有关步骤410中进一步描述了标记。基于源是与接口专用命名空间还是与全局命名空间相关联,CB中数据包的处理可不同。图6示出了根据实施方式的用于在CB中处理数据包的方法600(步骤602飞08)。方法600可用于执行上述步骤412。在步骤602中,数据包可用于学习源的可达性。基于数据包的源地址和/或基于E标签的源字段和E标签的目的地字段,CB可学习到由E标签的源字段指示的源和/或接口通过数据包进入CB所通过的接口是可达的。学习到的可达性信息可被纳入ACL和转发表。如果源字段被指示为与接口专用命名空间相关联,则学习到的节点的可达性信息可被验证以确保该节点只能通过CB接口中的一个可达。学习在图3所示的上述有关学习模块328中描述。在步骤604中,ACL处理可被执行。可在转发处理前的任意阶段在传入的数据包上执行ACL处理。ACL处理也可在转发处理发生后在传出的数据包上执行。ACL处理可用 于实施策略。根据一个实施方式,ACL规则可被分别配置用于全局命名空间和接口专用命名空间。以上关于图3所示的ACL模块330描述了 ACL处理。在步骤606中,转发处理可被执行。转发处理确定数据包的下一跳,还确定数据包应通过哪个PE接口离开扩展交换机。在步骤608中,在数据包被发送出CB前,新的E标签被附上或者传入的E标签被修改。如果转发处理指示该数据包被发送出上行链路接口(如,去往L2云108),则E标签在数据包被发送出该接口前被移除。如果该数据包将通过PE被转发,则E标签将基于转发查找来更新。以上关于上述步骤414和步骤506描述了传出的数据包的标签。图7示出了根据本公开实施方式的用于处理数据包的方法700 (步骤702 708)。方法700可用于执行上述步骤412。具体地,方法700可用于确定与CB处数据包的源相关联的命名空间,并进行初始化处理,诸如关于以上方法600描述的处理。在步骤702中,数据包进入CB所通过的接口被确定。数据包进入CB所通过的接口可基于传入数据包的E标签的目的地字段来确定。在步骤704中,确定了源是与全局命名空间还是与接口专用命名空间相关联。对相关联的命名空间的确定可基于传入数据包的可选的命名空间字段。在另一个实施方式中,如上所述,命名空间的确定可基于E标签的目的地字段的值。若确定了数据包的源PE接口与接口专用命名空间相关联,则在步骤706中,基于接口专用命名空间来处理数据包。否则(即,如果数据包的源PE接口与全局命名空间相关联),在步骤708中,根据全局命名空间来处理数据包。图8示出了根据实施方式的用于将PE接口与全局命名空间相关联的方法800 (步骤802 804)的流程图。例如,方法800可用于执行上述步骤404。在步骤802中,属于聚合组的PE接口被识别。根据一个实施方式,直接连接至外部装置且具有作为LAG的一部分的链路的PE接口被识别。该LAG通常为外部装置处的配置。在步骤804中,在步骤802中识别出的两个或更多接口被配置为与全局命名空间相关联。该配置可通过在与各接口相关联的配置参数中设定一个值来执行。根据一个实施方式,如果接ロ未被特别配置为与全局命名空间相关联,则其可被默认为与接ロ专用命名空间相关联。以上借助于示出了本公开的具体功能及其关系的实现方式的功能模块描述了本公开。为了方便描述,这些功能模块的界限在文中被任意定义。可定义其他可选界限,只要能适当地执行具体功能及其关系即可。对具体实施方式
的前述描述将充分地掲示本公开的主要性质,使得他人通过应用本领域中的知识,无需过度实验,即能够针对各种应用容易地修改和/或调整这样的具体实施方式
,而不脱离本公开的主要思想。因此,基于本文中呈现的教导和引导,这样的调整 和修改包括在本公开实施方式的涵义和等同范围内。要理解的是,文中的用语和术语是以描述而不是限制为目的,从而本说明书中的术语或用语可由熟练的业内人士结合教导和引导来解释。
权利要求
1.一种用于通过分布式交换机转发数据包的方法,该分布式交换机包括分别直接或间接通信耦合至控制桥的第一接口和第二接口的第一端口扩展器和第二端口扩展器,该方法包括 将所述第一端口扩展器的第一端口扩展器接口与全局命名空间或者接口专用命名空间相关联; 通过所述第一端口扩展器接口接收数据包; 利用与所述第一端口扩展器接口相关联的命名空间的指示标记接收到的数据包; 至少部分地基于所述指示,在所述控制桥中处理已标记的数据包;以及 将已处理的数据包发送出所述控制桥。
2.根据权利要求I所述的方法,其中,所述处理包括 在数据包中指示用于数据包离开所述分布式交换机的传出端口扩展器接口 ;以及 在数据包中指示与所述传出端口扩展器接口相关联的命名空间。
3.根据权利要求I所述的方法,其中,所述关联包括将所述第一端口扩展器接口和所述第二端口扩展器的第二端口扩展器接口的命名空间配置设定为全局命名空间,其中,所述第一端口扩展器接口和所述第二端口扩展器接口通信耦合至所述控制桥与至少一个边缘服务器之间的链路聚合组(LAG)的各自接口。
4.根据权利要求I所述的方法,其中,所述标记包括 检测数据包通过所述第一端口扩展器接口进入所述第一端口扩展器; 基于与所述第一端口扩展器接口相关联的命名空间,确定用于检测到的数据包的命名空间指示;以及 利用所确定的命名空间指示标记数据包。
5.根据权利要求4所述的方法,其中,确定命名空间指示包括在全局命名空间和接口专用命名空间之间进行选择。
6.根据权利要求I所述的方法,其中,所述处理包括 基于所述指示,在接口专用命名空间和全局命名空间之间进行选择;以及查找所述控制桥中的转发表以获得目的地地址,其中,所述目的地地址在数据包中被指定。
7.根据权利要求6所述的方法,其中,查找所述转发表包括 检测所述转发表中与所述目的地地址匹配的多个转发条目;以及 基于所述指示,选择所述转发条目中的一个。
8.根据权利要求I所述的方法,进一步包括 在所述第一端口扩展器处将本地报头附至接收到的数据包,其中,所述本地报头包括源字段和目的地字段;以及 利用用于数据包的源的第一标识符配置所述源字段,其中,所述第一标识符与所述第一接口和所述第一端口扩展器接口相关联。
9.根据权利要求8所述的方法,进一步包括 在处理数据包后,基于所述第一端口扩展器接口以及数据包离开所述分布式交换机所通过的传出端口扩展器接口的各自的命名空间配置,改变所述源字段和所述目的地字段。
10.根据权利要求9所述的方法,其中,所述改变包括利用与所述第一接口相关联的标识符设定所述源字段,根据数据包中的目的地地址设定所述目的地字段。
11.根据权利要求8所述的方法,其中,所述标记包括基于全局命名空间,选择用于所述源字段的标识符。
12.根据权利要求8所述的方法,其中,所述本地报头进一步包括至少一个命名空间指示符字段,并且其中,所述标记包括将所述至少一个命名空间指示符字段配置为指示全局命名空间。
13.根据权利要求I所述的方法,其中,所述处理包括 学习数据包的源的可达性,其中,所述学习基于所述指示来执行。
14.根据权利要求13所述的方法,其中,所述学习包括源修剪。
15.根据权利要求I所述的方法,其中,所述处理包括 基于数据包的第一信息,确定数据包通过所述第一接口进入所述控制桥; 基于数据包的第二信息,确定数据包通过所述第一端口扩展器接口进入所述第一端口扩展器,其中,所述第二信息在所述第一端口扩展器中被插入数据包;以及确定数据包是否包括全局命名空间的指示。
16.根据权利要求15所述的方法,其中,所述处理进一步包括 如果数据包中包括用于全局命名空间的指示,则基于全局命名空间查找转发条目或访问控制条目中的至少一个。
17.一种用于转发数据包的系统,包括 控制桥; 第一端口扩展器,直接或间接耦合至所述控制桥的第一接口 ; 第二端口扩展器,直接或间接耦合至所述控制桥的第二接口 ; 接口配置模块,被配置为将所述第一端口扩展器的第一端口扩展器接口与全局命名空间或接口专用命名空间相关联; 数据包接收模块,被配置为通过所述第一端口扩展器接口接收数据包; 数据包命名空间标记模块,被配置为利用与所述第一端口扩展器接口相关联的命名空间的指示来标记数据包;以及 数据包处理模块,被配置为至少部分地基于所述指示来在所述控制桥中处理已标记的数据包。
18.根据权利要求17所述的系统,其中,所述接口配置模块进一步被配置为将所述第一端口扩展器接口以及所述第二端口扩展器的第二端口扩展器接口的命名空间配置设定为全局命名空间,其中,所述第一端口扩展器接口和所述第二端口扩展器接口被通信耦合至所述控制桥与至少一个边缘服务器之间的链路聚合组(LAG)的各自的接口。
19.根据权利要求17所述的系统,其中,所述数据包标记模块进一步被配置为 在所述第一端口扩展器处将本地报头附至接收到的数据包,其中,所述本地报头包括源字段和目的地字段; 利用用于数据包的源的第一标识符配置所述源字段,其中,所述第一标识符与所述第一接口和所述第一端口扩展器接口相关联;以及 其中,所述数据包处理模块进一步被配置为在处理数据包后,基于所述第一端口扩展器接口以及传出端口扩展器接口的各自的命名空间配置,改变所述源字段和所述目的地字段。
20.根据权利要求19所述的系统,其中,所述数据包标记模块进一步被配置为基于全局命名空间选择用于所述源字段的标识符。
21.根据权利要求19所述的系统,其中,所述本地报头进一步包括至少一个命名空间指示符字段,并且其中,所述数据包标记模块进一步将所述至少一个命名空间指示符字段配置为指示全局命名空间。
22.—种存储指令的计算机可读存储介质,其中,所述指令在被处理器执行时适于通过分布式交换机执行数据包转发,其中,所述分布式交换机包括分别直接或间接通信耦合至控制桥的第一接口和第二接口的第一端口扩展器和第二端口扩展器,利用包括以下步骤的方法执行所述数据包转发 将所述第一端口扩展器的第一端口扩展器接口与全局命名空间或者接口专用命名空间相关联; 通过所述第一端口扩展器接口接收数据包; 利用与所述第一端口扩展器接口相关联的命名空间的指示标记接收到的数据包; 至少部分地基于所述指示,在所述控制桥中处理已标记的数据包;以及 将已处理的数据包发送出所述控制桥。
23.根据权利要求22所述的计算机可读存储介质,其中,所述方法进一步包括 在所述第一端口扩展器处将本地报头附至接收到的数据包,其中,所述本地报头包括源字段和目的地字段;以及 利用用于数据包的源的第一标识符配置所述源字段,其中,所述第一标识符与所述第一接口和所述第一端口扩展器接口相关联。
全文摘要
本公开的实施方式涉及在分布式以太网桥中利用链路聚合转发帧的方法和系统,在链路聚合环境下转发数据包。一种用于通过扩展交换机转发数据包的方法,该扩展交换机包括分别直接或间接通信耦合至控制桥的第一端口和第二端口的第一端口扩展器和第二端口扩展器,该方法包括将第一端口扩展器的第一端口扩展器接口与全局命名空间或接口专用命名空间相关联。该方法还包括通过第一端口扩展器接口接收数据包,利用第一端口扩展器接口的命名空间的指示来标记接收到的数据包,至少部分地基于该指示来在控制桥中处理已标记的数据包,将已处理的数据包发出控制桥。
文档编号H04L12/46GK102821022SQ20121018551
公开日2012年12月12日 申请日期2012年6月6日 优先权日2011年6月6日
发明者普尼特·阿加瓦尔, 尼兰詹·维迪雅, 比朱·巴布 申请人:美国博通公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1