CN102859949B - 用于在胖树网络中路由数据分组的方法 - Google Patents
用于在胖树网络中路由数据分组的方法 Download PDFInfo
- Publication number
- CN102859949B CN102859949B CN201080066517.0A CN201080066517A CN102859949B CN 102859949 B CN102859949 B CN 102859949B CN 201080066517 A CN201080066517 A CN 201080066517A CN 102859949 B CN102859949 B CN 102859949B
- Authority
- CN
- China
- Prior art keywords
- topcross
- link
- planes
- leaf switch
- grouping
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Abstract
在用于在胖树网络(100)中使用平衡表(204、208、210)在多个顶交换机(110a-110n)与多个叶交换机(120a-120n)之间路由分组的方法(400)中,检测(402)至少一个顶交换机(110n)与至少一个叶交换机(120n)之间的有故障链路。另外,基于所检测的有故障链路来修改(406)平衡表(204、208、210),并且基于修改的平衡表(204、208、210)在胖树网络(100)中在所述多个顶交换机(110a-110n)与所述多个叶交换机(120a-120n)之间路由(408)分组。
Description
相关申请
本申请包含与由MichaelSchlansker、JeanTourrilhes和YoshioTurner在2010年4月30日提交的题为“METHODFORROUTINGDATAPACKETSUSINGVLANS”的美国专利申请序列号12/770978共同的某个主题,该专利申请的公开整体地通过引用结合到本文中并被作为附件“A”附加在这里。
背景技术
以太网交换技术为大型数据中心和计算机提供高带宽、低等待时间以及可缩放性以用于数据通信。许多方法已被用来开发以太网中的多个路径。例如,可以使用第三层网际协议(IP)子网或第二层虚拟局域网(VLAN)来划分网络。虽然这些方法限制平面第二层网络的范围并帮助开发多个路径,但仍要求复杂且昂贵的手动管理。
被开发以增强以太网网络的另一协议是基于胖树的基于散列的路由。胖树是分层构造的以允许固定基数的交换机缩放至具有任意尺寸和对分带宽的网络。当消息从源流动至目的地时,面对多个上行链路选择的序列直至到达根交换机。这些技术为多路径网络提供负载平衡,同时保持即插即用网络的简单管理,这是由透明桥接的学习功能产生的。然而,基于散列的路由的关键问题在一个或多个链路或交换机有故障时发生,这破坏正常的网络通信。不同于仅包含单个顶交换机的正则树,胖树结构包括更大数目的上行链路和顶交换机。因此,增加了胖树结构中的故障的概率。
附图说明
根据参考附图的以下描述,本发明的特征对于本领域的技术人员而言将变得显而易见,在所述附图中:
图1示出了根据本发明的示例实施例的胖树网络的图;
图2A示出了根据本发明的示例实施例的在胖树网络中使用的基于散列的路由器;
图2B示出了根据本发明的示例实施例的用于容忍失灵的叶交换机中的有故障链路的修改的基于散列的路由器;
图2C示出了根据本发明的示例实施例的用于容忍失灵的叶交换机中的有故障链路的修改的基于散列的路由器;
图3说明了根据本发明的示例实施例的图1中所描述的控制器的简化方框图;
图4说明了根据本发明的示例实施例的用于在胖树网络中路由分组的方法的流程图;以及
图5示出了根据本发明的示例实施例的可以用作平台以实现或执行在图4中描述的过程中的一个或多个的计算设备的方框图。
具体实施方式
出于简单和说明性目的,通过主要参考本发明的示例实施例来描述本发明。在以下描述中,阐述了许多特定细节以便提供实施例的透彻理解。然而,对于本领域的普通技术人员而言将显而易见的是可以在不限于这些特定细节的情况下实施本发明。在其他情况下,未详细地描述众所周知的方法和结构以避免不必要地使实施例的描述含糊难懂。
在本文中公开了用于在胖树网络中在顶交换机和叶交换机之间路由分组的方法和控制器。更特别地,可以将本文公开的控制器和方法配置成在胖树网络中使用诸如三重内容可寻址存储器(TCAM)表的基于散列的路由表在多个顶交换机与多个叶交换机之间经由多个上行链路路由分组。另外,并且如在下文中更详细地讨论的,可以以各种方式来修改基于散列的路由表以适应顶交换机与叶交换机之间的有故障链路。另外,可以根据修改的基于散列的路由表在胖树网络中在所述多个顶交换机与所述多个叶交换机之间路由分组以便使胖树网络中的分组传送中的中断最小化。
通过本文公开的方法和控制器的实现,可以自动地确定顶交换机与叶交换机之间的有故障链路。本文公开的方法和控制器使得所有其余操作链路和交换机能够载送业务而无须不必要地禁用任何顶或叶交换机。照此,本文公开的方法和控制器使得能够以相对快速且高效的方式容忍具有有故障上行链路或有故障交换机的分组路线。
如本文所讨论的,分组可以是数据分组且数据分组流载送通过发送和接收设备之间的网络来传输信息流的通信流所需的信息。分组流的类型示例是多玩家游戏数据、流式传输视频或音频或数据的成批传输。源和目的地设备被配置成经由网络中的路线来发送或接收分组,并且分组可以通过该网络或通过另一网络来穿过该路线到达目的地设备。
在胖树网络中上行链路的一端被连接至顶交换机且上行链路的另一端被连接至叶交换机。可以将不止一个上行链路连接至顶交换机和叶交换机。还可以将一个或多个下行链路连接至胖树网络中的叶交换机。胖树网络中的多层交换机使用诸如平衡表的专用存储器架构来部署存储器表。适当平衡的特定示例是三重内容可寻址存储器(TCAM)表,其是用以跨顶交换机分发业务的基于散列的路由表的示例。
散列函数向随机选择的散列类分配消息。针对每个源地址“s”和每个目的地地址“d”,H(s,d)表示用于从s发送到d的每个消息的散列类。此散列可以结合第二层和更高层信息。对称散列具有H(s,d)=H(d,s)。这保证在消息从源流动至任何目的地之后答复可以顺着该路径返回。
本文所述的方法不限于仅应用于胖树网络。该方法还可以应用于其他有线或无线网络,诸如有线或无线电信网络、计算机网络或其他类型的网络。
首先参考图1,示出了根据示例的胖树网络100的图。应清楚理解的是,胖树网络100可以包括附加部件且可以去除和/或修改本文所述的某些部件而不脱离胖树网络的范围。照此,胖树网络100可以包括任意数目的顶交换机、叶交换机、上行链路、下行链路、源设备以及网络设备。另外,可以将胖树网络100连接至接入网络或任何广域网(WAN)或其他网络。
胖树网络100包括多个顶交换机110a-110n和多个叶交换机120a-120n。胖树网络100还包括多个上行链路。该多个上行链路中的每一个将顶交换机110a-110n中的一个连接至叶交换机120a-120n中的一个。在一个实施例中,可以将顶交换机110a-110n中的一个、例如顶交换机110a用于将叶交换机120a-120n互连的生成树。此生成树足以支持可能被附接到叶交换机120a-120n的附加以太网交换机的添加或重配置。其余顶交换机不参与生成树协议,但是提供可以被基于散列的路由用来传输分组的附加冗余路径。在另一实施例中,如果支持生成树协议的顶交换机110a有故障,则可以从其余顶交换机之中的另一顶交换机开始确定新的生成树。
胖树网络100还包括多个下行链路。该多个下行链路被连接至叶交换机120a-120n,如图1所示。另外,控制器130被配置成通过基于散列的路由表的应用在顶交换机110a-110n与叶交换机120a-120n之间路由分组。如下文更详细地讨论的,控制器130被配置成检测有故障链路,修改基于散列的路由表以适应有故障上行链路,并根据修改的基于散列的路由表在顶交换机110a-110n与叶交换机120a-120n之间路由分组。另外,控制器130可以包括数据中心范围的网络控制器或更局部化的网络控制器。
如图1所示,已经用“x”将最右顶交换机110n与最右叶交换机120n之间的链路标示为已有故障。例如,如果顶交换机110n或叶交换机120n上的端口有故障或者当顶交换机110n或叶交换机120n整体有故障时,链路可能有故障。另外,或者替换地,如果将顶交换机110n和叶交换机120n的端口连接的电缆变得被损坏或断开连接,则链路可能有故障。
当链路聚合组(LAG)内的所有物理链路有故障时,也可以将链路视为已有故障。如下文所讨论的,LAG的每个物理链路将不同的叶交换机连接至被附接到LAG的顶交换机。在图1中,将未附接到有故障链路的其余叶交换机120a-120c视为远程叶交换机。被直接附接到有故障链路的顶交换机110n被视为有故障的顶交换机。除断开的链路之外,有故障的叶交换机120n和有故障的顶交换机110n两者可以是完全运行的。
现在参考图2A,示出了根据示例的在胖树网络中使用的基于散列的路由器200。应理解的是图2A所描述的基于散列的路由器200是出于说明性目的,并且因此不应将其理解为在任何方面限制本发明。
一般而言,控制器130(图1)被配置成采用基于散列的路由器200主动地管理分组通过胖树网络100的路由以在许多顶交换机110a-110n之间平衡负载。换言之,控制器130被配置成访问第二层转发表202和平衡表204,其在本文中共同地称为基于散列的路由表,以便以各种方式通过顶交换机110a-110n来路由分组以基本上防止顶交换机110a-110n中的任何一个超负载并从而降低胖树网络100的效率。另外,控制器130被配置成如下文所讨论地修改平衡表204以基本上保持仍然活动的顶交换机110a-110n之间的负载平衡。
平衡表204中的每个条目包含散列值字段、转发端口字段以及实际端口字段。如果散列值和转发端口字段与对应的关键字字段匹配,则实际端口字段被取代并确定上行链路。针对散列比特的每个可能组合(例如用于8比特散列字段的256个组合),在其散列值字段中存在包含该常数的一个条目。每个条目还提供指定用于该条目的散列值的期望上行链路的实际端口字段。控制器130可以收集交换机统计信息以获取数据中心范围的测量从而进行负荷平衡。
依照图1所示的示例,当胖树网络100不包含断开链路时,在检测到任何故障之前,控制器130使用图2A所示的基于散列的路由器200来跨四个顶交换机110a-110n路由分组。采取对称路由,并且因此所有交换机110a-110n和120a-120n使用相同的第二层转发表202和平衡表204。在图2A中,每个交换机中的第二层转发表202包含以太网地址与用于该地址的期望转发端口之间的关联。针对上行链路,第二层转发表202根据平衡表204构造的结果指定指示上行链路中的一个将被用来通过顶交换机发送数据的上行链路虚拟端口。在一个实施例中,可以创建平衡表204条目以跨从每个叶交换机120a-120n中出来的标记为L0、L1、L2和L3的四个上行链路来均匀地分发业务。每个叶交换机上的具有相同标记的上行链路到达同一顶交换机。每个分组的散列值和具有特定散列值的直接分组被匹配到特定上行链路。例如,可以计算散列结果的8个比特。然而,平衡表204条目可以忽视散列结果的5个比特,并使该散列结果的三个低阶比特与二进制值:000、001、010、011、100、101、110和111匹配。
在一个实施例中,匹配操作选择确定哪个顶交换机被用来传送分组的输出端口。例如,可以以在每个上行链路上映射正好两个散列类这样的方式来在四个上行链路上映射八个散列类。此散列映射是对称的,并且相同的基于散列的路由表被安装在每个叶交换机120a-120n中。
现在特别地参考图2B,示出了根据示例的包含用于断开链路的本地修改的已修改的基于散列的路由器220。在一个实施例中,虽然没有业务能够穿过有故障上行链路,但所有叶交换机120a-120n和所有顶交换机110a-110n甚至在叶交换机120a-120n和顶交换机110a-110n中的一个已经被确定为具有有故障链路之后仍在使用中。在本实施例中为了适应有故障链路,计算具有本地修改的新平衡表208条目以绕过有故障链路重新路由分组业务。针对有故障的叶交换机,例如叶交换机120n,不可以通过被标记为L3(图1)的上行链路来发送或接收分组。由于用于有故障的叶交换机的基于散列的路由表直接控制通过有故障链路发送的分组,所以可以只需对图2A所示的平衡表208进行微小的本地修改以容忍有故障上行链路。
图2A所示的平衡表204具有将有故障上行链路L3指定为期望上行链路的两个条目(散列低阶比特“011”和“111”)。在图2B所示的平衡表208中,这些条目中的每一个已被修改,并且具有低阶散列“011”的所有业务被描述为通过链路L0发送,而具有低阶散列“111”的业务被描述为通过链路L1发送。这两个变化可以绕过有故障链路L3重新路由从有故障的叶交换机120n出来的上行链路上发送的所有分组。
现在转到图2C,示出了根据另一示例的包含用于断开链路的远程修改的已修改的基于散列的路由器240。在一个实施例中,为了继续使用有故障的顶交换机,例如,被连接至有故障上行链路的顶交换机110n(图1),每个远程叶交换机识别用于被附接到有故障的叶交换机上的下行链路的设备的以太网目的地地址。发送到这些地址的分组应避免有故障的顶交换机,因为分组可能在该有故障上行链路处到达死端。在一个示例中,从远程叶交换机,可以将其他目的地地址发送到包括有故障的顶交换机的任何顶交换机,因此允许使用有故障的顶交换机来将分组发送到未被附接到有故障的叶交换机的目的地。
图2C说明了在远程叶交换机中需要对第二层转发表202以及修改的平衡表210进行的变化以便在保持使用有故障的顶交换机和失灵的叶交换机的同时绕过有故障上行链路正确地路由业务。在图2C中,用断开链路表206来增强第二层转发表202,该断开链路表206列举用于被连接至有故障的叶交换机的设备的目的地地址。在一个实施例中,对于被连接至有故障或断开的叶交换机的每个设备而言,要求一种用以在每个远程交换机内创建断开链路表中的条目的机制。此条目使特定设备地址(例如Dx)与称为用于断开交换机(或有故障交换机)的虚拟端口的虚拟端口断开链路(“BL”)相关联。因此,对于每个叶交换机而言,如果分组目的地地址未被附接到有故障的叶交换机,则正常学习过程用上行链路(“UL”)来标记其上行链路目的地。如果分组目的地地址是用于被附接到有故障的目的地交换机的设备的,则使用断开链路表的特殊处理可以用“BL”来标记其上行链路目的地。在另一实施例中,可以通过将那些特定地址固定(pin)在标准表中并将其上行链路设置为“BL”来实现使用未修改的第二层转发表的断开链路表206处理。
在一个实施例中,还可以增强平衡表210。增强的平衡表210包含未修改的正常平衡表,诸如图2A所示的平衡表204,其用于用“UL”上行链路虚拟端口标签标记的任何分组,所述标签指示它们未被附接到有故障的叶交换机。可以将这些分组路由至四个顶交换机中的任何一个,因为此业务中没有一个将尝试穿过有故障上行链路。另外,新创建的条目可以使用BL标签来路由去往被附接到有故障的叶交换机的目的地的分组。这些条目包含结果端口分配,诸如图2B所示的修改的平衡表210,其可以避免有故障的顶交换机的使用,因为将此交换机用于具有“BL”标签的目的地将导致有故障上行链路的非法使用。
现在特别地参考图3,示出了根据示例的图1所描述的控制器130的简化方框图300。对于本领域的普通技术人员而言应显而易见的是,控制器130的方框图300表示一般化图示,并且可以添加其他部件,或者可以去除、修改或重新布置现有部件而不脱离控制器130的范围。
如图3所示,控制器130包括上行链路监视模块302、交换机监视模块304、基于散列的路由表更新模块306以及路由模块308。模块302-308可以包括软件模块、硬件模块或软件和硬件模块的组合。因此,在一个实施例中,模块302-308中的一个或多个包括电路部件。在另一实施例中,模块302-308中的一个或多个包括存储在计算机可读存储介质上的软件代码,其可由处理器执行。
控制器130还可以与数据储存器320通信,数据储存器320可以包括任何合理适当的存储器,控制器130可以从该存储器检索数据。虽然数据储存器320已被描述为形成与控制器130分离的部件,但应理解的是在不脱离控制器130的范围的情况下,可以将数据储存器320与控制器130集成。
关于图4来更详细描述可以实现控制器130的模块302-308的各种方式,图4描述了根据示例的用于在胖树网络中使用基于散列的路由表在多个顶交换机和多个叶交换机之间路由分组的方法400的流程图。对于本领域的普通技术人员而言应显而易见的是,方法400表示一般化图示,并且可以添加其他步骤或者可以去除、修改或重新布置现有步骤而不脱离方法400的范围。
方法400的描述是特别地参考图1所描述的控制器130来进行的,并且因此对包含在控制器130中的元件进行特定参考。然而,应理解的是在不脱离方法400的范围的情况下可以在不同于控制器130的设备中实现方法400。
在步骤402处,例如由上行链路监视模块302来检测至少一个顶交换机110a-110n和至少一个叶交换机120a-120n之间的有故障链路。在一个实施例中,在步骤402处,上行链路监视模块302确定LAG,其是将一对交换机互连的一组物理链路。在本实施例中,LAG内的每个物理链路将每个叶交换机连接至顶交换机且LAG中的每个物理链路被附接到同一顶交换机。如图1所示,聚集在LAG内并被视为单个虚拟链路的四个物理链路被附接到顶交换机110a。这四个不同物理链路中的每一个将不同的叶交换机120a-120n连接至顶交换机110a。当LAG内的任何物理链路继续操作时,LAG是可操作的,并且当LAG内的所有物理链路已有故障时,LAG被视为已有故障。参考图1,其中描述的上行链路是LAG且标签“L0”等引用对应于该LAG的虚拟链路。每个虚拟链路被附接到交换机和识别附接到LAG内的物理链路的物理端口组的对应虚拟端口。还可以将下行链路视为LAG。
图2A、2B和2C所示的转发表202和平衡表204、208、210中的条目可以全部引用对应于LAG的一个端点的虚拟端口。平衡表204、208、210确定将在哪个LAG上发送数据。较低链路聚合层然后决定在LAG内的哪个物理链路上发送数据。
根据示例,在步骤402处,例如由上行链路监视模块302来进行关于LAG是否包括有故障上行链路的确定。如果LAG包括有故障的上行链路,则可以经由LAG中的没有故障的上行链路在顶交换机与不同的叶交换机之间路由一个或多个分组,如下文所讨论的。
在步骤404处,例如由交换机监视模块304来进行关于哪个顶交换机110a-110n和/或叶交换机120a-120n被附接到有故障上行链路的确定。
在步骤406处,例如由基于散列的路由表更新模块306基于所检测的有故障链路来修改平衡表208、210。如上文所讨论的,平衡表208、210包括基于每个分组的散列值来指示上行链路输出端口的上行链路虚拟端口。可以使用每个分组的分组报头来计算每个分组的散列值。举例来说,可以基于每个分组的不同散列值将每个分组分配给所述多个上行链路中的每一个。
在一个实施例中,在步骤406处,如图2B所示,执行对有故障的叶交换机内的平衡表208的本地修改。在另一实施例中,执行对用于所有远程叶交换机的转发表202和平衡表210二者的远程修改,如图2C所示。如上文关于图2C所讨论的,该远程修改可以包括有故障链路条目206到远程转发表202中的添加,有故障链路条目206指定特定的目的地地址将被发送到断开链路(BL)(在断开交换机后面的目的地)虚拟端口。还可以修改远程平衡表210,使得发送到BL虚拟端口的条目然后在远程平衡表中被匹配并跨尚未有故障的顶交换机被分发。
根据实施例,在步骤404处,进行关于所述多个叶交换机120a-120n中的哪一个被附接到有故障链路的确定。在本实施例的一个示例中,通过修改在所确定的被附接到有故障链路的叶交换机的平衡表208中的与有故障链路相关联的上行链路输出端口来修改平衡表208,其中,修改与有故障链路相关联的上行链路输出端口以指示不同于与有故障链路相关联的上行链路输出端口的上行链路输出端口。在本实施例的另一示例中,构造未被附接到有故障链路的远程叶交换机的转发表202,确定用于来自与被附接到有故障上行链路的叶交换机相关联的设备的分组的分组目的地地址,并通过修改用于来自与被附接到有故障链路的叶交换机相关联的设备的分组的上行链路虚拟端口和上行链路输出端口,并将远程叶交换机的转发表202与具有用于来自与被附接到有故障链路的叶交换机相关联的设备的分组的已修改上行链路虚拟端口和已修改上行链路输出端口的平衡表208集成来修改平衡表208,其中,所述修改并不将来自该设备的分组路由到被附接到有故障上行链路的顶交换机。
根据另一实施例,在步骤404处,进行关于所述多个顶交换机中的哪个被附接到有故障链路的确定。在本实施例中,将确定为附接到有故障链路的所述至少一个顶交换机禁用以从而禁用被附接到所确定的至少一个顶交换机的链路。另外,修改平衡表208以避免所述至少一个被禁用顶交换机中的链路的使用。在本实施例中,进行关于被禁用顶交换机是否是生成树顶交换机的确定。响应于所述至少一个被禁用顶交换机是生成树顶交换机,在胖树网络中选择新生成树顶交换机,并且使用该新生成树顶交换机来运行生成树协议以生成新生成树。
在以上所讨论的实施例中,在步骤406处可以通过在基于散列的路由表(转发表202、平衡表208、210)中的一者或两者中修改与有故障上行链路相关联的上行链路输出端口来修改基于散列的路由表中的一者或两者。根据示例,可以修改与有故障上行链路相关联的上行链路输出端口以指示不同于与有故障上行链路相关联的上行链路输出端口的上行链路输出端口,如上文关于图2B和2C所讨论的。如在其中所示和上文所讨论的,例如,可以在平衡表208中修改上行链路虚拟端口和上行链路输出端口,使得分组不从该设备路由至被附接到有故障上行链路的顶交换机,如图2B所示。在另一示例中,在步骤406处,修改所有远程叶交换机的转发表202和平衡表210,使得用于来自与被附接到有故障上行链路的有故障的叶交换机相关联的设备的分组的上行链路虚拟端口和已修改上行链路输出端口被集成,如图2C所示。
在步骤408处,例如由路由模块308基于已修改的基于散列的路由表在胖树网络100中在所述多个顶交换机110a-110n和所述多个叶交换机120a-120n之间路由一个或多个分组。更特别地,例如,如果LAG包括有故障上行链路,可以经由LAG中的没有故障的上行链路在顶交换机与不同的叶交换机之间路由一个或多个分组,如上文所讨论的。
在图中所阐述的某些或所有操作可以作为实用程序、程序或子程序包含在任何期望的计算机可读存储介质中。另外,可以由计算机程序来实现该操作,所述计算机程序可以以活动和不活动的多种形式存在。例如,其可以作为包括采取源代码、目标代码、可执行代码或其他格式的程序指令的(多个)软件程序而存在。可以在包括存储设备的计算机可读存储介质上实现上述各项中的任何一个。
示例性计算机可读存储设备包括常规计算机系统随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)以及磁或光盘或带。前述的具体示例包括程序在紧致盘只读存储器(CDROM)或经由因特网下载的分发。因此应理解的是,能够执行上述功能的任何电子设备可以执行上文列举的那些功能。
图5说明了根据实施例的被配置成实现或执行图4所描述的过程中的一个或多个的计算设备500的方框图。应理解的是计算设备500的图示是一般化图示,并且计算设备500可以包括附加部件,并且可以去除和/或修改所述部件中的某些而不脱离计算设备500的范围。
计算设备500包括处理器502,其可以实现或执行在图4中所描述的过程中的一个或多个中所述的步骤中的某些或全部。例如,处理器502被配置成检测至少一个顶交换机和至少一个叶交换机之间的有故障链路,基于所检测的有故障链路来修改(多个)基于散列的路由表,并基于(多个)已修改的基于散列的路由表在胖树网络中在所述多个顶交换机和所述多个叶交换机之间路由分组。来自处理器502的命令和数据被通过通信总线504传送。计算设备500还包括主存储器506以及辅助存储器508,主存储器506诸如随机存取存储器(RAM),在主存储器506中可以在运行时间期间执行用于处理器502的程序代码。辅助存储器508包括例如一个或多个硬盘驱动器510和/或可移除存储驱动器512,可移除存储驱动器512表示软盘驱动器、磁带驱动器、紧致盘驱动器等,其中可以存储用于在图4中所描述的过程中的一个或多个的程序代码的拷贝。
可移除存储驱动器512以众所周知的方式从可移除存储单元514读取和/或向可移除存储单元514写入。用户输入和输出设备可以包括键盘516、鼠标518以及显示器520。显示适配器522可以与通信总线504和显示器520对接且可以从处理器502接收显示数据并将显示数据转换成用于显示器520的显示命令。另外,(多个)处理器502可以经由网络适配器524通过例如因特网、局域网(LAN)等网络进行通信。
对于本领域的普通技术人员将显而易见的是,在计算设备500中可以添加或替换其他已知电子部件。还应显而易见的是图5中所描述的部件中的一个或多个可以是可选的(例如用户输入设备、辅助存储器等)。
虽然遍及整个本公开具体地进行了描述,但本发明的代表性实施例在宽的应用范围上具有实用性,并且以上讨论并不意图且不应被理解为是限制性的,而是作为本发明的各方面的说明性讨论而提供的。
在本文中已描述和示出的是本发明的实施例以及其某些变体。本文中所使用的术语、描述和图仅仅是以说明的方式阐述的,并且并不意图作为限制。本领域的技术人员将认识到的是,在本发明的精神和范围内可以有许多变体,其中,本发明意图由以下权利要求及其等价物来限定,其中,除非另外指明,所有术语表示其最广泛合理意义上的意思。
Claims (11)
1.一种用于在胖树网络(100)中使用平衡表(204、208、210)在多个顶交换机(110a-110n)和多个叶交换机(120a-120n)之间路由分组的方法(400),所述方法包括由处理器(502)执行的步骤:
检测(402)至少一个顶交换机与至少一个叶交换机之间的有故障链路;
基于所检测的有故障链路来修改(406)所述平衡表(202、208、210),其中,该平衡表(202、208、210)包括基于每个分组的散列值来指示上行链路输出端口的上行链路虚拟端口、以及与用于路由分组的所述多个顶交换机(110a-110n)中的一个相关联的分组目的地地址,其中,使用每个分组的分组报头来计算每个分组的散列值;以及
基于修改的平衡表(202、208、210)在所述胖树网络(100)中在所述多个顶交换机(110a-110n)与所述多个叶交换机(120a-120n)之间路由(408)分组;
其中所述方法还包括:
确定所述多个顶交换机(110a-10n)中的哪一个被附接到有故障链路;以及
禁用所确定的被附接到有故障链路的至少一个顶交换机从而禁用被附接到所确定的至少一个顶交换机的链路;以及
修改(406)平衡表(208)以避免所述至少一个被禁用顶交换机中的链路的使用;
确定被禁用的至少一个顶交换机是否是生成树顶交换机;
响应于所述被禁用的至少一个顶交换机是生成树顶交换机而选择新的顶交换机作为生成树顶交换机进行操作;以及
使用所述新的生成树顶交换机来运行生成树协议以生成新的生成树。
2.根据权利要求1所述的方法(400),
其中,修改(406)平衡表(202、208、210)还包括修改所确定的被附接到有故障链路的叶交换机的平衡表(208)中与有故障链路相关联的上行链路输出端口(L3),其中,与有故障链路相关联的上行链路输出端口(L3)被修改以指示不同于与有故障链路相关联的上行链路输出端口的上行链路输出端口。
3.根据权利要求1所述的方法(400),
在确定(404)所述多个叶交换机(120a-120n)中的哪一个被附接到有故障链路之后,还包括;
构造远程叶交换机(120a-120c)的平衡表(210),其中,远程叶交换机(120a-120c)未被附接到有故障链路;
确定用于来自与被附接到有故障链路的叶交换机相关联的设备的分组的分组目的地地址;以及
其中,修改(406)平衡表(202、208、210)还包括:修改用于来自与被附接到有故障链路的叶交换机相关联的设备的分组的上行链路虚拟端口和上行链路输出端口,其中,所述修改并不将来自该设备的分组路由到被附接到有故障上行链路的顶交换机;以及将远程叶交换机(120a-120c)的平衡表(210)与具有用于来自与被附接到有故障链路的叶交换机相关联的设备的分组的已修改上行链路虚拟端口和已修改上行链路输出端口的平衡表(202、208、210)集成。
4.根据权利要求3所述的方法(400),还包括:
将远程叶交换机的转发表(202)修改为包括指定目的地地址将被发送到断开链路虚拟端口的有故障链路条目(206)。
5.根据权利要求1-4中的任一项所述的方法(400),还包括:
基于用于每个分组的散列值将每个分组分配给所述多个上行链路中的每一个。
6.根据权利要求1-4中的任一项所述的方法(400),还包括:
通过胖树网络(100)来对称地路由(408)分组。
7.一种用于在胖树网络(100)中使用平衡表(204、208、210)在多个顶交换机(110a-110n)与多个叶交换机(120a-120n)之间路由分组的计算机实现的控制器(130),所述计算机实现的控制器(130)包括;
一个或多个模块(302-308),其被配置成检测至少一个顶交换机与至少一个叶交换机之间的有故障链路,基于所检测的有故障链路来修改平衡表(204、208、210),其中,平衡表(204、208、210)包括基于用于每个分组的散列值来指示上行链路输出端口的上行链路虚拟端口,以及与用于路由分组的所述多个顶交换机(110a-110n)中的一个相关联的分组目的地地址,其中,使用每个分组的分组报头来计算用于每个分组的散列值,以及基于修改的平衡表(204、208、210)在所述胖树网络(100)中在所述多个顶交换机110a-110n)与所述多个叶交换机(120a-120n)之间路由分组;
其中,所述一个或多个模块(302-308)还被配置成确定所述多个顶交换机(110a-110n)中的哪一个被附接到有故障链路,禁用所确定的被附接到有故障链路的顶交换机从而禁用被附接到所确定的顶交换机的链路,并修改平衡表(204、208、210)以避免被禁用顶交换机中的链路的使用;其中,所述一个或多个模块(302-308)还被配置成确定被禁用顶交换机是否是生成树顶交换机,响应于被禁用顶交换机是生成树顶交换机来选择新的顶交换机以作为生成树顶交换机进行操作,以及使用新的生成树顶交换机来运行生成树协议以生成新生成树。
8.根据权利要求7所述的计算机实现的控制器(130),其中,所述一个或多个模块(302-308)还被配置成确定所述多个叶交换机(120a-120n)中的哪一个被附接到有故障链路并修改被附接到有故障上行链路的叶交换机的平衡表(204、208、210)中与有故障上行链路相关联的上行链路输出端口,其中,与有故障上行链路相关联的上行链路输出端口(L3)被修改以指示不同于与有故障上行链路相关联的上行链路输出端口(L3)的上行链路输出端口。
9.根据权利要求7所述的计算机实现的控制器(130),其中,所述一个或多个模块(302-308)被配置成确定所述多个叶交换机(120a-120n)中的哪一个被附接到有故障链路,构造未被附接到有故障链路的远程叶交换机的平衡表(210),确定用于来自与被附接到有故障链路的叶交换机相关联的设备的分组的分组目的地地址,在平衡表(204、208、210)中修改用于来自与被附接到有故障上行链路的叶交换机相关联的设备的分组的上行链路虚拟端口和上行链路输出端口,使得所述分组并不从所述设备路由至被附接到有故障上行链路的顶交换机,并将远程叶交换机的平衡表(204、208、210)与具有用于来自与被附接到有故障链路的叶交换机相关联的设备的分组的已修改上行链路虚拟端口和已修改上行链路输出端口的平衡表(204、208、210)集成。
10.根据权利要求7所述的计算机实现的控制器(130),其中,所述一个或多个模块还被配置成将远程叶交换机的转发表(202)修改为包括指定目的地地址将被发送到断开链路虚拟端口的有故障链路条目(206)。
11.一种用于在胖树网络(100)中使用平衡表(204、208、210)在多个顶交换机(110a-110n)与多个叶交换机(120a-120n)之间路由分组的设备,所述设备包括:
用于检测(402)至少一个顶交换机与至少一个叶交换机之间的有故障链路的装置;
用于基于所检测的有故障链路来修改(406)平衡表(204、208、210)的装置,其中,该平衡表(204、208、210)包括基于用于每个分组的散列值来指示上行链路输出端口的上行链路虚拟端口以及与用于路由分组的所述多个顶交换机(110a-110n)中的一个相关联的分组目的地地址,其中,使用每个分组的分组报头来计算用于每个分组的散列值;以及
用于基于修改的平衡表(204、208、210)在所述胖树网络(100)中在所述多个顶交换机(110a-110n)与所述多个叶交换机(120a-120n)之间路由(408)分组的装置;
用于确定所述多个顶交换机(110a-10n)中的哪一个被附接到有故障链路的装置;以及
用于禁用所确定的被附接到有故障链路的至少一个顶交换机从而禁用被附接到所确定的至少一个顶交换机的链路的装置;以及
用于修改(406)平衡表(208)以避免所述至少一个被禁用顶交换机中的链路的使用的装置;
用于确定被禁用的至少一个顶交换机是否是生成树顶交换机的装置;
用于响应于所述被禁用的至少一个顶交换机是生成树顶交换机而选择新的顶交换机作为生成树顶交换机进行操作的装置;以及
用于使用所述新的生成树顶交换机来运行生成树协议以生成新的生成树的装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2010/033258 WO2011136807A1 (en) | 2010-04-30 | 2010-04-30 | Method for routing data packets in a fat tree network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102859949A CN102859949A (zh) | 2013-01-02 |
CN102859949B true CN102859949B (zh) | 2015-12-02 |
Family
ID=44861840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080066517.0A Active CN102859949B (zh) | 2010-04-30 | 2010-04-30 | 用于在胖树网络中路由数据分组的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9007895B2 (zh) |
EP (1) | EP2564561B1 (zh) |
CN (1) | CN102859949B (zh) |
TW (1) | TWI441476B (zh) |
WO (1) | WO2011136807A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2960369B1 (fr) * | 2010-05-20 | 2013-03-01 | Bull Sas | Procede d'optimisation de routage dans un cluster comprenant des liens de communication statiques et programme d'ordinateur mettant en oeuvre ce procede |
WO2012114157A1 (en) * | 2011-02-25 | 2012-08-30 | Nokia Corporation | A method and an apparatus for a gateway |
US9008510B1 (en) | 2011-05-12 | 2015-04-14 | Google Inc. | Implementation of a large-scale multi-stage non-blocking optical circuit switch |
JP5700295B2 (ja) * | 2011-07-19 | 2015-04-15 | 日立金属株式会社 | ネットワークシステム |
CN102984058B (zh) * | 2012-12-05 | 2017-04-19 | 华为技术有限公司 | 基于开放流的网络通信方法、控制器和交换机 |
US10069903B2 (en) | 2013-04-16 | 2018-09-04 | Amazon Technologies, Inc. | Distributed load balancer |
US9559961B1 (en) | 2013-04-16 | 2017-01-31 | Amazon Technologies, Inc. | Message bus for testing distributed load balancers |
US10038626B2 (en) * | 2013-04-16 | 2018-07-31 | Amazon Technologies, Inc. | Multipath routing in a distributed load balancer |
US10135914B2 (en) | 2013-04-16 | 2018-11-20 | Amazon Technologies, Inc. | Connection publishing in a distributed load balancer |
US9553809B2 (en) | 2013-04-16 | 2017-01-24 | Amazon Technologies, Inc. | Asymmetric packet flow in a distributed load balancer |
US9871712B1 (en) | 2013-04-16 | 2018-01-16 | Amazon Technologies, Inc. | Health checking in a distributed load balancer |
JP6268943B2 (ja) * | 2013-11-06 | 2018-01-31 | 富士通株式会社 | 情報処理システム,スイッチ装置及び情報処理システムの制御方法 |
US9692670B2 (en) * | 2013-12-13 | 2017-06-27 | Marvell Israel (M.I.S.L) Ltd. | Protection switching |
US10198288B2 (en) | 2014-10-30 | 2019-02-05 | Oracle International Corporation | System and method for providing a dynamic cloud with subnet administration (SA) query caching |
US9807003B2 (en) | 2014-10-31 | 2017-10-31 | Oracle International Corporation | System and method for supporting partition-aware routing in a multi-tenant cluster environment |
US10084639B2 (en) * | 2015-03-20 | 2018-09-25 | Oracle International Corporation | System and method for efficient network reconfiguration in fat-trees |
US10033574B2 (en) | 2015-03-20 | 2018-07-24 | Oracle International Corporation | System and method for efficient network reconfiguration in fat-trees |
CN104767681B (zh) * | 2015-04-14 | 2018-04-10 | 清华大学 | 一种容忍错误连线的数据中心网络路由方法 |
US9838315B2 (en) * | 2015-07-29 | 2017-12-05 | Cisco Technology, Inc. | Stretched subnet routing |
US10187310B2 (en) * | 2015-10-13 | 2019-01-22 | Oracle International Corporation | System and method for efficient network isolation and load balancing in a multi-tenant cluster environment |
US9853900B1 (en) * | 2017-08-07 | 2017-12-26 | Mellanox Technologies Tlv Ltd. | Using consistent hashing for ECMP routing |
US10425324B2 (en) | 2017-08-17 | 2019-09-24 | Fabriscale Technologies AS | Method of computing balanced routing paths in fat-trees |
US10432526B2 (en) | 2017-09-25 | 2019-10-01 | Mellanox Technologies Tlv Ltd. | Enhanced traffic distribution using VRF tables |
US10608921B2 (en) * | 2018-04-19 | 2020-03-31 | Cisco Technology, Inc. | Routing in fat tree networks using negative disaggregation advertisements |
US10848417B2 (en) | 2018-05-21 | 2020-11-24 | Cisco Technology, Inc. | Distance vector negative southbound topology information for routing in fat trees (RIFT) route |
US10785701B2 (en) | 2018-06-26 | 2020-09-22 | Ciscot Technology, Inc. | Hybrid control plane entity for fat tree route disaggregation |
US10880236B2 (en) | 2018-10-18 | 2020-12-29 | Mellanox Technologies Tlv Ltd. | Switch with controlled queuing for multi-host endpoints |
US10848376B2 (en) * | 2018-12-06 | 2020-11-24 | Cisco Technology, Inc. | Fast forwarding re-convergence of switch fabric multi-destination packets triggered by link failures |
CN109743266A (zh) * | 2019-01-22 | 2019-05-10 | 上海宽带技术及应用工程研究中心 | 基于胖树结构的sdn交换网络 |
WO2020236261A1 (en) | 2019-05-23 | 2020-11-26 | Cray Inc. | Dragonfly routing with incomplete group connectivity |
US11470038B1 (en) | 2020-05-19 | 2022-10-11 | Marvell Asia Pte Ltd. | Line side multiplexers with protection switching |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519062B1 (en) * | 2000-02-29 | 2003-02-11 | The Regents Of The University Of California | Ultra-low latency multi-protocol optical routers for the next generation internet |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7359383B2 (en) * | 2004-03-29 | 2008-04-15 | Hewlett-Packard Development Company, L.P. | Load balancing with mesh tagging |
EP1884061A1 (en) * | 2005-05-16 | 2008-02-06 | Telefonaktiebolaget LM Ericsson (publ) | Means and method for ciphering and transmitting data in integrated networks |
US9344356B2 (en) * | 2007-02-28 | 2016-05-17 | Hewlett Packard Enterprise Development Lp | Transmitting a packet from a distributed trunk switch |
US7843929B2 (en) * | 2007-04-20 | 2010-11-30 | Cray Inc. | Flexible routing tables for a high-radix router |
US8483096B2 (en) * | 2008-07-22 | 2013-07-09 | The Regents Of The University Of California | Scalable commodity data center network architecture |
-
2010
- 2010-04-30 WO PCT/US2010/033258 patent/WO2011136807A1/en active Application Filing
- 2010-04-30 EP EP10850894.6A patent/EP2564561B1/en active Active
- 2010-04-30 US US13/643,281 patent/US9007895B2/en active Active
- 2010-04-30 CN CN201080066517.0A patent/CN102859949B/zh active Active
-
2011
- 2011-04-29 TW TW100115092A patent/TWI441476B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519062B1 (en) * | 2000-02-29 | 2003-02-11 | The Regents Of The University Of California | Ultra-low latency multi-protocol optical routers for the next generation internet |
Non-Patent Citations (1)
Title |
---|
Killer Fabrics for Scalable Datacenters;Michael Schlansker等;《HP TECHNICAL REPORT》;20090206;第4页第1栏第 1-4段、第2栏第1-5段,第5页第1栏第1-4段、第2栏第1-3段,附图1-3 * |
Also Published As
Publication number | Publication date |
---|---|
TWI441476B (zh) | 2014-06-11 |
WO2011136807A1 (en) | 2011-11-03 |
EP2564561A1 (en) | 2013-03-06 |
US20130039169A1 (en) | 2013-02-14 |
US9007895B2 (en) | 2015-04-14 |
EP2564561B1 (en) | 2019-07-31 |
EP2564561A4 (en) | 2017-09-27 |
CN102859949A (zh) | 2013-01-02 |
TW201215041A (en) | 2012-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102859949B (zh) | 用于在胖树网络中路由数据分组的方法 | |
US9294396B2 (en) | Port extender | |
US10122614B2 (en) | Failure protection for traffic-engineered bit indexed explicit replication | |
US9083645B2 (en) | Systems and methods providing reverse path forwarding compliance for a multihoming virtual routing bridge | |
CN102415054B (zh) | 节点装置和通信方法 | |
CN104335537B (zh) | 用于层2多播多路径传送的系统和方法 | |
CN102415065B (zh) | 在有路由的网络中冗余主机连接的方法和装置 | |
US9614759B2 (en) | Systems and methods for providing anycast MAC addressing in an information handling system | |
US8018873B1 (en) | Enhanced link state protocol for identifying broadcast networks | |
US6023733A (en) | Efficient path determination in a routed network | |
US9608913B1 (en) | Weighted load balancing in a multistage network | |
KR20170102841A (ko) | 분산형 라우팅 테이블 탐색 기술 | |
CN102150148A (zh) | 层2拓扑中针对单播帧和多播帧的差别化服务 | |
CN101822006A (zh) | 在包括多个交换机的集群交换机中设置抽象层 | |
CN104717081A (zh) | 一种网关功能的实现方法及装置 | |
CN104754025A (zh) | 可编程分布式联网 | |
CN102347905A (zh) | 一种网络设备及其转发信息更新方法 | |
JP2006295938A (ja) | ネットワーク型ルーティング機構 | |
US10742545B2 (en) | Multicasting system | |
US10397097B2 (en) | Weighted next hop selection at a router using an equal cost multipath process | |
US20170237654A1 (en) | Fast failover recovery in software defined networks | |
CN102316019A (zh) | 用于IPv6的经路由的分割多链路骨干传输 | |
CN103201987A (zh) | 区分路由信息更新的优先级 | |
CN104335536A (zh) | 分组传送系统、控制装置、分组传送方法及程序 | |
US10855572B2 (en) | Area abstraction extensions to routing protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170105 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett-Packard Development Company, L.P. |