3.7. DHCP サーバーのネットワークインターフェイスの設定

デフォルトでは、dhcpd サービスプロセスは、サービスの設定ファイルで定義されているサブネットに IP アドレスのあるネットワークインターフェイスでのみ要求します。

たとえば、以下のシナリオでは、dhcpd は、enp0s1 ネットワークインターフェイスでのみリッスンします。

  • /etc/dhcp/dhcpd.conf ファイルには、192.0.2.0/24 ネットワークの subnet 定義しかない。
  • enp0s1 ネットワークインターフェイスが 192.0.2.0/24 サブネットに接続されている。
  • enp7s0 インターフェイスが別のサブネットに接続されます。

DHCP サーバーに同じネットワークに接続された複数のネットワークインターフェイスが含まれているにもかかわらず、サービスが特定のインターフェイスでのみリッスンする必要がある場合にのみ、この手順に従ってください。

IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。

前提条件

  • root ユーザーとしてログインしている。
  • dhcp-server パッケージがインストールされている。

手順

  • IPv4 ネットワークの場合:

    1. /usr/lib/systemd/system/dhcpd.service ファイルを /etc/systemd/system/ ディレクトリーにコピーします。

      # cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/

      /usr/lib/systemd/system/dhcpd.service ファイルは編集しないでください。dhcp-server パッケージの今後の更新により、変更が上書きされます。

    2. /etc/systemd/system/dhcpd.service ファイルを編集し、dhcpd が、ExecStart パラメーターのコマンドでリッスンする必要があるインターフェイスの名前を追加します。

      ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0

      この例では、dhcpdenp0s1 インターフェイスおよび enp7s0 インターフェイスでのみリッスンするように設定します。

    3. systemd マネージャー設定を再読み込みします。

      # systemctl daemon-reload
    4. dhcpd サービスを再起動します。

      # systemctl restart dhcpd.service
  • IPv6 ネットワークの場合:

    1. /usr/lib/systemd/system/dhcpd6.service ファイルを /etc/systemd/system/ ディレクトリーにコピーします。

      # cp /usr/lib/systemd/system/dhcpd6.service /etc/systemd/system/

      /usr/lib/systemd/system/dhcpd6.service ファイルは編集しないでください。dhcp-server パッケージの今後の更新により、変更が上書きされます。

    2. /etc/systemd/system/dhcpd6.service ファイルを編集し、dhcpd は、ExecStart パラメーターのコマンドでリッスンする必要があるインターフェイスの名前を追加します。

      ExecStart=/usr/sbin/dhcpd -f -6 -cf /etc/dhcp/dhcpd6.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0

      この例では、dhcpdenp0s1 インターフェイスおよび enp7s0 インターフェイスでのみリッスンするように設定します。

    3. systemd マネージャー設定を再読み込みします。

      # systemctl daemon-reload
    4. dhcpd6 サービスを再起動します。

      # systemctl restart dhcpd6.service