Provided by: isc-dhcp-common_4.2.4-7ubuntu12.13_amd64
名称
dhclient - 動的ホスト設定プロトコルのクライアント
書式
dhclient [ -p port ] [ -D ] [ -d ] [ -q ] [ -1 ] [ -r ] [ -lf lease-file ] [ -pf pid-file ] [ -cf config-file ] [ -sf script-file ] [ -s server ] [ -g relay ] [ -n ] [ -nw ] [ -w ] [ if0 [ ...ifN ] ]
解説
Internet Systems 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 が次に データベースを作り替えるまで、 dhclient.leases~ という名前で保存されます。 dhclient が最初に起動されたとき (一般的にはシステムブート初期過程の間) に DHCP サーバが利 用できなければ、 古いリースは残されます。 その場合、dhclient.leases ファイルから まだ期限 の切れていない古いリースを検査し、 有効であると判断されれば、それらの期限が切れるか または DHCP サーバが利用できるようになるまで、そのリースを使います。 DHCP サーバが存在しないネットワークに時おりアクセスする必要が あるような移動ホストは、その ネットワーク上の固定アドレスのリースを あらかじめ読み込んでおくことができます。 DHCP サー バへのアクセスがどれも成功しなかった場合、 dhclient はその静的なリースが有効であるか検証 し、 有効であれば次に再起動されるまでそのリースを使います。 また移動ホストは、DHCP は利用できないが BOOTP なら利用できるような ネットワークへ移動する こともあるでしょう。 そのような場合は、古いリースを順次試すよりも、 そのネットワークの管理 者と相談して BOOTP データベースにエントリを作成してもらい、 そのネットワーク上で素早くブー トできるようにするとよいでしょう。
コマンドライン
dhclient が設定しようとするネットワークインタフェースの名前を コマンドラインで指定できま す。 コマンドラインでインタフェース名が指定されなければ、 dhclient はすべてのネットワーク インタフェースを識別し、 可能なら非ブロードキャストインタフェースは除いて、 それぞれのイン タフェースを設定しようとします。 dhclient.conf(5) ファイル中の名前でインタフェースを指定することも可能です。 この方法でイン タフェースを指定した場合、クライアントは、 設定ファイル中で指定したインタフェースもしくは コマンド行で 指定したインタフェースのどちらかだけを設定するでしょう。 -D フラグを指定すると、 dhclient が dhclient-script と組み合わせて使用するために作成したス クリプトを、 /tmp に保存させます。 DHCP クライアントが標準ポート (ポート番号 68) 以外のポートで 待機および送信する必要がある 場合には -p フラグが使えます。 このフラグに続けて、dhclient が使う udp ポート番号を指定し ます。 これは主としてデバッグ目的では有用です。 クライアントが待機および送信するために使用 するポートに デフォルトとは違うポートを指定する場合、クライアントは もう 1 つ別の送信先 ポートも使用します。その送信先ポートは、 指定した送信先ポートよりも大きな番号を持ったもの です。 DHCP クライアントは、通常 IP アドレスを獲得していない間 任意のプロトコルメッセージをリミ テッドブロードキャスト アドレスである 255.255.255.255 へと送信します。 デバッグ目的 で、サーバがこれらのメッセージをどこか別のアドレスへ 送信した方が便利なことがあります。 -s フラグの後に送信先の IP アドレスもしくはドメイン名をつけて指定 できます。 テスト目的 で、DHCP クライアントが送信する全てのパケットの giaddr フィールドを -g フラグに送信先の IP アドレスを続けた形を使用することで設定する ことができます。これはテスト目的の時のみ有用な ものであり、 堅実さや使いやすさを求める状況で動作することを想定しては いけません。 DHCP クライアントは、通常インタフェースを設定するまでは フォアグラウンドで動作し、その後 バックグラウンドで動作 するようになります。dhclient を常にフォアグラウンドの プロセスとし て動作させるためには、 -d フラグを指定する必要があります。これは、DHCP クライアントが デ バッガのもとで動作している場合や、System V システムの inittab の外側で動作している場合には 有効なものです。 このクライアントは、通常は起動メッセージを表示し、アドレスを 獲得するまで標準エラー出力に プロトコルシーケンスを 書き出します。アドレスを獲得した後は syslog (3) ファシリティを使用 してメッセージのログを取るだけになります。 -q フラグを使用すると、エラー以外のメッセージを 標準エラー出力に 書き出さないようになります。 クライアントは、DHCP プロトコルで義務づけられていないため、 通常は現在取得しているリースを 開放することはありません。 ただ、ケーブル ISP のなかには、クライアントが 割り当てられたIP アドレスを開放したい場合には、サーバに 通知するように義務づけているところもあります。 -r フラグを用いると、明示的に現在のリースを開放し、いったん リースを開放するとクライアントは 終了します。 -1 フラグを指定すると、 dhclient はひとつのリースに対し 1 度だけしか取得を試みません。 も し取得に失敗すれば dhclient は終了コード 2 で終了します。 DHCP クライアントは、通常は設定情報を ETCDIR/dhclient.conf から、リースデータベースを DBDIR/dhclient.leases から取得し、自分のプロセス ID を RUNDIR/dhclient.pid という名前の ファイルに保存し、 そしてネットワークインタフェースを CLIENTBINDIR/dhclient-script を使用 して設定します。 これらのファイルに別の名前を指定したり、別の場所を 指定したりするには、そ れぞれ -cf, -lf, -pf および -sf フラグを、後ろにファイル名を続ける形で使用してください。 この方法は、例えば DHCP クライアントが起動したときに DBDIR もしくは RUNDIR がまだマウント されていない場合には特に有用なものに なり得ます。 DHCP クライアントは、設定すべきネットワーク インタフェースを同定できない場合、通常は終了し ます。 ラップトップコンピュータやホットスワップ可能な I/O バスを 持ったコンピュータで は、ブロードキャストインタフェースが システム起動後に追加されることがあり得ます。 -w フラ グを用いると、そのようなインタフェースが 1 つも 見つからないときにもクライアントが終了しな いようにできます。 後で omshell (8) プログラムを使用して、ネットワークインタフェースが追加 されたり 削除されたりしたことをクライアントに通知することができ、 これによってクライアント がこのインタフェース上の IP アドレスを設定するよう試みることができます。 -n フラグを用いることで、どのインタフェースも設定しようと しないように DHCP クライアントを 指示することができます。 このフラグは、きっと -w フラグと共に使用すると有用でしょう。 IP アドレスを獲得するまで待つのではなく、即座にデーモンと なるようにクライアントを指示する こともできます。 -nw フラグを与えると可能です。
設定
dhclient.conf(5) ファイルの書式は別に解説されています。
OMAPI
この DHCP クライアントは、動作中にその動作を停止させる ことなく自分自身を制御できるように するための機能を提供しています。 この機能は、リモートオブジェクト操作 API である OMAPI を 用いて提供されています。OMAPI クライアントは、TCP/IP を 使用してこの DHCP クライアントに接 続します。そして、 DHCP クライアントの現在の状態を検査でき、その状態を変更することが でき ます。 ユーザプログラムでは、基礎にある OMAPI プロトコルを直接実装する のではなく、dhcpctl API も しくは OMAPI そのものを使用すべきです。 dhcpctl は、OMAPI が自動で行ってはくれない雑事のい くつかを扱う ラッパです。dhcpctl および OMAPI については dhcpctl(3) および omapi(3) に記述 されています。 クライアントを用いてやりたいことのほとんどは、特別なプログラムを 書かなくと も omshell(1) コマンドを使用して直接実現できる ものです。
制御オブジェクト
制御オブジェクトを使用すると、DHCP クライアントを終了させ、 保持しているリースをすべて開放 し、クライアントが追加した DNS レコードをすべて消去することができるようになります。 ま た、クライアントを一時停止させ、クライアントが使用している インタフェースの設定を除くこと ができるようにもなります。 その後で、DHCP クライアントを再起動させることができ、 インタ フェースを再設定することができます。通常、ハイバネーションに 入る前やラップトップコン ピュータではスリープする前に DHCP クライアントを一時停止させるでしょう。 そして、電源が 戻ってきた後で DHCP クライアントを回復させる でしょう。こうすることで、コンピュータがハイ バネーションや スリープ中には PC カードを停止させておき、コンピュータが ハイバネーションや スリープから復帰したら以前の状態に 再度初期化することができるようになるのです。 制御オブジェクトには属性が 1 つあります。それは状態属性です。 クライアントを終了させるに は、クライアントの状態属性を 2 に 設定します。クライアントは自動的に DHCPRELEASE を行うで しょう。 クライアントを一時停止させるには、クライアントの状態属性を 3 に設定します。クライ アントを復帰させるには、クライアントの 状態属性を 4 に設定します。
関連ファイル
CLIENTBINDIR/dhclient-script, ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid, DBDIR/dhclient.leases~
関連項目
dhclient.conf(5), dhclient.leases(5), dhclient-script(8)
作者
dhclient(8) は Ted Lemon が Vixie Enterprises と協力して Internet Systems Consortium のた めに 書きました。 Internet Systems Consortium についてより詳しくは、 https://www.isc.org をご覧ください。 Vixie Enterprises についてより詳しくは、 http://www.vix.com をご覧くださ い。 本クライアントは、Elliot Poger が Stanford 大学の MosquitoNet プロジェクトに参加している間 に、 Linux での利用に際し大幅に修正、改良を行いました。 現在のバージョンは、Elliot による Linux での改良に負うところが大きいですが、 Internet Systems Consortium の DHCP サーバが使うものと同じ ネットワーキングフレームワークを用いるよ うに、Ted Lemon が 大幅な再編成や部分的な書き換えを行いました。 システム特有の設定コードの 大部分はシェルスクリプトに移されたので、 より多くのオペレーティングシステムのサポートが加 えられるにつれ、 システム特有の設定コードをそのオペレーティングシステムに 移植したり管理し たりする必要はなくなるでしょう。 代わりに、シェルスクリプトが環境に合ったツールを呼び出し て その目的を果たしてくれます。 dhclient(8)