如果我有两台 PC 连接到交换机,并且我在两台 PC 上静态配置相同的 IP 地址,那么 PC 如何知道 LAN 网络上存在地址冲突(重复地址)?在这种情况下不使用 dhcp。
答案1
在分配静态 IP 之前,计算机会发送ARP 探测广播检查 IP 地址是否已被使用。
本地网络上的所有机器都会应答此广播,并且如果该地址正在使用中,则它(大多数)不会分配给网络适配器。
在 Windows 中,你可以使用以下命令检查当前已知的 IP 地址(对于本地机器)cmd.exe
:
arp -a
由于各种原因,这种方法并不总是可靠的。因此,可能会发生两个不同的网络适配器使用相同的 IP 地址的情况。这种情况记录在系统日志文件中。如果不查看这些文件,很难检测到此类错误。
注解
这不是上面提到的完整机制,但稍微展示了它的工作原理:
对 进行 ping 时network broadcast address
,大多数机器将以 arp 响应进行应答,并告知其 IP 地址和 MAC 地址。(例如网络192.168.0.255
的广播地址192.168.0.0/24
)
ping 192.168.0.255
此后arp -a
将显示哪些机器回答了。
大多数情况下,甚至机器也会应答,因为机器的防火墙是完全封闭的。
如果没有与机器进行网络通信,一段时间后 arp 条目将被丢弃。