Systemd
為什麼我複製的 linux 虛擬機在爭奪同一個 IP
我從 Ubuntu 17.10 模板中複製了兩個 vSphere VM。啟動後,它們都聲稱相同的 IP 並為之而戰(ssh 連接隨著 IP 切換而中斷)。
兩台機器的主機名和 MAC 地址不同。
dhclient
正確聲明了兩個獨立的 IP,但使用的解析器是systemd-networkd
.
網路計劃配置呢?有一個選項
dhcp-configuration
可以按如下方式使用(摘自netplan 範例):network: version: 2 ethernets: enp3s0: dhcp4: yes dhcp-identifier: mac
預設情況下,它使用機器 ID,但通過更改此功能,我們可以“強制”不使用它。
dhcp-identifier (scalar) When set to `mac'; pass that setting over to systemd-networkd to use the device's MAC address as a unique identifier rather than a RFC4361-compliant Client ID. This has no effect when NetworkManager is used as a renderer.
systemd-networkd
使用不同的方法來生成 DUID,而不是dhclient
. 預設情況下使用鏈路dhclient
層地址,而systemd-networkd
使用. 由於虛擬機是複製的,它們具有相同的 IP,並且 DHCP 伺服器為兩者返回相同的 IP。/etc/machine-id
machine-id
要修復,請替換其中一個或兩個的內容
/etc/machine-id
。這可以是任何東西,但刪除文件並執行systemd-machine-id-setup
會以與機器設置相同的方式創建一個隨機數machine-id
。