具有多个作用域的DHCP服务器。 哪一个是用来发放IP的?

我有4个DHCP范围。

10.200.0.0 <——– DHCP服务器住在这里

10.54.0.0

10.16.0.0

10.32.0.0

DHCP广播请求被发送到我的DHCP服务器。 它如何决定从哪个范围提取地址?

我的问题是,应该得到一个10.200.0.0地址的客户端实际上是从10.16.0.0范围获取IP地址,我不明白为什么。

这不是预期的行为,所以它让我觉得比DHCP服务器收到的简单广播更复杂的事情正在发生。

当DHCP服务器收到第2层广播DHCPREQUEST时,它将满足该请求,该请求超出了与接收DHCPREQUEST的接口的子网相对应的范围,就像您期望的那样。 当它从DHCP中继代理(GIADDR地址集)接收到作为第3层单播的请求时,它将满足包含GIADDR地址的子网范围内的请求。

我会嗅探进入你的DHCP服务器(与微软NetMon或Wireshark )的stream量,以确保该请求确实是作为第2层广播到达。

除了Evan在他的回答中所说的,你实际上是否有由路由器或路由器分隔的networking10.54.xx,10.16.xx和10.32.xx? 这听起来像也许你只是为同一个networking上的客户端设置了多个范围。 是这样吗?

另外(正如Evan所说的),来自不同于DHCP服务器的客户端的DHCP广播消息需要通过DHCP中继代理(通常在路由器上configuration)“中继”到服务器。 DHCP中继代理将广播消息转换为单播消息,因此除了DHCP服务器networking之外,不应该看到任何到达服务器的广播消息。 您应该看到DHCP中继代理为不同networking上的客户端发送的单播消息。 这是你所看到的吗?