鉴于此网络
[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 服务器之间的单播操作(不涉及中继)。