PowerOn Auto Provisioning の使用方法

この章は、次の内容で構成されています。

PowerOn Auto Provisioning の概要

PowerOn Auto Provisioning(POAP)は、ネットワークに初めて導入された Cisco Nexus スイッチに対して、ソフトウェア イメージのアップグレードとコンフィギュレーション ファイルのインストールのプロセスを自動化します。

POAP 機能を備えた Cisco Nexus シリーズ スイッチが起動し、スタートアップ構成が検出されない場合、スイッチは POAP モードを開始し、構成スクリプト ファイルが含まれていないか USB デバイスをチェックします。見つかった場合は、ソフトウェア イメージ ファイル、およびスイッチのコンフィギュレーション ファイルが含まれているかどうか、そのデバイスを確認します。

スイッチが USB デバイスを検出しない場合、または USB デバイスに必要なイメージ ファイルまたはスイッチのコンフィギュレーション ファイルが含まれていない場合、スイッチは DHCP サーバを見つけ、インターフェイス IP アドレス、ゲートウェイ、および DNS サーバ IP アドレスを使用してブートストラップします。さらに、スイッチは、イメージと必要な設定ファイルをダウンロードする TFTP サーバーの IP アドレス、または HTTP サーバーの URL を取得します。


(注)  


DHCP 情報は、構成ファイルが USB デバイスで見つからなかった場合にのみ使用できます。


POAP のためのネットワーク要件

POAP には、次のネットワーク インフラが必要です。

  • インターフェイス IP アドレス、ゲートウェイ アドレス、DNS サーバー、およびログ サーバーを自力で設定するための DHCP サーバー

  • ソフトウェア イメージのインストールと構成のプロセスを自動化する構成スクリプトが保管されている TFTP または HTTP サーバー

  • 必要なソフトウェア イメージとコンフィギュレーション ファイルが保管されている 1 台以上のサーバ

図 1. POAP ネットワーク インフラ

POAP コンフィギュレーション スクリプト

シスコから提供される参照スクリプトでは、次の機能がサポートされています。

  • スイッチ上にソフトウェア イメージ(システム イメージとキックスタート イメージ)がまだ存在しない場合は、それらのファイルをダウンロードします。ソフトウェア イメージがスイッチ上にインストールされ、次回のリブート時に使用されます。

  • ダウンロードされた設定がスイッチの次回のリブート時に適用されるようにスケジュールします。

  • 設定をスタートアップコンフィギュレーションとして保存します。

Python プログラミング言語と Tool Command Language(Tcl)を使用して開発されたコンフィギュレーション スクリプトのサンプルが用意されています。これらのスクリプトのいずれかを、自分のネットワーク環境に合わせてカスタマイズできます。

Python を使用したこのスクリプトのカスタマイズについては、ご使用のプラットフォームの Cisco NX-OS Python API Reference Guide を参照してください。

POAP 処理

POAP プロセスには次のフェーズがあります。

  1. 電源投入

  2. USB の検出

  3. DHCP の検出

  4. スクリプトの実行

  5. インストール後のリロード

これらのフェーズ内では、他の処理や分岐点が発生します。次に、POAP 処理のフロー図を示します。

図 2. POAP 処理

電源投入フェーズ

スイッチの初回電源投入時に、製造時にインストールされているソフトウェア イメージがロードされ、スイッチの起動後に適用される構成ファイルが検索されます。コンフィギュレーション ファイルが見つからなかった場合、POAP モードが開始されます。

起動中、POAP を中止して通常のセットアップに進むかどうかを確認するプロンプトが表示されます。POAP を終了することも、続行することもできます。


(注)  


POAP を続行する場合、ユーザの操作は必要ありません。POAP を中止するかどうかを確認するプロンプトは、POAP 処理が完了するまで表示され続けます。


POAP モードを終了すると、通常のインタラクティブなセットアップ スクリプトが開始されます。POAP モードを続行すると、前面パネルのすべてのインターフェイスがレイヤ 3レイヤ 2 モードにセットアップされます。それにより、デバイスがレイヤ 2 フォワーディングに参加しないことが保証されます。

USB 検出フェーズ

POAP が開始すると、プロセスはアクセス可能なすべての USB デバイスのルート ディレクトリから POAP の構成スクリプト ファイル(Python スクリプト ファイル、poap_script.py、または Tcl スクリプト ファイル、poap_script.tcl)、構成ファイル、およびシステムとキックスタート イメージを検索します。

構成スクリプト ファイルが USB デバイスにある場合は、POAP は構成スクリプトの実行を開始します。構成スクリプト ファイルが USB デバイスに存在しない場合は、POAP は DHCP の検出を実行します(障害が発生した場合は、POAP が成功または手動で POAP プロセスを停止するまで、POAP プロセスは USB 検出と DHCP 検出を交互に実行します)。

構成スクリプトで指定されたソフトウェア イメージおよびスイッチ構成ファイルが存在する場合、POAP は、それらのファイルを使用して、ソフトウェアをインストールし、スイッチを構成します。ソフトウェア イメージおよびスイッチ構成ファイルが USB デバイスに存在しない場合、POAP はクリーン アップをして DHCP フェーズを最初から開始します。

DHCP 検出フェーズ

スイッチは、すべてのアクティブ インターフェイス(mgmt インターフェイスを含む)で、DHCP サーバからの DHCP オファーを要請する DHCP 検出メッセージを送信します。Cisco Nexus スイッチ上の DHCP クライアントは、クライアント ID オプションにスイッチ シリアル番号またはその MAC アドレスを使用して、それ自体を DHCP サーバーに識別させます。DHCP サーバはこの ID を使用して、IP アドレスやスクリプト ファイル名などの情報を DHCP クライアントに返すことができます。

POAP には、最低 3600 秒(1 時間)の DHCP リース期間が必要です。POAP は、DHCP リース期間を確認します。DHCP リース期間が 3600 秒(1 時間)に満たない場合、POAP は DHCP ネゴシエーションを実行しません。

DHCP 検出メッセージはまた、一部のオプションを必須にし、DHCP OFFER を DHCP サーバーから受信した後、DHCP サーバーにこれらのオプションを請求します。
  • オプション 66(TFTP サーバー名)、オプション 150(TFTP サーバー アドレス):DHCP サーバーは、DHCP クライアントに TFTP サーバー名または TFTP サーバーのアドレスをリレーします。DHCP クライアントはこの情報を使用して TFTP サーバーに接続し、スクリプト ファイルを取得します。

  • IP アドレス

  • デフォルト ゲートウェイ

  • オプション 67(ブートファイル名):DHCP サーバーは、DHCP クライアントにブートファイル名をリレーします。ブートファイル名には、TFTP サーバ上のブートファイルへの完全パスが含まれます。DHCP クライアントは、この情報を使用してスクリプト ファイルをダウンロードします。

要件を満たす複数の DHCP オファーが受信された場合は、1 つのオファーがランダムに選択されます。デバイスは、選択された DHCP サーバとの DHCP ネゴシエーション(要求と確認応答)を実行し、DHCP サーバはスイッチに IP アドレスを割り当てます。POAP 処理の後続のステップでエラーが発生すると、IP アドレスは DHCP に戻されます。

要件を満たす DHCP オファーが存在しない場合、スイッチは DHCP ネゴシエーション(要求と確認応答)を実行せず、IP アドレスは割り当てられません。POAP プロセスは、成功するか、手動で POAP プロセスを中断するまで再起動されます。

図 3. DHCP 検出フェーズ


スクリプトの実行フェーズ

デバイスが DHCP 確認応答内の情報を使用して自身の構成を行った後、スイッチはスクリプト ファイルを TFTP サーバーまたは HTTP サーバーからダウンロードします。

スイッチは、コンフィギュレーション スクリプトを実行します。これにより、ソフトウェア イメージのダウンロードとインストール、およびスイッチ固有のコンフィギュレーション ファイルのダウンロードが行われます。

ただし、この時点では、コンフィギュレーション ファイルはスイッチに適用されません。スイッチ上で現在実行中のソフトウェア イメージがコンフィギュレーション ファイル内の一部のコマンドをサポートしていない可能性があるためです。新しいソフトウェア イメージがインストールされた場合、スイッチのリブート後にそのソフトウェア イメージの実行が開始されます。その時点でスイッチにコンフィギュレーションが適用されます。


(注)  


スイッチの接続が切断されると、スクリプトは停止し、スイッチはオリジナルのソフトウェア イメージとブートアップ変数をリロードします。


インストール後のリロード フェーズ

スイッチが再起動し、アップグレードされたソフトウェア イメージ上でコンフィギュレーションが適用(リプレイ)されます。その後、スイッチは、実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーします。

POAP の注意事項および制約事項

  • この機能が動作するには、Cisco Nexus スイッチ ソフトウェア イメージで POAP をサポートしている必要があります。

  • POAP は startup-config が存在する場合でも、boot poap enable コマンドを使用してトリガーできます。

  • Cisco NX-OS リリース 7.0(3)I7(8) 以降、POAP で skip_multi_level オプションを使用して、single_image アップグレードを実行できます。

  • POAP を使用してブートストラップされている Cisco Nexus デバイスに接続されたアップリンク デバイスに、LACP レイヤ 3 ポートチャネルが設定されている場合、すべてのメンバー リンクが一時停止状態になるため、このポートチャネルはアクティブになりません。したがって、POAP を使用してブートストラップされている Cisco Nexus デバイスは、DHCP サーバや、POAP に必要なその他のインフラストラクチャ デバイスに到達できません。この問題を回避するには、POAP を使用してブートストラップされている Cisco Nexus デバイスに接続するアップリンク デバイスに、スタティック L3 ポートチャネルを設定します。

  • POAP を使用して、VPC リンクでスタティック ポートチャネルを使用する vPC ペアの一部である Cisco Nexus デバイスをブートストラップする場合、POAP のスタートアップ時に、Cisco Nexus デバイスによってすべてのリンクがアクティブ化されます。VPC リンクの最後にデュアル接続されたデバイスは、Cisco Nexus デバイスに接続されたポートチャネル メンバー リンクへの一部、またはすべてのトラフィックの送信を開始する場合があり、それらのトラフィックは失われます。

    この問題を回避するには、リンクが、POAP を使用してブートストラップされている Cisco Nexus デバイスへのトラフィックの転送を誤って開始しないように、vPC リンクに LACP を設定します。

  • 重要な POAP の更新は syslog に記録され、シリアル コンソールから使用可能になります。

  • 重大な POAP エラーは、ブートフラッシュに記録されます。ファイル名のフォーマットは date-time_poap_PID_[init,1,2].log です。ここで、 date-time のフォーマットは YYYYMMDD_hhmmss で、PID はプロセス ID になります。

  • スクリプト ログは、ブートフラッシュ ディレクトリに保存されます。ファイル名のフォーマットは date-time_poap_PID_script.log です。ここで、 date-time のフォーマットは YYYYMMDD_hhmmss で、PID はプロセス ID になります。

  • POAP を使用して、スケジューラ コンフィギュレーションをリプレイすることはできません。スケジューラ コンフィギュレーションをリプレイできない理由は、スケジューラ コンフィギュレーションが作成されたときにログインしていたユーザ(「admin」など)に関連付けられるためです。POAP を使用したコンフィギュレーションのリプレイは特定のユーザに関連付けられないので、スケジューラ コンフィギュレーションはリプレイできずに失敗します。

    スケジューラを設定する代わりに、Embedded Event Manager(EEM)を設定してください。EEM コンフィギュレーションは、POAP を使用してダウンロードし、リプレイできます。

  • DHCP 応答が IP アドレス 255.255.255.255 に設定されている場合、NX-OS の DHCP は成功します。IOS DHCP サーバーを含むすべての DHCP サーバーが DHCP 応答を 255.255.255.255 に送信するわけではないため、NX-OS は IP アドレスを取得できず、その結果 POAP は成功しません。

  • NX-OS 7.0(3)I7(4) 以降では、RFC 3004(DHCP のユーザー クラス オプション)により、Nexus 3000 スイッチで IPv6 上の POAP がサポートされます。ただし、Nexus 3500 スイッチでは IPv6 上の POAP はサポートされていません。

  • 安全な POAP の場合は、DHCP スヌーピングが有効になっていることを確認してください。

  • POAP をサポートするには、ファイアウォール ルールを設定して、意図しないまたは悪意のある DHCP サーバーをブロックします。

  • システムのセキュリティを維持し、POAP をより安全にするには、次のように構成します。

    • DHCP スヌーピングをイネーブルにします。

    • ファイアウォール ルールを設定して、意図しない、または悪意のある DHCP サーバーをブロックします。

  • POAP は、MGMT ポートとインバンド ポートの両方でサポートされます。

POAP を使用するためのネットワーク環境の設定

手順の概要

  1. シスコが提供する基本設定スクリプトを変更するか、独自のスクリプトを作成します。
  2. (任意) POAP の構成スクリプトおよびその他の必要なソフトウェア イメージおよびスイッチの構成 ファイルを、スイッチからアクセスできる USB デバイスに配置します。
  3. DHCP サーバを配置し、このサーバにインターフェイス、ゲートウェイ、および TFTP サーバの IP アドレスと、コンフィギュレーション スクリプト ファイルのパスと名前が指定されたブートファイルを設定します。(この情報は、最初の起動時にスイッチに提供されます)。
  4. 構成スクリプトをホストするための TFTP または HTTP サーバを展開します。
  5. ソフトウェア イメージおよびコンフィギュレーション ファイルをホストするための 1 つまたは複数のサーバを配置します。

手順の詳細


ステップ 1

シスコが提供する基本設定スクリプトを変更するか、独自のスクリプトを作成します。

ステップ 2

(任意) POAP の構成スクリプトおよびその他の必要なソフトウェア イメージおよびスイッチの構成 ファイルを、スイッチからアクセスできる USB デバイスに配置します。

ステップ 3

DHCP サーバを配置し、このサーバにインターフェイス、ゲートウェイ、および TFTP サーバの IP アドレスと、コンフィギュレーション スクリプト ファイルのパスと名前が指定されたブートファイルを設定します。(この情報は、最初の起動時にスイッチに提供されます)。

すべてのソフトウェア イメージおよびスイッチ構成ファイルが USB デバイスにある場合は、DHCP サーバーを配置する必要はありません。

ステップ 4

構成スクリプトをホストするための TFTP または HTTP サーバを展開します。

ステップ 5

ソフトウェア イメージおよびコンフィギュレーション ファイルをホストするための 1 つまたは複数のサーバを配置します。


POAP を使用するスイッチの設定

始める前に

POAP を使用するためにネットワーク環境がセットアップされていることを確認します。詳細については、このセクションの直前の「POAP を使用するためのネットワーク環境のセットアップ」セクションを参照してください。

手順の概要

  1. ネットワークにスイッチを設置します。
  2. スイッチの電源を投入します。
  3. (オプション)POAP モードを終了して、通常のインタラクティブ セットアップ スクリプトを開始する場合は、y (yes)を入力します。

手順の詳細


ステップ 1

ネットワークにスイッチを設置します。

ステップ 2

スイッチの電源を投入します。

構成ファイルが見つからない場合は、スイッチは POAP モードで起動して、POAP を中止して通常のセットアップで続行するかどうかを尋ねるプロンプトが表示されます。

POAP モードで起動を続行するためのエントリは必要ありません。

ステップ 3

(オプション)POAP モードを終了して、通常のインタラクティブ セットアップ スクリプトを開始する場合は、y (yes)を入力します。

スイッチが起動して、POAP 処理が開始されます。詳細については、「POAP プロセス」のセクションを参照してください。


次のタスク

設定を確認します。

デバイス コンフィギュレーションの確認

構成を確認するためには、次のいずれかのコマンドを使用します。

コマンド

目的

show running-config

Running Configuration を表示します

show startup-config

スタートアップ コンフィギュレーションを表示します。

これらのコマンドの出力フィールドの詳細については、ご使用のデバイスの Cisco Nexus コマンド参考資料を参照してください。

POAP の関連資料

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

コンフィギュレーション スクリプト

『Cisco Nexus 3000 Series NX-OS Python API Reference Guide』

『DHCP Options and BOOTP Vendor Extensions』

RFC2132—http://tools.ietf.org/html/rfc2132

『TFTP Server Address Option for DHCPv4』

RFC5859—http://tools.ietf.org/html/rfc5859