我们有 500 多台机器运行 Ubuntu。我注意到很多机器都存在 IP 地址冲突。在 Ubuntu 中是否可以识别 IP 地址冲突?
- 查看输出这里。
- 这到底是什么意思?我所有 IP 地址的 MAC 地址都相同?
答案1
你可以使用 arp-scan 找到它们:
sudo apt-get install arp-scan
sudo arp-scan -I eth0 -l
将显示 IP 地址,MAC地址和制造商网卡并且输出中的重复行也用 来标识自己(DUP: 2)
(其中 2 是第二次找到此 IP 地址eth0
。
使搜索更加具体的一些可能选项:
- 指定 IP 地址列表作为参数:
sudo arp-scan -I eth0 192.168.1.1 192.168.1.2 192.168.1.3
- 指定网络/位:
sudo arp-scan -I eth0 192.168.1.0/24
- 指定网络:网络掩码:
sudo arp-scan -I eth0 192.168.1.0:255.255.255.0
- 指定地址范围:
sudo arp-scan -I eth0 192.168.1.3-192.168.1.27
- 从文件中读取 IP 地址列表:
sudo arp-scan -I eth0 --file=ip-address-list.txt
sudo arp-fingerprint -o "--interface=eth0 --numeric" 192.168.1.111
显示 IP 地址、二进制指纹字符串以及与该指纹匹配的已知系统列表:192.168.1.111 01000100000 Linux 2.2, 2.4, 2.6
您可以添加|grep {part.of.ip.address}
以限制输出(不要使用通配符,但常用表达如果您需要更多奇特的组合)。
答案2
除此之外arp-scan
,守护进程ipwatchd
在某些情况下可能会有用,对于通过搜索来到这里的其他人来说,值得在这个问题上提一下。
IPwatchD 是一个简单的守护进程,它分析所有传入的 ARP 数据包以检测 IP 冲突。
它可以配置为在检测到冲突时运行用户脚本。
arp-scan
能够检测整个网络的冲突。ipwatchd
检测主人的IP 地址也可在其他地方使用。
顺便说一句,ARP 对于此任务很有用,因为它使用发送到所有主机的广播流量,而许多其他流量仅路由到预期的接收者(在 MAC 级别)。
答案3
好吧,这与 Ubuntu 主题相去甚远,但根据你的粘贴,我认为你需要查看你的网络配置。我知道在 Cisco 平台上,你可以实施 HSRP 来获得冗余的第 3 层接口。如果一个交换机在特定 VLAN 上发生故障,另一个交换机将成为替补。看到两个以上的 IP 地址使用相同的 mac 确实看起来很奇怪,但很可能是你的网络实施和配置的症状——无论配置是否正确。看到这么多只是一个危险信号。
Mac 的供应商部分直接指向思科系统,因此这些 IP 地址很可能是基础设施,而不是 Ubuntu 盒子
00-00-0C (hex) CISCO SYSTEMS, INC.
00000C (base 16) CISCO SYSTEMS, INC.
170 WEST TASMAN DRIVE
SAN JOSE CA 95134-1706
UNITED STATES
您是否考虑过在 DHCP 范围内使用静态 IP,而 dhcpd 中没有保留或拆分范围语句?希望对您有所帮助。