14.3. 設定ファイル(/etc/dhcpd.conf)の編集

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"
}

各パラメータの意味は以下の通りです。

default-lease-time time

DHCP クライアントからの要求に IP アドレスのリース時間が指定されていない場合は、default-lease-time の値が標準のリース時間として使用されます。単位は秒です。

max-lease-time time

DHCP クライアントの中には、IP アドレスのリース時間を指定できるものがあります。クライアントがリース時間を指定した場合、指定した時間が max-lease-time の値よりも小さければ、クライアントが指定した時間がリース時間になりますが、もし、max-lease-time の値よりも大きいリース時間を要求した場合、max-lease-time の値がリース時間として指定されます。単位は秒です。

ddns-update-style style

Dynamic update DNS(DDNS) への自動登録機能の形式を指定します。自動設定を行なう場合は interim を記述し、ISC DHCP と BIND それぞれに設定が必要となります。本ガイドでは、DDNS の設定方法については触れません。DDNS を使用しない場合にも ad-hoc を指定しておく必要があります。

subnet subnet-address netmask subnet-mask {...}

ネットワーク情報をリースする対象となるネットワークアドレスを subnet-address にサブネットマスクを subnet-mask に指定します。続く { と } で囲まれた範囲に記述されたパラメータが、このサブネットに適用されます。

option broadcast-address ipaddress

ブロードキャストアドレスを指定します。

option subnet-mask ipaddress

サブネットマスクを指定します。

option routers ipaddress [,ipaddress...]

デフォルトゲートウェイの IP アドレスを指定します。

option domain-name text

クライアントがホストの名前解決で使用するドメイン名を指定します。/etc/resolv.conf の search 行に相当します。ドメイン名を指定するときには必ず、"" で囲む必要があります。

option domain-name-servers ipaddress [,ipaddress...]

DNS サーバーの IP アドレスを指定します。複数存在する場合はカンマで区切ります。

option netbios-name-servers ipaddress [,ipaddress...]

Windows クライアントのために WINS サーバーを指定したいのであれば、このパラメータに WINS サーバーの IP アドレスを指定します。

range low-address [ high-address]

リースする IP アドレスの範囲を指定します。始点(low-address)と終点(high-address)をスペースで区切り指定します。

host hostname {...}

host 宣言文の中で hardware ethernet パラメータと fixed-address パラメータを使用すると、ネットワークカードの MAC アドレスをもとに IP アドレスを割り当てることができます。この例では、host 宣言文で celica というホストに対する設定であることを定義し、続く { と } で囲まれた範囲に、MAC アドレス 00:50:DA:92:76:22 を持つネットワークカードが常に IP アドレス 192.168.0.201 を受け取るように指定しています。また、host-name オプションを使用すると、クライアントにホスト名を割り当てることができます。