使用 APIPA 的设备在自行分配 IP 之前是否会检查地址冲突?如果是这样,如何?

Mik*_*e B 1 networking windows apipa

我的理解是,使用 APIPA,客户端可以在 DHCP 服务器不可用时自动自行配置 IP 地址和子网掩码。我知道由于多种原因,这种方法并不实用,但我很好奇:协议中是否内置了任何内容来检查给定的 IP 地址是否正在使用中?

例如,假设我的主机选择使用169.254.0.2. 如果广播域中的另一台主机已经拥有该地址怎么办?我的房东甚至会在完成自我分配之前进行检查吗?

har*_*ymc 5

两台设备为自己选择同一个IP几乎是不可能的。

每个设备获取一个地址,然后通过广播 ARP Probe 数据包来测试它是否已在使用中。所有冲突情况都得到了很好的涵盖,例如在没有答案到达时重复请求、另一个设备对同一 IP 的 ARP 请求等等。

最后,设备通过 ARP 使用其选择的 IP 向网络宣布自己,由算法保证是唯一的(或几乎保证)。

有关详细信息,请参阅 RFC 5227 ,其中包含所有 ad-hoc 网络必须遵循的标准。

链接本地地址 是该算法的一个变体,于 1998 年首次在 MacOS 9 中实现,其中每个设备选择一个随机地址作为其第一次尝试。这里的标准是 RFC 3927

  • 我不会使用“不可能”这个词,原因有两个:糟糕的实现可能会扰乱检测,并认为一个地址是空闲的,而实际上它不是,或者两个主机在不同的网段上选择相同的地址(例如,两个独立的网络)例如,交换机),然后这些网段被连接(有人在两个交换机之间连接电缆)。也就是说,这是极不可能的。 (2认同)