DHCP Offer 已发送到我的本地 IP 地址

DHCP Offer 已发送到我的本地 IP 地址

我在终端中输入了这些命令来释放我当前的本地 IP 地址并分配一个新的 IP 地址:

sudo ipconfig set en0 BOOTP
sudo ipconfig set en0 DHCP

这是Wireshark中DHCP数据包的截图:

在此处输入图片描述

根据我正在阅读的书,DHCP Offer 消息应该广播到 255.255.255.255。事实并非如此,我很困惑路由器怎么在给我分配地址之前就已经知道了我的地址。192.168.1.5 确实是我的旧地址。它是否存储了我的 MAC 地址并将其映射到它给我的旧 IP 地址?是否可以强制路由器(实际上是任何 DHCP 服务器)给我一个新的、不同的 IP?

答案1

DHCP 服务器从 DHCP 请求中获取您的 MAC 地址。它可以将提供的 IP 地址包含在回复数据包的 IP 标头中(以及 DHCP 负载中),因为只有 MAC 地址才能真正将信息传递到正确的目的地。

更新(维基百科)

当 DHCP 服务器收到来自客户端的 DHCPDISCOVER 消息(即 IP 地址租约请求)时,服务器会为客户端保留一个 IP 地址,并通过向客户端发送 DHCPOFFER 消息来提供租约。此消息包含客户端的 MAC 地址、服务器提供的 IP 地址、子网掩码、租约期限以及提供租约的 DHCP 服务器的 IP 地址。

要求

以下是来自Wireshark 样本

在此处输入图片描述

请注意,它来自 00:0b:82:01:fc:42 并到达 ff:ff:ff:ff:ff:ff(广播地址)

还请注意相关 RFC

  1. 客户端在其本地物理子网上广播 DHCPDISCOVER 消息。DHCPDISCOVER 消息可能包含建议网络地址值的选项和租约期限。BOOTP 中继代理可能会将消息传递到不在同一物理子网上的 DHCP 服务器。

客户端可以询问 DHCP 服务器,是否可以为您分配昨天关闭之前使用的 IP 地址(最好能为您分配)。如果该地址尚未分配给其他客户端,DHCP 服务器可能会考虑允许这样做。

回复

这是答复(DHCP OFFER)

在此处输入图片描述

请注意,源是 00:08:74:AD:F1:9B,目标是 00:0b:82:01:fc:42

由于这都是 LAN 本地的,因此 IP 报头中的地址字段的内容无关紧要。只有以太网报头中的地址字段才用于将数据包发送到需要去的地方。

相关内容