Este documento describe PowerOn Auto Provisioning (POAP) en switches Cisco Nexus 9000 que ejecutan Cisco NX-OS.
Cisco recomienda tener conocimientos básicos sobre estos temas:
| Componente | Plataforma/Software | Versión/Valor | Propósito |
|---|---|---|---|
| switch Nexus | N9K-C9336C-FX2 | NX-OS 10.6(2) | dispositivo POAP |
| Servidor de aprovisionamiento | Servidor Ubuntu | 24.04.5 LTS | Infraestructura de aprovisionamiento externo |
| servicio DHCP/TFTP | dnsmasq | 2.91 | Proporciona servicios DHCP y TFTP |
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
El laboratorio utiliza un switch Cisco Nexus 9000 conectado directamente a un servidor Ubuntu que proporciona la infraestructura de aprovisionamiento externa.
El objetivo es mantener la sencillez de la topología, de modo que se pueda observar el flujo de trabajo de POAP sin necesidad de dispositivos de red adicionales entre el switch Nexus y el servidor de aprovisionamiento.
Ethernet1/10 en el switch Nexus está conectado directamente a ens224 en el servidor Ubuntu.

La implementación de un nuevo switch Cisco Nexus requiere una configuración inicial antes de que el dispositivo pueda participar en la red.
PowerOn Auto Provisioning (POAP) automatiza este proceso de bootstrap. Cuando un switch Nexus compatible se inicia sin una configuración de inicio, Cisco NX-OS puede entrar en modo POAP, obtener información de red temporal a través de DHCP, recuperar un script de aprovisionamiento y utilizar ese script para aprovisionar la imagen de software y la configuración de dispositivo necesarias.
POAP se asocia principalmente con el aprovisionamiento inicial o de día 0, ya que el switch puede obtener los recursos necesarios para la implementación sin necesidad de introducir manualmente la configuración completa a través de la CLI.
Sin POAP, la implementación inicial de un switch Nexus puede requerir la interacción manual para configurar la conectividad de red, transferir los archivos de configuración y preparar la imagen de software de Cisco NX-OS necesaria.
Con POAP, el switch puede detectar automáticamente la infraestructura de aprovisionamiento y recuperar los recursos necesarios para la implementación.
En un nivel superior, el POAP comienza cuando un switch Nexus compatible se inicia sin una configuración de inicio. El switch inicia el proceso de aprovisionamiento e intenta obtener la información de red necesaria para acceder a la infraestructura de aprovisionamiento.
Una vez establecida la conectividad de red, el switch recupera y ejecuta el script POAP. El script determina la imagen de software y los recursos de configuración asociados con el dispositivo y controla las operaciones de aprovisionamiento restantes.
Cisco define el proceso POAP en cinco fases principales:
En la siguiente sección se describe la función de cada fase durante el proceso de aprovisionamiento.
POAP funciona como un proceso de bootstrap por fases en Cisco NX-OS. Cada fase realiza una función específica necesaria para el aprovisionamiento automático de dispositivos.
La comprensión de estas fases proporciona la base para el flujo de trabajo de implementación y verificación que se describe más adelante en este documento.
Cuando se enciende un switch Nexus, Cisco NX-OS carga la imagen de software instalada y busca una configuración de inicio.
Si existe una configuración de inicio, el switch continúa el proceso de inicio normal. Si no se encuentra ninguna configuración de inicio, se inicia el modo POAP.
Durante el inicio, NX-OS muestra un mensaje que ofrece la opción de cancelar POAP y continuar con la configuración interactiva normal. POAP continúa sin la intervención del usuario.
Si el POAP continúa, las interfaces del panel frontal se colocan en su configuración predeterminada antes de que comience el proceso de detección.
| Condición | Resultado |
|---|---|
| La configuración de inicio está presente. | NX-OS continúa el proceso de arranque normal. |
| La configuración de inicio no está presente. | Se inicia el modo POAP. |
| POAP se anula manualmente. | NX-OS entra en la configuración interactiva normal. |
| POAP continúa. | El proceso continúa con la detección de USB. |
Una vez iniciado POAP, NX-OS busca los recursos de aprovisionamiento en los dispositivos USB accesibles.
Si se encuentra un script POAP en un dispositivo USB, NX-OS inicia la ejecución del script. Si no se encuentra un script utilizable, POAP continúa con la detección DHCP.
El aprovisionamiento basado en USB forma parte del flujo de trabajo de POAP; sin embargo, la implementación de este documento se centra en el aprovisionamiento basado en red a través de DHCP.
Si no se encuentra un script POAP durante la detección USB, el switch inicia la detección DHCP.
Durante esta fase, el switch envía mensajes de detección de DHCP a través de las interfaces del panel frontal disponibles o la interfaz de administración para localizar un servidor DHCP que pueda proporcionar la información requerida para POAP.
El cliente DHCP de Cisco Nexus utiliza el número de serie del switch en el identificador del cliente. La infraestructura de aprovisionamiento puede utilizar esta información para identificar el dispositivo y proporcionar la información de bootstrap necesaria para el proceso de aprovisionamiento.
La negociación DHCP utiliza el proceso estándar de detección, oferta, solicitud y reconocimiento (DORA):
| Mensaje DHCP | Propósito |
|---|---|
| Detección | El switch Nexus busca un servidor DHCP disponible. |
| Oferta | El servidor DHCP proporciona información relacionada con la red y POAP. |
| Petición | El switch solicita la oferta de DHCP seleccionada. |
| Reconocimiento | El servidor DHCP confirma la concesión y asigna la dirección IP. |
Para el POAP basado en la red, el intercambio DHCP proporciona la información de red temporal y los parámetros de bootstrap requeridos para localizar el script POAP.
El mensaje DHCP Discover solicita información que incluye:
El nombre del archivo de arranque identifica el script POAP que el switch recupera después de que se complete la negociación DHCP.
DHCP no proporciona la configuración final de Cisco Nexus. Proporciona la información de bootstrap necesaria para establecer la conectividad temporal y localizar el script de aprovisionamiento.
POAP requiere un período mínimo de concesión de DHCP de 3600 segundos.
Recibir una oferta de DHCP no significa automáticamente que la detección de DHCP se realice correctamente. La oferta debe cumplir los requisitos esperados por POAP antes de que el switch continúe con el intercambio de confirmación y solicitud DHCP.
Si no se recibe ninguna oferta válida, no se asigna una dirección IP a través de dicha oferta.
A partir de Cisco NX-OS versión 7.0(3)I7(4), POAP admite la opción Clase de usuario DHCP definida en RFC 3004.
Para DHCPv4, POAP utiliza la opción de clase de usuario 77 con este valor: Cisco-POAP
Este valor identifica la solicitud DHCP como originada en el proceso POAP.
El valor de Cisco-POAP se puede observar más adelante en la captura de paquetes utilizada durante la verificación.
Una vez que se completa la negociación DHCP, el switch utiliza la información de aprovisionamiento recibida del servidor DHCP para localizar y recuperar el script POAP.
En el flujo de trabajo estándar basado en red utilizado en este documento, la información DHCP identifica el servidor TFTP y el archivo de inicio que contiene la secuencia de comandos de aprovisionamiento. Una vez establecida la conectividad de red temporal, Cisco NX-OS descarga el script del servidor de aprovisionamiento.
El script POAP contiene la lógica necesaria para determinar y procesar la imagen de software y los recursos de configuración asociados con el dispositivo.
Cisco proporciona un script POAP de referencia escrito en Python. El script se puede personalizar para que coincida con el entorno de aprovisionamiento.
El script POAP de referencia de Cisco incluye una suma de comprobación MD5.
Cuando se modifica la secuencia de comandos, la suma de comprobación incrustada se debe volver a calcular antes de utilizar la secuencia de comandos para POAP.
El procedimiento de preparación de la suma de comprobación se describe más adelante en la sección Preparación de la Información de Integridad del Archivo.
Una vez descargado y validado el script POAP, Cisco NX-OS lo ejecuta localmente en el switch.
La secuencia de comandos de referencia puede realizar tareas de aprovisionamiento como:
La configuración descargada no se aplica necesariamente inmediatamente durante la ejecución del script.
Cisco NX-OS puede almacenar en zona intermedia la configuración y aplicarla después de que el switch se inicie con la imagen de software de destino. Por lo tanto, la configuración se procesa en el entorno de software para el que se preparó.
El script POAP puede determinar si la imagen de Cisco NX-OS de destino ya está disponible localmente.
Si la imagen requerida no está presente, el script puede recuperarla de la infraestructura de aprovisionamiento.
Si la imagen necesaria ya está disponible, el script puede validar el archivo existente y evitar la descarga de otra copia.
En la implementación validada, la imagen de destino ya estaba presente en bootflash:. El script validó la imagen antes de continuar con las operaciones de aprovisionamiento restantes.
Una vez finalizada la ejecución de la secuencia de comandos, el switch entra en la fase de recarga posterior a la instalación.
Durante esta fase, el switch se reinicia y arranca con la imagen del software Cisco NX-OS de destino cuando un cambio de imagen de software forma parte del proceso de aprovisionamiento.
A continuación, el switch aplica o reproduce la configuración descargada. Una vez aplicada correctamente la configuración, Cisco NX-OS copia la configuración en ejecución en la configuración de inicio.
Esta secuencia garantiza que la configuración aprovisionada se procesa en el entorno de software para el que se ha preparado.
La reproducción de la configuración es el proceso en el que Cisco NX-OS aplica la configuración descargada durante el POAP después de que se reinicie el switch.
El archivo de configuración no se aplica necesariamente cuando se descarga inicialmente. En su lugar, POAP puede almacenar en zona intermedia la configuración durante la ejecución del script y aplicarla después de que la imagen de Cisco NX-OS de destino se active.
El proceso puede resumirse de la siguiente manera:
| Fase | Acción |
|---|---|
| Ejecución de script | Recupera la imagen y la configuración de software necesarias. |
| Recarga posterior a la instalación | Reinicia el switch después de aprovisionar las operaciones. |
| Reproducción de configuración | Aplica la configuración descargada. |
| Persistencia de configuración | Copia la configuración en ejecución en la configuración inicial. |
Esta separación entre la recuperación de la configuración y la aplicación de configuración es una parte importante del flujo de trabajo de POAP.
El POAP basado en la red requiere una infraestructura externa para proporcionar conectividad de red temporal y acceso a los recursos de aprovisionamiento.
Para el flujo de trabajo POAP estándar, la infraestructura necesaria incluye:
La información de red obtenida a través de DHCP se utiliza durante el proceso de aprovisionamiento de POAP.
En esta sección se describen los componentes necesarios para implementar el aprovisionamiento automático PowerOn (POAP) basado en red en un switch Cisco Nexus 9000.
POAP se basa en DHCP externo y servicios de transferencia de archivos para proporcionar conectividad de red temporal y acceso a los recursos de aprovisionamiento. La configuración de plataformas de servidor de terceros está fuera del alcance de este documento.
Los ejemplos de esta sección utilizan la topología descrita anteriormente para demostrar la implementación de POAP.
Para la implementación validada, la infraestructura de aprovisionamiento proporciona la información de red temporal y los servicios de transferencia de archivos que necesita el switch Nexus durante el POAP.
La infraestructura DHCP debe proporcionar la información necesaria para establecer la conectividad temporal y localizar el script POAP. POAP requiere una concesión DHCP de al menos 3600 segundos.
| Información | Propósito |
|---|---|
| Dirección IP | Proporciona conectividad de red temporal durante el POAP. |
| Máscara de subnet | Define la subred IP temporal. |
| Gateway predeterminado | Proporciona conectividad para aprovisionar recursos cuando se requiere routing. |
| Nombre o dirección del servidor TFTP | Identifica el servidor desde el que se recupera la secuencia de comandos POAP. |
| Nombre de archivo de inicialización | Identifica el script POAP que descarga el switch Nexus. |
Después de seleccionar una oferta de DHCP válida, el switch Nexus completa la negociación DHCP y utiliza la información de red asignada durante el proceso de aprovisionamiento.
Para el ejemplo validado en este documento, la infraestructura de aprovisionamiento utiliza estos valores:
| Parámetro | Valor de laboratorio |
|---|---|
| red POAP | 192.168.100.0/24 |
| Servidor de aprovisionamiento | 192.168.100.1 |
| Intervalo de direcciones DHCP | 192.168.100.100–192.168.100.110 |
| concesión DHCP | 2 horas |
| Servidor TFTP | 192.168.100.1 |
| script POAP | poap.py |
| interfaz Nexus | Ethernet1/10 |
El servidor de aprovisionamiento utilizado en este ejemplo ejecuta Ubuntu y proporciona los servicios DHCP y TFTP necesarios para la implementación. La configuración detallada del software de servidor de terceros no se incluye en este documento.
Cisco proporciona un script POAP de referencia desarrollado en Python. Modifique las opciones editables por el usuario para que coincidan con el entorno de aprovisionamiento.
El script POAP actúa como orquestador de aprovisionamiento. Una vez que el switch Nexus descarga y valida el script, este determina cómo recupera y procesa el switch los recursos de configuración e imagen de software necesarios para el aprovisionamiento.
Para la implementación validada, se utilizan estas opciones:
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": "/", }
Los valores que se muestran en este ejemplo corresponden al entorno de laboratorio. Los valores de producción dependen de la infraestructura de aprovisionamiento y de los requisitos de implementación.
| Opción | Valor de laboratorio | Propósito |
|---|---|---|
| nombre del host | 192.168.100.1 | Identifica el servidor desde el que se recuperan los archivos de aprovisionamiento. |
| transfer_protocol | tftp | Define el protocolo de transferencia de archivos. |
| modo | serial_number | Utiliza el número de serie del switch para seleccionar el archivo de configuración específico del dispositivo. |
| target_system_image | nxos64-cs.10.6.2.F.bin | Define la imagen de Cisco NX-OS de destino. |
| config_path | / | Define la ruta que contiene la configuración del dispositivo. |
| target_image_path | / | Define la ruta que contiene la imagen de software de destino. |
La secuencia de comandos de referencia requiere nombre de host, nombre de usuario y contraseña cuando se recuperan archivos de un servidor remoto. El ejemplo utiliza TFTP, que no proporciona autenticación de nombre de usuario y contraseña; sin embargo, la secuencia de comandos de referencia sigue validando la presencia de estos parámetros durante la inicialización.
La implementación validada utiliza:
"mode": "serial_number"
En el modo serial_number, el script recupera el número de serie del switch local y lo utiliza para determinar el nombre de archivo de configuración correspondiente.
Por ejemplo:
Número de serie del switch: FDO262921L3
Archivo de configuración: conf.FDO262921L3
El nombre de archivo de configuración utiliza este formato: conf.<serial-number>
Por lo tanto, el mismo script poap.py puede admitir varios switches Nexus mientras que cada switch recupera su propia configuración específica de dispositivo.
En un nivel superior, el script validado realiza esta secuencia:
Identify the switch. ↓ Select conf.
El script POAP no contiene la configuración de dispositivo completa. Contiene la lógica y los parámetros necesarios para localizar, validar y procesar los recursos de aprovisionamiento.
El archivo de configuración del dispositivo contiene la configuración de Cisco NX-OS que POAP proporciona en el switch Nexus de destino.
Para el switch utilizado en este ejemplo, el modo serial_number selecciona este archivo de configuración:
Número de serie: FDO262921L3
Archivo de configuración: conf.FDO262921L3
El archivo de configuración contiene los comandos necesarios para establecer la configuración de día 0 prevista.
Para la implementación validada, la configuración contiene un usuario administrativo, un nombre de host y una interfaz de loopback:
username admin password
La configuración es intencionadamente mínima para simplificar la verificación del flujo de trabajo de aprovisionamiento.
Una vez finalizado el POAP, el nombre de host, la cuenta administrativa y la interfaz Loopback100 proporcionan indicadores claros de que la configuración específica del dispositivo se ha aplicado correctamente.
La configuración aprovisionada debe incluir el acceso administrativo necesario una vez finalizado el POAP.
Precaución: Asegúrese de que la configuración del dispositivo contiene un usuario administrativo y una contraseña válidos. POAP puede completarse correctamente incluso si la configuración aprovisionada no proporciona un acceso administrativo válido.
Durante la validación de laboratorio inicial, la configuración del dispositivo contenía el nombre de host y la interfaz Loopback100, pero no contenía un usuario administrativo. POAP finalizado correctamente; sin embargo, el acceso administrativo no estaba disponible después del aprovisionamiento.
La finalización de POAP confirma que el flujo de trabajo de aprovisionamiento se ha completado correctamente. No confirma que la configuración de Día 0 contenga todos los ajustes requeridos para operar y acceder al switch.
El flujo de trabajo POAP de referencia utiliza sumas de comprobación MD5 para verificar la integridad del aprovisionamiento de los recursos antes de su procesamiento por el switch Nexus.
POAP compara la suma de comprobación esperada con la suma de comprobación calculada a partir del archivo correspondiente. Los valores coincidentes confirman que el archivo contiene los datos esperados.
La implementación validada utiliza información de integridad para estos recursos:
| Recurso | Información de integridad | Propósito |
|---|---|---|
| script POAP | Valor MD5 incrustado en poap.py | Valida el script antes de la ejecución. |
| Configuración del dispositivo | conf.FDO262921L3.md5 | Valida la configuración de dispositivo descargada. |
| Imagen de Cisco NX-OS | nxos64-cs.10.6.2.F.bin.md5 | Valida la imagen de software de destino. |
La opción disable_md5 de la secuencia de comandos de referencia controla la validación MD5. El valor predeterminado es False.
La secuencia de comandos POAP de referencia contiene un valor MD5 cerca del principio del archivo:
#md5sum="
Después de modificar el contenido de la secuencia de comandos, la suma de comprobación incrustada se debe volver a calcular antes de utilizar la secuencia de comandos para POAP.
Para la secuencia de comandos utilizada en esta implementación, la suma de comprobación se actualizó 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"
La secuencia de comandos resultante contenía:
#md5sum="e4dd91fd4296d40abd2f6187152cd86e"
Durante el POAP, Cisco NX-OS calcula la suma de comprobación del script descargado y la compara con el valor incrustado antes de la ejecución del script.
La secuencia de comandos de referencia puede utilizar un archivo MD5 independiente para verificar la configuración del dispositivo.
Para esta implementación:
Archivo de configuración:
conf.FDO262921L3
Archivo de integridad:
conf.FDO262921L3.md5
El archivo de integridad debe contener la suma de comprobación asociada a la versión actual de conf.FDO262921L3.
Una vez descargada la configuración, el script calcula su suma de comprobación y la compara con el valor esperado antes de procesar la configuración.
Si la configuración del dispositivo cambia, actualice la información MD5 correspondiente antes del siguiente intento de POAP.
El script de referencia también puede validar la imagen de Cisco NX-OS de destino.
Para esta implementación:
Imagen de destino:
nxos64-cs.10.6.2.F.bin
Archivo de integridad:
nxos64-cs.10.6.2.F.bin.md5
El archivo de integridad contiene:
ce50c3f0e387bee578e615a373a4ede0 nxos64-cs.10.6.2.F.bin
En la implementación validada, la imagen de destino ya estaba presente en bootflash:. La secuencia de comandos POAP calculó la suma de comprobación MD5 de la imagen existente y la comparó con el valor obtenido del servidor de aprovisionamiento.
Dado que ambos valores coincidían, no era necesario volver a descargar el archivo de imagen.
Nota: La validación MD5 verifica la integridad del archivo. No cifra los archivos de aprovisionamiento ni proporciona autenticación por sí mismo.
POAP se ejecuta durante el inicio del sistema cuando el switch no tiene una configuración de inicio y el POAP de todo el sistema está habilitado.
Antes de que se inicie el proceso de aprovisionamiento, verifique el estado de POAP:
N9K-POAP-SW1# show system poap System-wide POAP is enabled
Cisco NX-OS permite que POAP se desactive globalmente con el sistema sin poap. Para volver a habilitar POAP, utilice system poap o borre el indicador de desactivación de POAP con write erase poap.
El POAP estándar se inicia cuando el switch se inicia sin una configuración de inicio.
En un entorno de laboratorio controlado, ejecute:
switch# write erase
Advertencia: Este comando borra la configuración de inicio.
Do you wish to proceed anyway? (y/n) [n] y
La operación predeterminada write erase elimina la configuración de inicio de la memoria persistente. No borra la configuración en ejecución ni las variables de arranque.
Verifique que la configuración de inicio ya no esté presente:
switch# show startup-config No startup configuration
Precaución: write erase elimina la configuración del switch guardada. Utilice este procedimiento sólo cuando la configuración se pueda quitar o restaurar de forma segura.
Para evitar la pérdida de acceso administrativo después de POAP, asegúrese de que la configuración del dispositivo preparada en la sección anterior contenga las credenciales administrativas necesarias.
Una vez eliminada la configuración de inicio, recargue el switch.
Si Cisco NX-OS solicita que se guarde la configuración en ejecución actual, no la guarde. Al guardar la configuración en ejecución, se vuelve a crear la configuración de inicio y se impide la condición de desencadenador POAP estándar.
Durante el inicio, Cisco NX-OS inicializa POAP y proporciona una opción para abortar el proceso:
Abort Power On Auto Provisioning [yes - continue with normal setup, no - continue with Power On Auto Provisioning] (yes/no)[no]:
Para continuar con POAP, acepte la opción predeterminada no.
Después de que se inicialice POAP, el switch primero comprueba los recursos de aprovisionamiento basados en USB. Si no se encuentra un script de aprovisionamiento USB utilizable, POAP continúa con la detección basada en la red.
La implementación validada generó estos mensajes:
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
A continuación, POAP inicia la detección DHCP de 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
Después de recibir una respuesta DHCP válida, Cisco NX-OS muestra los parámetros de red temporales y la ubicación del script POAP.
La implementación validada produjo:
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
En esta etapa, la detección de DHCP ha finalizado. El switch tiene conectividad de red temporal y la información necesaria para localizar el script POAP.
El switch recupera el script POAP identificado durante la detección 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
Una vez completada la recuperación del script, POAP continúa con la validación y ejecución del script. A continuación, el script de referencia controla la identificación del dispositivo, la recuperación de la configuración, el procesamiento de imágenes de software, el desarrollo de la configuración y las operaciones de aprovisionamiento restantes.
Utilice la información de esta sección para verificar cada etapa principal del flujo de trabajo de POAP.
El POAP se puede verificar desde múltiples perspectivas. La consola Nexus y los registros POAP proporcionan información sobre el proceso de aprovisionamiento interno, mientras que los registros del servidor DHCP y las capturas de paquetes proporcionan visibilidad adicional en los intercambios de red.
La implementación validada utiliza estos orígenes para correlacionar el flujo de trabajo de aprovisionamiento:
| Origen de verificación | Información proporcionada |
|---|---|
| consola Nexus | inicialización de POAP, detección de DHCP, ejecución de script, recarga y reproducción de configuración |
| Registros de Nexus POAP | Información detallada de inicialización y ejecución de script |
| Registros del servidor DHCP | Negociación DHCP y actividad de transferencia de archivos |
| Captura de paquete | Intercambios DHCP y TFTP |
| Configuración de ejecución e inicio | Resultado de aprovisionamiento final |
Nota: Los resultados de esta sección se recopilaron durante los intentos de validación de POAP controlados. Se utilizó un intento posterior para validar la configuración final de día 0 con acceso administrativo. En los ejemplos se conservan las marcas de tiempo y los mensajes de registro originales.
Los registros del servidor de terceros y las capturas de paquetes se incluyen solo como fuentes de verificación adicionales. La configuración del software de terceros está fuera del alcance de este documento.
Durante el inicio del sistema, compruebe que POAP se inicializa correctamente.
La consola Nexus muestra el evento de inicialización:
2026 Sep 22 18:21:23 switch %$ VDC-1 %$ %POAP-2-POAP_INITED: [FDO262921L3-88:FC:5D:BA:D7:7F] - POAP process initialized
Este mensaje confirma que el switch entró en el flujo de trabajo de POAP.
A continuación, POAP comprueba los recursos de aprovisionamiento basados en 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
En este ejemplo, no hay ningún recurso de aprovisionamiento USB disponible. Por lo tanto, POAP continúa con la detección basada en la red.
Posteriormente, el switch inicia la detección de 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
Estos mensajes confirman la transición de la detección USB a la detección DHCP basada en la red.
POAP almacena los registros de inicialización y ejecución de script en bootflash:. Estos archivos proporcionan información adicional sobre el proceso de aprovisionamiento después de que se generen los eventos de la consola.
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#
El archivo _init.log contiene información relacionada con la inicialización y detección de POAP.
El archivo _script.log contiene información detallada generada durante la ejecución del script POAP.
Cuando existen varios intentos de POAP, utilice la marca de tiempo en el nombre de archivo para correlacionar cada archivo con el intento de aprovisionamiento correspondiente.
Después de que POAP ingrese a la fase de detección de DHCP, verifique que el switch Nexus reciba información de red de bootstrap válida.
La consola de Nexus confirma que se inició la detección de DHCP y que se recibió información válida a través de 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
El resultado confirma que POAP seleccionó Ethernet1/10, obtuvo la dirección temporal 192.168.100.108 y recibió el gateway, el servidor de scripts y el nombre de archivo de script requeridos para la siguiente etapa de aprovisionamiento.
Los registros del servidor DHCP proporcionan una vista adicional del intercambio de bootstrap.
El ejemplo validado registró:
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
El servidor también identificó la información de bootstrap de POAP:
option: 67 bootfile-name poap.py option:150 tftp-server-address 192.168.100.1 option: 3 router 192.168.100.1
Los registros confirman el intercambio completo de descubrimiento, oferta, solicitud y confirmación. Los registros también muestran la clase de usuario de Cisco-POAP, el nombre de archivo de script, la dirección del servidor TFTP y la gateway predeterminada asociada con la solicitud de aprovisionamiento.
Se puede utilizar una captura de paquetes para verificar el intercambio DHCP directamente en la red.
Para el ejemplo validado, la captura se revisó con:
sudo tcpdump -nn -vvv -r /tmp/poap-run1.pcap \ 'udp port 67 or udp port 68'
La captura mostró:
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
La captura de paquetes confirma la secuencia de descubrimiento, oferta, solicitud y confirmación observada en los registros del servidor DHCP.
Una vez finalizada la detección de DHCP, compruebe que el switch Nexus recupera la secuencia de comandos POAP del servidor identificado durante el intercambio DHCP.
La consola de Nexus indica cuándo comienza la descarga del 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
Estos mensajes confirman que el switch recuperó poap.py del servidor TFTP detectado a través de DHCP.
Una captura de paquetes proporciona una confirmación directa de las solicitudes TFTP generadas durante la ejecución del script.
Para el ejemplo validado, ejecute:
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 primera solicitud confirma que la dirección POAP temporal 192.168.100.108 se puso en contacto con el servidor de aprovisionamiento en 192.168.100.1 y solicitó poap.py. Las solicitudes subsiguientes muestran la progresión hacia la configuración del dispositivo y la validación de la imagen.
Antes de ejecutar el script descargado, Cisco NX-OS valida la suma de comprobación MD5 integrada en el script.
El ejemplo validado produjo:
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)
Los valores coincidentes confirman que la secuencia de comandos descargada pasó la comprobación de integridad antes de que se iniciara la ejecución.
En esta etapa, el control pasa de la inicialización de POAP a la lógica de aprovisionamiento contenida en el script descargado.
Después de que se inicie el script POAP, verifique que el script identifique el switch Nexus y seleccione la configuración de dispositivo correspondiente.
En el modo serial_number, la secuencia de comandos de referencia utiliza el número de serie del switch local para determinar el nombre de archivo de la configuración.
El ejemplo validado generó:
Configuración del nombre de archivo cfg de origen basado en el número de serie
número de serie FDO262921L3
Nombre de archivo conf seleccionado: conf.FDO262921L3
El resultado confirma que la secuencia de comandos identificó el número de serie local y seleccionó conf.FDO262921L3.
Después de seleccionar el nombre de archivo de configuración, el script recupera la información MD5 correspondiente:
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
El archivo de integridad se descarga y se almacena en la memoria flash de inicialización: 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
La secuencia de comandos recupera la configuración 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
Estos mensajes confirman que la configuración específica del dispositivo se recuperó correctamente y se almacenó localmente para su procesamiento.
La captura de paquetes proporciona una confirmación independiente de las solicitudes TFTP generadas por el switch Nexus.
Para el ejemplo validado:
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 secuencia confirma que el switch solicitó el archivo de integridad de la configuración antes de recuperar la configuración del dispositivo.
El registro del servidor TFTP también registró ambas transferencias:
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
Después de descargar la configuración, el script calcula su suma de comprobación MD5 y la compara con el valor esperado.
El intento de aprovisionamiento que se muestra en este ejemplo produjo:
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
Los valores coincidentes confirman que la configuración descargada durante este intento de aprovisionamiento coincide con su información de integridad correspondiente.
Una vez realizada correctamente la comprobación de integridad, el script determina cómo debe prepararse la configuración para la imagen de Cisco NX-OS de destino.
En este ejemplo:
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
El resultado confirma que la imagen de destino admite la reproducción de bootstrap y que la división de la configuración no es necesaria para este intento de aprovisionamiento.
En esta etapa, la configuración específica del dispositivo se ha identificado, recuperado, validado y preparado para el flujo de trabajo POAP restante.
Una vez recuperada y validada la configuración del dispositivo, verifique cómo el script POAP procesa la imagen de Cisco NX-OS de destino.
La implementación validada utiliza: nxos64-cs.10.6.2.F.bin
La secuencia de comandos primero recupera la información MD5 correspondiente:
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
El archivo MD5 se almacena en la memoria flash de inicialización:
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
La secuencia de comandos lee la suma de comprobación recibida del servidor de abastecimiento:
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
A continuación, calcula la suma de comprobación de la imagen que ya está presente en la memoria flash de inicialización:
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
El script confirma que la imagen existente coincide con la imagen esperada:
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
Los valores coincidentes confirman que la imagen de Cisco NX-OS necesaria ya estaba presente en la memoria de inicialización: y pasó la comprobación de integridad. Por lo tanto, no fue necesario descargar otra copia de la imagen.
La captura de paquetes también confirma que Nexus solicitó el archivo de integridad de la imagen:
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
El registro del servidor TFTP registró la misma transferencia:
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
Estos resultados confirman la recuperación de nxos64-cs.10.6.2.F.bin.md5 desde el servidor de aprovisionamiento.
Aunque no era necesario descargar el archivo de imagen, el script de referencia continuó con el flujo de trabajo de instalación de Cisco NX-OS.
El ejemplo validado generó:
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
La imagen existente pasó la comprobación de integridad y no requirió otra transferencia de archivo. Sin embargo, la secuencia de comandos de referencia aún invoca el proceso de instalación del software contra la imagen validada.
Nota: Una imagen existente y el MD5 correspondiente pueden evitar una descarga de imagen innecesaria. Esto no significa necesariamente que se omita el flujo de trabajo de instalación de software restante.
Una vez finalizado el procesamiento del software, POAP continúa con las operaciones de aprovisionamiento restantes y prepara el switch para su recarga.
Una vez que la secuencia de comandos POAP se complete correctamente, verifique que el switch continúe con el proceso de recarga y reproducción de la configuración.
El ejemplo validado informó de una ejecución correcta del script y, a continuación, una recarga:
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
Estos mensajes confirman la finalización de la fase de ejecución de la secuencia de comandos y la transición a la fase de recarga posterior a la instalación.
Después de que se reinicie el switch, Cisco NX-OS detecta el archivo de reproducción 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 reproducción de bootstrap se inició y completó:
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.
Estos eventos confirman que Cisco NX-OS comenzó a procesar la configuración desarrollada durante POAP.
Una vez finalizada la reproducción de bootstrap, NX-OS procesa la configuración aprovisionada.
Los intentos de validación controlada generaron estos mensajes:
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
Los mensajes muestran la reproducción de la configuración ASCII y proporcionan evidencia directa de que se aplicó la configuración aprovisionada.
El nombre de host cambió a N9K-POAP-SW1 y Loopback100 comenzó a funcionar como parte de la configuración aprovisionada.
Una vez finalizada la reproducción de la configuración, Cisco NX-OS guarda la configuración resultante.
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
El mensaje Aprovisionamiento automático completo confirma la finalización del flujo de trabajo de POAP.
En esta etapa, verifique la configuración de ejecución y la configuración de inicio resultantes para confirmar que la configuración de día 0 prevista es activa y persistente.
Una vez finalizado el POAP, verifique que la configuración prevista para el día 0 esté activa y sea persistente. Confirme el nombre de host, la cuenta administrativa, la configuración de la interfaz, la imagen de Cisco NX-OS y el estado de POAP de todo el sistema que se han proporcionado.
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
El resultado confirma que la configuración específica del dispositivo se aplicó correctamente y se guardó en la configuración de inicio.
También confirma que el switch ejecuta la imagen esperada de Cisco NX-OS y que el POAP para todo el sistema sigue activado.
En este documento se describen los principales componentes y flujos de trabajo de POAP, incluidos la detección de DHCP, la recuperación y ejecución de scripts, la selección de la configuración específica del dispositivo, la validación de la integridad del archivo, el procesamiento de imágenes de Cisco NX-OS y la reproducción de la configuración.
La implementación validada demuestra cómo un switch Cisco Nexus 9000 puede obtener los recursos de aprovisionamiento necesarios, aplicar una configuración de día 0 y conservar la configuración resultante.
El proceso de verificación también demuestra cómo se pueden correlacionar los mensajes de la consola, los registros POAP, los registros del servidor y las capturas de paquetes para confirmar cada etapa principal del flujo de trabajo de aprovisionamiento.
| Revisión | Fecha de publicación | Comentarios |
|---|---|---|
1.0 |
12-Oct-2026
|
Versión inicial |