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


2

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

sudo ipconfig set en0 BOOTP
sudo ipconfig set en0 DHCP

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

enter image description here

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

Answers:


1

好吧,DHCP服务器从DHCP请求中获取您的MAC地址。它可以包括回复数据包的IP头(以及DHCP有效负载)中提供的IP地址,因为它只是实际传送到正确目的地的MAC地址。

更新(WIkipedia)

当DHCP服务器从客户端收到DHCPDISCOVER消息(IP地址租约请求)时,服务器为客户端保留IP地址,并通过向客户端发送DHCPOFFER消息来提供租约。此消息包含客户端的MAC地址,服务器提供的IP地址,子网掩码,租约持续时间以及提供商品的DHCP服务器的IP地址。

请求

下面是一个请求(DHCP DISCOVER) Wireshark样品

enter image description here

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

另请注意 相关的RFC

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

客户端可以询问DHCP服务器是否可以取悦,非常好,顶部有樱桃,在你关闭之前分配它昨天使用的IP地址。如果该地址尚未分配给另一个客户端,则DHCP服务器可以考虑允许此操作。

答复

继承人回复(DHCP OFFER)

enter image description here

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

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


谢谢,但我没有得到的部分是DHCP服务器如何直接向192.168.1.5发送Offer。它不知道我的地址是什么,因为它尚未授权我。它应该发送到255.255.255.25,5因为我还没有接受新的IP。查看图像中的第三个数据包目标。
sanjihan

@sanjihan。 DHCP服务器知道客户端的MAC地址。这就是解决答复所需要的一切。您不需要或使用网络层的IP地址。
RedGrittyBrick

如果仅仅考虑MAC,它如何将192.168.1.5作为目的地呢?
sanjihan

@sanjihan:DHCP服务器从其DHCP池中的下一个可用号码或其预留列表或DHCP请求中获取该IP地址。这就是DHCP的重点,服务器为客户端分配IP地址并向其发送该信息。 ---您是否真的了解MAC地址和IP地址的使用差异?
RedGrittyBrick

@sanjihan:你说,你很困惑 “我不知道,DHCP服务器是如何将Offer直接发送到192.168.1.5” - 服务器不这样做(尽管出现)。服务器实际上发送的是什么(例如)00:0b:82:01:fc:42 - 而不是192.168.1.5。 - 回想一下以太网局域网中的寻址方式!
RedGrittyBrick
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.