In questo documento viene descritto il POAP (PowerOn Auto Provisioning) sugli switch Cisco Nexus 9000 con Cisco NX-OS.
Cisco raccomanda la conoscenza di base dei seguenti argomenti:
| Componente | Piattaforma/Software | Versione/Valore | Scopo |
|---|---|---|---|
| Switch Nexus | N9K-C9336C-FX2 | NX-OS 10.6(2) | dispositivo POAP |
| Server di provisioning | Server Ubuntu | 24,04,5 LTS | Infrastruttura di provisioning esterna |
| servizio DHCP/TFTP | dnsmasq | 2.91 | Fornisce servizi DHCP e TFTP |
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Il laboratorio utilizza uno switch Cisco Nexus 9000 connesso direttamente a un server Ubuntu che fornisce l'infrastruttura di provisioning esterna.
L'obiettivo è quello di mantenere la topologia semplice in modo che il flusso di lavoro POAP possa essere osservato senza ulteriori dispositivi di rete tra lo switch Nexus e il server di provisioning.
Ethernet1/10 sullo switch Nexus è collegato direttamente a ens224 sul server Ubuntu.

L'implementazione di un nuovo switch Cisco Nexus richiede una configurazione iniziale prima che il dispositivo possa partecipare alla rete.
PowerOn Auto Provisioning (POAP) automatizza questo processo di bootstrap. Quando uno switch Nexus supportato viene avviato senza una configurazione di avvio, Cisco NX-OS può accedere alla modalità POAP, ottenere informazioni di rete temporanee tramite DHCP, recuperare uno script di provisioning e utilizzare tale script per effettuare il provisioning dell'immagine software e della configurazione del dispositivo richieste.
Il POAP è associato principalmente al provisioning iniziale, o Giorno 0, perché lo switch può ottenere le risorse necessarie per la distribuzione senza richiedere l'immissione manuale della configurazione completa tramite la CLI.
Senza il POAP, l'implementazione iniziale di uno switch Nexus può richiedere l'interazione manuale per configurare la connettività di rete, trasferire i file di configurazione e preparare l'immagine software Cisco NX-OS richiesta.
Grazie al POAP, lo switch è in grado di rilevare automaticamente l'infrastruttura di provisioning e recuperare le risorse necessarie per l'installazione.
Ad alto livello, il POAP inizia quando uno switch Nexus supportato viene avviato senza una configurazione di avvio. Lo switch avvia il processo di provisioning e cerca di ottenere le informazioni di rete necessarie per accedere all'infrastruttura di provisioning.
Una volta stabilita la connettività di rete, lo switch recupera ed esegue lo script POAP. Lo script determina l'immagine software e le risorse di configurazione associate al dispositivo e controlla le restanti operazioni di provisioning.
Cisco definisce il processo POAP in cinque fasi principali:
Nella sezione successiva viene descritto il ruolo di ogni fase durante il processo di provisioning.
Il POAP funziona come un processo di bootstrap di prova in Cisco NX-OS. Ogni fase esegue una funzione specifica richiesta per il provisioning automatico dei dispositivi.
La comprensione di queste fasi costituisce la base per il flusso di lavoro di implementazione e verifica descritto più avanti in questo documento.
All'accensione di uno switch Nexus, Cisco NX-OS carica l'immagine software installata e cerca una configurazione di avvio.
Se esiste una configurazione di avvio, lo switch continua il normale processo di avvio. Se non viene trovata alcuna configurazione di avvio, viene avviata la modalità POAP.
Durante l'avvio, NX-OS visualizza un prompt che fornisce l'opzione per interrompere il POAP e continuare con la normale configurazione interattiva. Il POAP continua senza l'intervento dell'utente.
Se il POAP continua, le interfacce del pannello anteriore vengono inserite nella configurazione predefinita prima dell'inizio del processo di rilevamento.
| Condizione | Risultato |
|---|---|
| La configurazione di avvio è presente. | NX-OS prosegue il normale processo di avvio. |
| Configurazione di avvio non presente. | Viene avviata la modalità POAP. |
| POAP interrotto manualmente. | NX-OS entra nella normale configurazione interattiva. |
| Il POAP continua. | Il processo prosegue con il rilevamento USB. |
Dopo l'avvio di POAP, NX-OS ricerca le risorse di provisioning nei dispositivi USB accessibili.
Se su un dispositivo USB viene trovato uno script POAP, NX-OS avvia l'esecuzione dello script. Se non viene trovato uno script utilizzabile, il POAP procede con l'individuazione DHCP.
Il provisioning basato su USB fa parte del flusso di lavoro POAP; tuttavia, l'implementazione di questo documento si concentra sul provisioning basato su rete tramite DHCP.
Se non viene trovato uno script POAP durante il rilevamento USB, lo switch avvia il rilevamento DHCP.
In questa fase, lo switch invia messaggi discover DHCP tramite le interfacce del pannello anteriore disponibili o l'interfaccia di gestione per individuare un server DHCP in grado di fornire le informazioni richieste per il POAP.
Il client DHCP Cisco Nexus usa il numero di serie dello switch nell'identificatore del client. Queste informazioni possono essere utilizzate dall'infrastruttura di provisioning per identificare il dispositivo e fornire le informazioni di bootstrap necessarie per il processo di provisioning.
La negoziazione DHCP utilizza il processo standard di individuazione, offerta, richiesta, riconoscimento (DORA):
| Messaggio DHCP | Scopo |
|---|---|
| Scopri | Lo switch Nexus cerca un server DHCP disponibile. |
| Offerta | Il server DHCP fornisce informazioni relative alla rete e al POAP. |
| Richiesta | Lo switch richiede l'offerta DHCP selezionata. |
| Riconoscimento | Il server DHCP conferma il lease e assegna l'indirizzo IP. |
Per il POAP basato sulla rete, lo scambio DHCP fornisce le informazioni di rete temporanee e i parametri di bootstrap necessari per individuare lo script POAP.
Il messaggio DHCP Discover richiede informazioni che includono:
Il nome del file di avvio identifica lo script POAP recuperato dallo switch al termine della negoziazione DHCP.
DHCP non fornisce la configurazione finale di Cisco Nexus. Fornisce le informazioni di bootstrap necessarie per stabilire una connettività temporanea e individuare lo script di provisioning.
Il POAP richiede un periodo di lease DHCP minimo di 3600 secondi.
Ricevere un'offerta DHCP non significa automaticamente che il rilevamento DHCP ha esito positivo. L'offerta deve soddisfare i requisiti previsti dal POAP prima che lo switch continui con lo scambio di richieste e conferme DHCP.
Se non viene ricevuta alcuna offerta valida, non verrà assegnato un indirizzo IP tramite tale offerta.
A partire da Cisco NX-OS versione 7.0(3)I7(4), POAP supporta l'opzione della classe utente DHCP definita da RFC 3004.
Per DHCPv4, il punto di accesso utilizza l'opzione 77 della classe utente con questo valore: Cisco-POAP
Questo valore identifica la richiesta DHCP come proveniente dal processo POAP.
Il valore Cisco-POAP può essere osservato successivamente nell'acquisizione del pacchetto utilizzata durante la verifica.
Al termine della negoziazione DHCP, lo switch usa le informazioni di provisioning ricevute dal server DHCP per individuare e recuperare lo script POAP.
Nel flusso di lavoro in rete standard utilizzato in questo documento, le informazioni DHCP identificano il server TFTP e il file di avvio che contiene lo script di provisioning. Dopo aver stabilito la connettività di rete temporanea, Cisco NX-OS scarica lo script dal server di provisioning.
Lo script POAP contiene la logica necessaria per determinare ed elaborare l'immagine software e le risorse di configurazione associate al dispositivo.
Cisco fornisce uno script POAP di riferimento scritto in Python. Lo script può essere personalizzato in base all'ambiente di provisioning.
Lo script POAP di riferimento Cisco include un checksum MD5.
Quando lo script viene modificato, è necessario ricalcolare il checksum incorporato prima di utilizzare lo script per il POAP.
La procedura di preparazione del checksum è descritta più avanti nella sezione Prepara informazioni sull'integrità del file.
Dopo aver scaricato e convalidato lo script POAP, Cisco NX-OS lo esegue localmente sullo switch.
Lo script di riferimento può eseguire attività di provisioning quali:
La configurazione scaricata non viene necessariamente applicata immediatamente durante l'esecuzione dello script.
Cisco NX-OS può posizionare nell'area intermedia la configurazione e applicarla dopo l'avvio dello switch con l'immagine software di destinazione. La configurazione viene quindi elaborata nell'ambiente software per il quale è stata preparata.
Lo script POAP può determinare se l'immagine Cisco NX-OS di destinazione è già disponibile localmente.
Se l'immagine richiesta non è presente, lo script può recuperarla dall'infrastruttura di provisioning.
Se l'immagine richiesta è già disponibile, lo script può convalidare il file esistente ed evitare di scaricare un'altra copia.
Nell'implementazione convalidata, l'immagine di destinazione era già presente in bootflash:. Lo script ha convalidato l'immagine prima di continuare con le restanti operazioni di provisioning.
Al termine dell'esecuzione dello script, lo switch entra nella fase di ricaricamento dopo l'installazione.
Durante questa fase, lo switch viene riavviato con l'immagine software Cisco NX-OS di destinazione quando una modifica all'immagine software fa parte del processo di provisioning.
Lo switch applica quindi, o riproduce, la configurazione scaricata. Dopo aver applicato correttamente la configurazione, Cisco NX-OS copia la configurazione in esecuzione nella configurazione di avvio.
Questa sequenza assicura che la configurazione del provisioning venga elaborata nell'ambiente software per cui è stata preparata.
La ripetizione della configurazione è il processo con cui Cisco NX-OS applica la configurazione scaricata durante il POAP dopo il riavvio dello switch.
Il file di configurazione non viene necessariamente applicato quando viene scaricato inizialmente. Al contrario, il POAP può posizionare la configurazione nell'area intermedia durante l'esecuzione dello script e applicarla dopo che l'immagine Cisco NX-OS di destinazione è diventata attiva.
Il processo può essere riassunto come segue:
| Fase | Azione |
|---|---|
| Esecuzione script | Recupera l'immagine software e la configurazione necessarie. |
| Ricaricamento post-installazione | Riavvia lo switch dopo le operazioni di provisioning. |
| Ripetizione della configurazione | Applica la configurazione scaricata. |
| Persistenza della configurazione | Copia la configurazione in esecuzione nella configurazione di avvio. |
Questa separazione tra l'applicazione di recupero e di configurazione è una parte importante del flusso di lavoro POAP.
Il POAP basato sulla rete richiede un'infrastruttura esterna per fornire connettività di rete temporanea e accesso alle risorse di provisioning.
Per il flusso di lavoro POAP standard, l'infrastruttura richiesta include:
Le informazioni di rete ottenute tramite DHCP vengono utilizzate durante il processo di provisioning POAP.
In questa sezione vengono descritti i componenti necessari per implementare il POAP (PowerOn Auto Provisioning) basato su rete su uno switch Cisco Nexus 9000.
Il POAP si basa su servizi esterni DHCP e di trasferimento file per fornire una connettività di rete temporanea e l'accesso alle risorse di provisioning. La configurazione di piattaforme server di terze parti non rientra nell'ambito di questo documento.
Gli esempi in questa sezione utilizzano la topologia descritta in precedenza per dimostrare l'implementazione del punto di accesso primario (POAP).
Per l'implementazione convalidata, l'infrastruttura di provisioning fornisce le informazioni di rete temporanee e i servizi di trasferimento file richiesti dallo switch Nexus durante il POAP.
L'infrastruttura DHCP deve fornire le informazioni necessarie per stabilire una connettività temporanea e individuare lo script POAP. Il POAP richiede un lease DHCP di almeno 3600 secondi.
| Informazioni | Scopo |
|---|---|
| Indirizzo IP | Fornisce connettività di rete temporanea durante il POAP. |
| Subnet mask | Definisce la subnet IP temporanea. |
| Gateway predefinito | Fornisce la connettività alle risorse di provisioning quando è necessario il routing. |
| Nome o indirizzo server TFTP | Identifica il server da cui viene recuperato lo script POAP. |
| Nome del file di avvio | Identifica lo script POAP scaricato dallo switch Nexus. |
Dopo aver selezionato un'offerta DHCP valida, lo switch Nexus completa la negoziazione DHCP e utilizza le informazioni di rete assegnate durante il processo di provisioning.
Per l'esempio convalidato in questo documento, l'infrastruttura di provisioning utilizza i seguenti valori:
| Parametro | Valore Lab |
|---|---|
| rete POAP | 192.168.100.0/24 |
| Server di provisioning | 192.168.100.1 |
| Intervallo di indirizzi DHCP | 192.168.100.100–192.168.100.110 |
| lease DHCP | 2 ore |
| Server TFTP | 192.168.100.1 |
| script POAP | poap.py |
| Interfaccia Nexus | Ethernet 1/10 |
Il server di provisioning utilizzato in questo esempio esegue Ubuntu e fornisce i servizi DHCP e TFTP necessari per l'implementazione. La configurazione dettagliata del software per server di terze parti esula dall'ambito di questo documento.
Cisco fornisce uno script POAP di riferimento sviluppato in Python. Modificare le opzioni modificabili dall'utente in modo che corrispondano all'ambiente di provisioning.
Lo script POAP funge da orchestrator di provisioning. Dopo il download e la convalida dello script da parte dello switch Nexus, lo script determina il modo in cui lo switch recupera ed elabora la configurazione e le risorse dell'immagine software necessarie per il provisioning.
Per l'implementazione convalidata, vengono utilizzate le seguenti opzioni:
options = { "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": "/", }
I valori mostrati in questo esempio corrispondono all'ambiente lab. I valori di produzione dipendono dall'infrastruttura di provisioning e dai requisiti di installazione.
| Opzione | Valore Lab | Scopo |
|---|---|---|
| nome host | 192.168.100.1 | Identifica il server da cui vengono recuperati i file di provisioning. |
| protocollo_trasferimento | tftp | Definisce il protocollo di trasferimento file. |
| modalità | num_seriale | Usare il numero di serie dello switch per selezionare il file di configurazione specifico del dispositivo. |
| immagine_sistema_destinazione | nxos64-cs.10.6.2.F.bin | Definisce l'immagine Cisco NX-OS di destinazione. |
| percorso_configurazione | / | Definisce il percorso che contiene la configurazione del dispositivo. |
| percorso_immagine_destinazione | / | Definisce il percorso che contiene l'immagine software di destinazione. |
Lo script di riferimento richiede nome host, nome utente e password quando i file vengono recuperati da un server remoto. Nell'esempio viene utilizzato il protocollo TFTP, che non fornisce l'autenticazione di nome utente e password; tuttavia, lo script di riferimento convalida ancora la presenza di questi parametri durante l'inizializzazione.
L'implementazione convalidata utilizza:
"mode": "serial_number"
In modalità serial_number, lo script recupera il numero di serie dello switch locale e lo utilizza per determinare il nome del file di configurazione corrispondente.
Ad esempio:
Numero di serie switch: FDO262921L3
File di configurazione: conf.FDO262921L3
Il nome del file di configurazione utilizza il seguente formato: conf.<serial-number>
Lo stesso script poap.py può pertanto supportare più switch Nexus, mentre ciascuno switch recupera la propria configurazione specifica del dispositivo.
Ad alto livello, lo script convalidato esegue la seguente sequenza:
Identify the switch. ↓ Select conf.
Lo script POAP non contiene la configurazione completa del dispositivo. Contiene la logica e i parametri necessari per individuare, convalidare ed elaborare le risorse di provisioning.
Il file di configurazione del dispositivo contiene la configurazione di Cisco NX-OS a cui POAP effettua il provisioning sullo switch Nexus di destinazione.
Per lo switch utilizzato in questo esempio, la modalità serial_number seleziona questo file di configurazione:
Numero di serie: FDO262921L3
File di configurazione: conf.FDO262921L3
Il file di configurazione contiene i comandi necessari per stabilire la configurazione Day-0 desiderata.
Per l'implementazione convalidata, la configurazione contiene un utente amministrativo, un nome host e un'interfaccia di loopback:
username admin password
Per semplificare la verifica del flusso di lavoro di provisioning, la configurazione è intenzionalmente minima.
Al termine del processo POAP, il nome host, l'account amministrativo e l'interfaccia Loopback100 forniscono chiari indicatori che la configurazione specifica del dispositivo è stata applicata correttamente.
La configurazione del provisioning deve includere l'accesso amministrativo richiesto dopo il completamento di POAP.
Attenzione: Verificare che la configurazione del dispositivo contenga un utente amministrativo e una password validi. Il POAP può essere completato anche se la configurazione del provisioning non fornisce un accesso amministrativo valido.
Durante la convalida lab iniziale, la configurazione del dispositivo conteneva il nome host e l'interfaccia Loopback100 ma non conteneva un utente amministrativo. POAP completato correttamente; dopo il provisioning, tuttavia, l'accesso amministrativo non era disponibile.
Il completamento di POAP conferma che il flusso di lavoro di provisioning è stato completato. L'amministratore non conferma che la configurazione del giorno 0 contiene tutte le impostazioni necessarie per azionare lo switch e accedervi.
Il flusso di lavoro POAP di riferimento utilizza checksum MD5 per verificare l'integrità delle risorse di provisioning prima dell'elaborazione da parte dello switch Nexus.
Il POAP confronta il checksum previsto con il checksum calcolato dal file corrispondente. I valori corrispondenti confermano che il file contiene i dati previsti.
L'implementazione convalidata utilizza le informazioni di integrità per le seguenti risorse:
| Risorsa | Informazioni sull'integrità | Scopo |
|---|---|---|
| script POAP | Valore MD5 incorporato in poap.py | Convalida lo script prima dell'esecuzione. |
| Configurazione dispositivo | conf.FDO262921L3.md5 | Convalida la configurazione del dispositivo scaricato. |
| Immagine Cisco NX-OS | nxos64-cs.10.6.2.F.bin.md5 | Convalida l'immagine software di destinazione. |
L'opzione disable_md5 nello script di riferimento controlla la convalida di MD5. Il valore predefinito è False.
Lo script POAP di riferimento contiene un valore MD5 vicino all'inizio del file:
#md5sum="
Dopo la modifica del contenuto dello script, è necessario ricalcolare il checksum incorporato prima di utilizzare lo script per il POAP.
Per lo script utilizzato in questa implementazione, il checksum è stato aggiornato con:
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"
Lo script risultante conteneva:
#md5sum="e4dd91fd4296d40abd2f6187152cd86e"
Durante il POAP, Cisco NX-OS calcola il checksum dello script scaricato e lo confronta con il valore incorporato prima dell'esecuzione dello script.
Lo script di riferimento può utilizzare un file MD5 separato per verificare la configurazione della periferica.
Per questa implementazione:
File di configurazione:
conf.FDO262921L3
File di integrità:
conf.FDO262921L3.md5
Il file di integrità deve contenere il checksum associato alla versione corrente di conf.FDO262921L3.
Una volta scaricata la configurazione, lo script calcola il relativo checksum e lo confronta con il valore previsto prima di elaborare la configurazione.
Se la configurazione del dispositivo cambia, aggiornare le informazioni MD5 corrispondenti prima del successivo tentativo POAP.
Lo script di riferimento può inoltre convalidare l'immagine Cisco NX-OS di destinazione.
Per questa implementazione:
Immagine di destinazione:
nxos64-cs.10.6.2.F.bin
File di integrità:
nxos64-cs.10.6.2.F.bin.md5
Il file di integrità contiene:
ce50c3f0e387bee578e615a373a4ede0 nxos64-cs.10.6.2.F.bin
Nell'implementazione convalidata, l'immagine di destinazione era già presente in bootflash:. Lo script POAP ha calcolato il checksum MD5 dell'immagine esistente e lo ha confrontato con il valore ottenuto dal server di provisioning.
Poiché entrambi i valori corrispondono, non è necessario scaricare di nuovo il file di immagine.
Nota: La convalida MD5 verifica l'integrità dei file. Non esegue la crittografia dei file di provisioning né fornisce l'autenticazione da sola.
Il protocollo POAP viene eseguito durante l'avvio del sistema quando lo switch non dispone di una configurazione di avvio e il protocollo POAP a livello di sistema è abilitato.
Prima di avviare il processo di provisioning, verificare lo stato POAP:
N9K-POAP-SW1# show system poap System-wide POAP is enabled
Cisco NX-OS consente di disabilitare il POAP a livello globale senza il poap del sistema. Per abilitare di nuovo il POAP, utilizzare il poap di sistema o cancellare il flag POAP disable con write erase poap.
Il POAP standard viene avviato quando lo switch viene avviato senza una configurazione di avvio.
In un ambiente lab controllato, eseguire:
switch# write erase
Avviso: Questo comando cancella la configurazione di avvio.
Do you wish to proceed anyway? (y/n) [n] y
L'operazione di cancellazione della scrittura predefinita rimuove la configurazione di avvio dalla memoria persistente. Non cancella le variabili di configurazione o di avvio in esecuzione.
Verificare che la configurazione di avvio non sia più presente:
switch# show startup-config No startup configuration
Attenzione: la funzione write erase rimuove la configurazione salvata dello switch. Utilizzare questa procedura solo quando la configurazione può essere rimossa o ripristinata in modo sicuro.
Per evitare di perdere l'accesso amministrativo dopo il POAP, verificare che la configurazione del dispositivo preparata nella sezione precedente contenga le credenziali amministrative richieste.
Dopo aver rimosso la configurazione di avvio, ricaricare lo switch.
Se Cisco NX-OS chiede di salvare la configurazione corrente, non salvarla. Il salvataggio della configurazione in esecuzione ricrea la configurazione di avvio e impedisce la condizione di trigger POAP standard.
Durante l'avvio, Cisco NX-OS inizializza il POAP e fornisce un'opzione per interrompere il processo:
Abort Power On Auto Provisioning [yes - continue with normal setup, no - continue with Power On Auto Provisioning] (yes/no)[no]:
Per continuare con il POAP, accettare l'opzione predefinita no.
Dopo l'inizializzazione di POAP, lo switch controlla innanzitutto le risorse di provisioning basate su USB. Se non viene trovato uno script di provisioning USB utilizzabile, il POAP procede con l'individuazione basata sulla rete.
L'implementazione convalidata ha generato questi messaggi:
2026 Sep 22 18:21:23 switch %$ VDC-1 %$ %POAP-2-POAP_INITED: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP process initialized 2026 Sep 22 18:21:41 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - USB Initializing Success 2026 Sep 22 18:21:41 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - USB disk not detected
POAP avvia quindi l'individuazione DHCP IPv4:
2026 Sep 22 18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Start DHCP v4 session 2026 Sep 22 18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_DHCP_DISCOVER_START: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP DHCP Discover phase started
Dopo la ricezione di una risposta DHCP valida, Cisco NX-OS visualizza i parametri di rete temporanei e il percorso dello script POAP.
L'implementazione convalidata ha prodotto:
2026 Sep 22 18:23:58 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: Recieved DHCP offer from server ip - 192.168.100.1 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Using DHCP, valid information received over Eth1/10 from 192.168.100.1 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Assigned IP address: 192.168.100.108 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Netmask: 255.255.255.0 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Default Gateway: 192.168.100.1 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Script Server: 192.168.100.1 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Script Name: poap.py
In questa fase, l'individuazione DHCP è stata completata. Lo switch ha una connettività di rete temporanea e le informazioni necessarie per individuare lo script POAP.
Lo switch recupera lo script POAP identificato durante l'individuazione DHCP:
2026 Sep 22 18:24:14 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - The POAP Script download has started 2026 Sep 22 18:24:14 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - The POAP Script is being downloaded from [copy tftp://192.168.100.1/poap.py bootflash:scripts/script.sh vrf default ] 2026 Sep 22 18:24:15 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_DOWNLOADED: [FDO262921L3-88:FC:5D:BA:D7:7F] - Successfully downloaded POAP script file
Al termine del recupero dello script, il POAP procede con la convalida e l'esecuzione dello script. Lo script di riferimento controlla quindi l'identificazione dei dispositivi, il recupero della configurazione, l'elaborazione delle immagini software, la gestione temporanea della configurazione e le restanti operazioni di provisioning.
Utilizzare le informazioni di questa sezione per verificare ogni fase principale del flusso di lavoro POAP.
Il POAP può essere verificato da prospettive diverse. La console Nexus e i log POAP forniscono informazioni sul processo di provisioning interno, mentre i log del server DHCP e le acquisizioni dei pacchetti forniscono ulteriore visibilità negli scambi di rete.
L'implementazione convalidata utilizza queste origini per correlare il flusso di lavoro dell'assegnazione ruoli:
| Origine verifica | Informazioni fornite |
|---|---|
| Nexus console | Inizializzazione POAP, rilevamento DHCP, esecuzione di script, ricaricamento e ripetizione della configurazione |
| Registri POAP Nexus | Informazioni dettagliate sull'inizializzazione e sull'esecuzione degli script |
| Registri server DHCP | Negoziazione DHCP e attività di trasferimento file |
| Acquisizione pacchetti | Scambi DHCP e TFTP |
| Configurazione di esecuzione e avvio | Risultato del provisioning finale |
Nota: Gli output in questa sezione sono stati raccolti durante i tentativi di convalida POAP controllati. È stato utilizzato un tentativo successivo per convalidare la configurazione del giorno 0 finale con accesso amministrativo. Negli esempi vengono mantenuti i timestamp e i messaggi di log originali.
I registri dei server di terze parti e le acquisizioni dei pacchetti sono inclusi solo come fonti di verifica aggiuntive. La configurazione di software di terze parti non rientra nell'ambito di questo documento.
Durante l'avvio del sistema, verificare che POAP sia stato inizializzato correttamente.
La console Nexus visualizza l'evento di inizializzazione:
2026 Sep 22 18:21:23 switch %$ VDC-1 %$ %POAP-2-POAP_INITED: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP process initialized
Questo messaggio conferma che lo switch è entrato nel flusso di lavoro POAP.
Il POAP controlla quindi le risorse di provisioning basate su USB:
2026 Sep 22 18:21:41 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - USB Initializing Success 2026 Sep 22 18:21:41 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - USB disk not detected
In questo esempio, non è disponibile alcuna risorsa di provisioning USB. Il POAP prosegue quindi con l'individuazione basata sulla rete.
Lo switch avvia quindi il rilevamento DHCP:
2026 Sep 22 18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Start DHCP v4 session 2026 Sep 22 18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_DHCP_DISCOVER_START: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP DHCP Discover phase started
Questi messaggi confermano la transizione dal rilevamento USB al rilevamento DHCP basato sulla rete.
POAP archivia i log di inizializzazione ed esecuzione degli script in bootflash:. Questi file forniscono ulteriori informazioni sul processo di provisioning dopo la generazione degli eventi della console.
N9K-POAP-SW1# dir bootflash: | include poap 5664 Sep 22 19:52:10 2026 20260922195156_poap_24710_script.log 87366 Sep 22 19:58:48 2026 20260922_194902_poap_24710_init.log N9K-POAP-SW1#
Il file _init.log contiene informazioni relative all'inizializzazione e all'individuazione POAP.
Il file _script.log contiene informazioni dettagliate generate durante l'esecuzione dello script POAP.
Se esistono più tentativi POAP, utilizzare il timestamp nel nome file per correlare ciascun file al tentativo di provisioning corrispondente.
Dopo che il POAP è entrato nella fase di rilevamento DHCP, verificare che lo switch Nexus riceva informazioni di rete bootstrap valide.
La console Nexus conferma che il rilevamento DHCP è stato avviato e che sono state ricevute informazioni valide tramite Ethernet1/10:
2026 Sep 22 18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Start DHCP v4 session 2026 Sep 22 18:23:54 switch %$ VDC-1 %$ %POAP-2-POAP_DHCP_DISCOVER_START: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP DHCP Discover phase started 2026 Sep 22 18:23:58 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: Recieved DHCP offer from server ip - 192.168.100.1 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Using DHCP, valid information received over Eth1/10 from 192.168.100.1 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Assigned IP address: 192.168.100.108 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Netmask: 255.255.255.0 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Default Gateway: 192.168.100.1 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Script Server: 192.168.100.1 2026 Sep 22 18:24:02 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Script Name: poap.py
L'output conferma che il POAP ha selezionato Ethernet1/10, ha ottenuto l'indirizzo temporaneo 192.168.100.108 e ha ricevuto il gateway, il server di script e il nome del file di script necessari per la fase di provisioning successiva.
I log del server DHCP forniscono una vista aggiuntiva dello scambio di bootstrap.
L'esempio convalidato ha registrato:
vendor class: Cisco N9K-C9336C-FX2 user class: 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.100.108 88:fc:5d:ba:d7:7f DHCPACK(ens224) 192.168.100.108 88:fc:5d:ba:d7:7f
Il server ha identificato anche le informazioni del bootstrap POAP:
option: 67 bootfile-name poap.py option:150 tftp-server-address 192.168.100.1 option: 3 router 192.168.100.1
I registri confermano lo scambio completo di ricerca, offerta, richiesta e conferma. I log mostrano anche la classe utente Cisco-POAP, il nome del file di script, l'indirizzo del server TFTP e il gateway predefinito associato alla richiesta di provisioning.
È possibile usare un'acquisizione pacchetto per verificare lo scambio DHCP direttamente sulla rete.
Per l'esempio convalidato, l'acquisizione è stata esaminata con:
sudo tcpdump -nn -vvv -r /tmp/poap-run1.pcap \ 'udp port 67 or udp port 68'
La cattura ha mostrato:
DHCP-Message (53), length 1: Discover Vendor-Class (60), length 20: "Cisco N9K-C9336C-FX2" DHCP-Message (53), length 1: Offer DHCP-Message (53), length 1: Request Requested-IP (50), length 4: 192.168.100.108 DHCP-Message (53), length 1: ACK
L'acquisizione dei pacchetti conferma la sequenza di individuazione, offerta, richiesta e conferma osservata nei log del server DHCP.
Al termine del rilevamento DHCP, verificare che lo switch Nexus recuperi lo script POAP dal server identificato durante lo scambio DHCP.
La console Nexus indica quando viene avviato il download dello script:
2026 Sep 22 18:24:14 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - The POAP Script download has started 2026 Sep 22 18:24:14 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - The POAP Script is being downloaded from [copy tftp://192.168.100.1/poap.py bootflash:scripts/script.sh vrf default ] 2026 Sep 22 18:24:15 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_DOWNLOADED: [FDO262921L3-88:FC:5D:BA:D7:7F] - Successfully downloaded POAP script file
Questi messaggi confermano che lo switch ha recuperato poap.py dal server TFTP individuato tramite DHCP.
L'acquisizione di un pacchetto fornisce la conferma diretta delle richieste TFTP generate durante l'esecuzione dello script.
Per l'esempio convalidato, eseguire:
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.py" octet 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, length 25, RRQ "conf.FDO262921L3" octet 13:38:21.737101 IP 192.168.100.108.58866 > 192.168.100.1.69: TFTP, length 35, RRQ "nxos64-cs.10.6.2.F.bin.md5" octet
La prima richiesta conferma che l'indirizzo POAP temporaneo 192.168.100.108 ha contattato il server di provisioning al numero 192.168.100.1 e ha richiesto poap.py. Le richieste successive mostrano l'avanzamento verso la configurazione del dispositivo e la convalida dell'immagine.
Prima dell'esecuzione dello script scaricato, Cisco NX-OS convalida il checksum MD5 incorporato nello script.
L'esempio convalidato ha prodotto:
2026 Sep 22 18:24:15 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - Script file size 113107, MD5 checksum e4dd91fd4296d40abd2f6187152cd86e 2026 Sep 22 18:24:15 switch %$ VDC-1 %$ %POAP-2-POAP_INFO: [FDO262921L3-88:FC:5D:BA:D7:7F] - MD5 checksum received from the script file is e4dd91fd4296d40abd2f6187152cd86e 2026 Sep 22 18:24:15 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_STARTED_MD5_VALIDATED: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP script execution started(MD5 validated)
I valori corrispondenti confermano che lo script scaricato ha superato il controllo di integrità prima dell'avvio dell'esecuzione.
In questa fase, il controllo passa dall'inizializzazione POAP alla logica di provisioning contenuta nello script scaricato.
Dopo l'avvio dello script POAP, verificare che lo script identifichi lo switch Nexus e selezioni la configurazione del dispositivo corrispondente.
In modalità serial_number, lo script di riferimento utilizza il numero di serie dello switch locale per determinare il nome del file di configurazione.
L'esempio convalidato ha generato:
Impostazione del nome file cfg di origine in base al numero di serie
numero di serie FDO262921L3
Nome file di configurazione selezionato: conf.FDO262921L3
L'output conferma che lo script ha identificato il numero di serie locale e ha selezionato conf.FDO262921L3.
Dopo aver selezionato il nome del file di configurazione, lo script recupera le informazioni MD5 corrispondenti:
2026 Sep 22 18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - Logfile name: /bootflash/20260922182417_poap_23243_script.log - script.sh 2026 Sep 22 18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - Found 1 POAP script logs - script.sh 2026 Sep 22 18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - Setting source cfg filename based-on serial number - script.sh 2026 Sep 22 18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: - serial number FDO262921L3 - script.sh 2026 Sep 22 18:24:17 switch %$ VDC-1 %$ %USER-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 22 18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Free bootflash space is 106776296.0 KB - 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] - Single image is set - 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] - Copying config file - 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] - Copying MD5 information - 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] - Starting Copy of MD5. src=/conf.FDO262921L3.md5 dest = /bootflash/conf.FDO262921L3.md5 - 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] - File transfer_protocol = tftp - script.sh
Il file di integrità viene scaricato e archiviato in bootflash: 2026 Sep 22 18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - *** Downloaded file is of size 51 *** - 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] - Renamed /bootflash/conf.FDO262921L3.md5.tmp to /bootflash/conf.FDO262921L3.md5 - script.sh
Lo script recupera quindi la configurazione del dispositivo:
2026 Sep 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 22 18:24:17 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Copying file options source=/conf.FDO262921L3 destination=/bootflash/poap_conf.cfg login_timeout=120 destination_tmp=poap_conf.cfg.tmp - 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] - Transfering using tftp from /conf.FDO262921L3 to bootflash:/poap_conf.cfg.tmp hostname 192.168.100.1 vrf default - 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] - Command is : terminal dont-ask ; terminal password
Questi messaggi confermano che la configurazione specifica del dispositivo è stata recuperata e archiviata localmente per l'elaborazione.
L'acquisizione dei pacchetti fornisce una conferma indipendente delle richieste TFTP generate dallo switch Nexus.
Per l'esempio convalidato:
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, length 25, RRQ "conf.FDO262921L3" octet
La sequenza conferma che lo switch ha richiesto il file di integrità della configurazione prima di recuperare la configurazione del dispositivo.
Anche il registro del server TFTP ha registrato entrambi i trasferimenti:
Sep 22 14:26:36 calo-ubuntu24-00505692aeaf dnsmasq-tftp[144902]: sent /srv/tftp/conf.FDO262921L3.md5 to 192.168.100.108 Sep 22 14:26:37 calo-ubuntu24-00505692aeaf dnsmasq-tftp[144902]: sent /srv/tftp/conf.FDO262921L3 to 192.168.100.108
Una volta scaricata la configurazione, lo script calcola il checksum MD5 e lo confronta con il valore previsto.
Il tentativo di provisioning mostrato in questo esempio ha prodotto:
2026 Sep 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 Sep 22 18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - file name is bootflash:poap_conf.cfg - script.sh 2026 Sep 22 18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - INFO: md5sum a1a51058d79de0348c6cd1934e08acb4 (recalculated) - script.sh 2026 Sep 22 18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Verifying MD5 checksum of /bootflash/poap_conf.cfg (size 120) - script.sh 2026 Sep 22 18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - md5given = a1a51058d79de0348c6cd1934e08acb4 md5calculated = a1a51058d79de0348c6cd1934e08acb4 - script.sh 2026 Sep 22 18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - MD5 match for file = /bootflash/poap_conf.cfg - script.sh
I valori corrispondenti confermano che la configurazione scaricata durante il tentativo di provisioning corrisponde alle informazioni di integrità corrispondenti.
Una volta completato il controllo di integrità, lo script determina il modo in cui preparare la configurazione per l'immagine Cisco NX-OS di destinazione.
In questo esempio:
026 Sep 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 Sep 22 18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Target image supports bootstrap replay. Split config is not required. - script.sh 2026 Sep 22 18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Skip split config as it isn't needed with nxos64-cs.10.6.2.F.bin - script.sh
L'output conferma che l'immagine di destinazione supporta la riproduzione del bootstrap e che la suddivisione della configurazione non è necessaria per questo tentativo di provisioning.
In questa fase, la configurazione specifica del dispositivo è stata identificata, recuperata, convalidata e preparata per il flusso di lavoro POAP rimanente.
Dopo aver recuperato e convalidato la configurazione del dispositivo, verificare in che modo lo script POAP elabora l'immagine Cisco NX-OS di destinazione.
L'implementazione convalidata utilizza: nxos64-cs.10.6.2.F.bin
Lo script recupera innanzitutto le informazioni MD5 corrispondenti:
2026 Sep 22 18:24:18 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Starting Copy of MD5. src=/nxos64-cs.10.6.2.F.bin.md5 dest = /bootflash/nxos64-cs.10.6.2.F.bin.md5 - script.sh 2026 Sep 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
Il file MD5 viene quindi archiviato in bootflash:
2026 Sep 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 Sep 22 18:24:19 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Renamed /bootflash/nxos64-cs.10.6.2.F.bin.md5.tmp to /bootflash/nxos64-cs.10.6.2.F.bin.md5 - script.sh
Lo script legge il checksum ricevuto dal server di provisioning:
2026 Sep 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
Viene quindi calcolato il checksum dell'immagine già presente in bootflash:
2026 Sep 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 Sep 22 18:24:19 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - file name is bootflash:nxos64-cs.10.6.2.F.bin - script.sh 2026 Sep 22 18:24:30 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - INFO: md5sum ce50c3f0e387bee578e615a373a4ede0 (recalculated) - script.sh 2026 Sep 22 18:24:30 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - Verifying MD5 checksum of /bootflash/nxos64-cs.10.6.2.F.bin (size 2952914432) - script.sh 2026 Sep 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
Lo script conferma che l'immagine esistente corrisponde all'immagine prevista:
2026 Sep 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 22 18: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
I valori corrispondenti confermano che l'immagine Cisco NX-OS richiesta era già presente in bootflash: e ha superato il controllo di integrità. Pertanto, non è stato necessario scaricare un'altra copia dell'immagine.
L'acquisizione del pacchetto conferma anche che Nexus ha richiesto il file di integrità dell'immagine:
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.108.58866 > 192.168.100.1.69: TFTP, length 35, RRQ "nxos64-cs.10.6.2.F.bin.md5" octet
Il log del server TFTP ha registrato lo stesso trasferimento:
Sep 22 14:26:38 calo-ubuntu24-00505692aeaf dnsmasq-tftp[144902]: sent /srv/tftp/nxos64-cs.10.6.2.F.bin.md5 to 192.168.100.108
Questi output confermano il recupero di nxos64-cs.10.6.2.F.bin.md5 dal server di provisioning.
Sebbene non fosse necessario scaricare il file di immagine, lo script di riferimento ha continuato con il flusso di lavoro dell'installazione di Cisco NX-OS.
L'esempio convalidato ha generato:
2026 Sep 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 Sep 22 18:24:31 switch %$ VDC-1 %$ %USER-1-SYSTEM_MSG: S/N[FDO262921L3]-MAC[88:FC:5D:BA:D7:7F] - terminal dont-ask ; install all nxos bootflash:/nxos64-cs.10.6.2.F.bin no-reload non-interruptive - script.sh
L'immagine esistente ha superato il controllo di integrità e non ha richiesto un altro trasferimento di file. Tuttavia, lo script di riferimento richiamava ancora il processo di installazione del software sull'immagine convalidata.
Nota: Un'immagine esistente e un MD5 corrispondente possono impedire il download di un'immagine non necessaria. Ciò non significa necessariamente che il flusso di lavoro rimanente per l'installazione del software venga ignorato.
Al termine dell'elaborazione del software, il POAP continua con le restanti operazioni di provisioning e prepara lo switch per il ricaricamento.
Una volta completato lo script POAP, verificare che lo switch proceda con il processo di ricaricamento e di ripetizione della configurazione.
L'esempio convalidato ha segnalato la riuscita dell'esecuzione dello script e quindi un ricaricamento:
2026 Sep 22 18:31:08 switch %$ VDC-1 %$ %POAP-2-POAP_SCRIPT_EXEC_SUCCESS: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP script execution success 2026 Sep 22 18:31:09 switch %$ VDC-1 %$ %POAP-2-POAP_RELOAD_DEVICE: [FDO262921L3-88:FC:5D:BA:D7:7F] - Reload device
Questi messaggi confermano il completamento della fase di esecuzione dello script e la transizione alla fase di ricaricamento successiva all'installazione.
Dopo il riavvio dello switch, Cisco NX-OS rileva il file di riproduzione POAP:
2026 Sep 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]
La riproduzione del bootstrap è stata quindi avviata e completata:
2026 Sep 22 18:34:26 %$ VDC-1 %$ %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Bootstrap Replay Started. 2026 Sep 22 18:34:27 %$ VDC-1 %$ %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Bootstrap Replay Done.
Questi eventi confermano che Cisco NX-OS ha avviato l'elaborazione della configurazione gestita durante il POAP.
Al termine della ripetizione del bootstrap, NX-OS elabora la configurazione del provisioning.
I tentativi di convalida controllata hanno generato questi messaggi:
2026 Sep 22 18:35:42 switch %$ VDC-1 %$ %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Ascii Replay Started. 2026 Sep 22 18:35:44 N9K-POAP-SW1 %$ VDC-1 %$ %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Ascii Replay Done. 2026 Sep 22 20:03:26 switch %VDC_MGR-5-VDC_HOSTNAME_CHANGE: vdc 1 hostname changed to N9K-POAP-SW1 2026 Sep 22 20:03:27 N9K-POAP-SW1 %ETHPORT-5-IF_UP: Interface loopback100 is up 2026 Sep 22 20:03:28 N9K-POAP-SW1 %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Ascii Replay Done. 2026 Sep 22 20:03:29 N9K-POAP-SW1 %ASCII-CFG-2-CONF_CONTROL: System ready
I messaggi mostrano la ripetizione della configurazione ASCII e forniscono la prova diretta dell'applicazione della configurazione del provisioning.
Il nome host è stato modificato in N9K-POAP-SW1 e Loopback100 è diventato operativo come parte della configurazione del provisioning.
Al termine della ripetizione della configurazione, Cisco NX-OS salva la configurazione risultante.
2026 Sep 22 19:24:03 N9K-POAP-SW1 %$ VDC-1 %$ %ASCII-CFG-2-CONF_CONTROL: System ready [########################################] 100% Copy complete, now saving to disk (please wait)... Copy complete. Auto provisioning complete
Il messaggio Provisioning automatico completato conferma il completamento del flusso di lavoro POAP.
In questa fase, verificare la configurazione di esecuzione e la configurazione di avvio risultanti per verificare che la configurazione Day-0 prevista sia attiva e persistente.
Al termine del processo POAP, verificare che la configurazione Day-0 desiderata sia attiva e persistente. Confermare il nome host, l'account amministrativo, la configurazione dell'interfaccia, l'immagine Cisco NX-OS e lo stato POAP a livello di sistema.
N9K-POAP-SW1# show hostname N9K-POAP-SW1 N9K-POAP-SW1# show user-account admin user:admin this user account has no expiry date roles:network-admin N9K-POAP-SW1# show ip interface brief IP Interface Status for VRF "default"(1) Interface IP Address Interface Status Lo100 10.255.255.100 protocol-up/link-up/admin-up N9K-POAP-SW1# show running-config interface loopback100 !Command: show running-config interface loopback100 !Running configuration last done at: Tue Sep 22 20:03:48 2026 !Time: Tue Sep 22 23:17:52 2026 version 10.6(2) Bios:version 05.53 interface loopback100 description POAP-VALIDATION ip address 10.255.255.100/32 N9K-POAP-SW1# show startup-config interface loopback100 !Command: show startup-config interface loopback100 !Time: Tue Sep 22 23:17:57 2026 !Startup config saved at: Tue Sep 22 20:03:48 2026 version 10.6(2) Bios:version 05.53 interface loopback100 description POAP-VALIDATION ip address 10.255.255.100/32 N9K-POAP-SW1# show startup-config | include username username admin password 5
L'output conferma che la configurazione specifica del dispositivo è stata applicata correttamente e salvata nella configurazione di avvio.
Conferma inoltre che lo switch esegue l'immagine Cisco NX-OS prevista e che il POAP a livello di sistema rimane abilitato.
In questo documento vengono descritti i principali componenti e il flusso di lavoro del POAP, tra cui l'individuazione DHCP, il recupero e l'esecuzione di script, la selezione della configurazione specifica del dispositivo, la convalida dell'integrità dei file, l'elaborazione delle immagini Cisco NX-OS e la riproduzione della configurazione.
L'implementazione convalidata dimostra come uno switch Cisco Nexus 9000 possa ottenere le risorse di provisioning richieste, applicare una configurazione con esecuzione il giorno 0 e mantenere la configurazione risultante.
Il processo di verifica dimostra anche come i messaggi della console, i log POAP, i log del server e le acquisizioni dei pacchetti possono essere correlati per confermare ogni fase principale del flusso di lavoro di provisioning.
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
1.0 |
12-Oct-2026
|
Versione iniziale |