如何让Debian 9的DHCP客户端检查更频繁?

如何让Debian 9的DHCP客户端检查更频繁?

我们在 Minnowboard(小型嵌入式系统)上使用 Debian 9 安装。 Debian 9 安装没有什么特别的 - 它是我们从 Debian 网站获得的常规 Debian 9 映像,并且必须使用 Debian 安装程序从头开始安装。

我们看到的问题是,有时,当 Minnowboard 启动时,Debian 的 DHCP 客户端不会获取 IP,并且似乎需要几分钟才能重试,直到最终它确实获取了 IP。手动使用 dhclient,Debian 获取 IP 没有问题。

Linux DHCP 客户端在第一次尝试时没有获取 IP 的原因可能是因为为 Minnowboard 供电的同一电源也为路由器供电(它们通常同时开始启动),因此,当 minnowboard 第一次请求 IP 时,路由器(DHCP 服务器)可能尚未启动。

如果接口配置为 DHCP 并且还没有 IP,是否可以更改任何配置文件以使 Debian 的默认 DHCP 客户端更频繁地请求 IP?

在相关主题中,什么控制 Debian 9 中的 DHCP 客户端? systemd 是否正在运行一些服务来监视以确保 DHCP 租约没有过期,并根据需要续订它们?

注意:不确定这是否相关,但我确实这样做了这个伎俩,并设置GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"将网络接口名称设置回 eth0。

答案1

您可以dhclient在 中配置超时和重试设置/etc/dhcp/dhclient.conf。设置retry为 60 秒或更短可能正是您想要的。

来自man dhclient.conf(添加了额外的换行符和粗体以强调):

协议时序

客户端的计时行为不需要由用户配置。如果用户没有提供计时配置,则默认情况下将使用相当合理的计时行为 - 该行为会导致相当及时的更新,而不会给服务器带来过度的负载。

如果需要,可以使用以下语句来调整 DHCPv4 客户端的计时行为。 DHCPv6 协议提供了可供使用的值,但它们当前不可配置。

timeout声明

timeout time;

超时语句确定客户端开始尝试确定其地址的时间与客户端决定无法联系服务器的时间之间必须经过的时间量。

默认情况下,此超时时间为六十秒

超时后,如果配置文件中定义了任何静态租约,或者租约数据库中剩余任何尚未到期的租约,客户端将循环遍历这些租约,尝试验证它们,如果找到一个看起来有效,它将使用该租约的地址。

如果租约数据库中没有有效的静态租约或未过期的租约,客户端将在定义的重试间隔后重新启动协议。

retry声明

retry time;

重试语句确定客户端确定不存在 DHCP 服务器之后再次尝试联系 DHCP 服务器之前必须经过的时间。

默认情况下,这是五分钟

相关内容