Introducción
Este documento describe cómo manejar los problemas de corrupción de flash notificados en los Cisco Access Points (AP) basados en IOS.
Prerequisites
Requirements
Cisco recomienda que tenga conocimientos básicos sobre:
- Controlador de LAN inalámbrica (WLC) AireOS
- Puntos de acceso ligeros
- Python 2.7 (nada más)
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- Cisco Aironet 1040, 1140, 1250, 1260, 1600, 1700, 2600, 2700, 3500, 3600, 3700, 700, AP Puntos de acceso en interiores serie 801 y AP802
- Puntos de acceso inalámbricos industriales y exteriores Cisco Aironet serie 1520 (1522, 1524), 1530, 1550 (1552), 1570 y Industrial Wireless serie 3700
Nota: Hay una prevalencia mucho mayor en los modelos Wave1 AP como 1700/2700/3700 y 2600/3600 en este problema frente a otros tipos de AP debido al tipo de HW flash.
Antecedentes
Según FN70330 - IOS AP varado debido a un problema de corrupción de flash, debido a una cantidad de errores de software y AP en funcionamiento normal, el sistema de archivos flash en algunos IOS AP puede dañarse con el tiempo. Esto se ve especialmente después de que se realiza una actualización al WLC pero no necesariamente se limita a este escenario.
AP puede estar funcionando bien, prestando servicio al cliente, etc, mientras que en este estado de problema que no es fácilmente detectable.
Solución
Trabaje antes de la actualización del WLC.
Para identificar los AP afectados en la red y repararlos antes de una actualización. Debe ejecutar el sondeador WLAN
Precaución: Antes de actualizar, complete la lectura de este documento.
Lógica del sondeador WLAN
Cada vez que se ejecuta la secuencia de comandos, verifica si la memoria flash de un AP es accesible o no.
Si es accesible, ejecuta el comando fsck flash:
- Si todo está bien, pase al siguiente AP
- de lo contrario, repita el comando hasta 4 veces. Si hay una falla, el script informará esto en el informe final y este AP es elegible para ser recuperado.
si es inaccesible
- el script indica AP en su informe final y este AP es elegible para ser recuperado.
Si es accesible, AP verificará los valores MD5 para los archivos críticos.
- Si todos los valores son correctos, pase al siguiente AP
- de lo contrario, el script informará esto en el informe final y este AP es elegible para ser recuperado.
El script debe ejecutarse tres veces.
- Ejecute
- El script genera la base de datos MD5 buscando el valor de checksum MD5 para cada archivo en el AP. El valor final MD5 para un archivo específico es el que tiene más visitas a través de la misma familia AP en el WLC.
- Ejecute
- La secuencia de comandos compara los valores de suma de comprobación MD5 frente a su base de datos. Si el valor coincide, el archivo está bien, si no, el AP se marca para recuperarse en la tercera ejecución
- Ejecute
- La secuencia de comandos activa el comando test capwap image capwap sólo para aquellos AP que fueron marcados durante los dos pasos anteriores.
Nota: Este método de recuperación hace que el AP se recargue una vez que se descarga e instala la imagen. Asegúrese de ejecutarlo en una ventana de mantenimiento.
Instalación/preparación del sondeador WLAN
1. Descargue la herramienta sondeador WLAN.
Nota: Si está descargando la última versión de la herramienta de sondeo de WLAN desde el enlace anterior, puede omitir los pasos 2 y 3. En esta versión se instalarán automáticamente todos los componentes necesarios para la herramienta Sondeador WLAN. Si tiene una versión anterior(.rar) del sondeador WLAN, siga los pasos 2 y 3 siguientes.
2. Mover el archivo a una carpeta específica que desea almacenar los archivos del sondeador WLAN
3. Para obtener instrucciones sobre cómo instalar el script, siga el siguiente enlace:
Para obtener una guía paso a paso en el equipo Windows 10, haga clic aquí
Para obtener una guía paso a paso sobre MAC OS haga clic aquí
4. Preparar el archivo "config.ini"
Una vez finalizada la instalación y generados los archivos. Necesitamos editar el archivo "config.ini"
Especificar modo de conexión WLC/AP
; config global mode for WLC and AP connection: "ssh" or "telnet"
mode: ssh
ap_mode: ssh
Especificar credenciales WLC/AP
; set global WLC credentials
wlc_user: <wlc_user>
wlc_pasw: <wlc_pasw>
; set global AP credentials
ap_user: <ap_user>
ap_pasw: <ap_pasw>
ap_enable: <ap_enable>
Para la verificación/recuperación de flash tenemos las siguientes opciones
Para identificar el uso de los AP afectados:
; ap file system checks (WARNING: recover will force IOS image download and AP reload)
ap_fs_check: True
ap_fs_recover: False
Para recuperar el uso de AP:
; ap file system checks (WARNING: recover will force IOS image download and AP reload)
ap_fs_check: True
ap_fs_recover: True
Especificar información WLC
En este ejemplo, el nombre del WLC es "2504-WLC". Puede encontrar esta información en la página del monitor del WLC.

; WLC sections must be named as [WLC-
]
[WLC-2504-Rafis]
active: True
ipaddr:
Puede agregar varios WLC, si es así, copiar/pegar los sinttaxis anteriores usando nueva información del WLC.
Nota: No es necesario especificar ninguna lista AP. El script recoge AP del WLC.
Ejecutar sondeador WLAN
Desde el directorio donde se crearon los archivos de configuración (sección anterior, paso 3). Utilice el siguiente comando: wlanpoller —cli-logging
Una vez que se haya completado el script. Se presentará un resumen como sigue:
============================================================
Summary
============================================================
Total APs : 1
Processed APs : 1
Failed APs : 0
============================================================
Errors
============================================================
AP MD5 checksum mismatch : 2
AP FSCK recover : 1
============================================================
Nota: Recuerde que el script debe ejecutarse dos veces para tener información precisa sobre cuántos AP se ven afectados
Salida del sondeador WLAN
En la ruta de acceso donde se ejecutó el script. Crea los siguientes archivos.
- ap_md5_db.json: base de datos MD5
- Registro de carpetas
- Almacena toda la visualización de salida del sondeador WLAN en el terminal
- Datos de la carpeta
Descompone los informes en la siguiente ruta: <year> / <month> / <day>
Archivo: <timestamp>_ap_fs.csv - Resumen de las comprobaciones ejecutadas en los AP y sus resultados

Descripción de columnas
- ap_name: Nombre del AP.
- ap_type: Modelo AP.
- ap_uptime: Tiempo de actividad para el AP (días).
- ap_ios_ver: Versión del IOS.
- fs_free_bytes: Número de bytes libres en el sistema de archivos Flash.
- flash_issue: Es cierto si se ha observado algún daño repentino.
- fs_zero_size: True cuando se ha detectado el colgado de la memoria flash en el sistema de archivos que muestra "-" - (comando show file system -
- fsck_fail: True si la comprobación del sistema de archivos ha fallado. - (flash fsck: -comando)
- fsck_busy: Dispositivo verdadero o recurso ocupado al realizar flash.
- fsck_recovery: True cuando se ha producido un error en fsck pero se ha corregido en el siguiente fsck.
- fsck_intentos: Número de intentos de fsck para recuperar el AP (máx. 4)
- md5_fail: True cuando md5 al menos un archivo es diferente del almacenado en la base de datos.
- rcv_trigger: True cuando AP intentó descargar la imagen del WLC cuando se detectó el problema y se habilitó la recuperación.
Archivo: <timestamp>_ap_md5.csv Detalles de los valores de suma de comprobación MD5 de todos los archivos (en todos los AP)

Descripción de columnas
- ap_name: Nombre del AP.
- ap_type: Modelo AP.
- ap_uptime: Tiempo de actividad para el AP (días).
- nombre de archivo: Nombre del archivo de imagen IOS.
- md5_hash: valor md5 para nombre de archivo.
- is_good: El valor md5 verdadero coincide con el valor almacenado en la base de datos. Se observó una discordancia md5 falsa para este archivo.
- is_zero_bytes: True cuando el nombre de archivo tiene 0 bytes basados en md5checksum por lo que el archivo es incorrecto.
- md5_error: Mensaje de error que recupera el valor md5 si no fue posible obtener md5 para el nombre de archivo.
Nota: Puede haber escenarios donde el script de recuperación del sondeador WLAN no pueda recuperar ciertos AP y esos AP permanezcan marcados como fallados en el informe. En esos escenarios, se recomienda la recuperación manual de AP por telnet/SSH/console en AP CLI. Abra TAC SR si necesita ayuda en este proceso. Conecte todos los resultados generados desde el sondeador WLAN al caso.
AP varado
Si hay conexión SSH/Telnet
Puede seguir los siguientes pasos para intentar recuperar el AP:
AP# debug capwap console cli
AP# debug capwap client no-reload
- Formatee la flash, si se realiza correctamente, puede continuar con el siguiente paso si no lo hace salir.
AP# format flash:
- Cargue una imagen de recuperación. Se puede encontrar la imagen de recuperación aquí.
archive download-sw /overwrite tftp://<IP address>/<file name>
- Marque MD5 en la imagen de recuperación cargada, si lo desea, continúe con el siguiente paso
AP# verify /md5 flash:/<image directory>/<image file>
Puede comparar el valor de CLI con el valor de la página web de cisco.

- Establecer la variable de inicio en la imagen de recuperación recientemente descargada
AP#show boot
AP(config)#boot system flash:/RCV/RCV-image
Si el estado de Rommon del AP
Puede intentar lo mismo que antes, pero desde los comandos de inicio. A continuación se indican los comandos que puede seguir:
ap: tftp_init
ap: ether_init
ap: flash_init
ap: format flash:
ap: set IP_ADDR <IP Address>
ap: set NETMASK <mask>
ap: set DEFAULT_ROUTER < default router >
ap: tar -xtract tftp://<IP address>/<file name> flash:
ap: set BOOT flash:/
ap: boot
No se puede establecer SSH/Telnet
Rebote del puerto del switch, pocas veces, verifique si esto ayuda.
Guía paso a paso para instalar el sondeador WLAN en una máquina con Windows 10 - 64 bits
Nota: Si está descargando la última versión de la herramienta Sondeador WLAN, puede saltarse esta sección.
- Descargue e instale Python 2.7.14 desde el siguiente enlace
- Descargue e instale el compilador de C++ para Python para clientes de Windows desde el siguiente enlace
- Una vez instalado, vaya a Configuración del sistema en el Panel de control y seleccione Configuración avanzada del sistema(Asegúrese de que todos los terminales de Windows estén cerrados):

- En la ventana que aparece, seleccione "Variables de entorno...".

- En ella, seleccione la variable "Path" en "System variables" y haga clic en Edit...

- En esa ventana, agregue la trayectoria al directorio base donde instaló Python 2.7.14.0 y C:\<directorio base>\Scripts para que la línea de comandos del portátil reconozca los comandos python: Haga clic en Nuevo y agregue la ruta manualmente.

Cierre todas las ventanas de configuración y los terminales (símbolo del sistema) abiertos si existe
- Verifique si pip está instalado, abra un nuevo terminal e ingrese: pip —version

Otra opción es verificar si hay un archivo llamado pip o pip2 o pip2.7 en la carpeta: C:\Python27\Scripts

- Si todo está bien, vaya al pip de actualización de sección. Paso 8
- Si se produce un error o no encuentra la carpeta o los archivos que siguen leyendo.
Instalar pip
- Cierre el terminal e instale el pip desde el siguiente link
- Descargue y guarde el archivo "get-pip.py". En el sitio web, busque

- Copie el archivo "get-pip-py" a la carpeta "C:\Python27"
Nota: Si copia y pega el contenido del sitio web, asegúrese de que no tenga la extensión py.txt, verifique esto con un directorio en la carpeta "C:\Python27", si esto sucede, cambie el nombre del archivo desde el terminal.

Cambie el nombre del archivo con el siguiente comando:

- En la misma carpeta "C:\Python27", ejecute: python get-pip.py

- Actualice PIP a la última versión con el siguiente comando: pip install —upgrade pip

- Los pasos anteriores instalarán todos los paquetes necesarios. Ahora abra una línea de comandos para Windows y vaya al directorio donde almacenó el archivo de sondeador WLAN .tar.gz (utilice: cd <Ruta al directorio>)
- Instale el script mediante el comando "pip install wlanpoller-0.7.1.dev90_md5rcv.tar.gz"

- Cree un nuevo directorio que desee almacenar toda la información del sondeador WLAN.
- En la "Línea de comandos", vaya a ese directorio y ejecute el comando "wlanpoller —generate-configs" para crear las variables de configuración y los archivos de configuración necesarios para que se ejecute el script:

Haga clic aquí para continuar con el archivo config.ini
Guía paso a paso para instalar el sondeador WLAN en MacBook versión 10.11 o posterior
Nota: Si está descargando la última versión de la herramienta Sondeador WLAN, puede saltarse esta sección.
El sistema operativo MAC ya tiene instalado python. Para que podamos instalar el resto de los paquetes, siga los siguientes pasos
- Vaya a la carpeta donde tiene el archivo de sondeador WLAN: cd <path>
- Una vez que se ejecute el siguiente comando: sudo pip install wlanpoller-<version>.tar.gz Para esto se necesita la contraseña de sudo (contraseña de administrador de MACBook)
- Cree un nuevo directorio para organizar todos los archivos que creará el script
- mkdir <nombre del directorio>
- cd <nombre del directorio>
- Ejecute el siguiente comando para que el script prepare todos los directorios/archivos necesarios para ejecutar el script: wlanpoller —generate-configs
Haga clic aquí para continuar con el archivo config.ini
Restricciones del sondeador WLAN
- El sondeador WLAN sólo se ha probado para ser compatible con sistemas Windows 10 de 64 bits y Apple MacBook versión 10.11 o superior.
- Si no utiliza la versión más reciente de la herramienta WLANPoller, sólo se admite la versión Python 2.7 en las versiones anteriores.
- Si los nombres de AP tienen caracteres especiales como
a continuación se muestran los errores durante la ejecución del script.
El usuario tendría que eliminar manualmente los caracteres especiales del nombre AP para solucionar el problema.