ブートサービス検出プロトコル

ブートサービス検出プロトコルBSDP)は、 Appleが開発した標準準拠の DHCP拡張機能です。[1] これにより、Macintoshコンピュータは、CDDVDハードディスクなどのローカルストレージメディアではなく、ネットワーク上の起動可能なイメージから起動できるようになります。使用されるDHCPオプションは、「ベンダー固有情報」オプション(番号43)と「ベンダークラス識別子」オプション(番号60)です。BSDPには3つのバージョンがありますが、通常はバージョン1.0が使用されます。すべてのバージョンで、クライアントはサーバーが提供する複数の起動可能なイメージから選択できます。BSDPのリファレンス実装は、 Mac OSNetBoot機能 の一部であるDarwinBOOTPサーバーです。

説明

DHCPベンダークラス識別子の内容

DHCPサーバーとクライアントは、/文字で区切られた3つの部分からなるASCIIエンコードされた文字列を含むベンダークラスオプションを送信します。最初の部分はAAPLBSDPCで、BSDP機能をアドバタイズします。2番目の部分はクライアントのアーキテクチャ(「ppc」または「i386」)です。3番目の部分はシステム識別子です。たとえば、IntelベースのiMacは

AAPLBSDPC/i386/iMac4,1

をベンダークラスとして

DHCPベンダー固有情報オプションの内容

DHCPオプション43は、ベンダー固有の情報用に予約されています。[2]この情報は次の形式で保存されます。

 コード長 ベンダー固有情報 +-----+-----+-----+-----+--- | 43 | n | i1 | i2 | ... +-----+-----+-----+-----+---

ベンダーがこのオプションフィールド内で複数のオプションを伝えたい場合は、カプセル化されたベンダー固有の拡張によって行われます。ベンダー固有の拡張には、1つ以上の連結されたフィールドが含まれます。各フィールドは以下の要素で構成されます。

バイト位置内容
0フィールドの種類
1フィールドの長さn
2~n -2データ

次の表は、使用可能なフィールドタイプを示しています。すべての数値フィールドは、符号なしビッグエンディアンの 整数として解釈されます。

タイプ意味データ型
1メッセージタイプ8ビット整数
  • 0x00 : なし
  • 0x01: リスト
  • 0x02: 選択
  • 0x03: エラー
2使用されているBSDPバージョン16ビット整数
  • 0x0000: バージョン0.0
  • 0x0100: バージョン1.0
  • 0x0101: バージョン1.1
3サーバー識別子サーバーのIPアドレス(コンポーネントごとに1バイト):c0 a8 64 01は192.168.100.1を表します
4サーバー優先度16ビット整数
5応答用ポート16ビット整数
6「ブートイメージリストのパス」文字列
7標準ブートイメージのID32ビット整数

(Appleのドキュメントによると、ブートイメージIDは最大65535まで可能です。これは16ビットで構成されますが、32ビットは予約されています。観測されたすべてのIDにおいて、最上位16ビットは常に1000 0001 0000 0000 (0x8100) であり、これはおそらく起動するオペレーティングシステムの種類とバージョンを示しています。)

8選択されたブートイメージのID32ビット整数
9ブートイメージのリスト
10「netboot 1.0ファームウェア」
11イメージ属性のエラーリスト
12最大メッセージサイズ
128「シャドウマウントパス」文字列(URL

起動成功後にデータが書き込まれる、ネットワークアクセス可能なマウントを指定できます。このフィールドが指定されておらず、クライアント上でローカルに利用可能なストレージメディアがない場合、Mac OS Xの起動プロセスは中止されます。公式には、Mac OS XはAFPシャドウマウントパスのみをサポートしています。ただし、システムの起動ファイルを変更すれば、NFSを使用することもできます。

129「シャドウファイルパス」文字列(URL)
130「マシン名」(起動するシステムの名前?)文字列

次の例は、ベンダーカプセル化オプションの構成を示しています。

0000 01 01 02 08 04 81 00 07 e5 82 0a 4e 65 74 42 6f 6f ........ ..NetBoo 0010 74 30 30 31  t001                        

ここで最初のフィールド01 01 02は、パケットがBSDP「SELECT」メッセージであることを意味します。01は、そのフィールドがBSDPメッセージタイプを指定することを宣言します。次の01は、フィールドの内容が1バイト長であることを示します。02は「SELECT」のコードです。

続く08 04 81 00 07 e5は、ID 2164262885のブートイメージが選択されたことを意味します。

最後に、82 0a 4e 65 74 42 6f 6f 74 30 30 31は、0x 0a = 10文字の文字列、つまり「NetBoot001」がブートするシステムの名前であることを意味します。

出典

参考文献

  1. ^ 「NetBoot 2.0:ブートサービス検出プロトコル(BSDP)」(DOC)。Apple Inc. 2003年12月8日2010年7月22日閲覧
  2. ^ S. Alexander、R. Droms(1997 3月)。DHCPオプションとBOOTPベンダー拡張。IETFネットワークワーキンググループ。doi : 10.17487 / RFC2132。RFC 2132 草案標準。RFC 1533 は廃止。RFC 3442、3942、4361、4833、5494によって更新。
Retrieved from "https://en.wikipedia.org/w/index.php?title=Boot_Service_Discovery_Protocol&oldid=1296975826"