RIB与FIB概述
路由表被称为路由信息库(Routing Information Base,简称RIB),转发表被称为转发信息库(Forwarding Information base,简称FIB)。
具备路由功能的华为数通产品(如路由器、三层交换机等),都维护着两种重要的数据表:RIB与FIB。
每台路由器都维护着一张全局路由表,另外路由器所运行的每种路由协议也维护着该协议自己的路由表。所谓全局路由表,就是通过display ip routing-table命令输出的表格。
RIB与FIB平面视图
路由表 RIB
路由表指的就是全局路由表,我们将路由表视为路由器的控制平面。路由表通常存储在设备的动态内存中,如(Random Access Memory ,RAM)随机存储器中。
路由表获取
路由器可以通过多种途径获取路由信息,它可以运行多种动态路由协议,而每一种通过动态路由协议所获知的路由信息首先存储于该协议自己的路由表中,然后路由器根据路由优先级和度量值等信息来进行路由的优选,并将优选路由加载到全局路由表中。
路由表实际意义
路由表实际上并不直接指导数据转发,也就是说,路由器在执行路由查询时,并不是在路由表中进行报文目的地址的查询,真正指导数据转发的是FIB表。
路由器将路由表中的活跃路由下载到FIB表,此后如果路由表中的相关表项发生变化,FIB表也将同步。
由于两张表的一致性,在绝大多数场合中,我们阐述路由器转发数据过程时,会用“路由器查询路由表来决定数据转发的路径”这一说法,但需要注意的是,路由器查询的是FIB表,位于控制层面的路由表只是提供了路由信息而已。
转发表 FIB
FIB表是位于路由器数据平面的表格,实际上它外观上与路由表非常相似,FIB的表项被称为转发表项,每条转发表项都指定要到达的某个目的地,所需要通过的出接口及下一跳IP地址等信息。
路由器将优选的路由存储在路由表中,而将路由表中活跃的路由下载到FIB表,并使用FIB表转发数据。
FIB表中数据往往被存储在一个ASIC专用集成电路中,这使得设备在FIB表中进行数据查询时,可以实现相当高的速度。当然,FIB表空间是有限的,因此,大型网络中要关注设备的路由表规模,在保证数据可达的前提下,通过各种机制及手段来减小设备路由表的规模。
使用display fib命令可以进行FIB的查看
FIB表更多是出现在需要快速转发的路由器上,这种路由器上的路由表条目通常都达成千上万条,如果按照传统的检索路由表进行转发的方式,其转发效率很低,FIB表作为路由表的一种精简形式出现,通常只记录常用的表项。当需要选路时,先检索FIB表,如果找不到再检索路由表。
在大部分路由器中,RIB表现为路由表的形式, FIB则表现为高速缓存的形式,此在内容上是路由表的一个子集,是依靠路由表来生成的。
一般来说,FIB是进行高速查找而组织的数据结构(不是简单的把路由表中的内容复制出来,数据存储和检索方式等都不同于路由表的组成像是)。
RIB 就一个字:全,知道到所有的地方怎么走,但是速度慢。
FIB就一个字:快,只知道常走的路怎么走,速度快。