dhclient-script(8) FreeBSD 一般コマンドマニュアル

dhclient-script

前のページ 上に戻る 次のページ

dhclient-script




解説

       DHCP クライアントのネットワーク設定スクリプトは、時ある ご
       と に dhclient(8) が呼び出します。 DHCP クライアントは、本
       スクリプトを使用することにより、アドレス要求に先立つ各イン
       タフェースの初期設定と、付与されたアドレスの検査と、リース
       獲得時のインタフェースの最終設定を行います。リースが獲得さ
       れなかった場合、定義済みのリースが存在するならばこれを検査
       するために本スクリプトは使用され、有効なリースが判明 し な
       かった場合にももう 1 回このスクリプトが呼ばれます。

       本スクリプトは、エンドユーザにカスタマイズされることを意図
       していません。ローカルなカスタマイズが必要な場合、これは入
       (enter) と出 (exit) というフックを使用することで可能となり
       ます  ( 詳 細 は フッ ク 参 照)。 こ れ ら の フッ ク は、
       /etc/resolv.conf  作成時に、クライアントのデフォルト動作を
       ユーザがオーバライドできるようにします。

       特定のオペレーティングシステムでは、クライアントの実体は動
       作 す るとしても、標準のスクリプトが動作しないかもしれませ
       ん。先駆的なユーザが新規スクリプトを作成したり既存のものを
       修正したりする必要があることはもっともなことです。一般的に
       は、それぞれのコンピュータに 固 有 の カ ス タ マ イ ズ は
       /etc/dhclient.conf   ス ク リ プ ト で 行 う べ き で す。
       /etc/dhclient.conf のカスタマイズ無しにできないカスタマ イ
       ズや、入と出のフックの使用ではできないカスタマイズに気づい
       た場合には、バグレポートを送ってください。


フック

       開始時に、クライアントスクリプトはまずシェル関数を定義しま
       す。  そ  の 関 数 は  make_resolv_conf   で あ り、 後 に
       /etc/resolv.conf ファイルを作成するために使用されます。 デ
       フォルト動作をオーバライドするには、この関数を入のフックス
       クリプトで再定義してください。

       make_resolv_conf 関数の定義の後、クライアントスクリプト は
       実 行可能な /etc/dhclient-enter-hooks スクリプトの存在を検
       査し、存在する場合には Bourne シェルの '.' コマンドを使 用
       して本スクリプトをインラインで起動します。操作で記述されて
       いるすべての環境が本スクリプトで使用可能であり、スクリプト
       の動作の変更が必要な場合には環境の修正が許されています。ス
       クリプト実行中にエラーが発生た場合、 exit_status 変数を 非
       0 値に設定することが可能であり、クライアントスクリプト終了
       直後に /sbin/dhclient-script はそのエラーコードで終了し ま
       す。

       す べての処理の完了後に、 /sbin/dhclient-script は実行可能
       な /etc/dhclient-exit-hooks スクリプトの存在を検査し、存在
       す る 場 合には '.' コマンドでこれを起動します。終了状態は
       exit_status シェル変数に渡され、起動された仕事にスクリプト
       が成功した場合には値は常に 0 になります。


PREINIT

       DHCP クライアントは、実際のアドレスを受け取る前にパケッ ト
       を送信する目的で、要求通りにインタフェースが設定されること
       を求めています。 BSD のソケットライブラリを使用するクラ イ
       ア ントでは、 IP アドレス 0.0.0.0 かつブロードキャストアド
       レス 255.255.255.255 で、インタフェースを設定することを 意
       味します。他のクライアントでは、実際に IP アドレスを与える
       ことなく単にインタフェースを設定することで実現されるでしょ
       う。インタフェース名は $interface で渡され、メディアタイプ
       は $medium で渡されます。

       IP エイリアスが dhclient.conf で宣言されている場合、このア
       ド レスが $alias_ip_address で渡されます。本 IP アドレスへ
       の経路とともに、本 IP アドレスを対象インタフェースから削除
       する必要があります。


ARPSEND

       DHCP  クライアントは、与えられたアドレスを他の誰かが使用し
       ているか確認する目的で、本アドレスの ARP 要求の送信を求 め
       ています。実装方法は明確ではありませんので、例はまだありま
       せん。確認対象の IP アドレスは $new_ip_address で渡さ れ、
       インタフェース名は $interface で渡されます。


ARPCHECK

       DHCP  クライアントは、 ARPSEND を使用した ARP 要求の送信に
       対する応答の有無を、知りたがっています。応答があった場合、
       ス クリプトは非 0 の状態で終了することにより、提供されたア
       ドレスは既に要求されているものであり、拒否されるべきである
       こ と を 示 し ま す。  $new_ip_address  および $interface
       は、ARPSEND と同様に設定されます。


BOUND

       DHCP クライアントは、新アドレスへの初期の結合を完了しま し
       た。 新しい IP アドレスは $new_ip_address で渡され、インタ
       フェース名は $interface で渡されます。メディア タ イ プ は
       $medium   で 渡 さ れ ま す。 サーバから獲得したオプション
       は、dhcp-options で宣言されているオプション名で渡 さ れ ま
       す。 例 外 と し て、 有効なシェル変数とするためにダッシュ
       ('-') はアンダスコア('_')で置き換えられ、変数名は new_  で
       開 始 し ま す。例えば、新しいサブネットマスクは $new_sub-
       net_mask で渡されます。

       結合が完了すると、ネットワークに関する多くのパラメータを設
       定 す る 必 要 が あ る でしょう。 $new_domain_name および
       $new_domain_name_servers (これには複数のサーバを空白 で 区
       切っ て 列 挙 し て あるかもしれません) を使用して、新しい
       /etc/resolv.conf を作成する必要があります。デフォルト経 路
       は、$new_routers  を使用して設定する必要があります。静的経
       路は、$new_static_routes を使用して設定する必要があるか も
       しれません。

       IP  エイリアスが宣言されている場合、ここで設定する必要があ
       ドレスに対するローカル経路が設定された場合、古いローカル経
       路を削除する必要があります。デフォルト経路が変更され た 場
       合、古いデフォルト経路を削除する必要があります。静的経路が
       変更された場合、古いものを削除する必要があります。その他に
       ついては、BOUND と同様に処理可能です。


REBIND

       DHCP  クライアントが、新規 DHCP サーバに再結合されました。
       これは RENEW と同様に扱えますが、IP アドレスが変わった場合
       には、 ARP 表をクリアする必要があります。


REBOOT

       DHCP  クライアントは、リブート後に元のアドレスを再獲得する
       ことに成功しました。これは BOUND と同様に処理可能です。


EXPIRE

       DHCP クライアントはリース更新と新規リース獲得に失敗し、 リ
       ースの期限が切れました。対象 IP アドレスを解放する必要があ
       り、 RENEW および REBIND と同様に、関連するパラメータを 削
       除する必要があります。


FAIL

       DHCP  クライアントは DHCP サーバに接続できず、また検査した
       IP アドレスには有効なものはありませんでした。最後に検査 し
       た リ ースのパラメータは、設定解除する必要があります。これ
       は、EXPIRE と同様に扱えます。


TIMEOUT

       DHCP クライアントはどの DHCP サーバにも接続できませんで し
       た。 しかしながら、古いリースが識別され、 BOUND と同様に、
       この古いリースのパラメータが渡されました。クライアントの設
       定スクリプトは、このパラメータを検査し、これが有効であると
       信じる理由があるならば、値 0 で終了すべきです。そうでな い
       ならば、非 0 の値で終了すべきです。

       リ ースを検査する通常の方法は、REBIND と同様にネットワーク
       を設定して (複数のリースを検査するために呼ばれることがある
       か らです)、 $routers で定義される最初のルータに ping する
       ことです。応答を受信した場合、インタフェースが現在接続され
       て い る ネッ ト ワ ー ク に 対 し て、 リースが有効です。
       $new_static_routers に加えて $new_routers に列挙されている
       全ルータに ping を試すようになれば、完全性が増すでしょう。
       しかし、現在のスクリプトはそうなっていません。


関連ファイル

       類似したオペレーティングシステムに対するスクリプトファイル
       は似ていたり全く同じかもしれませんが、一般には、各オペレー
       ティングシステム用に各々のスクリプトファイルがあるべ き で
       す。 Internet Software Consortium の DHCP 配布に含まれるス
       クリプトファイルは、 client/scripts 以下の配布ツリー に あ
       り、動作対象オペレーティングシステム名になっています。



作者

       dhclient-script(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 をご覧ください。



                                               dhclient-script(8)

ABELNET VPSサービス