我正在努力弄清楚如何在Ubuntu服务器18.04上配置我的DHCP客户机。
我有以下网络计划配置,来自云init:
network:
version: 2
ethernets:
ens160:
dhcp4: true
match:
macaddress: 02:dc:01:00:38:4c
set-name: ens160
这似乎正确地配置了ip地址、dns、默认网关和搜索域的网络接口。但是,我想知道如何从DHCP获得主机名。我一直在研究dhclient,它提供了一些我可以使用的方便的钩子,但是似乎并没有调用dhclient钩子。我注意到云init根据日志调用dhclient,但作为某种沙箱版本调用,这似乎忽略了钩子。
我还注意到,报告了一些与DHCP租约有关的DHCP活动。
有人能对这一过程有所了解吗?
发布于 2018-09-06 12:36:02
我对此做了更多的调查,所以给其他人留了一些信息。
看起来Ubuntu18.04不再使用dhclient了,它是由ifupdown
在守护进程模式下调用的。相反,systemd-networkd
负责DHCP的所有事务。为了创建DHCP客户端挂钩,我们现在必须使用systemd
(通过查看ntp
的S文件:/lib/systemd/system/ntp-systemd-netif.{path|service}
,您可以看到这样做的一个例子)。
正如问题中提到的,云init在沙箱中更多地调用dhclient,但只对某些特定的云调用。
在设置主机名方面,systemd-networkd
和cloud-init
之间可能存在冲突。见从dhcp动态地设置云init nocloud主机名.。
https://askubuntu.com/questions/1072195
复制