路由器上禁用 dhcp 服务器会阻止客户端获取地址

路由器上禁用 dhcp 服务器会阻止客户端获取地址

我的本地网络出现了一个奇怪的问题,导致某些客户端有时会从真正的 dhcp 服务器 (xxx3) 获取 IP 地址。dhcp 服务器是运行 isc-dhcp 服务器的 CentOS VM,用于 ipv4。我的 ISP(Sagemcom)的路由器禁用了 dhcp 服务器 (xxx1)。

但是,当客户端直接连接到 Sagemcom 路由器时,我有时会看到这样的响应:

The server offers address x.x.x.181 from x.x.x.3
NACK: Requested address not available from x.x.x.1

(不完全是那样...)那么,为什么路由器在应该关闭的情况下给出 NACK 呢?dhcpd.conf 中的指令“authoritive”在这里到底起什么作用?

所以我最重要的问题是,我该如何解决这个问题?

如果我在自己的 dhcp 服务器处于不活动状态时运行nmap --script broadcast-dhcp-discover,则我不会收到回复。

答案1

dhcpd.conf 中的指令“authoritive”在这里到底起什么作用?

来自 dhcpd 手册:

DHCP 服务器通常会假设给定网段的配置信息不知道是否正确,并且不具有权威性。这样,如果新手用户在不完全了解如何配置 DHCP 服务器的情况下安装了该服务器,它不会向已从网络上的合法 DHCP 服务器获取地址的客户端发送虚假的 DHCPNAK 消息。

因此,这意味着如果 dhcp 服务器收到对其未知地址的请求,它将发送 NACK。就您而言,是其他 dhcp 服务器发送了 NACK,因此在这种情况下,您服务器上的“权威”并不重要,但如果客户端请求属于其他 dhcp 服务器的地址,则重要。

您可以使用 -e 选项运行 tcpdump 来查看哪个以太网主机发送了 NACK。它可能是路由器,也可能是配置为转发到路由器的代理。根据潜在代理的配置,如果它没有收到来自 dhcp 服务器的答复,它可能会用 NACK 进行答复。

答案2

可能您在网络的某个地方配置了 dhcp 中继/dhcp 辅助程序,它指向“已禁用”的 dhcp 服务器。请求将包含中继设备的 ip 地址,当该地址与 dhcp 子网不匹配时,将发出 NACK。您可以通过进行一些数据包跟踪来了解详细信息。

请看这里:https://documentation.meraki.com/zGeneral_Administration/Tools_and_Troubleshooting/DHCP_NAK

DHCP NAK 是来自 DHCP 服务器的否定确认。服务器将在以下情况下发送 DHCP NAK:

  • 请求的地址可能来自同一子网,但不在服务器的地址池中。这可能是故障转移场景,其中
    2 个 DHCP 服务器为同一子网提供服务,因此当其中一个服务器发生故障时,另一个服务器不应该向从 第一个服务器
    获取 IP 的客户端发送 NAK 消息。

  • 请求的地址位于不同的子网。

  • 请求的地址已被另一个客户端使用。

对于您的其他问题:

那么,为什么路由器应该关闭,却给出 NACK 呢?dhcpd.conf 中的指令“authoritive”在这里到底起什么作用?

看来 dhcp 服务器并没有真正关闭。

引自https://linux.die.net/man/5/dhcpd.conf

权威声明

权威性;

不具有权威性;

DHCP 服务器通常会假设给定网段的配置信息不知道是否正确,并且不具有权威性。这样,如果新手用户在不完全了解如何配置 DHCP 服务器的情况下安装了该服务器,它不会向已从网络上的合法 DHCP 服务器获取地址的客户端发送虚假的 DHCPNAK 消息。

为其网络设置权威 DHCP 服务器的网络管理员应始终在其配置文件顶部写入权威;以指示 DHCP 服务器应向配置错误的客户端发送 DHCPNAK 消息。如果不这样做,客户端在更改子网后将无法获得正确的 IP 地址,直到其旧租约到期,这可能需要相当长的时间。

通常,在文件的顶层写入 authoritative; 就足够了。但是,如果要设置 DHCP 服务器,使其知道哪些网络是其授权的,哪些网络不是,则按网络段声明授权可能更合适。

请注意,权威概念最具体的范围是物理网络段 - 共享网络语句或未包含在共享网络语句中的子网语句。指定服务器对共享网络中的某些子网具有权威性,但对其他子网不具有权威性是没有意义的,指定服务器对某些主机声明具有权威性,而对其他主机声明不具有权威性也是没有意义的。

所以我最重要的问题是,我该如何解决这个问题?

答案是数据包追踪。 https://www-01.ibm.com/support/docview.wss?uid=swg21175744

相关内容