← 返回题目列表

免费 ARP 是什么?它在 IP 冲突检测和主备切换中有什么作用?

中等 第 19 / 26 题 更新于 2026/08/02
网络层ARP高可用

简化版

免费 ARP,Gratuitous ARP,是主机主动发送关于自己 IP 和 MAC 映射的 ARP 报文,不一定是为了查询别人。

它常用于 2 类场景:检测 IP 地址冲突,以及通知局域网内其他设备更新 ARP 缓存。比如主备切换时,VIP 从旧机器漂移到新机器,新机器会发送免费 ARP,让交换机和其他主机尽快把 VIP 对应到新 MAC。

它能加速收敛,但也可能被攻击者滥用进行 ARP 欺骗。

详细版

普通 ARP 是:

Who has 192.168.1.20?

免费 ARP 可能是:

192.168.1.10 is at aa:bb:cc:dd:ee:ff

发送者主动声明“这个 IP 对应我的 MAC”。

常见用途:

  • 主机启动时检测是否已有设备使用同一 IP。
  • VIP 漂移后刷新其他主机 ARP 缓存。
  • 网卡或虚拟机迁移后更新网络映射。
  • 高可用组件通知网络拓扑变化。

面试要补充:免费 ARP 是二层局域网内的通知机制,跨路由器不会传播到所有网络。

完整版教学

1. 先定义免费 ARP

免费 ARP 不是“免费的协议”,而是“不需要别人先问,我主动发”的 ARP。

主机会广播自己的 IP 和 MAC 映射。

它可以表现为 ARP Request,也可以表现为 ARP Reply,具体实现略有差异。

免费 ARP 的关键词是主动声明、刷新缓存、检测冲突。

2. IP 冲突检测

主机配置一个 IP 后,可以发送免费 ARP。

例如它准备使用:

192.168.1.10

如果局域网里已经有别的机器使用这个 IP,对方可能回应。

主机就能发现 IP 冲突。

这在静态 IP、虚拟机、容器网络里都很有价值。

3. ARP 缓存刷新

主机或网关会缓存 IP 到 MAC 的映射。

如果某个 IP 对应的 MAC 变了,旧缓存可能导致流量仍发往旧机器。

免费 ARP 可以主动告诉大家:

192.168.1.100 is at 00:11:22:33:44:55

收到的设备可能更新自己的 ARP 表。

这能减少等待 ARP 缓存自然过期的时间。

4. 主备切换中的作用

高可用系统常使用 VIP。

VIP: 192.168.1.100
Master MAC: aa:aa:aa
Backup MAC: bb:bb:bb

当 Master 故障,Backup 接管 VIP。

Backup 会发送免费 ARP,告诉局域网:

192.168.1.100 is now at bb:bb:bb

这样客户端后续访问 VIP 时,二层帧发往新机器。

5. 和交换机 MAC 表的关系

ARP 缓存存在主机和三层设备中。

交换机还维护 MAC 地址表。

免费 ARP 报文从新端口发出时,交换机也能学习到源 MAC 出现在哪个端口。

因此主备漂移、虚拟机迁移时,免费 ARP 有助于同时推动 ARP 缓存和二层转发表收敛。

但不同设备处理策略可能不同。

缓存/表项记录内容免费 ARP 的影响
ARP 缓存IP 到 MAC可能更新 VIP 或主机 IP 对应 MAC
MAC 地址表MAC 到端口交换机可学习源 MAC 新位置
路由表目的网段到下一跳通常不直接改变
邻居表邻居地址映射在三层设备上可能被刷新

6. 安全风险

免费 ARP 可以被合法系统用于通知,也可以被攻击者滥用。

攻击者可能伪造:

Gateway-IP is at Attacker-MAC

让受害者把发往网关的流量交给攻击者。

这就是 ARP 欺骗的一种方式。

防护要结合静态 ARP、动态 ARP 检测、交换机安全策略等。

7. 常见误区与追问

  • 误区:免费 ARP 只用于攻击。 它也常用于 IP 冲突检测和高可用切换。
  • 误区:免费 ARP 可以全网广播。 ARP 是二层广播,通常不会跨路由器传播。
  • 误区:收到免费 ARP 后所有设备一定更新缓存。 不同系统策略可能不同,收敛不一定完全一致。
  • 追问:VIP 漂移为什么要发免费 ARP? 为了让其他设备尽快把 VIP 对应到新 MAC。
  • 追问:免费 ARP 和普通 ARP 最大区别是什么? 普通 ARP 通常是查询,免费 ARP 是主动声明自己的映射。
  • 追问:为什么它有安全风险? 因为局域网设备可能信任伪造的 IP-MAC 声明。

8. 加强记忆

免费 ARP 记成“我主动告诉大家:这个 IP 现在归这个 MAC”。

它既能帮高可用快速切换,也能被坏人拿来骗缓存。