代理arp的深入学习和实践实验

Gratuitous ARP

定义

代理arp为arp的一种特定,为了解决局域网IP地址冲突问题而产生。

组成

ARP request、ARP reply

报文内容

ARP request

 

 

 

 

源IP、MAC是自己;目的IP是检测的IP(自己)、MAC是全0

ARP reply

 

 

 

 

源IP、MAC是自己,目的IP、MAC是发送request方

作用

  1. 更新伙伴arp:当设备的硬件地址发生变化时,可以发送arp request来更新同一广播域下所有设备变化设备的arp表项;
  2. 检测冲突:当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

工作原理

  1. 网卡启动或从睡眠状态醒来时,会发送一个ARP probe;
  2. 发送设备收到其他主机发送的arp probe时或者ARP reply。当收到ARP reply时,证明IP有其他主机在使用了。当收到arp probe时,证明有其他主机想要这个ip。 无论是收到arp reply或者prboe,两段将提示用户地址冲突,并激发地址冲突处理机制。
  3. 如果上面两种包都没有收到,说明IP地址可用。设备将发送arp announcement,告诉大家这个IP已经被我在使用了,并且让其他设备更新arp表项。

地址冲突处理机制

当检测到IP地址冲突后,RFC5527提供了三种可选的解决机制:

  1. 直接放弃使用该IP地址;
  2. 发送一个ARP announcement来进行IP地址“守卫”,如果冲突仍然继续存在,放弃使用这个IP;
  3. 无视冲突,继续使用这个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地址冲突检测原理分析(知了社区)

posted on 2021-01-26 15:06  Key-Network  阅读(1788)  评论(0编辑  收藏  举报

导航