将 DHCP 客户端从 udhcpc 更改为 systemd-networkd 时如何保持 DHCP 服务器给出的 IP

将 DHCP 客户端从 udhcpc 更改为 systemd-networkd 时如何保持 DHCP 服务器给出的 IP

我有一个设备,我想升级其文件系统和软件包。
现在安装的是某种构建根目录忙碌盒。它的 DHCP 客户端是udhcpc,我像这样运行它/sbin/udhcpc -R -b -p /var/run/udhcpc.eth0.pid -i eth0以获得eth0.

我正在将文件系统和包升级为Ubuntu 18.04基于buildroot.
作为其中的一部分,新的 DHCP 客户端是systemd-networkd.

FS升级前给定的IPudhcpc与FS升级后给定的IP不同systemd-networkd
这是针对同一台 Mac 的同一接口。

有没有办法保留旧IP?

答案1

根据systemd-networkd 文档:

[DHCPv4] Section Options

[...]

ClientIdentifier=

要使用的 DHCPv4 客户端标识符。取mac,duid或 之一duid-only如果设置为mac,则使用链路的 MAC 地址。如果设置为duid,则RFC4361使用兼容的客户端 ID,它是 IAID 和 DUID 的组合(见下文)。如果设置为duid-only,则仅使用 DUID,这可能不符合 RFC,但某些设置可能需要使用它。默认为duid

  • 如果您想恢复到先前安装所获得的行为并且未使用任何 DUID,请使用此参数:

    ClientIdentifier=mac
    
  • 如果较旧的安装使用 DUID 并且可能使用特定于接口的 IAID,则还必须从中检索这些值。然后应将它们用于或影响文档中描述的各种其他参数

    ClientIdentifier=
    DUIDType=
    DUIDRawData=
    IAID=
    ... ?
    

希望你属于前一种情况。

现在,因为它是关于一个服务器所以应该可以实现一定的稳定性,如@罗埃马在评论中写道,在简单的网络设置中保持相同 IP 地址的正确方法可能是更改 DHCP 服务器上的设置,使 DHCP 客户端别无选择。

相关内容