Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all
名前
dhcpd - Dynamic Host Configuration Protocol (動的ホスト設定プロトコル) サーバ
書式
dhcpd [ -p port ] [ -f ] [ -d ] [ -q ] [ -cf config-file ] [ -lf lease-file ] [ if0 [ ...ifN ] ]
説明
Internet Software Consortium DHCP サーバである dhcpd は、 Dynamic Host Configuration Protocol (DHCP) と Internet Bootstrap Protocol (BOOTP) とを実装したものである。 DHCP を用 いると、 TCP/IP ネットワーク上のホストは IP アドレスを要求して割り当ててもらうことができ、 また接続したネットワークの情報を取得できます。 BOOTP も同様の機能を持っていますが、少々制 限があります。
動作
DHCP プロトコルは、ネットワーク管理者が知らないホストに対して、 予めそのネットワークで用意 された IP アドレスの範囲 (pool) から、 自動的に新しい IP アドレスを割り当てます。 この機構 を動作させるには、 ネットワーク管理者はアドレスの範囲を各サブネットごとに割り当てておき、 それを dhcpd.conf(5) に書いておかなければなりません。 dhcpd は起動すると dhcpd.conf ファイルを読み、 各サブネットごとに利用できるアドレスのリス トをメモリに保存します。 クライアントが DHCP プロトコルを用いてアドレスを要求すると、 dhcpd はそのクライアントにアドレスを割り当てます。 各クライアントに貸し出されたアドレス は、 管理者が決めておいたある期間が経過すると期限切れになります (デフォルトでは 1 日)。 貸 し出しを受けたクライアントは、 そのアドレスの利用を継続するために、 貸し出しが期限切れにな る前に更新を行うことになります。 貸し出しが期限切れになると、 その貸し出しアドレスを割り当 てられていたクライアントは、 もうそれ以上貸し出されていた IP アドレスを利用できなくなりま す。 システムやサーバが再起動した場合に貸し出し情報を保持しておくために、 dhcpd は割り当てた貸 し出しの記録を dhcpd.leases(5) ファイルに保持しています。dhcpd はホストに貸し出しを行う前 に、 その貸出記録をこのファイルに記録し、 ファイルの内容を確実にディスクにフラッシュしま す。 これによって、システムがクラッシュした場合でも、 dhcpd は割り当てた貸し出しのことを確 実に覚えておけます。 dhcpd は、起動して dhcpd.conf ファイルを読んだあと、 dhcpd.leases ファイルを読んで、現在の貸し出し情報をメモリに書き込みます。 新たな貸出記録は dhcpd.leases ファイルの末尾に追加されます。 dhcpd は、貸し出しデータベー スが際限なく大きくなるのを防ぐため、 時々内部に持っている貸し出しデータベースから新しい dhcpd.leases ファイルを生成します。 このファイルがディスクに書き込まれると、古いファイルは dhcpd.leases~ と名前が変更され、新しいファイルが dhcpd.leases になります。 システムがこの 処理の途中でクラッシュしても、 いずれかの dhcpd.leases ファイルが残っていて、 そこにはすべ ての貸し出し情報が残っているはずです。 従って特殊なクラッシュリカバリ処理は必要ありませ ん。 このサーバは BOOTP もサポートしています。 DHCP とは異なり、 BOOTP プロトコルは動的に割り当 てられたアドレスが不要になったとき、 それを復帰させるプロトコルが存在しません。 BOOTP クラ イアントに動的にアドレスを割り当てることは可能ですが、 アドレスを回収して再割り当て可能に するような管理処理が必要になります。 デフォルトでは、BOOTP クライアントへの貸し出しは永続 的なものですが、 ネットワーク管理者は (それが意味があれば) 中断をより早くしたり、貸し出し 期間を短くできます。 BOOTP クライアントに、古い標準的な方法でアドレスを取得させることもできます。 これには dhcpd.conf ファイルに各 BOOTP クライアント用の宣言を書いて、 各クライアントへ永続的にアド レスを割り当てます。 dhcpd.conf ファイルに変更を行ったときは、 dhcpd は再起動しなければなりません。 これには SIGTERM (シグナル 15) を /var/run/dhcpd.pid に保存されているプロセス ID に送り、dhcpd を再 び起動します。 DHCP サーバのデータベースは BOOTP のデータベースほど軽量ではないので、 dhcpd は dhcpd.conf ファイルが変更されたことを知っても、 自動的に自分自身を再起動すること はありません。 注意: これにはたくさん文句が来ています。 サーバに SIGHUP を送るとデータベースをリロードし てくれれば良いだろうな、 とは我々も認識しています。これは技術的には不可能ではありません が、 非常に多くの作業を必要とします。 我々のリソースは非常に限られており、 それらは他のと ころに振り向けられています。 どうかメーリングリストに文句をいうのはご遠慮ください。 この機 能を実装するプロジェクトへの資金を提供してくださるとか、 あなた自身が実装してくださるのな らもちろん話は別ですが。
コマンドライン
dhcpd がブロードキャストを待ち受けるネットワークインターフェースの名前は、 コマンドライン で指定できます。 ブロードキャストでないインターフェースを dhcpd 自身が特定できないような状 況下ではこれを行うべきですが、 そうでなければ指定しなくてもかまいません。 インターフェース の名前がコマンドラインにひとつも指定されなければ、 dhcpd はすべてのネットワークインター フェースが通信状態にあるとみなし、 可能ならブロードキャストでないインターフェースを対象か ら外し、 各インターフェースで DHCP ブロードキャストを待ち受けます。 dhcpd に標準のポート (ポート 67) 以外で待機させたい場合は -p フラグで指定できます。この後 には dhcpd を待機させる udp のポート番号を書きます。これはデバッグの用途に特に便利です。 -p フラグが指定されると、サーバは指定した番号よりも 1 つ大きなポート番号を用いてクライアン トに返事を送ります。 つまり -p 67 を指定した場合は、サーバはポート 67 を聴き、ポート 68 に 返事を送ります。 中継エージェントを経由しなければならないデータグラムは -p フラグで指定し たポートに送信されます。 もし別のポートを使いたい場合は、中継エージェントを設定して、 同じ く別のポートを使わせるようにしなければなりません。 dhcpd をバックグラウンドでデーモンとして動作させるのではなく、 フォアグラウンドプロセスと して実行するには -f フラグを指定します。これは dhcpd をデバッガの下で動作させたり、 System V システムの inittab 以外から動作させる場合に便利です。 dhcpd のログを標準エラー出力に出したい場合は、 -d フラグを指定します。これはデバッグの時に 便利かもしれません。 また dhcp の動作記録を完全に記録しておきたいが、 syslogd が信頼できな かったり使えないような場合にも便利でしょう。 通常 dhcpd は、すべてのログ出力を syslog(3) 機能を用いて出力します。facility は LOG_DAEMON に設定されます。 dhcpd に標準以外の設定ファイルを読み込ませるには -cf フラグを用います。また別の貸し出し ファイルを指定するには -lf フラグを使います。 実用の現場では、 dhcpd の実行時には、毎度同 じ貸し出しデータベースを用いさせることが重要です。 したがってこれらのオプションは、 貸し出 しファイルやデータベースファイルを、 実用でない環境でテストするような場合に限るべきです。 dhcpd をシステムのスタートアップスクリプト (/etc/rc など) から起動するときには、 コピーラ イトメッセージ全部を出力したくないこともあるかもしれません。 このメッセージを表示させたく ない場合は、 -q フラグを指定します。
設定
dhcpd.conf(5) ファイルの文法は別に説明されてます。 この節は設定作業を概観するだけに使い、 詳細なリファレンス情報は dhcpd.conf(5) のマニュアルページにあたってください。
サブネット
dhcpd は、サービスを提供するすべてのサブネットに対して、 サブネット番号とネットマスクを知 らなければなりません。 さらに dhcpd が動的にアドレスを割り当てるには、 各サブネットごとに 1 つ以上のアドレス領域を あてがわれておく必要があります。 クライアントホストが起動するごと に、 dhcpd はこの領域からアドレスを順番に割り当てます。 よって、DHCP サポートを提供する非 常に簡単な設定は次のようになります。 subnet 239.252.197.0 netmask 255.255.255.0 { range 239.252.197.10 239.252.197.250; } 次のように複数のアドレス領域を指定することもできます。 subnet 239.252.197.0 netmask 255.255.255.0 { range 239.252.197.10 239.252.197.107; range 239.252.197.113 239.252.197.250; } BOOTP サービスだけを提供し、動的なアドレス割り当ては提供しない場合は、 アドレス範囲の項目 は省略し、subnet 文だけを書いておけば OK です。
貸し出し期間
DHCP 貸し出し期間は、0 秒から無限までの、ほとんどあらゆる長さにできます。 あるサブネットに 対して、あるいは導入されたシステムに対して、 どのような長さが良いかは、サービスを受けるホ ストの種類によって異なります。 例えば、システムが時々追加/削除されるが、 移動することはあまりないようなオフィス環境では、 貸し出し期間は 1 か月より長くしておくのが良いでしょう。 組み立てフロアの最終テスト環境で は、 最大貸し出し期間は 30 分程度 (すなわち出荷前の簡単なネットワーク動作確認テストに充分 なくらい) にしておくのがいいでしょう。 貸し出し期間を 2 種類指定することもできます。 クライアントが特に貸し出し期間に関する要望を 送ってこなかった場合の デフォルトの期間と、最大貸し出し期間とです。 これらは subnet コマン ドの内部項目として指定します。 subnet 239.252.197.0 netmask 255.255.255.0 { range 239.252.197.10 239.252.197.107; default-lease-time 600; max-lease-time 7200; } この subnet 宣言では、デフォルトの貸し出し期間を 600 秒 (10 分)、 最大貸し出し期間を 7200 秒 (2 時間) にしてあります。 他に良く使われる値としては、86400 (1 日)、604800 (1 週間)、 2592000 (30 日) などがあります。 各サブネットに別々の貸し出し期間を指定してもかまいません。 オフィス環境と組み立て環境とを 同じ DHCP サーバにサービスさせるような場合には、 各サブネットのデフォルト/最大貸し出し期間 それぞれに、 大きく異なる値を指定するのが良いこともあるでしょう。
BOOTP サポート
BOOTP クライアントは、それぞれ dhcpd.conf ファイルに 明示的に宣言しておく必要があります。 もっとも基本的な宣言では、 クライアントのネットワークインターフェースのハードウェアアドレ スと、 そのクライアントに割り当てる IP アドレスとを指定します。 クライアントがサーバから起 動ファイルをロードできるようにしたい場合は、 そのファイル名も指定しなければなりません。 簡 単な bootp クライアント宣言は次のようになります。 host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 239.252.197.9; filename "/tftpboot/haagen.boot"; }
オプション
DHCP では (およびベンダによる拡張のなされた BOOTP でも)、 クライアントでのネットワークイン ターフェースの設定情報 (例えばサブネットマスクなど) とか、 クライアントからネットワーク サービス (DNS や IP ルータなど) にアクセスするための情報などを、サーバから提供する機構を備 えています。 これらのオプションはサブネット単位で指定できます。 BOOTP クライアントに対しては、クライア ント単位でも指定できます。 BOOTP クライアント宣言でオプション指定がされていて、 かつそのサ ブネット宣言でもオプション指定がされている場合は、 クライアント宣言でのオプションが優先さ れます。 ほぼ完全な DHCP 設定は、次のようになるでしょう。 subnet 239.252.197.0 netmask 255.255.255.0 { range 239.252.197.10 239.252.197.250; default-lease-time 600 max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 239.252.197.255; option routers 239.252.197.1; option domain-name-servers 239.252.197.2, 239.252.197.3; option domain-name "isc.org"; } BOOTP ホストがこのサブネットにあって、 これを別のドメインにし、別のネームサーバを利用させ たい場合には、 次のように宣言することになるでしょう。 host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 239.252.197.9; filename "/tftpboot/haagen.boot"; option domain-name-servers 192.5.5.1; option domain-name "vix.com"; } dhcpd.conf ファイルの文法に関するより完全な記述は、 dhcpd.conf(5) で提供されています。
ファイル
/etc/dhcpd.conf, /var/state/dhcp/dhcpd.leases, /var/run/dhcpd.pid, /var/state/dhcp/dhcpd.leases~.
関連項目
dhclient(8), dhcrelay(8), dhcpd.conf(5), dhcpd.leases(5)
著者
dhcpd(8) は Ted Lemon <mellon@vix.com> が Vixie Labs との契約のもとに書きました。 このプロ ジェクトの資金は、 Internet Software Corporation によって提供されました。 Internet Software Consortium の情報は http://www.isc.org/isc にあります。
訳注
ファイルの置き場所はインストールによって変わることがあります。 ここではデフォルトの /etc, /var/run/, /var/state/dhcp などを仮定してあります。 dhcpd(8)