ARP
ARP(Address Resolution Protocol,地址解析协议)
普通 ARP 请求,主要目的是为了获取目标 IP 对应的 MAC 地址
免费 ARP
基本定义
免费ARP(Gratuitous ARP),是一种主机主动广播自己 IP 和 MAC 地址 的 ARP 报文。
主要作用
- 检测 IP 地址冲突(Duplicate Address Detection)
- 当主机启动、配置新 IP 或修改 IP 时,会发送免费ARP。
- 如果网络中有其他设备使用了相同的 IP,它会收到 ARP 回应。
- 收到回应 ⇒ 说明 IP 冲突 ⇒ 系统通常会禁用该 IP 或发出警告。
- 通知网络中其他设备更新 ARP 缓存
- 当主机更换网卡(MAC 地址变化)但 IP 不变时,可发送免费ARP。
- 网络中的交换机、路由器或其他主机收到后,会更新自己的 ARP 表项,避免通信错误。
- 高可用场景(如 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 的解析 |