Gratuitous ARP
定义
代理arp为arp的一种特定,为了解决局域网IP地址冲突问题而产生。
组成
ARP request、ARP reply
报文内容
ARP request
源IP、MAC是自己;目的IP是检测的IP(自己)、MAC是全0
ARP reply
源IP、MAC是自己,目的IP、MAC是发送request方
作用
- 更新伙伴arp:当设备的硬件地址发生变化时,可以发送arp request来更新同一广播域下所有设备变化设备的arp表项;
- 检测冲突:当arp request发出后,没有reply,证明局域网内没有其他使用该IP;如果收到reply后,说明局域网内有设备在使用该IP;
当主机收到reply包后,系统会提醒用户IP地址冲突,并会周期性的发送arp reply报文,直到冲突接触。
优点:通过周期广播代理arp来检测IP是否冲突;
缺点:广播泛滥会导致局域网不稳定;
Address Conflict Detect
定义
Address Conflict Detection,地址冲突检测,简称ACD。鉴于代理ARP的缺陷,RFC 5227提出ACD机制。其中ACD将arp request分为ARP probe和ARP announcement两种;
报文
ARP probe:用于检测IP地址冲突,发送端IP填充为0,填充为0是为了避免对其他设备的ARP cache造成污染(ARP probe报文不会使局域网中的其他设备刷新ARP映射关系,若已经有设备正在使用目标IP地址了,其通信不会受影响)
源IP是全0,MAC是自己;目的IP是检测的IP(自己)、MAC是全0
ARP announcement:用于“昭示天下”(LAN/VLAN)本设备要使用某个IP地址了,它其实就是一个免费ARP request,即发送端IP地址和目标IP地址都是本设备IP地址的ARP request报文,
源IP、MAC是自己;目的IP是检测的IP(自己)、MAC是全0
工作原理
- 网卡启动或从睡眠状态醒来时,会发送一个ARP probe;
- 发送设备收到其他主机发送的arp probe时或者ARP reply。当收到ARP reply时,证明IP有其他主机在使用了。当收到arp probe时,证明有其他主机想要这个ip。 无论是收到arp reply或者prboe,两段将提示用户地址冲突,并激发地址冲突处理机制。
- 如果上面两种包都没有收到,说明IP地址可用。设备将发送arp announcement,告诉大家这个IP已经被我在使用了,并且让其他设备更新arp表项。
地址冲突处理机制
当检测到IP地址冲突后,RFC5527提供了三种可选的解决机制:
- 直接放弃使用该IP地址;
- 发送一个ARP announcement来进行IP地址“守卫”,如果冲突仍然继续存在,放弃使用这个IP;
- 无视冲突,继续使用这个IP。
Windows系统主机的地址冲突检测实现情况
参考本文最后参考文献
华三交换机路由器防火墙 处理IP地址冲突处理机制
通过以下的实验进行分析:
一、设备“不开启源IP地址冲突提示功能”(默认情况)
如下拓扑所示,将SW与测试仪器互联的地址配置为100.1.1.1/24,然后用测试仪器向SW分别持续打入3种报文。
1、 打入ARP probe
可以观察到当SW持续收到地址100.1.1.1的ARP probe报文后,会不断以地址100.1.1.1的免费ARP进行回应,但不会产生地址冲突的告警日志。
2、 打入ARP announcement(免费ARP request)
可以观察到当SW持续收到地址100.1.1.1的免费ARP request报文后,会不断以地址100.1.1.1的免费ARP进行回应,但不会产生地址冲突的告警日志。
3、打入ARP reply(发送者IP与标记IP均为100.1.1.1)
可以观察到当SW持续收到地址100.1.1.1的免费ARP reply报文后,每隔6s会回应一个免费ARP request报文,检测冲突是否消除,而且会生成地址冲突的告警日志。
二、设备“开启源IP地址冲突提示功能”
重复上述三个打流过程,此时设备收到地址100.1.1.1的三种免费ARP报文后,每隔6s都会回应一个免费ARP request报文,检测冲突是否消除,而且会生成地址的冲突的告警日志。
1、PC/服务器等终端设备通常采用RFC 5227中新的ACD检测流程,当检测到地址冲突后,其处理方式与RFC 5227中提供的“机制一”一致,即直接放弃对冲突地址的使用。在修改终端地址、新终端接入局域网等应用场景下,如果产生地址冲突,该方式最有利于网络的稳定性。
2、H3C网络设备直接采用免费ARP实现地址冲突检测,而非RFC 5227中新的ACD检测流程。当检测到地址冲突时,其处理方式与RFC 5227中提供的“机制三”一致,即继续占用冲突地址。在修改终端地址、新终端接入局域网等应用场景下,如果产生地址冲突,网络设备比终端设备更“强势”,终端设备更容易放弃对冲突地址的使用,这样有利于网络的整体稳定性。但在网络设备间地址冲突的情况下,该机制对整网稳定性会造成持续影响。
3、当H3C网络设备关闭源IP地址冲突提示功能时(默认情况),仅在收到免费ARP reply后,每隔6s会回应一个免费ARP request报文,检测冲突是否消除,而且会生成地址冲突的告警日志;当开启源IP地址冲突提示功能时,只要收到ARP报文的目标IP与本地地址一致,每隔6s会回应一个免费ARP request报文,检测冲突是否消除,而且会生成地址冲突的告警日志
本文参考文献:
https://zhiliao.h3c.com/Theme/details/27896 免费ARP实现IPv4地址冲突检测原理分析(知了社区)