DHCP 服务器标识符和 DHCP 中继

DHCP 服务器标识符和 DHCP 中继

我有一台 DHCP 服务器,通过 DHCP 中继为多个子网提供服务。当它发出 DHCP 请求时,它会将服务器标识符(选项 54)设置为自己的 IP 地址。

当客户端需要更新时,它们会尝试单播到该 IP 地址,但没有任何客户端能够路由到该 IP 地址。

当使用中继时,单播到 DHCP 服务器应该如何工作?预期行为是否是客户端在 RENEWING 状态期间无法通过单播续订,然后在时间 T2 之后的 REBINDING 状态期间通过广播续订?

答案1

是的,一点没错。

客户端无法将单播路由到他们的 DHCP 服务器,这有点奇怪,但这根本不是问题;他们只会在租约有效期内稍后进行续订(这会减少 DHCP 服务器停机的余地)。

答案2

租约续订(在 T1 阶段)通过从 DHCP 客户端到 DHCP 服务器的单播消息来实现。为什么来自客户端子网的单播流量不会被路由到服务器子网?如果来自客户端子网的 DHCPDiscover 消息没有被路由(中继)到服务器子网,那么原始广播将如何中继到服务器子网?如果子网之间没有路由流量,那么客户端将如何首先获取 IP 地址?

最终,来自 DHCP 客户端子网的流量将通过路由器进行路由(在原始 DHCPDiscover 阶段和之后的 T2 阶段通过来自 DHCP 中继代理的单播消息进行路由)和/或在 T1 更新阶段通过直接从 DHCP 客户端进行单播进行路由。

正如您所说,如果客户端到达 T2 阶段,则它会提交广播续订请求,DHCP 中继代理应将其中继(单播)到 DHCP 服务器。

编辑

这是一个理论问题还是您实际上遇到了这个问题?

编辑2

对我的答案进行另一种解释:当客户端在 T1 阶段发起租约续订时,续订请求是直接从客户端到服务器的单播消息(单播是直接的一对一通信),因此 DHCP 中继代理根本不应该参与。如果客户端到达 T2 续订阶段,则续订请求将通过广播消息发送,并应由 DHCP 中继代理进行中继(这实际上是来自 DHCP 中继代理的单播消息)。

如果 T1 阶段单播消息未从客户端子网路由到服务器子网,那么这是一个路由/网络问题,而不是 DHCP 问题。

答案3

好的,看来我无法对之前的答案发表评论,而只能向您发送额外的答案。

我认为这不完全是路由问题。请看以下非常基本的示例以了解:

  1. 我在第 2 层和第 3 层广播发送 DISCOVER,
  2. 我也在“双重”广播中收到了一个 OFFER,
  3. 我再次以“双重”广播的方式发送了请求(以便通知潜在的辅助 DHCP 服务器我已丢弃其提议)
  4. 服务器 ACK 是广播还是单播。

=> 我在哪里需要知道服务器的 MAC?哪里都没有。我无法确定我收到的数据包(无论是广播还是单播)的源 MAC 是否是服务器的 MAC。无论如何,T1 很有可能超出 arp 缓存超时...

  1. T1 到期。我想续订。我应该向 DCHP 服务器 (siaddr) 发送 L3 单播消息。假设我没有询问选项 3。我将选择哪个目标 MAC?

通常我会对 siaddr 进行 ARP。如果单播服务器 IP 不在我的链接上怎么办?好吧,我最终会放弃请求和任何后续重试,直到我进入 REBINDING 状态。

这里没有真正的路由错误。这是一个拓扑问题,我甚至无法实施解决方案,将更新发送到“giaddr”IP,因为这违反了标准。

相关内容