为什么 DHCP 中继提供信息被发送回 GIADDR 而不是源?

为什么 DHCP 中继提供信息被发送回 GIADDR 而不是源?

鉴于此网络

 [DHCP Client]
       |
  (172.16.0.1)
[DHCP Relay Agent]
   (10.1.0.2)
       |
   (10.1.0.1)
 [DHCP Server]

DHCP 服务器有一个 172.16.0.0/16 池,当真实代理将客户端请求中继到服务器时,服务器会将请求发送到 172.16.0.1,而我期望的是 10.1.0.2。

这有什么具体的原因吗?如果 DHCP 服务器没有到客户端网络的路由怎么办?

答案1

我将在 6 年后回答这个问题(没有其他人回答过,而且评论也没有完全涵盖),因为我刚刚在另一个关于 DHCP 中继的问题上给出了错误的建议别处(错误答案很快就会被删除),不得不重新详细讨论这个话题!我的部分搜索让我想到了这个问题。

RFC 2131 规定将响应发送到GIADDR请求的地址而不是源地址的原因可能是多种的路径中的中继。如果响应只是返回到 DHCP 服务器之前的最后一个中继,则所有其他中间中继都必须存储有关正在进行的请求的状态,以便它们可以在返回流的每个阶段查找正确的下一跳。与仅自然路由到相比,这效率低下且不必要GIADDR

如果服务器没有返回客户端的路由,DHCP 将失败,尤其是在租约续订期间,这通常是客户端和 DHCP 服务器之间的单播操作(不涉及中继)。

相关内容