有没有办法缓存 DHCP 客户端上分配的最后一个 IP,并在 DHCP 服务器关闭时使用它?

有没有办法缓存 DHCP 客户端上分配的最后一个 IP,并在 DHCP 服务器关闭时使用它?

我希望我的 DHCP 客户端 (CentOS 7) 缓存为其分配(保留)的最后一个 IP,并在 DHCP 服务器关闭时使用它。


以下是我的 DHCP 客户端的当前网络接口配置:

vi '/etc/sysconfig/network-scripts/ifcfg-enp0s8'

BOOTPROTO=dhcp
DEVICE=enp0s8
IPV6INIT=NO
ONBOOT=yes
ZONE=public

vi '/etc/sysconfig/network'

# Created by anaconda
NETWORKING=yes

谢谢!

进一步的问题:如果这是可能的(或者甚至是一个好的做法),是否应该在 DHCP 服务器上进行设置? 笔记:我使用 ISC KEA DHCP (DHCPv4) 作为 DHCP 服务器。

答案1

让我首先尝试确保我理解你的问题:你似乎要求一个我称之为上次使用的 IP 地址的“客户端缓存”的功能 - 请参阅我对 @RuiFRibeiro 的回答的评论。如果这是正确的话dhcpcd可能会通过它覆盖你“后备”功能

引用在线文档:

可以在 dhcpcd 中配置静态配置文件,并在 DHCP 租约失败时回退到该配置文件。这对于无头机器特别有用,其中静态配置文件可以用作“恢复”配置文件以确保始终可以连接到机器。

和你的注意:我不知道这是否应该在 DHCP 服务器上设置 - 在我的例子中是 ISC KEA DHCP (DHCPv4)。

否 - “后备”未在服务器上设置,而是在客户的DHCP 配置文件。

希望有帮助。

答案2

你正在发明东西。

如今该协议确实定义了客户端在启动时将尝试从 DHCP 服务器请求最后给定的 IP。最后一个 IP 地址保存在文件系统中,DHCP 守护程序将首先向 DHCP 服务器请求该地址,只有在拒绝的情况下才会尝试获取不同的地址。

但是,如果网络中不存在 DHCP 服务,客户端 DHCP 守护程序将不会尝试为您提供最后的 IP 地址。想象一下,当检测连接良好或不良时,或者由于片状电缆而导致重复 IP 地址的可能性时,它会导致什么问题。

答案3

您可以做的就是在您的 DHCP 不可用时设置后备 IP,dhclient.conf以便 APIPA(自动专用 IP 寻址)不会发挥作用。但是,这必须静态设置,并且不会链接到您上次的 DHCP 租用。

例子:与此主题相关的帖子

答案4

当系统使用 DHCP 启动时,它还可以请求最后一个 IP(提示服务器重新发出)。传统上,它存储在 dhclient.leases 中。我似乎忘记了每个发行版将其隐藏的位置。

https://man.openbsd.org/dhclient.leases.5

相关内容