BOOTPD(8) FreeBSD システム管理者マニュアル BOOTPD(8)
名称
bootpd, bootpgw − インターネットブートプロトコルサーバ/ゲートウェイ |
書式
bootpd [−i | −s] [−c chdir-path] [−d level] [−h hostname] [−t timeout] [ |
bootptab [dumpfile]]
bootpgw [−i | −s] [−d level] [−h hostname] [−t timeout] server 解説 |
bootpd ユーティリティは RFC951, RFC1532, RFC1533 で定義されたインターネッ トブートプロトコル (BOOTP) サーバを実装したものです。 bootpgw ユーティリ ティは、要求と応答を、あるサブネット上のクライアントと、別のサブネット上 の BOOTP サーバ (すなわち bootpd) との間で転送するのに使われる、単純な BOOTP ゲートウェイを実装しています。 bootpd または bootpgw は BOOTREPLY パケットを転送しますが、 bootpgw だけが BOOTREQUEST パケットを転送しま す。 各々のネットワークセグメントにつき、通常一つのホストで、以下の行のどれか をファイル /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 分以内に別のパケットを受信しないのなら、システムの資源を浪費しないよう に終了します。 −t オプションがこのタイムアウト時間を制御します (オプショ ン参照)。 他の通常のコマンドのように単にシェルから起動することで、 bootpd (あるいは bootpgw ) を「スタンドアローンモード」( inetd(8) なし) で実行することも可 能です。 bootpd が大きなコンフィギュレーションデータベースのもとで使われ る時には、 inetd モードでの起動時の遅延がクライアントの要求に対する素早い 応答を妨げるので、スタンドアローンモードは特に役に立ちます。 (例えば /etc/rc.local から bootpd を呼びだすことによって、スタンドアローンモード で自動的に起動することができます。) bootpgw は設定ファイルを読まないの で、起動時の遅延はかなり小さく、スタンドアローンモードはあまり役に立ちま せん。 どちらのプログラムも、inetd から呼び出されたかシェルから呼び出されたかを 自動的に検出し、自動的に適当なモードを選択します。 −s と −i オプションは 各々、スタンドアローンモードと inetd モードを強制するのに使います (オプ ション参照) |
オプション
以下のオプションを使用可能です: |
−t timeout
bootpd あるいは bootpgw プロセスが終了する前に BOOTP パケットを待 つ timeout 値 (分単位) を指定します。もし timeout 分内にパケット を受信しなければ、プログラムは終了します。 timeout の値が 0 の場 合は「永遠に実行する」という意味です。スタンドアローンモードで は、このオプションは 0 に強制されます。 −d debug-level −c chdir-path −h hostname −i −s bootptab dumpfile server 操作 |
bootps ポートに送られたどんなパケットも取り込んでどんな BOOTREPLY パケッ トも単純に転送するという点で bootpd と bootpgw の双方が似た動きをします。 BOOTREQUEST の扱いは違います。 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
によって読み込まれるデータベースファイル。 バグ |
各々のホストエントリは 1024 文字を越えてはいけません。 |
功労者
この配布版は現在、 Walter L. Wimer 〈walt+@cmu.edu〉 によって保守されていま す。 オリジナルの BOOTP サーバはスタンフォード大学の Bill Croft によって 1986 年 1 月に作成されました。 現在のバージョンの bootpd は第一に、Carnegie Mellon University の David Kovar, Drew D. Perkins, Walter L. Wimer の仕事によるものです。 機能拡張とバグフィクスは以下の方の貢献によります: (アルファベット順) Danny Backx 〈db@sunbim.be〉, |
関連項目
bootptab(5), inetd(8), tftpd(8) DARPA Internet Request For Comments: |
RFC951
Bootstrap Protocol FreeBSD 10.0 February 10, 2004 FreeBSD 10.0 |