このドキュメントでは、Cisco NX-OSを実行するCisco Nexus 9000スイッチのPowerOn Auto Provisioning(POAP)について説明します。
次の項目に関する基本的な知識が推奨されます。
| コンポーネント | プラットフォーム/ソフトウェア | バージョン/値 | 目的 |
|---|---|---|---|
| Nexus スイッチ | N9K-C9336C-FX2 | NX-OS 10.6(2) | POAPデバイス |
| Provisioning Server | Ubuntuサーバ | 24.04.5 LTS | 外部プロビジョニングインフラストラクチャ |
| DHCP/TFTPサービス | dnsmasq | 2.91 | DHCPおよびTFTPサービスを提供する |
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
この実習では、外部プロビジョニングインフラストラクチャを提供するUbuntuサーバに直接接続されたCisco Nexus 9000スイッチを使用します。
目的は、トポロジをシンプルに保つことです。これにより、Nexusスイッチとプロビジョニングサーバの間に追加のネットワークデバイスを配置しなくても、POAPワークフローを確認できます。
NexusスイッチのEthernet1/10は、Ubuntuサーバのens224に直接接続されています。

新しいCisco Nexusスイッチを導入するには、デバイスをネットワークに参加させる前に初期設定が必要です。
PowerOn Auto Provisioning(POAP)は、このブートストラッププロセスを自動化します。サポートされているNexusスイッチがスタートアップコンフィギュレーションなしで起動した場合、Cisco NX-OSはPOAPモードに入り、DHCPを介して一時的なネットワーク情報を取得し、プロビジョニングスクリプトを取得し、そのスクリプトを使用して必要なソフトウェアイメージとデバイス設定をプロビジョニングできます。
POAPは主に初期(Day-0)プロビジョニングに関連付けられます。これは、スイッチが、CLIを使用して設定全体を手動で入力しなくても、導入に必要なリソースを取得できるためです。
POAPを使用しない場合、Nexusスイッチの初期導入では、ネットワーク接続の設定、設定ファイルの転送、および必要なCisco NX-OSソフトウェアイメージの準備を手動で行う必要があります。
POAPを使用すると、スイッチはプロビジョニングインフラストラクチャを自動的に検出し、導入に必要なリソースを取得できます。
POAPの概要は、サポートされているNexusスイッチがスタートアップコンフィギュレーションなしで起動した時点で開始します。スイッチはプロビジョニングプロセスを開始し、プロビジョニングインフラストラクチャにアクセスするために必要なネットワーク情報の取得を試みます。
ネットワーク接続が確立されると、スイッチはPOAPスクリプトを取得して実行します。このスクリプトは、デバイスに関連付けられたソフトウェアイメージと設定リソースを決定し、残りのプロビジョニング操作を制御します。
シスコでは、POAPプロセスを次の5つの主要なフェーズで定義しています。
次のセクションでは、プロビジョニングプロセス中の各フェーズの役割について説明します。
POAPは、Cisco NX-OSの段階的なブートストラッププロセスとして動作します。各フェーズでは、自動デバイスプロビジョニングに必要な特定の機能が実行されます。
これらのフェーズを理解することで、このドキュメントで後述する実装および検証のワークフローの基盤が得られます。
Nexusスイッチの電源を投入すると、Cisco NX-OSはインストールされたソフトウェアイメージをロードし、スタートアップコンフィギュレーションを検索します。
スタートアップコンフィギュレーションが存在する場合、スイッチは通常のブートプロセスを続行します。スタートアップコンフィギュレーションが見つからない場合は、POAPモードが開始されます。
NX-OSの起動時に、POAPを中断して通常のインタラクティブ設定を続行するためのオプションを示すプロンプトが表示されます。POAPはユーザの介入なしで続行されます。
POAPが引き続き使用される場合、検出プロセスが開始される前に、前面パネルインターフェイスはデフォルト設定に設定されます。
| 条件 | 結果 |
|---|---|
| スタートアップコンフィギュレーションが存在します。 | NX-OSは通常のブートプロセスを続行します。 |
| スタートアップコンフィギュレーションが存在しません。 | POAPモードが開始されます。 |
| POAPが手動で中断された。 | NX-OSが通常のインタラクティブセットアップに移行します。 |
| POAPは続行されます。 | プロセスはUSBの検出に進みます。 |
POAPの起動後、NX-OSはアクセス可能なUSBデバイスを検索してリソースをプロビジョニングします。
USBデバイスでPOAPスクリプトが見つかると、NX-OSはスクリプトの実行を開始します。使用可能なスクリプトが見つからない場合、POAPはDHCPディスカバリに進みます。
USBベースのプロビジョニングはPOAPワークフローの一部ですが、このドキュメントの実装では、DHCPを介したネットワークベースのプロビジョニングに重点を置いています。
USBディスカバリ中にPOAPスクリプトが見つからない場合、スイッチはDHCPディスカバリを開始します。
このフェーズでは、スイッチは使用可能な前面パネルインターフェイスまたは管理インターフェイスを介してDHCP Discoverメッセージを送信し、POAPに必要な情報を提供できるDHCPサーバを探します。
Cisco Nexus DHCPクライアントは、クライアントIDでスイッチのシリアル番号を使用します。この情報は、プロビジョニングインフラストラクチャでデバイスを識別し、プロビジョニングプロセスに必要なブートストラップ情報を提供するために使用できます。
DHCPネゴシエーションでは、標準のDiscover、Offer、Request、Acknowledgment(DORA)プロセスを使用します。
| DHCPメッセージ | 目的 |
|---|---|
| Discover | Nexusスイッチが使用可能なDHCPサーバを検索します。 |
| オファー | DHCPサーバは、ネットワークおよびPOAP関連の情報を提供します。 |
| Request | スイッチは選択されたDHCPオファーを要求します。 |
| 確認応答 | DHCPサーバはリースを確認し、IPアドレスを割り当てます。 |
ネットワークベースのPOAPの場合、DHCP交換は、POAPスクリプトを見つけるために必要な一時的なネットワーク情報とブートストラップパラメータを提供します。
DHCP Discoverメッセージは、次の情報を要求します。
ブートファイル名は、DHCPネゴシエーションが完了した後にスイッチが取得するPOAPスクリプトを識別します。
DHCPでは、最終的なCisco Nexus設定は提供されません。一時的な接続を確立し、プロビジョニングスクリプトを検索するために必要なブートストラップ情報を提供します。
POAPでは、3600秒の最小DHCPリース期間が必要です。
DHCP Offerを受信しても、DHCPディスカバリが成功するとは限りません。オファーは、スイッチがDHCP要求および確認応答の交換を続行する前に、POAPで期待される要件を満たす必要があります。
有効なオファーが受信されない場合、そのオファーを介してIPアドレスは割り当てられません。
Cisco NX-OSリリース7.0(3)I7(4)以降、POAPはRFC 3004で定義されているDHCPユーザクラスオプションをサポートしています。
DHCPv4では、POAPはCisco-POAPという値のユーザクラスオプション77を使用します。
この値は、DHCP要求がPOAPプロセスから発信されたものであることを示します。
Cisco-POAPの値は、検証中に使用されるパケットキャプチャで後から確認できます。
DHCPネゴシエーションが完了すると、スイッチはDHCPサーバから受信したプロビジョニング情報を使用して、POAPスクリプトを検索して取得します。
このドキュメントで使用されている標準のネットワークベースのワークフローでは、DHCP情報によって、プロビジョニングスクリプトが含まれているTFTPサーバとブートファイルが識別されます。一時的なネットワーク接続が確立されると、Cisco NX-OSはプロビジョニングサーバからスクリプトをダウンロードします。
POAPスクリプトには、デバイスに関連付けられたソフトウェアイメージと設定リソースを判別して処理するために必要なロジックが含まれています。
シスコでは、Pythonで記述されたリファレンスPOAPスクリプトを提供しています。スクリプトは、プロビジョニング環境に合わせてカスタマイズできます。
シスコのリファレンスPOAPスクリプトには、MD5チェックサムが含まれています。
スクリプトが変更されると、スクリプトをPOAPに使用する前に、埋め込みチェックサムを再計算する必要があります。
チェックサムの準備手順については、「ファイル整合性情報の準備」セクションで後述します。
POAPスクリプトのダウンロードと検証が完了すると、Cisco NX-OSはスイッチ上でローカルにスクリプトを実行します。
参照スクリプトでは、次のようなプロビジョニングタスクを実行できます。
ダウンロードした設定は、スクリプトの実行中に必ずしも即座に適用されません。
Cisco NX-OSでは、設定をステージングし、スイッチがターゲットソフトウェアイメージを使用してブートした後に適用できます。したがって、設定は、それが準備されたソフトウェア環境で処理されます。
POAPスクリプトは、ターゲットのCisco NX-OSイメージがすでにローカルで使用可能であるかどうかを判別できます。
必要なイメージが存在しない場合、スクリプトはプロビジョニングインフラストラクチャからイメージを取得できます。
必要なイメージがすでに使用可能な場合、スクリプトは既存のファイルを検証し、別のコピーのダウンロードを回避できます。
検証された実装では、ターゲットイメージはbootflash:にすでに存在していました。残りのプロビジョニング操作を続行する前に、スクリプトによってイメージが検証されました。
スクリプトの実行が完了すると、スイッチはインストール後のリロードフェーズに入ります。
このフェーズでは、ソフトウェアイメージの変更がプロビジョニングプロセスの一部である場合、スイッチが再起動し、ターゲットのCisco NX-OSソフトウェアイメージでブートします。
次に、スイッチはダウンロードした設定を適用またはリプレイします。設定が正常に適用されると、Cisco NX-OSは実行コンフィギュレーションをスタートアップコンフィギュレーションにコピーします。
このシーケンスにより、プロビジョニングされた設定が、準備されたソフトウェア環境で確実に処理されます。
設定のリプレイは、スイッチの再起動後のPOAP中にダウンロードされた設定をCisco NX-OSが適用するプロセスです。
コンフィギュレーションファイルは、最初のダウンロード時に必ずしも適用されません。代わりに、POAPはスクリプトの実行中に設定をステージングし、ターゲットのCisco NX-OSイメージがアクティブになった後に適用できます。
プロセスは次のように要約できます。
| 段階 | アクション |
|---|---|
| スクリプトの実行 | 必要なソフトウェアイメージと設定を取得します。 |
| インストール後のリロード | プロビジョニング操作の後にスイッチを再起動します。 |
| 設定のリプレイ | ダウンロードした設定を適用します。 |
| 構成の持続性 | 実行コンフィギュレーションをスタートアップコンフィギュレーションにコピーします。 |
この設定の取得と設定アプリケーションの分離は、POAPワークフローの重要な部分です。
ネットワークベースのPOAPでは、一時的なネットワーク接続とプロビジョニングリソースへのアクセスを提供するために、外部インフラストラクチャが必要です。
標準的なPOAPワークフローでは、必要なインフラストラクチャは次のとおりです。
DHCPを通じて取得されたネットワーク情報は、POAPプロビジョニングプロセスで使用されます。
このセクションでは、ネットワークベースのPowerOn Auto Provisioning(POAP)をCisco Nexus 9000スイッチに実装するために必要なコンポーネントについて説明します。
POAPは、一時的なネットワーク接続とプロビジョニングリソースへのアクセスを提供するために、外部DHCPとファイル転送サービスに依存します。サードパーティ製のサーバプラットフォームの設定は、このドキュメントの対象範囲外です。
このセクションの例では、POAPの実装を示すために前述のトポロジを使用します。
検証済みの実装では、プロビジョニングインフラストラクチャが、POAPの実行中にNexusスイッチに必要な一時的なネットワーク情報とファイル転送サービスを提供します。
DHCPインフラストラクチャは、一時的な接続を確立し、POAPスクリプトを検索するために必要な情報を提供する必要があります。POAPでは、3600秒以上のDHCPリースが必要です。
| 情報 | 目的 |
|---|---|
| IP アドレス | POAP中に一時的なネットワーク接続を提供します。 |
| サブネット マスク | 一時IPサブネットを定義します。 |
| デフォルト ゲートウェイ | ルーティングが必要なときにプロビジョニングリソースへの接続を提供します。 |
| TFTPサーバの名前またはアドレス | POAPスクリプトを取得するサーバを指定します。 |
| ブートファイル名 | NexusスイッチがダウンロードするPOAPスクリプトを示します。 |
有効なDHCPオファーが選択されると、NexusスイッチはDHCPネゴシエーションを完了し、プロビジョニングプロセス中に割り当てられたネットワーク情報を使用します。
このドキュメントで検証された例では、プロビジョニングインフラストラクチャは次の値を使用します。
| パラメータ | ラボの価値 |
|---|---|
| POAPネットワーク | 192.168.100.0/24 |
| Provisioning Server | 192.168.100.1 |
| DHCPアドレス範囲 | 192.168.100.100–192.168.100.110 |
| DHCPリース | 2 時間 |
| TFTP サーバ | 192.168.100.1 |
| POAPスクリプト | ポインタ.py |
| Nexusインターフェイス | Ethernet1/10 |
この例で使用するプロビジョニングサーバはUbuntuを実行し、実装に必要なDHCPサービスとTFTPサービスを提供します。サードパーティ製サーバソフトウェアの詳細な設定については、このドキュメントでは扱いません。
シスコでは、Pythonで開発されたリファレンスPOAPスクリプトを提供しています。プロビジョニング環境に合わせて、ユーザが編集できるオプションを変更します。
POAPスクリプトは、プロビジョニングオーケストレータとして機能します。Nexusスイッチがスクリプトをダウンロードして検証した後、スクリプトは、プロビジョニングに必要な設定リソースとソフトウェアイメージリソースをスイッチが取得して処理する方法を決定します。
検証された実装では、次のオプションが使用されます。
オプション= { "username": "root", "password": "password", "hostname": "192.168.100.1", "transfer_protocol": "tftp", "mode": "serial_number", "target_system_image": "nxos64-cs.10.6.2.F.bin", "config_path": "/", "target_image_path": "/", }
この例に示す値は、ラボ環境に対応しています。実稼働環境の価値は、プロビジョニングインフラストラクチャと導入要件によって異なります。
| オプション | ラボの価値 | 目的 |
|---|---|---|
| ホスト名 | 192.168.100.1 | プロビジョニングファイルの取得元のサーバを指定します。 |
| 転送プロトコル | TFTP | ファイル転送プロトコルを定義します。 |
| モード | serial_number | スイッチのシリアル番号を使用して、デバイス固有のコンフィギュレーションファイルを選択します。 |
| target_system_image(ターゲットシステムのイメージ) | nxos64-cs.10.6.2.F.bin(入手可能) | ターゲットCisco NX-OSイメージを定義します。 |
| config_pathを使用します。 | / | デバイス構成を含むパスを定義します。 |
| target_image_path(ターゲットイメージのパス) | / | ターゲットソフトウェアイメージを含むパスを定義します。 |
参照スクリプトでは、リモートサーバからファイルを取得するときに、ホスト名、ユーザ名、およびパスワードが必要です。この例では、ユーザ名とパスワードの認証を提供しないTFTPを使用していますが、参照スクリプトは初期化中にこれらのパラメータの存在を引き続き検証します。
検証済みの実装では、次のものを使用します。
"mode": "serial_number"
serial_numberモードでは、スクリプトはローカルスイッチのシリアル番号を取得し、それを使用して対応するコンフィギュレーションファイルを決定します。
以下に、いくつかの例を示します。
スイッチのシリアル番号:FDO262921L3
コンフィギュレーションファイル: conf.FDO262921L3
コンフィギュレーションファイルは、conf.<serial-number>の形式を使用します。
したがって、各スイッチが独自のデバイス固有の設定を取得する間、同じpoap.pyスクリプトで複数のNexusスイッチをサポートできます。
検証されたスクリプトは、おおまかに次のシーケンスを実行します。
スイッチを特定します。 ↓ conf.<serial-number>を選択します。 ↓構成を取得して検証します。 ↓ターゲットのCisco NX-OSイメージを決定します。 ↓イメージを検証または取得します。 ↓リプレイの設定の準備。 ↓プロビジョニングワークフローを完了します。
POAPスクリプトには、完全なデバイス設定は含まれていません。プロビジョニングリソースを検索、検証、処理するために必要なロジックとパラメータが含まれています。
デバイス設定ファイルには、POAPがターゲットのNexusスイッチにプロビジョニングするCisco NX-OS設定が含まれています。
この例で使用されているスイッチでは、serial_numberモードによって次のコンフィギュレーションファイルが選択されます。
シリアル番号:FDO262921L3
コンフィギュレーションファイル: conf.FDO262921L3
コンフィギュレーションファイルには、目的のDay-0設定を確立するために必要なコマンドが含まれています。
検証された実装では、設定に管理ユーザ、ホスト名、およびループバックインターフェイスが含まれています。
username admin password <removed> role network-admin hostname N9K-POAP-SW1 interface loopback100 description POAP-VALIDATION ip address 10.255.255.100/32 no shutdown
プロビジョニングワークフローの検証を簡素化するために、意図的に最小限の設定にします。
POAPが完了すると、ホスト名、管理アカウント、およびLoopback100インターフェイスによって、デバイス固有の設定が正常に適用されたという明確なインジケータが提供されます。
プロビジョニング済み設定には、POAPの完了後に必要な管理アクセス権が含まれている必要があります。
注意:デバイス設定に有効な管理ユーザとパスワードが含まれていることを確認してください。POAPは、プロビジョニングされた設定が有効な管理アクセスを提供しない場合でも、正常に完了できます。
ラボの初期検証時に、デバイス設定にホスト名とLoopback 100インターフェイスが含まれていましたが、管理ユーザは含まれていませんでした。POAPは正常に完了しましたが、プロビジョニング後に管理アクセスを使用できませんでした。
POAPが完了すると、プロビジョニングワークフローが正常に完了したことを確認できます。Day-0設定には、スイッチの操作とアクセスに必要なすべての設定が含まれているかどうかは確認されません。
リファレンスPOAPワークフローでは、Nexusスイッチで処理する前に、MD5チェックサムを使用してプロビジョニングリソースの整合性を検証します。
POAPは、予想されるチェックサムと、対応するファイルから計算されたチェックサムを比較します。値が一致すると、ファイルに必要なデータが含まれていることが確認されます。
検証された実装では、次のリソースの整合性に関する情報が使用されます。
| リソース | 整合性に関する情報 | 目的 |
|---|---|---|
| POAPスクリプト | poap.pyに埋め込まれたMD5値 | 実行前にスクリプトを検証します。 |
| デバイス設定 | conf.FDO262921L3.md5 | ダウンロードしたデバイス設定を検証します。 |
| Cisco NX-OSイメージ | nxos64-cs.10.6.2.F.bin.md5 | ターゲットソフトウェアイメージを検証します。 |
参照スクリプトのdisable_md5オプションは、MD5検証を制御します。デフォルト値はFalseです。
参照POAPスクリプトには、ファイルの先頭近くにMD5値が含まれています。
#md5sum="<md5-value>"
スクリプトの内容を変更した後、スクリプトをPOAPに使用する前に、埋め込みチェックサムを再計算する必要があります。
この実装で使用されるスクリプトでは、チェックサムが次のように更新されました。
f=poap.py cat "$f" | sed '/^#md5sum/d' > "$f.md5" sed -i "s/^#md5sum=.*/#md5sum=\"$(md5sum "$f.md5" | sed 's/ .*/')\"/" "$f" rm -f "$f.md5"
結果のスクリプトには次のものが含まれています。
#md5sum="e4dd91fd4296d40abd2f6187152cd86e"
POAPの実行中、Cisco NX-OSはダウンロードされたスクリプトのチェックサムを計算し、スクリプト実行前に埋め込まれた値と比較します。
参照スクリプトでは、デバイス設定を確認するために別のMD5ファイルを使用できます。
この実装の場合:
設定ファイル:
conf.FDO262921L3
整合性ファイル:
conf.FDO262921L3.md5
整合性ファイルには、 conf.FDO262921L3の現在のバージョンに関連付けられたチェックサムが含まれている必要があります。
設定がダウンロードされると、スクリプトによってチェックサムが計算され、設定が処理される前に予測値と比較されます。
デバイスの設定が変更された場合は、次のPOAPの試行の前に、対応するMD5情報を更新します。
参照スクリプトでは、ターゲットのCisco NX-OSイメージを検証することもできます。
この実装の場合:
ターゲットイメージ:
nxos64-cs.10.6.2.F.bin(入手可能)
整合性ファイル:
nxos64-cs.10.6.2.F.bin.md5
整合性ファイルには次のものが含まれます。
ce50c3f0e387bee578e615a373a4ede0 nxos64-cs.10.6.2.F.bin
検証された実装では、ターゲットイメージはbootflash:にすでに存在していました。POAPスクリプトは、既存のイメージのMD5チェックサムを計算し、Provisioning Serverから取得した値と比較しました。
両方の値が一致したため、イメージファイルを再度ダウンロードする必要はありませんでした。
注:MD5検証はファイルの整合性を検証します。プロビジョニングファイルを暗号化したり、単独で認証を提供したりすることはありません。
POAPは、スイッチにスタートアップコンフィギュレーションがなく、システム全体のPOAPが有効な場合に、システムの起動中に実行されます。
プロビジョニングプロセスを開始する前に、POAPの状態を確認します。
N9K-POAP-SW1# show system poapシステム全体のPOAPが有効
Cisco NX-OSでは、システムno poapを使用して、POAPをグローバルに無効にできます。POAPを再度有効にするには、system poapを使用するか、write erase poapを使用してPOAP無効フラグをクリアします。
標準POAPは、スタートアップコンフィギュレーションなしでスイッチがブートすると開始します。
制御されたラボ環境で、次のコマンドを実行します。
switch# write erase
警告:このコマンドはスタートアップコンフィギュレーションを消去します。
続行しますか?(y/n) [n] y
デフォルトの書き込み消去操作では、永続メモリからスタートアップコンフィギュレーションが削除されます。実行コンフィギュレーションやブート変数は削除されません。
スタートアップコンフィギュレーションが存在しなくなったことを確認します。
switch# show startup-config:スタートアップコンフィギュレーションなし
注意:write eraseは、保存されているスイッチ設定を削除します。この手順は、設定を安全に削除または復元できる場合にのみ使用してください。
POAP後に管理アクセスが失われることを回避するには、前のセクションで準備したデバイス設定に、必要な管理クレデンシャルが含まれていることを確認します。
スタートアップコンフィギュレーションを削除した後、スイッチをリロードします。
Cisco NX-OSから現在の実行コンフィギュレーションの保存を求めるプロンプトが表示された場合は、保存しないでください。実行コンフィギュレーションを保存すると、スタートアップコンフィギュレーションが再作成され、標準のPOAPトリガー状態が回避されます。
起動中、Cisco NX-OSはPOAPを初期化し、プロセスを中断するオプションを提供します。
Power On Auto Provisioningを中止する[yes – 通常のセットアップを続行する、no – 電源投入時Auto Provisioningを続行する] (yes/no)[no]:
POAPを続行するには、デフォルトのnoオプションを受け入れます。
POAPの初期化後、スイッチはまずUSBベースのプロビジョニングリソースをチェックします。使用可能なUSBプロビジョニングスクリプトが見つからない場合、POAPはネットワークベースの検出に進みます。
検証された実装によって、次のメッセージが生成されました。
2026年9月22日18:21:23スイッチ%$ VDC-1 %$ %POAP-2-POAP_INITED: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAPプロセスの初期化2026年9月22日18:21:41スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921-L3 88:FC:5D:BA:D7:7F] - USB初期化の成功2026年9月22日18:21:41スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - USBディスクが検出されませんでした
POAPはIPv4 DHCPディスカバリを開始します。
2026年9月22日18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Start DHCP v4 session 2026 9月22日18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_DHCP_DISCOVER_DISCOVER_START [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP DHCP検出フェーズが開始されました
有効なDHCP応答を受信すると、Cisco NX-OSは一時的なネットワークパラメータとPOAPスクリプトの場所を表示します。
検証済みの導入環境では、次のことが可能です。
2026年9月22日18:23:58スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO:サーバIPから受信したDHCPオファー – 192.168.100.1 2026 9月22日18:24:02スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC :5D:BA:D7:7F] - DHCPを使用し、192.168.100.1 2026年9月22日からEth1/10経由で受信した有効な情報18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] – 割アドレス: 19 2.168.100.108 2026年9月22日18:24:02スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] – ネットマスク: 255.255.255.0 2026年9月218:24:20 スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] – デフォルトゲートウェイ: 192.168.100.1 2026 9月22日18:24:02スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC :5D:BA:D7:7F] – スクリプトサーバ:192.168.100.1 2026 9月22日18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] – スクリプト名: poap.py
この段階で、DHCPディスカバリは完了です。スイッチには一時的なネットワーク接続があり、POAPスクリプトを見つけるために必要な情報が含まれています。
スイッチは、DHCPディスカバリで特定されたPOAPスクリプトを取得します。
2026年9月22日18:24:14 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAPスクリプトのダウンロードは、2026年9月22日18:24:14 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921 L3-88:FC:5D:BA:D7:7F] - POAPスクリプトは、[copy tftp://192.168.100.1/poap.py bootflash:scripts/script.sh vrf default ] 2026 9月22日18:24:15 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_DOWNLOADED: [FDO262921L3-88:FC:5D:BA:D7:7F] - Successfully downloaded POAP file POAP file
スクリプトの取得が完了すると、POAPはスクリプトの検証と実行に進みます。次に、参照スクリプトは、デバイスの識別、設定の取得、ソフトウェアイメージの処理、設定のステージング、および残りのプロビジョニング操作を制御します。
このセクションの情報を使用して、POAPワークフローの各主要な段階を確認します。
POAPは複数の観点から検証できます。NexusコンソールとPOAPのログには内部プロビジョニングプロセスに関する情報が記録され、DHCPサーバのログとパケットキャプチャによってネットワーク交換に関する追加情報が提供されます。
検証された実装では、プロビジョニングワークフローを関連付けるために次のソースが使用されます。
| 検証ソース | 提供される情報 |
|---|---|
| Nexusコンソール | POAPの初期化、DHCPディスカバリ、スクリプト実行、リロード、および設定のリプレイ |
| Nexus POAPログ | 初期化およびスクリプト実行の詳細情報 |
| DHCPサーバのログ | DHCPネゴシエーションおよびファイル転送アクティビティ |
| パケット キャプチャ | DHCPとTFTPの交換 |
| 実行およびスタートアップコンフィギュレーション | 最終プロビジョニング結果 |
注:このセクションの出力は、制御されたPOAP検証の試行中に収集されたものです。その後、管理アクセス権を持つ最後のDay-0設定を検証するために試行が行われました。例では、元のタイムスタンプとログメッセージが保持されます。
サードパーティのサーバログとパケットキャプチャは、追加の検証ソースとしてのみ含まれています。サードパーティ製ソフトウェアの設定は、このドキュメントの対象範囲外です。
システムの起動中に、POAPが正常に初期化されることを確認します。
Nexusコンソールに初期化イベントが表示されます。
2026年9月22日18:21:23スイッチ%$ VDC-1 %$ %POAP-2-POAP_INITED: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAPプロセスが初期化されました
このメッセージは、スイッチがPOAPワークフローに入ったことを確認します。
POAPは、USBベースのプロビジョニングリソースを確認します。
2026年9月22日18:21:41 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - USB Initializing Success 2026 9月22日18:21:41 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921-L3 88:FC:5D:BA:D7:7F] - USBディスクが検出されない
この例では、使用できるUSBプロビジョニングリソースはありません。そのため、POAPはネットワークベースの検出を続行します。
続いて、スイッチはDHCPディスカバリを開始します。
2026年9月22日18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Start DHCP v4 session 2026 9月22日18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_DHCP_DISCOVER_DISCOVER_START [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP DHCP検出フェーズが開始されました
これらのメッセージは、USBディスカバリからネットワークベースのDHCPディスカバリへの移行を確認するものです。
POAPは、初期化ログとスクリプト実行ログをbootflash:に保存します。これらのファイルは、コンソールイベントが生成された後のプロビジョニングプロセスに関する追加情報を提供します。
N9K-POAP-SW1# dir bootflash: | include poap 5664 9月22日19:52:10 2026 20260922195156_poap_24710_script.log 87366 9月22日19:58:48 2026 20260922_194902_poap_24710_init.log N9K-POAP-SW1#
_init.logファイルには、POAPの初期化と検出に関する情報が含まれています。
_script.logファイルには、POAPスクリプトの実行中に生成される詳細情報が含まれています。
複数のPOAP試行が存在する場合、各ファイルを対応するプロビジョニング試行に関連付けるために、ファイル名にタイムスタンプを使用します。
POAPがDHCPディスカバリフェーズに入ったら、Nexusスイッチが有効なブートストラップネットワーク情報を受信することを確認します。
Nexusコンソールで、DHCPディスカバリが開始したこと、およびEthernet1/10経由で有効な情報を受信したことを確認します。
2026年9月22日18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Start DHCP v4 session 2026 9月22日18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_DHCP_DISCOVER_DISCOVER_START AP: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP DHCP検出フェーズが2026年9月22日18:23:58スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO:サーバIPからのDHCPオファー – 192.168.100.1 2026 9月218:24 02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - DHCPを使用して、192.168.100.1 2026 9月22日からEth1/10経由で有効な情報を受信しました18:24:02 switch %$ VDC-1$ %POAP-2-POAP_INFO [FDO262921L3-88:FC:5D:BA:D7:7F] – 割り当てられたIPアドレス:192.168.100.108 2026年9月22日18:24:02スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - マスク:255.255.255.0 2026年9月22日18:24:02スイッチ%$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] – デフォルトゲートウェイ:192.168.100.1 2026年9月218:24 02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] – スクリプトサーバ: 192.168.100.1 2026 9月22日18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-8:8 FC:5D:BA:D7:7F] – スクリプト名: poap.py
出力は、POAPがEthernet1/10を選択し、一時アドレス192.168.100.108を取得し、次のプロビジョニング段階に必要なゲートウェイ、スクリプトサーバ、およびスクリプトファイル名を受信したことを確認します。
DHCPサーバのログには、ブートストラップ交換の詳細が表示されます。
検証済みの例は次のように記録されています。
ベンダークラス:Cisco N9K-C9336C-FX2ユーザクラス:Cisco-POAP DHCPDISCOVER(ens224) 88:fc:5d:ba:d7:7f DHCPOFFER(ens224) 192.168.100.108 88:fc:5d:ba:d7:7f DHCPREQUEST(ens224) 192.168 00.108 88:fc:5d:ba:d7:7f DHCPACK(ens224) 192.168.100.108 88:fc:5d:ba:d7:7f
また、サーバはPOAPブートストラップ情報も特定しました。
オプション:67 bootfile-name poap.pyオプション:150 tftp-server-address 192.168.100.1オプション:3ルータ192.168.100.1
ログは、ディスカバリ、オファー、要求、確認応答の交換が完了したことを確認します。ログには、プロビジョニング要求に関連付けられたCisco-POAPユーザクラス、スクリプトファイル名、TFTPサーバアドレス、およびデフォルトゲートウェイも表示されます。
パケットキャプチャは、ネットワーク上のDHCP交換を直接確認するために使用できます。
検証された例では、キャプチャは次のように確認されました。
sudo tcpdump -nn -vvvv -r /tmp/poap-run1.pcap \ 'udp port 67またはudp port 68'
キャプチャは次のように表示されます。
DHCPメッセージ(53)、長さ1:ベンダークラスの検出(60)、長さ20:「Cisco N9K-C9336C-FX2」 DHCPメッセージ(53)、長さ1:DHCPメッセージの提供(53)、長さ1:要求IP(50)、長さ4:192.168.100.108 DHCPメッセージ(53)、長1:
パケットキャプチャは、DHCPサーバログに記録されているDiscover、Offer、Request、およびAcknowledgmentシーケンスを確認します。
DHCPディスカバリが完了したら、NexusスイッチがDHCP交換中に特定されたサーバからPOAPスクリプトを取得することを確認します。
Nexusコンソールに、スクリプトのダウンロードがいつ開始されたかが表示されます。
2026年9月22日18:24:14 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAPスクリプトのダウンロードは、2026年9月22日18:24:14 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921 L3-88:FC:5D:BA:D7:7F] - POAPスクリプトは、[copy tftp://192.168.100.1/poap.py bootflash:scripts/script.sh vrf default ] 2026 9月22日18:24:15 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_DOWNLOADED: [FDO262921L3-88:FC:5D:BA:D7:7F] - Successfully downloaded POAP file POAP file
これらのメッセージは、スイッチがDHCPによって検出されたTFTPサーバからpoap.pyを取得したことを示しています。
パケットキャプチャは、スクリプト実行中に生成されたTFTP要求を直接確認します。
検証された例では、次のコマンドを実行します。
sudo tcpdump -nn -r /tmp/poap-run1.pcap 'udp dst port 69' reading from file /tmp/poap-run1.pcap, link-type EN10MB (Ethernet), snapshot length 262144 13:38:17.012862 IP 192.168.100.108.58485 > 192.168.100.1.69: TFTP, length 16, RRQ "poap.13:38:19.955108 IP1 92.168.100.108.58550 > 192.168.100.1.69:TFTP、長さ29、RRQ "conf.FDO262921L3.md5"オクテット13:38:20.651491 IP 192.168.100.108.58680 > 192.168.100.1.69:TFTP、長5 、RRQ "conf.FDO262921L3" octet 13:38:21.737101 IP 192.168.100.108.58866 > 192.168.100.1.69: TFTP、長さ35、RRQ "nxos64-cs.10.6.2.F.bin.md5" octet
最初の要求では、一時POAPアドレス192.168.100.108が192.168.100.1のプロビジョニングサーバに接続し、poap.pyを要求したことを確認します。後続の要求は、デバイス設定とイメージ検証への進行を示します。
ダウンロードしたスクリプトを実行する前に、Cisco NX-OSはスクリプトに埋め込まれたMD5チェックサムを検証します。
検証済みの例は次のとおりです。
2026年9月22日18:24:15 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] – スクリプトファイルサイズ113107、MD5 checksum e4dd91fd4296d40abd2f6187152cd86e 2026 Sep 218:24:24 15 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] – スクリプトファイルから受信したMD5チェックサムは、e4dd91fd4296d40abd2f6187152cd86e 2026年9月22日18:24:15 switch %$ VDC-1 %$ %POAP-2 -POAP_SCRIPT_STARTED_MD5_VALIDATED: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAPスクリプトの実行が開始されました(MD5検証)
一致する値は、ダウンロードされたスクリプトが実行を開始する前に整合性チェックに合格したことを示します。
この段階で、制御はPOAPの初期化から、ダウンロードされたスクリプトに含まれるプロビジョニングロジックに渡されます。
POAPスクリプトの開始後、スクリプトがNexusスイッチを特定し、対応するデバイス設定を選択することを確認します。
serial_numberモードでは、参照スクリプトはローカルスイッチのシリアル番号を使用してコンフィギュレーションファイルを決定します。
検証された例は次のようになります。
シリアル番号に基づくソースCFGファイル名の設定
シリアル番号FDO262921L3
選択した会議ファイル名:conf.FDO262921L3
出力は、スクリプトがローカルシリアル番号を特定し、conf.FDO262921L3を選択したことを示しています。
コンフィギュレーションファイルを選択すると、スクリプトは対応するMD5情報を取得します。
2026年9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: – ログファイル名: /bootflash/20260922182417_poap_23243_script.log - script.sh 2026 9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - Found 1 POAP script logs - script.sh 2026 Sep 218:24:17 %$ VDC-1 %$ %USER-1-SYSTEM_MSG: – シリアル番号に基づくソースCFGファイル名の設定 – script.sh 2026 9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: – シリアル番号FDO262921L3 - script.sh 2026 9月22日18:24:17 switch %$ VDC-1% SYSTEM_MSG 「Selected conf file name : conf.FDO262921L3 - script.sh 2026 Sep 22 18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Verifying freespace in bootflash - script.sh 2026 Sep 218:24:17 $ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] – 空きブートフラッシュ領域は106776296.0 KB - script.sh 2026 9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-8[MAC 8:FC:5D:BA:D7:7F] – シングルイメージが設定されています – script.sh 2026 9月22日18:24:17スイッチ%$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] – 構成ファイルのコピー – script.sh 2026 Sep 2:18 24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Copying MD5 information - script.sh 2026 9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-S mac[88:FC:5D:BA:D7:7F] - MD5のコピーを開始。 src=/conf.FDO262921L3.md5 dest = /bootflash/conf.FDO262921L3.md5 - script.sh 2026 9月22日18:2 4:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - File transfer_protocol = tftp - script.sh
整合性ファイルがダウンロードされ、ブートフラッシュに保存されます: 2026 9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - *** Downloaded file is size 51 *** - script.sh 2026 Sep 218:24:17:17 switch %$ vdc-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] – 名前が/bootflash/conf.FDO262921L3.md5.tmpから/bootflash/conf.FDO262921L3.md5 - script.shに変更
次に、スクリプトによってデバイス設定が取得されます。
2026年9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - INFO: Starting Copy of Config File to /bootflash/poap_conf.cfg - script.sh 2026 Sep 2218:24:17 switch %$ VDC-1 %$ %USER -1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] – ファイルオプションのコピーsource=/conf.FDO262921L3 destination=/bootflash/poap_conf.cfg login_timeout=120 destination_tmp=poap_conf.cfg.tmp - script.sh 2026 9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - tftpを使用した/conf.FDO262921L3からbootflash:/poap_conf.cfg.tmp hostname 192.168.100.1 vrf default - script.sh 22への転送026 9月22日18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:D 7F] – コマンドは、 : terminal dont-ask ; terminal password <removed> ; copy tftp://root@192.168.100.1/conf.FDO262921L3 bootflash:/poap_conf.cfg.tmp vrf default - script.sh 2026 9月22日18:24:18 switch %$ VDC-1 %$ %です。 USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] -***ダウンロードされたファイルのサイズは120 *** - script.sh
これらのメッセージは、デバイス固有の設定が正常に取得され、処理用にローカルに保存されたことを示しています。
パケットキャプチャは、Nexusスイッチによって生成されたTFTP要求の独立した確認を提供します。
検証済みの例:
sudo tcpdump -nn -r /tmp/poap-run1.pcap 'udp dst port 69' reading from file /tmp/poap-run1.pcap, link-type EN10MB (Ethernet), snapshot length 262144 13:38:19.955108 IP 192.168.100.108.58550 > 192.168.100.1.69: TFTP, length 29, RRQ "conf.FDO262921L3.md5" octet 13:38:20 651491 IP 192.168.100.108.58680 > 192.168.100.1.69:TFTP、長さ25、RRQ "conf.FDO262921L3"オクテット
このシーケンスにより、スイッチがデバイス設定を取得する前に設定整合性ファイルを要求したことが確認されます。
TFTPサーバのログには、次の両方の転送も記録されています。
9月22日14:26:36 calo-ubuntu24-00505692aeaf dnsmasq-tftp[144902]:/srv/tftp/conf.FDO262921L3.md5を192.168.100.10に送信9月22日14:26:37 calo-ubuntu24-00505692aeaf dnsmasq-tftp[144902]:/srv/tftp/conf.FDO262921L3を192.168.100.108に送信
設定がダウンロードされると、スクリプトはMD5チェックサムを計算し、予期される値と比較します。
この例に示されているプロビジョニングの試行により、次の結果が生成されました。
2026年9月22日18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Verifying MD5 checksum - script.sh 2026 9月22日18:24:18 switch %$ VDC-1%%USER-SYSTEM_SYSTEM msg: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] – ファイル名はbootflash:poap_conf.cfg - script.sh 2026 9月22日18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F f] - INFO: md5sum a1a51058d79de0348c6cd1934e08acb4 (再計算) - script.sh 2026 9月22日18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - /bootflash/poap_conf.cfgのMD5チェックサムの確認(サイズ120) - script.sh 2026 9月22日18:24:18スイッチ%$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - md5given = a1a51058d79de0348c6cd1934e 8acb4 md5calculated = a1a51058d79de0348c6cd1934e08acb4 - script.sh 2026 9月22日18:24:18 switch % $ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - MD5一致ファイル= /bootflash/poap_conf.cfg - script.sh
一致する値によって、このプロビジョニングの試行中にダウンロードされた設定が、対応する整合性情報と一致していることが確認されます。
整合性チェックが成功すると、スクリプトによって、ターゲットのCisco NX-OSイメージに対して設定を準備する方法が決定されます。
この例の設定は次のとおりです。
026 9月22日18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Split Config file - script.sh 2026 9月22日18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: s/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F]:ターゲットイメージはブートストラップ再生をサポートします。分割設定は必要ありません。- script.sh 2026 9月22日18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - nxos64-cs.10.6.2.F.bin - script.shでは必要ないため、split configをスキップします。
出力から、ターゲットイメージがブートストラップ再生をサポートしており、このプロビジョニングの試行に設定の分割が不要であることが確認できます。
この段階で、デバイス固有の設定が特定され、取得、検証され、残りのPOAPワークフローの準備が整いました。
デバイス設定を取得して検証した後、POAPスクリプトがターゲットのCisco NX-OSイメージをどのように処理するかを確認します。
検証済みの実装は次を使用します。nxos64-cs.10.6.2.F.bin
スクリプトは、まず対応するMD5情報を取得します。
2026年9月22日18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - MD5のコピーを開始します。 src=/nxos64-cs.10.6.2.F.bin.md5 dest = /bootflash/nxos64-cs.10 6.2.F.bin.md5 - script.sh 2026 9月22日18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - File transfer_protocol = tftp - script.sh
MD5ファイルはbootflash:に保存されます。
2026 9月22日18:24:19 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - *** Downloaded file is of size 57 *** - script.sh 2026 9月22日18:24:19 switch %$ VDC-1 % USER-1 system_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - /bootflash/nxos64-cs.10.6.2.F.bin.md5.tmpを/bootflash/nxos64-cs.10.6.2.F.bin.md5 - script.shに名前変更
スクリプトは、Provisioning Serverから受信したチェックサムを読み取ります。
2026年9月22日18:24:19 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - MD5 for system image from server: ce50c3f0e387bee578e615a373a4ede0 - script.sh
次に、ブートフラッシュにすでに存在するイメージのチェックサムを計算します。
2026年9月22日18:24:19 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Verifying MD5 checksum - script.sh 2026 9月22日18:24:19 switch %$ VDC-1 % USER-SYSTEM_S msg: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] – ファイル名はbootflash:nxos64-cs.10.6.2.F.bin - script.sh 2026 9月22日18:24:30 switch %$ VDC-1$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[8:FC :5D:BA:D7:7F] - INFO: md5sum ce50c3f0e387bee578e615a373a4ede0 (再計算) - script.sh 2026 9月22日18:24:30 switch %$ VDC-1$ % %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC :5D:BA:D7:7F] - /bootflash/nxos64-cs.10.6.2.F.binのMD5チェックサムの確認(サイズ2952914432) - script.sh 2026 9月22日18:24:30 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - md5given = ce50c3f0e387bee578e615a373a4ede0 md5calculated = ce50c3f0e387bee578e615a373a4ede0 - script.sh
スクリプトは、既存のイメージが予期されるイメージと一致することを確認します。
2026年9月22日18:24:30 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - MD5 match for file = /bootflash/nxos64-cs.10.6.2.F.bin - script.sh 2026 Sep 218:24 :30 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - File /bootflash/nxos64-cs.10.6.2.F.bin already exists and MD5 matches - script.sh
一致する値は、必要なCisco NX-OSイメージがbootflash:にすでに存在し、整合性チェックに合格したことを示します。したがって、イメージの別のコピーをダウンロードする必要はありませんでした。
パケットキャプチャでは、Nexusがイメージ整合性ファイルを要求したことも確認できます。
sudo tcpdump -nn -r /tmp/poap-run1.pcap 'udp dst port 69' reading from file /tmp/poap-run1.pcap, link-type EN10MB (Ethernet), snapshot length 262144 13:38:21.737101 IP 192.168.100 0.108.58866 > 192.168.100.1.69:TFTP、長さ35、RRQ "nxos64-cs.10.6.2.F.bin.md5"オクテット
TFTPサーバログに同じ転送が記録されます。
9月22日14:26:38 calo-ubuntu24-00505692aeaf dnsmasq-tftp[144902]:/srv/tftp/nxos64-cs.10.6.2.F.bin.md5を192.168.100.108に送信
これらの出力は、provisioning serverからのnxos64-cs.10.6.2.F.bin.md5の取得を確認します。
イメージファイルをダウンロードする必要はありませんが、リファレンススクリプトはCisco NX-OSのインストールワークフローから続行されました。
検証された例は次のようになります。
2026年9月22日18:24:31 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Done copying the second scheduled cfg - script.sh 2026 9月22日18:24:31 switch %$ VDC-1 % USER-SYSTEM_SYSTEM msg: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - terminal dont-ask ;すべてのnxos bootflash:/nxos64-cs.10.6.2.F.bin no-reload non-interruptiveをインストールします。
既存のイメージは整合性チェックに合格し、別のファイル転送は必要ありませんでした。ただし、参照スクリプトは、検証済みイメージに対してソフトウェアインストールプロセスを呼び出し続けます。
注:既存のイメージとMD5を一致させると、不要なイメージのダウンロードを防止できます。これは、必ずしも残りのソフトウェアインストールワークフローがスキップされることを意味しません。
ソフトウェア処理が完了すると、POAPは残りのプロビジョニング操作を続行し、スイッチのリロードの準備を行います。
POAPスクリプトが正常に完了したら、スイッチがリロードおよび設定のリプレイプロセスを続行することを確認します。
検証済みの例では、スクリプトの実行に成功した後、リロードが報告されています。
2026年9月22日18:31:08 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_EXEC_SUCCESS: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAPスクリプト実行の成功2026年9月22日18:31:09 switch %$ VDC-1$ %POAP-2-POAP_RELOAD_DEVICE: [FDO262921L3-88:FC:5D:BA:D7:7F] – デバイスをリロードします
これらのメッセージは、スクリプト実行フェーズの完了と、インストール後のリロードフェーズへの移行を確認します。
スイッチが再起動すると、Cisco NX-OSはPOAPリプレイファイルを検出します。
2026年9月22日18:33:49 %$ VDC-1 %$ %DAEMON-2-SYSTEM_MSG: <<%ASCII-CFG-2-CONF_CONTROL>> Poap replay /bootflash/poap_replay01.cfg - ascii_cfg_server[17165]
ブートストラップ再生が開始され、完了します。
2026年9月22日18:34:26 %$ VDC-1 %$ %ASCII-CFG-2-CONFIG_REPLAY_STATUS:ブートストラップの再生が開始されました。2026年9月22日18:34:27 %$ VDC-1 %$ %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Bootstrap Replay Done.
これらのイベントは、Cisco NX-OSがPOAP中にステージングされた設定の処理を開始したことを確認します。
ブートストラップのリプレイが完了すると、NX-OSはプロビジョニングされた設定を処理します。
制御された検証の試行により、次のメッセージが生成されました。
2026年9月22日18:35:42 switch %$ VDC-1 %$ %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Ascii Replay Started.2026年9月22日18:35:44 N9K-POAP-SW1 %$ VDC-1 %$ %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Ascii Replay Done2026 9月22日20:03:26スイッチ%VDC_MGR-5-VDC_HOSTNAME_CHANGE: vdc 1 hostname changed to N9K-POAP-SW1 2026年9月22日20:03:27 N9K-POAP-SW1 %ETHPORT-5-IF_UP:インターフェイス100は2026年9月2日20:03:28 N9K-POAP-SW1 %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Ascii Replay Done.2026年9月22日20:03:29 N9K-POAP-SW1 %ASCII-CFG-2-CONF_CONTROL: System ready
これらのメッセージは、ASCII設定のリプレイを示し、プロビジョニングされた設定が適用されたことを直接示します。
ホスト名がN9K-POAP-SW1に変更され、Loopback100がプロビジョニングされた設定の一部として動作可能になりました。
設定のリプレイが完了すると、Cisco NX-OSは設定の結果を保存します。
2026 9月22日19:24:03 N9K-POAP-SW1 %$ VDC-1 %$ %ASCII-CFG-2-CONF_CONTROL: System ready [########################################### 100% Copy, now saving to disk (please)..コピー完了。自動プロビジョニングの完了
「自動プロビジョニング完了」メッセージで、POAPワークフローの完了を確認します。
この段階で、結果の実行コンフィギュレーションとスタートアップコンフィギュレーションを確認し、目的のDay-0コンフィギュレーションがアクティブで永続的であることを確認します。
POAPが完了したら、目的のDay-0設定がアクティブで永続的であることを確認します。プロビジョニングされたホスト名、管理者アカウント、インターフェイス設定、Cisco NX-OSイメージ、およびシステム全体のPOAP状態を確認します。
N9K-POAP-SW1# show hostname N9K-POAP-SW1 N9K-POAP-SW1# show user-account admin user:adminこのユーザアカウントには有効期限ロールがありません:network-admin N9K-POAP-SW1# show ip interface brief IP Interface Status for VRF "default"(1) Interface IP Address Interface Status Lo100 10.255.25.10-up-protocol /link-up/admin-up N9K-POAP-SW1# show running-config interface loopback100 !コマンド: show running-config interface loopback100 !実行コンフィギュレーションの最終実施時刻:火9月22日20:03:48 2026 !時間:火9月22日23:17:52 2026バージョン10.6(2) Bios:バージョン05.53 interface loopback10 description poap VALIDATION ip address 10.255.255.100/32 N9K-POAP-SW1# show startup-config interface loopback100 !コマンド: show startup-config interface loopback100 !時間: 9月22日(火) 23:17:57 2026 !Startup config saved at: Tue 9月22 20:03:48 2026 version 10.6(2) Bios:version 05.53 interface 10 description POAP-VALIDATION ip address 10.255.255.100/32 N9K-POAP-SW1# show startup-config | include username username admin password 5 <removed> role network-admin N9K-POAP-SW1# show version | include NXOS NXOS:バージョン10.6(2) [機能リリース]ホストNXOS:バージョン10.6(2) NXOSイメージファイル: bootflash:///nxos64-cs.10.6.2.F.bin NXOSコンパイル時間: 11/30/20251:2 0:00 [12/12/2025 12:10:23] NXOSブートモード:LXC N9K-POAP-SW1# show system poapシステム全体のPOAPが有効
出力から、デバイス固有の設定が正常に適用され、スタートアップコンフィギュレーションに保存されたことが確認できます。
また、スイッチで予期されるCisco NX-OSイメージが実行されていること、およびシステム全体のPOAPが有効なままであることも確認します。
このドキュメントでは、DHCPディスカバリ、スクリプトの取得と実行、デバイス固有の設定の選択、ファイル整合性の検証、Cisco NX-OSイメージ処理、設定のリプレイなど、主なPOAPコンポーネントとワークフローについて説明します。
検証済みの実装は、Cisco Nexus 9000スイッチが必要なプロビジョニングリソースを取得し、Day-0設定を適用して、その結果の設定を保持する方法を示しています。
この検証プロセスでは、プロビジョニングワークフローの各主要な段階を確認するために、コンソールメッセージ、POAPログ、サーバログ、およびパケットキャプチャをどのように関連付けるかについても説明します。
| 改定 | 発行日 | コメント |
|---|---|---|
1.0 |
12-Oct-2026
|
初版 |