RIB、FIB、MAC 、ARP 表

目录

[MAC 表](#MAC 表)

ARP表

RIB(路由表)

FIB(转发表)


MAC表&ARP表&路由表&FIB表 - *一炁化三清* - 博客园

表类型 作用层级 核心功能 存储位置 查询时机
MAC 表(CAM 表) 数据链路层(L2) 记录 MAC 地址与交换机端口的映射关系 硬件(TCAM/CAM) 二层帧转发时
ARP 表 网络层(L3) 记录 IP 地址与 MAC 地址的映射关系 内存(软件表) 封装数据帧时(IP→MAC)
RIB(路由信息库) 网络层(L3) 汇总所有路由来源的路由条目,进行路由优选 内存(软件表) 路由计算、首包处理
FIB(转发信息库) 网络层(L3) 基于 RIB 优选结果生成的硬件加速转发表 硬件(TCAM/ASIC) 所有数据包转发时

MAC 表

MAC 表是二层交换机使用的转发表,工作于 OSI 参考模型的第二层。交换机通过数据帧的源 MAC 地址进行自动学习:当一个端口收到一个未知源 MAC 地址的报文时,会将这个 MAC 地址添加到接收该报文的端口上,以便后续以该 MAC 地址为目的地的报文能够直接转发

转发时查目的 MAC 地址:

  • 查到:从对应端口单播转发

  • 查不到:在同一 VLAN 内泛洪(Flooding)

  • 广播/组播:泛洪

如果目的 MAC 地址在 MAC 表中未被找到,交换机通过所有输出端口传输该帧的过程称为泛洪
老化机制

MAC 表有老化时间,Cisco 默认通常为 300 秒。老化机制保证转发表的实时更新和表项空间的高效利用。如果某地址在指定时间内不活跃,将从地址表中移除

ARP表

ARP(Address Resolution Protocol,地址解析协议)用于 IPv4,NDP(Neighbor Discovery Protocol,邻居发现协议)用于 IPv6。当设备需要发送三层 IP 数据包时,根据目标 IP 地址查询对应的 MAC 地址。若 ARP 表中无条目,触发 ARP 请求广播

ARP 表中的内容记录的是 IP 地址与 MAC 地址之间的对应关系,每条记录的类型有"动态"和"静态"之分

  • 动态表项 :通过 ARP 协议自动学习,可以被更新,缺省老化时间为 1200 秒(华为设备默认),探测次数 3 次,探测间隔 5 秒

  • 静态表项:手动配置,不能被更新,没有老化时间限制

RIB(路由表)

RIB 是一个集中管理路由信息的数据库,包含路由表信息以及路由周边信息(路由迭代信息、路由共享信息以及路由扩展信息)等。RIB 汇总了来自各动态路由协议(如 OSPF、BGP、IS-IS、RIP)的路由信息,以及直连路由和静态路由,经过优选后将最佳路由下发到 FIB 表中

  • 多来源聚合:RIB 同时保存来自直连、静态、OSPF、BGP 等多种路由来源的条目,同一目的地可能有多条候选路由

  • 路由优选:通过管理距离(AD)和度量值(Metric)比较,选出最优路由

  • 控制平面:RIB 属于控制平面,不直接参与数据包转发

  • 路由迭代与递归解析:RIB 中的路由信息可能需要进行递归解析(如 BGP 下一跳需要递归查找 IGP 路由),解析后的结果才会下发到 FIB

FIB(转发表)

FIB 是网络设备中用于数据包转发的核心数据结构,其功能类似于路由表,存储下一跳地址等转发规则。FIB 并非独立生成,而是由 RIB 经策略过滤、递归解析后固化形成的精简转发视图,其条目按掩码长度降序排列,显著提升 TCAM 查表效率。每个 FIB 表项均关联邻接表(Adjacency Table)

路由协议/静态/直连

↓

RIB(控制平面:汇总、优选)

↓ 路由优选 + 递归解析

FIB(数据平面:硬件加速转发)

↓

数据包转发

  • RIB 的子集:FIB 只包含 RIB 中优选后的活跃路由,是 RIB 的一个子集

  • 硬件加速:FIB 通常存储在 TCAM(Ternary Content-Addressable Memory)中,TCAM 表内所有条目可以并行访问,支持最长前缀匹配,实现纳秒级硬件查表

  • 数据平面:所有数据包转发时直接通过硬件查表确定下一跳和出接口,不再访问路由表(除非 FIB 未命中)

  • 邻接信息:FIB 表项通常还包含重写后的目的 MAC、MPLS 标签等邻接信息

二层转发(同一子网内通信) :

  1. 交换机收到以太网帧 → 查 MAC 表 → 找到出端口 → 转发

三层转发(跨子网通信) :

  1. 路由器收到 IP 数据包 → 查 FIB 表 → 确定下一跳和出接口

  2. 若 FIB 未命中 → 查 RIB → 优选路由 → 生成 FIB 条目

  3. 需要封装二层帧 → 查 ARP 表 → 获取下一跳 MAC 地址

  4. 封装完成后 → 通过出接口发送

在三层转发过程中,路由器使用 IP 路由表(RIB)来保存各路由协议的最佳路由和决策优选路由,并将优选结果下发到 FIB 表指导报文转发

二层环路问题

现象:MAC 表中同一 MAC 地址对应多个端口。

原因:可能由 STP 失效导致环路。

解决方案:检查生成树协议(STP)状态,修复拓扑。

ARP 欺骗攻击

现象:ARP 表中同一 IP 对应多个 MAC 地址。

原因:可能存在 ARP 欺骗。

解决方案:启用动态 ARP 检测(DAI)或绑定静态 ARP 条目。

路由黑洞

现象:路由表中有条目但 FIB 表未同步,导致流量被丢弃。

原因:FIB 同步延迟或失败。控制平面(RIB)与数据平面(FIB)之间可能出现更新不一致的情况,守护进程会定期确定 PFE 和 FIB 的转发表中的条目是否与 RIB 指定的条目一致。

解决方案:检查路由协议状态,强制刷新 FIB 表。

FIB 表溢出(TCAM 溢出)

现象:FIB 表条目过多,超出 TCAM 容量。

原因:TCAM 是昂贵的硬件资源,持续的 FIB 增长可能导致 TCAM 溢出问题。当 FIB 变得太大时,路由器不会立即崩溃,而是性能下降------最不具体的路由会被推出 TCAM,从快速路径推到主 CPU 处理。

解决方案:路由聚合、虚拟聚合(ViAggre)技术,或升级硬件 TCAM 容量

相关推荐
凌云若寒1 小时前
BarTender提示#807错误:无法在拥有其他许可证的Licensing Service上激活节点锁定的 Professional 版许可证 的解决办法
运维·服务器·前端·学习·软件需求
Julien20042 小时前
管理 Ansible 配置文件
linux·运维·服务器·ssh·学习方法
逐米时代2 小时前
远程运维诊断减少到场率
java·服务器·前端
pt10432 小时前
CML网络仿真入门-6(结):Cisco Modeling Labs 示例拓扑
服务器·网络
sjg200104142 小时前
websocket基本使用
网络·websocket
梦帮科技2 小时前
端侧编译原理:TVM / MLIR 计算图模式匹配、算子融合与显存生命周期复用
网络·人工智能·深度学习·神经网络·自然语言处理·cnn·mlir
dadaobusi2 小时前
学习: libfabric 2.0
网络
风寄巴山秋2 小时前
OpenBMC:Web 页面功能异常排查
运维·服务器·前端·架构
xiaoye-duck3 小时前
《Linux 网络编程》深入理解 epoll(下):epoll 实战开发与 LT/ET 触发模式深度剖析
linux·网络