我想知道是否有办法在 /etc/network/interfaces 中硬编码 DHCP 客户端 ID。最好能够取代客户端的 mac 地址作为获得租约的决定因素。
我的 Ubuntu 16.04 VM 正在获取与其主机(Windows 10,运行 hyper-V)相同的 IP 租约。VM 的虚拟接口(设置为虚拟以太网设备)与主机的 Wifi 接口桥接。我怀疑我的家庭 wifi 无法支持每个连接多个 mac 地址或类似的东西(非 WDS)。
使用从 传递的客户端选项来区分 dhcp 客户端会很方便/etc/network/interfaces
。我不太清楚应该如何dhclient
从命令行或配置文件传递此参数。
我尝试过的方法(没有成功):
dhclient -i
似乎没有做任何不同的事情。(即使删除了所有租赁文件)- 在 hyper-v 中虚拟机的适配器设置上启用 mac 地址欺骗。(不过我认为这适用于客户机内部发生的事情)。
以防万一,我的家用路由器正在运行 OpenWrt Chaos Calmer 15.05.1。我不确定哪个特定的 dhcpd 服务器在其上运行。
相关问题:
答案1
在 Ubuntu 18.04-20.04 中,DHCP 客户端 ID 从 生成/etc/machine-id
。
克隆虚拟机后,您必须更改/etc/machine-id
、/etc/hostname
和/etc/hosts
。
如果您忘记更改/etc/machine-id
,您将获得相同的客户端 ID 和 IP 地址。
答案2
我在尝试解决 Ubuntu 18.04 的相同问题时偶然发现了您的帖子。在 18.04 中,有一个文件 /etc/dhcp/dhclient.conf,它允许我更改 DHCP 选项。在我的虚拟机上,默认客户端 ID 是使用主机名生成的,克隆虚拟机后我没有更改主机名。更改主机名解决了该问题。
看起来相同的文件存在于 Ubuntu 16.04 中 http://manpages.ubuntu.com/manpages/xenial/man5/dhclient.conf.5.html