ネットワーク ブートローダは、ネットワーク ベースのソースからのブート処理をサポートします。ブートローダは、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 ブートローダのワークフロー
ブートローダは DHCP 検出メッセージを送信し、サーバが応答すると、ブートローダは DHCP 要求を送信します。
DHCP 応答には、IP アドレスとのブート ファイル名が含まれています。ブート ファイル名は、ブート イメージが TFTP サーバ(tftp://server/filename)、FTP サーバ(ftp://userid:password@server/filename)、または
HTTP サーバ(http://server/filename)から取得されることを示しています。
ブートローダがネットワーク ソースからイメージをダウンロードして起動します。
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 に設定されている必要があります。