路由信息库 (RIB)、 路由表 (RT)与 转发信息库 / 转发表(FIB)的异同

路由信息库 (Routing Information Base,RIB)、
路由表 (Routing Table ,RT)与 转发信息库 / 转发表(Forwarding Information Base ,FIB)的异同

  • RIB(Routing Information Base,路由信息库)负责在控制平面收集和选择路由。
  • RT(Routing Table,路由表)是管理员看到的当前路由结果。
  • FIB(Forwarding Information Base,转发信息库 / 转发表)是数据平面真正用于转发数据包的实际转发表。
    FIB 中的表项通常来自 RIB / RT 选出的最优路由结果。在高性能路由器和三层交换机中,FIB 往往会被下发到 ASIC、NP、TCAM 等硬件资源中实现高速转发;但在软件路由器、Linux 系统、虚拟路由器或仿真环境中,FIB 也可以由软件实现。
    因此,更严谨的说法不是"FIB 就是硬件表",而是"FIB 是数据平面的实际转发表,可能由硬件实现,也可能由软件实现"。
比较项 RIB:Routing Information Base(路由信息库) RT:Routing Table(路由表) FIB:Forwarding Information Base(转发信息库 / 转发表)
基本含义 保存路由器从不同来源获得的路由信息,是路由选择的基础数据库。 管理员通过命令看到的当前路由结果,通常反映设备当前可用的最优路由。 数据平面用于实际转发数据包的转发表,保存可直接用于转发的目的前缀、下一跳、出接口等信息。
所属平面 控制平面。 主要属于控制平面的显示结果,也可以理解为管理员查看路由状态的管理视图。 数据平面。
主要作用 收集、保存、比较和选择路由。 展示当前设备认为可用的路由结果。 根据目的地址快速查表,决定数据包从哪个接口发出、发往哪个下一跳。
面向对象 路由协议、静态路由、直连路由和控制平面。 网络管理员、网络工程师、运维人员。 数据平面、转发引擎、转发芯片或软件转发模块。
数据来源 来自直连路由、静态路由、默认路由和动态路由协议。动态路由协议包括 RIP:Routing Information Protocol(路由信息协议)、OSPF:Open Shortest Path First(开放式最短路径优先)、IS-IS:Intermediate System to Intermediate System(中间系统到中间系统)、BGP:Border Gateway Protocol(边界网关协议)等。 通常来自 RIB 经过路由优选后的当前有效路由结果。 通常由 RIB / RT 下发生成,并结合邻接表、ARP:Address Resolution Protocol(地址解析协议)表、MAC:Media Access Control(媒体访问控制)地址等信息形成可直接转发的表项。
是否包含候选路由 可以包含多条候选路由。例如到同一目的网段可能同时存在静态路由、OSPF 路由和默认路由。 通常只显示当前可用路由或最优路由,不完整展示所有候选路由。 不保存普通候选路由,只保存已经被选中并可用于转发的转发项。
表项是否最优 RIB 负责从候选路由中选出最优路由。 RT 通常显示 RIB 选出的最优路由结果。 FIB 通常保存由 RIB / RT 下发的最优转发项;如果存在 ECMP:Equal-Cost Multi-Path(等价多路径),FIB 可包含多个等价最优下一跳。
是否负责路由计算 是。RIB 是路由计算和路由优选的重要基础。 一般不单独负责路由计算,主要用于呈现当前路由结果。 否。FIB 不负责复杂选路,主要接收已经选好的最优转发结果。
是否直接转发数据包 否。RIB 主要负责控制平面的路由选择。 一般否。RT 更多是人看到的路由结果,不是高速转发时直接查找的核心表。 是。数据包进入设备后,实际转发通常查询 FIB。
与硬件的关系 通常不直接对应硬件转发表,主要存在于控制平面软件中。 通常是命令行显示出的路由视图,也不等同于硬件转发表。 FIB 是数据平面的实际转发表。在高性能路由器和三层交换机中,FIB 常被下发到 ASIC:Application-Specific Integrated Circuit(专用集成电路)、NP:Network Processor(网络处理器)、TCAM:Ternary Content Addressable Memory(三态内容寻址存储器)等硬件或专用转发资源中实现高速转发;在软件路由器、Linux 系统、虚拟路由器或仿真平台中,FIB 也可能由 CPU:Central Processing Unit(中央处理器)和软件转发模块实现。
能否简单理解为硬件表 不能。RIB 主要是控制平面的路由信息库。 不能。RT 主要是管理员查看的路由表结果。 可以近似理解为"实际转发表",但不能绝对说成"硬件表"。更严谨的说法是:FIB 是数据平面的实际转发表,既可以由硬件实现,也可以由软件实现。
查表目的 判断有哪些路由可选、哪条路由更优。 让管理员查看当前设备有哪些可用路由、下一跳和出接口是什么。 让设备快速决定每个数据包如何转发。
表项内容 目的网段、路由来源、优先级、度量值、下一跳、出接口、路由状态等。 目的网段、前缀长度、下一跳、出接口、路由来源、优先级、度量值等。 目的前缀、下一跳、出接口、邻接信息、二层封装信息、转发动作等。
与邻接信息的关系 一般不直接保存完整二层封装信息。 通常显示三层路由信息,不完整展示二层封装细节。 通常会结合邻接表或 ARP 表,形成可直接用于转发的数据,例如下一跳 MAC 地址、出接口和封装方式。
常见查看命令 不同设备支持情况不同,很多设备不直接显示完整 RIB。 Cisco:show ip route;Huawei:display ip routing-table Cisco 可通过 CEF:Cisco Express Forwarding(思科快速转发)相关命令查看,如 show ip cef;其他厂商通常有各自的 FIB、转发表或硬件转发表查看命令。
教学定位 负责"学路由、存路由、选路由"。 负责"把当前可用路由展示给人看"。 负责"让设备真正按最优转发项高速转发数据包"。
常见误区 误以为 RIB 中所有路由都会被用于转发。实际上,只有被选中的最优路由才会进一步用于生成转发项。 误以为 show ip routedisplay ip routing-table 看到的路由表就是硬件实际查找的表。严格说,数据包转发通常查 FIB。 误以为 FIB 一定是硬件表。严格说,FIB 是数据平面的实际转发表,高性能设备中通常硬件实现,软件路由器和仿真环境中也可能软件实现。
相关推荐
ylscode1 小时前
谷歌Gemini Go正式登场:轻量级AI助手让低端手机也能玩转生成式智能
网络·人工智能·安全·chatgpt
WIZnet2 小时前
W55RP20-EVB-MKR 模块 MicroPython 实战 (11):HTTP 协议与 OneNET 平台数据上云
网络·网络协议·http
见合八方2 小时前
News丨见合八方发布O波段高功率SLD蝶形器件
网络·soa·光通信·激光雷达·半导体光放大器
IT大白鼠2 小时前
BGP路径选择机制:属性分类、作用解析与选路流程全解
网络·网络协议·华为
憧憬成为java架构高手的小白2 小时前
计算机网络管理
服务器·网络·计算机网络
Cx330❀2 小时前
【MySQL基础】库与表的全面操纵指南
linux·服务器·网络·数据库·c++·mysql
Cx330❀2 小时前
【Linux网络】高性能 TCP 服务器:从多线程到线程池的架构演进与落地实践
linux·运维·服务器·网络·c++·tcp/ip·架构
程序猿编码2 小时前
vmlinuz 到 vmlinux:不碰源码,徒手重建内核 ELF 符号表
linux·服务器·网络·内核·elf
着迷不白2 小时前
七、Linux网络管理
服务器·网络·php