一、免费ARP的定义
Gratuitous ARP也称为免费ARP,无故ARP。Gratuitous ARP不同于一般的ARP请求,它并非期待得到ip对应的mac地址,而是当主机启动的时候,将发送一个Gratuitous arp请求,即请求自己的ip地址的mac地址。(说白了就是自己向外广播,判断自身IP地址对应的MAC在该网络中是否有冲突)
二、免费ARP有什么用?
1.可以把实时的ip和mac变更消息第一时间通告到全网,及时的更新全网的ARP表项。
2.免费ARP用于做地址冲突检测。
3.用于其他三层设备及时的更新自己的ARP表项。
4.用于交换机及时更新自己的mac地址表项(VRRP特定场景)
{注:VRRP会虚拟出一个浮动ip和浮动mac,可以和物理接口mac不一样,当虚拟网关实现切换的时候,虚拟网关会发送免费ARP,由于免费ARP中携带源mac地址,因此交换机会根据接口收到的免费ARP中的源mac地址及时调整自己的mac地址表项(mac地址所对应的接口)}
5.服务器集群,将服务器上的应用做成一个逻辑主机,集群成员之间依靠免费ARP来维持心跳,每个集群的成员都会周期性的发送免费ARP(注:服务器集群是应用层的提取)
三、那么什么时候会产生免费ARP呢?
1.接口link / up-down,接口关闭后又打开,通知全网每台PC机,每台TCP/IP协议的三层设备,都会根据新收到的免费ARP刷新自己的ARP表项。
2.ip地址变动,比如重新配置ip地址,设备会主动发送免费ARP通告新的ip和mac的对应关系。
3.重插网卡改mac,也会主动发送免费的ARP请求
4.vrrp的浮动ip的切换也会主动发送免费的ARP请求
四、小实验抓包验证
下图为两台地址分别为12.1.1.1/24 、12.1.1.2/24的路由器接口UP时的抓包情况:
当我将R2 IP地址更换为R1地址时(此时IP冲突了):