【发布时间】:2015-08-18 09:29:25
【问题描述】:
在 DORA 进程的“请求”部分,客户端知道 DHCP 服务器的 IP 和 MAC 地址(因为在 Offer 中发送的 IP 数据报具有此信息)。那么如果目的地是已知的,为什么还要向网络上的每台机器广播请求呢?
与 DORA 进程的“确认”部分类似,客户端的 IP 地址现在已成功设置在其中,并且 DHCP 服务器知道。为什么还是广播消息?
【问题讨论】:
标签: dhcp
在 DORA 进程的“请求”部分,客户端知道 DHCP 服务器的 IP 和 MAC 地址(因为在 Offer 中发送的 IP 数据报具有此信息)。那么如果目的地是已知的,为什么还要向网络上的每台机器广播请求呢?
与 DORA 进程的“确认”部分类似,客户端的 IP 地址现在已成功设置在其中,并且 DHCP 服务器知道。为什么还是广播消息?
【问题讨论】:
标签: dhcp
当网络上有多个 DHCP 服务器并且客户端收到来自RFC 2131 Section 3.1 的多个 OFFER 响应时,会广播 REQUEST:
服务器接收来自客户端的 DHCPREQUEST 广播。 那些未被 DHCPREQUEST 消息选择的服务器使用 消息作为通知客户端已拒绝该服务器的 提供。在 DHCPREQUEST 消息中选择的服务器提交 将客户端绑定到持久存储并以 包含配置参数的 DHCPACK 消息 请求客户。
来自服务器的 ACK 可能并不总是广播数据包,但可能是您检查过的情况。 DHCP 协议的一部分允许为 DHCPOFFER、DHCPACK 和 DHCPNAK 消息启用广播目的地。这是必要的,因为某些 TCP/IP 堆栈在 IP 地址被完全声明并分配给网络接口之前无法接收单播数据报。来自RFC 2131 Section 4.1:
通常,DHCP 服务器和 BOOTP 中继代理会尝试传递 使用 DHCPOFFER、DHCPACK 和 DHCPNAK 消息直接发送给客户端 单播交付。 IP 目标地址(在 IP 标头中)是 设置为 DHCP 'yiaddr' 地址和链路层目标 地址设置为 DHCP 'chaddr' 地址。不幸的是,有些 客户端实现无法接收此类单播 IP 数据报,直到实现已配置有效 IP地址(导致客户端的IP地址死锁 在客户端配置 IP 之前无法交付 地址)。
在其协议之前无法接收单播 IP 数据报的客户端 软件已配置 IP 地址 应设置 在任何 DHCPDISCOVER 或 客户端发送的 DHCPREQUEST 消息。广播位将 向 DHCP 服务器和 BOOTP 中继代理提供广播提示 在客户端的子网上向客户端发送任何消息。
【讨论】: