,我解释一下IP地址冲突的原因。IP地址冲突的一般是在局域网中可能出现,无论是手工配置IP地址,还是DHCP动态获取IP地址,都有可能出现IP地址冲突
IP地址冲突只有可能出现在二层局域网。也就是同一个网段内才有可能地址冲突。我们配置IP地址时都有一个地址和一个掩码,例如下图中主机获取192.168.1.71这个地址,掩码是在255.255.255.0。那么IP地址冲突只可能发生在192.168.1.2到192.168.1.254这一段地址内。因为在这一段地址内,PC机可以通过广播的方式发送报文,而ARP协议就是IP地址冲突检测的基础。
什么叫ARP?我们可以简单理解ARP协议的作用,就是用来获取某个IP地址对应的MAC地址,因为相同网段的局域网用户都是通过MAC地址来转发的。例如下图中192.168.0.200这台PC机要访问192.168.0.107这台PC机。由于源PC机判断目的地址和自己地址处于相同的网段,目的PC机和源PC机在同一个局域网内,需要用MAC地址转发。所以地址是200的源PC机会发一个ARP报文向整个局域网请求107对应的MAC地址,107这台主机就会回一个包含他MAC的ARP响应信息,然后我们PC机就可以通过MAC来转发
我们看到下图就是这个过程,本来200这台主机上没有107的MAC地址,Ping一个包之后,通过ARP请求就学习到了192.168.0.107的MAC地址
简单的说,ARP请求的作用就是向局域网所有的PC机呼喊“107你的MAC是什么”
ARP响应的作用就是地址是107这台PC机看到是请求自己的MAC,回应“107的MAC地址是XX-XX-XX-XX-XX-XX”
那么,我们再看看IP地址冲突的检测过程
当我们获取IP地址之后(例如下图DHCP获取地址后),我们的PC机会发起一个叫做免费ARP的报文,免费ARP报文的作用实际上就是向局域网发布一个请求自己IP地址所在的PC机对应的MAC地址的的消息。
以上图为例,当图中192.114.200.7刚刚获取IP地址时,它会向局域网所有的PC机发这个请求“192.114.200.7这个PC机的MAC地址是什么?”|
由于200.7这个地址就是PC机自己,所以一般情况下是没人回应的,于是200.7这台PC就心安理得的用这个IP地址。
如果这个地址在局域网已经存在,那个这个地址的PC就会回一句“192.114.200.7的PC机MAC地址是XX-XX-XX-XX-XX-XX”.
此时获取192.114.200.7这个地址的PC机就会赫然发现,自己竟然收到其他PC机对自己地址的回应了,那么很显然此时IP地址肯定是冲突的,此时我们的PC机就会提示IP地址冲突
这就是IP地址冲突的基本原理。那么一旦发生地址冲突我们该怎么做?根据你地址获取方式的不同,分为两种种场景
如果你所处的局域网都是手工配置的地址,那么你只需改一个地址就可以,你可以请同在局域网的其他朋友任意选一个IP地址Ping一下,如果这个地址Ping不通,那么是肯定可以用的,比如下图,192.168.0.20肯定是可以用的,那么你把自己的地址改成这个就可以
如果你所处的局域网的地址都是DHCP自动分配的,那么一般情况下是不会冲突的,因为分配地址的服务器是可以保证地址分配不冲突。如果此时一旦出现冲突,必然是有人私下配置了IP地址,这个肯定是不允许的,所以你可以站起来大吼一声
“哪个用了IP地址192.168.0.20,不要乱配!!!”
基本听到你声音的私下配置的朋友就会告诉你是他配置的
如果没人响应,就可以请管理员抓ARP数据看看这个私自乱配的IP地址对应的MAC地址是哪个,然后在交换机检查这个MAC地址是从二层交换机哪个端口发出的,直接把那个MAC地址封杀掉就可以,他上不了网自然会反馈故障,此时就知道是谁干的坏事了