dhcpd の動作を制御する dhcpd.conf は様々なステートメント(宣言文、パラメータ、オプション)で構成される。 ステートメントの記述に関する書式は次のように決められている。
- 自由形式の ASCII テキストファイルであり、キーワードの大文字小文字は区別されない。
- テキストは宣言文、パラメータ、オプションから成り、上から下へ解釈される。
- 宣言文
ネットワークの形態や個々のクライアントを指定する。 また複数のパラメータをグループ化する(一つにまとめる)のに用いる。
- パラメータ
クライアントに対するサーバーの動作や条件を記述する。
- オプション
パラメータの一種で、クライアントに付与する様々なデータを設定する。 オプション名とオプションデータで構成される。
- ステートメントの末尾にはセミコロン( ; )を記述する。
- ある宣言文が依存するパラメータ文は、その宣言文より前に存在しなければならない。
- 大括弧{ }内のステートメント(宣言文、パラメータ、オプション)は該当カッコ内のみで有効であり、大括弧外のステートメントの有効範囲は文書全体(再設定された場合は別)である。
- サービスを受けるサブネットや、dhcp サーバーが接続するサブネットには、すべて subnet 宣言が必要。
- 一つの物理的なネットワーク上で2つ以上のサブネットが存在する場合は、それぞれの subnet 宣言を shared-network 宣言で囲う。
- コメントはファイルのどこにでも記述可能(クォートの内部を除く)で、次の記号(形式)がコメントと解釈される。
- # から行末まで
- // から行末まで
- /* と */ に挟まれた区間
dhcpd.conf で使われる主な宣言文は次の通り。
DHCP 処理を行ったクライアント情報(IP アドレス・ホスト名等)の、( DNS サーバーが管理する)ゾーンデータ更新スタイルを指定する。
ddns-update-style style;
- この宣言文は必須である。
- style には次の値を指定する。
- interim
dhcpd は DHCP 処理を行った際、DNS サーバーへゾーンデータ更新要求( A / TXT / PTR レコードの登録・削除)を送信する。
ゾーンデータ更新を実施するには DNS サーバーの指定と DNS サーバー側の対応が必要である。 (詳細は『DynamicDNSの設定』参照)
- none
ゾーンデータの更新を行わない。( DNS サーバーへ更新要求を送信しない)
- ad-hoc
dhcpd の旧バージョンとの互換性が必要な場合に使用する。
ad-hoc でも DNS の更新は実行されるが、互換性を必要としない場合は interim を使用する。
クライアントの DHCP 要求パケット内のホスト名が FQDN 形式だった場合に、DNS サーバー更新動作におけるドメイン名の扱いを指定する。
ignore|allow client-updates;
- ignore (ドメイン名無視)、と allow (ドメイン名有効)の違いは次の通り。
- ignore client-updates
FQDN からホスト名のみを抜き出し、自ドメインのネーム サーバーに DNS 更新要求を送る。 ( FQDN が他ドメインであっても自ドメインとして処理する)
- allow client-updates
FQDN からドメイン名を識別し、該当ドメインのネーム サーバーに DNS 更新要求を送る。
- 本設定は ddns-update-style が "none" の場合は意味がなくなる。
一つの物理的なネットワークに複数の IP サブネットが共存している場合、
それらのサブネットをまとめて1つの共有ネットワークを構成する。
shared-network name {
[ パラメータ .... ]
[ 宣言文 .... ]
}
- name には共有ネットワークの名称( dhcpd の動作に影響はない。 デバッグ メッセージの出力に用いられる)を指定する。
- 共有ネットワーク内にあるサブネット(subnet)は shared-network 文の内部で宣言する。
- 共有ネットワークに属するサブネットに動的割り当て可能なアドレスがあると、これらのアドレスは共有ネットワーク用の場所にプールされ、必要に応じてクライアントに提供される。
- 動的割り当てされる特定のクライアントを、どのサブネットからブートさせるかを識別する方法はない。
特定 (範囲) の IP アドレスが所属しているサブネットを宣言する。
subnet subnet-number netmask mask-number {
[ パラメータ .... ]
[ 宣言文 .... ]
}
- サブネット固有の各種パラメータは、その内部で指定する。
- subnet-number
IP アドレスか、解決可能なドメイン名を指定する。
- mask-number
サブネット マスク値を指定する。 すべての subnet に必須だが、サブネット マスクに複数の種類がある場合は、subnet-mask オプションを subnet 宣言内部で用いることも可能。
- subnet で設定する subnet-number は ehternet カードに設定した IP アドレスと同じネットワークでなければならない。
ただし、共有ネットワークの場合は、いずれか一つの subnet が ethernet カードと同一ネットワークであればよい。
動的に割り当てる IP アドレスの範囲を設定する。
range [dynamic-bootp] low-address [high-address];
- low-address
割り当てアドレス範囲の最小値を設定する。
- high-address
割り当てアドレス範囲の最大値を設定する。
- 割り当てアドレス範囲は、subnet で設定したネットワークの範囲を超えてはならない。
- 動的割り当ての IP アドレスが1つだけの場合は、high-address は省略できる。
- アドレス割り当てを DHCP クライアントと BOOTP クライアントの両方に割り当てる場合は、dynamic-bootp フラグを指定する。
DHCP クライアントを個別に識別して設定する場合、および BOOTP クライアントが存在する場合に設定する。
host hostname {
[ パラメータ .... ]
[ 宣言文 .... ]
}
- サービス対象となる BOOTP クライアントには、それぞれ host が必要。
- 個別割り当てをしない DHCP クライアントには不要。
- クライアントごとに固有のパラメータを設定する場合は、hardwere パラメータを用いてクライアントを識別し、fixed-address パラメータ等で固有パラメータを設定する。
サブネット、共有ネットワーク、ホスト等を1つのグループとしてまとめる。
group {
[ パラメータ .... ]
[ 宣言文 .... ]
}
dhcpd.conf で使われる主なパラメータは次の通り。
default-lease-time time;
- time
クライアントに通知する各種設定値(アドレス等)の、デフォルトの貸し出し時間を秒単位で指定する。
max-lease-time time;
- time
クライアントが特に期限を求めた場合の貸し出し時間を、秒単位で指定する。
hardware type address;
- クライアントを識別するためのネットワーク インターフェースを指定する。
- type
下記どちらかのハードウェア タイプを指定する。
ethernet, token-ring
- address
MACアドレスを指定する。 複数設定する場合の区切りにはコロンを使う。
fixed-address address [,address …];
- あるクライアントに対して一つまたは複数の IP アドレスを割り当てる。
- host 宣言内部でのみ用いられる。
- オプションの書式はキーワード option で開始し、単一のオプション名の後にオプション データが続く。
- オプションは、クライアントに必要なオプションのみを記述する。
- 表記中の ip-address には、明示的な IP アドレスまたはドメイン名を指定する。
- ドメイン名を指定する場合、そのドメイン名を解決すると単一の IP アドレスとなる必要がある。
option subnet-mask mask-number;
- クライアントのサブネット マスクを指定する。
- スコープ中のどこにもサブネット マスクの指定がないと、dhcpd はサブネット宣言のサブネット マスクを使用する。
option time-offset seconds;
- UTC (協定世界時: GMT とほぼ同じ)を基点として、クライアントのサブネットのオフセット値を秒で指定する。
option broadcast-address ip-address;
- クライアントのサブネットで使用されているブロードキャスト アドレスを指定する。
option domain-name DomainName;
- ドメイン ネーム システムを使用してホスト名を解決するときに、クライアントが使用すべきドメイン名を指定する。
- この値は、ipconfig の Connection-specific DNS Suffix として設定される。
option domain-name-servers ip-address [,ip-address …];
- クライアントが利用可能な DNS サーバーの IP アドレス リストを指定する。
- サーバーは、優先されるものから順にリストする。
- この値は、ipconfig の DNS Servers として設定される。
option routers ip-address [,ip-address …];
- クライアントのサブネット上にあるルータの IP アドレスのリストを指定する。
- ルータは、優先されるものから順にリストする。
- この値は、ipconfig の Default Gateway として設定される。
option netbios-name-servers ip-address [,ip-address …];
- NetBIOS Name Service( WINS )サーバーの IP アドレスのリストを指定する。
- サーバーは、優先されるものから順にリストする。
option netbios-node-type type;
- クライアントが NBT( NetBIOS over TCP/IP )環境での名前解決を行う方法の優先順位を数値で指定する。
- 使用可能なノードタイプは次の通り。
- 1 Bノード : ブロードキャスト(WINSなし)
- 2 Pノード : ピア(WINSのみ)
- 4 Mノード : ミックス(ブロードキャスト後にWINS)
- 8 Hノード : ハイブリッド(WINS後にブロードキャスト)
option ntp-servers ip-address [,ip-address …];
- クライアントが利用可能な NTP サーバーの IP アドレスのリストを指定する。
- サーバーは、優先されるものから順にリストする。
option arp-chache-timeout seconds;
- ARP キャッシュ エントリのタイムアウト値を秒単位で指定する。