総合手引 | セクション 8 | English | オプション |
各々のネットワークセグメントにつき、通常一つのホストで、 以下の行のどれかをファイル /etc/inetd.conf に含めることにより、 bootpd あるいは bootpgw が inetd(8) から起動されるように設定されます:
bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab
bootps dgram udp wait root /usr/libexec/bootpgw bootpgw server
この動作モードは「inetd モード」と呼ばれ、
ブート要求が到着した時にだけ
bootpd
(あるいは
bootpgw)
を開始します。
もし最後にパケットを受信してから 15 分以内に別のパケットを受信しないのなら、
システムの資源を浪費しないように終了します。
他の通常のコマンドのように単にシェルから起動することで、 bootpd (あるいは bootpgw ) を「スタンドアローンモード」( inetd(8) なし) で実行することも可能です。 bootpd が大きなコンフィギュレーションデータベースのもとで使われる時には、 inetd モードでの起動時の遅延が クライアントの要求に対する素早い応答を妨げるので、 スタンドアローンモードは特に役に立ちます。 (例えば /etc/rc.local から bootpd を呼びだすことによって、 スタンドアローンモードで自動的に起動することができます。) bootpgw は設定ファイルを読まないので、 起動時の遅延はかなり小さく、 スタンドアローンモードはあまり役に立ちません。
どちらのプログラムも、inetd から呼び出されたかシェルから呼び出されたかを
自動的に検出し、自動的に適当なモードを選択します。
| |
bootpd あるいは bootpgw プロセスが終了する前に BOOTP パケットを待つ timeout 値 (分単位) を指定します。 もし timeout 分内にパケットを受信しなければ、プログラムは終了します。 timeout の値が 0 の場合は「永遠に実行する」という意味です。 スタンドアローンモードでは、このオプションは 0 に強制されます。 | |
| |
生成されるデバッグメッセージの量を制御する変数
debug-level
を設定します。
例えば、
| |
| |
クライアントのブートファイルの存在とサイズを検査する間に bootpd で使われるカレントディレクトリを設定します。 クライアントのブートファイルが相対パス名で指定されていて、 bootpd が TFTP サーバと同じカレントディレクトリ (典型的には /tftpboot) を必要とするときに有用です。 このオプションは bootpgw によっては認識されません。 | |
| |
接続を待っている IP アドレスに対応するホスト名を指定します。 デフォルトでは bootpd は gethostname(3) が返すマシンのホスト名に対応する IP アドレスで待ちます。 | |
| |
強制的に inetd モードにします。 このオプションは時代遅れですが、古いバージョンの bootpd との互換性のために残してあります。 | |
| |
強制的にスタンドアローンモードにします。 このオプションは時代遅れですが、 古いバージョンの bootpd との互換性のために残してあります。 | |
bootptab | |
bootpd がロードする 設定ファイルの名前を指定します ( bootpd のみ)。 これはあらかじめ知っているクライアントと そのクライアントのオプションに関するデータベースです。 | |
dumpfile | |
bootpd が、SIGUSR1 シグナルを受信したときに 内部データベースをダンプするファイルの名前を指定します ( bootpd のみ)。 このオプションは bootpd が -DDEBUG フラグ付きでコンパイルされたときだけ認識されます。 | |
server | |
bootpgw が受信した全ての BOOTREQUEST パケットを転送する、 BOOTP サーバの名前を指定します ( bootpgw のみ)。 | |
bootpgw は動作開始時に、コマンド行パラメータとして名前を与えられた BOOTP サーバのアドレスを決めます。 bootpgw が BOOTREQUEST パケットを受信したとき、 パケットの「ゲートウェイアドレス」と「ホップ数」フィールドを設定し、 パケットを前に決めたアドレスの BOOT サーバへ転送します。 要求パケットは、 クライアントが少なくとも 3 秒は待っているとパケットが示している時にだけ 転送されます。
bootpd は動作開始時に設定ファイル (通常 /etc/bootptab) を読みこみます。 これで、あらかじめ知っているクライアントと クライアントのオプションに関する内部データベースを初期化します。 この内部データベースは、 bootpd が回線切断シグナル (SIGHUP) を受信したとき、 または設定ファイルが変更されたことを 発見したときに、再読み込みが行なわれます。
bootpd が BOOTREQUEST パケットを受信したとき、 クライアントの要求に一致するデータベースエントリを探します。 もしそのクライアントをあらかじめ知っていれば bootpd は前に見付けたデータベースエントリを使って BOOTREPLY パケットを構成し、 (ひょっとしたらゲートウェイを使って) クライアントに返答を送ります。 もしクライアントが未知ならば、(debug > 0 のときは注意を出して) 要求は捨てられます。
bootpd が -DDEBUG オプションでコンパイルされていれば、 SIGUSR1 シグナルを送ると内部データベースをファイル /tmp/bootpd.dump か、コマンド行パラメータで指定されたダンプファイルに ダンプします。
初期化の時どちらのプログラムも、 (普通は /etc/services を使う) getservbyname(3) を呼ぶことで UDP ポート番号を決定します。 二つのサービス名 (とポート番号) が使われます:
bootps - BOOTP サーバ待機ポート
bootpc - BOOTP クライアント届け先ポート
もしポート番号が getservbyname(3) を使って決定できないときには、 デフォルト値は bootps=67 と bootpc=68 です。
/etc/bootptab | bootpd によって読み込まれるデータベースファイル。 |
/tmp/bootpd.dump | |
bootpd によって生成されるデバッグダンプファイル。 | |
/etc/services | インターネットサービス番号。 |
/tftpboot | TFTP サーバと bootpd で使われる典型的カレントディレクトリ。 |
オリジナルの BOOTP サーバは スタンフォード大学の Bill Croft によって 1986 年 1 月に作成されました。
現在のバージョンの bootpd は第一に、Carnegie Mellon University の David Kovar, Drew D. Perkins, Walter L. Wimer の仕事によるものです。
機能拡張とバグフィクスは以下の方の貢献によります: (アルファベット順)
Danny Backx <db@sunbim.be>,
John Brezak <brezak@ch.hp.com>,
Frank da Cruz <fdc@cc.columbia.edu>,
David R. Linn <drl@vuse.vanderbilt.edu>,
Jim McKim <mckim@lerc.nasa.gov>,
Gordon W. Ross <gwr@mc.com>,
Jason Zions <jazz@hal.com>.
DARPA Internet Request For Comments:
RFC951 | Bootstrap Protocol |
RFC1532 | |
Clarifications and Extensions for the Bootstrap Protocol | |
RFC1533 | |
DHCP Options and BOOTP Vendor Extensions | |
BOOTPD (8) | February 10, 2004 |
総合手引 | セクション 8 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | If you sat a monkey down in front of a keyboard, the first thing typed would be a unix command. | ” |
— Bill Lye |