3.9. DHCP サーバーに直接接続していないサブネット用の DHCP サービスの設定
DHCP サーバーが、DHCP 要求に応答するサブネットに直接接続していない場合は、以下の手順に従います。これは、DHCP リレーエージェントが DHCP サーバーに要求を転送する場合を指します。DHCP サーバーのインターフェイスが、サーバーが提供するサブネットに直接接続していないためです。
IPv4、IPv6、またはその両方のプロトコルに DHCP を提供するかどうかに応じて、以下の手順を参照してください。
前提条件
-
rootユーザーとしてログインしている。 -
dhcp-serverパッケージがインストールされている。
手順
IPv4 ネットワークの場合:
/etc/dhcp/dhcpd.confファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpdが使用するグローバルパラメーターをデフォルトとして追加します。option domain-name "example.com"; default-lease-time 86400;この例では、接続のデフォルトのドメイン名を
example.comに設定し、デフォルトのリース時間を86400秒 (1 日) に設定します。authoritativeステートメントを新しい行に追加します。authoritative;重要authoritativeステートメントがない場合、dhcpdサービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAKでDHCPREQUESTメッセージに応答することはありません。以下のように、サーバーのインターフェイスに直接接続していない 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のいずれかになります。
-
両方のサブネットにおけるクライアントの DNS サーバーの IP は
サーバーが直接接続し、上記の
shared-networkで指定したリモートのサブネットに到達するのに使用されるサブネットのsubnet宣言を追加します。subnet 203.0.113.0 netmask 255.255.255.0 { }注記サーバーがこのサブネットに DHCP サービスを提供しない場合は、以下の例のように、
subnet宣言を空にする必要があります。直接接続したサブネットの宣言がないと、dhcpdは起動しません。
必要に応じて、システムの起動時に
dhcpdが自動的に起動するように設定します。# systemctl enable dhcpddhcpdサービスを開始します。# systemctl start dhcpd
IPv6 ネットワークの場合:
/etc/dhcp/dhcpd6.confファイルを編集します。その他のディレクティブにこの設定がない場合は、
dhcpdが使用するグローバルパラメーターをデフォルトとして追加します。option dhcp6.domain-search "example.com"; default-lease-time 86400;この例では、接続のデフォルトのドメイン名を
example.comに設定し、デフォルトのリース時間を86400秒 (1 日) に設定します。authoritativeステートメントを新しい行に追加します。authoritative;重要authoritativeステートメントがない場合、dhcpdサービスは、クライアントがプール外にあるアドレスを要求する場合に、DHCPNAKでDHCPREQUESTメッセージに応答することはありません。以下のように、サーバーのインターフェイスに直接接続していない 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 では、デフォルトのゲートウェイを特定するために、ルーター広告メッセージを使用する必要があることに注意してください。
-
両方のサブネットからのクライアントに対する DNS サーバーの IP は
サーバーが直接接続され、上記の
shared-networkで指定したリモートサブネットに到達するのに使用されるサブネットのsubnet6宣言を追加します。subnet6 2001:db8:0:1::50:0/120 { }注記サーバーがこのサブネットに DHCP サービスを提供しない場合、
subnet6宣言は以下の例のように空にする必要があります。直接接続したサブネットの宣言がないと、dhcpdは起動しません。
必要に応じて、システムの起動時に
dhcpd6が自動的に開始するように設定します。# systemctl enable dhcpd6dhcpd6サービスを起動します。# systemctl start dhcpd6