注: 本文原是前面发的一篇文章的中间注释,但注释跨行太多,影响原文连贯阅读。
RIB(Routing Information Base,路由表)
RIB 存储所有的路由信息,与具体的路由协议无关。所有的路由协议都在这里保存它们的路由。当路由器学习到新路由时,会将其放入 RIB 中。RIB 中包括:
-
所有通过动态路由协议学到的路由条目
-
所有的直连网络
-
额外配置的路由条目,如静态路由
RIB 并不直接用于进行 IP 包转发,也不会被宣告到网络中。当目标地址不可达时,对应的路由条目会被标记为 Unreachable 并从 RIB 中删除。
FIB(Forwarding Information Base,转发表)
FIB 用于决定基于 IP 包的网络前缀如何进行转发。它是 RIB 的镜像,维护了从 RIB 中下发的转发信息。FIB 中的每一条目标网络前缀都包含接口标识符和明确的下一跳信息。
当 IP 路由从 RIB 下发到 FIB 时,会明确分析出下一跳的具体端口信息,以及在有多条路径到下一跳时的每条路径的具体端口。
RIB 负责存储、提供路由信息,而 FIB 负责根据路由信息进行包转发。