Dit document beschrijft PowerOn Auto Provisioning (POAP) op Cisco Nexus 9000-switches met Cisco NX-OS.
Cisco raadt u aan om basiskennis te hebben van deze onderwerpen:
| component | Platform/software | Versie / waarde | Doel |
|---|---|---|---|
| Nexus switch | N9K-C9336C-FX2 | NX-OS 10.6(2) | POAP-apparaat |
| Provisioningserver | Ubuntu-server | 24.04.5 LTS | Infrastructuur voor externe provisioning |
| DHCP/TFTP-service | Dnsmasq | 2.91 | Biedt DHCP- en TFTP-services |
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Het lab maakt gebruik van een Cisco Nexus 9000-switch die rechtstreeks is aangesloten op een Ubuntu-server die de externe provisioninginfrastructuur biedt.
Het doel is om de topologie eenvoudig te houden, zodat de POAP-workflow kan worden waargenomen zonder extra netwerkapparaten tussen de Nexus-switch en de provisioningserver.
Ethernet1/10 op de Nexus-switch is rechtstreeks verbonden met ens224 op de Ubuntu-server.

Voor de implementatie van een nieuwe Cisco Nexus-switch is een eerste configuratie vereist voordat het apparaat kan deelnemen aan het netwerk.
PowerOn Auto Provisioning (POAP) automatiseert dit opstartproces. Wanneer een ondersteunde Nexus-switch opstart zonder opstartconfiguratie, kan Cisco NX-OS de POAP-modus invoeren, tijdelijke netwerkinformatie verkrijgen via DHCP, een provisioningscript ophalen en dat script gebruiken om de vereiste software-image en apparaatconfiguratie te leveren.
POAP wordt voornamelijk geassocieerd met initiële provisioning of Day-0, omdat de switch de resources kan verkrijgen die nodig zijn voor implementatie zonder dat de volledige configuratie handmatig moet worden ingevoerd via de CLI.
Zonder POAP kan de eerste implementatie van een Nexus-switch handmatige interactie vereisen om netwerkconnectiviteit te configureren, configuratiebestanden over te dragen en het vereiste Cisco NX-OS-softwareimage voor te bereiden.
Met POAP kan de switch automatisch de provisioninginfrastructuur opsporen en de resources ophalen die nodig zijn voor de implementatie.
Op een hoog niveau begint POAP wanneer een ondersteunde Nexus-switch opstart zonder opstartconfiguratie. De switch start het provisioningproces en probeert de netwerkinformatie te verkrijgen die nodig is om toegang te krijgen tot de provisioninginfrastructuur.
Nadat de netwerkverbinding tot stand is gebracht, haalt de switch het POAP-script op en voert deze uit. Het script bepaalt het softwareimage en de configuratiebronnen die aan het apparaat zijn gekoppeld en regelt de resterende provisioningbewerkingen.
Cisco definieert het POAP-proces in vijf primaire fasen:
In het volgende gedeelte wordt de rol van elke fase tijdens het provisioningproces beschreven.
POAP werkt als een gefaseerd bootstrapping-proces in Cisco NX-OS. Elke fase voert een specifieke functie uit die vereist is voor automatische voorziening van apparaten.
Het begrijpen van deze fasen vormt de basis voor de implementatie- en verificatieworkflow die verderop in dit document wordt beschreven.
Wanneer een Nexus-switch wordt opgestart, laadt Cisco NX-OS het installatiekopie en zoekt naar een opstartconfiguratie.
Als er een opstartconfiguratie bestaat, zet de switch het normale opstartproces voort. Als er geen opstartconfiguratie wordt gevonden, wordt de POAP-modus gestart.
Tijdens het opstarten geeft NX-OS een prompt weer die de optie biedt om POAP af te breken en door te gaan met de normale interactieve setup. POAP gaat door zonder tussenkomst van de gebruiker.
Als POAP doorgaat, worden de interfaces op het voorpaneel in hun standaardconfiguratie geplaatst voordat het detectieproces begint.
| Voorwaarde | resultaat |
|---|---|
| Opstartconfiguratie is aanwezig. | NX-OS zet het normale opstartproces voort. |
| De opstartconfiguratie is niet aanwezig. | POAP-modus wordt gestart. |
| POAP wordt handmatig afgebroken. | NX-OS gaat de normale interactieve setup in. |
| POAP gaat door. | Het proces gaat verder met USB-detectie. |
Nadat POAP is gestart, zoekt NX-OS naar toegankelijke USB-apparaten voor provisioning van bronnen.
Als een POAP-script op een USB-apparaat wordt gevonden, start NX-OS de scriptuitvoering. Als er geen bruikbaar script wordt gevonden, gaat POAP verder met DHCP-detectie.
USB-gebaseerde provisioning maakt deel uit van de POAP-workflow; de implementatie in dit document richt zich echter op netwerkgebaseerde provisioning via DHCP.
Als een POAP-script niet wordt gevonden tijdens USB-detectie, start de switch de DHCP-detectie.
Tijdens deze fase verzendt de switch DHCP Discover-berichten via de beschikbare frontpanelinterfaces of de beheerinterface om een DHCP-server te vinden die de informatie kan leveren die nodig is voor POAP.
De Cisco Nexus DHCP-client gebruikt het serienummer van de switch in de client-id. Deze informatie kan door de provisioninginfrastructuur worden gebruikt om het apparaat te identificeren en de bootstrap-informatie te verstrekken die nodig is voor het provisioningproces.
De DHCP-onderhandeling maakt gebruik van het standaard Discover, Offer, Request, Acknowledgement (DORA)-proces:
| DHCP-bericht | Doel |
|---|---|
| ontdekken | De Nexus-switch zoekt naar een beschikbare DHCP-server. |
| aanbieding | De DHCP-server biedt netwerk- en POAP-gerelateerde informatie. |
| verzoek | De switch vraagt de geselecteerde DHCP-aanbieding aan. |
| erkenning | De DHCP-server bevestigt de lease en wijst het IP-adres toe. |
Voor netwerkgebaseerde POAP biedt de DHCP-uitwisseling de tijdelijke netwerkinformatie en bootstrap-parameters die nodig zijn om het POAP-script te vinden.
In het DHCP Discover-bericht wordt informatie opgevraagd die het volgende omvat:
De naam van het opstartbestand geeft het POAP-script aan dat de switch ophaalt nadat de DHCP-onderhandeling is voltooid.
DHCP biedt geen definitieve Cisco Nexus-configuratie. Het biedt de bootstrap-informatie die nodig is om tijdelijke connectiviteit tot stand te brengen en het provisioningscript te lokaliseren.
POAP vereist een minimale DHCP-leaseperiode van 3600 seconden.
Het ontvangen van een DHCP-aanbieding betekent niet automatisch dat de DHCP-detectie slaagt. Het aanbod moet voldoen aan de eisen die POAP verwacht voordat de switch doorgaat met de DHCP-aanvraag- en erkenningsuitwisseling.
Als er geen geldig aanbod wordt ontvangen, wordt er via dat aanbod geen IP-adres toegewezen.
Beginnend met Cisco NX-OS Release 7.0(3)I7(4), ondersteunt POAP de DHCP User Class-optie gedefinieerd door RFC 3004.
Voor DHCPv4 gebruikt POAP User Class Option 77 met deze waarde: Cisco-POAP
Deze waarde identificeert het DHCP-verzoek als afkomstig van het POAP-proces.
De Cisco-POAP-waarde kan later worden waargenomen bij het vastleggen van pakketten die tijdens de verificatie worden gebruikt.
Nadat de DHCP-onderhandeling is voltooid, gebruikt de switch de provisioninginformatie die is ontvangen van de DHCP-server om het POAP-script te vinden en op te halen.
In de standaard netwerkgebaseerde workflow die in dit document wordt gebruikt, identificeert de DHCP-informatie de TFTP-server en het opstartbestand dat het provisioningscript bevat. Nadat de tijdelijke netwerkverbinding tot stand is gebracht, downloadt Cisco NX-OS het script van de provisioningserver.
Het POAP-script bevat de logica die vereist is om de softwareafbeelding en de configuratiebronnen die aan het apparaat zijn gekoppeld, te bepalen en te verwerken.
Cisco biedt een referentie-POAP-script geschreven in Python. Het script kan worden aangepast aan de provisioningomgeving.
Het Cisco-referentie-POAP-script bevat een MD5-controlesom.
Wanneer het script wordt gewijzigd, moet de ingesloten controlesom opnieuw worden berekend voordat het script wordt gebruikt voor POAP.
De procedure voor het voorbereiden van de controlesom wordt verderop beschreven in het gedeelte Informatie over bestandsintegriteit voorbereiden.
Nadat het POAP-script is gedownload en gevalideerd, voert Cisco NX-OS het script lokaal uit op de switch.
Het referentiescript kan provisioningtaken uitvoeren zoals:
De gedownloade configuratie wordt niet noodzakelijkerwijs onmiddellijk toegepast tijdens de uitvoering van het script.
Cisco NX-OS kan de configuratie in scène zetten en toepassen nadat de switch is opgestart met het image van de doelsoftware. De configuratie wordt daarom verwerkt in de softwareomgeving waarvoor deze is voorbereid.
Het POAP-script kan bepalen of de beoogde Cisco NX-OS-image al lokaal beschikbaar is.
Als het vereiste image niet aanwezig is, kan het script het image ophalen uit de provisioninginfrastructuur.
Als de vereiste afbeelding al beschikbaar is, kan het script het bestaande bestand valideren en voorkomen dat een andere kopie wordt gedownload.
In de gevalideerde implementatie was het doelimage al aanwezig in bootflash:. Het script heeft het image gevalideerd voordat het doorging met de resterende provisioningbewerkingen.
Nadat het uitvoeren van het script is voltooid, gaat de switch de herlaadfase na de installatie in.
Tijdens deze fase start de switch opnieuw op met het beoogde Cisco NX-OS-softwareimage wanneer een wijziging van het softwareimage deel uitmaakt van het provisioningproces.
De switch past vervolgens de gedownloade configuratie toe of speelt deze opnieuw af. Nadat de configuratie met succes is toegepast, kopieert Cisco NX-OS de actieve configuratie naar de opstartconfiguratie.
Deze reeks zorgt ervoor dat de geprovisioneerde configuratie wordt verwerkt in de softwareomgeving waarvoor deze is voorbereid.
Configuratieweergave is het proces waarbij Cisco NX-OS de configuratie toepast die tijdens POAP is gedownload nadat de switch opnieuw is opgestart.
Het configuratiebestand wordt niet noodzakelijkerwijs toegepast wanneer het in eerste instantie wordt gedownload. In plaats daarvan kan POAP de configuratie tijdens de scriptuitvoering in scène zetten en toepassen nadat het doelimage van Cisco NX-OS actief is geworden.
Het proces kan als volgt worden samengevat:
| etappe | Actie |
|---|---|
| Script-uitvoering | Hiermee wordt het vereiste softwarebeeld en de vereiste configuratie opgehaald. |
| Herladen na installatie | Start de switch opnieuw op na de provisioningbewerkingen. |
| Configuratieweergave | Hiermee past u de gedownloade configuratie toe. |
| Configuratiepersistentie | Kopieert de actieve configuratie naar de opstartconfiguratie. |
Deze scheiding tussen het ophalen van de configuratie en de configuratietoepassing is een belangrijk onderdeel van de POAP-workflow.
Netwerkgebaseerde POAP vereist externe infrastructuur om tijdelijke netwerkconnectiviteit en toegang tot de provisioningbronnen te bieden.
Voor de standaard POAP-workflow omvat de vereiste infrastructuur:
De netwerkinformatie die via DHCP wordt verkregen, wordt gebruikt tijdens het POAP-provisioningproces.
In dit gedeelte worden de onderdelen beschreven die nodig zijn voor de implementatie van op het netwerk gebaseerde PowerOn Auto Provisioning (POAP) op een Cisco Nexus 9000-switch.
POAP vertrouwt op externe DHCP- en bestandsoverdrachtservices om tijdelijke netwerkconnectiviteit en toegang tot de provisioningbronnen te bieden. De configuratie van serverplatforms van derden valt buiten het toepassingsgebied van dit document.
In de voorbeelden in deze sectie wordt de eerder beschreven topologie gebruikt om de POAP-implementatie aan te tonen.
Voor de gevalideerde implementatie biedt de provisioninginfrastructuur de tijdelijke netwerkinformatie- en bestandsoverdrachtservices die de Nexus-switch tijdens POAP vereist.
De DHCP-infrastructuur moet de informatie verstrekken die nodig is om tijdelijke connectiviteit tot stand te brengen en het POAP-script te lokaliseren. POAP vereist een DHCP-lease van ten minste 3600 seconden.
| informatie | Doel |
|---|---|
| IP-adres | Biedt tijdelijke netwerkconnectiviteit tijdens POAP. |
| Subnetmasker | Hiermee definieert u het tijdelijke IP-subnet. |
| Standaardgateway | Biedt connectiviteit met provisioningbronnen wanneer routering vereist is. |
| TFTP-servernaam of -adres | Identificeert de server van waaruit het POAP-script wordt opgehaald. |
| Naam opstartbestand | Identificeert het POAP-script dat de Nexus-switch downloadt. |
Nadat een geldige DHCP-aanbieding is geselecteerd, voltooit de Nexus-switch de DHCP-onderhandeling en gebruikt de toegewezen netwerkinformatie tijdens het provisioningproces.
Voor het gevalideerde voorbeeld in dit document gebruikt de provisioninginfrastructuur de volgende waarden:
| Parameter | Laboratoriumwaarde |
|---|---|
| POAP-netwerk | 192.168.100.0/24 |
| Provisioningserver | 192.168.100.1 |
| DHCP-adresbereik | 192.168.100.100–192.168.100.110 |
| DHCP-lease | 2 uur |
| TFTP-server | 192.168.100.1 |
| POAP-script | poap.py |
| Nexus-interface | Ethernet1/10 |
De provisioningserver die in dit voorbeeld wordt gebruikt, voert Ubuntu uit en biedt de DHCP- en TFTP-services die nodig zijn voor de implementatie. Gedetailleerde configuratie van de serversoftware van derden valt buiten het bereik van dit document.
Cisco biedt een referentie-POAP-script dat is ontwikkeld in Python. Wijzig de bewerkbare opties van de gebruiker om deze aan te passen aan de provisioningomgeving.
Het POAP-script fungeert als de provisioning-orchestrator. Nadat de Nexus-switch het script heeft gedownload en gevalideerd, bepaalt het script hoe de switch de configuratie- en softwareplaatsbronnen ophaalt en verwerkt die nodig zijn voor provisioning.
Voor de gevalideerde implementatie worden deze opties gebruikt:
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": "/", }
De waarden in dit voorbeeld komen overeen met de laboratoriumomgeving. De productiewaarden zijn afhankelijk van de provisioning-infrastructuur en de implementatievereisten.
| optie | Laboratoriumwaarde | Doel |
|---|---|---|
| hostnaam | 192.168.100.1 | Identificeert de server van waaruit de provisioningbestanden worden opgehaald. |
| transfer_protocol | tftp | Hiermee definieert u het protocol voor bestandsoverdracht. |
| modus | serienummer | Gebruikt het serienummer van de switch om het apparaatspecifieke configuratiebestand te selecteren. |
| target_system_image | nxos64-cs.10.6.2.F.bin | Hiermee definieert u het doel van de Cisco NX-OS-image. |
| config_path | / | Hiermee definieert u het pad dat de apparaatconfiguratie bevat. |
| target_image_path | / | Hiermee definieert u het pad dat het image van de doelsoftware bevat. |
Het referentiescript vereist hostnaam, gebruikersnaam en wachtwoord wanneer bestanden worden opgehaald van een externe server. Het voorbeeld maakt gebruik van TFTP, dat geen gebruikersnaam- en wachtwoordverificatie biedt; het referentiescript valideert echter nog steeds de aanwezigheid van deze parameters tijdens de initialisatie.
De gevalideerde implementatie maakt gebruik van:
"mode": "serial_number"
In de modus serial_number haalt het script het serienummer van de lokale switch op en gebruikt het om de corresponderende bestandsnaam voor de configuratie te bepalen.
Voorbeeld:
Switch serienummer: FDO262921L3
Configuratiebestand: conf.FDO262921L3
De bestandsnaam van de configuratie gebruikt deze indeling: conf.<serienummer>
Hetzelfde poap.py-script kan daarom meerdere Nexus-switches ondersteunen, terwijl elke switch zijn eigen apparaatspecifieke configuratie ophaalt.
Op hoog niveau voert het gevalideerde script deze sequentie uit:
Identify the switch. ↓ Select conf.
Het POAP-script bevat niet de volledige apparaatconfiguratie. Het bevat de logica en parameters die nodig zijn om de provisioningbronnen te lokaliseren, te valideren en te verwerken.
Het apparaatconfiguratiebestand bevat de Cisco NX-OS-configuratie die POAP-bepalingen bevat op de Nexus-switch van het doel.
Voor de switch die in dit voorbeeld wordt gebruikt, selecteert de modus serial_number dit configuratiebestand:
Serienummer: FDO262921L3
Configuratiebestand: conf.FDO262921L3
Het configuratiebestand bevat de opdrachten die nodig zijn om de beoogde Day-0-configuratie tot stand te brengen.
Voor de gevalideerde implementatie bevat de configuratie een beheerdersgebruiker, een hostnaam en een loopback-interface:
username admin password
De configuratie is opzettelijk minimaal om de verificatie van de provisioningworkflow te vereenvoudigen.
Nadat POAP is voltooid, bieden de hostnaam, beheerdersaccount en Loopback100-interface duidelijke indicatoren dat de apparaatspecifieke configuratie met succes is toegepast.
De voorziene configuratie moet de beheerderstoegang bevatten die vereist is nadat POAP is voltooid.
Let op: Zorg ervoor dat de apparaatconfiguratie een geldige beheerdersgebruiker en een geldig wachtwoord bevat. POAP kan met succes worden voltooid, zelfs als de geprovisioneerde configuratie geen geldige beheerderstoegang biedt.
Tijdens de initiële validatie van het lab bevatte de apparaatconfiguratie de hostnaam en de Loopback100-interface, maar bevatte deze geen administratieve gebruiker. POAP is met succes voltooid; er was echter geen beheerderstoegang beschikbaar na provisioning.
POAP-voltooiing bevestigt dat de provisioningworkflow met succes is voltooid. Het bevestigt niet dat de Day-0-configuratie alle instellingen bevat die nodig zijn om de switch te bedienen en te openen.
De referentie-POAP-workflow gebruikt MD5-controlesommen om de integriteit van provisioningbronnen te verifiëren voordat deze door de Nexus-switch worden verwerkt.
POAP vergelijkt de verwachte checksum met de checksum die is berekend op basis van het corresponderende bestand. Overeenkomende waarden bevestigen dat het bestand de verwachte gegevens bevat.
De gevalideerde implementatie maakt gebruik van integriteitsinformatie voor deze bronnen:
| Bron | integriteitsinformatie | Doel |
|---|---|---|
| POAP-script | MD5-waarde ingebed in poap.py | Valideert het script vóór de uitvoering. |
| Configuratie van medisch hulpmiddel | conf.FDO262921L3.md5 | Valideert de gedownloade apparaatconfiguratie. |
| Cisco NX-OS-image | nxos64-cs.10.6.2.F.bin.md5 | Valideert het image van de doelsoftware. |
De optie disable_md5 in het referentiescript regelt MD5-validatie. De standaardwaarde is onwaar.
Het referentie-POAP-script bevat een MD5-waarde in de buurt van het begin van het bestand:
#md5sum="
Nadat de scriptinhoud is gewijzigd, moet de ingesloten controlesom opnieuw worden berekend voordat het script voor POAP wordt gebruikt.
Voor het script dat in deze implementatie wordt gebruikt, is de controlesom bijgewerkt met:
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"
Het resulterende script bevatte:
#md5sum="e4dd91fd4296d40abd2f6187152cd86e"
Tijdens POAP berekent Cisco NX-OS de checksum van het gedownloade script en vergelijkt deze met de ingesloten waarde voordat het script wordt uitgevoerd.
Het referentiescript kan een afzonderlijk MD5-bestand gebruiken om de apparaatconfiguratie te verifiëren.
Voor deze implementatie:
Configuratiebestand:
conf.FDO262921L3
Integriteitsbestand:
conf.FDO262921L3.md5
Het integriteitsbestand moet de controlesom bevatten die is gekoppeld aan de huidige versie van conf.FDO262921L3.
Nadat de configuratie is gedownload, berekent het script de controlesom en vergelijkt het deze met de verwachte waarde voordat de configuratie wordt verwerkt.
Als de configuratie van het apparaat verandert, werkt u de bijbehorende MD5-informatie bij voordat u de volgende POAP-poging uitvoert.
Het referentiescript kan ook het doel-Cisco NX-OS-image valideren.
Voor deze implementatie:
Doelafbeelding:
nxos64-cs.10.6.2.F.bin
Integriteitsbestand:
nxos64-cs.10.6.2.F.bin.md5
Het integriteitsbestand bevat:
ce50c3f0e387bee578e615a373a4ede0 nxos64-cs.10.6.2.F.bin
In de gevalideerde implementatie was het doelimage al aanwezig in bootflash:. Het POAP-script berekende de MD5-controlesom van het bestaande image en vergeleek deze met de waarde die werd verkregen van de provisioningserver.
Omdat beide waarden overeenkomen, hoefde het afbeeldingsbestand niet opnieuw te worden gedownload.
Opmerking: MD5-validatie verifieert de bestandsintegriteit. Het versleutelt de provisioningbestanden niet en biedt zelf geen verificatie.
POAP wordt uitgevoerd tijdens het opstarten van het systeem wanneer de switch geen opstartconfiguratie heeft en POAP voor het hele systeem is ingeschakeld.
Voordat het provisioningproces wordt gestart, controleert u de POAP-status:
N9K-POAP-SW1# show system poap System-wide POAP is enabled
Met Cisco NX-OS kan POAP wereldwijd worden uitgeschakeld zonder systeempoap. Om POAP opnieuw in te schakelen, gebruikt u system poap of verwijdert u de POAP-uitschakelvlag met write erase poap.
Standaard POAP start wanneer de switch opstart zonder opstartconfiguratie.
Voer in een gecontroleerde laboratoriumomgeving:
switch# write erase
Waarschuwing: met deze opdracht wordt de opstartconfiguratie gewist.
Do you wish to proceed anyway? (y/n) [n] y
Met de standaardbewerking voor het wissen van schrijfbewerkingen wordt de opstartconfiguratie uit het permanente geheugen verwijderd. De variabelen voor de actieve configuratie of het opstarten worden niet gewist.
Controleer of de opstartconfiguratie niet meer aanwezig is:
switch# show startup-config No startup configuration
Let op: met schrijfwissen wordt de opgeslagen switch verwijderd. Gebruik deze procedure alleen wanneer de configuratie veilig kan worden verwijderd of hersteld.
Om te voorkomen dat de beheerderstoegang na POAP verloren gaat, moet u ervoor zorgen dat de apparaatconfiguratie die in de vorige sectie is voorbereid, de vereiste beheerdersreferenties bevat.
Nadat de opstartconfiguratie is verwijderd, laadt u de switch opnieuw.
Als Cisco NX-OS vraagt om de huidige actieve configuratie op te slaan, slaat u deze niet op. Als u de actieve configuratie opslaat, wordt de opstartconfiguratie opnieuw gemaakt en wordt de standaard POAP-triggervoorwaarde voorkomen.
Tijdens het opstarten initialiseert Cisco NX-OS POAP en biedt een optie om het proces af te breken:
Abort Power On Auto Provisioning [yes - continue with normal setup, no - continue with Power On Auto Provisioning] (yes/no)[no]:
Om verder te gaan met POAP, accepteert u de standaard geen optie.
Nadat POAP is geïnitialiseerd, controleert de switch eerst op USB-gebaseerde provisioningbronnen. Als er geen bruikbaar USB-provisioningscript wordt gevonden, gaat POAP verder met netwerkgebaseerde detectie.
De gevalideerde implementatie heeft deze berichten gegenereerd:
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 start vervolgens de IPv4 DHCP-detectie:
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
Nadat een geldige DHCP-respons is ontvangen, geeft Cisco NX-OS de tijdelijke netwerkparameters en de locatie van het POAP-script weer.
De gevalideerde implementatie leverde:
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 dit stadium is de DHCP-detectie voltooid. De switch heeft een tijdelijke netwerkverbinding en de informatie die nodig is om het POAP-script te vinden.
De switch haalt het POAP-script op dat tijdens de DHCP-detectie is gevonden:
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
Nadat het ophalen van het script is voltooid, gaat POAP verder met het valideren en uitvoeren van het script. Het referentiescript regelt vervolgens de identificatie van het apparaat, het ophalen van de configuratie, de verwerking van software-images, de configuratie-staging en de resterende provisioningbewerkingen.
Gebruik de informatie in deze sectie om elke belangrijke fase van de POAP-workflow te verifiëren.
POAP kan vanuit meerdere perspectieven worden geverifieerd. De Nexus-console en POAP-logs bieden informatie over het interne provisioningproces, terwijl DHCP-serverlogs en pakketopnamen extra zichtbaarheid bieden in de netwerkuitwisselingen.
De gevalideerde implementatie gebruikt deze bronnen om de provisioningworkflow te correleren:
| Verificatiebron | verstrekte informatie |
|---|---|
| Nexus-console | POAP-initialisatie, DHCP-detectie, scriptuitvoering, opnieuw laden en opnieuw afspelen van configuratie |
| Nexus POAP-logboeken | Gedetailleerde informatie over initialisatie en scriptuitvoering |
| DHCP-serverlogboeken | DHCP-onderhandelings- en bestandsoverdrachtactiviteit |
| Packet capture | DHCP en TFTP uitwisselingen |
| Configuratie uitvoeren en opstarten | Definitief voorzieningsresultaat |
Opmerking: de uitgangen in deze sectie zijn verzameld tijdens gecontroleerde POAP-validatiepogingen. Een latere poging werd gebruikt om de uiteindelijke Day-0-configuratie met administratieve toegang te valideren. De oorspronkelijke tijdstempels en logberichten worden bewaard in de voorbeelden.
Serverlogs van derden en pakketopnamen worden alleen als extra verificatiebronnen opgenomen. De configuratie van software van derden valt buiten het bereik van dit document.
Controleer tijdens het opstarten van het systeem of POAP met succes is geïnitialiseerd.
Op de Nexus-console wordt de initialisatiegebeurtenis weergegeven:
2026 Sep 22 18:21:23 switch %$ VDC-1 %$ %POAP-2-POAP_INITED: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP process initialized
Dit bericht bevestigt dat de switch de POAP-werkstroom heeft ingevoerd.
POAP controleert vervolgens op USB-gebaseerde provisioningbronnen:
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 dit voorbeeld is geen USB-provisioningbron beschikbaar. POAP gaat daarom door met netwerkgebaseerde detectie.
De switch start vervolgens de DHCP-detectie:
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
Deze berichten bevestigen de overgang van USB-detectie naar netwerkgebaseerde DHCP-detectie.
POAP slaat initialisatie- en scriptuitvoeringslogboeken op in bootflash:. Deze bestanden bieden aanvullende informatie over het provisioningproces nadat de consolegebeurtenissen zijn gegenereerd.
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#
Het bestand _init.log bevat informatie over POAP-initialisatie en -detectie.
Het bestand _script.log bevat gedetailleerde informatie die is gegenereerd tijdens de uitvoering van het POAP-script.
Wanneer er meerdere POAP-pogingen bestaan, gebruikt u de tijdstempel in de bestandsnaam om elk bestand te correleren met de bijbehorende provisioningpoging.
Controleer nadat POAP de DHCP-detectiefase is ingegaan of de Nexus-switch geldige bootstrap-netwerkinformatie ontvangt.
De Nexus-console bevestigt dat de DHCP-detectie is gestart en dat geldige informatie is ontvangen via 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
De uitvoer bevestigt dat POAP Ethernet1/10 heeft geselecteerd, het tijdelijke adres 192.168.100.108 heeft verkregen en de gateway-, scriptserver- en scriptbestandsnaam heeft ontvangen die vereist is voor de volgende provisioningfase.
DHCP-serverlogboeken bieden een extra weergave van de bootstrap-uitwisseling.
Het gevalideerde voorbeeld is geregistreerd:
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
De server heeft ook de POAP-bootstrap-informatie geïdentificeerd:
option: 67 bootfile-name poap.py option:150 tftp-server-address 192.168.100.1 option: 3 router 192.168.100.1
De logbestanden bevestigen de volledige uitwisseling van Ontdekking, Aanbod, Aanvraag en Bevestiging. In de logbestanden worden ook de gebruikersklasse Cisco-POAP, de bestandsnaam van het script, het TFTP-serveradres en de standaardgateway weergegeven die aan het provisioningverzoek zijn gekoppeld.
Een pakketopname kan worden gebruikt om de DHCP-uitwisseling rechtstreeks op het netwerk te verifiëren.
Voor het gevalideerde voorbeeld werd de opname beoordeeld met:
sudo tcpdump -nn -vvv -r /tmp/poap-run1.pcap \ 'udp port 67 or udp port 68'
De vangst toonde aan:
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
De pakketopname bevestigt de detectie-, aanbieding-, aanvraag- en erkenningsvolgorde die is waargenomen in de DHCP-serverlogboeken.
Controleer nadat DHCP Discovery is voltooid of de Nexus-switch het POAP-script ophaalt van de server die tijdens de DHCP-uitwisseling is geïdentificeerd.
De Nexus-console geeft aan wanneer het downloaden van het script begint:
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
Deze berichten bevestigen dat de switch poap.py heeft opgehaald van de TFTP-server die via DHCP is ontdekt.
Een pakketopname biedt directe bevestiging van de TFTP-verzoeken die tijdens de uitvoering van het script zijn gegenereerd.
Voer voor het gevalideerde voorbeeld het volgende uit:
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
Het eerste verzoek bevestigt dat het tijdelijke POAP-adres 192.168.100.108 contact heeft opgenomen met de provisioningserver op 192.168.100.1 en heeft gevraagd om poap.py. De volgende aanvragen tonen de voortgang naar apparaatconfiguratie en beeldvalidatie.
Voordat het gedownloade script wordt uitgevoerd, valideert Cisco NX-OS de MD5 checksum die in het script is ingebed.
Het gevalideerde voorbeeld dat is geproduceerd:
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)
De overeenkomende waarden bevestigen dat het gedownloade script de integriteitscontrole heeft doorstaan voordat de uitvoering werd gestart.
In dit stadium gaat het besturingselement over van POAP-initialisatie naar de provisioninglogica in het gedownloade script.
Controleer nadat het POAP-script is gestart of het script de Nexus-switch identificeert en de bijbehorende apparaatconfiguratie selecteert.
In de modus serial_number gebruikt het referentiescript het serienummer van de lokale switch om de naam van het configuratiebestand te bepalen.
Het gegenereerde gevalideerde voorbeeld:
De bestandsnaam van de bron cfg instellen op basis van het serienummer
serienummer FDO262921L3
Geselecteerde conf bestandsnaam: conf.FDO262921L3
De uitvoer bevestigt dat het script het lokale serienummer heeft geïdentificeerd en conf.FDO262921L3 heeft geselecteerd.
Nadat de bestandsnaam van de configuratie is geselecteerd, haalt het script de bijbehorende MD5-informatie op:
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
Het integriteitsbestand wordt gedownload en opgeslagen 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
Het script haalt vervolgens de apparaatconfiguratie op:
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
Deze berichten bevestigen dat de apparaatspecifieke configuratie met succes is opgehaald en lokaal is opgeslagen voor verwerking.
De pakketopname geeft een onafhankelijke bevestiging van de TFTP-verzoeken die door de Nexus-switch zijn gegenereerd.
Voor het gevalideerde voorbeeld:
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
De reeks bevestigt dat de switch het configuratieintegriteitsbestand heeft aangevraagd voordat de apparaatconfiguratie is opgehaald.
Het TFTP-serverlog registreerde ook beide overdrachten:
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
Nadat de configuratie is gedownload, berekent het script de MD5-controlesom en vergelijkt het deze met de verwachte waarde.
De provisioningpoging die in dit voorbeeld wordt getoond, leverde het volgende op:
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
De overeenkomende waarden bevestigen dat de configuratie die tijdens deze provisioningpoging is gedownload, overeenkomt met de corresponderende integriteitsgegevens.
Nadat de integriteitscontrole is geslaagd, bepaalt het script hoe de configuratie moet worden voorbereid voor het doel Cisco NX-OS-image.
In dit voorbeeld:
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
De uitvoer bevestigt dat het doelimage bootstrap replay ondersteunt en dat splitsing van de configuratie niet vereist is voor deze provisioningpoging.
In dit stadium is de apparaatspecifieke configuratie geïdentificeerd, opgehaald, gevalideerd en voorbereid voor de resterende POAP-workflow.
Nadat de apparaatconfiguratie is opgehaald en gevalideerd, controleert u hoe het POAP-script het doelimage van Cisco NX-OS verwerkt.
De gevalideerde implementatie gebruikt: nxos64-cs.10.6.2.F.bin
Het script haalt eerst de bijbehorende MD5-informatie op:
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
Het MD5-bestand wordt vervolgens opgeslagen 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
Het script leest de controlesom die is ontvangen van de provisioningserver:
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
Vervolgens berekent het de controlesom van de afbeelding die al in bootflash aanwezig is:
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
Het script bevestigt dat de bestaande afbeelding overeenkomt met de verwachte afbeelding:
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
De overeenkomende waarden bevestigen dat het vereiste Cisco NX-OS-image al aanwezig was in bootflash: en de integriteitscontrole heeft doorstaan. Een andere kopie van de afbeelding hoefde niet gedownload te worden.
De pakketopname bevestigt ook dat de Nexus het integriteitsbestand voor de afbeelding heeft aangevraagd:
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
Het TFTP-serverlog registreerde dezelfde overdracht:
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
Deze uitgangen bevestigen het ophalen van nxos64-cs.10.6.2.F.bin.md5 van de provisioningserver.
Hoewel het afbeeldingsbestand niet gedownload hoefde te worden, ging het referentiescript verder met de Cisco NX-OS installatieworkflow.
Het gegenereerde gevalideerde voorbeeld:
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
Het bestaande image heeft de integriteitscontrole doorstaan en heeft geen nieuwe bestandsoverdracht nodig. In het referentiescript werd het installatieproces van de software echter nog steeds tegen het gevalideerde image ingeroepen.
Opmerking: een bestaande image en een overeenkomende MD5 kunnen onnodige downloads van images voorkomen. Dit betekent niet noodzakelijkerwijs dat de resterende software-installatieworkflow wordt overgeslagen.
Nadat de softwareverwerking is voltooid, gaat POAP verder met de resterende provisioningbewerkingen en bereidt de switch voor op herladen.
Controleer nadat het POAP-script met succes is voltooid of de switch doorgaat met het herlaad- en configuratieherhalingsproces.
Het gevalideerde voorbeeld rapporteerde een geslaagde scriptuitvoering en vervolgens een herlaad:
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
Deze berichten bevestigen de voltooiing van de scriptuitvoeringsfase en de overgang naar de herlaadfase na de installatie.
Nadat de switch opnieuw is opgestart, detecteert Cisco NX-OS het POAP-afspeelbestand:
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]
De bootstrap replay is gestart en voltooid:
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.
Deze gebeurtenissen bevestigen dat Cisco NX-OS is begonnen met het verwerken van de configuratie die tijdens POAP is gefaseerd.
Nadat het opstarten is voltooid, verwerkt NX-OS de voorziene configuratie.
De gecontroleerde validatiepogingen genereerden deze berichten:
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
De berichten tonen de ASCII-configuratieweergave en leveren direct bewijs dat de voorziene configuratie is toegepast.
De hostnaam veranderde in N9K-POAP-SW1 en Loopback100 werd operationeel als onderdeel van de geprovisioneerde configuratie.
Nadat de configuratie is voltooid, slaat Cisco NX-OS de resulterende configuratie op.
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
Het bericht Automatische provisioning voltooid bevestigt de voltooiing van de POAP-workflow.
Controleer in dit stadium de resulterende actieve configuratie en opstartconfiguratie om te bevestigen dat de beoogde Day-0-configuratie actief en persistent is.
Controleer nadat POAP is voltooid of de beoogde Day-0-configuratie actief en persistent is. Bevestig de voorziene hostnaam, beheerdersaccount, interfaceconfiguratie, Cisco NX-OS-image en POAP-status voor het hele systeem.
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
De uitvoer bevestigt dat de apparaatspecifieke configuratie met succes is toegepast en opgeslagen in de opstartconfiguratie.
Het bevestigt ook dat de switch het verwachte Cisco NX-OS-image uitvoert en dat POAP voor het hele systeem ingeschakeld blijft.
Dit document beschrijft de belangrijkste POAP-componenten en workflow, waaronder DHCP-detectie, het ophalen en uitvoeren van scripts, apparaatspecifieke configuratieselectie, validatie van bestandsintegriteit, Cisco NX-OS-beeldverwerking en herhaling van configuraties.
De gevalideerde implementatie laat zien hoe een Cisco Nexus 9000-switch de vereiste provisioningbronnen kan verkrijgen, een Day-0-configuratie kan toepassen en de resulterende configuratie kan voortzetten.
Het verificatieproces laat ook zien hoe consoleberichten, POAP-logs, serverlogs en pakketopnamen kunnen worden gecorreleerd om elke belangrijke fase van de provisioningworkflow te bevestigen.
| Revisie | Publicatiedatum | Opmerkingen |
|---|---|---|
1.0 |
12-Oct-2026
|
Eerste vrijgave |