複数のネットワークインターフェイスに固有のDHCPホスト名を指定する

複数のネットワークインターフェイスに固有のDHCPホスト名を指定する

私のホームサーバーのESXiの下の仮想マシンでUbuntu Server 20.04を実行しています。 Dockerコンテナ内で2つの別々のPiHoleインスタンスを実行できるように、仮想マシンに2つの一意のIPアドレスが必要です。

仮想マシンに2つのネットワークアダプタを設定し、/etc/netplan/00-installer-config.yamlを次のように設定しました。

network:
  ethernets:
    ens160:
      dhcp4: true
    ens192:
      dhcp4: true
  version: 2

を実行すると、netplan applyDHCPを介してそれぞれ独自のIPを持つ2つのインターフェイスがあります。

# 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次に、デフォルトの「ホスト名を送信」オプションをコメントアウトし、2つのインターフェース固有のオプションに置き換えて編集しました。

#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";
}

関連情報