Red Hat Training

A Red Hat training course is available for RHEL 8

46.9. DHCP サーバーに直接接続していないサブネット用の DHCP サービスの設定

DHCP サーバーが、DHCP 要求に応答するサブネットに直接接続していない場合は、以下の手順に従います。これは、DHCP リレーエージェントが DHCP サーバーに要求を転送する場合を指します。DHCP サーバーのインターフェイスが、サーバーが提供するサブネットに直接接続していないためです。

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

前提条件

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

手順

  • IPv4 ネットワークの場合

    1. /etc/dhcp/dhcpd.conf ファイルを編集します。

      1. その他のディレクティブにこの設定がない場合は、dhcpd が使用するグローバルパラメーターをデフォルトとして追加します。

        option domain-name "example.com";
        default-lease-time 86400;

        この例では、接続のデフォルトのドメイン名を example.com に設定し、デフォルトのリース時間を 86400 秒 (1 日) に設定します。

      2. authoritative ステートメントを新しい行に追加します。

        authoritative;
        重要

        authoritative ステートメントがない場合、dhcpd サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAKDHCPREQUEST メッセージに応答することはありません。

      3. 以下のように、サーバーのインターフェースに直接接続していない IPv4 サブネットに、shared-network 宣言を追加します。

        shared-network example {
          option domain-name-servers 192.0.2.1;
          ...
        
          subnet 192.0.2.0 netmask 255.255.255.0 {
            range 192.0.2.20 192.0.2.100;
            option routers 192.0.2.1;
          }
        
          subnet 198.51.100.0 netmask 255.255.255.0 {
            range 198.51.100.20 198.51.100.100;
            option routers 198.51.100.1;
          }
          ...
        }

        この例では、192.0.2.0/24 と 198.51.100.0/24 の両方のネットワークの subnet 宣言を含む、共有ネットワーク宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットのいずれかから DHCP 要求を送信するクライアントに割り当てます。

        • 両方のサブネットにおけるクライアントの DNS サーバーの IP は 192.0.2.1 です。
        • クライアントがどのサブネットから要求を送信したかに応じて、range パラメーターで定義された範囲の 空き IPv4 アドレスです。
        • デフォルトゲートウェイは、クライアントがどのサブネットから要求を送信したかに応じて、192.0.2.1 または 198.51.100.1 のいずれかになります。
      4. サーバーが直接接続し、上記の shared-network で指定したリモートのサブネットに到達するのに使用されるサブネットの subnet 宣言を追加します。

        subnet 203.0.113.0 netmask 255.255.255.0 {
        }
        注記

        サーバーがこのサブネットに DHCP サービスを提供しない場合は、以下の例のように、subnet 宣言を空にする必要があります。直接接続したサブネットの宣言がないと、dhcpd は起動しません。

    2. 必要に応じて、システムの起動時に dhcpd が自動的に起動するように設定します。

      # systemctl enable dhcpd
    3. dhcpd サービスを開始します。

      # systemctl start dhcpd
  • IPv6 ネットワークの場合

    1. /etc/dhcp/dhcpd6.conf ファイルを編集します。

      1. その他のディレクティブにこの設定がない場合は、dhcpd が使用するグローバルパラメーターをデフォルトとして追加します。

        option dhcp6.domain-search "example.com";
        default-lease-time 86400;

        この例では、接続のデフォルトのドメイン名を example.com に設定し、デフォルトのリース時間を 86400 秒 (1 日) に設定します。

      2. authoritative ステートメントを新しい行に追加します。

        authoritative;
        重要

        authoritative ステートメントがない場合、dhcpd サービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAKDHCPREQUEST メッセージに応答することはありません。

      3. 以下のように、サーバーのインターフェースに直接接続していない IPv6 サブネットに、shared-network 宣言を追加します。

        shared-network example {
          option domain-name-servers 2001:db8:0:1::1:1
          ...
        
          subnet6 2001:db8:0:1::1:0/120 {
            range6 2001:db8:0:1::1:20 2001:db8:0:1::1:100
          }
        
          subnet6 2001:db8:0:1::2:0/120 {
            range6 2001:db8:0:1::2:20 2001:db8:0:1::2:100
          }
          ...
        }

        この例では、2001:db8:0:1::1:0/120 と 2001:db8:0:1::2:0/120 の両方のネットワークの subnet6 宣言を含む共有ネットワーク宣言を追加します。この設定では、DHCP サーバーは以下の設定を、このサブネットのいずれかから DHCP 要求を送信するクライアントに割り当てます。

        • 両方のサブネットからのクライアントに対する DNS サーバーの IP は 2001:db8:0:1::1:1 です。
        • クライアントがどのサブネットから要求を送信したかに応じて、range6 パラメーターで定義された範囲の 空き IPv6 アドレスです。

          IPv6 では、デフォルトのゲートウェイを特定するために、ルーター広告メッセージを使用する必要があることに注意してください。

      4. サーバーが直接接続され、上記の shared-network で指定したリモートサブネットに到達するのに使用されるサブネットの subnet6 宣言を追加します。

        subnet6 2001:db8:0:1::50:0/120 {
        }
        注記

        サーバーがこのサブネットに DHCP サービスを提供しない場合、subnet6 宣言は以下の例のように空にする必要があります。直接接続したサブネットの宣言がないと、dhcpd は起動しません。

    2. 必要に応じて、システムの起動時に dhcpd6 が自動的に開始するように設定します。

      # systemctl enable dhcpd6
    3. dhcpd6 サービスを起動します。

      # systemctl start dhcpd6

関連情報

  • /etc/dhcp/dhcpd.conf および /etc/dhcp/dhcpd6.conf で設定したパラメーターの一覧は、man ページの dhcp-options(5) を参照してください。
  • authoritative ステートメントの詳細は、man ページの dhcpd.conf(5)The authoritative statement のセクションを参照してください。
  • 設定例は、/usr/share/doc/dhcp-server/dhcpd.conf.example ファイルおよび /usr/share/doc/dhcp-server/dhcpd6.conf.example ファイルを参照してください。
  • 詳細は、「 DHCP リレーエージェントの設定」を参照してください。