第16章 BOOTP:ブートストラップ・プロトコル

第16章
BOOTP:ブートストラップ・プロトコル
Tomomi@ECN
1 イントロダクション

ディスクレス・システム

RARPの利用



IPアドレスしか返ってこない
リンク層ブロードキャストの利用(ルータ転送不可)
解決⇒Bootstrap Protocol


UDPの利用
TFTPと連携して動作
2 BOOTPパケット形式(1)


Opcode(オペレーションコード):1:要求、2:応答
ハードウェア・タイプフィールド



ハードウェア・アドレス長


データリンク層で扱うハードウェアタイプ
例)1: 10MbpsEthernet
オクテット数で表したハードウェアアドレスの長さ
ホップ・カウント(代理サーバが利用:16.5)


クライアントが0を入れる
サーバまでのホップ数を、通過するルータが加える
2 BOOTPパケット形式(2)

トランザクションID


秒数




識別用ID(クライアントがランダムに設定)
経過時間を記録
一定時間反応がない場合、サーバがダウンしたとみなす
クライアントID
サーバID

代理サーバの場合はゲートウェイIPアドレス
2 BOOTPパケット形式(3)


クライアント・ハードウェア・アドレス
ベンダー使用エリア:拡張機能用

RFC1084 に詳細
2 ポート番号

2つのポート番号




67:サーバ、68:クライアント
サーバが応答をブロードキャストにおくれるように
するため(ただし、通常は使わない)
(理由1)クライアントがエフェメラルポートを使用
 他のクライアントが同じポート番号を使用していた場
合、そちらでもパケットを受信してしまうから
(理由2)クライアントがサーバと同じポート番号を使用

全てのサーバがブロードキャストの応答に反応してしまうから
4 BOOTPサーバの設計

クライアントは自分のIPアドレスを知らない時


最初のサーバからのARP要求への応答方法は?
Ioctl要求



クライアントのエントリをARPキャッシュにおく
サーバが、IPアドレス、ハードウェアアドレス共に知って
いるため実行できる
BOOTP応答ではなく、ブロードキャスト

迷惑なので、使用しないほうが望ましい
5 ルータを経由するBOOTP
ディスクレス・ルータを利用



サーバのウェルノウン・ポート(67)で待機
リクエスト受信



自分のIPアドレスをゲートウェイIPアドレスに設定
本物のサーバに要求を送る
サーバは、中継ルータに応答を送る
6 ベンダー仕様情報

64バイトのベンダー仕様エリア


サーバからクライアントへ返す追加情報格納
マジッククッキー



最初の4バイト
IPアドレス 99.130.83.99
情報が格納含まれていることを示す