広告
広告
https://www.7key.jp/nw/tcpip/ip/bootp.html#bootp
BOOTstrap Protocolの略で、TCP/IPネットワーク上のホストにおいて、IPアドレス、サブネットマスク、ホスト名、ドメイン名、デフォルトゲートウェイ等の情報をBOOTPサーバから自動的にダウンロードするためのUDPとIP上で動作するプロトコルです。RFC951にて規定されています。BOOTPサーバ側では前もってMACアドレスとIPアドレス、ホスト名の対応表を用意しておきます。ホストはMACアドレスをブロードキャストし、それを受け取ったBOOTPサーバは既述の対応表に従ってIPアドレスを返答します(DHCPのように動的なIPアドレスの配布は行えません)。このことにより、各ホストに手動でネットワーク関連の設定を行う手間が軽減されます。ただし、DHCPと異なり、IPアドレスのリース期間やゲートウェイアドレスの設定などは行われません。
BOOTPクライアントは、通常IPブロードキャストを使って要求を送り、サーバが応答を生成します。この際、要求と応答で使われるメッセージのフォーマットは同じものが使われます(下記メッセージ構成参照)。応答が送られてこなければ、適切な間隔でそれが届くまでの間同じ要求を繰り返し続けます。要求では応答すべきサーバの名前を任意に示すことができます。このことにより、サーバ情報をBOOTPクライアントとなる装置に事前設定する必要がでてきますが、クライアントが明示的にサーバを指定することもできるのです。
BOOTP要求を作成するクライアントは、自身のIPアドレスが分かっている場合はそれを、分からなければ0をIPヘッダの送信元IPアドレスフィールドに入れます。更に、BOOTPサーバアドレスが分かっていればそれを、分からなければブロードキャストアドレスをIPヘッダの宛先IPアドレスフィールドに入れます。また、クライアントはUDP67番をUDPヘッダの宛先ポートフィールドに、UDP68番をUDPヘッダの送信元ポートフィールドに入れます。そして自身が知っている全ての情報をBOOTPパケットに入れ、送信を開始します。
https://www.7key.jp/nw/tcpip/ip/bootp.html#message
Operation (1) | Hardware Address Types (1) | HardWare Address Length (1) | Hops (1) |
TransactionID(4) | |||
Seconds(2) | Unused(2) | ||
Client IP Address(4) | |||
Your IP Address(4) | |||
Server IP Address(4) | |||
Gateway(Router) IP Address(4) | |||
Client Hardware Address(16) | |||
Server Name(64) | |||
Boot File Name(128) | |||
Vender Specific Area (64) |
Operation | 1は起動要求リクエスト、2は応答レスポンス |
Hardware Address Types | データリンク層で扱うハードウェアタイプ(10MbpsEthernet:1,FDDI:4,Ethernet:6...) |
Hardware Address Length | オクテット数で表したハードウェアアドレスの長さ(Ethernet,FDDI:6...) |
Hops | BOOTPを要求するクライアントが0を入れ、その後要求するサーバまでのホップ数を通過するルータが加えていく |
Transaction ID | 要求を作成するクライアントが無作為に作成した値。トランザクションの固有番号として識別に使う。 |
Seconds | 要求を作成したクライアントが0を入れ、経過時間を記録する。 |
Unused | - |
Client IP Address | クライアントのIPアドレス(不明な場合は0) |
Your IP Address | クライアントIPアドレスにゼロが入っていた場合、サーバはここにクライアントのIPアドレスを入れて返答する |
Server IP Address | BOOTPサーバのIPアドレス |
Gateway IP Address | ゲートウェイのIPアドレス |
Client Hardware Address | クライアントのハードウェアアドレス。余りフィールドは0でパディングする |
Server Name | サーバの名称。クライアントが名称を知らなければ0を入れる |
Boot File Name | 起動ファイルの名称 |
Vender Specific Area | 各ベンダーにて開発した固有のサービスに利用する為に用意されている。最初の4オクテットは後続のデータを解釈するモードを定義するために使われ、マジッククッキーと呼ばれる99.130.83.99の値が用いられる。この際、残りの領域は拡張可能タグ付きフィールドで構成される自由フォーマットとなる。データタイプは固定長と可変長に分けられ、固定長はタグを1つ持ち1オクテット長と認識されるものと特定のデータを持つものに分けられる。可変長データタイプは下表の通り。詳細はRFC1084を参照。 |
タグ | データタイプ | 長さ | 意味 |
---|---|---|---|
0 | パディング | - | パディングのために使用 |
1 | サブネットマスク | 4 | ローカルネットワークのサブネットマスクを示す |
2 | 時差 | 4 | ローカルネットの時計の協定世界時からの秒数での時差を符号付き32bit整数で示す |
3 | ゲートウェイ | 可変 | フィールドはXオクテット長で、X/4台のルータのIPアドレスを示す。 |
4 | タイムサーバ | 可変 | フィールドはXオクテット長で、X/4台のタイムサーバのIPアドレスを示す。 |
5 | IEN-116サーバ | 可変 | フィールドはXオクテット長で、X/4台のIEN-116サーバのIPアドレスを示す。 |
6 | ドメインサーバ | 可変 | フィールドはXオクテット長で、X/4台のドメインサーバのIPアドレスを示す。 |
7 | ログサーバ | 可変 | フィールドはXオクテット長で、X/4台のログサーバのIPアドレスを示す。 |
8 | クッキーサーバ | 可変 | フィールドはXオクテット長で、X/4台のクッキーサーバのIPアドレスを示す。 |
9 | LPRサーバ | 可変 | フィールドはXオクテット長で、X/4台のBSDプリンタサーバのIPアドレスを示す。 |
10 | インプレスサーバ | 可変 | フィールドはXオクテット長で、X/4台のインプレスネットワークイメージサーバのIPアドレスを示す。 |
11 | RLPサーバ | 可変 | フィールドはXオクテット長で、X/4台のリソース位置プロトコルサーバのIPアドレスを示す。 |
12 | ホスト名 | 可変 | クライアントの名前を示す |
13 | 起動ファイルサイズ | 2 | 512オクテットのブロック単位で起動ファイルのサイズを示す。 |
128-254 | 未使用 | - | 追加のサイト固有情報を示す。 |
255 | エンドオブリスト | - | ベンダ固有領域にある使用可能データの終わりを示す。この64オクテット領域の残りスペースは0でパディングされる。 |
https://www.7key.jp/nw/tcpip/ip/bootp.html#supplement
BOOTPを基本として一部を改良したDHCP【Dynamic Host Configuration Protocol】が開発され、広く利用されるようになりました。
BOOTPサーバとDHCPサーバは同じUDPポート67をListenするため、同時に同じシステムで立ち上げることはできません。
通常、BOOTPクライアント(DHCPクライアントも同様)は、UDPポート68を予約し、BOOTPサーバからの応答メッセージを受理します。
広告