CN107231304B - 用于使用最小转发信息库来转发网络流量方法、系统和装置 - Google Patents
用于使用最小转发信息库来转发网络流量方法、系统和装置 Download PDFInfo
- Publication number
- CN107231304B CN107231304B CN201610556567.6A CN201610556567A CN107231304B CN 107231304 B CN107231304 B CN 107231304B CN 201610556567 A CN201610556567 A CN 201610556567A CN 107231304 B CN107231304 B CN 107231304B
- Authority
- CN
- China
- Prior art keywords
- traffic
- route
- network
- routes
- fib
- 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
Images
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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- 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/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- 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/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- 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/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- 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/38—Flow based 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/54—Organization of routing tables
-
- 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
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
Abstract
所公开的使用最小转发信息库(FIB)来转发网络流量的方法包括:(1)识别包括路由的集合的路由信息库(RIB),这些路由定义通向网络之内的目的地和网络之外的目的地两者的路径;以及然后(2)创建FIB,FIB包括总大小低于大小阈值的活动路由的子集。各种其他方法、系统和装置也被公开。
Description
背景技术
网络流量(traffic)经常从一个路由器被转发到另一路由器。这些路由器可以包括路由信息库(RIB),路由信息库存储有促进网络流量到全部互联网的路由的集合。例如,路由器可以包括存储有大约575,000个互联网协议版本4(IPv4)路由的RIB。另外,这个路由器可以包括转发信息库(FIB),转发信息库导入来自RIB中的大约575,000个IPv4路由中的大多数的副本。FIB中存储的这些副本可以表示和/或构成由路由器用来转发全部互联网流量的活动路由。
在许多情况中,可能仅需要这些IPv4路由中的小部分来承载绝大多数的互联网流量。例如,90%的互联网流量可以经过大约3,150个IPv4路由,并且99%的互联网流量可以经过大约25,900个IPv4路由。因此,剩余的大约549,100个IPv4路由可以被用来承载仅1%的互联网流量。作为结果,FIB可以通过从RIB导入仅0.5%的IPv4路由而能够促进90%的互联网流量,或者通过从RIB导入仅4.5%的IPv4路由而能够促进99%的互联网流量。
鉴于上面的观察,FIB理论上可以能够使用远比RIB少的存储器成功地进行操作。此外,因为FIB存储器经常比RIB存储器昂贵得多,所以路由装备销售商可以能够通过减少他们的路由器中所包括的FIB存储器的量并且对该减少的FIB存储器进行高效使用,而显著地降低制造成本。因此,本公开识别并解决了对于用于使用最小(minimal)FIB来转发网络流量的另外的并且经改进的方法、系统和装置的需求。
发明内容
如将在下文更详细描述的,本公开一般性地涉及用于使用最小FIB来转发网络流量的方法、系统和装置。在一个示例中,一种用于完成这种任务的方法可以包括:(1)识别包括路由的集合的RIB,这些路由定义通向网络之内的目的地和网络之外的目的地两者的路径;以及然后(2)通过以下操作来创建FIB,FIB包括总大小低于大小阈值的活动路由的子集:(A)从RIB内的路由的集合中将以下各项导入到FIB中:(I)内部路由,内部路由定义通向网络之内的目的地的路径;(II)高流量外部路由,高流量外部路由定义通向网络之外的正接收到超过流量阈值的量的流量的目的地的路径;以及(III)默认路由,默认路由定义通向默认节点的路径,默认节点促进不匹配于内部路由或高流量外部路由中的任何路由的流量的解析;以及(B)从FIB中排除低流量外部路由,低流量外部路由定义通向网络之外的没有接收到超过流量阈值的量的流量的目的地的路径。
类似地,一种用于实施上文所描述的方法的系统可以包括:(1)存储器中存储的识别模块,识别模块识别包括路由的集合的RIB,这些路由定义通向网络之内的目的地和网络之外的目的地两者的路径;以及(2)存储器中存储的创建模块,创建模块通过以下操作来创建FIB,FIB包括总大小低于大小阈值的活动路由的子集:(A)从RIB内的路由的集合中将以下各项导入到FIB中:(I)内部路由,内部路由定义通向网络之内的目的地的路径;(II)高流量外部路由,高流量外部路由定义通向网络之外的正接收到超过流量阈值的量的流量的目的地的路径;以及(III)默认路由,默认路由定义通向默认节点的路径,默认节点促进不匹配于内部路由或高流量外部路由中的任何路由的流量的解析;以及(B)从FIB中排除低流量外部路由,低流量外部路由定义通向网络之外的没有接收到超过流量阈值的量的流量的目的地的路径。
一种用于实施上文所描述的方法的装置可以包括:(1)存储器设备,存储器设备存储包括路由的集合的RIB,这些路由定义通向网络之内的目的地和网络之外的目的地两者的路径;以及(2)通信地耦合到存储器设备的处理单元,其中处理单元通过以下操作来创建FIB,FIB包括总大小低于大小阈值的活动路由的子集:(A)从RIB内的路由的集合中将以下各项导入到FIB中:(I)内部路由,内部路由定义通向网络之内的目的地的路径;(II)高流量外部路由,高流量外部路由定义通向网络之外的正接收到超过流量阈值的量的流量的目的地的路径;以及(III)默认路由,默认路由定义通向默认节点的路径,默认节点促进不匹配于内部路由或高流量外部路由中的任何路由的流量的解析;以及(B)从FIB中排除低流量外部路由,低流量外部路由定义通向网络之外的没有接收到超过流量阈值的量的流量的目的地的路径。
来自上面所提到的实施例中的任何实施例的特征可以根据本文所描述的一般原理而彼此组合地被使用。一经结合附图和权利要求来阅读以下详细描述,这些和其他实施例、特征和优点将更加完全地被理解。
附图说明
附图图示了多个示例性实施例并且是说明书的一部分。与以下描述一起,这些附图展示并解释了本公开的各种原理。
图1是用于使用最小FIB来转发网络流量的示例性系统的框图。
图2是用于使用最小FIB来转发网络流量的示例性系统的框图。
图3是用于使用最小FIB来转发网络流量的示例性方法的流程图。
图4是用于使用最小FIB来转发网络流量的示例性系统的框图。
图5是用于使用最小FIB来转发网络流量的示例性系统的框图。
图6是能够实施本文所描述和/或所图示的一个或多个实施例和/或能够与本文所描述和/或所图示的一个或多个实施例有关地被使用的示例性计算系统的框图。
贯穿附图,相同的参考字符和描述指示类似的但不必然相同的元素。尽管本文所描述的示例性实施例易受各种修改和替换形式的影响,但是具体实施例已经在附图中通过示例的方式被示出并且将在本文中详细地被描述。然而,本文所描述的示例性实施例不意图为被限制于所公开的特定形式。更确切地,本公开覆盖了落在所附权利要求的范围内的所有修改、等价物和替换物。
具体实施方式
本公开描述了用于使用最小FIB来转发网络流量的各种方法、系统和装置。如下面将更详细地解释的,本公开的实施例可以使得路由器能够利用比传统路由器少得多的FIB存储器成功地进行操作。作为结果,本公开的实施例可以使得路由装备销售商能够显著地降低关于路由器制造的成本。另外地或替换地,本公开的实施例可以使得路由器能够减少在构建和/或维持FIB时所涉及的处理负担和/或资源消耗,由此释放一些路由器的处理能力和/或资源以用于其他路由和/或性能目的或需求。
下文将参考图1、2、4和5来提供用于使用最小FIB来转发网络流量的示例性系统的详细描述。将关于图3来提供对应的计算机实施的方法的详细描述。另外,将关于图6来提供能够实施本文所描述的一个或多个实施例的示例性计算系统的详细描述。
图1是用于使用最小FIB来转发网络流量的示例性系统100的框图。如这个图中所图示的,示例性系统100可以包括用于执行一个或多个任务的一个或多个模块102。例如,并且如下面将更详细解释的,示例性系统100可以包括识别模块104,识别模块104识别包括路由的集合的RIB,这些路由定义通向网络之内的目的地和网络之外的目的地两者的路径。示例性系统100还可以包括创建模块106,创建模块106创建FIB,FIB包括总大小低于大小阈值的活动路由的子集。创建模块106可以通过(1)从RIB内的路由的集合中向FIB中导入(A)内部路由、(B)高流量外部路由和(C)默认路由、以及(2)从FIB中排除低流量外部路由,来创建这个FIB。
另外,并且如下面将更详细描述的,示例性系统100可以包括接收模块108,接收模块108接收分组,该分组将至少部分地基于FIB中包括的活动路由的子集而被转发到目的地。此外,示例性系统100可以包括转发模块110,转发模块110经由匹配于分组的目的地的活动路由所定义的路径将分组转发到目的地。示例性系统100可以进一步包括绕过模块112,绕过模块112通过(1)设置RIB内的路由中的至少一个路由的策略绕过标记、以及(2)至少部分地归因于策略绕过标记被设置而将该路由安装到FIB中,来绕过定义哪些路由要导入到FIB中的策略。尽管被图示为分离的元件,但是图1中的模块102中的一个或多个模块可以表示单个模块或应用(诸如,网络操作系统)的部分。
在某些实施例中,图1中的模块102中的一个或多个模块可以表示一个或多个软件应用或程序,该一个或多个软件应用或程序在被计算设备执行时使得该计算设备执行一个或多个任务。例如,并且如下面将更详细描述的,模块102中的一个或多个模块可以表示被存储并且被配置为运行在一个或多个计算设备上的软件模块,诸如图2中所图示的设备中的任何设备(例如,网络设备202、204、206和/或208),图4中所图示的设备中的任何设备(例如,路由解析代理406),图5中所图示的设备中的任何设备(例如,路由解析助理506),和/或图6中的计算系统600。图1中的模块102中的一个或多个模块还可以表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或部分。
如图1中所图示的,系统100还可以包括一个或多个RIB,诸如RIB 120。在一个示例中,RIB 120可以包括和/或存储路由的集合,这些路由定义通向网络之内的目的地和网络之外的目的地两者的路径。如本文所使用的术语“路径”一般指代促进网络内和/或跨网络的在源与目的地之间的通信和/或流量流的任何类型或形式的链路和/或成系列的设备。如本文所使用的术语“路由”一般指代指示和/或识别网络内和/或跨网络的路径的任何类型或形式的信息、数据和/或表示。
RIB 120一般表示包括、存储和/或识别路由器的路由引擎内的一个或多个路由的任何类型或形式的数据库和/或表格。在一个示例中,RIB 120可以包括和/或表示存储有构成和/或形成互联网的几乎全部路由的路由表格。这些路由可以用各种方式被安排和/或被组织在路由表格内。每个路由可以指示和/或识别表示路径的各种信息和/或数据。这样的信息和/或数据的示例不带限制地包括:目的地设备的互联网协议(IP)地址、网关设备的IP地址、目的地设备或网关设备的路由前缀、下一跳的IP地址、网络掩码、它们中的一个或多个的组合或变化、和/或任何其他适合的信息或数据。
如图1中所图示的,系统100还可以包括一个或多个FIB,诸如FIB 130。在一个示例中,FIB 130可以包括和/或存储定义通向网络之内的目的地和网络之外的目的地两者的路径的活动路由的子集。如本文所使用的术语“活动路由”一般指代为了将网络流量转发到特定目的地所选择的任何类型或形式的路由。如本文参考路由的集合所使用的术语“子集”一般指代包括少于该集合内的全部路由的群组和/或合集。
FIB 130一般表示包括、存储和/或识别路由器的转发引擎(有时也被称为分组转发引擎)内的一个或多个活动路由的任何类型或形式的数据库和/或表格。在一个示例中,FIB 130可以包括和/或表示转发表格,该转发表格仅存储从RIB中选择的用于将网络流量转发到特定目的地的那些路由的副本。因此,尽管RIB 120可以包括通向相同目的地的若干路由,但是FIB 130可以包括通向该目的地的单个路由。
在一个示例中,FIB 130可以包括和/或存储(1)定义通向网络之内的目的地的路径的所有内部路由、(2)选择定义通向网络之外的正接收到超过流量阈值的量的流量的目的地的路径的高流量外部路由、以及(3)定义通向默认节点的路径的默认路由,默认节点促进不匹配于内部路由或高流量外部路由中的任何路由的流量的解析。在这个示例中,FIB130可以排除各种低流量外部路由,低流量外部路由定义通向网络之外的没有接收到超过流量阈值的网络量的流量的目的地的路径。因此,FIB 130可以大幅(substantially)小于RIB 120。
作为具体的实例,RIB 120可以包括和/或存储575,000个IPv4路由条目。在这个示例中,90%的全部网络流量可以经过那些IPv4路由中的3,150个,并且99%的全部网络流量可以经过那些IPv4路由中的25,900个。因此,剩余的大约549,100个IPv4路由可以被用来承载仅1%的全部网络流量。鉴于这一观察,FIB 130可以被编程、被配置和/或被设置为包括和/或存储仅那些共同促进99%的全部网络流量的25,900个IPv4路由的副本。作为结果,因为FIB 130包括被用来转发剩余1%的网络流量的默认路由,所以FIB 130可以能够使用远比RIB 120和/或传统FIB少的存储器成功地进行操作。
图1中的示例性系统100可以用各种方式被实施。例如,示例性系统100的全部或部分可以表示图2中的示例性系统200的部分。如图2中所示出的,系统200可以包括:包括网络设备202的网络212、包括网络设备204的网络214、包括网络设备206的网络216、以及包括网络设备208的网络218。网络212、214、216和218中的每个网络可以支持和/或促进在网络设备202、204、206和208和/或各种客户端设备(图2中未图示)之间的通信和/或数据传送。尽管图2仅图示了分别在网络212、214、216和218内的网络设备202、204、206和208,但是各种其他网络设备和/或计算设备可以表示网络212、214、216和218的一部分和/或被包括在网络212、214、216和218中。
在一个示例中,网络设备206可以被编程有模块102中的一个或多个模块。在这个示例中,网络设备206可以包括、存储和/或维持RIB 120。尽管不是必然以这种方式图示在图2中,但是网络设备202、204、206和208也可以被编程有模块102中的一个或多个模块。类似地,尽管不是必然以这种方式图示在图2中,但是网络设备202、204、206和208还可以包括、存储和/或维持RIB和/或FIB。
在一个示例中,当被图2中的网络设备202的至少一个处理器执行时,来自图1的模块102中的一个或多个模块可以使得网络设备202能够使用最小FIB来转发网络流量。例如,并且如下面将更详细描述的,模块102中的一个或多个模块可以使得网络设备202(1)识别包括路由的集合的RIB,这些路由定义通向网络之内的目的地和网络之外的目的地两者的路径,并且然后(2)通过以下操作来创建FIB,FIB包括总大小低于大小阈值的活动路由的子集:(A)从RIB内的路由的集合中将以下各项导入到FIB中:(I)内部路由,内部路由定义通向网络之内的目的地的路径、(II)高流量外部路由,高流量外部路由定义通向网络之外的正接收到超过流量阈值的量的流量的目的地的路径、以及(III)默认路由,默认路由定义通向默认节点的路径,默认节点促进不匹配于内部路由或高流量外部路由中的任何路由的流量的解析,以及(B)从FIB中排除低流量外部路由,低流量外部路由定义通向网络之外的没有接收到超过流量阈值的网络量的流量的目的地的路径。
网络设备202、204、206和/或208每个都一般性地表示促进计算设备之间和/或网络内或跨网络的通信和/或网络流量的任何类型或形式的设备、系统和/或机构。在一个示例中,网络设备202、204、206和/或208可以每个都表示路由器。另外地或替换地,网络设备202、204、206和/或208可以每个都包括和/或表示通向网络的网关。网络设备202、204、206和/或208的示例不带限制地包括:路由器(诸如提供商边缘路由器、集线器路由器、轮辐(spoke)路由器、自治系统边界路由器、和/或区域边际路由器)、交换机、集线器、调制解调器、桥接器、中继器、网关、复用器、网络适配器、网络接口、网络机架(rack)、机箱(chasses)、服务器、计算设备、运行在它们中的一个或多个上的虚拟机、它们中的一个或多个的部分、它们中的一个或多个的组合或变化、和/或任何其他适合的网络设备。
网络212、214、216和/或218每个都一般性地表示促进通信或数据传送的任何类型或形式的介质和/或架构。在一个示例中,网络212、214、216和/或218中的一个或多个网络可以表示促进用于服务提供商(诸如,AT&T、VERIZON WIRELESS、SPRINT、T-MOBILE、FACEBOOK、GOOGLE、INSTAGRAM、NETFLIX、AMAZONYOUTUBE、CENTURY LINK、COMCAST、DIRECTV、和/或APPLE)的订户的流量的网络。网络212、214、216和/或218的示例不带限制地包括MPLS网络、内联网、广域网(WAN)、局域网(LAN)、个域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、对等网络、它们中的一个或多个的部分、它们中的一个或多个的组合或变化、和/或任何其他适合的网络。网络212、214、216和/或218可以使用无线连接和/或有线连接来促进通信或数据传送。尽管图2将网络212、214、216和/或218图示为每个仅包括单个设备,但是这些网络可以每个都包括各种其他网络设备和/或计算设备。
图3是用于使用最小FIB来转发网络流量的示例性计算机实施的方法300的流程图。图3中所示出的步骤可以通过任何适合的计算机可执行代码和/或计算系统来执行。在一些实施例中,图3中所示出的步骤可以通过图1中的系统100、图2中的系统200、图4中的系统400、和/或图6中的计算系统600的组件中的一个或多个组件来执行。
如图3中所图示的,在步骤310处,本文所描述的系统中的一个或多个系统可以识别包括路由的集合的RIB,这些路由定义通向网络之内的目的地和网络之外的目的地两者的路径。例如,识别模块104可以作为图2中的网络设备202的一部分而识别包括路由的集合的RIB 120,这些路由定义通向网络212之内的目的地和网络212之外的目的地两者的路径。在这个示例中,RIB 120可以包括和/或存储各种协议(诸如IPv4、互联网协议版本6(IPv6)、边际网关协议(BGP)、和/或内部网关协议(IGP))的路由。另外地或替换地,RIB 120可以包括和/或存储动态路由、静态路由、直接路由、间接路由、和/或默认路由。
本文所描述的系统可以用各种方式和/或在各种情境中执行步骤310。在一个示例中,识别模块104可以至少部分地基于创建和/或修改FIB 130的请求来识别RIB 120。例如,识别模块104可以检测创建和/或FIB 130的请求,以便促进与互联网的通信。响应于检测到这个请求,识别模块104可以识别RIB 120以发起从FIB 130导入路由。
在另一示例中,识别模块104可以至少部分地基于网络设备202接收的路由通告来识别RIB 120。例如,识别模块104可以检测跨网络212循环的一个或多个路由通告。在这个示例中,网络设备202可以将所通告的路由添加到RIB 120。识别模块104然后可以在路由关于通告而被添加时识别RIB 120。
返回到图3,在步骤320处,本文所描述的系统中的一个或多个系统可以创建FIB,FIB包括总大小低于大小阈值的活动路由的子集。例如,创建模块106可以作为图2中的网络设备202的一部分而创建FIB 130,FIB 130包括总大小低于大小阈值的活动路由的子集。这个大小阈值可以包括和/或表示路由的某个数目(例如,30,000个路由)和/或由这样的路由所消耗的存储器的某个量。作为具体的示例,大小阈值可以包括和/或表示被分配给FIB130的存储器的总量。因此,创建模块106可以通过利用能够适应于被分配给和/或可用于FIB 130的存储器的量的最高数目的路由来填充活动路由的子集,而创建FIB 130。
如图3中所图示的,FIB创建过程可以包括某些子步骤。例如,在图3中的子步骤320(1)处,创建模块106可以作为图2中的网络设备202的一部分而将各种路由从RIB 120内的路由的集合中导入到FIB 130中。这些被导入的路由可以包括和/或表示:(1)内部路由,内部路由定义通向网络212之内的目的地的路径,(2)高流量外部路由,高流量外部路由定义通向网络212之外的正接收到超过流量阈值的量的流量的目的地的路径,以及(3)默认路由,默认路由定义通向默认节点(诸如另一网络设备)的路径,默认节点促进不匹配于FIB130内的内部路由或高流量外部路由中的任何路由的流量的解析。
继续于这个示例,在图3中的子步骤320(2)处,创建模块106可以作为图2中的网络设备202的一部分而排除低流量外部路由,低流量外部路由定义通向网络之外的没有接收到超过流量阈值的网络量的流量的目的地的路径。换句话说,创建模块106可以确保所有这样的低流量外部路由从FIB 130中被排除。这个流量阈值可以包括和/或表示通过特定目的地传送的分组的某个数目。另外地或替换地,这个流量阈值可以包括和/或表示特定目的地接收到流量的某个频率。进一步地,这个流量阈值可以包括和/或表示关于所接收的量的流量而将最高的(top)外部目的地(例如,由其流量被网络设备202路由的客户端设备所访问的最高100、500或1000个网站)与所有其他外部目的地区分开的标志(marker)。
本文所描述的系统可以用各种方式来执行步骤320和子步骤320(1)和320(2)。在一些示例中,创建模块106可以至少部分地基于策略来创建FIB 130,该策略定义RIB 120内的哪些路由要导入到FIB 130中。例如,识别模块104可以识别RIB到FIB导出策略。在这个示例中,RIB到FIB导出策略可以指示FIB 130将从RIB 120接受哪些路由、以及FIB 130将从RIB 120拒绝哪些路由。
作为具体的示例,RIB到FIB导出策略可以指示FIB 130将包括从内部BGP(IBGP)邻居获知的所有内部路由。替换地,RIB到FIB 导出策略可以指示FIB 130将包括从非外部BGP(非EBGP)邻居获知的所有内部路由。换句话说,RIB到FIB导出策略可以指示FIB 130将包括网络212内部的所有路由。
另外,RIB到FIB导出策略可以指示FIB 130将包括网络212外部的所有重要路由。重要外部路由可以包括和/或表示一贯重要的外部路由和偶然重要的外部路由。一贯重要的外部路由的示例不带限制地包括:紧急情况相关的外部路由(诸如,与公共安全、医疗紧急情况、警方紧急情况、和/或“911”紧急情况相关的路由)、一般高流量的路由(诸如,通向ALEXA最高100个网站的路由和/或一般普及的路由)、它们中的一个或多个的组合或变化、和/或任何其他适合的一贯重要的外部路由。在一个示例中,这些一贯重要的外部路由可以静态地被编程、被配置和/或被设置在RIB到FIB导出策略中。因此,创建模块106可以确保这些一贯重要的外部路由每当它们存在于RIB 120内时都被安装到FIB 130中。
偶然重要的外部路由可以包括和/或表示定义通向最近接收到高水平流量的目的地的路径的那些路由。在一个示例中,网络设备202可以通过监测出站流量而动态地获知这些路由。在这个示例中,每当这些偶然重要的外部路由的对应目的地正接收到超过流量阈值的水平的流量时,创建模块106可以将这些偶然重要的外部路由安装到FIB 130中。换句话说,创建模块106可以安装定义通向如下目的地的路径的任何高流量外部路由,这些目的地相对于网络设备202的普及性(popularity)当前排名高于某个普及性阈值(例如,那些目的地的普及性相对于所有外部目的地的普及性)。相反地,每当这些偶然重要的外部路由的对应目的地不再接收到超过流量阈值的水平的流量、和/或它们的普及性不再排名高于普及性阈值时,创建模块106可以从FIB 130中移除这些偶然重要的外部路由。
在一些示例中,创建模块106可以通过将选择的路由从RIB 120复制到FIB 130,而将那些路由导入和/或安装到FIB 130中。例如,识别模块104可以识别当前正接收到超过流量阈值的量的流量的目的地。识别模块104然后可以在RIB 120内识别定义通向该目的地的最佳路径的路由。一旦定义最佳路径的路由已经被识别,创建模块106可以将该路由的副本安装到FIB 130中。
另外地或替换地,创建模块106可以从FIB 130中移除任何较不重要的路由。例如,识别模块104可以确定以前的高流量外部路由所对应的目的地不再接收到超过流量阈值的量的流量。响应于这一确定,创建模块106可以通过从FIB 130中删除该路由的副本而移除该路由。这一移除和/或删除可以创建和/或释放FIB 130中的可用空间以从RIB 120中导入另外的路由(例如,新的高流量路由)。
在一些示例中,网络设备202可以修改和/或更新RIB到FIB导出策略。对RIB到FIB导出策略的这些修改和/或更新可能对网络设备202施加高处理和/或资源负担。作为结果,网络设备202可以在相当不频繁的基础上修改和/或更新RIB到FIB导出策略,以避免不必要地加负担于网络设备202和/或妨碍它的性能。
鉴于这一观察,创建模块106可以通过绕过RIB到FIB策略来修改和/或更新FIB130以包括当前的高流量外部路由。例如,识别模块104可以确定目的地当前正接收到超过流量阈值的量的流量。在这个示例中,绕过模块112可以作为图2中的网络设备202的一部分而通过设置RIB 120内的路由中的至少一个路由的策略绕过标记来绕过RIB到FIB策略。这个路由可以定义通向当前正接收到超过流量阈值的量的流量的目的地的路径。
如本文所使用的术语“策略绕过标记”一般指代指示是否绕过策略的任何类型或形式的指示符、标志和/或标识符。这一策略绕过标记可以包括和/或表示二进制和/或布尔表示、比特、或整数。在一个示例中,RIB 120内的每个路由条目可以包括策略绕过标记。在这个示例中,策略绕过标记可以传达和/或指示创建模块106是否将关于对应的路由条目而绕过RIB到FIB策略。因此,在特定路由的策略绕过标记被设置在RIB 120内的情况下,创建模块106可以将该路由导入和/或安装到FIB 130中,即使RIB到FIB策略没有要求该路由被导入和/或安装到FIB 130中。换句话说,创建模块106可以将策略绕过标记被设置的任何路由导入和/或安装到FIB 130中,而不论RIB到FIB策略的指示、指令和/或规则如何。
相反地,在特定路由的策略绕过标记在RIB 120内被清除的情况下,RIB到FIB策略可以再次控制该路由是保持在FIB 130中还是从FIB 130中被移除。换句话说,一旦特定路由的策略绕过标记被清除,假如RIB到FIB策略没有要求该路由被安装到FIB 130中,则创建模块106可以从FIB 130中移除该路由。
为了确保FIB 130内的活动路由的子集的总大小保持低于大小阈值,创建模块106可以从FIB 130中排除RIB 120中包括的各种路由。例如,创建模块106可以确定RIB到FIB策略没有要求特定路由被安装到FIB 130中,并且RIB 120内的特定路由的策略绕过标记被清除或者没有被设置。响应于这些确定,创建模块106可以通过拒绝将该路由从RIB 120中导入和/或安装到FIB 130中,而有意地从FIB 130中排除该路由。通过这样做,创建模块106可以将FIB 130内的活动路由的子集的大小维持在某个水平。
如上文所描述的,本文所描述的各种系统和方法可以能够使用最小FIB来转发网络流量。尽管在一些示例中FIB 130中的内部路由和重要外部路由可以能够促进对绝大多数(例如,90-99%)的网络流量的处置,但是剩余的网络流量可能无法匹配于FIB 130中的内部路由和重要外部路由中的任何路由。作为结果,这样的网络流量可以被转发到其路径由默认路由定义的目的地。
如本文所使用的术语“默认路由”一般指代定义通向如下节点的路径的任何类型或形式的路由,该节点促进不匹配于FIB中的内部路由或重要外部路由中的任何路由的流量的解析。例如,接收模块108可以作为图2中的网络设备202的一部分来接收分组,该分组将至少部分地基于FIB 130中包括的活动路由而被转发到目的地。响应于接收到这个分组,识别模块104可以识别该分组的目的地,并且然后搜索FIB 130以寻找定义通向该相同目的地的路径的活动路由。在识别模块104能够找到这样的路由的情况下,转发模块108可以作为图2中的网络设备202的一部分将该分组经由该路由所定义的路径而转发到该目的地。
然而,在识别模块104不能找到这样的路由的情况下,转发模块108可以将该分组经由FIB 130中的默认路由所定义的路径而转发到默认节点。在这个示例中,默认节点可以通过默认节点的FIB来解析通向该分组的目的地的路径的剩余部分。因此,默认节点可以促进不匹配于FIB 130内的内部路由或重要外部路由中的任何路由的流量的解析。
如本文所使用的术语“默认节点”一般指代通过FIB的默认路由来接收流量的任何类型或形式的网络设备。这样的默认节点的示例不带限制地包括路由器(诸如提供商边缘路由器、集线器路由器、轮辐路由器、自治系统边界路由器、和/或区域边际路由器)、交换机、集线器、调制解调器、桥接器、中继器、网关、复用器、网络适配器、网络接口、网络机架、机箱(chasses)、服务器、计算设备、运行在它们中的一个或多个上的虚拟机、它们中的一个或多个的部分、它们中的一个或多个的组合或变化、和/或任何其他适合的设备。
作为关于图2的具体示例,系统200可以包括和/或表示一种网络配置,在该网络配置中,图2中的网络212、214、216和218与彼此是对等的(peered)。在这个示例中,图2中的网络设备204可以向图2中的网络设备202发送分组流。当这个流量到达图2中的网络设备202时,识别模块104可以识别该分组流的目的地。在图2中的FIB 130中没有找到匹配路由的情况下,识别模块104可以确定这个分组流应当通过默认路由而被转发。在这个示例中,默认路由可以将默认节点识别为图2中的网络设备208。因此,转发模块108可以将这个分组流转发到图2中的网络设备208。一经接收到这个分组流,图2中的网络设备208可以解析通向分组的目的地的路径的剩余部分,即使图2中的网络设备202不能这样做。
当个人网络或内联网与中转提供商(transit provider)(诸如,AT&T、VERIZONWIRELESS、SPRINT、T-MOBILE)对等时,图2中的系统200的网络配置可能表示一种良好的选择。然而,当两个中转提供商与彼此对等时,这种网络配置可能是较不可取的。为了避免路由环路,在这种网络配置中进行操作的网络设备可能需要确保它们没有应用通向彼此的默认路由。
作为关于图4的另一示例,系统400可以包括和/或表示一种网络配置,在该网络配置中,图4中的网络212、214、216和218与彼此是对等的。在这个示例中,图4中的网络设备204可以向图4中的网络设备202发送分组流。当这个流量到达图4中的网络设备202时,识别模块104可以识别该分组流的目的地。在图4中的FIB 130中没有找到匹配路由的情况下,识别模块104可以确定这个分组流应当通过默认路由而被转发。在这个示例中,默认路由可以将默认节点识别为图4中的路由解析代理406,路由解析代理406包括RIB 120内的路由的集合的副本以及通过进行对等与网络214、216和218的接口。因此,转发模块108可以将这个分组流转发到图4中的路由解析代理406。
一经接收到这个分组流,路由解析代理406可以解析通向分组的目的地的路径的剩余部分,即使网络设备202不能这样做。例如,路由解析代理406可以识别对等网络214、216和218和/或网络设备204、206和208之一作为这个分组流的下一跳。路由解析代理406然后可以将该分组流转发到这个下一跳。
作为关于图5的进一步示例,系统500可以包括和/或表示一种网络配置,在该网络配置中,图5中的网络212、214、216和218与彼此是对等的。在这个示例中,图5中的网络设备204可以向图5中的网络设备202发送分组流。当这个流量到达图5中的网络设备202时,识别模块104可以识别该分组流的目的地。在图5中的FIB130中没有找到匹配路由的情况下,识别模块104可以确定这个分组流应当通过默认路由而被转发。在这个示例中,默认路由可以将默认节点识别为图5中的路由解析助理506。因此,转发模块108可以将这个分组流转发到图5中的路由解析助理506。
一经从网络设备202接收到这个分组流,路由解析助理506可以确定定义通向该分组流的下一跳的路径的路由。路由解析助理506然后可以向该分组流应用MPLS标签。在这个示例中,MPLS标签可以识别该分组流的下一跳。路由解析助理506然后可以将具有MPLS标签的该分组流返回给网络设备202。
当具有MPLS标签的该分组流到达网络设备202时,接收模块108可以接收该分组流。识别模块104可以至少部分地基于该MPLS标签来确定该分组流的下一跳。一经确定该下一跳,转发模块110可以从该分组流移除该MPLS标签,并且然后将该分组流转发到该下一跳以促进向最终目的地的递送。
另外地或替换地,路由解析助理506可以将具有MPLS标签的该分组流转发到网络212内的另一网络设备(图5中未图示)。像网络设备202那样,这一其他网络设备可以依赖于路由解析助理506用于路由解析。例如,这一其他网络设备的默认路由可以将默认节点识别为图中的路由解析助理506。因此,在设备的FIB中没有找到匹配路由的情况下,这一其他网络设备可以将分组转发到路由解析助理506,并且路由解析助理506可以同时服务于多个网络设备。
当两个中转提供商与彼此对等时,图5中的系统500的网络配置可以表示一种良好的选择。然而,当个人网络或内联网与中转提供商对等时,这种网络配置可能是较不可取的。
在一些示例中,FIB 130可以包括多个默认路由。例如,FIB 130可以包括共同地定义通向对等网络214、216和218的路径的默认路由。在这个示例中,对等网络214、216和218可以促进不匹配于FIB 130中的内部路由或高流量外部路由中的任何路由的流量的解析。
在一个示例中,识别模块104可以识别关于在网络设备202处接收的分组的头部信息。创建模块106然后可以从关于该分组所识别的头部信息生成散列(hash)。作为结果的散列可以对应于对等网络214、216和218之一。一经该散列的生成,转发模块110可以至少部分地基于该散列而将对应的对等网络选择作为该分组的中间目的地。转发模块110然后可以将该分组转发到所选择的对等网络,以使得该对等网络能够确定定义通向该分组的下一跳和/或最终目的地的路径的路由。
如上文关于图1-5所解释的,路由器可以通过对FIB存储器进行高效使用,而利用比RIB存储器少得多的该FIB存储器成功地进行操作。通过减少路由器中的FIB存储器的量,路由装备销售商可以能够显著地降低制造成本。此外,这样的路由器可以减少在构建和/或维持FIB时所涉及的处理负担和/或资源消耗,由此释放了处理能力和/或资源以用于其他路由和/或性能目的或需求。
图6是能够实施本文所描述和/或所图示的一个或多个实施例和/或能够与本文所描述和/或所图示的一个或多个实施例有关地被使用的示例性计算系统600的框图。在一些实施例中,计算系统600的全部或部分可以独自地或与其他元件组合地执行关于图3所描述的步骤中的一个或多个步骤和/或可以是用于独自地或与其他元件组合地执行关于图3所描述的步骤中的一个或多个步骤的部件(means)。计算系统600的全部或部分还可以执行本文所描述和/或图示的任何其他步骤、方法或过程,和/或是用于执行和/或实施本文所描述和/或所图示的任何其他步骤、方法或过程的部件。在一个示例中,计算系统600可以包括执行和/或构成用于执行和/或实施本文所描述和/或所图示的任何其他步骤、方法或过程的部件的装置。
计算系统600宽泛地表示任何类型或形式的电负载,包括能够执行计算机可读指令的单处理器或多处理器的计算设备或系统。计算系统600的示例不带限制地包括工作站、膝上型计算机、客户侧终端、服务器、分布式计算系统、移动设备、网络交换机、网络路由器(例如,骨干路由器、边缘路由器、核心路由器、移动服务路由器、宽带路由器等)、网络器具(appliance)(例如,网络安全器具、网络控制器具、网络定时器具、SSL VPN(安全套接字层虚拟专用网)器具等)、网络控制器、网关(例如,服务网关、移动分组网关、多接入网关、安全网关等)、和/或任何其他类型或形式的计算系统或设备。
计算系统600可以被编程、被配置、和/或以其他方式被设计为符合于一个或多个网络化协议。根据某些实施例,计算系统600可以被设计为利用开放系统互连(OSI)参考模型的一个或多个层的协议进行工作,诸如物理层协议、链路层协议、网络层协议、传输层协议、会话层协议、表示层协议、和/或应用层协议。例如,计算系统600可以包括根据以下协议而被配置的网络设备:通用串行总线(USB)协议、电气和电子工程师协会(IEEE)1394协议、以太网协议、T1协议、同步光网络化(SONET)协议、同步数字层次(SDH)协议、综合服务数字网络(ISDN)协议、异步传输模式(ATM)协议、点到点协议(PPP)、通过以太网的点到点协议(PPPoE)、通过ATM的点到点协议(PPPoA)、蓝牙协议、IEEE 802.XX协议、帧中继协议、令牌环协议、生成树协议、和/或任何其他适合的协议。
计算系统600可以包括各种网络和/或计算组件。例如,计算系统600可以包括至少一个处理器614和系统存储器616。处理器614一般表示能够处理数据或者解释并执行指令的任何类型或形式的处理单元。例如,处理器614可以表示专用集成电路(ASIC)、片上系统(例如,网络处理器)、硬件加速器、通用处理器、和/或任何其他适合的处理元件。
处理器614可以根据上面所讨论的联网协议中的一个或多个联网协议来处理数据。例如,处理器614可以执行或实施协议栈的一部分、可以处理分组、可以执行存储器操作(例如,对用于稍后处理的分组进行排队)、可以执行终端用户应用、和/或可以执行任何其他的处理任务。
系统存储器616一般表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器616的示例不带限制地包括:随机访问存储器(RAM)、只读存储器(ROM)、闪存、或任何其他合适的存储器设备。尽管不被要求,但是在某些实施例中,计算系统600可以包括易失性存储单元(诸如,例如,系统存储器616)和非易失性存储设备(诸如,例如,如下面详细描述的主存储设备632)两者。系统存储器616可以被实施为网络设备中的共享式存储器和/或分布式存储器。此外,系统存储器616可以存储分组和/或在联网操作中使用的其他信息。在一个示例中,系统存储器616可以包括和/或存储来自图1的模块102中的一个或多个模块。
在某些实施例中,示例性计算系统600还可以包括除了处理器614和系统存储器616之外的一个或多个组件或元件。例如,如图6中所图示的,计算系统600可以包括存储器控制器618、输入/输出(I/O)控制器620、以及通信接口622,它们中的每个都可以经由通信基础设施612而互连。通信基础设施612一般表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础设施。通信基础设施612的示例不带限制地包括:通信总线(诸如串行ATA(SATA)、工业标准结构(ISA)、外围组件互连(PCI)、PCI高速(PCIe)、和/或任何其他适合的总线),以及网络。
存储器控制器618一般表示能够处置存储器或数据或者控制计算系统600的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储器控制器618可以经由通信基础设施612来控制处理器614、系统存储器616、以及I/O控制器620之间的通信。在一些实施例中,存储器控制器618可以包括直接存储器存取(DMA)单元,该直接存储器存取单元可以向链路适配器或者从链路适配器传送数据(例如,分组)。
I/O控制器620一般表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的设备或模块。例如,在某些实施例中,I/O控制器620可以控制或促进计算系统600的一个或多个元件(诸如处理器614、系统存储器616、通信接口622、以及存储接口630)之间的数据传送。
通信接口622宽泛地表示能够促进示例性计算系统600与一个或多个另外的设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口622可以促进计算系统600与包括另外的计算系统的私有或公有网络之间的通信。通信接口622的示例不带限制地包括:链路适配器、有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、以及任何其他适合的接口。在至少一个实施例中,通信接口622可以经由通向网络(诸如互联网)的直接链路而提供通向远程服务器的直接连接。通信接口622也可以通过例如局域网(诸如以太网网络)、个域网、广域网、私有网络(例如,虚拟专用网络)、电话或电缆网络、蜂窝电话连接、卫星数据连接、或者任何其他适合的连接,来间接地提供这样的连接。
在某些实施例中,通信接口622也可以表示被配置为经由外部总线或通信信道来促进计算系统600与一个或多个另外的网络或存储设备之间的通信的主机适配器。主机适配器的示例不带限制地包括:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、IEEE 1394主机适配器、先进技术附件(ATA)主机适配器、并行ATA(PATA)主机适配器、串行ATA(SATA)主机适配器、以及外部SATA(eSATA)主机适配器、光纤信道接口适配器、以太网适配器等。通信接口622也可以使得计算系统600能够参与分布式或远程计算。例如,通信接口622可以从远程设备接收指令或者向远程设备发送指令用于执行。
如图6中所图示的,示例性计算系统600也可以包括经由存储接口630而耦合到通信基础设施612的主存储设备632和/或备份存储设备634。存储设备632和634一般表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备632和634可以表示磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口630一般表示用于在存储设备632和634与计算系统600的其他组件之间传送数据的任何类型或形式的接口或设备。
在某些实施例中,存储设备632和634可以被配置为从可移除存储单元进行读取和/或向可移除存储单元进行写入,该可移除存储单元被配置为存储计算机软件、数据、或其他计算机可读信息。适合的可移除存储单元的示例不带限制地包括:软盘、磁带、光盘、闪存设备等。存储设备632和634也可以包括用于允许计算机软件、数据、或其他计算机可读指令被加载到计算系统600中的其他类似的结构或设备。例如,存储设备632和634可以被配置为读取和写入软件、数据、或其他计算机可读信息。存储设备632和634可以是计算系统600的一部分,或者可以是通过其他接口系统来访问的分离设备。
许多其他的设备或子系统可以被连接到计算系统600。相反地,为了实践本文所描述和/或图示的实施例,不需要出现图6中所图示的全部组件和设备。上面所提及的设备和子系统也可以用与图6中所示出的那些方式不同的方式而互连。计算系统600也可以采用任何数目的软件、固件、和/或硬件配置。例如,本文所公开的示例性实施例中的一个或多个可以被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用、计算机可读指令、或者计算机控制逻辑)。术语“计算机可读介质”一般指代能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例不带限制地包括:传输类型介质,诸如载波;以及非瞬态类型介质,诸如磁存储介质(例如,硬盘驱动器和软盘)、光存储介质(例如,紧致盘(CD)和数字视频盘(DVD)、电子存储介质(例如,固态驱动器和闪速介质);以及其他分布系统。
尽管前述公开使用具体的框图、流程图、以及示例阐述了各种实施例,但是可以使用宽范围的硬件、软件、或者固件(或它们的任何组合)配置,来个别地和/或共同地实施本文所描述和/或图示的每个框图组件、流程图步骤、操作、和/或组件。另外,包含在其他组件内的组件的任何公开应当被考虑为本质上是示例性的,因为能够实施许多其他架构来实现相同的功能。
在一些示例中,图1中的系统100的全部或者一部分可以表示云计算或基于网络的环境的部分。云计算和基于网络的环境可以经由互联网来提供各种服务和应用。这些云计算和基于网络的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过web浏览器或其他远程接口而是可访问的。本文所描述的各种功能也可以提供网络交换能力、网关接入能力、网络安全功能、用于网络的内容缓存和交付服务、网络控制服务、和/或其他联网功能。
另外,本文所描述的模块中的一个或多个模块可以将数据、物理设备、和/或物理设备的表示从一种形式变换到另一种形式。另外地或替换地,本文所记载的模块中的一个或多个模块可以通过在计算设备上执行、在计算设备上存储数据、和/或以其他方式与计算设备交互,而将处理器、易失性存储器、非易失性存储器、和/或物理计算机设备的其他任何部分从一种形式变换到另一种形式。
本文所描述和/或图示的步骤的过程参数和次序仅通过示例的方式给出,并且能够根据需要而变化。例如,尽管本文所图示和/或描述的步骤可能以特定顺序被示出或讨论,但是这些步骤并非必然需要以所图示或讨论的顺序被执行。本文所描述和/或图示的各种示例性方法也可以省略本文所描述或图示的步骤中的一个或多个步骤,或者包括除了所公开的那些步骤之外的另外步骤。
已经提供了前面的描述以使得本领域中的其他技术人员能够最好地利用本文所公开的示例性实施例的各种方面。这一示例性描述并不意图为详尽的或者被限制为所公开的任何精确形式。不偏离本公开的精神和范围,许多修改和变化是可能的。本文所公开的实施例应当在全部方面被考虑为是说明性的而不是限制性的。在确定本公开的范围时,应当对所附权利要求以及它们的等价物做出参考。
除非另有指明,如说明书和权利要求中所使用的术语“连接至”和“耦合至”(以及它们的派生词),将被解释为准许直接和间接(即,经由其他元件或组件)连接两者。另外,如说明书和权利要求中所使用的术语“一”或“一种”,将被解释为意指“至少一个”。最后,为了使用的简单性,如说明书和权利要求中所使用的术语“包括”和“具有”(以及它们的派生词)与词语“包括有”是可互换的并且与词语“包括有”具有相同含义。
Claims (15)
1.一种计算机实施的方法,包括:
识别包括路由的集合的路由信息库RIB,所述路由定义通向网络之内的目的地和网络之外的目的地两者的路径;以及
通过以下操作来创建转发信息库FIB,所述FIB包括总大小低于大小阈值的活动路由的子集:
从所述RIB内的路由的所述集合中将以下各项导入到所述FIB中:
内部路由,所述内部路由定义通向所述网络之内的目的地的路径;
高流量外部路由,所述高流量外部路由定义通向所述网络之外的正接收到超过流量阈值的量的流量的目的地的路径;以及
默认路由,所述默认路由定义通向默认节点的路径,所述默认节点促进不匹配于所述内部路由或所述高流量外部路由中的任何路由的流量的解析;以及
从所述FIB中排除低流量外部路由,所述低流量外部路由定义通向所述网络之外的没有接收到超过所述流量阈值的量的流量的目的地的路径。
2.根据权利要求1所述的方法,其中创建所述FIB包括:
识别策略,所述策略定义所述RIB内的哪些路由要导入到所述FIB中;以及
至少部分地基于所述策略来创建所述FIB。
3.根据权利要求2所述的方法,其中从所述RIB导入所述高流量外部路由包括:
确定目的地当前正接收到超过所述流量阈值的量的流量;以及
通过以下操作来绕过定义哪些路由要导入到所述FIB中的所述策略:
在所述RIB内设置定义通向所述目的地的路径的路由中的至少一个路由的策略绕过标记;以及
至少部分地归因于所述策略绕过标记被设置而将所述路由安装到所述FIB中。
4.根据权利要求3所述的方法,其中绕过定义哪些路由要导入到所述FIB中的所述策略包括:即使所述策略没有要求所述路由被安装到所述FIB中,也将所述路由安装到所述FIB中。
5.根据权利要求1所述的方法,其中创建所述FIB包括:从所述RIB内的路由的所述集合导入定义通向普及性排名高于某个普及性阈值的目的地的路径的高流量外部路由。
6.根据权利要求1所述的方法,其中从所述RIB导入所述高流量外部路由包括:
识别当前正接收到超过所述流量阈值的量的流量的特定目的地;
在所述RIB内识别路由,所述路由定义通向当前正接收到超过所述流量阈值的量的流量的所述特定目的地的路径;以及
将定义通向所述特定目的地的所述路径的所述路由从所述RIB安装到所述FIB中。
7.根据权利要求1所述的方法,进一步包括:
确定所述高流量外部路由中的至少一个高流量外部路由所对应的特定目的地不再接收到超过所述流量阈值的量的流量;以及
响应于确定所述目的地不再接收到超过所述流量阈值的流的量量,从所述FIB中移除对应于所述目的地的所述高流量外部路由。
8.根据权利要求1所述的方法,其中从所述FIB中移除对应于所述目的地的所述高流量外部路由包括:在所述FIB中创建可用空间以从所述RIB导入至少一个另外的高流量外部路由。
9.根据权利要求1所述的方法,进一步包括:
接收分组,所述分组将至少部分地基于所述FIB中包括的活动路由的所述子集而被转发到目的地;
在所述FIB内识别匹配于所述分组的所述目的地的活动路由;以及
将所述分组经由所述FIB内识别的所述活动路由所定义的路径转发到所述目的地。
10.根据权利要求9所述的方法,其中:
所述默认节点包括路由解析助理,所述路由解析助理包括所述RIB内的路由的所述集合的副本;以及
将所述分组转发到所述目的地包括:从所述网络内的路由器将所述分组转发到所述路由解析助理以使得所述路由解析助理能够:
确定定义通向所述分组的下一跳的路径的路由;
向所述分组应用多协议标签交换MPLS标签,所述MPLS标签识别定义通向所述下一跳的所述路径的所述路由;以及
以下至少一项:
将具有所述MPLS标签的所述分组返回给所述路由器;以及
将具有所述MPLS标签的所述分组转发到所述网络内的另一路由器。
11.根据权利要求10所述的方法,其中将具有所述MPLS标签的所述分组返回给所述路由器包括:
在所述路由器处从所述路由解析助理接收具有所述MPLS标签的所述分组;
至少部分地基于所述MPLS标签来确定所述分组的所述下一跳;
从所述分组中移除所述MPLS标签;以及
将所述分组经由所述路径转发到所述下一跳,以促进所述分组向最终目的地的递送。
12.根据权利要求9所述的方法,其中:
所述默认路由包括定义通向多个对等网络的路径的多个默认路由,所述多个对等网络促进不匹配于所述内部路由或所述高流量外部路由中的任何路由的流量的解析;
识别匹配于所述分组的所述目的地的所述活动路由包括:
识别关于所述分组的头部信息;
从关于所述分组所识别的所述头部信息生成散列;以及
至少部分地基于从所述头部信息生成的所述散列来选择所述对等网络之一;并且
将所述分组转发到所述目的地包括:将所述分组转发到所选择的对等网络以使得所选择的对等网络能够确定定义通向所述分组的下一跳的路径的路由。
13.根据权利要求9所述的方法,其中:
所述默认节点包括路由解析代理,所述路由解析代理:
包括所述RIB内的路由的所述集合的副本;以及
与多个对等网络的接口;并且
将所述分组转发到所述目的地包括:将所述分组转发到所述路由解析代理以使得所述路由解析代理能够:
将所述多个对等网络中的一个对等网络识别作为所述分组的下一跳;以及
将所述分组转发到被识别作为所述分组的所述下一跳的所述对等网络。
14.一种计算系统,包括:
存储器中存储的识别模块,所述识别模块识别包括路由的集合的路由信息库RIB,所述路由定义通向网络之内的目的地和网络之外的目的地两者的路径;
存储器中存储的创建模块,所述创建模块通过以下操作来创建转发信息库FIB,所述FIB包括总大小低于大小阈值的活动路由的子集:
从所述RIB内的路由的所述集合中将以下各项导入到所述FIB中:
内部路由,所述内部路由定义通向所述网络之内的目的地的路径;
高流量外部路由,所述高流量外部路由定义通向所述网络之外的正接收到超过流量阈值的量的流量的目的地的路径;以及
默认路由,所述默认路由定义通向默认节点的路径,所述默认节点促进不匹配于所述内部路由或所述高流量外部路由中的任何路由的流量的解析;以及
从所述FIB中排除低流量外部路由,所述低流量外部路由定义通向所述网络之外的没有接收到超过所述流量阈值的量的流量的目的地的路径;以及
至少一个物理处理器,所述至少一个物理处理器执行所述识别模块和所述创建模块。
15.一种用于转发网络流量的装置,包括:
存储器设备,所述存储器设备存储包括路由的集合的路由信息库RIB,所述路由定义通向网络之内的目的地和网络之外的目的地两者的路径;以及
通信地耦合到所述存储器设备的处理单元,其中所述处理单元通过以下操作来创建转发信息库FIB,所述FIB包括总大小低于大小阈值的活动路由的子集:
从所述RIB内的路由的所述集合中将以下各项导入到所述FIB中:
内部路由,所述内部路由定义通向所述网络之内的目的地的路径;
高流量外部路由,所述高流量外部路由定义通向所述网络之外的正接收到超过流量阈值的量的流量的目的地的路径;以及
默认路由,所述默认路由定义通向默认节点的路径,所述默认节点促进不匹配于所述内部路由或所述高流量外部路由中的任何路由的流量的解析;以及
从所述FIB中排除低流量外部路由,所述低流量外部路由定义通向所述网络之外的没有接收到超过所述流量阈值的量的流量的目的地的路径。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/078,111 | 2016-03-23 | ||
US15/078,111 US9960994B2 (en) | 2016-03-23 | 2016-03-23 | Method, system, and apparatus for forwarding network traffic using minimal forwarding information bases |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107231304A CN107231304A (zh) | 2017-10-03 |
CN107231304B true CN107231304B (zh) | 2020-06-12 |
Family
ID=56292565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610556567.6A Active CN107231304B (zh) | 2016-03-23 | 2016-07-14 | 用于使用最小转发信息库来转发网络流量方法、系统和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9960994B2 (zh) |
EP (1) | EP3223475B1 (zh) |
CN (1) | CN107231304B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US10491366B2 (en) * | 2015-06-22 | 2019-11-26 | Sony Corporation | Communication control device, communication control method, network switch, route control method, and communication system |
US10389621B2 (en) * | 2016-05-24 | 2019-08-20 | Level 3 Communications, Llc | Route selection system for a communication network and method of operating the same |
CN108650179B (zh) * | 2018-04-17 | 2021-10-22 | 达闼科技(北京)有限公司 | 一种配置转发表的方法、转发装置及计算机可读存储介质 |
JP6988777B2 (ja) * | 2018-11-30 | 2022-01-05 | 日本電信電話株式会社 | 転送装置、転送システム、転送方法及びプログラム |
US11159431B2 (en) * | 2019-09-25 | 2021-10-26 | Juniper Networks, Inc | Apparatus, system, and method for determining traffic load distributions in connection with routes of hierarchical forwarding information bases |
US11171883B1 (en) | 2020-07-07 | 2021-11-09 | Mellanox Technologies, Ltd. | Peering-fabric routing using switches having dynamically configurable forwarding logic |
CN114079670B (zh) * | 2020-07-30 | 2023-07-11 | 华为技术有限公司 | 传输路由信息的方法、装置和通信系统 |
US11979313B2 (en) * | 2022-09-01 | 2024-05-07 | At&T Intellectual Property I, L.P. | Scalable core and edge network router |
CN116390189B (zh) * | 2023-06-05 | 2023-08-15 | 微网优联科技(成都)有限公司 | 一种路由规划方法、装置、电子设备及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100579130B1 (ko) * | 2003-12-27 | 2006-05-12 | 한국전자통신연구원 | 라우터 이중화 실현을 위한 라우팅 엔트리 정보 이중화 방법 |
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 |
US8976672B2 (en) * | 2006-10-03 | 2015-03-10 | Cisco Technology, Inc. | Efficiently decoupling reservation and data forwarding of data flows in a computer network |
FR2914523B1 (fr) * | 2007-03-30 | 2009-09-25 | Thales Sa | Procede et systeme de routage multipologie. |
US8320371B2 (en) * | 2007-10-26 | 2012-11-27 | Cisco Technology, Inc. | Statistics based forwarding information base repopulation |
US8218553B2 (en) * | 2009-02-25 | 2012-07-10 | Juniper Networks, Inc. | Load balancing network traffic on a label switched path using resource reservation protocol with traffic engineering |
US8064443B2 (en) * | 2009-05-11 | 2011-11-22 | Juniper Networks, Inc. | Scalable routing policy construction using dynamic redefinition of routing preference value |
EP2355423A1 (en) * | 2010-01-29 | 2011-08-10 | Deutsche Telekom AG | System and method for routing data packets over an Internet Protocol network |
CN101909005A (zh) * | 2010-07-20 | 2010-12-08 | 中兴通讯股份有限公司 | 转发表的处理方法和装置 |
US9014187B2 (en) * | 2010-12-13 | 2015-04-21 | Telefonaktiebolaget L M Ericsson (Publ) | Managing stale route removal in a routing information base of a network element |
US8559414B2 (en) * | 2011-02-19 | 2013-10-15 | Cisco Technology, Inc. | Automatically detecting best paths from shadow route reflectors |
CN102957606B (zh) * | 2011-08-30 | 2017-02-08 | 中兴通讯股份有限公司 | 一种路由信息通告方法及装置 |
US8750121B2 (en) * | 2011-10-28 | 2014-06-10 | Telefonaktiebolaget L M Ericsson (Publ) | Addressing the large flow problem for equal cost multi-path in the datacenter |
US9106443B2 (en) * | 2012-10-26 | 2015-08-11 | Cisco Technology, Inc. | Forwarding table optimization with flow data |
US9397950B2 (en) * | 2012-11-01 | 2016-07-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Downlink service path determination for multiple subscription based services in provider edge network |
US9264971B2 (en) * | 2013-10-17 | 2016-02-16 | Telefonaktiebolaget L M Ericsson (Publ) | VPNv4 route control for LTE X2 son using unique route targets |
CN104253748B (zh) * | 2014-09-24 | 2017-10-03 | 大唐移动通信设备有限公司 | 基于分布式架构的路由方法和系统 |
-
2016
- 2016-03-23 US US15/078,111 patent/US9960994B2/en active Active
- 2016-06-30 EP EP16177394.0A patent/EP3223475B1/en active Active
- 2016-07-14 CN CN201610556567.6A patent/CN107231304B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP3223475A1 (en) | 2017-09-27 |
US9960994B2 (en) | 2018-05-01 |
US20170279709A1 (en) | 2017-09-28 |
CN107231304A (zh) | 2017-10-03 |
EP3223475B1 (en) | 2019-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107231304B (zh) | 用于使用最小转发信息库来转发网络流量方法、系统和装置 | |
US11329909B2 (en) | Apparatus, system, and method for discovering network paths | |
US10992566B1 (en) | Apparatus, system, and method for improved memory consumption in network devices via efficient route management | |
US10063457B2 (en) | Method, system, and apparatus for improving forwarding capabilities during route convergence | |
CN107231307B (zh) | 用于防止数据中心架构内子网间流量转接的方法、系统和装置 | |
US11252100B2 (en) | Apparatus, system, and method for providing node protection across label-switched paths that share labels | |
US10567274B1 (en) | Method, system, and apparatus for proxying intra-subnet traffic across multiple interfaces within networks | |
US20210399987A1 (en) | Apparatus, system, and method for determining traffic load distributions in connection with routes of hierarchical fowarding information bases | |
CN109150721B (zh) | 用于在mpls分组上施加标签栈条目的装置、系统和方法 | |
US10999151B2 (en) | Apparatus, system, and method for topology discovery across geographically redundant gateway devices | |
US10728143B2 (en) | Apparatus, system, and method for sharing labels across label-switched paths within networks | |
EP3382956B1 (en) | Apparatus, system, and method for facilitating controller-based multicast signaling | |
US10644902B1 (en) | Method, system, and apparatus for classifying uplink and downlink traffic in networks | |
US11329921B1 (en) | Apparatus, system, and method for mapping incremental changes across hierarchical and non-hierarchical forwarding information bases | |
EP3373531A1 (en) | Apparatus, system, and method for sharing labels across label-switched paths within networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |