先上解决方案
在被克隆的机器上编辑 /etc/netplan/00-installer-config.yaml
文件。
network:
ethernets:
ens33:
dhcp4: true
dhcp-identifier: mac # 加上这一行。
version: 2
这样每次从这台机器进行的克隆都会有唯一的 ip 地址。
简单说明
如果是 clone centos 会发现不会出现这一情况,而 clone ubuntu 的时候会发生,那么可以简单的猜测,可能是因为网络策略的不同。
经过一番查询发现:
- Ubuntu 网络组件使用
systemd-networkd
。 - Centos 网络组件使用
dhclient
。
这就是他们默认策略不同的原因, systemd-networkd
默认使用 /etc/machine-id
来识别,当虚拟机克隆的时候,他们都有一样的 /etc/machine-id
和 DHCP
server,因此返回的都是同一个 ip 了。
而 Centos 所使用的 dhclient
组件,采用默认策略就是使用链路层地址,虽然虚拟机进行了文件克隆,但是他们的链路层地址是由虚拟机进行分配的所以并不一样。