wic*_*ken 14 virtual-machine dhcp systemd systemd-networkd
我已经从 Ubuntu 17.10 模板克隆了两个 vSphere 虚拟机。启动后,他们都声称拥有相同的 IP 并为之而战(当 IP 在它们之间切换时 ssh 连接中断)。
两台机器的主机名和 MAC 地址不同。dhclient
正确声明两个独立的 IP,但使用的解析器是systemd-networkd
.
wic*_*ken 29
systemd-networkd
使用不同的方法来生成 DUID,而不是dhclient
. dhclient
默认使用的链路层地址,而systemd-networkd
使用该内容的/etc/machine-id
。由于 VM 是克隆的,因此它们具有machine-id
相同的 IP,并且 DHCP 服务器为两者返回相同的 IP。
要修复,请替换/etc/machine-id
. 这可以是任何东西,但删除文件并运行systemd-machine-id-setup
会machine-id
以与机器设置相同的方式创建随机数。
小智 14
网络规划配置怎么样?有一个选项dhcp-configuration
可以使用如下(摘自netplan 示例):
network:
version: 2
ethernets:
enp3s0:
dhcp4: yes
dhcp-identifier: mac
Run Code Online (Sandbox Code Playgroud)
默认情况下,它使用机器 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.
Run Code Online (Sandbox Code Playgroud)