路由表RIB(Routing Information Base)是路由器的控制核心,存放着来自各种路由协议如OSPF、BGP等的路由,通常存放在路由引擎RP(Router Processor)的DRAM内存中;而FIB是将RIB中选择出来的最佳路由附加上相关的转发信息,如下一跳地址、出接口信息等结合在一起的转发信息表。路由器通过FIB来实现对网络包的转发,所有需要包转发功能的接口卡均需要存放FIB表。
由于FIB表直接关系到路由器的转发效率,为了实现线速转发,要求有较高的查找效率,因此通常采用TCAM内存结合SRAM内存的方式来存储。但是TCAM和SRAM不仅较贵,且容量有限,目前TCAM的最大容量不超过18M,也就是说只能存放51.2万条IPv4网络地址(地址加前缀共36位)或12.8万条IPv6网络地址(地址加前缀共144位)。
随着全球IP路由表的不断增长,截至2007年2月,全球网络地址条数(prefix)已接近21万条。从2002年到2007年这5年间,活动的路由条数(对应着FIB表大小)从10万多条增加到了20多万条,据此分析,再过5年将增加到40万条左右,如果采用双协议栈,加上IPv6的路由,目前已有的路由器将面临严重的问题。
2007年2月份召开的亚太网络运行技术大会APRICOT和北美网络技术论坛NANOG第39届会议均对该问题进行了分析和讨论,FIB表的不断增长不仅对网络运营商提出了挑战,设备制造商也在考虑相应的对策,包括路由器的体系结构等。另外,学术和研究界也开始提出了新的寻址和定位的解决方案。下面是这方面的一些思考。
FIB增长与IP地址的聚类
FIB表的不断增长与目前IP地址聚类不好也有关,IP地址聚类包括域内(一个AS内部)和域间的,都对FIB表有影响,对于一些超大型ISP如顶级的Tier-1运营商来讲,内部的聚类非常重要。针对Internet路由表,主要考虑域间的聚类问题。
Internet路由表里的路由基本可分成两类:聚类的路由;非聚类的路由。理想的情况是只有聚类路由,但是,由于IP地址在分配时块的不连续,以及多出口网络为了实现流量工程而故意广播更细的路由,导致大量非聚类路由的存在,加上部分网络管理员的误配置或不精心,也可能导致向Internet广播不必要的非聚类路由。目前实际的非聚类路由约占路由表的60%左右,前缀长度(Prefix Length)为/24的路由条目所占的比例为77%。这几类原因中,目前存在技术障碍的是多出口的流量工程问题,BGP采用细路由(More Specific)优先的选路策略来实现入流量的流量工程,现在还没有更好的替代方法。
硬件解决方案
从内存容量来讲,目前核心路由器是足够应付的,且FIB表增长的速度还不能超过摩尔定律所描述的芯片密度的增长速度。TCAM的容量在2008年将可超过70M,而FIB的增长不可能是无限制的,加上IPv4的地址即将耗尽,因此所需做的只是在几年后升级目前所有核心路由器而已,这对设备厂商来说可能还是一个好消息。
随着FIB表的增长,我们可能更需关注更新路由表、更新或撤消路由、更新FIB表时所需的处理时间,目前具有国际路由表的核心路由器FIB表的更新时间已接近15分钟。
IPv6的影响
IPv6在网络路由方面没有革命性的变化,基本沿用了IPv4的路由技术。随着全球IPv6应用的普及,同IPv4一样,将加速FIB表的增长速度。IPv6的全球路由表已接近10万条,加上现有的IPv4的路由总数超过了30万条,将可能超过目前部分核心设备的处理能力,因此同时支持IPv4和IPv6的核心路由器已面临FIB表增长带来的问题。
新的路由解决方案:标识/定位(ID/LOC)分离
这是研究人员提出的革命性的解决方案,与现有IP寻址有较大的不同。很多研究人员认为导致当前FIB表不断增长,缺乏可扩展性的最根本原因就是当前的IP地址既用做会话时的终端标识 ID (Identifier),同时又作为路由时的定位(Locator)标识。由于定位标识通常是与拓扑或运营商相关的,这样,在连接到多个运营商或要改变运营商时,这种ID/LOC不分的寻址方式缺乏可扩展性。
因此,解决FIB表不可扩展性,需要将终端标识与定位标识分开,即ID/LOC分离,但是由于与现有寻址和路由方式不同,可能需要改变现有的路由器或主机系统才能实现。目前相关的研究方案有SHIM6、LISP等。
无需BGP的核心网络 (BGP-Free Core)
如果核心路由器不承载BGP路由,只运行IGP路由协议如OSPF或ISIS,FIB表的大小将不是问题。
目前的运营商主干网主要可分成两类:IP主干网、MPLS主干网。MPLS主干网的一个优点就是核心路由器可以不运行BGP;对于IP主干网,可能会比较困难,但是如果国际出口只有一个的话,即使在核心路由器上运行BGP协议,也可不承载国际路由表而代之以缺省路由来实现。
无论何种情况,边界路由器还是要运行BGP路由协议,完成域间路由交换,因此对于这些边界路由器来说,还是面临FIB表不断增长带来的问题。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。