Introduzione
Questo documento descrive come gestire i problemi di danneggiamento della memoria flash segnalati sui Cisco IOS Access Point (AP).
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza di base di:
- Controller LAN wireless (WLC) AireOS
- AP leggeri
- Python 2.7 (niente di più)
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- Cisco Aironet serie 1040, 1140, 1250, 1260, 1600, 1700, 2600, 2700, 3500, 3600, 3700, 700, AP801 e AP802 per access point interni
- Cisco Aironet serie 1520 (1522, 1524), 1530, 1550 (1552), 1570 e Industrial Wireless 3700 per access point wireless industriali e per esterni
Nota: vi è una prevalenza molto più alta nei modelli Wave1 AP come 1700/2700/3700 e 2600/3600 su questo problema rispetto ad altri tipi di AP a causa del tipo di flash HW.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Come da FN70330 - Cisco IOS AP bloccato a causa di un problema di danneggiamento della memoria flash, a causa di un numero di bug software in un access point in funzionamento normale, il file system flash su alcuni access point Cisco IOS può danneggiarsi nel tempo. Ciò si verifica soprattutto dopo l'esecuzione di un aggiornamento del WLC, ma non necessariamente in questo scenario.
L'access point funziona e serve il client quando si trova in questo stato di problema che non è facilmente rilevabile.
Soluzione
Correggi prima dell'aggiornamento WLC
Per identificare i punti di accesso interessati sulla rete e correggerli prima di un aggiornamento. È necessario eseguire il controller WLAN.
Attenzione: prima dell'aggiornamento, leggere il documento.
Logica del poller WLAN
Ogni volta che lo script viene eseguito, verifica se un flash AP è accessibile o meno.
Se è accessibile, esegue il comando fsck flash:
Se tutto funziona correttamente, passare all'access point successivo.
- in caso contrario, ripetere il comando fino a 4 volte. Se si verifica un errore, lo script può segnalare questo problema nel report finale e questo punto di accesso può essere recuperato.
se è inaccessibile
- lo script contrassegna il punto di accesso nel rapporto finale e questo punto di accesso è idoneo per il recupero.
Se accessibile, il punto di accesso può verificare i valori MD5 per i file critici.
Se tutti i valori sono corretti, passare all'access point successivo.
- In caso contrario, lo script può segnalare questo nel rapporto finale e questa AP è idonea per essere recuperata.
Lo script deve essere eseguito tre volte.
- Lanciare
- Lo script crea il database MD5 in base al valore di checksum MD5 per ogni file nell'access point. Il valore MD5 finale per un file specifico è quello che ha il maggior numero di accessi nella stessa famiglia di punti di accesso su WLC.
- Lanciare
- Lo script confronta i valori di checksum MD5 e il relativo database. Se il valore corrisponde, il file è ok, altrimenti il punto di accesso viene contrassegnato per il ripristino alla terza esecuzione.
- Lanciare
- Lo script attiva il comando test capwap image capwap solo per gli access point contrassegnati durante i due passaggi precedenti.
Nota: questo metodo di recupero determina il ricaricamento dell'access point dopo il download e l'installazione dell'immagine. Assicurarsi di eseguirlo in una finestra di manutenzione.
Installa/Prepara controller WLAN
1. Scaricare lo strumento WLAN Poller.
Nota: se si scarica l'ultima versione dello strumento WLAN Poller dal collegamento precedente, è possibile saltare i passaggi 2 e 3. Con questa versione è possibile installare automaticamente tutti i componenti richiesti per lo strumento WLAN Controller. Se si dispone di una versione precedente (.rar) del controller WLAN, eseguire i passaggi 2 e 3 successivi.
2. Spostare il file in una cartella specifica in cui si desidera archiviare i file del controller WLAN.
3. Per istruzioni su come installare lo script, vedere il collegamento successivo:
Per una guida dettagliata su Windows 10 fare clic qui.
Per una guida dettagliata su MAC OS, fate clic qui.
4. Preparare il file config.ini.
Al termine dell'installazione e della generazione dei file. È necessario modificare il file config.ini.
Specificare la modalità di connessione WLC/AP:
; config global mode for WLC and AP connection: "ssh" or "telnet"
mode: ssh
ap_mode: ssh
Specificare le credenziali 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>
Per il controllo/recupero flash, queste sono le opzioni.
Per identificare i punti di accesso interessati, utilizzare:
; ap file system checks (WARNING: recover can force Cisco IOS image download and AP reload)
ap_fs_check: True
ap_fs_recover: False
Per ripristinare i punti di accesso, utilizzare:
; ap file system checks (WARNING: recover can force Cisco IOS image download and AP reload)
ap_fs_check: True
ap_fs_recover: True
Specifica informazioni WLC
Nell'esempio, il nome del WLC è 2504-WLC. Queste informazioni sono disponibili nella pagina Monitor WLC.
; WLC sections must be named as [WLC-<wlcname>]
[WLC-2504-Rafis]
active: True
ipaddr: <wlc-ip-addr>
È possibile aggiungere diversi WLC. A tale scopo, copiare/incollare la sintassi precedente con le nuove informazioni WLC.
Nota: non è necessario specificare alcun elenco PA. Lo script preleva l'access point dal WLC.
Esegui filtro WLAN
Dalla directory in cui sono stati creati i file di configurazione (sezione precedente, passaggio 3). Utilizzare questo comando: wlanpoller --cli-logging .
Una volta terminato, lo script fornisce il seguente riepilogo:
============================================================
Summary
============================================================
Total APs : 1
Processed APs : 1
Failed APs : 0
============================================================
Errors
============================================================
AP MD5 checksum mismatch : 2
AP FSCK recover : 1
============================================================
Nota: lo script deve essere eseguito 2 volte per ottenere informazioni accurate sul numero di punti di accesso interessati.
Output controller WLAN
Nel percorso in cui è stato eseguito lo script. Vengono creati questi file.
- ap_md5_db.json: database MD5
- Registro cartelle
- Memorizza tutte le informazioni visualizzate dal controller WLAN sul terminale.
- Dati cartella
- I report vengono suddivisi nel percorso seguente: <anno> / <mese> / <giorno>
File: <timestamp>_ap_fs.csv: riepilogo dei controlli eseguiti sugli access point e dei relativi risultati.
Descrizione colonne
- ap_name: Nome dell'access point.
- ap_type: modello AP.
- ap_uptime: tempo di attività per l'access point (giorni).
- ap_ios_ver: versione di Cisco IOS.
- fs_free_bytes: numero di byte liberi nel file system flash.
- flash_issue: True se è stato osservato un eventuale danneggiamento del flash.
- fs_zero_size: ha valore True quando è stato rilevato un blocco della memoria flash nel file system con "-" - (show file system - comando).
- fsck_fail: ha valore True se il controllo del file system non è riuscito. - (flash fsck: - comando).
- fsck_BUSH: dispositivo o risorsa effettivamente occupata quando viene eseguito il flash fsck.
- fsck_recovery: ha valore True quando si verifica un errore in fsck ma viene corretto in fsck successivo.
- fsck_try: numero di tentativi di fsck di recuperare l'access point (massimo 4).
- md5_fail: ha valore True quando md5 almeno un file è diverso da quello memorizzato nel database.
- rcv_trigger: ha valore True quando il punto di accesso ha tentato di scaricare l'immagine dal WLC quando il problema è stato rilevato e il ripristino è stato abilitato.
File: <timestamp>_ap_md5.csv Dettagli dei valori di checksum MD5 di tutti i file (su tutti gli access point).
Descrizione colonne
- ap_name: Nome dell'access point.
- ap_type: modello AP.
- ap_uptime: tempo di attività per l'access point (giorni).
- nome file: nome file immagine Cisco IOS.
- md5_hash: valore md5 per filename.
- is_good: il valore True md5 corrisponde al valore memorizzato in db. È stata rilevata una falsa mancata corrispondenza md5 per questo file.
- is_zero_bytes: True quando filename ha 0 byte in base a md5checksum, quindi file non è corretto.
- md5_error: messaggio di errore durante il recupero del valore md5 se non è stato possibile ottenere md5 per il nome file.
Nota: in alcuni scenari, potrebbe non essere possibile recuperare alcuni punti di accesso tramite lo script di recupero del poller WLAN, i quali rimangono contrassegnati come non riusciti nel report. In questi scenari, si consiglia il ripristino manuale dell'access point tramite telnet/SSH/console nella CLI dell'access point. Se hai bisogno di assistenza, apri TAC SR. Collegare alla richiesta tutto l'output generato dal controller WLAN.
Stranded AP
Se la connessione SSH/telnet
Per provare a ripristinare l'access point, procedere come segue:
- interrompere il riavvio automatico di capwap
AP# debug capwap console cli
AP# debug capwap client no-reload
- Formattare il flash in caso di esito positivo, è possibile continuare con il passaggio successivo altrimenti uscire.
AP# format flash:
- Caricare un'immagine di ripristino. L'immagine di ripristino è disponibile qui.
archive download-sw /overwrite tftp://<IP address>/<file name>
- Controllare MD5 sull'immagine di ripristino caricata, se possibile continuare con il passaggio successivo
AP# verify /md5 flash:/<image directory>/<image file>
È possibile confrontare il valore CLI con il valore nella pagina Web di cisco.
- Impostare la variabile di avvio sull'immagine di ripristino appena scaricata:
AP#show boot
AP(config)#boot system flash:/RCV/RCV-image
- Ricarica punto di accesso
Se stato AP Rommon
È possibile provare come in precedenza, ma utilizzando i comandi di avvio. Di seguito sono riportati i comandi che è possibile utilizzare:
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:/<file name>
ap: boot
Impossibile eseguire SSH/Telnet
Eseguire il rimbalzo della porta dello switch, alcune volte, verificare se può essere utile.
Guida dettagliata all'installazione del controller WLAN su Windows 10
Nota: se si scarica la versione più recente dello strumento WLAN Poller, è possibile ignorare questa sezione.
- Scaricare e installare Python 2.7.14 da questo link.
- Scaricare e installare il compilatore C++ per i client Python per Windows da questo collegamento.
- Una volta installato, andare su Impostazioni di sistema nel Pannello di controllo e selezionare Impostazioni di sistema avanzate (accertarsi che tutti i terminali di Windows siano chiusi):
- Nella finestra che viene visualizzata, selezionare Environment Variables.
- Selezionare la variabile Path dalle variabili System e fare clic su Modifica.
- In questa finestra, aggiungere il percorso alla directory di base in cui è stato installato Python 2.7.14.0 e la directory C:\<Directory di base>\Scripts in modo che la riga di comando del laptop riconosca i comandi python. Fare clic su New (Nuovo) e aggiungere il percorso manualmente.
Chiudere tutte le finestre delle impostazioni e i terminali (prompt dei comandi) eventualmente aperti.
- Verificare che pip sia installato, aprire un nuovo terminale e immettere pip —version:
Un'altra opzione consiste nel controllare se nella cartella è presente un file denominato pip o pip2 o pip2.7: C:\Python27\Scripts :
- Se tutto è a posto andare alla sezione aggiornamento pip, Passaggio 8.
- Se viene visualizzato un errore o non si trova la cartella o i file, continuare a leggere.
Installa pip
- Chiudere il terminale e installare pip dal collegamento successivo.
- Scaricare e salvare il file get-pip.py. Sul sito web cercare:
- Copiare il file get-pip-py nella cartella C:\Python27.
Nota: se si copia e si incolla il contenuto dal sito Web assicurarsi che non abbia l'estensione py.txt, controllare questa con una dir nella cartella C:\Python27, se ciò accade, rinominare il file dal terminale.
Rinominare il file con il comando successivo:
- Nella stessa cartella C:\Python27 eseguire python get-pip.py.
- Aggiornare PIP alla versione più recente con il comando successivo: pip install —upgrade pip.
- I passaggi precedenti possono installare tutti i pacchetti necessari. Aprire una riga di comando per Windows e passare alla directory in cui è stato memorizzato il file .tar.gz del controller WLAN (utilizzare: cd <Percorso della directory>).
- Installare lo script con il comando pip install wlanpoller-0.7.1.dev90_md5rcv.tar.gz.
- Creare una nuova directory in cui archiviare tutte le informazioni sui controller WLAN.
- Dalla riga di comando, spostarsi in tale directory ed eseguire il comando wlanpoller —generate-configs per creare le variabili di installazione e i file di configurazione necessari per l'esecuzione dello script:
Fare clic qui per continuare con il file config.ini.
Guida dettagliata all'installazione del controller WLAN su MacBook
Nota: se si scarica la versione più recente dello strumento WLAN Poller, è possibile ignorare questa sezione.
In MAC OS è già installato Python. Per installare gli altri pacchetti, procedere come segue:
- Spostarsi nella cartella in cui si trova il controller WLAN file: cd <percorso>.
- Una volta eseguito questo comando: sudo pip install wlanpoller-<versione>.tar.gz . Per questo è necessaria la password sudo (password di amministrazione di MACBook).
- Create una nuova directory per organizzare tutti i file che possono essere creati dallo script.
- mkdir <nome directory>
- cd <nome directory>
- Eseguire il comando successivo in modo che lo script prepari tutte le directory/i file necessari per eseguire lo script: wlanpoller —generate-configs.
Fare clic qui per continuare con il file config.ini.
Restrizioni controller WLAN
- WLAN Poller è testato per il supporto solo su sistemi Windows 10 a 64 bit e Apple MacBook versione 10.11 o superiore.
- se non si utilizza la versione più recente dello strumento WLANPoller, nelle versioni precedenti è supportata solo la versione Python 2.7.
- Se i nomi AP contengono caratteri speciali, come gli errori successivi, vengono visualizzati durante l'esecuzione dello script.
- Per risolvere il problema, è necessario rimuovere manualmente i caratteri speciali dal nome dell'access point.
Informazioni correlate