ARP

ARP(Address Resolution Protocol,地址解析协议)

普通 ARP 请求,主要目的是为了获取目标 IP 对应的 MAC 地址

免费 ARP

基本定义

免费ARP(Gratuitous ARP),是一种主机主动广播自己 IP 和 MAC 地址 的 ARP 报文。

主要作用

  1. 检测 IP 地址冲突(Duplicate Address Detection)
  • 当主机启动、配置新 IP 或修改 IP 时,会发送免费ARP。
  • 如果网络中有其他设备使用了相同的 IP,它会收到 ARP 回应。
  • 收到回应 ⇒ 说明 IP 冲突 ⇒ 系统通常会禁用该 IP 或发出警告。
  1. 通知网络中其他设备更新 ARP 缓存
  • 当主机更换网卡(MAC 地址变化)但 IP 不变时,可发送免费ARP。
  • 网络中的交换机、路由器或其他主机收到后,会更新自己的 ARP 表项,避免通信错误。
  1. 高可用场景(如 VRRP/HSRP 主备切换)
  • 当主设备故障,备用设备接管虚拟 IP 后,会立即发送免费ARP。
  • 目的是刷新交换机的 MAC 地址表,将流量快速导向新的主设备。

报文特点(与普通ARP对比)

字段 普通ARP请求 免费ARP请求
目的MAC FF:FF:FF:FF:FF:FF(广播) FF:FF:FF:FF:FF:FF(广播)
源MAC 本机MAC 本机MAC
Sender IP 本机IP 本机IP
Target IP 目标主机IP 本机IP(关键区别!)
是否期待回应 通常不期待(若收到则说明冲突)

FDB

基本概念

  • Forwarding Database, 转发数据库
  • 也称为 MAC 地址表(MAC Address Table) 或 CAM 表(Content Addressable Memory Table)。

用于记录 MAC 地址与端口映射关系的关键数据结构,核心作用是指导交换机如何高效、准确地转发二层(数据链路层)帧。

如何工作

1. 学习(Learning)

  • 交换机收到一个帧时,会查看其 源 MAC 地址 和 入端口。
  • 将 (源MAC, 入端口) 写入 FDB(若不存在或已过期)。
  • 这个过程叫 自学习(Self-learning)。

2. 转发(Forwarding)

  • 收到帧后,查 FDB 中的 目标 MAC 地址:
  • 命中 → 从对应端口单播转发。
  • 未命中 → 泛洪(Flooding) 到除接收端口外的所有端口。

3. 老化(Aging)

  • FDB 条目有生存时间(Age Time),通常为 300 秒(5 分钟)。
  • 若某 MAC 地址在老化时间内未再次出现,该条目会被删除。
  • 防止表项过期导致转发错误。

FDB 与 ARP 表的区别

项目 FDB(MAC 表) ARP 表
所在网络层 数据链路层(L2) 网络层(L3)
存储内容 MAC 地址 ↔ 交换机端口 IP 地址 ↔ MAC 地址
设备 交换机 主机 / 路由器 / 三层交换机
作用 指导二层帧转发 实现 IP 到 MAC 的解析