ubuntu server 虚拟机通过dhcp server总是获得相同的ip
参考文档:https://knowledge.broadcom.com/external/article/316620/cloned-vm-acquires-the-same-dhcp-ip-addr.html
现象:
ubuntu server 22.04,通过vmware player创建了一个虚拟机,然后又复制了多个虚拟机
1. 复制的虚拟机重新生成了mac地址
2. 三台虚拟机启动后得到的Ip 地址相同
3. 在虚拟机上运行 sudo dhclient -r 删除 dhcp 分配的 ip, 然后执行 sudo dhclient 后会得到不同的 ip,但是重启动后又会恢复到之前的 ip
4. 在第3部重新获取 dhcp ip 后,过一段时间之前的 ip 又会绑定到网卡上,即一个网卡绑了2个ip
产生原因:
ubuntu server安装时会生成一个 machine-id 位于 /etc/machine-id
复制的虚拟机这个 machine-id 的值都是一样的
默认情况dhcp server会根据machine-id而不是mac 地址给虚拟机分配 ip (刷新了我的认知)
解决方法:
在配置文件中指定通过mac地址分配ip, 修改00-installer-config.yaml文件,增加:dhcp-identifier: mac
/etc/netplan$ cat 00-installer-config.yaml # This is the network config written by 'subiquity' network: ethernets: ens33: dhcp4: true dhcp-identifier: mac version: 2
重启动后就可以了
还有一种方法是修改machine-id,没有测试,感觉还是根据mac地址分配,比较符合人类的习惯 ;-)