DHCP オプション 43 の設定

オプション 43 (クラス ID) は、PXE サーバーの場所が既知であることをターゲットに通知します。

オプション 43 は、サブ・オプションのリストを含むバイナリー・バッファーです。サブ・オプションは、特定の順序はなくバイナリー・バッファーにパックされます。ほとんどのサブ・オプションは任意です。

サブ・オプションの完全なリストについては、PXE 仕様を参照してください。ここでは、PXE サーバーの IP アドレスを指定するために対象とするサブ・オプションのみを説明します。このセクションでは、マルチキャスト検出、複数のユニキャストサーバー、複数の選択など、その他の構成については説明していません。

PXE option 6: PXE_DISCOVERY_CONTROL
このオプションは、PXE クライアントがユニキャスト、マルチキャスト、またはブロードキャストのいずれかを使用して PXE サーバーにコンタクトする方法を指定します。このオプションの形式は 1 バイトです。
PXE option 8: PXE_BOOT_SERVERS
IP アドレスのリスト (各アドレスは 1 つの PXE サーバーに対応) (discovery_control がユニキャストの場合)。PXE サーバーは、数値 (の場合は、の標準値 BigFix Bare Metal Server は 15) とその IP アドレスによって識別されます。このオプションの形式は、サーバー・タイプは 2 バイト、リストするサーバーの数は 1 バイト (この例では 1) とサーバー・アドレスごとに 4 バイトです。
PXE option 9: PXE_BOOT_MENU
このオプションには、起動時に画面にプロンプトを表示する選択項目のリストが含まれています。PXE ブート・メニューが使用されていない場合でも、PXE ブート・メニューを使用できる状況である必要があります。このオプションの形式は、サーバー・タイプは 2 バイト、表示するストリングの長さは 1 バイト、画面に表示するストリングです。このオプションの合計長は 5 バイトです。
PXE option 10 (0A): PXE_BOOT_TIMEOUT
このオプションは、ブート・メニューが表示される時間 (秒単位) を指定するため、および待機時間中に表示されるプロンプトのテキストを指定するために必要です。このオプションの形式は、タイムアウト値に 1 バイト、その後にプロンプト・テキストが続きます。
PXE option 255 (FF): PXE_END
有効にするには、DHCP オプション 43 のバイナリー・バッファーが FFで終わる必要があります。

DHCP オプション 43 の設定

DHCP サーバーが Windows 上で実行されている場合、16 進数入力を選択することによって、オプション 43 で一度に 1 つずつサブオプション値を入力できます。

DHCP サーバーが ISC DHCP (バージョン 2. x) である場合、パラメーターの vendor-encapsulated-options (正確な名前は使用しているバージョンによって異なります) で指定されたサブオプション値を入力できます。

DHCP サーバーが ISC DHCP (バージョン 3. x または 4.x) である場合は、以下のように明示的な構文を使用して PXE オプションを記述できます。
# In the global section: 
   option space PXE; 
   option PXE.discovery-control code 6 = unsigned integer 8; 
   option PXE.boot-server code 8 = { unsigned integer 16, 
                                     unsigned integer 8, 
                                     ip-address }; 
   option PXE.boot-menu code 9 = { unsigned integer 16, 
                                   unsigned integer 8, 
                                   text}; 
   option PXE.menu-prompt code 10 = { unsigned integer 8, text };
# In the scope/host section: 
   option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,60,43); 
   option vendor-class-identifier "PXEClient"; 
   vendor-option-space PXE; 
   option PXE.discovery-control 7; 
   option PXE.boot-server 15 1 <ip address of the PXE server>;
   option PXE.boot-menu 15 5 "Rembo"; 
   option PXE.menu-prompt 0 "Rembo";
注: ここで、<IP address of the PXE server> は、ターゲットが接続するベア・メタル・サーバーの IP アドレスです。たとえば、オプション PXE.boot-server 15 1 10.10.10.10 と入力します。

例: 異なるサブネット上の PXE サーバーの場合は、オプション 43

この例では、ターゲット AB をサーバー 192.10.10.10 で起動し、ターゲット CD を別のサブネット上にあるサーバー 192.10.11.10 で起動します (別のサブネット上の PXE サーバーを見つけるために、CD に対して有効なゲートウェイをセットアップする必要があります)。
注: サーバー・タイプ 15 は、16 進数で 00:0F に変換されます。IP アドレス 192.10.10.10 は C0:0A:0A:0A に変換され、192.10.10.11 は C0:0A:0B:0A に変換されます。文字 R と B は、52 と 42 に変換されます。
以下のオプションには、バイナリー・バッファーとその値を挿入する必要があります。
PXE オプション 6、長さ 1、値 =07
7 は、use PXE_BOOT_SERVERS list, disable multicast and broadcast discovery
PXE オプション 8、長さ 7、値 = 00:0F:01:C0:0A:0A:0A
(ターゲット A と B) これらの DHCP オプションを受け取るターゲットの PXE サーバーのアドレスである 1 つの IP アドレスのみが使用されます。
PXE オプション 8、長さ 7、値 = 00:0F:01:C0:0A:0B:0A
(ターゲット C と D) これらの DHCP オプションを受け取るターゲットの PXE サーバーのアドレスである 1 つの IP アドレスのみが使用されます。
PXE オプション 9、長さ 5、値 = 00:0F:02:52:42
RB の1 行だけが表示され、サーバー・タイプ 15 (BigFix Bare Metal Server) となります。
PXE オプション A、長さ 2、値 =00:52
タイムアウトは 0 秒に設定されます。これは、ブートメニューの最初の行からブートすることを意味し、プロンプトは R に設定されます。タイムアウトが 0 であるため、プロンプト・テキストは表示されませんが、1 文字以上である必要があります。
PXE オプション FF
バッファーを閉じます

バイナリー・バッファーの形式は、DHCP パケット自体に使用されるものと似ています。バッファーはオプションのリストであり、各オプションはオプション番号 (1 バイト) から始まり、その後に長さ (1 バイト)、その値 (バイトのリスト) が続きます。

以下は、前述のターゲット A とターゲット B の場合の記録です。
Option 43 = 
06:01:07:08:07:00:0F:01:C0:0A:0A:0A:09:05:00:0F:02:52:42:0A:02:00:52:FF
ターゲット CD の場合:
Option 43 = 
06:01:07:08:07:00:0F:01:C0:0A:0B:0A:09:05:00:0F:02:52:42:0A:02:00:52:FF

例: PXE ブート・メニューを作成するオプション 43

管理者は、2 つの行を PXE ブート・メニューに表示して、2 つの別個の OS Deployment サーバーをポイントするようにしたいと考えています。2 つのサーバーは、異なる PXE サーバーのタイプ番号を使用する必要があります。使用しない場合は、PXE ネットワーク・カードによって 1 つのサーバーとみなされます。

標準の PXE サーバー・タイプ 15 に加えて、 OS Deployment サーバーは、33008 (16 進では80F0) と 33280 (16 進では8200 ) の間の任意の番号を受け入れます。これらの新しい PXE サーバーのタイプ番号は、DHCP オプション 43 の BOOT_SERVERS サブオプションで複数の OS Deployment サーバーを区別するために使用されます。

この例では、最初のサーバーのアドレスは 192.168.1.4 (16 進では C0:A8:01:04)、2 番目のサーバーは 192.168.1.5 (16 進では C0:A8:01:05) です。

  1. OS Deployment サーバー・タイプを各サーバーに割り当てます。OS Deployment サーバーは、サーバー・タイプ 15 と 33008 から 33280 のサーバー・タイプを受け入れます。この例では、最初のサーバーに 33008 (80F0) が使用され、2 番目のサーバーに 33009 (80F1) が使用されます。
  2. その後、DHCP オプション 43 のサブオプションを以下のように構成する必要があります。
    PXE オプション 6、長さ 1、値 = 07
    7 は、use PXE_BOOT_SERVERS list, disable multicast and broadcast discovery
    PXE オプション 8、長さ 14 (0E)、値 = 80:F0:01:C0:A8:01:04:80:F1:01:C0:A8:01:05
    オプション 8 は、2 つの PXE サーバーを定義します。最初のサーバーは最初の 7 バイトによって定義され、OS Deployment サーバー・タイプ (80:F0、33008) から始まり、その後に 1 つの IP アドレスが続きます。C0:A8:01:05 (192.168.1.4)。2 番目のサーバーは、OS Deployment サーバー・タイプ 80:F1 (33009) を使用して、以下の方法で定義されています。
    PXE オプション 9、長さ 22 (16)、値 = 80:F0:08:53:65:72:76:65:82:20:41:80:F1:08:53:65:72:76:65:82:20:42
    オプション 9 は、ブート時に表示されるブート・メニューを定義します。最初の 11 バイトは、最初のサーバーの最初の行に対応しています。これには、タイプ 80:F0 (最初のサーバー) に関連付けられたストリング Server A が表示されます。2 行目には、タイプ 80:F1 (2 番目のサーバー) に関連付けられたストリング Server B が表示されます。
    PXE オプション A、長さ 6、値 =0F:53:65:6C:65:63:74
    オプション 10 (0A) は 15 秒のタイムアウトを指定し、ブート・メニュー・プロンプトとしてストリング Select が表示されます。
    PXE オプション FF
    バッファーを閉じます。
フル・オプション 43 は、以下のようになります。
06:01:07:08:0E:80:F0:01:C0:A8:01:04:80:F1:01:C0:A8:01:05: 
09:16:80:F0:08:53:65:72:76:65:82:20:41:80:F1:08:53:65:72:76:65:82:20:42: 
0A:06:0F:53:65:6C:65:63:74:FF 
ターゲット画面にブート・メニューが表示されたら、F8 を押して選択します。