web-dev-qa-db-ja.com

Ubuntu 18.04はdhclientを使用しますか?

Ubuntuサーバー18.04でDHCPクライアントを構成する方法を見つけようとしています。

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
pzakha

私はこれについてさらに掘り下げたので、他の人にいくつかの情報を残しました。

Ubuntu 18.04はdhclientを使用しなくなったようです。これはifupdownによってデーモンモードで呼び出されました。代わりに、systemd-networkdがDHCPのすべてを処理します。 DHCPクライアントフックを作成するには、systemdを使用する必要があります(ntpのファイルを見ると、この方法の例を見ることができます:/lib/systemd/system/ntp-systemd-netif.{path|service})。

質問で述べたように、cloud-initはサンドボックスでdhclientを呼び出しますが、一部の特定のクラウドに対してのみです。

ホスト名の設定に関しては、systemd-networkdcloud-initの間に競合がある可能性があります。 Cloud-init nocloud set hostname from dynamic from dhcp を参照してください。

2
pzakha