IP 冲突长什么样
两台设备配置了同一个 IP 时,故障表现极具迷惑性:随机断网、间歇丢包、连接时好时坏,因为发往该地址的报文会被两台设备交替应答。用 ping 判断不可靠——它只是恰好轮询到其中一台。可靠做法是在 ARP 层取证:看同一 IP 是否由不同 MAC 应答。arping -D(重复地址检测)与抓 ARP 包都能直接实锤。
基本信息
| 适用平台 | Linux(arping 来自 iputils)、Windows(系统事件日志) |
|---|---|
| 检测方法 | arping -D -c 4 -I eth0 <IP>;tcpdump 抓 arp 看应答 MAC 是否变化 |
| Windows 线索 | 系统日志事件 4198/4199,或托盘弹出「检测到 IP 地址冲突」 |
| 协议依据 | RFC 5227:IPv4 地址冲突检测 |
| 常见成因 | 静态地址越界、DHCP 租约与静态地址重叠、私接设备 |
典型使用场景
- 用户报「网络时通时断」且重启无效:先排除 IP 冲突这一高频原因
- 新设备上线后老设备异常:检查是否分配了已被占用的地址
- DHCP 环境中出现随机故障:核对地址池是否与静态地址段重叠
- 安全检查:发现未登记设备占用内网关键地址
- 运维排查定位冲突源:通过交换机 MAC 表反查端口与设备
检测与取证
检测与取证
arping -D -c 4 -I eth0 10.0.0.5 # 收到来自不同 MAC 的应答即冲突
tcpdump -nn -e -i eth0 arp and host 10.0.0.5 # 观察 who-has / tell 的 MAC 是否变化
ip neigh show | grep 10.0.0.5 # 条目里的 lladdr 是否跳动
# 定位冲突源后,在接入交换机上反查 MAC 地址表,找出对应端口与设备
arp -an | grep 10.0.0.5Windows 侧线索
Windows 侧线索
Get-WinEvent -FilterHashtable @{LogName='System'; Id=4198,4199} -MaxEvents 10 # 地址冲突相关事件
arp -a | Select-String '10.0.0.5' # 查看 ARP 表中的 MAC
ipconfig /all | Select-String -Pattern 'IPv4|Physical'取证要点
| 观察项 | 正常表现 | 冲突表现 |
|---|---|---|
| ARP 应答 MAC | 始终是同一台设备的 MAC | 同一 IP 出现两个不同 MAC |
| arping -D | 无应答或仅自身应答 | 收到不属于本机的应答 |
| ip neigh 条目 | lladdr 稳定 | lladdr 反复变化 |
| Windows 事件 | 无 4198/4199 | 出现地址冲突事件记录 |
| 连通表现 | 稳定 | 随机断连、丢包 |
| 交换机 MAC 表 | 同一 IP 对应一个端口 | 同一 IP 出现在两个端口上 |
冲突在 DHCP 环境里多由静态地址越界或私接设备引起。处置是停掉冲突主机或改地址,而不是在本机反复执行 DHCP 释放与续约。