普通 ARP 用于查询目标 IP 对应的 MAC 地址 ;免费 ARP(Gratuitous ARP)是特殊 ARP 请求,源 IP = 目标 IP ,用于IP 冲突检测 和更新邻居 ARP 缓存。以下是核心区别与关键信息:
一、核心区别速览
| 对比项 | 普通 ARP | 免费 ARP |
|---|---|---|
| 核心目的 | 查目标 IP 的 MAC,建立通信映射 | IP 冲突检测;宣告 IP-MAC 映射,更新邻居缓存 |
| 地址特征 | 源 IP≠目标 IP(目标是对方 IP) | 源 IP = 目标 IP(均为自身 IP) |
| 期望响应 | 需要目标主机回应,获取 MAC | 正常无响应;有响应则 IP 冲突 |
| 触发场景 | 通信前无目标 MAC 时主动发送 | 接口上线 / IP 变更 / HA 切换 / 网卡更换 |
| 报文本质 | 请求报文(Opcode=1) | 特殊请求(Opcode=1)或广播响应 |
二、关键细节
- 普通 ARP:主机 A 要和 B 通信,查 B 的 IP→MAC,广播 ARP 请求,B 单播回应,A 更新 ARP 表后通信。
- 免费 ARP:主机启动 / IP 变更时,广播 ARP 请求(源 IP = 目标 IP = 自身)。无回应则 IP 可用;有回应则冲突;邻居收到后更新 ARP 缓存(如主备切换、网卡更换场景)。
- 抓包识别:看 ARP 报文中源 IP 与目标 IP 是否一致,一致即为免费 ARP;Opcode 通常为 1(请求)。
三、常见应用场景
- 普通 ARP:日常主机间通信、路由转发、虚拟机跨节点通信等。
- 免费 ARP:设备开机 / 接口启用、DHCP 获取 IP 后、HA 集群主备切换、网卡更换、网关防 ARP 欺骗(定期发免费 ARP 刷新缓存)。