学习目标:
提示:ACD(IP地址冲突检测)原理学习与抓包分析
学习记录:
1、Address Conflict Detection地址冲突检测,简称ACD。RFC 5227提出ACD机制。其中ACD将arp request分为ARP probe和ARP announcement两种;
ACD定义了ARP探测分组和ARP通告分组
ARP探测分组:是一个ARP请求分组,其中发送方协议(IPv4 )地址字段被设置为0。探测分组用于查看一个候选IPv4地址是否被广播域中的任何其他系统所使用。通过将发送方协议地址字段设置为0,避免候选IPv4地址被另一台主机使用时的缓存污染,这是它与免费ARP工作方式的一个差别
ARP通告分组:与ARP探测相同,除了其发送方协议地址和目的协议地址字段被填充为候选IPv4地址外。它用于通告发送方使用侯选IPv4地址的意图
参考:https://blog.csdn.net/qq_41453285/article/details/96276963
2、ARP协议(地址解析协议)用于局域网中网络设备按IP地址查询对方的MAC地址,提供一种从网络地址(仅ipv4,ipv6用ND协议替代)到硬件地址(各种链路层协议使用的地址)的映射。
3、ARP数据帧
4、ARP probe:用于检测IP地址冲突,发送端IP填充为0,填充为0是为了避免对其他设备的ARP cache造成污染(ARP probe报文不会使局域网中的其他设备刷新ARP映射关系,若已经有设备正在使用目标IP地址了,其通信不会受影响)。
源IP是全0,MAC是自己;
目的IP是检测的IP(自己)、MAC是全0
5、ARP announcement:用于“昭示”(LAN/VLAN)本设备要使用某个IP地址了,它其实就是一个免费ARP request,即发送端IP地址和目标IP地址都是本设备IP地址的ARP request报文
6、ACD启动机制
- 网卡启动或从睡眠状态醒来或link up时,会发送一个ARP probe;
- 发送设备收到其他主机发送的arp probe时或者ARP reply。当收到ARP reply时,证明IP有其他主机在使用了。当收到arp probe时,证明有其他主机想要这个ip。 无论是收到arp reply或者prboe,两段将提示用户地址冲突,并激发地址冲突处理机制。
- 如果上面两种包都没有收到,说明IP地址可用。设备将发送arp announcement,告诉大家这个IP已经被我在使用了,并且让其他设备更新arp表项。
7、IP地址处理方法
当检测到IP地址冲突后,RFC5527提供了三种可选的解决机制:
- 直接放弃使用该IP地址;
- 发送一个ARP announcement来进行告诉其他设备自己在使用这个IP地址,如果冲突仍然继续存在,放弃使用这个IP;
- 无视冲突,继续使用这个IP。
个人建议:1、修改为新的IP地址,然后重新进行IP地址冲突检测;2、或者linkdown(一般不推荐),重新修改IP地址再上下电重新进行ACD检测;3、发送ARP announcement告诉其他设备自己使用该IP,让其他设备修改IP地址
参考:https://blog.csdn.net/qq_41453285/article/details/96276963
参考:https://www.cnblogs.com/key-network/p/14330389.html