Ubuntu 18.04 使用 dhclient 吗?

Ubuntu 18.04 使用 dhclient 吗?

我正在尝试弄清楚如何在 Ubuntu 服务器 18.04 上配置我的 DHCP 客户端。

我有以下 netplan 配置,来自 cloud-init:

network:
    version: 2
    ethernets:
        ens160:
            dhcp4: true
            match:
                macaddress: 02:dc:01:00:38:4c
            set-name: ens160

这似乎正确地配置了我的网络接口的 IP 地址、DNS、默认网关和搜索域。但是,我想知道如何从 DHCP 获取主机名。我一直在研究 dhclient,它提供了一些我可以使用的方便的钩子,但是似乎没有调用 dhclient 钩子。我注意到 cloud-init 按照日志调用 dhclient,但作为某种沙盒版本,它似乎忽略了钩子。

我还注意到 systemd-networkd 报告了一些与 DHCP 租约有关的 DHCP 活动。

有人可以解释一下这个过程吗?

答案1

我对此进行了更深入的研究,因此给其他人留下了一些信息。

Ubuntu 18.04 似乎不再使用 dhclient,它由 以守护进程模式调用ifupdown。相反,systemd-networkd它负责处理所有 DHCP 事务。为了创建 DHCP 客户端挂钩,我们现在必须使用(您可以通过查看的文件systemd来查看如何完成此操作的示例:)。ntp/lib/systemd/system/ntp-systemd-netif.{path|service}

正如问题中所提到的,cloud-init 确实在沙盒中调用了 dhclient,但仅限于某些特定的云。

在设置主机名方面,systemd-networkd和之间可能会发生冲突cloud-init。请参阅Cloud-init nocloud 从 dhcp 动态设置主机名

相关内容