dhclient(8)

名称
dhclient - 動的ホスト設定プロトコルのクライアント

書式
dhclient [ -Ddq1 ] [ -cf config-file ] [ -lf lease-file ] [ -p port ] [ -pf pidfile ] [ if0 [ ...ifN ] ]

解説
Internet Software Consortium の DHCP クライアントである dhclient は動的ホスト設定プロトコル (DHCP: Dynamic Host Configuration Protocol) または BOOTP プロトコルを用いて、あるいは これらのプロトコルが失敗した場合にはアドレスを静的に割り当てて、 1 つ以上のネットワークインタフェースを設定する方法を提供します。

操作

DHCP プロトコルでは、1 つ以上のサブネットに割り当てることのできる IP アドレスのリストを管理する中央サーバに、ホストがアクセスできます。 DHCP クライアントはこのリストからアドレスを要求して、 それをネットワーク通信の一時的な土台に用いることができます。 また DHCP プロトコルは、デフォルトルータの場所やネームサーバの場所など、 クライアントが接続しているネットワークに関する重要な情報を クライアントに詳細に知らせる機構も提供します。

起動時に dhclient は dhclient.conf から設定指示を読み取ります。 それから現在のシステムに組み込まれている すべてのネットワークインタフェースのリストを取得します。 各インタフェースに対し dhclient は DHCP プロトコルを用いて設定を試みます。

システムリブートやサーバ再起動の際にリースを失わないように、 dhclient は割り当てられたリースのリストを dhclient.leases(5) ファイルに保存します。 起動時、dhclient.conf ファイルを読み取った後、 dhclient は dhclient.leases ファイルを読み込んで、 割り当てられたリースに関するメモリを更新します。

新しいリースを取得すると、dhclient.leases ファイルの末尾に付け加えられます。 ファイルが極端に大きくなるのを防ぐために、 dhclient は時おりコア内部のリースデータベースから 新規 dhclient.leases ファイルを作成します。 古いほうの dhclient.leases ファイルは、 dhclient が次にデータベースを作り替えるまで、 dhcpd.leases~ という名前で保存されます。

dhclient が最初に起動されたとき (一般的にはシステムブート初期過程の間) に DHCP サーバが利用できなければ、 古いリースは残されます。 その場合、dhclient.leases ファイルから まだ期限の切れていない古いリースを検査し、 有効であると判断されれば、それらの期限が切れるか または DHCP サーバが利用できるようになるまで、そのリースを使います。

時には DHCP サーバが存在しないネットワークにアクセスする必要があるような 移動ホストは、そのネットワーク上の固定アドレスのリースを あらかじめ読み込んでおくことができます。 DHCP サーバへのアクセスがどれも成功しなかった場合、 dhclient はその静的なリースが有効であるか検証し、 有効であれば次に再起動されるまでそのリースを使います。

また移動ホストは、DHCP は利用できないが BOOTP なら利用できるような ネットワークへ移動することもあるでしょう。 そのような場合は、古いリースを順次試すよりも、 そのネットワークの管理者と相談して BOOTP データベースにエントリを作成してもらい、 そのネットワーク上で素早くブートできるようにするとよいでしょう。

コマンドライン

dhclient が設定しようとするネットワークインタフェースの名前を コマンドラインで指定できます。 コマンドラインでインタフェース名が指定されなければ、 dhclient はすべてのネットワークインタフェースを識別し、 可能なら非ブロードキャストインタフェースは除いて、 それぞれのインタフェースを設定しようとします。

-D フラグを指定すると、 dhclient が dhclient-script と組み合わせて使用するために作成したスクリプトを、 /tmp に保存させます。

通常、dhclient はインタフェースを設定するまではフォアグラウンドで動作し、 その後バックグラウンドの動作に移行します。 dhclient を常にフォアグラウンドプロセスとして実行させるには、 -d フラグを指定してください。 これは dhclient をデバッガ内で実行するときや、 System V システムで inittab 外で実行するときに便利です。

標準 (ポート 68) 以外のポートで dhclient に送受信させるには、 -p フラグが使えます。 このフラグに続けて、dhclient が使う udp ポート番号を指定します。 これは主にデバッグ目的に有用です。 -p フラグを指定すると、指定した番号より 1 つ小さなポート番号を使用して、 クライアントはサーバへの応答を送信します - つまり、 -p 68 と指定した場合には、 クライアントはポート 68 で listen してポート 67 で送信します。 リレーエージェントを介す必要があるデータグラムは、 -p フラグで指定されるポート番号に送られます - 代替ポート番号を使用したい場合、 使用しているリレーエージェントを設定して、 同じ代替ポート番号を使用させる必要があります。

-cf を使用すると、デフォルトの /sbin/dhclient-script からシェルスクリプトを変更可能です。

-lf フラグを使用することにより、リース出力ファイルを、 デフォルトの /var/db/dhclient.leases から変えることができます。

-pf フラグを使用することにより、PID ファイルを、 デフォルトの /var/run/dhclient.pid から変えることができます。

-q フラグを使用することにより、 dhclient の画面出力量を減らすことができます。

-1 フラグを指定すると、 dhclient はひとつのリースに対し 1 度だけしか取得を試みません。 もし取得に失敗すれば dhclient は終了コード 2 で終了します。

設定
dhclient.conf(5) ファイルの書式は別に解説されています。

関連ファイル
/etc/dhclient.conf, /var/db/dhclient.leases, /var/db/dhclient.leases~. /var/run/dhclient.pid,

関連項目
dhclient.conf(5), dhclient.leases(5), dhclient-script(8)

作者
dhclient(8) は Ted Lemon <mellon@fugue.com> が Vixie Enterprises と協力して Internet Software Consortium のために 書きました。 Internet Software Consortium についてより詳しくは、 http://www.vix.com/isc をご覧ください。 Vixie Enterprises についてより詳しくは、 http://www.vix.com をご覧ください。

本クライアントは、Elliot Poger が Stanford 大学の MosquitoNet プロジェクトに参加している間に、 Linux での利用に際し大幅に修正、改良を行いました。

現在のバージョンは、Elliot による Linux での改良に負うところが大きいですが、 Internet Software Consortium の DHCP サーバが使うものと同じ ネットワーキングフレームワークを用いるように、Ted Lemon が 大幅な再編成や部分的な書き換えを行いました。 システム特有の設定コードの大部分はシェルスクリプトに移されたので、 より多くのオペレーティングシステムのサポートが加えられるにつれ、 システム特有の設定コードをそのオペレーティングシステムに 移植したり管理したりする必要はなくなるでしょう。 代わりに、シェルスクリプトが環境に合ったツールを呼び出して その目的を果たしてくれます。