ARP检查IP地址冲突

  • 背景
  • Linux检测
  • Windows检测


背景

假设在公司内网的一台物理机A上安装了linux系统(ip: 172.16.33.40),上面部署了应用。突然出现ssh 无法访问这台linux系统,相关应用也无法访问,查看是因为ip被占用。

Linux检测

**1、**LINUX可以使用arping命令检测地址是否冲突

只需要同一地址段的Linux机器B(如172.16.33.41)执行下下面命令(不能在本机arping检验自己的ip地址);

arping -I ip地址对应的网卡 172.16.33.41

查看mac地址python 查看Mac地址是否冲突_ip地址


如果只检查出一个MAC地址,则表示网内A机器的的IP:172.16.33.41 是唯一的。

如果有以上信息即查出两个MAC地址,则表示网内有一台MAC地址为xx:xx:xx:xx:xx:xx的主机IP地址与A机器相同,这时可以通过ifconfig命令验证A机器,如下发现:A机器的MAC地址是xx:xx:xx:xx:xx:xx。 我们可以用局域网扫描软件找到MAC地址为40:F4:EC:76:79:C2的主机,并将其隔离或更换IP地址。

检验原理: arping命令是以广播地址发送arp packets,以太网内所有的主机都会收到这个arp packets,但是本机收到之后不会Reply任何信息。

当我们在linux主机端上执行下面的命令时: arping -I eth0 172.16.33.41   会使用eth0,向局域网内所有的主机发送一个: who has 192.168.9.120的arp request,tell 172.16.54.48 your mac address,

当这台windows主机端收到这个arp packets后,则会应答: “I am 172.16.33.41 , mac是xx:xx:xx:xx:xx:xx”,这样我们会收到mac地址为00:25:e4:6a:4b:f4的windows主机的Reply信息。

**2、**arp-scan这个工具会在本地网络发送ARP(Address Resolution Protocol)(地址解析协议)包来收集地址。如果有多个MAC地址声称拥有相同的IP地址,那么这里就存在冲突。

首先安装arp-scan则输入:

安装方式 yum -y install arp-scan

要检测IP冲突,运行下面的命令:

arp-scan -I eth0 -l

查看mac地址python 查看Mac地址是否冲突_网络_02

由上面信息可知:,如果出现一个地址两次MAC地址,可知这个ip被占用了。 需要找到使用这个ip的机器,将其ip更换即可。
1)“arp-scan -l” 命令表示查看与本机在同一局域网内的所有机器的ip使用情况
2)“arp-scan –I eth0 -l” 命令表示查看与本机在同一局域网内的所有主机的eth0网卡的ip使用情况

Windows检测

windows本机使用"arp -a"命令查看是否有ip冲突:

查看mac地址python 查看Mac地址是否冲突_ip地址_03