CN104954270B - 在联网系统中使用的方法和装置以及计算机可读介质 - Google Patents

在联网系统中使用的方法和装置以及计算机可读介质 Download PDF

Info

Publication number
CN104954270B
CN104954270B CN201510142392.XA CN201510142392A CN104954270B CN 104954270 B CN104954270 B CN 104954270B CN 201510142392 A CN201510142392 A CN 201510142392A CN 104954270 B CN104954270 B CN 104954270B
Authority
CN
China
Prior art keywords
routing
entry
subset
assigned
described device
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
Application number
CN201510142392.XA
Other languages
English (en)
Other versions
CN104954270A (zh
Inventor
权-纳恩·凯文·林
维沙尔·辛哈
张格凡
卡尔裴什·巴夫纳
西德什·丁多尔卡尔
涛·关
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ares International Ip Co ltd
Original Assignee
Iris International Ip Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Iris International Ip Co Ltd filed Critical Iris International Ip Co Ltd
Publication of CN104954270A publication Critical patent/CN104954270A/zh
Application granted granted Critical
Publication of CN104954270B publication Critical patent/CN104954270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/563Software download or update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/748Address table lookup; Address filtering using longest matching prefix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请案涉及用于在多包处理器联网系统中聚合硬件路由资源的技术。提供用于聚合装置系统中的硬件路由资源的技术。在一个实施例中,所述装置系统中的装置可将所述系统的软件路由表中的路由条目划分成多个路由子集。所述装置可进一步将所述多个路由子集中的每一路由子集指派给所述系统中的一或多个装置。所述装置可接着针对指派给所述装置的每一路由子集将所述路由子集中的路由条目安装到所述装置的硬件路由表中。

Description

在联网系统中使用的方法和装置以及计算机可读介质
相关申请案的交叉参考
本申请案依据35 U.S.C.119(e)主张2014年3月27日提出申请的标题为“用于在多包处理器联网系统中聚合硬件资源的技术(TECHNIQUES FOR AGGREGATING HARDWARERESOURCES IN A MULTI-PACKET PROCESSSOR NETWORKING SYSTEM)”的美国临时申请案第61/971,429号的权益及优先权。此临时申请案的全部内容出于所有目的以引用方式并入本文中。
技术领域
本发明涉及用于在多包处理器联网系统中聚合硬件路由资源的技术。
背景技术
1.三层路由
如此项技术中已知,路由器为使多个网络互连且在所述网络之间转发数据包(称为三层或L3路由的过程)的网络装置。为确定用于转发入口包的最号路径,路由器审查包的目的地IP地址且将所述目的地IP地址与路由表中的路由条目进行比较。每一路由条目对应于子网路由(例如,192.168.2.0/24)或主路由(例如,192.168.2.129/32)。如果目的地IP地址匹配特定路由条目的子网/主路由,那么路由器将包从出口端口向外转发到由所述条目规定的下一跃点地址,借此将包朝向其目的地发送。在一些情形中,入口包的目的地IP地址可匹配对应于多个子网/主路由的多个路由条目。举例来说,IP地址192.168.2.129匹配子网路由192.168.2.128/26及192.168.2.0/24以及主路由192.168.2.129/32。当发生此情况时,路由器可经由最长前缀匹配(LPM)执行其选择,此意味路由器将选择具有最高子网掩码的所匹配路由条目(即,最特定条目)。
出于性能原因,许多常规路由器使用软件与硬件路由表的组合来执行上文所描述的路由操作。例如,图1描绘包含管理CPU 102、软件(SW)路由表104及包处理器106的示范性路由器100,包处理器106包括硬件(HW)路由引擎108、HW路由表110及数据端口112。SW路由表104使用存储于可由管理CPU 102存取的随机存取存储器(未展示)中的数据结构来实施。一般来说,SW路由表104含有路由器100已知的所有子网/主路由,例如静态地配置的路由及从路由协议(例如,RIP、OSPF或BGP)动态地获悉的路由。另一方面,HW路由表110使用基于硬件的存储器组件(例如三元内容可寻址存储器(TCAM)或其它类似关联存储器)来实施。由于其专门硬件设计,HW路由表110可达成比SW路由表104快的表查找,但其大小受限制。因此,HW路由表110通常包含SW路由表104中的路由条目的子集。
当在路由器100处接收入口包时,包处理器106的HW路由引擎108首先在HW路由表110中寻找包的目的地IP地址的LPM匹配。如上文所提及,HW路由引擎108可由于表110的硬件设计而非常迅速地执行此查找(例如,以线速度)。如果找到匹配,那么HW路由引擎108将包转发到所匹配条目中规定的下一跃点,而不涉及管理CPU 102。如果未找到匹配,那么HW路由引擎108采取预定义行动,例如丢弃所述包或将其发送到管理CPU 102。如果发送到管理CPU 102,那么CPU 102可执行额外检验/处理以确定应如何转发所述包(例如在SW路由表104中执行查找)。
2.路由字典树
在特定实施方案中,路由器100将SW路由表104维持为二元字典树(称为“路由字典树”),此使SW路由表104的遍历及搜索更高效。图2描绘可用于表示图1的SW路由表104的示范性路由字典树200。如所展示,路由字典树200包含分支节点(由无标记圆圈表示)及路由节点(由标记有“R”的圆圈表示)两者。每一分支节点对应于路由字典树200中的“分叉”,且因此形成子字典树的根。每一路由节点对应于SW路由表104中的路由条目。进一步来说,每一节点(无论是分支还是路由)与IP地址前缀相关联。通常存在关于可如何定位路由字典树的节点的两个规则:
1.假定节点1具有mask1/m位的前缀,节点2具有mask2/n位的前缀,且m>n。如果mask2与mask1的前n个位相同,那么节点1为节点2的下节点。
2.如果mask1的第(n+1)个位为0,那么节点1在节点2的左子字典树处。否则,其在节点2的右子字典树处。
为图解说明以上规则,考虑到包含对应于以下两个路由的两个路由条目的路由表:01001010/8及01010101/8(以二元形式表示)。在此实例中,所述表的路由字典树将含有三个节点:两个路由节点(一个节点针对两个路由中的每一者);及一根节点,其为与前缀010/3相关联的分支节点(这是因为其两个子代节点从第4个位开始不同)。注意,如果添加新路由010/3,那么路由字典树仍将含有三个节点—与前缀010/3相关联的分支节点将变为路由节点。
3.多包处理器联网系统
虽然图1的路由器100描绘为具有单个包处理器及单个HW路由表的独立装置,但一些路由器实施为互连装置/模块系统,其中每一装置/模块并入有单独包处理器(以及单独HW路由表)。此些系统在本文中称为“多包处理器”(MPP)联网系统。
举例来说,图3描绘堆叠系统300(还称作“堆叠”),其为一种类型的MPP联网系统。如所展示,堆叠系统300包括经由堆叠端口314(1)到314(3)互连的若干个可堆叠交换器302(1)到302(3)。每一可堆叠交换器302(1)到302(3)包含类似于图1的路由器100的组件,例如管理CPU 304(1)到304(3)、SW路由表306(1)到306(3)、包处理器308(1)到308(3)、HW路由引擎310(1)到310(3)、HW路由表312(1)到312(3)及数据端口316(1)到316(3)。然而,不是用作个别交换器/路由器,而是系统300的可堆叠交换器302(1)到302(3)可作为单个逻辑交换器/路由器一齐起作用。例如,可堆叠交换器302(1)可在入口数据端口316(1)上接收包,到其本地HW路由表312(1)中执行查找(经由HW路由引擎310(1)),且基于所述查找而确定应将包从(例如)可堆叠交换器302(3)的出口数据端口316(3)向外转发以便到达其下一跃点目的地。可堆叠交换器302(1)可接着经由堆叠链路318将包发送到可堆叠交换器302(3),借此允许交换器302(3)将包从适当出口数据端口向外转发。
图4描绘底板系统400,其为另一类型的MPP联网系统。底板系统400包含管理模块402及经由内部交换器组构408互连的若干个I/O模块410(1)到410(3)。管理模块402包含类似于图1的路由器100的管理CPU 102及SW路由表104的管理CPU 404及SW路由表406。另外,每一I/O模块410(1)到410(3)包含类似于图1的路由器100的组件106到112的包处理器412(1)到412(3)、HW路由引擎414(1)到414(3)、HW路由表416(1)到416(3)及数据端口418(1)到418(3)。一般来说,I/O模块410(1)到410(3)可一齐起作用以实施底板系统400的各种数据平面功能,包含L3路由。例如,I/O模块410(1)可在入口数据端口418(1)上接收包,到其本地HW路由表416(1)中执行查找(经由HW路由引擎414(1)),且基于所述查找而确定应将包从(例如)I/O模块410(2)的出口数据端口418(2)向外转发以便到达其下一跃点目的地。I/O模块410(1)可接着经由交换器组构408将包发送到I/O模块410(2),借此允许I/O模块410(2)将包从适当出口数据端口向外转发。
关于在MPP联网系统(例如如上文所描述的堆叠系统300或底板系统400)中执行L3路由的一种低效率与利用系统的多个HW路由表的方式有关。特定来说,由于入口包可到达系统的任一包处理器,因此在每一包处理器的HW路由表中复制路由条目的同一集合。结果,系统的HW路由表容量受最小HW路由表的大小限制。例如,在堆叠系统300中,假定HW路由表312(1)支持16K条目而HW路由表312(2)及312(3)各自支持32K条目。在此情况中,每一HW路由表312(1)到312(3)将限于保持最多16K条目(这是因为超过16K的额外条目无法在表312(1)中复制)。此意味系统的HW路由资源的显著百分比(例如,分别在表312(2)及312(3)中的16K条目)将不被使用。此还意味系统的HW路由表容量无法随着添加额外交换器而扩展。
发明内容
本发明提供用于聚合装置系统中的硬件路由资源的技术。在一个实施例中,所述装置系统中的装置可将所述系统的软件路由表中的路由条目划分成多个路由子集。所述装置可进一步将所述多个路由子集中的每一路由子集指派给所述系统中的一或多个装置。所述装置可接着针对指派给所述装置的每一路由子集将所述路由子集中的路由条目安装到所述装置的硬件路由表中。
以下详细说明及附图提供对特定实施例的性质及优点的更好理解。
附图说明
图1描绘示范性路由器。
图2描绘示范性路由字典树。
图3描绘示范性堆叠系统。
图4描绘示范性底板系统。
图5描绘根据一实施例的支持HW路由资源的聚合的堆叠系统。
图6描绘根据一实施例的由图5的堆叠系统执行以在系统部件当中分布路由条目的流程图。
图7描绘根据一实施例的用于执行路由条目的初始HW编程的流程图。
图8A及8B描绘根据一实施例的用于转发传入包的流程图。
图9描绘根据一实施例的基于图8A及8B的流程图的实例性包流程。
图10描绘根据一实施例的用于从HW路由表移除被删除路由条目的流程图。
图11描绘根据一实施例的用于将新路由条目添加到HW路由表的流程图。
图12描绘根据一实施例的用于重新平衡所有者集合的流程图。
具体实施方式
在以下说明中,出于解释的目的,陈述众多实例及细节以便提供对各种实施例的理解。然而,所属领域的技术人员将明白,特定实施例可在不具有这些细节中的一些细节的情况下来实践或者可以其修改或等效内容来实践。
1.概述
本发明描述用于在MPP联网系统中聚合HW路由资源使得所述系统不再受系统的最小HW路由表的容量限制的技术。在一组实施例中,此可通过以下方式实现:将系统的SW路由表(表示为路由字典树)中的路由条目划分成若干个路由子集;将每一路由子集指派给所述系统中的一或多个装置/模块;及将指派给特定装置/模块的路由子集安装于所述装置/模块的本地HW路由表中(而不安装其它路由子集)。以此方式,SW路由表中的路由条目可跨越所述系统中的所有HW路由表有效地分离,而非在每一HW路由表中经复制。所述系统还可针对指派给远程装置/模块的路由在每一装置/模块的HW路由表中安装一或多个特殊路由条目(在本文中称为“重定向条目”)。这些重定向条目可指向作为下一跃点的远程装置/模块。
当在特定装置/模块处接收入口包时,所述装置/模块可执行第一L3查找以确定匹配所述包的目的地IP地址的路由条目是否安装于所述装置/模块的本地HW路由表中。如果找到匹配路由条目,那么所述装置/模块可基于所述条目而致使所述包从系统的出口数据端口向外转发。
另一方面,如果在本地HW路由表中未找到匹配路由条目(此意味所述路由条目安装于称为“远程”装置/模块的另一装置/模块的HW路由表中),那么L3查找可匹配上文所提到的将远程装置/模块识别为下一跃点的重定向条目。此又可致使所述装置/模块经由系统内链路(例如,在堆叠系统的情形中的堆叠链路或在底板系统的情形中的内部交换器组构链路)将包转发到远程装置/模块。在接收到经转发包后,远程装置/模块即刻可到其HW路由表(其将包含匹配包的目的地IP地址的本地安装的路由条目)中执行第二L3查找。远程装置/模块可接着基于所述本地安装的路由条目而将包从适当出口数据端口向外朝向其目的地转发。
由于MPP联网系统的SW路由表跨越系统的HW路由表分布(而非在系统的HW路由表中经复制),因此以上方法允许系统实现大约等于其构成装置/模块的个别HW路由表容量的和的总HW路由表容量。举例来说,如果MPP联网系统包括各自支持16K条目的三个HW路由表,那么系统可具有16K+16K+16K=48K条目的总路由表容量(减去特定数目个用于重定向的条目)。此又使得MPP联网系统能够更高效地利用其HW路由资源,而且在添加额外装置/模块(具有额外HW路由表)时扩展以支持更多路由。一般来说,前述方法将不会显著不利地影响系统的路由性能,这是因为入口包对于路由最多被处理两次(例如,第一次用于在入口装置/模块处的L3查找且第二次用于在远程装置/模块处的L3查找,如果必要的话)。
在特定实施例中,将路由子集指派给装置/模块可使用新颖所有权模型来实施,其中每一路由子集与包含零与N个所有者(其中N为系统中的装置/模块的总数目,且其中具有零个所有者的所有者集合指示相关联路由应安装到所有装置/模块)之间的“所有者集合”相关联。如下文进一步详细地描述,此所有权模型是有利的,这是因为其支持冗余(即,多个装置/模块对路由条目的所有权)且简化用于负载平衡目的的路由重新指派。
为了解释清楚,在以下章节中,数个实例及实施例在堆叠系统的上下文中描述本发明的技术。然而,应了解,这些技术还可应用于其它类型的MPP联网系统,例如图4的底板系统400。因此,在详细说明内,对“堆叠”或“堆叠系统”的提及可被解释为囊括包括多个装置或模块的广义MPP系统,且对“交换器”或“可堆叠交换器”的提及可被解释为囊括MPP系统内的广义装置/模块。
2.系统环境
图5描绘根据一实施例的支持HW路由表聚合的堆叠系统500。如所展示,堆叠系统500包括若干个可堆叠交换器502(1)到502(N),其中的每一者包含类似于图3的可堆叠交换器302(1)到302(3)的组件的特定组件(例如,管理CPU 304(1)到304(N)、SW路由表306(1)到306(N)、包处理器308(1)到308(N)、HW路由引擎310(1)到310(N)、HW路由表312(1)到312(N)、堆叠端口314(1)到314(N)及数据端口316(1)到316(N))。尽管可堆叠交换器502(1)到502(N)描绘为形成环形拓扑,但应了解其它类型的拓扑(例如,线性、星形、任意网状等)也是可能的。
在图5的实例中,可堆叠交换器502(2)指定为堆叠系统500的主控交换器(由字母“M”表示),此意味交换器502(2)用作用于系统500的所有管理功能的用户接触点。例如,主控交换器502(2)可接受并处理引导到堆叠系统500的总体配置的用户命令。主控交换器502(2)还可视需要与堆叠系统500的非主控交换器通信以便将各种类型的管理命令及数据传播到那些交换器。
如背景技术章节中所讨论,关于在例如堆叠系统500的MPP联网系统中执行L3路由的一种低效率为:通常在系统的每一HW路由表中复制相同路由条目。此复制意味堆叠系统的HW路由表容量受最小HW路由表的大小限制,而无论系统中的其它HW路由表的大小或HW路由表的总数目如何。
为解决前述及其它类似问题,图5的每一可堆叠交换器502(1)到502(N)包含新颖路由划分组件504(1)到504(N)、新颖路由指派组件506(1)到506(N)及新颖路由编程组件508(1)到508(N)(或者,仅主控交换器502(2)可包含这些组件,此在下文经描述)。在一组实施例中,组件504(1)到504(N)、506(1)到506(N)及508(1)到508(N)可实施为由相应管理CPU304(1)到304(N)执行且存储于相关联存储器(未展示)中的软件。在其它实施例中,这些组件中的一或多者可部分地或完全地以硬件来实施。
在高阶下,路由划分组件504(1)到504(N)、路由指派组件506(1)到506(N)及路由编程组件508(1)到508(N)可一齐工作以跨越HW路由表312(1)到312(N)分布堆叠系统500的SW路由表中的路由条目,而非在每一HW路由表中复制所述条目。例如,路由划分组件504(1)到504(N)可首先将SW路由表中的路由条目划分成若干个路由子集。路由指派组件506(1)到506(N)可随后将所述路由子集中的每一者指派给一或多个可堆叠交换器502(1)到502(N),且路由编程组件508(1)到508(N)可将每一路由子集中的路由安装到路由子集所指派到的可堆叠交换器的HW路由表中。作为此稍后部分的部分,路由编程组件508(1)到508(N)可针对未经本地安装(即,仅安装于系统中的其它“远程”交换器的HW路由表中)的那些路由条目将“重定向条目”安装于每一HW路由表312(1)到312(N)中。这些重定向条目可指向作为下一跃点的远程交换器,借此允许主交换器知道将匹配那些条目的包发送到哪里。
接着,在运行堆叠系统500时,可堆叠交换器502(1)到502(N)(其根据本发明的实施例经修改)的HW路由引擎310(1)到310(N)可使用已安装于如上文所提及的HW路由表312(1)到312(N)中的路由条目及重定向条目以分布式方式转发传入包。举例来说,如果特定HW路由引擎310(X)在其本地HW路由表312(X)中找到入口包的匹配路由条目(使用LPM),那么HW路由引擎310(X)可基于所述路由条目而致使所述包从堆叠系统500的出口数据端口向外转发。然而,如果使用LPM在HW路由表312(X)中找到匹配重定向条目(而非匹配路由条目),那么HW路由引擎310(X)可基于所述重定向条目而将包转发到堆叠系统500的在其HW路由表中针对所述包具有适当路由条目的另一可堆叠交换器(例如,“远程”交换器502(Y))。远程交换器502(Y)的HW路由引擎310(Y)可接着匹配所述包与在其本地HW路由表312(Y)中的路由条目且将所述包从出口数据端口向外朝向其目的地转发。以此方式,堆叠系统500可正确地路由在任一成员交换器处接收的包,而不需要在每一交换器的HW路由表中复制相同路由条目。
在以下章节中呈现关于路由划分组件504(1)到504(N)、路由指派组件506(1)到506(N)、路由编程组件508(1)到508(N)及HW路由引擎310(1)到310(N)的操作的额外细节。
3.划分、指派及安装路由条目
图6描绘根据一实施例的可由图5的组件504(1)到504(N)、506(1)到506(N)及508(1)到508(N)执行以用于在HW路由表312(1)到312(N)当中分布堆叠系统500的SW路由表中的路由条目的高阶流程图600。在一组实施例中,可在堆叠系统500的初始化阶段期间在系统开始接受数据业务以用于转发/路由之前执行流程图600。
应注意,流程图600(及本发明中的其它流程图)假定:(1)图5的SW路由表306(1)到306(N)跨越可堆叠交换器502(1)到502(N)同步;且(2)由每一交换器502(1)到502(N)的路由划分、指派及/或编程组件独立地执行流程图步骤。此称为“分布式”方法。
在替代实施例中,可由堆叠系统500中的主控交换器(即,主控交换器502(2))的路由划分、指派及/或编程组件单独执行流程图600(及本文中所描述的特定其它流程图)的步骤。此称为“集中式”方法。借助集中式方法,不需要非主控交换器执行组件506到508的例子;而是,主控交换器可确定如何针对堆叠系统中的每一可堆叠交换器划分、指派及安装路由,且可仅仅为每一非主控交换器提供待安装于其本地HW路由表中的路由条目列表。此集中式方法还消除跨越交换器同步化SW路由表的需要—主控交换器需要维持SW路由表的仅单个副本。
一般来说,只要堆叠系统500的每一可堆叠交换器502(1)到502(N)执行相同算法,分布式方法便应产生与集中式方法相同的结果(即,HW路由表312(1)到312(N)中的相同路由安装)。
现在转向图6的框602,每一可堆叠交换器502(X)的路由划分组件504(X)可首先将其SW路由表306(X)中的路由条目划分成若干个路由子集,其中每一路由子集包含一或多个路由条目。如背景技术章节中提到,在特定实施例中,SW路由表可表示/维持为字典树数据结构(即,路由字典树)。因此,在这些实施例中,将SW路由表划分成路由子集可包括分割路由字典树的路由节点。
在各种实施例中,在框602处形成的路由子集的数目不受堆叠系统500中的可堆叠交换器的数目限制。例如,尽管存在N个可堆叠交换器502(1)到502(N),但SW路由表可划分成P个路由子集,其中P小于、等于或大于N。在特定实施例中,如果SW路由表306(X)中存在总共Q个路由条目,那么路由划分组件504(X)可划分SW路由表使得P个子集中的每一者包括大约Q/N个条目。
在框604处,路由指派组件506(X)可接收由路由划分组件504(X)形成的路由子集且可将每一路由子集指派给包括可堆叠交换器502(1)到502(N)中的零个或更多的“所有者集合”。以此方式,路由指派组件506(X)可确定哪些子集应安装到堆叠系统500的哪些交换器/HW路由表。一般来说,所有者集合可为非排他性的—换句话说,两个不同所有者集合(针对两个不同路由子集)可包含相同可堆叠交换器或“所有者”。进一步来说,如果所有者集合包含零个所有者,那么所述情况指示指派给所述所有者集合的路由子集可安装到堆叠系统中的每一可堆叠交换器的HW路由表中。
上文所描述的所有权模型允许路由到交换器/HW路由表的非常灵活的指派。举例来说,此模型使得特定重要路由(例如,覆盖大范围的地址的子网路由,或默认路由)能够出于冗余及/或性能原因而指派给多个所有者。在一个实施例中,具有等于或小于8的前缀长度的路由可指派给空所有者集合(且因此指派给每一可堆叠交换器)。
进一步来说,此所有权模型允许相对简单负载平衡,通常在1)可堆叠交换器加入或离开堆叠系统或2)可堆叠交换器由于路由添加而开始耗尽其HW路由表中的自由空间时需要/期望所述相对简单负载平衡。例如,当路由条目需要从特定可堆叠交换器的HW路由表卸载时,可仅仅修改所有者集合以重新混洗路由子集指派,而非重新划分SW路由表/字典树。下文在章节5.3中更详细地描述此负载平衡过程。
一旦路由子集已根据框604指派给所有者集合,每一可堆叠交换器502(X)的路由编程组件508(X)便可将交换器502(X)所拥有的路由子集中的路由条目安装到其本地HW路由表312(X)中(框606)。作为此步骤的部分,路由编程组件508(X)还可安装对应于安装于堆叠系统500中的其它可堆叠交换器(即,远程交换器)上的路由条目的一或多个重定向条目。这些重定向条目中的每一者可包含远程交换器的身份/地址作为其下一跃点地址。以此方式,可堆叠交换器502(X)可知道在其本地HW路由表312(X)不包含匹配包的目的地IP地址的实际路由条目的情况下将入口包转发到哪里以用于进一步路由。
为阐明框606处的处理,图7描绘根据一实施例的提供关于路由编程组件508(X)可如何将路由及重定向条目安装到HW路由表312(X)中的额外细节的流程图700。流程图700假定HW路由表312(X)最初是空的,且因此可在堆叠系统500的初始化阶段期间(如上文所提到)或在可堆叠交换器502(X)重新加入堆叠系统500时实施。
在框702处,路由编程组件508(X)可针对表示为路由字典树的SW路由表306(X)中的每一路由节点进入循环。存在可实施循环702的不同方式,例如经由SW路由字典树的先序(即,首先是父代)或后序(即,首先是子代)遍历。所选择的特定遍历方法可取决于HW路由表312(X)的硬件设计(例如,一些TCAM需要子代与父代节点之间的特定遍历次序)。
在循环702内,路由编程组件508(X)可首先检查R不具有所有者(即,指派给具有零个所有者的所有者集合,此意味路由指派给每一可堆叠交换器)还是可堆叠交换器502(X)在R的所有者集合中。如果如此,那么路由编程组件508(X)可借助将包转发到R的下一跃点地址的行动将R的路由条目安装到HW路由表312(X)中(框706),且可继续到循环反复的结束(框712)。
另一方面,如果在框704处的检查失败,那么路由编程组件508(X)可继续检查R及SW路由字典树中的父代路由节点是否共享共同所有者(框708)。如本文中所使用,术语“父代路由节点”指代SW路由字典树中为路由节点的最近祖先节点。如果直接父代节点为分支节点,那么此可并非R在字典树中的直接父代节点。
如果R及父代路由节点共享共同所有者,那么所述情况意味针对父代节点的HW条目将涵盖对应于R的路由。结果,不需要将任何东西安装到R的HW路由表312(X)中且路由编程组件508(X)可继续到循环反复的结束(框712)。
如果R及父代路由节点不共享共同所有者,那么路由编程组件508(X)可借助将包转发到R的所有者集合中的可堆叠交换器的行动将R的重定向条目安装到HW路由表312(X)中(框710)。如先前所讨论,此重定向条目不同于在框706处安装的路由条目,这是因为重定向条目将仅仅致使可堆叠交换器502(X)经由一或多个堆叠链路将匹配包转发到路由所有者以用于进一步L3处理,而非从堆叠系统500的出口数据端口向外转发。
在特定实施例中,路由编程组件508(X)可在框710处确定R具有多个所有者。在此情况中,路由编程组件508(X)可随机选择一所有者来作为下一跃点包含在重定向条目中。或者,路由编程组件508(X)可基于(例如)优化目的的一或多个准则而选择所有者。举例来说,所述准则可包含最短路径(即,最少跃点计数)、最大堆叠端口带宽及/或类似物。
最后,当前循环反复可结束(框712)且路由编程组件508(X)可返回到框702以处理SW路由字典树中的额外路由节点(直到已遍历整个字典树)。
应了解,流程图700为说明性且各种修改/替代实施方案是可能的。例如,在特定实施例中,可修改流程图700以减少安装于HW路由表312(X)中的条目的数目,借此实现“硬件压缩”。此可涉及(例如)量化在框706处执行的路由条目安装,使得如果R的下一跃点等于其父代路由节点的下一跃点,那么不安装路由条目(这是因为父代的路由条目应涵盖R)。
关于上文修改的一个警告为,如果SW路由字典树中的任一现有路由节点的下一跃点改变,那么应审查/调整所述路由节点及所有其直接子代路由节点以视需要添加或从适当HW路由表移除路由条目。下文在章节5.1中讨论“直接子代路由”的定义及执行此调整的方式。
4.运行时间包转发流程
一旦可堆叠交换器502(1)到502(N)的路由划分、指派及编程组件已实施图6的处理,交换器的HW路由引擎便可基于在框606处安装的HW条目而以分布式方式执行传入包的L3路由。图8A及8B根据一实施例描绘可由特定可堆叠交换器502(X)的HW路由引擎310(X)(连同远程可堆叠交换器502(Y)的HW路由引擎310(Y))执行流程图800以用于路由入口包。
以图8A的框802开始,HW路由引擎310(X)可在可堆叠交换器502(X)的数据端口316(X)处接收入口包。HW路由引擎310(X)可接着提取包的目的地IP地址(框804)且使用最长前缀匹配(LPM)在本地HW路由表312(X)中执行对目的地IP地址的L3查找(框806)。
在框808处,HW路由引擎310(X)可确定HW路由表312(X)中的LPM所匹配条目是路由条目(即,根据图7的框706安装的条目)还是重定向条目(即,根据图7的框710安装的条目)。如果LPM所匹配条目为路由条目,那么HW路由引擎310(X)可致使包从可堆叠交换器502(X)(或堆叠系统500的另一可堆叠交换器)的出口数据端口316(X)向外朝向由路由条目识别的下一跃点转发(框810)。此转发可包含(例如)使包的生存时间(TTL)字段递减,用下一跃点的MAC地址替换包的目的地MAC地址,且用可堆叠交换器502(X)的MAC地址替换包的源MAC地址。可接着完成包的L3处理且流程图800可结束。
另一方面,如果框808处的LPM匹配的条目为重定向条目,那么HW路由引擎310(X)可将包从可堆叠交换器502(X)的堆叠端口314(X)向外朝向在重定向条目内识别为下一跃点的远程可堆叠交换器(例如,交换器502(Y))转发(框812)。不同于在框810处的转发,在框812处的转发通常将不包含对包的L2或L3标题的任何修改。流程图800可接着继续到图8B,其由远程交换器502(Y)的HW路由引擎310(Y)实施。
在图8B的框814及816处,HW路由引擎310(Y)可在堆叠端口314(Y)处接收经转发包且可提取包的目的地IP地址。HW路由引擎310(Y)可接着使用LPM在本地HW路由表312(Y)中执行对目的地IP地址的第二L3查找(框818)。一般来说,此第二L3查找将产生与包的实际路由条目的匹配,这是因为可堆叠交换器502(Y)在包括包的路由的路由子集的所有者集合中。在一些实施例中,由于将HW路由表编程(例如,在负载平衡期间的重新编程等)的定时,第二L3查找找不到匹配的路由条目的几率很微小;在这些情形中,HW路由引擎310(Y)可采取默认行动,例如丢弃包或将其陷获到管理CPU304(Y)。
最后,HW路由引擎310(Y)可致使包从可堆叠交换器502(Y)的出口数据端口316(Y)向外朝向由所匹配路由条目识别的下一跃点转发(框820)。在框820处的转发通常将包含关于图8A的框810所描述的相同包修改。
为形象化地图解说明图8A及8B的处理,图9描绘根据一实施例的基于流程图800的实例性包流程。在流程900的步骤(1)(参考数字902)处,堆叠系统500的可堆叠交换器502(1)在数据端口上接收入口包。作为响应,可堆叠交换器502(1)的HW路由引擎在其本地HW路由表中执行第一L3查找以基于包的目的地IP地址而确定将包转发到哪里(步骤(2),参考数字904))。如关于图8A所描述,如果指派给可堆叠交换器502(1)的路由子集包含涵盖包的目的地IP地址的路由条目,那么可堆叠交换器502(1)将能够将包转发到堆叠系统500的适当出口交换器/端口。然而,在图9的实例中,假定包的真实路由条目安装于可堆叠交换器502(2)(即,路由所有者)上。因此,作为步骤(2)的部分,可堆叠交换器502(1)的HW路由引擎检测与将可堆叠交换器502(2)识别为下一跃点的重定向条目的匹配,且经由堆叠链路将包转发到交换器502(2)(步骤(3),参考数字906)。
在步骤(4)(参考数字908)处,可堆叠交换器502(2)的HW路由引擎接收经转发包且确定(例如,基于附加到包的特殊堆叠标签)其需要在其本地HW路由表中针对包执行第二L3查找。基于此第二L3查找,可堆叠交换器502(2)的HW路由引擎匹配包的目的地IP地址的实际路由条目且确定用于将包从堆叠系统500的出口交换器/端口向外转发。可堆叠交换器502(2)接着经由一或多个堆叠链路将包从出口交换器(在此情形中,可堆叠交换器502(N))向外转发(步骤(5),参考数字910),出口交换器随后将包发送出适当出口数据端口到下一跃点目的地(步骤(6),参考数字912)。
5.重新编程HW路由表
当堆叠系统500根据图8A及8B的流程图800运行且执行包的L3路由时,安装于每一HW路由表312(1)到312(N)中的路由及重定向条目可出于各种原因偶尔需要更新/修改。通常有三种情况需要考虑:
1.路由删除–从SW路由字典树删除路由节点
2.路由添加–将路由节点添加到SW路由字典树
3.负载平衡–可堆叠交换器加入或离开堆叠系统,或可堆叠交换器耗尽其HW路由表中的自由条目,从而使路由条目跨越HW路由表的重新平衡成为必需
下文又描述用于处置这些情况中的每一者的技术。
5.1路由删除
如果待从SW路由字典树被删除的路由节点未安装于堆叠系统500中的任何可堆叠交换器的HW路由表中,那么可从SW路由字典树仅仅移除所述路由节点而不进行进一步处理。然而,如果所述路由节点安装于一或多个HW路由表中,那么应移除经安装HW条目且应在HW表中调整所述经删除路由节点的直接子代路由。图10描绘根据一实施例的可由路由编程组件508(X)执行以用于实施此移除/调整过程的流程图1000。注意,流程图1000仅需要由堆叠系统500的为待被删除的路由的所有者的可堆叠交换器执行。
以框1002开始,路由编程组件508(X)可从HW路由表312(X)移除待从SW路由字典树被删除的路由条目(即,条目B)。路由编程组件508(X)可接着针对SW路由字典树中的B的每一直接子代路由节点(即,C)进入循环(框1004)。如本文中所使用,路由节点B的“直接子代路由”C为SW路由字典树的子字典树中的由B生根的路由节点,其中B与C之间不存在路由节点。举例来说,在图2的路由字典树200中,R1、R3及R4为R2的直接子代路由。
在一个实施例中,路由编程组件508(X)可经由由B生根的子字典树的先序遍历而遍历B的所有直接子代路由。例如,下文为用于执行此先序遍历的示范性递归函数的伪代码列表。“节点”输入参数为待遍历的子字典树的根节点。
列表1
在其它实施例中,可使用其它类型的遍历方法(例如,后序等)。
在循环1004内,路由编程组件508(X)可首先检查C不具有所有者还是可堆叠交换器502(X)为C的所有者(框1006)。如果如此,那么路由编程组件508(X)可确定C的路由条目安装于HW路由表312(X)中且不需要针对经安装条目的改变。因此,路由编程组件508(X)可继续到当前循环反复的结束(框1014)。
如果在框1006处的检查失败,那么路由编程组件508(X)可继续检查C及B的父代路由节点(即,A)是否共享共同所有者(框1008)。如果如此,那么路由编程组件508(X)可从HW路由表312(X)移除C的路由条目(如果已安装此条目),这是因为A的HW条目将涵盖C(1010)。路由编程组件508(X)可接着继续到当前循环反复的结束(框1014)。
另一方面,如果在框1008处路由编程组件508(X)确定C及A不共享共同所有者,那么路由编程组件508(X)可将C的路由条目安装到HW路由表312(X)中(如果还未安装此条目),这是因为先前使用B的经移除条目来涵盖C(框1012)。此安装逻辑类似于图7的框708及710(在图7的框708的上下文中,“父代路由节点”为B的父代路由,这是因为将移除B)。
最后,当前循环反复可结束(框1014)且路由编程组件508(X)可返回到框1004以处理B的额外直接子代路由(直到已遍历所有直接子代路由)。
应了解,流程图1000为说明性且各种修改/替代实施方案是可能的。举例来说,如果使用先前所讨论的集中式方法来实施流程图1000,那么堆叠系统500的主控交换器可针对具有安装于HW中的路由B的每一可堆叠交换器执行流程图700。在此实施例中,可优化流程图700使得主控交换器运行其仅一次(例如,算法可在框1006之前循环经过所有可堆叠交换器)。所属领域的技术人员将认识到其它修改、变化及替代形式。
5.2路由添加
当路由节点添加到SW路由字典树且指派给路由子集时,新路由通常应安装到路由子集的所有者的HW路由表中。图11描绘根据一实施例的可由每一所有者交换器502(X)的路由编程组件508(X)执行以用于执行此安装的流程图1100。
在框1102处,路由编程组件508(X)可执行图7的框704到710(即,初始编程流程)以便将新路由安装到HW路由表312(X)中。接着,在框1104处,路由编程组件508(X)可执行图10的框1004到1014以便调整新添加的路由的直接子代路由。在此实施例中,图10的路由B可对应于新路由且图10的路由C可对应于新路由的直接子代路由。注意,针对路由添加情况,应修改图10的框1008以读取“C及B具有共同所有者?”而非“C及B的父代路由节点(A)具有共同所有者?”,这是因为B正被添加而非删除。
5.3负载平衡
如上文所提到,通常在1)可堆叠交换器加入或离开系统500或2)可堆叠交换器由于路由添加而耗尽其HW路由表中的自由条目时需要/期望堆叠系统500中的路由的负载平衡。执行此负载平衡的一种方式是将SW路由字典树重新分割成不同路由子集。然而,此方法是复杂的且可能耗时的(如果需要许多HW添加及/或删除)。
由先前章节中所讨论的所有权模型达成的更好方法是调整与路由子集相关联的所有者集合以便重新分布路由负载。举例来说,假定将SW路由字典树的路由划分成P个路由子集,其中P大于或小于系统中的可堆叠交换器的数目(即,N)。每一路由子集对应于所有者集合,且因此存在P个所有者集合。在此情况中,每一所有者集合1-P中的所有者可动态地添加或移除以平衡每一交换器的HW负载。显著地,此负载平衡方法不需要SW路由字典树的重新分割,且因此比重新分割方法更简单且高效。然而,在一些实施例中,已改变所有权的所有可堆叠交换器可需要重新遍历SW路由字典树以便调整其HW路由条目。图12描绘根据一实施例的可由每一受影响交换器502(X)的路由编程组件508(X)执行以用于实施此调整过程的流程图1200。流程图1200假定已出于负载平衡目的修改系统的所有者集合。
应注意,用于实施此调整过程的最简单方法是移除已改变所有者集合的每一交换器的所有HW路由条目且经由图7的流程图700重新编程那些交换器的HW路由表。然而,此方法可造成业务中断,这是因为数据业务在HW路由表的重新编程期间仍将传入。结果,HW路由引擎在重新编程过程期间可能将找不到传入数据业务中的一些传入数据业务的匹配HW条目。
在流程图1200的框1202处,路由编程组件508(X)可执行图7的流程图700(即,初始编程流程)且在SW路由表/字典树306(X)中标记待安装于HW路由表312(X)中的路由条目。
在框1204处,路由编程组件508(X)可遍历SW路由字典树且移除HW路由表312(X)中的根据框1202未经标记的经安装条目。
最后,在框1206处,路由编程组件508(X)可再一次遍历SW路由字典树且可将在SW路由字典树中经标记但尚未安装的路由条目安装到HW路由表312(X)中。在一些实施例中,可取决于不同担忧而反转框1204及1206的次序。举例来说,在添加新条目(根据框1206)之前移除经安装条目(根据框1204)可致使一些传入数据业务不匹配HW路由表中的条目中的任何者。另一方面,在移除经安装条目之前添加新条目需要HW路由表中可能得不到的足够暂时空间量。解决这些担忧中的两者的一种方式是实施可计算所需要的暂时空间量且可基于所述空间要求及表中实际上可用的空间而确定是否在1204之前执行框1206(或反之亦然)的混合方法。
以上说明图解说明本发明的各种实施例连同可如何实施本发明的方面的实例。以上实例及实施例不应被认为是唯一实施例,且经呈现以图解说明由所附权利要求书界定的本发明的灵活性及优点。举例来说,尽管已关于特定过程流程及步骤描述特定实施例,但所属领域的技术人员应明了,本发明的范围不严格限于所描述的流程及步骤。可并行执行描述为顺序的步骤,步骤次序可变化,且可修改、组合、添加或省略步骤。作为另一实例,尽管已使用硬件与软件的特定组合描述特定实施例,但应认识到硬件与软件的其它组合也是可能的,且描述为以软件实施的特定操作还可以硬件实施,且反之亦然。
因此,应将说明书及图式视为具有说明性意义而非限制性意义。所属领域的技术人员将明白且可在不背离所附权利要求书所陈述的本发明的精神及范围的情况下采用其它布置、实施例、实施方案及等效形式。

Claims (19)

1.一种用于在包括多个装置的联网系统中聚合硬件路由资源的方法,所述方法包括:
由所述多个装置中的装置将所述系统的软件路由表中的路由条目划分成多个路由子集;
由所述装置将所述多个路由子集中的每一路由子集指派给所述多个装置中的一或多个装置;以及
由所述装置针对指派给所述装置的所述多个路由子集中的每一路由子集,将所述路由子集中的一个或多个所述路由条目安装到所述装置的硬件路由表中;以及
将至少一个重定向条目安装到所述装置的所述硬件路由表中,其中所述至少一个重定向条目对应于未指派给所述装置的路由子集中的路由条目,且其中所述至少一个重定向条目将与所述多个装置中的所述装置不同的另一装置识别为下一跃点。
2.根据权利要求1所述的方法,其中将未指派给所述装置的所述路由子集指派给所述另一装置。
3.根据权利要求2所述的方法,其进一步包括:
在所述装置的入口端口处接收数据包;
确定所述数据包的目的地IP地址;
使用最长前缀匹配LPM算法在所述硬件路由表中执行对所述目的地IP地址的查找;且
如果所述LPM算法将所述硬件路由表中的路由条目选择为匹配所述目的地IP地址,那么将所述数据包转发到由所述匹配的路由条目识别的下一跃点。
4.根据权利要求3所述的方法,其中将所述数据包转发到由所述匹配的路由条目识别的所述下一跃点包括:
使所述数据包的生存时间TTL字段递减;
用所述下一跃点的MAC地址替换所述数据包的目的地MAC地址;
用与所述装置或所述系统相关联的MAC地址替换所述数据包的源MAC地址;以及
将所述数据包从所述装置的出口数据端口向外发送。
5.根据权利要求3所述的方法,其进一步包括:
如果所述LPM算法将所述至少一个重定向条目选择为匹配所述目的地IP地址,那么将所述数据包转发到所述另一装置。
6.根据权利要求5所述的方法,其中将所述数据包转发到所述另一装置包括在不修改所述数据包的情况下将所述数据包从装置间端口向外发送到所述另一装置。
7.根据权利要求5所述的方法,其进一步包括由所述另一装置进行以下操作:
在所述另一装置的硬件路由表中执行对所述目的地IP地址的第二查找;以及
基于所述第二查找而将所述数据包转发到另一个下一跃点。
8.根据权利要求1所述的方法,其中将所述软件路由表维持为二元字典树,且其中将所述软件路由表中的每一路由条目表示为所述二元字典树中的路由节点。
9.根据权利要求8所述的方法,其中将所述软件路由表的所述路由条目划分成所述多个路由子集包括分割二元字典树的一个或多个路由节点。
10.根据权利要求8所述的方法,其中将所述路由子集中的一个或多个所述路由条目安装到所述装置的所述硬件路由表中包括:针对所述二元字典树中的每一路由节点:
如果所述路由节点为指派给所述装置的路由子集的部分,那么将对应于所述路由节点的所述路由条目安装到所述硬件路由表中。
11.根据权利要求10所述的方法,其中如果所述路由条目的下一跃点与所述路由节点在所述二元字典树中的父代的下一跃点相同,那么不将所述路由条目安装到所述硬件路由表中。
12.根据权利要求10所述的方法,其中将所述路由子集中的一个或多个所述路由条目安装到所述装置的所述硬件路由表中包括:针对所述二元字典树中的每一路由节点:
如果所述路由节点并非指派给所述装置的路由子集的部分,那么确定所述路由节点及所述路由节点在所述二元字典树中的父代是否为指派给共同装置的一或多个路由子集的部分。
13.根据权利要求12所述的方法,其中安装所述至少一个重定向条目包括:针对所述二元字典树中的每一路由节点:
如果所述路由节点及所述父代并非指派给共同装置的一或多个路由子集的部分,那么将重定向条目安装到所述硬件路由表中,所述重定向条目包含将包转发到所述装置系统中所述路由节点的路由子集所指派到的装置的行动。
14.根据权利要求1所述的方法,其进一步包括:如果从所述软件路由表删除路由条目,那么:
从所述路由条目所安装到的每一装置的所述硬件路由表删除所述路由条目;且
在经删除路由条目所安装到的每一装置的所述硬件路由表中调整所述经删除路由条目的一个或多个直接子代路由条目。
15.根据权利要求1所述的方法,其中将所述多个路由子集中的每一路由子集指派给所述系统中的一或多个装置包括将每一路由子集指派给所有者子集,所述多个路由子集中的所述所有者子集包含所述一或多个装置。
16.根据权利要求15所述的方法,其中将至少一个路由子集指派给包含所述装置系统中的每一装置的所述多个路由子集中的第一个所有者子集。
17.根据权利要求15所述的方法,其进一步包括:
确定所述装置系统中的所述装置的所述硬件路由表已变满;以及
修改所述多个所有者子集中的一或多者以改变指派给所述装置的所述路由子集。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,当所述计算机程序由包括多个装置的联网系统中的装置的处理器执行时,由所述处理器执行以下步骤:
将所述系统的软件路由表中的路由条目划分成多个路由子集;
将所述多个路由子集中的每一路由子集指派给所述系统中的一或多个装置;
针对指派给所述装置的每一路由子集将所述路由子集中的一个或多个所述路由条目安装到所述装置的硬件路由表中;以及
将至少一个重定向条目安装到所述装置的所述硬件路由表中,其中所述至少一个重定向条目对应于未指派给所述装置的路由子集中的路由条目,且其中所述至少一个重定向条目将与所述多个装置中的所述装置不同的另一装置识别为下一跃点。
19.一种供在包括多个装置的联网系统中使用的装置,所述装置包括:
多个装置间端口,其用于将所述装置以通信方式耦合到所述多个装置中的一或多个其它装置;
多个数据端口;
硬件路由表;
处理器;以及
非暂时性计算机可读媒体,其上存储有在由所述处理器执行时致使所述处理器进行以下操作的可执行程序代码:
将所述系统的软件路由表中的路由条目划分成多个路由子集;
将所述多个路由子集中的每一路由子集指派给所述多个装置中的一或多个装置;
针对指派给所述装置的每一路由子集将所述路由子集中的路由条目安装到所述硬件路由表中;以及
将至少一个重定向条目安装到所述装置的所述硬件路由表中,其中所述至少一个重定向条目对应于未指派给所述装置的路由子集中的路由条目,且其中所述至少一个重定向条目将与所述多个装置中的所述装置不同的另一装置识别为下一跃点。
CN201510142392.XA 2014-03-27 2015-03-27 在联网系统中使用的方法和装置以及计算机可读介质 Active CN104954270B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461971429P 2014-03-27 2014-03-27
US61/971,429 2014-03-27
US14/506,943 US9692695B2 (en) 2014-03-27 2014-10-06 Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US14/506,943 2014-10-06

Publications (2)

Publication Number Publication Date
CN104954270A CN104954270A (zh) 2015-09-30
CN104954270B true CN104954270B (zh) 2018-08-28

Family

ID=52823427

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510142392.XA Active CN104954270B (zh) 2014-03-27 2015-03-27 在联网系统中使用的方法和装置以及计算机可读介质

Country Status (3)

Country Link
US (1) US9692695B2 (zh)
EP (1) EP2924927B1 (zh)
CN (1) CN104954270B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
CN104283811B (zh) * 2013-07-09 2017-10-03 新华三技术有限公司 报文转发方法和装置
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
US9185049B2 (en) 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
US9577932B2 (en) 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
US9692652B2 (en) 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US9866472B2 (en) 2014-12-09 2018-01-09 Oath Inc. Systems and methods for software defined networking service function chaining
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
WO2018046986A1 (en) * 2016-09-09 2018-03-15 Telefonaktiebolaget Lm Ericsson (Publ) Techniques for efficient forwarding information base reconstruction using point of harvest identifiers
JP6683090B2 (ja) * 2016-09-26 2020-04-15 株式会社デンソー 中継装置
US10382333B2 (en) * 2017-05-31 2019-08-13 Juniper Networks, Inc. Fabric path context-based forwarding for virtual nodes
US10764241B2 (en) 2018-03-01 2020-09-01 Dell Products L.P. Address assignment and data forwarding in computer networks
CN108919762B (zh) * 2018-07-06 2021-05-25 东莞市李群自动化技术有限公司 基于工业以太网的控制方法及装置
CN111049746B (zh) * 2018-10-12 2022-04-22 华为技术有限公司 一种路由表项生成方法、字典树生成方法和装置
CN114124704B (zh) * 2021-11-19 2024-01-23 北京天融信网络安全技术有限公司 路由优化方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441580A (zh) * 2002-02-28 2003-09-10 株式会社Ntt都科摩 包通信系统和传送设备
US7496096B1 (en) * 2002-01-31 2009-02-24 Cisco Technology, Inc. Method and system for defining hardware routing paths for networks having IP and MPLS paths
CN102684999A (zh) * 2012-04-20 2012-09-19 中兴通讯股份有限公司南京分公司 数据包处理方法及装置

Family Cites Families (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4625308A (en) 1982-11-30 1986-11-25 American Satellite Company All digital IDMA dynamic channel allocated satellite communications system and method
US5481073A (en) 1994-06-09 1996-01-02 Quintech, Inc. Modular broadband bidirectional programmable switch system with stacked modular switch arrangement
US5651003A (en) 1995-06-07 1997-07-22 Whitetree, Inc. Stackable data cell switch architecture
US6243756B1 (en) 1997-06-23 2001-06-05 Compaq Computer Corporation Network device with unified management
EP0910224B1 (en) 1997-09-19 2007-06-06 Hitachi, Ltd. Apparatus and method for connection switching and control
TW454124B (en) 1997-11-28 2001-09-11 Accton Technology Corp Network stack with automatic switch device for the switch
US6111672A (en) 1998-02-20 2000-08-29 Mci Communications Corporation Method, apparatus, and computer program product for optical network restoration
US6490276B1 (en) 1998-06-29 2002-12-03 Nortel Networks Limited Stackable switch port collapse mechanism
US6496502B1 (en) 1998-06-29 2002-12-17 Nortel Networks Limited Distributed multi-link trunking method and apparatus
US6654761B2 (en) 1998-07-29 2003-11-25 Inxight Software, Inc. Controlling which part of data defining a node-link structure is in memory
US6597658B1 (en) 1998-12-28 2003-07-22 At&T Corp. Hierarchical telecommunications network with fault recovery
US6850521B1 (en) 1999-03-17 2005-02-01 Broadcom Corporation Network switch
US6377987B1 (en) 1999-04-30 2002-04-23 Cisco Technology, Inc. Mechanism for determining actual physical topology of network based on gathered configuration information representing true neighboring devices
US6765877B1 (en) 1999-08-30 2004-07-20 Cisco Technology, Inc. System and method for detecting unidirectional links
GB2356110B (en) 1999-11-02 2001-10-03 3Com Corp Stacked network devices including a protocol engine and distributed trunk ports and method of operating same
ATE265774T1 (de) 1999-12-07 2004-05-15 Broadcom Corp Spiegelung in einer netzwerkvermittlungsstapelanordnung
US7426179B1 (en) 2000-03-17 2008-09-16 Lucent Technologies Inc. Method and apparatus for signaling path restoration information in a mesh network
US7120683B2 (en) 2000-04-03 2006-10-10 Zarlink Semiconductor V.N. Inc. Single switch image for a stack of switches
EP1162788B1 (en) 2000-06-09 2012-11-21 Broadcom Corporation Trunking and mirroring across stacked gigabit switches
US6725326B1 (en) 2000-08-15 2004-04-20 Cisco Technology, Inc. Techniques for efficient memory management for longest prefix match problems
DE60116401T2 (de) 2000-09-20 2006-09-07 Broadcom Corp., Irvine Netzwerkvermittlung mit der Möglichkeit Anschlüsse zu blockieren
US6839342B1 (en) 2000-10-09 2005-01-04 General Bandwidth Inc. System and method for interfacing signaling information and voice traffic
US6850542B2 (en) 2000-11-14 2005-02-01 Broadcom Corporation Linked network switch configuration
KR20020058782A (ko) 2000-12-30 2002-07-12 이계안 차량 속도 제어방법 및 시스템
GB2371705B (en) 2001-01-30 2003-04-23 3Com Corp Network switch with mutually coupled look-up engine and network processor
US7206309B2 (en) 2001-03-27 2007-04-17 Nortel Networks Limited High availability packet forward apparatus and method
US7035937B2 (en) 2001-04-25 2006-04-25 Cornell Research Foundation, Inc. Independent-tree ad hoc multicast routing
US7206283B2 (en) 2001-05-15 2007-04-17 Foundry Networks, Inc. High-performance network switch
US7002965B1 (en) 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
US7139267B2 (en) 2002-03-05 2006-11-21 Industrial Technology Research Institute System and method of stacking network switches
US8112578B2 (en) 2001-11-01 2012-02-07 Micron Technology, Inc. Low power, hash-content addressable memory architecture
US7161948B2 (en) 2002-03-15 2007-01-09 Broadcom Corporation High speed protocol for interconnecting modular network devices
US7007123B2 (en) 2002-03-28 2006-02-28 Alcatel Binary tree arbitration system and method using embedded logic structure for controlling flag direction in multi-level arbiter node
US7327727B2 (en) 2002-06-04 2008-02-05 Lucent Technologies Inc. Atomic lookup rule set transition
US7093027B1 (en) 2002-07-23 2006-08-15 Atrica Israel Ltd. Fast connection protection in a virtual local area network based stack environment
US7313667B1 (en) 2002-08-05 2007-12-25 Cisco Technology, Inc. Methods and apparatus for mapping fields of entries into new values and combining these mapped values into mapped entries for use in lookup operations such as for packet processing
US7697419B1 (en) 2002-11-22 2010-04-13 Allied Telesyn International Corporation Apparatus and method for managing a set of switches in a computer network
US7274694B1 (en) 2003-01-09 2007-09-25 Cisco Technology, Inc. Defining link aggregation across a stack
US7523227B1 (en) 2003-01-14 2009-04-21 Cisco Technology, Inc. Interchangeable standard port or stack port
US7480258B1 (en) 2003-07-03 2009-01-20 Cisco Technology, Inc. Cross stack rapid transition protocol
US7415011B2 (en) 2003-08-29 2008-08-19 Sun Microsystems, Inc. Distributed switch
US7336622B1 (en) 2003-09-08 2008-02-26 Cisco Technology, Inc. Method and system for resolving switch number conflicts in a stackable switch system
US7234019B1 (en) 2003-12-12 2007-06-19 Raza Microelectronics, Inc. Method and apparatus for implementing a search engine using an SRAM
KR100564768B1 (ko) 2003-12-26 2006-03-27 한국전자통신연구원 순차룩업에 의한 패킷헤더 룩업장치 및 방법
US7111139B2 (en) 2004-03-02 2006-09-19 Hitachi, Ltd. Data synchronization of multiple remote storage
CN100370740C (zh) 2004-03-06 2008-02-20 鸿富锦精密工业(深圳)有限公司 堆叠式交换机管理方法
CN1954560B (zh) 2004-03-31 2011-06-15 Ipt株式会社 固定长数据的检索装置及检索管理方法
WO2005112346A2 (en) 2004-04-29 2005-11-24 Dematic Corp. Network topology discovery
US7290083B2 (en) 2004-06-29 2007-10-30 Cisco Technology, Inc. Error protection for lookup operations in content-addressable memory entries
US20060013212A1 (en) 2004-07-13 2006-01-19 Hartej Singh Port aggregation across stack of devices
US7974272B2 (en) 2004-07-29 2011-07-05 Conexant Systems, Inc. Remote control of a switching node in a stack of switching nodes
US7136289B2 (en) 2004-08-30 2006-11-14 Cisco Technology, Inc. Dual-stacked 10 Gigabit X2 uplinks in a single rack unit switch
US7489683B2 (en) 2004-09-29 2009-02-10 Intel Corporation Integrated circuit capable of routing multicast data packets using device vectors
US7522541B2 (en) 2004-10-11 2009-04-21 International Business Machines Corporation Identification of the configuration topology, existing switches, and miswires in a switched network
US7505403B2 (en) 2004-10-28 2009-03-17 Alcatel Lucent Stack manager protocol with automatic set up mechanism
US7483383B2 (en) 2004-10-28 2009-01-27 Alcatel Lucent Stack manager protocol with automatic set up mechanism
JP4369351B2 (ja) * 2004-11-30 2009-11-18 株式会社日立製作所 パケット転送装置
KR100612256B1 (ko) 2005-01-14 2006-08-14 삼성전자주식회사 터너리 내용 주소화 메모리 관리 장치 및 그 방법
US7852831B2 (en) 2005-02-22 2010-12-14 Akbar Imran M Method and system for providing private virtual secure Voice over Internet Protocol communications
EP1854250B1 (en) 2005-02-28 2011-09-21 International Business Machines Corporation Blade server system with at least one rack-switch having multiple switches interconnected and configured for management and operation as a single virtual switch
US7570601B2 (en) 2005-04-06 2009-08-04 Broadcom Corporation High speed autotrunking
US8135806B2 (en) 2005-05-06 2012-03-13 Broadcom Corporation Virtual system configuration
US7978719B2 (en) 2005-06-10 2011-07-12 International Business Machines Corporation Dynamically assigning endpoint identifiers to network interfaces of communications networks
US7389377B2 (en) 2005-06-22 2008-06-17 Netlogic Microsystems, Inc. Access control list processor
US20070081463A1 (en) 2005-10-11 2007-04-12 Subash Bohra System and Method for Negotiating Stack Link Speed in a Stackable Ethernet Switch System
US8045473B2 (en) 2005-11-28 2011-10-25 Cisco Technology, Inc. Tailored relief for congestion on application servers for real time communications
WO2007084422A2 (en) 2006-01-13 2007-07-26 Sun Microsystems, Inc. Modular blade server
US7904642B1 (en) 2007-02-08 2011-03-08 Netlogic Microsystems, Inc. Method for combining and storing access control lists
KR100864888B1 (ko) 2007-02-12 2008-10-22 삼성전자주식회사 라우팅 시스템 및 라우팅 시스템의 룰 엔트리 관리 방법
US7978700B2 (en) 2007-03-12 2011-07-12 Marvell Israel (Misl) Ltd. Apparatus for determining locations of fields in a data unit
US7814192B2 (en) 2007-05-09 2010-10-12 Computer Associates Think, Inc. System and method for automatically deploying a network design
US7793032B2 (en) 2007-07-11 2010-09-07 Commex Technologies, Ltd. Systems and methods for efficient handling of data traffic and processing within a processing device
US8667095B2 (en) 2007-11-09 2014-03-04 Cisco Technology, Inc. Local auto-configuration of network devices connected to multipoint virtual connections
US8213297B2 (en) 2007-11-27 2012-07-03 International Business Machines Corporation Duplicate internet protocol address resolution in a fragmented switch stack environment
JP5086780B2 (ja) 2007-11-29 2012-11-28 アラクサラネットワークス株式会社 通信装置および通信システム、並びに通信障害検出方法
CN101478434B (zh) 2009-01-19 2011-07-06 杭州华三通信技术有限公司 一种配置堆叠端口的方法和交换设备
CN101478435B (zh) 2009-01-20 2011-01-12 杭州华三通信技术有限公司 一种堆叠系统的拓扑收集方法和双控制板设备
US9032057B2 (en) 2009-04-06 2015-05-12 Brocade Communications Systems, Inc. Secure stacking setup implementing user interface of stacking device
US9282057B2 (en) 2009-05-11 2016-03-08 Brocade Communication Systems, Inc. Flexible stacking port
US8619605B2 (en) 2009-05-13 2013-12-31 Avaya Inc. Method and apparatus for maintaining port state tables in a forwarding plane of a network element
CN101610182B (zh) 2009-06-26 2011-09-07 杭州华三通信技术有限公司 堆叠中多主用设备冲突检测方法及堆叠成员设备
US8654680B2 (en) 2010-03-16 2014-02-18 Force10 Networks, Inc. Packet forwarding using multiple stacked chassis
US8645631B2 (en) 2010-03-29 2014-02-04 Via Technologies, Inc. Combined L2 cache and L1D cache prefetcher
US8307153B2 (en) 2010-05-05 2012-11-06 Juniper Networks, Inc. Power efficient and rule movement optimized TCAM management
WO2012032864A1 (ja) 2010-09-08 2012-03-15 日本電気株式会社 スイッチシステム、スイッチ制御方法、及び記憶媒体
US20120087232A1 (en) 2010-10-12 2012-04-12 Brocade Communications Systems, Inc. Link state relay for physical layer emulation
US8750144B1 (en) 2010-10-20 2014-06-10 Google Inc. System and method for reducing required memory updates
US20120155485A1 (en) 2010-12-16 2012-06-21 Fujitsu Network Communications, Inc. Efficient space utilization of distributed mac address tables in ethernet switches
WO2012114157A1 (en) 2011-02-25 2012-08-30 Nokia Corporation A method and an apparatus for a gateway
US8874876B2 (en) 2011-03-22 2014-10-28 Texas Instruments Incorporated Method and apparatus for packet switching
US8891527B2 (en) 2012-02-03 2014-11-18 Gigamon Inc. Systems and methods for packet filtering and switching
US20130232193A1 (en) 2012-03-04 2013-09-05 Zafar Ali Control-Plane Interface Between Layers in a Multilayer Network
US8923113B2 (en) 2012-06-27 2014-12-30 Cisco Technology, Inc. Optimizations in multi-destination tree calculations for layer 2 link state protocols
US9098601B2 (en) 2012-06-27 2015-08-04 Futurewei Technologies, Inc. Ternary content-addressable memory assisted packet classification
US9269439B1 (en) 2012-08-31 2016-02-23 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for TCAM based look-up
US10097378B2 (en) 2012-09-07 2018-10-09 Cisco Technology, Inc. Efficient TCAM resource sharing
US8937945B2 (en) 2012-09-12 2015-01-20 Alcatel Lucent Method and apparatus for optimizing usage of ternary content addressable memory (TCAM)
US9178807B1 (en) 2012-09-20 2015-11-03 Wiretap Ventures, LLC Controller for software defined networks
US8982727B2 (en) 2012-10-22 2015-03-17 Futurewei Technologies, Inc. System and apparatus of generalized network controller for a software defined network (SDN)
US9106515B2 (en) 2012-10-22 2015-08-11 Futurewei Technologies, Inc. System and apparatus of a software-service-defined-network (SSDN)
US9245626B2 (en) 2012-10-26 2016-01-26 Cisco Technology, Inc. System and method for packet classification and internet protocol lookup in a network environment
US9154370B2 (en) 2012-11-05 2015-10-06 Cisco Technology, Inc. Seamless multipath retransmission using source-routed tunnels
US8937955B2 (en) * 2012-12-05 2015-01-20 Cisco Technology, Inc. System and method for scaling IPv6 addresses in a network environment
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
US9426020B2 (en) 2013-03-15 2016-08-23 Cisco Technology, Inc. Dynamically enabling selective routing capability
US9148387B2 (en) 2013-05-10 2015-09-29 Brocade Communications Systems, Inc. Hardware hash table virtualization in multi-packet processor networking systems
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
US9225589B2 (en) 2013-06-19 2015-12-29 Cisco Technology, Inc. Fast reroute using different frequency-hopping schedules
US20150016277A1 (en) 2013-07-10 2015-01-15 Dell Products L.P. Interconnect error notification system
US9503322B2 (en) 2013-07-31 2016-11-22 Dell Products L.P. Automatic stack unit replacement system
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
US9185049B2 (en) 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
US9876715B2 (en) * 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US9577932B2 (en) 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
US9692652B2 (en) 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496096B1 (en) * 2002-01-31 2009-02-24 Cisco Technology, Inc. Method and system for defining hardware routing paths for networks having IP and MPLS paths
CN1441580A (zh) * 2002-02-28 2003-09-10 株式会社Ntt都科摩 包通信系统和传送设备
CN102684999A (zh) * 2012-04-20 2012-09-19 中兴通讯股份有限公司南京分公司 数据包处理方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A high-throughput and high-capacity IPv6 routing lookup system;HSIAO YI-MAO ET AL;《COMPUTER NETWORKS》;20121116;全文 *
putting routing tables in silicon;T-B PEI ET AL;<IEEE Network Magazine>;19920131;第42页至第44页 *
路由器包处理器芯片设计;胡庆生;《中兴通讯技术》;20010831(第4期);第20页至第22页 *

Also Published As

Publication number Publication date
EP2924927A1 (en) 2015-09-30
US9692695B2 (en) 2017-06-27
CN104954270A (zh) 2015-09-30
US20150281055A1 (en) 2015-10-01
EP2924927B1 (en) 2018-09-19

Similar Documents

Publication Publication Date Title
CN104954270B (zh) 在联网系统中使用的方法和装置以及计算机可读介质
CN105706401B (zh) 具有跨硬件模块的基于表管理的分层路由方法及系统
CN105049359B (zh) 用于分布式路由表查找的分布式路由器的入口计算节点和机器可读介质
CN104580027B (zh) 一种OpenFlow报文转发方法及设备
CN106489255B (zh) 用于在高性能计算(hpc)环境中支持高效负载均衡的系统和方法
CN104247348A (zh) 使用软件定义的组网的内联服务的链接
CN107113322A (zh) 创建和管理可迁移式逻辑业务链的硬件和软件方法
JP6373021B2 (ja) 異なるように構成された最長プレフィックスマッチテーブルを処理するための装置および方法
US20160204986A1 (en) Multiple mobility domains with vlan translation in a multi-tenant network environment
WO2012149789A1 (zh) Vpc迁移中的资源匹配方法及装置
JP6574054B2 (ja) パケット転送
JP3813136B2 (ja) 通信制御装置、通信制御方法、通信制御プログラム、通信制御用データ構造
EP3560148B1 (en) Database functions-defined network switch
US20150256450A1 (en) Generating a Shape Graph for a Routing Table
EP3559833B1 (en) Best-efforts database functions
CN104486224A (zh) 路由学习方法和设备
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
CN108400922B (zh) 虚拟局域网络配置系统与方法及其计算机可读存储介质
CN106063228B (zh) 保持路由信息的方法及网络设备控制器
JP6437694B2 (ja) パケット転送
CN106230983A (zh) 一种控制装置及方法
CN103916321B (zh) 定义软件定义网络的网络元件的查找表实现的方法和设备
CN103368798B (zh) 数据传输网络中基于内容的寻址的方法和网络部件
CN104506440A (zh) 路由器的数据包发送方法和路由表修改方法
CN112437065A (zh) Sdn环境下基于图形表示的策略冲突检测及解决方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: California, USA

Applicant after: BROCADE COMMUNICATIONS SYSTEMS, Inc.

Address before: California, USA

Applicant before: BROCADE COMMUNICATIONS SYSTEMS, INC.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20180209

Address after: West Yorkshire

Applicant after: Ares International IP Co.,Ltd.

Address before: California, USA

Applicant before: Brocade Communications Systems, Inc.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant