CN102549988B - 路由器和由路由器执行的方法 - Google Patents
路由器和由路由器执行的方法 Download PDFInfo
- Publication number
- CN102549988B CN102549988B CN201080042774.0A CN201080042774A CN102549988B CN 102549988 B CN102549988 B CN 102549988B CN 201080042774 A CN201080042774 A CN 201080042774A CN 102549988 B CN102549988 B CN 102549988B
- Authority
- CN
- China
- Prior art keywords
- fib
- forwarding
- overall
- line card
- information
- 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
-
- 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
-
- 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/03—Topology update or discovery by updating link state protocols
-
- 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/54—Organization of routing tables
Abstract
经过滤的转发信息库(FIB)(“完整本地FIB”)通常在线卡上被用于确定如何转发分组。完整本地FIB是通过过滤(即丢弃或除去)路由器的标准全局FIB中的无关条目来生成的。该更小FIB然后被安置在可能被实现为单个专用集成电路(ASIC)的转发引擎的存储器内,以用于确定如何转发分组,其中路由器相应地转发分组。
Description
技术领域
本公开总地涉及通信系统。
背景技术
通信产业正快速改变以适应新兴技术和不断增长的客户要求。对新应用和现有应用的增长性能的该客户要求正在驱动通信网络和系统提供者利用具有更高速度和容量(例如,更大带宽)的网络和系统。在试图实现这些目标时,许多通信提供者所采用的常见手段是使用分组交换技术。
路由器是网络中用于使分组“按路由”通过该网络的通信设备。通常,路由器利用路由协议来交换信息,以发现网络拓扑并且确定用于使分组按路由通过网络的路径。所交换的信息通常被存储在路由信息库(RIB)中。路由器然后处理RIB中的信息以利用转发信息库(FIB)中存储的该信息来确定如何从该路由器转发分组。对于每个路由,FIB通常包含(例如,前缀):对从哪个接口转发对应分组以及下一跳信息的标识,并且可能包含当标签交换路由被执行时使用的标签。在网络的核心中,FIB可能包含成千上万的条目(例如,FIB中的每个路由都有一条)。当路由器使用分布式架构时,相同的FIB通常被存储在每个线卡(line card)上;虽然在虚拟专用网的情况下,不同线卡上存储的FIB可以是不同的。
发明内容
尤其公开了与基于经过滤(filtered)转发信息库(FIB)的分组转发相关联的方法、装置、计算机存储介质、机构和装置。在一个实施例中,一种路由器执行一种方法,该方法包括:经由一个或多个路由协议与其他路由器通信,以生成用于标识与所述路由器相连的网络的拓扑信息的路由 信息库(RIB),所述拓扑信息包括所述网络内的路由;根据所述RIB生成标识多个路由的转发信息的全局转发信息库(FIB),其中所述转发信息包括对所述路由器中用于转发对应分组的外出接口以及下一跳信息的标识;过滤所述全局FIB以生成标识所述路由器所接收到的多个分组的转发信息的完整本地FIB,使得该完整本地FIB包括少于所述全局FIB中的所有条目的拷贝,其中所述完整本地FIB对应于多个路由但不是所述多个路由中的所有路由;基于所述完整本地FIB确定如何转发所述多个分组中的每一个分组;以及基于所述完整本地FIB转发所述多个分组中的每一个。
一个实施例包括一种路由器,该路由器包括:包括路由器处理器和存储器的路由处理子系统,被配置用于经由一个或多个路由协议与其他路由器通信,以生成用于标识与所述路由器相连的网络的拓扑信息的路由信息库(RIB),所述拓扑信息包括所述网络内的路由;并且被配置用于根据所述RIB生成标识多个路由的转发信息的全局转发信息库(FIB),其中所述转发信息包括对所述路由器中用来转发对应分组的外出接口以及下一跳信息的标识;可通信地耦合到所述路由处理子系统的多个线卡,其中所述多个线卡中的每一个包括:多个接口,用于与其他通信设备传输分组;存储装置,被配置用于存储包括针对如何从所述路由器转发对应分组的转发信息的全局转发信息库(FIB),其中所述转发信息包括对下一跳信息以及所述路由器中用来转发对应分组的外出接口的标识;转发引擎,被配置用于存储完整本地FIB,并且被配置用于基于所述完整本地FIB确定如何转发分组;以及一个或多个处理器,被配置用于过滤在所述线卡上本地存储的所述全局FIB以生成标识分组的转发信息的所述完整本地FIB,使得所述完整本地FIB包括少于所述全局FIB中的所有条目的拷贝。
一个实施例包括一种路由器,该路由器包括:多个线卡,其中所述多个线卡中的每一个包括:多个接口,被配置用于发送和接收分组;存储装置,被配置用于存储包括针对如何从所述路由器转发对应分组的转发信息的全局转发信息库(FIB),其中所述转发信息包括对下一跳信息以及所述路由器中用来转发对应分组的外出接口的标识;转发引擎,被配置用于存储完整本地FIB,并且被配置用于基于所述完整本地FIB确定如何转发 分组;以及用于过滤在所述线卡上本地存储的所述全局FIB以生成标识分组的转发信息的所述完整本地FIB,使得所述完整本地FIB包括少于所述全局FIB中的所有条目的拷贝的装置;以及一个或多个通信机构,被配置用于在所述多个线卡之间传输分组或信息。
附图说明
所附权利要求具体阐明了本发明的特征。根据结合附图理解的以下详细描述,本发明及其优点可以得到最好的理解,在附图中:
图1图示出根据一个实施例进行操作的通信设备(例如路由器)的框图;
图2图示出在一个实施例中使用的示例系统或组件;并且
图3图示出在一个实施例中执行的处理。
具体实施方式
尤其公开了与基于经过滤转发信息库(FIB)的分组转发相关联的方法、装置、计算机存储介质、机构和装置。在此描述的实施例包括各种元件和限定,其中没有一个元件或限制被预期作为关键性的元件或限制。每个权利要求单独完整记载本发明的一个方面。另外,所描述的一些实施例可以尤其包括但不限于系统、网络、集成电路芯片、嵌入式处理器、ASIC、方法以及包含指令的计算机可读介质。在下文中描述的实施例实现在本发明的范围和精神内的各种方面和配置,其中附图图示出示例性和非限制性配置。注意到,用于执行方法和处理块操作的计算机可读介质和装置被公开并且与本发明的可扩展范围和精神一致。
注意,附图中(包括但不限于任何框图和流程图以及消息时序图)所示的步骤、连接以及信号和信息的处理通常可以以相同或不同的串行或并行顺序并且/或者由不同组件和/或处理、线程等来执行,并且/或者通过不同连接并与其它实施例中的其它功能相组合来执行,除非这使得实施例失效或者明确地或隐含地要求了顺序(例如,对于读取值、处理所读取值的序列,该值必须在处理它之前被获取,尽管可以在读取操作之前、同时和/ 或之后执行一些相关联的处理)。
术语“一个实施例”在这里用来提及特定实施例,其中,每次对“一个实施例”的提及可以指不同实施例,并且在描述相关联的特征、元件和/或限制时在此对术语的重复使用并不是建立各个以及每个实施例必须包括的、相关联特征、元件和/或限制的累积集合,尽管任何实施例可以包括联系特定不同实施例描述的特征、元件和/或限制中的一些、全部或者零个。另外,术语“第一”、“第二”等通常在此用来表示不同单元(例如,第一元件、第二元件)。这里对这些术语的使用不一定蕴含了诸如一个单元或事件在另一单元或事件之前出现或到来之类的次序,而是提供了在特定单元之间进行区别的机制。此外,短语“基于x”和“响应于x”用来表示从其导出或引出某事物的项“x”的最小集合,其中,“x”是可扩展的并且不必描述操作被执行的项的完整列表。另外,短语“耦合到”用来表示两个元件或设备之间的某种层级的直接或间接连接,其中,耦合的一个或多个设备修改或不修改被耦合信号或被传输的信息。此外,术语“或”在此用来标识对联合项中的一个或多个项(包括所有项)的选择。另外,与“含有”、“包含”或“特征在于”同义的过渡术语“包括”是包容性或开放式的,并且不排除另外的、未记载的元件或方法步骤。注意,在本文档中描述或提及的任何事物不被认为是针对本申请的现有技术,除非明确这样阐明。
在一个实施例中,一种方法被一种路由器执行,其中所述方法包括:通过所述路由器经由一个或多个路由协议与其他路由器通信,以生成用于标识与所述路由器相连的网络的拓扑信息的路由信息库(RIB),所述拓扑信息包括所述网络内的路由;根据所述RIB生成标识多个路由的转发信息的全局转发信息库(FIB),其中所述转发信息包括对所述路由器中用于转发对应分组的外出接口以及下一跳信息的标识;过滤所述全局FIB以生成标识所述路由器所接收到的多个分组的转发信息的完整本地FIB,使得该完整本地FIB包括少于所述全局FIB中的所有条目的拷贝以使得该完整本地FIB不包括所述多个路由中的所有路由;基于所述完整本地FIB确定如何转发所述多个分组中的每一个分组;以及基于所述完整本地FIB转 发所述多个分组中的每一个。
在一个实施例中,所述路由器包括:线卡;其中所述线卡包括:多个接口,被配置用于发送和接收分组;所述全局FIB;以及转发引擎,用于执行所述基于所述完整本地FIB确定如何转发所述多个分组中的每一个分组的操作;并且其中,所述转发引擎包括所述完整本地FIB。在一个实施例中,所述线卡包括包含所述转发引擎的专用集成电路,其中所述包括所述完整本地FIB。
在一个实施例中,所述路由器包括:路由处理子系统和线卡;其中所述与其他路由器通信以及生成所述全局FIB的操作是由所述路由处理子系统执行的;其中所述方法包括将所述全局FIB的拷贝存储在所述线卡上;其中所述线卡包括:被复制到其的所述全局FIB以及转发引擎,该转发引擎用于执行所述基于在所述线卡上存储的所述完整本地FIB确定如何转发所述多个分组中的每一个分组的操作;其中所述转发引擎包括所述完整本地FIB;并且其中所述过滤全局FIB以生成完整本地FIB的操作是在所述线卡上执行的。在一个实施例中,所述线卡包括包含所述转发引擎的专用集成电路,其中所述包括所述完整本地FIB。
在一个实施例中,所述过滤操作响应于所配置的所述路由器的所述线卡的预定角色。在一个实施例中,所述一个或多个路由协议包括内部网关协议(IGP)。在一个实施例中,所述全局FIB包括用于标识所述全局FIB中的所述转发信息的哪个部分应当并且哪个部分不应当通过所述过滤所述全局FIB的操作被安置在所述完整本地FIB中的标记信息;并且其中所述标记信息标识出与从所述一个或多个路由协议中的至少一个特定路由协议接收到的路由信息相对应的所有转发信息应当通过所述过滤所述全局FIB的操作被安置在所述完整本地FIB中。
在一个实施例中,所述全局FIB包括用于标识所述全局FIB中的所述转发信息的哪个部分应当并且哪个部分不应当通过所述过滤所述全局FIB的操作被安置在所述完整本地FIB中的标记信息。一个实施例包括标记RIB中的路由使得所述生成所述全局FIB的操作致使所述标记信息被包括在所述完整本地FIB中。
在一个实施例中,所述全局FIB包括包含用于所述多个路由中的多个标签交换路由的标签的转发信息;并且其中,所述过滤所述全局FIB的操作基于所述拓扑信息过滤掉所述多个标签交换路由中将不会被所述线卡用于转发分组的一个或多个标签交换路由。在一个实施例中,所述过滤所述全局FIB的操作基于所述拓扑信息过滤掉所述多个路由中将不会被所述线卡用于转发分组的一个或多个路由。在一个实施例中,所述在确定是否要将条目包括在本地FIB来生成所述完整本地FIB时过滤所述全局FIB的操作响应于经由用户接口接收到的配置设定。在一个实施例中,所述在确定是否要将条目包括在本地FIB来生成所述完整本地FIB时过滤所述全局FIB的操作响应于所述全局FIB中的条目的管理标签、前缀范围或者掩码长度。在一个实施例中,所述全局FIB包括超过一百个不同转发信息条目;并且其中所述过滤所述全局FIB的操作导致只有用于单个缺省路由的转发信息被存储在所述完整本地FIB中。在一个实施例中,所述全局FIB包括超过十万个不同转发信息条目;并且其中所述过滤所述全局FIB的操作导致少于一万不同转发条目被存储在所述完整本地FIB中。
一种实施例包括一种路由器,包括:包括路由器处理器和存储器的路由处理子系统,被配置用于经由一个或多个路由协议与其他路由器通信,以生成用于标识与所述路由器相连的网络的拓扑信息的路由信息库(RIB),所述拓扑信息包括所述网络内的路由;并且被配置用于根据所述RIB生成标识多个路由的转发信息的全局转发信息库(FIB),其中所述转发信息包括对所述路由器中用来转发对应分组的外出接口以及下一跳信息的标识;可通信地耦合到所述路由处理子系统的多个线卡,其中所述多个线卡中的每一个包括:多个接口,用于与其他通信设备传输分组;存储装置,被配置用于存储包括针对如何从所述路由器转发对应分组的转发信息的全局转发信息库(FIB),其中所述转发信息包括对下一跳信息以及所述路由器中用来转发对应分组的外出接口的标识;转发引擎,被配置用于存储完整本地FIB,并且被配置用于基于所述完整本地FIB确定如何转发分组;以及一个或多个处理器,被配置用于过滤在所述线卡上本地存储的所述全局FIB以生成标识分组的转发信息的所述完整本地FIB,使得 所述完整本地FIB包括少于所述全局FIB中的所有条目的拷贝。
在一个实施例中,所述多个线卡中的每一个包括包含所述转发引擎的专用集成电路,其中所述包括所述完整本地FIB。在一个实施例中,所述全局FIB包括用于标识所述全局FIB中的所述转发信息的哪个部分应当并且哪个部分不应当被被配置用于过滤在所述线卡上本地存储的所述全局FIB以生成所述完整本地FIB的所述一个或多个处理器安置在所述完整本地FIB中的标记信息。
一种实施例包括一种路由器,包括:多个线卡,其中所述多个线卡中的每一个包括:多个接口,被配置用于发送和接收分组;存储装置,被配置用于存储包括针对如何从所述路由器转发对应分组的转发信息的全局转发信息库(FIB),其中所述转发信息包括对下一跳信息以及所述路由器中用来转发对应分组的外出接口的标识;转发引擎,被配置用于存储完整本地FIB,并且被配置用于基于所述完整本地FIB确定如何转发分组;以及用于过滤在所述线卡上本地存储的所述全局FIB以生成标识分组的转发信息的所述完整本地FIB,使得所述完整本地FIB包括少于所述全局FIB中的所有条目的拷贝的装置;以及一个或多个通信机构,被配置用于在所述多个线卡之间传输分组或信息。在一个实施例中,对于所述多个线卡中的每个特定线卡,所述过滤所述全局FIB的装置响应于所配置的所述特定线卡的预定角色。在一个实施例中,所述多个线卡中的第一线卡和所述多个线卡中的第二线卡各自被配置为具有不同预定角色,并且其中所述第一和第二线卡中所述用于过滤所述全局FIB的装置被配置为基于所述不同预定角色来生成不同的完整本地FIB。在一个实施例中,所述路由器包括:路由处理子系统,包括:存储装置,被配置用于存储路由信息库(RIB)和全局转发信息库(FIB);一个或多个处理元件;用于基于利用一个或多个路由协议与一个或多个其他路由器交换的路由信息来建立所述RIB的装置,其中所述RIB标识与所述路由器相连的网络的路由和拓扑信息;以及用于基于所述路由信息库(RIB)生成用于标识如何从所述路由器转发分组的所述路由器的全局转发信息库(FIB)的装置;其中,所述全局FIB被从所述路由处理子系统复制到所述多个线卡中的每一个;并且其中,所 述一个或多个通信机构被配置用于在所述多个线卡和所述路由处理子系统之间传输分组或信息。在一个实施例中,所述多个线卡中的每个特定线卡上的所述用于过滤在所述线卡上本地存储的所述全局FIB以生成所述完整本地FIB的装置被配置为根据其被配置的预定角色来过滤路由。
清楚地,转到附图,图1图示出根据一个实施例进行操作的通信设备,路由器100。如图所示,路由器100包括路由处理子系统110、n个线卡130A-N(其中n是一个或多个),以及用于提供路由处理子系统110与线卡130A-N之间的通信的一个或多个通信机构120(例如,交换结构、总线、背板等)。
如图所示,路由处理子系统110的一个实施例包括一个或多个处理元件111,路由信息库(RIB)和全局转发信息库(FIB)的存储装置112。通常,路由处理子系统经由一个或多个路由协议与其他路由器通信,以生成用于标识与路由器100相连的网络的拓扑信息(包括其中的路由)的RIB。基于RIB,路由处理子系统生成标识多个路由的转发信息的全局FIB,其中所述转发信息通常包括对路由器100中用于转发相应分组的外出接口以及下一跳信息的标识。通常,FIB被分发给线卡130A-N中的每一个。注意,在一个实施例中,路由器100没有单独的线卡。因此,通常接口和转发引擎位于同一板上,并且通常只有全局FIB(并且不是其拷贝)被存储在路由器中。
注意,短语“全局FIB”被用于表示根据RIB生成的路由器100的FIB(在文字上通常简称为“FIB”),以便能够区别由对“全局FIB”的过滤得到的“完整本地FIB”。
另外,如图所示,线卡130A-N中的每一个线卡包括转发引擎131,其中转发引擎131包括用于(通过过滤全局FIB而生成的)完整本地FIB的存储装置132以及一个或多个处理元件133,这一个或多个处理元件133被配置用于基于存储装置132内的完整本地FIB来确定如何转发分组。在一个实施例中,转发引擎131是专用集成电路,其包括:用于完整本地FIB的存储装置132,以及处理元件133。在一个实施例中,转发引擎131是利用分立组件或者以另一种方式实现的。注意,转发引擎131可 以包括用于执行查找操作的专用电路或设备,例如但不限于与内容可寻址存储器相对应的那些。
另外,如图所示,线卡130A-N中的每一个线卡包括一个或多个处理元件134,用于全局FIB、分组等的存储装置135,以及被配置用于通常针对相连网络内的其他通信设备发送和接收分组的接136。注意,在一个实施例中,转发引擎131仅基于分组的有限部分(例如,通常是分组头部的一部分,可能外加依实现方式而定的信息)来确定如何转发该分组,而该分组的剩余部分(或者可能甚至整个分组)被存储在存储装置135中。这种在不向分组处理引擎提供整个分组的情况下基于分组头部的转发是路由器中的标准技术,这是因为当在做出其路由决定时仅需分组的一小部分时通常没有理由使用资源来通过转发引擎发送整个分组。在转发决定被做出之后,分组随后被从存储装置135取回并被相应转发。
在一个实施例中,存储装置135存储在存储装置112中存储的全局FIB的完整拷贝,其中存储装置135中的全局FIB例如被一个或多个处理元件134过滤以创建用于确定如何通过转发引擎131转发分组的完整本地FIB。在一个实施例中,存储装置112中存储的全局FIB被过滤以创建用于确定如何通过转发引擎131转发分组的完整本地FIB。存储装置132中的完整本地FIB包括与少于为其在全局FIB中存储有转发信息的所有路由的多个路由相对应的、少于全局FIB中的所有条目的拷贝。转发引擎131基于转发引擎131中存储的完整本地FIB来确定如何转发分组;并且路由器100相应地转发来自线卡130A-N中的一个线卡的分组。注意,线卡130A-N中存储的完整本地FIB在一个实施例中是全部相同的,部分相同的,或者全不相同的。
在一个实施例中,对全局FIB的过滤是由各个线卡130A-N执行的。在一个实施例中,对全局FIB的过滤是由路由处理子系统111执行的。注意,当在这里使用时,术语“过滤”(如在过滤全局FIB以生成本地FIB时)意为简单地从全局FIB中除去或丢弃条目以生成完整本地FIB(即具有比全局FIB更少的条目)。该过滤操作不包括路由的聚合或压缩。另外,完整本地FIB不是全局FIB的缓存。如名字所暗示,完整本地FIB包 括认为是所需转发信息的完整集合,而非其缓存。因此,一个实施例过滤全局FIB以除去在转发分组时将不被使用的那些路由,从而生成具有更小尺寸的完整本地FIB,其然后通常被完整存储在转发引擎131中。因此,术语完整本地FIB被用于表示包括确定如何转发分组所需的所有路由(或者至少大体所有这种路由)的转发信息的本地FIB。当转发引擎131被实现为单个ASIC时,那么完整本地FIB被存储在其中,从而没有(例如具有更慢存储器存取时间的)外部存储器。在一个实施例中,全局FIB的过滤响应于其中被标记的路由、所配置的线卡的预定角色、网络拓扑和/或经由用户接口接收的配置,等等。例如,如果线卡的角色是到全球因特网的上行链路,那么少量路由(例如,来自某一路由协议的单条缺省路由和/或所有路由)可能就足够。相比之下,担当客户面对角色的线卡通常将需要更多路由(例如,关于一个或多个客户端的主机)。在一个实施例中,路由当被添加到RIB时基于一些配置规则被标记,以标识是否要将对应转发信息包括(或者不包括)在完整本地FIB中。这些标记被相应地添加到全局FIB。例如,一个实施例可能希望将来自特定路由协议(例如,IGP、OSPF、IS-IS)的所有路由安置在完整本地FIB中,这些路由因而被相应标记。
另外,一个实施例(例如基于网络拓扑)过滤掉具有将不会被线卡使用的标签的路由。一个实施例过滤掉除从多于一百个条目中(并且可能从更高数量级数目的条目中)过滤出的单条缺省路由之外的所有路由。核心路由器的全局FIB可以包括大约五十万条目或者更多,其中一个实施例过滤这些条目以生成具有大约五千或一万条目的完整本地FIB。一个实施例(例如基于网络拓扑)在不同线卡上以不同方式过滤条目;基于全局FIB中的条目的管理标签、前缀范围、掩码长度等的条目。
线卡控制平面上的存储器相对便宜并且通常大到足以保存路由器在全局FIB中学习的所有路由。一个实施例基于一组标准选择性地将来自全局FIB的路由过滤为完整本地FIB,使得其能装进例如可被存储在单个ASIC上建立的转发引擎中的小型路由表。同样,通过响应于配置、策略或者网络功能变化而在线卡130A-N上维护全局FIB的拷贝,全局FIB中的转发 信息在线卡130A-N上可被快速过滤(没有路由处理子系统110所需的介入)并被编程到转发引擎131中用于完整本地FIB的存储装置132中(例如被编程到ASIC的存储器中)。
图2是在与基于经过滤转发信息库(FIB)的分组转发相关联的一个实施例中使用的系统或组件200(包括以ASIC实现的部分设计)的框图。在一个实施例中,系统或组件200执行与在此示出或以其他方式描述的流程图、框图或者其他图之一相对应的其一个或多个处理或操作。
在一个实施例中,系统或组件200包括处理元件201、存储器202、存储设备203、专用组件205(例如,例如用于执行用于识别FIB中的匹配条目的查找操作或者过滤全局FIB的经优化的硬件),以及用于传输信息(例如,发送和接收分组、用户界面、显示信息等)的(一个或多个)接口207,接口207通常经由一个或多个通信机构209可通信地与通信路径相耦合,通信路径通常被裁制为满足应用的需要。
组件200的各种实施例可以包括更多或更少的元件。组件200的操作通常由处理元件201利用存储器202和存储设备203来控制,以执行一个或多个任务或处理。存储器202是一种类型的计算机可读/计算机存储介质,并且通常包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其它存储器组件。存储器202通常存储用于实现根据实施例的功能的将由处理元件201执行的计算机可执行指令和/或由处理元件201操纵的数据。存储设备203是另一类型的计算机可读介质,并且通常包括固态存储介质、盘驱动器、磁盘、联网服务、磁带驱动器以及其它存储设备。存储设备203通常存储用于实现根据实施例的功能的将由处理元件201执行的计算机可执行指令和/或由处理元件201操纵的数据。
图3图示出在一个实施例中执行的处理。该流程图的处理以处理块300开始。在处理块302中,路由器通常通过路由处理子系统经由一个或多个路由协议与其他路由器通信,以生成用于标识与该路由器相连的网络的拓扑信息(包括其中的路由)的路由信息库(RIB)。这些路由中的一些可能被标记,以标识将被包括在完整本地FIB中(例如或者被从完整本地FIB中排除)的对应转发信息。路由协议的一个示例是内部网关协议 (IGP),例如但不限于开放最短路径优先(OSPF)或者中间系统到中间系统(IS-IS)。接下来,在处理块304中,根据RIB生成标识多个路由的转发信息的全局转发信息库(FIB),其中所述转发信息通常包括对路由器中用于转发对应分组的外出接口以及下一跳信息的标识。在一个实施例中,全局FIB的拷贝被安置在路由器的一个或多个线卡中。
接下来,在处理块306中,全局FIB被过滤以生成标识路由器所接收到的分组的转发信息(其可包括标签)的完整本地FIB,使得该完整本地FIB包括与少于所述多个路由的全部路由的多个路由相对应的、少于全局FIB中的所有条目的拷贝。该过滤通常由各个线卡执行以生成其各自的完整本地FIB,但是可以由单个线卡、路由处理子系统或者其他处理/过滤机构执行。该过滤可能响应于经标记的路由、所配置的线卡的预定角色、网络拓扑、经由用户接口接收的配置等。例如,一个实施例将以下内容安置在完整本地FIB中:来自特定路由协议的所有路由(例如,IGP、OSPF、IS-IS);仅将被用于线卡的标签(例如基于网络拓扑);从多于一百个条目中过滤出的单条缺省路由;从多于十万路由中过滤出的大约一万路由;不同线卡中的不同条目(例如,基于网络拓扑);基于全局FIB中的条目的管理标签、前缀范围、掩码长度或者线卡的角色等的条目。例如,如果线卡的角色是上行链路,那么少量路由(例如,来自某一路由协议的单个缺省路由和/或所有路由)可能就足够。相比之下,担当客户面对角色的线卡通常将需要更多路由(例如,关于一个或多个客户的主机)。
接下来,在处理块308中,线卡基于完整本地FIB确定如何转发分组,其中这些分组在处理块310中被路由器相应转发。图3的流程图的处理如图所示以处理块312结束。另外,网络的路由信息是动态的,因此流程图或其处理块被重复以更新完整本地FIB。例如,在一个实施例中响应于路由器条件的变化,可以在处理块300、302、304或306处进入图3的流程图以更新完整本地FIB。
鉴于可以应用本发明的原理的许多可能的实施例,将认识到,这里相对于附图描述的本发明的实施例和方面仅仅是说明性的,并且不应当被认为是对本发明范围的限制。例如,如本领域技术人员将清楚的,处理块操 作中的许多操作可被重新排序以便在其它操作之前、之后或者基本上并发地被执行。此外,在各种实施例中可以使用许多不同形式的数据结构。这里描述的发明预期到可能落在所附权利要求及其等同物的范围内的所有这样的实施例。
Claims (22)
1.一种由路由器执行的方法,其中所述方法包括:
通过所述路由器经由一个或多个路由协议与其他路由器通信,以生成用于标识与所述路由器相连的网络的拓扑信息的路由信息库(RIB),所述拓扑信息包括所述网络内的路由;
根据所述RIB生成包含条目的全局转发信息库(FIB),其中所述条目包括:多个路由的转发信息,其中所述转发信息包括对所述路由器中用于转发对应分组的外出接口以及下一跳信息的标识;
过滤所述全局FIB以生成标识所述路由器所接收到的多个分组的转发信息的完整本地FIB,其中该完整本地FIB包括少于所述全局FIB中的所有条目的拷贝,并且其中该完整本地FIB不包括所述多个路由中的所有路由;
基于所述完整本地FIB确定如何转发所述多个分组中的每一个分组;以及
基于所述完整本地FIB转发所述多个分组中的每一个,
其中,路由当被添加到RIB时,确定是否要将对应转发信息包括在所述完整本地FIB中。
2.如权利要求1所述的方法,其中所述路由器包括:线卡;
其中所述线卡包括:多个接口,被配置为发送和接收分组;所述全局FIB;以及转发引擎,用于执行所述基于所述完整本地FIB确定如何转发所述多个分组中的每一个分组的操作;并且
其中,所述转发引擎包括所述完整本地FIB。
3.如权利要求2所述的方法,其中,所述线卡包括包含所述转发引擎的专用集成电路。
4.如权利要求1所述的方法,其中,所述路由器包括:路由处理子系统和线卡;
其中所述与其他路由器通信以及生成所述全局FIB的操作是由所述路由处理子系统执行的;
其中所述方法包括将所述全局FIB的拷贝存储在所述线卡上;
其中所述线卡包括:被复制到其的所述全局FIB以及转发引擎,该转发引擎用于执行所述基于在所述线卡上存储的所述完整本地FIB确定如何转发所述多个分组中的每一个分组的操作;
其中所述转发引擎包括所述完整本地FIB;并且
其中所述过滤全局FIB以生成完整本地FIB的操作是在所述线卡上执行的。
5.如权利要求4所述的方法,其中,所述线卡包括包含所述转发引擎的专用集成电路。
6.如权利要求1所述的方法,其中,所述过滤操作响应于所配置的所述路由器的线卡的预定角色。
7.如权利要求1所述的方法,其中,所述一个或多个路由协议包括内部网关协议(IGP)。
8.如权利要求7所述的方法,其中,所述全局FIB包括用于标识所述全局FIB中的所述转发信息的哪个部分应当并且哪个部分不应当通过所述过滤所述全局FIB的操作被安置在所述完整本地FIB中的标记信息;并且其中所述标记信息标识出与从所述一个或多个路由协议中的至少一个特定路由协议接收到的路由信息相对应的所有转发信息应当通过所述过滤所述全局FIB的操作被安置在所述完整本地FIB中。
9.如权利要求1所述的方法,其中,所述全局FIB包括用于标识所述全局FIB中的所述转发信息的哪个部分应当并且哪个部分不应当通过所述过滤所述全局FIB的操作被安置在所述完整本地FIB中的标记信息。
10.如权利要求9所述的方法,包括:标记RIB中的路由;其中所述生成所述全局FIB的操作致使所述标记信息被包括在所述完整本地FIB中。
11.如权利要求1所述的方法,其中,所述全局FIB包括包含用于所述多个路由中的多个标签交换路由的标签的转发信息;并且
其中,所述过滤所述全局FIB的操作基于所述拓扑信息过滤掉所述多个标签交换路由中将不会被所述路由器的线卡用于转发分组的一个或多个标签交换路由。
12.如权利要求1所述的方法,其中,所述过滤所述全局FIB的操作基于所述拓扑信息过滤掉所述多个路由中将不会被所述路由器的线卡用于转发分组的一个或多个路由。
13.如权利要求1所述的方法,其中,所述在确定是否要将条目包括在本地FIB来生成所述完整本地FIB时过滤所述全局FIB的操作响应于经由用户接口接收到的配置设定。
14.如权利要求1所述的方法,其中,所述在确定是否要将条目包括在本地FIB来生成所述完整本地FIB时过滤所述全局FIB的操作响应于所述全局FIB中的条目的管理标签、前缀范围或者掩码长度。
15.如权利要求1所述的方法,其中,所述全局FIB包括超过一百个不同转发信息条目;并且其中所述过滤所述全局FIB的操作导致只有用于单个缺省路由的转发信息被存储在所述完整本地FIB中。
16.如权利要求1所述的方法,其中,所述全局FIB包括超过十万个不同转发信息条目;并且其中所述过滤所述全局FIB的操作导致少于一万不同转发条目被存储在所述完整本地FIB中。
17.一种路由器,包括:
路由处理子系统,被配置为经由一个或多个路由协议与其他路由器通信,以生成用于标识与所述路由器相连的网络的拓扑信息的路由信息库(RIB),所述拓扑信息包括所述网络内的路由;并且被配置为根据所述RIB生成包含条目的全局转发信息库(FIB),其中所述条目包括:多个路由的转发信息,其中所述转发信息包括对所述路由器中用于转发对应分组的外出接口以及下一跳信息的标识,其中,路由当被添加到RIB时,确定是否要将对应转发信息包括在完整本地FIB中;
可通信地耦合到所述路由处理子系统的多个线卡,其中所述多个线卡中的每一个包括:
多个接口,用于与其他通信设备传输分组;
存储装置,被配置为存储包括针对如何从所述路由器转发对应分组的转发信息的全局转发信息库(FIB),其中所述转发信息包括对下一跳信息以及所述路由器中用来转发对应分组的外出接口的标识;
转发引擎,被配置为存储完整本地FIB,并且被配置为基于所述完整本地FIB确定如何转发分组;以及
一个或多个处理器,被配置为过滤在所述线卡上本地存储的所述全局FIB以生成标识分组的转发信息的所述完整本地FIB,其中所述完整本地FIB包括少于所述全局FIB中的所有条目的拷贝。
18.如权利要求17所述的路由器,其中,所述多个线卡中的每一个包括包含所述转发引擎的专用集成电路。
19.如权利要求17所述的路由器,其中,所述全局FIB包括用于标识所述全局FIB中的所述转发信息的哪个部分应当并且哪个部分不应当被被配置为过滤在所述线卡上本地存储的所述全局FIB以生成所述完整本地FIB的所述一个或多个处理器安置在所述完整本地FIB中的标记信息。
20.一种路由器,包括:
路由处理子系统,被配置为经由一个或多个路由协议与其他路由器通信,以生成用于标识与所述路由器相连的网络的拓扑信息的路由信息库(RIB),所述拓扑信息包括所述网络内的路由;并且被配置为根据所述RIB生成包含条目的全局转发信息库(FIB),其中,路由当被添加到RIB时,确定是否要将对应转发信息包括在完整本地FIB中,
多个线卡,其中所述多个线卡中的每一个包括:
多个接口,被配置为发送和接收分组;
存储装置,被配置为存储包含条目的全局转发信息库(FIB),其中所述条目包括:包括对下一跳信息以及所述路由器中用于转发对应分组的外出接口的标识的转发信息;
转发引擎,被配置为存储完整本地FIB,并且被配置为基于所述完整本地FIB确定如何转发分组;以及
一个或多个处理元件,被配置为过滤在所述线卡上本地存储的所述全局FIB以生成标识分组的转发信息的所述完整本地FIB,其中所述完整本地FIB包括少于所述全局FIB中的所有条目的拷贝的装置;以及
一个或多个通信机构,被配置为在所述多个线卡之间传输分组或信息。
21.如权利要求20所述的路由器,其中,对于所述多个线卡中的每个特定线卡,所述被配置为过滤所述全局FIB的一个或多个处理元件响应于所配置的所述特定线卡的预定角色。
22.如权利要求21所述的路由器,其中,所述多个线卡中的第一线卡和所述多个线卡中的第二线卡各自被配置为具有不同预定角色,并且其中所述第一和第二线卡中所述被配置为过滤所述全局FIB的一个或多个处理元件被配置为基于所述不同预定角色来生成不同的完整本地FIB。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/569,712 US8149713B2 (en) | 2009-09-29 | 2009-09-29 | Forwarding of packets based on a filtered forwarding information base |
US12/569,712 | 2009-09-29 | ||
PCT/US2010/050760 WO2011041442A1 (en) | 2009-09-29 | 2010-09-29 | Forwarding of packets based on a filtered forwarding information base |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102549988A CN102549988A (zh) | 2012-07-04 |
CN102549988B true CN102549988B (zh) | 2015-08-19 |
Family
ID=43063369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080042774.0A Active CN102549988B (zh) | 2009-09-29 | 2010-09-29 | 路由器和由路由器执行的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8149713B2 (zh) |
EP (1) | EP2484062B1 (zh) |
CN (1) | CN102549988B (zh) |
WO (1) | WO2011041442A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7756015B1 (en) | 2006-09-13 | 2010-07-13 | Marvell Israel (M.I.S.L) Ltd. | Fast failover recovery for stackable network switches |
US9882809B2 (en) * | 2009-11-24 | 2018-01-30 | Verizon Patent And Licensing Inc. | Just-in time forwarding information base |
US8638791B2 (en) * | 2009-11-24 | 2014-01-28 | Verizon Patent And Licensing Inc. | Heterogeneous forwarding information bases in line cards |
US8467403B2 (en) * | 2010-04-29 | 2013-06-18 | Cisco Technology, Inc. | Coordinated updating of forwarding information bases in a multistage packet switching device |
US8873409B2 (en) * | 2011-08-30 | 2014-10-28 | Cisco Technology, Inc. | Installing and using a subset of routes for forwarding packets |
US8891535B2 (en) * | 2012-01-18 | 2014-11-18 | International Business Machines Corporation | Managing a global forwarding table in a distributed switch |
EP2645645A1 (en) | 2012-03-30 | 2013-10-02 | British Telecommunications Public Limited Company | Packet network routing |
US9014174B2 (en) * | 2012-06-29 | 2015-04-21 | Blackberry Limited | Managing multiple forwarding information bases |
US9237066B2 (en) | 2012-11-16 | 2016-01-12 | Dell Products, L.P. | Packet switch modules for computer networks with efficient management of databases used in forwarding of network traffic |
US9491087B1 (en) | 2012-11-28 | 2016-11-08 | The Arizona Board Of Regents On Behalf Of The University Of Arizona | Devices and methods for forwarding information base aggregation |
US9036477B2 (en) * | 2012-12-10 | 2015-05-19 | Verizon Patent And Licensing Inc. | Virtual private network to label switched path mapping |
CN103874157B (zh) | 2012-12-12 | 2017-07-07 | 华为技术有限公司 | 路由转发、建立路由表、和获取内容的方法及其装置 |
KR101786573B1 (ko) * | 2013-01-07 | 2017-10-18 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 문맥화된 정보 버스 |
WO2014160652A1 (en) * | 2013-03-25 | 2014-10-02 | Marvell Word Trade Ltd. | Hardware acceleration for routing programs |
US10135687B2 (en) * | 2014-01-06 | 2018-11-20 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Virtual group policy based filtering within an overlay network |
US9935831B1 (en) * | 2014-06-03 | 2018-04-03 | Big Switch Networks, Inc. | Systems and methods for controlling network switches using a switch modeling interface at a controller |
CN104253748B (zh) * | 2014-09-24 | 2017-10-03 | 大唐移动通信设备有限公司 | 基于分布式架构的路由方法和系统 |
US20180198704A1 (en) * | 2015-09-25 | 2018-07-12 | Hewlett Packard Enterprise Development Lp | Pre-processing of data packets with network switch application -specific integrated circuit |
US9992111B2 (en) * | 2016-01-21 | 2018-06-05 | Cisco Technology, Inc. | Router table scaling in modular platforms |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035256B1 (en) * | 2001-10-31 | 2006-04-25 | Redback Networks Inc. | Method and apparatus for a routing information base |
US20070097973A1 (en) * | 2005-10-28 | 2007-05-03 | John Scudder | Method and apparatus for prioritized processing of routing information |
CN101005458A (zh) * | 2007-01-30 | 2007-07-25 | 华为技术有限公司 | 一种下发路由的方法、装置及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7433969B2 (en) * | 2001-12-31 | 2008-10-07 | Redback Networks Inc. | Method and apparatus for representing label switched paths |
US7209449B2 (en) * | 2002-03-27 | 2007-04-24 | Intel Corporation | Systems and methods for updating routing and forwarding information |
US7499447B2 (en) * | 2002-06-04 | 2009-03-03 | Alcaltel-Lucent Usa Inc. | Synchronizing multiple instances of a forwarding information base (FIB) using sequence numbers |
US20050074003A1 (en) * | 2003-10-02 | 2005-04-07 | Ball David Alexander | Distributed software architecture for implementing BGP |
FR2877797B1 (fr) * | 2004-11-10 | 2006-12-15 | Cit Alcatel | Dispositif de selection d'informations de routage pour un routeur d'un reseau de communication |
JP4556761B2 (ja) * | 2005-05-06 | 2010-10-06 | 株式会社日立製作所 | パケット転送装置 |
US7706298B2 (en) * | 2006-01-05 | 2010-04-27 | Cisco Technology, Inc. | Route dependency selective route download |
-
2009
- 2009-09-29 US US12/569,712 patent/US8149713B2/en active Active
-
2010
- 2010-09-29 EP EP10768324.5A patent/EP2484062B1/en active Active
- 2010-09-29 CN CN201080042774.0A patent/CN102549988B/zh active Active
- 2010-09-29 WO PCT/US2010/050760 patent/WO2011041442A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035256B1 (en) * | 2001-10-31 | 2006-04-25 | Redback Networks Inc. | Method and apparatus for a routing information base |
US20070097973A1 (en) * | 2005-10-28 | 2007-05-03 | John Scudder | Method and apparatus for prioritized processing of routing information |
CN101005458A (zh) * | 2007-01-30 | 2007-07-25 | 华为技术有限公司 | 一种下发路由的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20110075680A1 (en) | 2011-03-31 |
CN102549988A (zh) | 2012-07-04 |
EP2484062A1 (en) | 2012-08-08 |
US8149713B2 (en) | 2012-04-03 |
WO2011041442A1 (en) | 2011-04-07 |
EP2484062B1 (en) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102549988B (zh) | 路由器和由路由器执行的方法 | |
CN101421991B (zh) | 针对拒绝服务攻击的硬件过滤支持 | |
CN103907319B (zh) | 路由子集的安装和使用 | |
US20040165601A1 (en) | Method and system for label-based packet forwarding among multiple forwarding elements | |
CN103098426A (zh) | 使用分层标记栈改进ldp收敛的方法和设备 | |
CN112868214B (zh) | 分组内的协调负载转移oam记录 | |
US10880233B2 (en) | Routing management | |
US20220045950A1 (en) | Single lookup entry for symmetric flows | |
CN112787922A (zh) | 一种报文处理的方法、网络节点和系统 | |
CN109167700B (zh) | 段路由sr隧道的检测方法和装置 | |
US10855572B2 (en) | Area abstraction extensions to routing protocols | |
EP3192221B1 (en) | Method and network node for scalable computer network partitioning | |
US8787376B1 (en) | Systems and methods for accessing a multi-bank SRAM | |
CN106209634B (zh) | 地址映射关系的学习方法及装置 | |
US11775342B2 (en) | System and method for processing information hierarchy management | |
CN111131048A (zh) | 网络流量转发方法、装置、电子设备及机器可读存储介质 | |
CN113364683B (zh) | 一种路由发送方法及设备 | |
CN113824633B (zh) | 园区网中路由发布方法及网络设备 | |
CN113037647A (zh) | 报文处理方法、装置、设备及计算机可读存储介质 | |
CN108123990B (zh) | 一种数据存储方法、数据存储系统及数据处理设备 | |
EP4203422A1 (en) | Transport of vpn traffic with reduced header information | |
US10965583B2 (en) | Mechanism to preserve weights assigned to nexthops | |
CN107547409B (zh) | 一种路由查找方法、装置和路由设备 | |
CN107483334B (zh) | 一种报文转发的方法及装置 | |
CN113132273A (zh) | 一种数据转发方法及装置 |
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 |