DHCP サーバーの設定ファイルは、/etc/dhcpd.conf です。標準で /etc/dhcpd.conf は存在しませんので、使用するネットワーク環境にあわせて新規に作成する必要があります。
![]() | /etc/dhcpd.conf のサンプルファイルである /etc/dhcpd.conf.sample がインストールされますので、このファイルをコピーして利用することも可能です。 |
/etc/dhcpd.conf ファイルの書式を以下に示します。
global parameters...
shared-network network-name {
shared-network-specific parameters...
subnet subnet-address netmask subnet-mask {
subnet-specific parameters...
}
subnet subnet-address netmask subnet-mask {
subnet-specific parameters...
}
...
}
... |
/etc/dhcpd.conf の書式は C 言語に類似しています。1 つのステートメントに対して、パラメータもしくはサブステートメントを記述します。パラメータが数行にわたる場合は {...} で囲みます。{...} で囲まれた部分が、そのステートメントの適用される範囲です。また、どの {...} にも囲まれていないパラメータは、設定全般に適用されることになります。これをグローバルパラメータと言います。1 つのステートメントが終了したら、最後に必ず ; を記述します。また、 /*...*/ (C言語形式)、//...(C++言語形式)、#...(スクリプト形式)はいずれもコメントと見なされます。
書式を参照すると分かるように、/etc/dhcpd.conf の先頭にはグローバルなパラメータを記述し、その後は、複数の subnet 文とそれをまとめる shared-network 文の繰り返しです。subnet 文は、DHCP サーバーとして動作させるためには最小限必要な宣言で、クライアントにリースする IP アドレスなどのパラメータを指定します。shared-network 文には、複数の subnet 文を含めることができ、shared-network で設定したパラメータは、subnet 文で指定するパラメータのデフォルト値になります。もし、global parameters... や shared-network-specific parameters... で指定されているパラメータを subnet-specific parameters... で指定すれば、デフォルトのパラメータは上書きされます。また、shared-network 文に指定する network-name には、任意の名前を付けることができます。これは、ログファイルの出力で利用されます。
ここでは、以下の条件で動作する極めて単純な DHCP サーバーの設定例を解説します。
表 14-2. /etc/dhcpd.conf の設定例
| ネットワーク情報 | 設定値 |
|---|---|
| ネットワークアドレス | 192.168.0.0 |
| ネットマスク | 255.255.255.0 |
| ブロードキャストアドレス | 192.168.0.255 |
| ゲートウェイアドレス | 192.168.0.1 |
| ドメイン名 | turbolinux.co.jp |
| DNS サーバーの IP アドレス | 192.168.0.3、192.168.0.4 |
| WINS サーバーの IP アドレス | 192.168.0.3 |
| リースする IP アドレスの範囲 | 192.168.0.100 - 192.168.0.200 |
| MAC アドレスをもとに割り当てる IP アドレス | 192.168.0.201 |
| リースする標準時間 | 21600 秒(6 時間) |
| リースする最大時間 | 43200 秒(12 時間) |
上記条件をもとに記述した /etc/dhcpd.conf の設定例を以下に示します。
default-lease-time 21600;
max-lease-time 43200;
ddns-update-style ad-hoc;
subnet 192.168.0.0 netmask 255.255.255.0 {
option broadcast-address 192.168.0.255;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option domain-name "turbolinux.co.jp";
option domain-name-servers 192.168.0.3, 192.168.0.4;
option netbios-name-servers 192.168.0.3;
range 192.168.0.100 192.168.0.200;
}
host celica {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.201;
option host-name "celica"
} |
各パラメータの意味は以下の通りです。
DHCP クライアントからの要求に IP アドレスのリース時間が指定されていない場合は、default-lease-time の値が標準のリース時間として使用されます。単位は秒です。
DHCP クライアントの中には、IP アドレスのリース時間を指定できるものがあります。クライアントがリース時間を指定した場合、指定した時間が max-lease-time の値よりも小さければ、クライアントが指定した時間がリース時間になりますが、もし、max-lease-time の値よりも大きいリース時間を要求した場合、max-lease-time の値がリース時間として指定されます。単位は秒です。
Dynamic update DNS(DDNS) への自動登録機能の形式を指定します。自動設定を行なう場合は interim を記述し、ISC DHCP と BIND それぞれに設定が必要となります。本ガイドでは、DDNS の設定方法については触れません。DDNS を使用しない場合にも ad-hoc を指定しておく必要があります。
ネットワーク情報をリースする対象となるネットワークアドレスを subnet-address にサブネットマスクを subnet-mask に指定します。続く { と } で囲まれた範囲に記述されたパラメータが、このサブネットに適用されます。
ブロードキャストアドレスを指定します。
サブネットマスクを指定します。
デフォルトゲートウェイの IP アドレスを指定します。
クライアントがホストの名前解決で使用するドメイン名を指定します。/etc/resolv.conf の search 行に相当します。ドメイン名を指定するときには必ず、"" で囲む必要があります。
DNS サーバーの IP アドレスを指定します。複数存在する場合はカンマで区切ります。
Windows クライアントのために WINS サーバーを指定したいのであれば、このパラメータに WINS サーバーの IP アドレスを指定します。
リースする IP アドレスの範囲を指定します。始点(low-address)と終点(high-address)をスペースで区切り指定します。
host 宣言文の中で hardware ethernet パラメータと fixed-address パラメータを使用すると、ネットワークカードの MAC アドレスをもとに IP アドレスを割り当てることができます。この例では、host 宣言文で celica というホストに対する設定であることを定義し、続く { と } で囲まれた範囲に、MAC アドレス 00:50:DA:92:76:22 を持つネットワークカードが常に IP アドレス 192.168.0.201 を受け取るように指定しています。また、host-name オプションを使用すると、クライアントにホスト名を割り当てることができます。