DHCP OFFER是第3层广播,因为服务器不知道客户端IP,但是服务器知道客户端MAC地址。那么广播将如何?

如果有人问我这个问题?我该怎么回答?我可以说它的layer3广播和layer2单播吗?

#1 楼

请注意广播标志,请参阅RFC2131(第24页):


在配置了
协议
软件之前,客户端无法接收单播IP数据报的客户端IP地址应在客户端发送的任何DHCPDISCOVER或
DHCPREQUEST消息中,将“标志”字段中的
BROADCAST位设置为1。 BROADCAST位
将向DHCP服务器和BOOTP中继代理提供提示,以在客户端的子网上向客户端广播任何消息。
/>在配置协议软件之前可以接收单播IP数据报的客户端应将BROADCAST位清为0。BOOTP澄清文档讨论了BROADCAST位使用的后果。 />

添加了其余的RFC。根据整个段落,它可以是广播,也可以是单播,甚至两者都可以。

#2 楼

答案是它既可以广播也可以单播-在某些情况下,使用ip helper-address之前,单播和广播都可以到达客户端。 DISCOVER-OFFER-REQUEST-ACK交换完成。

有可能(尽管可能性很小)出现服务器响应NAK来响应请求的情况。

由于单播通常比广播更受青睐,因此许多客户端会接受单播回复匹配他们的L2地址。

#3 楼

https://www.ietf.org/rfc/rfc2131.txt

根据此RFC:

Droms标准跟踪[页24]

RFC 2131动态主机配置协议,1997年3月

通常,DHCP服务器和BOOTP中继代理尝试使用
uicast传递直接将DHCPOFFER,DHCPACK和DHCPNAK消息传递给客户端。 IP目标地址(在IP标头中)设置为DHCP'yiaddr'地址,而链路层目标地址
地址设置为DHCP'chaddr'地址。不幸的是,某些
客户端实现只有在配置了有效的
IP地址(导致死锁时,客户端的IP地址
除非已为客户端配置IP
地址,否则无法交付。

在其协议
软件已配置IP之前,客户端无法接收单播IP数据报的客户端地址应在客户端发送的任何DHCPDISCOVER或
DHCPREQUEST消息中,将“标志”字段中的
BROADCAST位设置为1。 BROADCAST位
将向DHCP服务器和BOOTP中继代理提供提示,以在客户端的子网上向客户端广播任何消息。可以
配置其协议软件之前可以接收单播IP数据报的客户端
应将BROADCAST位清除为0。BOOTP
澄清文档讨论了
BROADCAST位[21]。

服务器或中继代理直接向DHCP客户端(即,不向
中指定的中继代理发送或中继DHCP消息) 'giaddr'字段)应该检查'flags'
字段中的BROADCAST位。如果此位设置为1,则DHCP消息应作为IP广播使用IP广播地址(最好是0xffffffff)发送
作为IP目标地址,而链路层广播地址为
链路层目标地址。如果BROADCAST位被清除
为0,则消息应作为IP单播发送到'yiaddr'字段中指定的IP地址
和在< “ chaddr”字段。如果不能单播,则消息
可以作为IP广播使用IP广播地址
层广播地址作为IP广播发送。链接层目标地址。

#4 楼

DHCP服务器正在通过DHCP提供来应答以提供IP地址。
它知道目标MAC和IP,因此将使用单播IP数据包朝向原始以太网地址,因此是单播以太网帧

如果要真正查看它,只需在DHCP服务器上输入以下命令:

    tcpdump -i my_ethernet_device -e src port bootps
是DHCP服务器在其上答复网络的以太网接口的名称。

评论


您能否告诉我有关ack,请求数据包的信息,无论它们是单播还是广播?

–ashok
15年2月27日在11:18

technet.microsoft.com/zh-cn/library/cc780760%28v=ws.10%29.aspx在此链接中,他们说要约包已广播

–ashok
15年2月27日在11:20

运行一个tcpdump(或wireshark),并为自己总结一下它实际上是如何工作的。

– dan
15年2月27日在11:30

我的系统中没有任何一个,请在这里结束。

–ashok
15年2月27日在11:34

我认为DHCP Server知道目标IP地址并不正确。它可能知道主机可能想要的IP地址,也可能知道主机本身提供的IP地址,但是该IP地址尚未达成共识。否则,这些交流的意义何在?

– Nae
1月2日15:03

#5 楼

DHCP服务器可能位于您的网络外部,因此我们也需要在网络层进行广播。
服务器使用UDP
源端口号67和目标端口号响应广播或单播消息。 68.响应可以是单播的,因为服务器知道客户端的IP地址。它还知道客户端的物理地址,这意味着它不需要ARP服务即可进行逻辑到物理地址的映射。但是,某些系统不允许
绕过ARP,导致使用广播地址。

#6 楼

台式机或笔记本电脑或服务器或任何其他通过无线或有线方式将DHCP发现消息连接到网络的osi模型中的数据段层中的DHCP发现消息,目标Mac地址为FF:FF:FF:FF:FF:FF
带有此DISCOVER消息的帧到达DHCP服务器后。目的地地址作为客户端Mac地址。
注意:DHCP服务器从DHCP客户端发现消息中知道客户端Mac地址
此提议消息包含。
客户端的建议IP地址,例如172.16.2.16
子网掩码以标识子网空间,例如255.255.255.0
子网的默认网关的IP,例如172.16.2.1
如果托管了内部dns服务器ip地址,则将按配置使用其他明智的外部dns地址在DHCP po上ol。
所以最后我们可以得出结论,DHCP提供消息是从DHCP服务器单播的。