图3 主机C发送ARP响应报文
地址解析协议ARP还有另外一个功能免费ARP,此功能的主要作用是为了检测IP地址冲突。免费ARP是一种特殊的ARP请求,当主机启动的时候,发送一个免费ARP请求,请求自己的IP地址的MAC地址。
图4 免费ARP请求报文
免费ARP请求通常有两个目的,第一个目的是当IP地址更改了对应的MAC地址时通过该ARP请求告知局域网内其他主机更新ARP高速缓存表。第二个目的则是确定局域网中是否有主机配置了与自己相同的IP地址。对于第二个目的来说,主机并不希望收到此请求的响应,因为一旦收到响应就证明有另一台主机也配置了相同的IP地址,网络中发生了IP地址冲突。
图5 免费ARP响应报文
基于免费ARP报文可以检测是否存在IP地址冲突。为测试不同操作系统在IP地址冲突时ARP交互情况,我们搭建如下测试环境,通过更改主机的IP地址配置来模拟IP地址冲突。
图6 ARP交互实验环境示意图
下文以测试Linux系统下IP地址冲突时ARP交互情况实验为例,实验如下。
1.实验过程
(1)使用Linux B(192.168.198.130)长ping Linux C(192.168.198.131),同时Linux C 长ping Linux B来模拟B主机与C主机之间正常的网络通讯。