iPXE

iPXE は、ネットワーク ブーティングのオープン スタンダードである Pre-boot eXecution Environment(PXE)の拡張版です。このモジュールでは、iPXE 機能および設定方法について説明します。

iPXE について

iPXE について

iPXE は、ネットワーク ブーティングのオープン スタンダードである Pre-boot eXecution Environment(PXE)の拡張版です。

iPXE ネットブートは、次を提供します。

  • IPv4 および IPv6 プロトコル

  • FTP/HTTP/TFTP ブート イメージのダウンロード

  • イメージへの埋め込みスクリプト

  • Dynamic Host Configuration Protocol バージョン 4(DHCPv4)や DHCPv6 を使用したステートレスおよびステートフル アドレス自動設定(SLAAC)、ブート URI、および IPv6 ルータ アドバタイズメントに応じた DHCPv6 オプションのパラメータ。

ネットブート要件

ネット ブーティングの主な要件は、次のとおりです。

  • 適切に設定された DHCP サーバ。

  • FTP/HTTP/TFTP サーバ上で使用可能なブート イメージ。

  • ネットワーク ベースのソースから起動するように設定されたデバイス。

iPXE の概要

ネットワーク ブートローダは、ネットワーク ベースのソースからのブート処理をサポートします。ブートローダは、HTTP、FTP、または TFTP サーバにあるイメージを起動します。ネットワーク ブート ソースは、iPXE のようなソリューションを使用して自動検出されます。

iPXE により、オフラインのデバイスのネットワーク ブートが可能になります。ブート モードには次の 3 種類があります。

  • iPXE タイムアウト:iPXE ネットワーク ブートを介して起動します。IPXE_TIMEOUT ROMmon 変数を使用して、iPXE ネットワーク ブートのタイムアウトを秒単位で設定します。iPXE タイムアウトを設定するには boot ipxe timeout コマンドを使用します。タイムアウト時間を経過すると、デバイス ブートがアクティブになります。

  • iPXE 期限なし:iPXE ネットワーク ブートを介して起動します。boot ipxe forever コマンドが設定されている場合、デバイスは DHCP 要求を期限なしで送信します。これは iPXE のみを使うブートです(つまり、ブートローダは、有効な DHCP 応答を受け取るまで DHCP 要求を期限なしで送信するため、デバイス ブートまたはコマンド プロンプトにフォールバックすることはありません)。

  • デバイス:設定されているローカル デバイスの BOOT 行を使ってブートします。デバイス ブートが設定された場合、設定されている IPXE_TIMEOUT ROMmon 変数は無視されます。次のように指定してデバイス ブートをアクティブ化できます。

    • BOOTMODE=ipxe-forever の場合は、ユーザの介入がなければデバイス ブートがアクティブになりません(ENABLE_BREAK=yes の場合にのみ可能)。

    • BOOTMODE=ipxe-timeout の場合は、IPXE_TIMEOUT 変数で指定した秒数が経過するとデバイス ブートがアクティブになります。

    • BOOTMODE=device の場合は、デバイス ブートがアクティブになります。これはデフォルトのアクティブ モードです。

    • デバイス ブートは CLI を使用してアクティブ化することもできます。


    (注)  


    デバイス ブートは、デフォルトのブート モードです。



(注)  


このマニュアルでは、手動ブートという用語も使われています。手動ブートは、ROMmon のリロードを行うかどうかを決定するフラグです。デバイスが ROMmon モードの場合は、手動で boot コマンドを実行する必要があります。

手動ブートを YES に設定した場合は、ROMmon またはデバイス プロンプトがアクティブになります。手動ブートを NO に設定した場合は、autoboot 変数が実行されます。つまり、BOOT 変数で設定された値に従います。


ここでは、iPXE ブートローダの動作について説明します。
図 1. iPXE ブートローダのワークフロー
  1. ブートローダは DHCP 検出メッセージを送信し、サーバが応答すると、ブートローダは DHCP 要求を送信します。

  2. DHCP 応答には、IP アドレスとのブート ファイル名が含まれています。ブート ファイル名は、ブート イメージが TFTP サーバ(tftp://server/filename)、FTP サーバ(ftp://userid:password@server/filename)、または HTTP サーバ(http://server/filename)から取得されることを示しています。

  3. ブートローダがネットワーク ソースからイメージをダウンロードして起動します。

  4. DHCP 応答が受信されない場合、ブートローダはブート モードの設定に基づいて、DHCP 要求を期限なしで、または指定された期間の間送信し続けます。タイムアウトが発生すると、ブートローダはデバイスベースのブートに戻ります。設定されたブート モードが ipxe-forever の場合のみ、デバイスは DHCP 要求を期限なしで送信します。ipxe-timeout ブート モード コマンドが設定されている場合、DHCP 要求は指定された時間にわたって送信され、タイムアウトが経過すると、デバイス ブート モードがアクティブになります。


(注)  


現在の iPXE 実装は管理ポート(GigabitEthernet0/0)のみを経由して動作するため、前面パネル ポートを介して送信される DHCP 要求はサポートされていません。


ネットワーク ブートに対して静的なネットワーク設定を使用する場合、ROMmon は次の環境変数を使用します(すべて必須です)。

  • BOOT:セミコロン(;)で区切られた起動元の URL。

  • IP_ADDRESS:静的に割り当てられたデバイスの IP アドレス。

  • DEFAULT_GATEWAY:デバイスのデフォルト ゲートウェイ。

  • IP_SUBNET_MASK:IPv4 または IPv6 プレフィックス情報。

    IPv4:WWW.XXX.YYY.ZZZ という形式のデバイスのサブネット マスク(255.255.255.0 など)。

    IPv6:NNN という形式のデバイスのサブネット プレフィックス長(64、112 など)。

手動ブートが無効になっている場合、ブートローダは、設定された ROMmon iPXE 変数の値に基づいて、デバイス ブートを実行するかネットワーク ブートを実行するかを決定します。手動ブートが有効か無効かにかかわらず、ブートローダは BOOTMODE 変数を使用して、デバイス ブートとネットワーク ブートのどちらを実行するかを決定します。手動ブートは、ユーザによって boot manual switch コマンドが設定済みであることを意味します。手動ブートが無効になっている場合にデバイスをリロードすると、起動プロセスが自動的に開始されます。

iPXE が無効になっている場合は、デバイスの起動方法の決定に、既存の BOOT 変数の内容が使用されます。BOOT 変数には、ネットワークベースの Uniform Resource Identifier(URI)(たとえば、http://、ftp://、tftp://)が含まれている場合があり、ネットワーク ブートが開始されます。しかし、ネットワーク イメージ パスの取得に DHCP は使用されません。静的なネットワーク設定は、IP_ADDRESS 変数、DEFAULT_GATEWAY 変数、および IP_SUBNET_MASK 変数から取得されます。BOOT 変数には、デバイスのファイル システム ベースのパスが含まれている場合もあり、この場合は、デバイスのファイル システム ベースのブートが開始されます。

起動に使用される DHCP サーバは、製品 ID(PID)(DHCP オプション 60 で判別可能)、シャーシのシリアル番号(DHCP オプション 61 で判別可能)、またはデバイスの MAC アドレスを使用して、デバイスを識別できます。show inventory および show switch コマンドでもデバイスでこれらの値を表示します。

次に、show inventory コマンドの出力例を示します。

Device# show inventory

NAME:“c38xx Stack”, DESCR:“c38xx Stack”
PID:WS-3850-12X-48U-L, VID:V01 ,  SN: F0C1911V01A

NAME:“Switch 1”, DESCR:“WS-C3850-12X48U-L”
PID:WS-C3850-12X48U-L, VID:V01 , SN:F0C1911V01A 

NAME:”Switch1 -Power Supply B”, DESCR:“Switch1 -Power Supply B”
PID:PWR-C1-1100WAC, VID:V01, SN:LIT1847146Q

次に、 show switch コマンドの出力例を示します。
Device# show switch 

Switch/Stack Mac Address : 046c.9d01.7d80 - Local Mac Address
Mac persistency wait time: Indefinite
                                             H/W   Current
Switch#   Role    Mac Address     Priority Version  State 
-------------------------------------------------------------------------------------
 1       Member   046c.9d1e.1a00     1              Ready                
 2       Standby  046c.9d01.7d80     1              Ready                
*3       Active   f8b7.e24e.9a00     1      P2B     Ready     

次の ROMmon 変数が iPXE に設定されている必要があります。

  • BOOTMODE = ipxe-forever | ipxe-timeout | device

  • IPXE_TIMEOUT = seconds

IPv6 iPXE ネットワーク ブート

次の図は、Cisco デバイス上の IPv6 iPXE ネットワーク ブートの動作を表します。

次に、上掲の図の 4 つの要素を説明します。

  • IPv6 ブート デバイス:iPXE ブートによって起動するデバイス。

  • サポート デバイス:IPv6 アドレスで、ルータ アドバタイズメント(RA)メッセージを生成するように設定された Cisco デバイス。


    (注)  


    この図では、IPv6 ブート デバイス、サポート デバイス、および DHCP サーバは、同じサブネット上にあります。ただし、サポート デバイスと DHCP サーバが異なるサブネット上にある場合、ネットワーク内にリレー エージェントを設ける必要があります。


  • DHCP サーバ:任意の DHCP サーバ。

  • Web サーバ:任意の Web サーバ。

この項では、IPv6 iPXE ブート プロセスを説明します。

  1. デバイスは、ルータ要請である Internet Control Message Protocol IPv6(ICMPv6)タイプ 133 パケットをローカル サブネット上の IPv6 デバイスに送信します。

  2. ローカル サブネット上の IPv6 デバイスは、ルータ アドバタイズメント(RA)メッセージである ICMPv6 タイプ 134 パケットで応答します。ルータ要請メッセージを送信したデバイスは、ステートレス アドレス自動設定(SLAAC)アドレスを完成させるため、RA パケットからデフォルト ルータとプレフィックスの情報を取得します。

  3. デバイスは、DHCPv6 要請メッセージを、すべての DHCP エージェントについて、マルチキャスト グループ アドレス ff02::1:2 に送信します。

    次に、iPXE ブートの際の DHCPv6 要請パケットのフィールドの例を示します。
    
    DHCPv6 
     Message type: Solicit (1)
     Transaction ID: 0x36f5f1
     Client Identifier
     Vendor Class
     Identity Association for Non-Temporary Address
     Option Request
     User Class
     Vendor-specific Information
    
    

    DHCPv6 要請メッセージには、次の情報が含まれています。

    • DHCP 固有識別子(DUID):クライアントを識別します。iPXE では、DUID-EN をサポートしています。EN は、エンタープライズ番号(Enterprise Number)の略です。この DUID は、ベンダーに割り当てられた固有の識別子に基づいています。

    • DHCP および DHCPv6 のオプション

  4. DHCPv6 サーバが設定されている場合、そのサーバは、128 ビット IPv6 アドレス、ブート ファイルの Uniform Resource Identifier(URI)、ドメイン ネーム システム(DNS)サーバおよびドメイン検索リスト、ならびにクライアントとサーバの ID を含む DHCPv6 アドバタイズ パケットで応答します。クライアント ID にはクライアント(この図では IPv6 ブート デバイス)の DUID が、サーバ ID には DHCPv6 サーバの DUID が、それぞれ含まれています。

  5. それを受け、クライアントは、マルチキャスト グループ アドレス ff02::1:2 に DHCPv6 要求パケットを送信し、アドバタイズされたパラメータを要求します。

  6. サーバは、クライアントのリンク ローカル(FE80::)の IPv6 アドレスにユニキャスト DHCPv6 応答を返します。次に、DHCPv6 応答パケットのフィールドの例を示します。
    
    DHCPv6
     Message type: Reply (7)
     Transaction ID: 0x790950
     Identity Association for Non-Temporary Address
     Client Identifier
     Server Identifier
     DNS recursive name server
     Boot File URL
     Domain Search List
    
    
  7. 次に、デバイスは、Web サーバに HTTP GET 要求を送信します。

  8. 要求されたイメージが指定されたパスで使用可能な場合、Web サーバは、HTTP GET 要求に OK を返します。

  9. TCP イメージ転送によりイメージがコピーされ、デバイスが起動します。

ROMmon モードでの IPv6 アドレスの割り当て

DHCP クライアントは、次の優先順位を使用して、ROMmon モードで使用する IPv6 アドレスを決定します。

  1. DHCP サーバによって割り当てられたアドレス

  2. ステートレス アドレス自動設定(SLAAC)アドレス

  3. リンクローカル アドレス

  4. サイトローカル アドレス

デバイスは、イメージをブートするのに DHCP サーバによって割り当てられたアドレスを使用します。DHCPv6 サーバがアドレスの割り当てに失敗した場合、デバイスは、SLAAC アドレスの使用を試行します。DHCP サーバによって割り当てられたアドレスと SLAAC アドレスの両方が使用できない場合、デバイスは、リンクローカル アドレスを使用します。ただし、イメージのコピーを正常に行うには、リモート FTP/HTTP/TFTP サーバがデバイスと同じローカル サブネット上にある必要があります。

最初の 3 つのアドレスが使用できない場合、デバイスは、自動的に生成されるサイトローカル アドレスを使用します。

サポートされる ROMmon 変数

Cisco IOS XE Fuji 16.8.1 では、次の ROMmon 変数がサポートされています。

  • BAUD:デバイスのコンソール ボー レートをシスコの標準ボー レート(1200、2400、4800、9600、19200、38400、57600、115200 など)のいずれかに変更します。無効な値はすべて拒否されます。BAUD 変数が設定されていない場合は、デフォルトで 9600 になります。対応する CLI コマンドは、

  • ENABLE_BREAK:ROMmon のブレークを有効にします。デフォルト値は NO です。

  • MANUAL_BOOT:手動ブートが 1 に設定されている場合、ROMmon またはデバイス プロンプトがアクティブになります。手動ブートが 0 に設定されている場合、デバイスはリロードされますが、ROMmon モードはアクティブになりません。

  • SWITCH_IGNORE_STARTUP_CFG:値が 1 の場合は、デバイスでスタートアップ コンフィギュレーションが無視されます。値が設定されていない場合は、値がゼロとみなされます。これは読み取り専用変数であり、IOS のみが変更できます。

iPXE がサポートする DHCP オプション

iPXE ブートは、ROMmon モードで次の DHCPv4 および DHCPv6 オプションをサポートしています。


(注)  


Catalyst 9000 シリーズ スイッチは、DHCP オプション 60、オプション 77、DHCPv6 オプション 1、オプション 15、およびオプション 16 をサポートしています。DHCP オプション 61 は、Catalyst 9300 および 9500 シリーズ スイッチでのみサポートされています。


  • DHCP オプション 60:ベンダー クラス識別子。このオプションには、ROMmon 環境変数 MODEL_NUM の値が設定されます。

  • DHCP オプション 61:クライアント識別子。このオプションには、ROMmon 環境変数 SYSTEM_SERIAL_NUM の値が設定されます。


    (注)  


    このオプションは Catalyst 9400 シリーズ スイッチではサポートされていません。


  • DHCP オプション 77:ユーザ クラス オプション。このオプションは、DHCP 検出パケットに追加されるもので、iPXE という文字列に等しい値を含んでいます。このオプションは、DHCP サーバからブートするためのイメージを探す iPXE DHCP クライアントを分離する際に使用されます。

    次に、ISC DHCP サーバからの DHCPv4 設定で、オプション 77 の使用が示されている例を示します。この例における if 条件は、オプション 77 が存在しており、文字列 iPXE に等しい場合は、イメージのブート ファイルの URI がアドバタイズされることを示します。

    
    host Switch2 {
         fixed-address 192.168.1.20 ;
         hardware ethernet CC:D8:C1:85:6F:11 ;
               #user-class = length of string + ASCII code for iPXE
         if exists user-class and option user-class = 04:68:50:58:45 {
             filename "http://192.168.1.146/test-image.bin"
         }
    }
      
  • DHCPv6 オプション 1:クライアント識別子オプション。このオプションには、RFC 3315 で規定されている ROMmon 環境変数 SYSTEM_SERIAL_NUM の値が設定されます。ROMmon 環境変数で推奨される形式は MAC_ADDR です。

  • DHCPv6 オプション 15:ユーザ クラス オプション。このオプションは、DHCPv6 要請メッセージ内の IPv6 ユーザ クラス オプションであり、文字列 iPXE が設定されます。次に、ISC DHCP サーバで定義されているオプション 15 の例を示します。

    
    option dhcp6.user-class code 15 = string ;
    

    次に、DHCPv6 オプション 15 が使用されている DHCP サーバ設定の例を示します。

    
    #Client-specific parameters
    host switch1 {
         #assigning a fixed IPv6 address
         fixed-address6 2001:DB8::CAFE ; 
         #Client DUID in hexadecimal format contains: DUID-type"2" + "EN=9" + "Chassis serial number"
         host-identifier option dhcp6.client-id       00:02:00:00:00:09:46:4F:43:31:38:33:
    31:58:31:41:53;
        #User class 00:04:69:50:58:45 is len 4 + "iPXE"
        if option dhcp6.user-class = 00:04:69:50:58:45 {
           option dhcp6.bootfile-url "http://[2001:DB8::461/platform-pxe/edi46/test-image.bin";
        }
    }
    
  • DHCPv6 オプション 16:ベンダー クラス オプション。デバイスの製品 ID(PID)が含まれています。PID は、show inventory コマンドの出力または MODEL_NUM ROMmon 変数から特定できます。オプション 16 は ISC DHCP サーバのデフォルトのオプションではなく、次のように定義することができます。

    
    option dhcp6.vendor-class-data code 16 = string;
    
    

    次に、DHCPv6 オプション 16 が使用されている設定例を示します。

    
    # Source: dhcpd6ConfigPD
    
    host host1-ipxe6-auto-host1 {
         fixed-address6 2001:DB8::1234;
         host-identifier option dhcp6.client-id 00:02:00:00:00:09:46:4F:
         43:31:38:33:31:58:31:41:53;
         if option dhcp6.vendor-class-data = 00:00:00:09:00:0E:57:53:2D:
         43:33:38:35:30:2D:32:34:50:2D:4D {
         option dhcp6.bootfile-url "http://[2001:DB8::46]/platform-pxe/host1/17jan-polaris.bin";
    
    
    

    次の表で、この出力に表示される重要なフィールドを説明します。

    表 1. サンプル出力フィールドの説明

    フィールド

    説明

    dhcp6.client-id

    クライアントを識別する DHCP 固有識別子(DUID)。

    dhcp6.user-class

    DHCPv6 オプション 15、ユーザ クラス オプション。

    dhcp6.vendor-class-data

    DHCPv6 オプション 16、スイッチの製品 ID(PID)を含むベンダー クラス オプション。

    dhcp6.bootfile-url

    ブート ファイル URI を要求する DHCPv6 オプション 6。

DHCPv6 固有識別子

RFC 3315 によって定義されている DHCPv6 識別子(DUID)には、次の 3 種類があります。

  • DUID-LLT:DUID リンク層アドレスと時刻。DHCP デバイスに接続しているネットワーク インターフェイスのリンク層アドレスに、生成された時刻のタイムスタンプが追加されたものです。

  • DUID-EN:EN は、エンタープライズ番号(Enterprise Number)の略です。この DUID は、ベンダーに割り当てられた固有の ID に基づいています。

  • DUID-LL:DHCP(クライアント/サーバ)デバイスに永久的に接続されているネットワーク インターフェイスのリンク層アドレスを使用して形成される DUID です。

この機能をサポートしているシスコ デバイスは、DHCP クライアント(DHCPv6 要請パケット内のデバイス)を識別するのに DUID-EN(DUID タイプ 2)を使用します。Catalyst 9000 シリーズ スイッチは、DUID-EN だけでなく DUID-LL(DUID タイプ 3)もサポートしています。DUID-EN は優先される型です。ただし、スイッチがこの型を作成できない場合は、DUID-LL が作成されて使用されます。

iPXE の設定方法

iPXE の設定

手順の概要

  1. enable
  2. configure terminal
    • boot ipxe forever [switch number]
    • boot ipxe timeout seconds [switch number]
  3. boot system {switch switch-number | all} {flash: | ftp: | http: | usbflash0 | tftp:}
  4. end

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device> enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

  • boot ipxe forever [switch number]
  • boot ipxe timeout seconds [switch number]

例:

Device(config)# boot ipxe forever switch 2

例:

Device(config)# boot ipxe timeout 30 switch 2

BOOTMODE ROMmon 変数を設定します。

  • forever キーワードは、BOOTMODE ROMmon 変数を IPXE-FOREVER として設定します。

  • timeout キーワードは、BOOTMODE ROMmon 変数を IPXE-TIMEOUT として設定します。

ステップ 4

boot system {switch switch-number | all} {flash: | ftp: | http: | usbflash0 | tftp:}

例:

Device(config)# boot system switch 1 http://192.0.2.42/image-filename

または

Device(config)# boot system switch 1 http://[2001:db8::1]/image-filename

指定した場所からイメージを起動します。

  • リモートの FTP/HTTP/TFTP サーバには、IPv4 または IPv6 アドレスを使用できます。

  • 角かっこ内に IPv6 アドレスを入力する必要があります(RFC 2732 に従って)。そうしない場合、デバイスは起動しません。

ステップ 5

end

例:

Device(config)# end

グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

デバイス ブートの設定

デバイス ブートは、no boot ipxe または default boot ipxe コマンドのいずれかを使用して設定できます。

手順の概要

  1. enable
  2. configure terminal
    • no boot ipxe
    • default boot ipxe
  3. end

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:

Device> enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:

Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

  • no boot ipxe
  • default boot ipxe

例:

Device(config)# no boot ipxe

例:

Device(config)# default boot ipxe 

デバイス ブートを設定します。デフォルトのブート モードはデバイス ブートです。

デバイスでデフォルト設定を有効にします。

ステップ 4

end

例:

Device(config)# end

グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

iPXE の設定例

例:iPXE 構成

以下は、デバイスがイメージで起動するまで、DHCP 要求を期限なしで送信するように iPXE を設定する例を示しています。

Device# configure terminal  
Device(config)# boot ipxe forever switch 2    
Device(config)# end    


以下は、ブート モードを ipxe-timeout に設定する方法の例を示します。設定されているタイムアウト値は 200 秒です。設定されているタイムアウト経過後に iPXE ブート障害が発生する場合、設定されているデバイス ブートがアクティブになります。この例で、設定済みのデバイス ブートは http://[2001:db8::1]/image-filename です。

Device# configure terminal  
Device(config)# boot ipxe timeout 200 switch 2  
Device(config)# boot system http://[2001:db8::1]/image-filename  
Device(config)# end   


サンプルの iPXE ブート ログ

次に示すのは、ROMmon モードのデバイスからのサンプル ブート ログです。ここでは、ipxe-timeout コマンドを使用した手動ブートが設定されます。

switch: boot

pxemode:(ipxe-timeout) 60s timeout
00267.887 ipxe_get_booturl: Get URL from DHCP; timeout 60s
00267.953 ipxe_get_booturl: trying DHCPv6 (#1) for 10s
IPv4:
           ip addr 192.168.1.246
           netmask 255.255.255.0
           gateway 192.168.1.46
IPv6:
link-local addr fe80::ced8:c1ff:fe85:6f00
site-local addr fec0::ced8:c1ff:fe85:6f00
      DHCP addr 2001:db8::cafe
    router addr fe80::f29e:63ff:fe42:4756
     SLAAC addr 2001:db8::ced8:c1ff:fe85:6f00 /64
Common:
        macaddr cc:d8:c1:85:6f:00
            dns 2001:db8::46
       bootfile http://[2001:DB8::461/platform-pxe/edi46/17jan-dev.bin--13103--2017-Feb28--13-54-50
         domain cisco.com
00269.321 ipxe_get_booturl: got URL (http://[2001:DB8::461/platform-pxe/edi46/17jan-dev.bin--13103--2017-Feb-28--13-54-50)
Reading full image into memory ….….….….….….….….….….….….….….….….….….….….…...
Bundle Image
––––––––––––––––––––––––––––––––––––––––––––––-
Kernel Address    : 0x5377a7e4
Kernel Size       : 0x365e3c/3563068
Initramfs Address : 0x53ae0620
Initramfs Size    : 0x13a76f0/20608752
Compression Format: mzip

iPXE 用のサンプル DHCPv6 サーバ構成

次に示すのは、参考のために Internet Systems Consortium(ISC)の DHCP サーバから取得した DHCPv6 サーバ設定の例です。先頭に文字 # がある行は、続く構成を説明しているコメントです。


Default-least-time 600;
max-lease-time-7200;
log-facility local7;

#Global configuration
#domain search list
option dhcp6.domain-search "cisco.com" ;
#User-defined options:new-name code new-code = definition ;
option dhcp6.user-class code 15 = string ;
option dhcp6.vendor-class-data code 16 = string;

subnet6 2001:db8::/64 {
 #subnet range for clients requiring an address
 range6 2001:db8:0000:0000::/64;

#DNS server options
option dhcp6.name-servers 2001:db8::46;

}
#Client-specific parameters
host switch1 {
    #assigning a fixed IPv6 address
    fixed-address6 2001:DB8::CAFE ;
    #Client DUID in hexadecimal that contains: DUID-type "2" + "EN=9" + "Chassis serial number"
    host-identifier option dhcp6.client-id 00:02:00:00:00:09:46:4F:43:31:38:33:
31:58:31:41:53;
   option dhcp6.bootfile-url "http://[2001:DB8::461/platform-pxe/edi46/test-image.bin";
}

DHCP サーバ コマンドの詳細については、ISC DHCP サーバ の Web サイトを参照してください。

この設定例では、dhcp6.client-id オプションはスイッチを識別し、エンタープライズ クライアント DUID が続きます。クライアント DUID は、16 進形式の 00:02 + 00:00:00:09 + のシャーシ シリアル番号を理解するために分解できます。ここで 2 はエンタープライズ クライアント DUID タイプ、9 はシスコのエンタープライズ DUID の予約済みコードをそれぞれ参照し、16 進形式でのシャーシ シリアル番号の ASCII コードが続きます。このサンプルのスイッチのシャーシ シリアル番号は、FOC1831X1AS です。

ブート ファイル URI は、指定された DUID を使用してのみスイッチにアドバタイズされます。

DHCPv6 ベンダー クラス オプション 16 も、DHCP サーバ上のスイッチを識別するために使用できます。オプション 16 をユーザ定義オプションとして定義するには、次のように設定します。

option dhcp6.vendor-class-data code 16 = string; 

次に示すのは、スイッチ製品 ID を使用して形成された DHCPv6 ベンダー クラス オプション 16 に基づいてスイッチを識別する、DHCP サーバの構成例です。

# Source: dhcp6ConfigPID

host edi-46-ipxe6-auto-edi46 {
    fixed-address6 2001:DB8::1234;
    host-identifier option dhcp6.client-id 00:02:00:00:00:09:
    46:4F:43:31:38:33:31:58:31:58:31:41:53;
    if option dhcp6.vendor-class-data = 00:00:00:09:00:0E:57:
    53:2D:43:33:38:35:30:2D:32:34:50:2D:4C {
       option dhcp6.bootfile-url "http://[2001:DB8::461/platform-pxe/edi46/17jan-dev.bin";
    }
}

この構成例では、dhcp6.vendor-class-data オプションは、DHCPv6 オプション 16 を参照します。dhcp6.vendor-class-data で、00:00:00:09 はシスコのエンタープライズ DUID、0E は PID の長さ、および残りは 16 進形式の PID です。PID は、show inventory コマンドまたは CFG_MODEL_NUM ROMmon 変数の出力から特定することもできます。このサンプル構成で使用される PID は、WS-C3850-24P-L です。

サーバ構成の DHCPv6 オプションおよび DUID は、ISC DHCP サーバのガイドラインに従って、16 進形式で指定する必要があります。

iPXE のトラブルシューティングのヒント

この項では、トラブルシューティングのヒントを説明します。

  • 電源投入時に iPXE ブートが有効化されると、デバイスは、最初に DHCPv6 要請メッセージの送信を試行し、その後で、DHCPv4 検出メッセージの送信を試行します。ブート モードが ipxe-forever の場合、デバイスは、この 2 つを期限なしで反復し続けます。

  • 起動モードが iPXE タイムアウトの場合、デバイスは、最初に DHCPv6 要請メッセージを、次に DHCPv4 検出メッセージを送信した後、タイムアウト時間が経過すると、デバイス ブートにフォールバックします。

  • iPXE ブートを中断するには、コンソールにシリアル ブレイクを送信します。

    UNIX Telnet クライアントを使用している場合は、Ctrl キーを押した状態で ] キーを押すと、ブレイクが送信されます。その他の Telnet クライアントを使用している場合、またはシリアル ポートに直接接続している場合は、ブレイクの送信のトリガーは、別のキーストロークまたはコマンドの場合があります。

  • DHCP サーバはイメージで応答するものの DNS サーバがホスト名を解決できない場合、DNS デバッグを有効にします。


    (注)  


    ISC の DHCP サーバの使用をお勧めします。IOS の DHCP ではこの機能はまだ検証されていません。


  • HTTP サーバの接続をテストするには、HTTP コピーを使用して、HTTP サーバから少量のサンプル ファイルをデバイスにコピーします。たとえば ROMmon プロンプトで、copy http://192.168.1.1/test null: (フラッシュが通常はロックされており、テストに Null デバイスを使用する必要がある場合)または http://[2001:db8::99]/test と入力します。

  • 手動ブートが有効化されており、ブート モードが iPXE タイムアウトである場合、デバイスが電源投入時に自動的に起動することはありません。ROMmon モードで boot コマンドを実行します。ブート プロセスが電源投入時に自動で発生するようにするには、手動ブートを無効にします。

  • ROMmon モード の IPv6 アドレスやデフォルト ルータを含む現在の IPv6 パラメータを表示するには、net6-show コマンドを使用します。


    (注)  


    Catalyst 9000 シリーズ スイッチでは、 net-show show コマンドを使用します。


  • 設定に基づいて、net-dhcp または net6-dhcp コマンドを使用します。net-dhcp コマンドは DHCPv4 用のテスト コマンド、net6-dhcp コマンドは DHCPv6 用のテスト コマンドです。


    (注)  


    Catalyst 9000 シリーズ スイッチでは、DHCPv6 に net-dhcp -6 コマンドを使用します。


  • 名前を解決するには、dig コマンドを使用します。


    (注)  


    Catalyst 9000 シリーズ スイッチでは、dns-lookup コマンドを使用して名前を解決します。


  • Web サーバからの HTTP 応答コードを表示するには、HTTP デバッグ ログを有効にします。

  • ステートレス アドレス自動設定(SLAAC)アドレスが生成されない場合、IPv6 RA メッセージを提供するルータがありません。この場合、IPv6 での iPXE ブートは、リンクローカルまたはサイトローカルのアドレスでのみ使用できます。

iPXE に関する追加情報

関連資料

関連項目 マニュアル タイトル

プログラマビリティ コマンド

『Programmability Command Reference, Cisco IOS XE Everest 16.6.1』

標準および RFC

標準/RFC タイトル

RFC 3315

『Dynamic Host Configuration Protocol for IPv6 (DHCPv6)』

RFC 3986

『Uniform Resource Identifier (URI): Generic Syntax』

シスコのテクニカル サポート

説明 リンク

シスコのサポート Web サイトでは、シスコの製品やテクノロジーに関するトラブルシューティングにお役立ていただけるように、マニュアルやツールをはじめとする豊富なオンライン リソースを提供しています。

お使いの製品のセキュリティ情報や技術情報を入手するために、Cisco Notification Service(Field Notice からアクセス)、Cisco Technical Services Newsletter、Really Simple Syndication(RSS)フィードなどの各種サービスに加入できます。

シスコのサポート Web サイトのツールにアクセスする際は、Cisco.com のユーザ ID およびパスワードが必要です。

http://www.cisco.com/support

iPXE の機能情報

次の表に、このモジュールで説明した機能に関するリリース情報を示します。この表は、ソフトウェア リリース トレインで各機能のサポートが導入されたときのソフトウェアリリースだけを示しています。その機能は、特に断りがない限り、それ以降の一連のソフトウェアリリースでもサポートされます。

プラットフォームのサポートおよびシスコ ソフトウェアイメージのサポートに関する情報を検索するには、Cisco Feature Navigator を使用します。Cisco Feature Navigator にアクセスするには、www.cisco.com/go/cfn に移動します。Cisco.com のアカウントは必要ありません。
表 2. iPXE の機能情報

機能名

リリース

機能情報

iPXE

Cisco IOS XE Denali 16.5.1a

ネットワーク ブートローダは、IPv4/IPv6 デバイス ベースまたはネットワーク ベースの送信元からのブート処理をサポートします。ネットワーク ブート ソースは、iPXE のようなソリューションを使用して自動的に検出される必要があります。

この機能は、次のプラットフォームに実装されていました。

  • Catalyst 3650 シリーズ スイッチ

  • Catalyst 3850 シリーズ スイッチ

Cisco IOS XE Denali 16.6.1

Cisco IOS XE Denali 16.6.1 では、この機能は次のプラットフォームに実装されていました。

  • Catalyst 9300 シリーズ スイッチ

  • Catalyst 9500 シリーズ スイッチ

Cisco IOS XE Everest 16.6.2

この機能は、Cisco IOS XE Everest 16.6.2 で、Cisco Catalyst 9400 シリーズ スイッチに実装されました。

Cisco IOS XE Fuji 16.9.2

Cisco IOS XE Fuji 16.9.2 では、この機能は次のプラットフォームに実装されていました。

  • Cisco Catalyst 9200 シリーズ スイッチ

  • Cisco Catalyst 9300L SKU

Cisco IOS XE Gibraltar 16.11.1

Cisco IOS XE Gibraltar 16.11.1 では、この機能は Cisco Catalyst 9600 シリーズ スイッチに実装されていました。

IPXE IPv6 のサポート

Cisco IOS XE 16.8.1a

IPXE は IPv6 プロトコルをサポートしています。

この機能は、次のプラットフォームに実装されていました。

  • Catalyst 9300 シリーズ スイッチ

  • Catalyst 9400 シリーズ スイッチ

  • Catalyst 9500 シリーズ スイッチ