Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

16.4. マルチホーム DHCP サーバーの設定

マルチホームの DHCP サーバーでは、複数のネットワーク(つまり複数のサブネット)が提供されます。本セクションでは、DHCP サーバーを設定して複数のネットワークを提供する方法、リッスンするネットワークインターフェースを選択する方法、およびネットワークを移動するシステムのネットワーク設定を定義する方法を説明します。
変更を行う前に、既存の /etc/sysconfig/dhcpd および /etc/dhcp/dhcpd.conf ファイルのバックアップを作成してください。
DHCP デーモンは、特に指定しない限り、すべてのネットワークインターフェースでリッスンします。/etc/sysconfig/dhcpd ファイルを使用して、DHCP デーモンがリッスンするネットワークインターフェースを指定します。以下の /etc/sysconfig/dhcpd 例は、DHCP デーモンが eth0 インターフェースおよび eth1 インターフェースをリッスンするように指定します。
DHCPDARGS="eth0 eth1";
システムにネットワークインターフェースカード eth0eth1、および eth2 があり、DHCP デーモンが eth0 カードでリッスンすることのみが必要で、/etc/sysconfig/dhcpdeth0 のみを指定する必要があります。
DHCPDARGS="eth0";
以下は、2 つのネットワークインターフェースを持つサーバーの場合、10.0.0.0/24 ネットワークに eth0 と 172.16.0.0/24 ネットワークの eth1 を持つサーバーの基本的な /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;
DHCP サーバーが提供するすべてのネットワークに subnet 宣言が必要です。複数のサブネットには、複数の subnet 宣言が必要です。DHCP サーバーに subnet 宣言の範囲にネットワークインターフェースがない場合、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 ページを参照してください。

16.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 example0
host 宣言は、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 宣言では、複数のネットワークインターフェースを持つ 1 つのシステムを設定し、各インターフェースが同じ 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 宣言が定義されているために生じました。