10.4. マルチホーム DHCP サーバーの設定
DHCP サーバーは、複数のネットワーク、すなわち複数のサブネットとして機能します。以下のセクションにあげる例では、DHCP サーバーが複数のネットワークで機能するように設定する方法、リッスンするネットワークインターフェースを選択する方法、ネットワークを移動するシステム用にネットワーク設定を定義する方法について詳述しています。
/etc/dhcp/dhcpd.conf ファイルのバックアップを作成してください。
DHCP デーモンは、/etc/dhcp/dhcpd.conf ファイル内でサブネット宣言されているインターフェースでのみリッスンします。
10.0.0.0/24 ネットワークの eth0 と 172.16.0.0/24 ネットワークの eth1 という 2 つのネットワークインターフェースを持つサーバー用の基本的な /etc/dhcp/dhcpd.conf ファイルです。複数の subnet 宣言により、複数のネットワークに対して異なる設定を定義することができます。
default-lease-time 600;
max-lease-time 7200;
subnet 10.0.0.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 10.0.0.1;
range 10.0.0.5 10.0.0.15;
}
subnet 172.16.0.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 172.16.0.1;
range 172.16.0.5 172.16.0.15;
}subnet 10.0.0.0 netmask 255.255.255.0;subnet宣言は、DHCPサーバーが機能するすべてのネットワークで必要です。複数のサブネットには、複数のsubnet宣言が必要です。subnet宣言の範囲内にDHCPサーバーのネットワークインターフェースがない場合は、DHCPサーバーはそのネットワークでは機能しません。subnet宣言が 1 つしかなく、かつそのサブネットの範囲内にネットワークインターフェースがない場合には、DHCPデーモンは起動に失敗し、以下のようなエラーが/var/log/messagesに記録されます。dhcpd: No subnet declaration for eth0 (0.0.0.0). dhcpd: ** Ignoring requests on eth0. If this is not what dhcpd: you want, please write a subnet declaration dhcpd: in your dhcpd.conf file for the network segment dhcpd: to which interface eth1 is attached. ** dhcpd: dhcpd: dhcpd: Not configured to listen on any interfaces!
option subnet-mask 255.255.255.0;option subnet-maskオプションは、サブネットマスクを定義し、subnet宣言内のnetmask値を上書きします。簡単なケースでは、サブネットとネットマスクの値は同じです。option routers 10.0.0.1;option routersオプションは、サブネット用のデフォルトゲートウェイを定義します。これは、システムが異なるサブネット上の内部ネットワーク、さらには外部ネットワークに届くために必要です。range 10.0.0.5 10.0.0.15;rangeオプションは、利用可能なIPアドレスのプールを指定します。指定されたIPアドレスの範囲の中からアドレスがシステムに割り当てられます。
dhcpd.conf(5) man ページを参照してください。
警告
10.4.1. ホストの設定
/etc/sysconfig/dhcpd および /etc/dhcp/dhcpd.conf ファイルのバックアップを作成してください。
以下の /etc/dhcp/dhcpd.conf の例では、2 つのサブネットを作成し、接続するネットワークに応じて IP アドレスを同じシステム用に設定しています。
default-lease-time 600;
max-lease-time 7200;
subnet 10.0.0.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 10.0.0.1;
range 10.0.0.5 10.0.0.15;
}
subnet 172.16.0.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 172.16.0.1;
range 172.16.0.5 172.16.0.15;
}
host example0 {
hardware ethernet 00:1A:6B:6A:2E:0B;
fixed-address 10.0.0.20;
}
host example1 {
hardware ethernet 00:1A:6B:6A:2E:0B;
fixed-address 172.16.0.20;
}host example0host宣言は、単一のシステム用にIPアドレスなどの特定のパラメーターを定義します。複数のホスト用に特定のパラメーターを設定するには、複数のhost宣言を使用します。大半のDHCPクライアントはhost宣言内の名前を無視するため、他のhost宣言に対して一意である限りはどのような名前でも構いません。同じシステムを複数のネットワークに対して設定するには、各host宣言に異なる名前を使用します。異なる名前を使用しないと、DHCPデーモンは起動に失敗します。システムはhost宣言内の名前ではなく、hardware ethernetオプションで識別されます。hardware ethernet 00:1A:6B:6A:2E:0B;hardware ethernetオプションは、システムを識別します。アドレスを確認するには、ip linkコマンドを実行します。fixed-address 10.0.0.20;fixed-addressオプションは、hardware ethernetオプションで指定されたシステムに有効なIPアドレスを割り当てます。このアドレスは、rangeオプションで指定されたIPアドレスプール外でなければなりません。
option ステートメントの最後にセミコロンがない場合、DHCP デーモンは起動に失敗し、以下のようなエラーが /var/log/messages に記録されます。
/etc/dhcp/dhcpd.conf line 20: semicolon expected. dhcpd: } dhcpd: ^ dhcpd: /etc/dhcp/dhcpd.conf line 38: unexpected end of file dhcpd: dhcpd: ^ dhcpd: Configuration file errors encountered -- exiting
以下の host 宣言は複数のネットワークインターフェースを持つ単一のシステムを設定するため、各インターフェースは同一の IP アドレスを受け取ります。両方のネットワークインターフェースが同じネットワークに同時に接続されている場合には、この設定は機能しません。
host interface0 {
hardware ethernet 00:1a:6b:6a:2e:0b;
fixed-address 10.0.0.18;
}
host interface1 {
hardware ethernet 00:1A:6B:6A:27:3A;
fixed-address 10.0.0.18;
}interface0 が最初のネットワークインターフェースで、interface1 が 2 番目のインターフェースになります。異なる hardware ethernet オプションが各インターフェースを識別します。
host 宣言をさらに追加します。ただし、以下の点に注意して下さい。
- ホストが接続されるネットワーク用の有効な
fixed-addressを割り当てます。 host宣言の名前は一意にします。
host 宣言で指定した名前が一意でない場合、DHCP デーモンは起動に失敗し、以下のようなエラーが /var/log/messages に記録されます。
dhcpd: /etc/dhcp/dhcpd.conf line 31: host interface0: already exists dhcpd: } dhcpd: ^ dhcpd: Configuration file errors encountered -- exiting
/etc/dhcp/dhcpd.conf に定義された host interface0 宣言が複数あるために生じたものです。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.