我在我的家庭服务器上的 ESXi 下的虚拟机中运行 Ubuntu Server 20.04。我希望虚拟机有两个唯一的 IP 地址,目的是能够在 Docker 容器中运行两个单独的 PiHole 实例。
我在虚拟机上配置了两个网络适配器,然后将 /etc/netplan/00-installer-config.yaml 配置为:
network:
ethernets:
ens160:
dhcp4: true
ens192:
dhcp4: true
version: 2
运行后netplan apply
,我有两个接口,每个接口都通过 DHCP 拥有自己的 IP。
# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.212 netmask 255.255.255.0 broadcast 10.0.0.255
...
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.213 netmask 255.255.255.0 broadcast 10.0.0.255
...
/etc/dhcp/dhclient.conf
然后,我通过注释掉默认的“发送主机名”选项并将其替换为两个特定于接口的选项来进行编辑:
#send host-name = gethostname();
interface "ens160" {
send host-name = "something-else-1";
}
interface "ens192" {
send host-name = "something-else-2";
}
就是这一步好像不行。 DHCP 服务器 (Unifi) 仍将主机名报告为“实验性”。事实上,我尝试将现有gethostname()
行更改为仅具有其他主机名,但即使这样似乎也不起作用。
我尝试改变/etc/hostname
使用不同的东西,这确实有效。因此,似乎由于某种原因,中的选项/etc/dhcp/dhclient.conf
被忽略了。
谁能告诉我我做错了什么?谢谢!
答案1
我认为问题在于每个接口都需要不同的 DHCP“状态机”。为此,您需要为每个客户端分配一个不同的客户端 ID,如下所示。
# send host-name = gethostname();
interface "enp2s0" {
send dhcp-client-identifier "officemac";
send host-name "officemac";
}
interface "enp2s0:0" {
send dhcp-client-identifier "media";
send host-name "media";
}