??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突( 二 )


??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突


图8 A主机主动制造与B主机的IP地址冲突
(3)在局域网中抓包,使用wireshark分析IP地址冲突下各主机的的交互情况 。
2.实验分析
(1) Linux A进行地址修改后,A主机立马以A主机MAC为源MAC,FF:FF:FF:FF:FF:FF为目的MAC发送免费ARP广播,进行全网通告A主机的IP地址为192.168.198.130 。
(2)B主机收到A主机的免费ARP后,以B主机MAC为源MAC,FF:FF:FF:FF:FF:FF为目的MAC响应,进行通告,告知全网B主机的IP才是192.168.198.130 。
(3)A主机连续发送4个免费ARP通告,但B主机只会在第一次进行响应 。
(4)由于A主机多次发送免费ARP,此时C主机ARP高速缓存表中记录的192.168.198.130为A主机,C主机与192.168.198.130通讯未中断 。
??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突


图9 主机IP地址冲突后ARP交互情况
(5)B主机(此时IP地址被冲突)与C主机(192.168.198.131)通讯有中断现象,通过数据包可以发现B主机(IP:192.168.198.130;MAC:00:0c:29:ff:12:87)访问C主机(IP:192.168.198.131;MAC:00:0c:29:38:83:18)时,C主机回包给A主机(IP:192.168.198.130;MAC:00:0c:29:34:eb:e2) 。
??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突


图10 B主机与C主机网络通讯中断
(6)B主机与C主机通讯超时后会重新请求一次ARP,请求192.168.198.131的MAC地址 。当C主机收到此ARP后会更新ARP高速缓存表中192.168.198.130对应的MAC地址为B主机MAC地址,随后B主机恢复与C主机的通讯 。
??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突


图11 B主机与C恢复通讯
3.实验结论
主动制造IP地址冲突的Linux主机会发送多次免费ARP,被冲突的Linux主机会返回1个免费ARP,通讯过程中存在通过ARP请求互相抢IP的现象 。
随后,以相同的方式模拟了SUSE系统IP地址被冲突、Windows系统IP地址被冲突、Windows系统主动制造IP地址冲突三组实验,得出实验结论如下 。
表1 不同系统在IP地址冲突时的ARP交互情况
??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突


IP地址冲突反应机制总结经过上述测试以及其它技术了解,我们总结了宿主机(凡是配置了ip地址并存活于网络中的产品)对ip地址冲突的反应机制,下表列出部分涉及到的产品 。
表2 不同产品在IP地址冲突时日志记录及ARP交互情况
??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突


注:表中“是”与“否”只针对对测试过的版本与产品型号有效,不确保对该产品不同系列或不同版本有效
IP地址冲突检测方案1.方案一:主机日志与网络syslog监控
针对可进行ip地址冲突日志记录的宿主机,可对其产生的对应日志进行监控分析并产生告警;针对可发出ip地址冲突syslog的网络设备,可对syslog进行解析监控与告警 。
??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突


图12 SUSE系统在IP地址冲突时的日志样例
2.方案二:报文MAC检测
通过流量采集设备采集网络中所有流量,并将ip及对应MAC地址解析出来后,发送至大数据分析平台,将其中网络设备的MAC地址进行过滤后,如果发现1个ip地址对应多个不同MAC地址,则判定可能存在ip地址冲突 。
??IP地址冲突检测方法研究与实践 怎么查ip地址是否冲突


图13 TCP/IP网络模型帧封装示意图

推荐阅读