13.4. マルチホーム DHCP サーバーの設定
/etc/sysconfig/dhcpd 及び /etc/dhcp/dhcpd.conf ファイルをバックアップしておいて下さい。
/etc/sysconfig/dhcpd ファイルを使用して、DHCP デーモンが待機するネットワークインターフェースを指定して下さい。以下の /etc/sysconfig/dhcpd の例では、DHCP デーモンが eth0 及び eth1 のインターフェースで待機するよう指定しています:
DHCPDARGS="eth0 eth1";
eth0、eth1、eth2 の 3 つのネットワークインターフェースカードがあるが、DHCP デーモンを eth0 カードでのみ待機させたい場合は、/etc/sysconfig/dhcpd で eth0 のみを指定します。
DHCPDARGS="eth0";
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 ページを参照して下さい。
警告
/etc/dhcp/dhcpd.conf で指定されている唯一のサブネット内で唯一のインターフェースである場合は、DHCP デーモンは起動に失敗します。
13.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 が第 1 のネットワークインターフェースで、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.