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