MAC表&ARP表&路由表&FIB表
查询时机与场景
(1) MAC表(CAM表)
查询时机:
当交换机收到一个二层以太网帧时,根据目标MAC地址查找对应的出端口。
仅用于二层交换场景(同一子网内通信)。
典型操作:
bash
# Cisco查看MAC表
show mac address-table
# 华为/H3C查看MAC表
display mac-address
(2) ARP表
在计算机网络中,两台主机首次互访时最初运行的协议通常是 ARP(Address Resolution Protocol,地址解析协议)(用于 IPv4)或 NDP(Neighbor Discovery Protocol,邻居发现协议)(用于 IPv6)。
查询时机:
当设备需要发送三层IP数据包时,根据目标IP地址查询对应的MAC地址。
若ARP表中无条目,触发ARP请求广播。
典型操作:
bash
# 查看ARP表
show arp # Cisco
display arp # 华为/H3C
(3) 路由表
查询时机:
控制平面决策阶段(路由协议计算路径时)。
当设备收到首包且FIB表中无对应条目时,需查询路由表生成FIB条目。
典型操作:
bash
# 查看路由表
show ip route # Cisco
display ip routing-table # 华为/H3C
(4) FIB表
查询时机:
所有数据包转发时,直接通过硬件查表(TCAM)确定下一跳和出接口。
仅依赖FIB表,不再访问路由表(除非FIB未命中)。
典型操作:
bash
# 查看FIB表
show ip cef # Cisco
display fib # 华为/H3C
2、区别
| 表类型 | 作用层级 | 核心功能 | 典型存储位置 |
|---|---|---|---|
| MAC表(CAM表) | 数据链路层(L2) | 记录MAC地址与交换机端口的映射关系,用于二层帧转发 | 硬件(TCAM) |
| ARP表 | 网络层(L3) | 记录IP地址与MAC地址的映射关系,辅助三层转发 | 内存(软件表) |
| 路由表 | 网络层(L3) | 记录目标网络的路由路径(下一跳、接口、优先级等) | 内存(软件表) |
| FIB表 | 网络层(L3) | 基于路由表生成的硬件加速转发表,用于快速决策数据包转发 | 硬件(TCAM/ASIC) |
| 对比维度 | MAC表 | ARP表 | 路由表 | FIB表 |
|---|---|---|---|---|
| 作用层级 | L2(数据链路层) | L3(网络层) | L3(网络层) | L3(网络层) |
| 核心内容 | MAC地址 ↔ 端口 | IP地址 ↔ MAC地址 | 目标网络 → 下一跳/接口 | 目标IP → 硬件转发信息 |
| 查询时机 | 帧转发时 | 封装数据帧时(IP→MAC) | 路由计算、首包处理 | 所有数据包转发时 |
| 存储位置 | 硬件(TCAM) | 内存(软件表) | 内存(软件表) | 硬件(TCAM/ASIC) |
| 更新方式 | 自动学习(或静态配置) | 动态学习(ARP请求/响应) | 路由协议或静态配置 | 由路由表自动同步 |
| 性能影响 | 微秒级硬件查表 | 软件查表(可能延迟) | 软件查表(高延迟) | 纳秒级硬件查表 |
| 典型故障场景 | MAC地址漂移、端口错误绑定 | ARP欺骗、表项超时 | 路由环路、未收敛 | FIB未同步、TCAM溢出 |
实际应用场景
(1) 二层环路问题
查MAC表:若MAC表中同一MAC地址对应多个端口,可能由STP失效导致环路。
解决方案:检查生成树协议(STP)状态,修复拓扑。
(2) ARP欺骗攻击
查ARP表:若ARP表中同一IP对应多个MAC地址,可能存在ARP欺骗。
解决方案:启用动态ARP检测(DAI)或绑定静态ARP条目。
(3) 路由黑洞
查路由表:路由表中有条目但FIB表未同步,导致流量被丢弃。
解决方案:检查路由协议状态,强制刷新FIB表。
(4) FIB表溢出
查FIB表:TCAM容量不足时,部分路由无法被硬件加速转发。
解决方案:优化路由聚合(Summarization),减少FIB条目。
FIB表
FIB表是一个存储最优转发路径的数据库,基于路由表生成,但优化了查找速度,用于快速决策数据包的转发接口和下一跳。可能包含目的网络、下一跳IP、出接口、MAC地址等信息。
核心作用
- 快速转发决策:根据数据包的目的IP地址,直接查找对应的下一跳和出接口,避免传统路由表逐条匹配的低效操作。
- 硬件加速:通常存储在专用内存(如TCAM)中,支持并行查找,实现线速转发。
- 与路由表协同:路由表负责路径计算(如通过OSPF、BGP等协议),FIB表则是计算后的最优路径集合。
总结
-
MAC表:用于二层帧转发,硬件查表,解决“从哪个端口发出”。
-
ARP表:解决“目标IP对应的MAC地址是什么”,辅助三层封装。
-
路由表:控制平面核心,决定“数据包应该走哪条路径”。
-
FIB表:数据平面核心,解决“如何以最快速度转发数据包”。

浙公网安备 33010602011771号