PowerOn Auto Provisioning の概要
PowerOn Auto Provisioning(POAP)は、ネットワークに初めて導入された Cisco Nexus スイッチに対して、ソフトウェア イメージのアップグレードとコンフィギュレーション ファイルのインストールのプロセスを自動化します。
POAP 機能を備えた Cisco Nexus Series スイッチが起動し、スタートアップ構成が検出されない場合、スイッチは POAP モードを開始し、構成スクリプト ファイルが含まれていないか USB デバイスをチェックします。見つかった場合は、ソフトウェア イメージ ファイル、およびスイッチのコンフィギュレーション ファイルが含まれているかどうか、そのデバイスを確認します。
スイッチが USB デバイスを検出しない場合、または USB デバイスに必要なイメージ ファイルまたはスイッチのコンフィギュレーション ファイルが含まれていない場合、スイッチは DHCP サーバを見つけ、インターフェイス IP アドレス、ゲートウェイ、および DNS サーバ IP アドレスを使用してブートストラップします。さらに、スイッチは、イメージと必要な設定ファイルをダウンロードする TFTP サーバーの IP アドレス、または HTTP サーバーの URL を取得します。
(注) |
DHCP 情報は、構成ファイルが USB デバイスで見つからなかった場合にのみ使用できます。 |
POAP のためのネットワーク要件
POAP には、次のネットワーク インフラが必要です。
-
インターフェイス IP アドレス、ゲートウェイ アドレス、DNS サーバー、およびログ サーバーを自力で設定するための DHCP サーバー
-
ソフトウェア イメージのインストールと構成のプロセスを自動化する構成スクリプトが保管されている TFTP または HTTP サーバー
-
必要なソフトウェア イメージとコンフィギュレーション ファイルが保管されている 1 台以上のサーバ
POAP コンフィギュレーション スクリプト
シスコから提供される参照スクリプトでは、次の機能がサポートされています。
-
スイッチ上にソフトウェア イメージ(システム イメージとキックスタート イメージ)がまだ存在しない場合は、それらのファイルをダウンロードします。ソフトウェア イメージがスイッチ上にインストールされ、次回のリブート時に使用されます。
-
ダウンロードされた設定がスイッチの次回のリブート時に適用されるようにスケジュールします。
-
設定をスタートアップコンフィギュレーションとして保存します。
Python プログラミング言語と Tool Command Language(Tcl)を使用して開発されたコンフィギュレーション スクリプトのサンプルが用意されています。これらのスクリプトのいずれかを、自分のネットワーク環境に合わせてカスタマイズできます。
Python を使用したこのスクリプトのカスタマイズについては、ご使用のプラットフォームの Cisco NX-OS Python API Reference Guide を参照してください。
POAP 処理
POAP プロセスには次のフェーズがあります。
-
電源投入
-
USB の検出
-
DHCP の検出
-
スクリプトの実行
-
インストール後のリロード
これらのフェーズ内では、他の処理や分岐点が発生します。次に、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 ネゴシエーションを実行しません。
-
オプション 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 プロセスを中断するまで再起動されます。
スクリプトの実行フェーズ
デバイスが DHCP 確認応答内の情報を使用して自身の構成を行った後、スイッチはスクリプト ファイルを TFTP サーバーまたは HTTP サーバーからダウンロードします。
スイッチは、コンフィギュレーション スクリプトを実行します。これにより、ソフトウェア イメージのダウンロードとインストール、およびスイッチ固有のコンフィギュレーション ファイルのダウンロードが行われます。
ただし、この時点では、コンフィギュレーション ファイルはスイッチに適用されません。スイッチ上で現在実行中のソフトウェア イメージがコンフィギュレーション ファイル内の一部のコマンドをサポートしていない可能性があるためです。新しいソフトウェア イメージがインストールされた場合、スイッチのリブート後にそのソフトウェア イメージの実行が開始されます。その時点でスイッチにコンフィギュレーションが適用されます。
(注) |
スイッチの接続が切断されると、スクリプトは停止し、スイッチはオリジナルのソフトウェア イメージとブートアップ変数をリロードします。 |
インストール後のリロード フェーズ
スイッチが再起動し、アップグレードされたソフトウェア イメージ上でコンフィギュレーションが適用(リプレイ)されます。その後、スイッチは、実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーします。