Linux

將 DHCP 客戶端從 udhcpc 更改為 systemd-networkd 時如何保持 DHCP 伺服器提供的 IP

  • August 18, 2021

我有一台設備,我想升級它的文件系統和軟體包。

現在安裝的是某種帶有busybox的buildroot。它的 DHCP 客戶端是,我這樣執行它是為了獲得.udhcpc``/sbin/udhcpc -R -b -p /var/run/udhcpc.eth0.pid -i eth0``eth0

我正在將文件系統和軟體包升級為Ubuntu 18.04基於而不是buildroot.

作為其中的一部分,新的 DHCP 客戶端是systemd-networkd.

udhcpcFS升級前的IP與升級後的IP不同systemd-networkd

這適用於具有相同mac的相同介面。

有沒有辦法保留舊IP?

根據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=
... ?

希望你屬於前一種情況。

現在,由於它是關於伺服器的,所以應該可以實現一些穩定性,正如@roaima在評論中所寫,在簡單的網路設置中保持相同 IP 地址的正確方法可能是更改 DHCP 伺服器上的設置以別無選擇DHCP客戶端。

引用自:https://unix.stackexchange.com/questions/665174