La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive come configurare Simple Network Management Protocol (SNMP) per monitorare Cisco 9800 Wireless LAN Controller (WLC).
Tutti i test sono stati eseguiti su MacOS 10.14 e su un WLC 9800-CL con immagine versione 17.5.1. Alcuni degli OID menzionati in questo articolo non esistono nelle versioni precedenti delle immagini.
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.
I precedenti WLC di AireOS si basano sul protocollo SNMP come protocollo principale per il monitoraggio. La maggior parte delle informazioni importanti, come il numero di client, il numero di access point uniti, l'utilizzo di processore e memoria, possono essere ottenute tramite query SNMP dallo strumento di monitoraggio al WLC.
Con 9800 WLC, l'attenzione è stata posta sulla telemetria. La telemetria funziona in un modello "push" in cui il WLC invia informazioni rilevanti al server senza che sia necessario interrogarlo. Catalyst 9800 offre ancora il protocollo SNMP per scopi legacy. Alcune informazioni possono essere esclusive per la telemetria e alcuni OID precedentemente disponibili su AireOS non sono ancora disponibili su 9800.
Da Cisco IOS XE Bengaluru 17.6.1, la porta servizio Ethernet (interfaccia di gestione VRF/Gigabit Ethernet 0) è supportata nei controller wireless Cisco Catalyst serie 9800.
Prima di questa release, il WLC di Catalyst 9800 poteva essere monitorato solo con il protocollo SNMP tramite l'interfaccia di gestione wireless o tramite l'interfaccia di gestione della ridondanza (nel caso di un WLC in standby in un cluster HA della versione 17.5.1 e successive).
SNMPv2c è una versione basata sulla community del protocollo SNMP e tutte le comunicazioni tra i dispositivi sono in formato testo non crittografato. SNMPv3 è la versione più sicura che offre il controllo dell'integrità dei messaggi, l'autenticazione e la crittografia dei pacchetti. L'SNMPv1 è obsoleto, ma esiste ancora per garantire la compatibilità con il software legacy. Non è menzionato in questo articolo.
Importante: SNMPv2c è abilitato per impostazione predefinita con la community "private" con privilegi di lettura e scrittura e la community "public" con privilegi di sola lettura. Si consiglia di rimuoverli e creare una nuova community con un nome diverso.
Accedere all'interfaccia Web del WLC 9800. In Amministrazione > Gestione > SNMP verificare che SNMP sia abilitato a livello globale. In Stringhe della community vengono visualizzate tutte le community configurate e il relativo livello di autorizzazione:
Prima della creazione dell'utente SNMP V3, è necessario definire un gruppo SNMP V3. Per creare un gruppo di utenti con l'autorizzazione di lettura e scrittura, impostare Visualizzazione lettura e Visualizzazione scrittura su v1 predefinito. Il gruppo di sola lettura deve avere la visualizzazione in scrittura vuota
Nella scheda Utenti SNMP V3, è possibile visualizzare tutti gli utenti configurati, i relativi privilegi e protocolli utilizzati per l'autenticazione e la crittografia. Pulsante Nuovo consente di creare un nuovo utente.
Sono disponibili 3 modalità di protezione:
Selezionare SHA come protocollo di autenticazione e almeno AES-128 come protocollo di privacy.
Il protocollo SNMP può essere configurato anche tramite l'interfaccia della riga di comando (CLI). CLI offre parametri di configurazione aggiuntivi, ad esempio la possibilità di assegnare un elenco degli accessi alla community v2 o all'utente v3.
Configurazione di esempio della community di lettura/scrittura v2, del gruppo di lettura/scrittura v3 e dell'utente v3 appartenente a questo gruppo:
snmp-server manager
snmp-server community
RW
snmp-server community
RO
snmp-server group
v3 auth write v1default snmp-server user
v3 auth sha
priv aes 128
access
Esempio di elenco degli accessi che consente solo al dispositivo sull'indirizzo IP 192.168.10.10 di eseguire una query sulla community WLC v2 denominata "ReadWriteCommunity":
ip access-list standard 50
10 permit 192.168.10.10
20 deny any
snmp-server manager
snmp-server community ReadWriteCommunity RW 50
Nota: Al momento della scrittura del documento, sono supportati solo gli ACL standard. È possibile assegnare gli ACL estesi, ma non funzionano.
Gli ID oggetto, o OID brevi, sono identificatori univoci che rappresentano una determinata variabile o oggetto. Ad esempio, l'utilizzo corrente del processore è considerato una variabile i cui valori possono essere recuperati con la chiamata al relativo ID oggetto. Ogni OID è univoco e non può essere lo stesso in tutto il mondo, analogamente a un indirizzo MAC.
Questi identificatori seguono una gerarchia ad albero e ogni OID può essere rintracciato fino alla relativa radice. Ogni fornitore ha una propria filiale con una radice comune.
Un'analogia potrebbe essere l'indirizzo di un'abitazione, dove la radice potrebbe essere il paese o lo stato, seguito da un CAP della città, la strada e infine il numero dell'abitazione.
I numeri seguiti da un punto rappresentano ogni passaggio necessario per raggiungere un determinato punto nell'albero o nel ramo.
Tutti questi valori vengono memorizzati in un Management Information Base (MIB), o abbreviato, in ciascun dispositivo di rete. Ogni identificatore ha un nome e una definizione (intervallo di valori possibili, tipo...).
Non è necessario caricare un MIB sullo strumento di monitoraggio SNMP per utilizzare il protocollo SNMP ed eseguire query su un dispositivo.
Se è noto un OID valido, il dispositivo risponde con il valore archiviato nella variabile rappresentata dall'OID. Tuttavia, se caricate il file MIB sullo strumento di query, questo offre il vantaggio di tradurre i nomi degli oggetti nei relativi ID e consente di conoscerne la descrizione.
In questo esempio, lo strumento SNMP esegue una query sull'agente SNMP di un dispositivo per ottenere la descrizione del sistema con l'utilizzo di OID 1.3.6.1.2.1.1.1.0.
Cisco offre i MIB (Management Information Base) per i WLC 9800. Non è facilmente leggibile, ma il MIB contiene tutti i nomi oggetto disponibili e la relativa descrizione.
Tutti i modelli 9800 (9800-80, 9800-40, 9800-L, 9800-CL, EWC) utilizzano lo stesso MIB scaricabile qui: https://software.cisco.com/download/home/286322605/type/280775088/release/.
Il più aggiornato è quello con la data più recente, non quello con il nome di versione del codice più alto.
Il file di archivio scaricato contiene più file di testo My che possono essere importati in qualsiasi server SNMP di terze parti o semplicemente aperti con un editor di testo. Per trovare l'OID di un nome oggetto specifico, è necessario innanzitutto individuare il file esatto che lo contiene.
Ad esempio, tutti gli oggetti correlati al monitoraggio dello stato fisico del dispositivo (come CPU e memoria) si trovano all'interno di un MIB denominato CISCO-PROCESS-MIB.my.
"cpmCPUMemoryUsed" è il nome dell'oggetto utilizzato per fornire la quantità di memoria utilizzata dal WLC in byte. I file MIB seguono tutti una sintassi simile. Le informazioni sull'oggetto di memoria utilizzato sono simili alle seguenti:
cpmCPUMemoryUsed OBJECT-TYPE
SYNTAX Gauge32
UNITS "kilo-bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The overall CPU wide system memory which is currently
under use."
::= { cpmCPUTotalEntry 12 }
La maggior parte del software di terze parti da monitorare si basa sugli OID e non sui nomi degli oggetti. La conversione tra il nome e l'ID dell'oggetto può essere eseguita con lo strumento di navigazione degli oggetti SNMP di Cisco.
Immettere il nome dell'oggetto nella barra di ricerca. Output fornisce l'OID e una breve descrizione. Inoltre, lo stesso strumento può essere utilizzato per trovare il nome oggetto dell'OID fornito.
Dopo l'acquisizione dell'OID dell'oggetto da monitorare, è possibile eseguire la prima query SNMP.
Gli esempi di questo capitolo mostrano come acquisire una memoria WLC libera (OID = 1.3.6.1.4.1.9.9.48.1.1.1.5) per la community SNMPv2 private e l'utente SNMPv3 snmpadmin con password SHA Auth Cisco123# e password AES Privacy impostata su Cisco123#. L'interfaccia di gestione del controller si trova sulla versione 10.48.39.133.
Snmpwalk è un'applicazione SNMP che utilizza le richieste GETNEXT di SNMP per eseguire query su un'entità di rete per ottenere una struttura di informazioni. È presente per impostazione predefinita su MacOS e nella maggior parte delle distribuzioni Linux. Per SNMPv2c, il comando segue la sintassi:
snmpwalk -v2c -c
Esempio:
VAPEROVI:~ vaperovi$ snmpwalk -v2c -c private 10.48.39.133 1.3.6.1.4.1.9.9.109.1.1.1.1.12
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236 <-------- Free Memory in Bytes
Se si utilizza SNMPv3, il comando segue la sintassi:
snmpwalk -v3 -l authPriv -u <username> -a [MD5|SHA] -A <auth_password> -x [AES|DES] -X <priv_password> <WLC_management_interface_ip> <OID>
Selezionare MD5/SHA e AES/DES in base alla modalità di creazione dell'utente SNMPv3 sul controller.
Esempio:
VAPEROVI:~ vaperovi$ snmpwalk -v3 -l authPriv -u snmpadmin -a SHA -A Cisco123# -x AES -X Cisco123# 10.48.39.133 1.3.6.1.4.1.9.9.109.1.1.1.1.12
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236 <-------- Free Memory in Bytes
#snmpwalk output still shows v2 even though v3 is used
I frammenti di codice vengono scritti per Python 3.9 e utilizzano il modulo pysnmp (pip install pysnmp) per creare query SNMP per l'utilizzo della memoria di Catalyst 9800-CL WLC. In questi esempi viene utilizzata la stessa community SNMPv2 e lo stesso utente SNMPv3 creati in uno dei capitoli precedenti. È sufficiente sostituire i valori delle variabili e integrare il codice negli script personalizzati.
Esempio di SNMPv2:
from pysnmp.hlapi import *
communityName = 'private'
ipAddress = '10.48.39.133'
OID = '1.3.6.1.4.1.9.9.109.1.1.1.1.12'
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in nextCmd(SnmpEngine(),
CommunityData(communityName),
UdpTransportTarget((ipAddress, 161)),
ContextData(),
ObjectType(ObjectIdentity(OID)),
lexicographicMode=False):
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
Uscita delle stampe:
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236
Esempio di SNMPv3:
from pysnmp.hlapi import *
username = 'snmpadmin'
ipAddress = '10.48.39.133'
OID = '1.3.6.1.4.1.9.9.109.1.1.1.1.12'
authKey = 'Cisco123#'
privKey = 'Cisco123#'
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in nextCmd(SnmpEngine(),
UsmUserData(username, authKey, privKey,
authProtocol=usmHMACSHAAuthProtocol,
privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((ipAddress, 161)),
ContextData(),
ObjectType(ObjectIdentity(OID)),
lexicographicMode=False):
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
Cisco Prime Infrastructure consente di monitorare e configurare facilmente più dispositivi di rete, inclusi i controller wireless.
Prime Infrastructure viene fornito con tutti gli OID e l'integrazione con WLC consiste semplicemente nell'aggiunta delle credenziali WLC a Prime. Con 9800 WLC, Prime si basa principalmente sulla telemetria per raccogliere la maggior parte dei dettagli dal WLC, mentre la piccola parte delle informazioni è ottenuta tramite SNMP.
D'altra parte, Cisco WLC può anche essere integrato con più soluzioni di terze parti per monitor, purché gli OID siano noti.
Programmi come Grafana+Prometheus, PRTG Network Monitor e il server SolarWinds consentono l'importazione dei MIB o degli OID e la visualizzazione dei valori in un grafico di facile utilizzo.
Questa integrazione può richiedere alcune modifiche sul lato server SNMP. In questo esempio, il server di monitoraggio PRTG viene fornito con l'OID di utilizzo della CPU per core che restituisce la stringa "0%/1%, 1%/1%, 0%/1%, 0%/1%". PRTG prevede un valore intero e genera un errore.
Cisco Unified Communications Manager (CUCM) dispone di una funzionalità di rilevamento degli endpoint wireless che consente di tenere traccia in modo approssimativo della posizione del client in base all'access point a cui è connesso. Affinché questa funzione funzioni, il CUCM deve estrarre le informazioni dal WLC tramite query SNMP.
Importante: molte versioni di CUCM sono interessate dall'ID bug Cisco CSCvv07486 - Impossibile sincronizzare i punti di accesso nel WLC a causa di richieste SNMP troppo grandi. Questo problema si verifica quando CUCM esegue una versione interessata e il WLC dispone di più di 10 access point. A causa del modo errato in cui CUCM interroga una grande quantità di OID in una singola richiesta in blocco, il WLC rifiuta di rispondere o risponde con una risposta troppo grande. La risposta "tooBig" non è sempre inviata immediatamente e può essere posticipata. Debug SNMP sulla stampa WLC "SNMP: Pacchetto ricevuto tramite UDP da x.x.x.x su VlanXSrParseV1SnmpMessaggio: pacchetto troppo grande SrDoSnmp: errore di analisi ASN".
La tabella include alcuni dei nomi di oggetto più comuni e i relativi OID, con la considerazione che i MIB presentano i dati in una sintassi non descrittiva:
Nota: Comando "show snmp mib | in <Nome oggetto>" può essere utilizzato per verificare se un determinato nome oggetto è disponibile sul WLC 9800.
Descrizione |
Nome oggetto |
OID |
Risposta prevista |
Utilizzo complessivo CPU in % ultimi 5 sec |
cpmCPUTotal5sec |
1.3.6.1.4.1.9.9.109.1.1.1.1.3 |
INTERO: 5 |
Utilizzo CPU complessivo in % ultimi 1 minuto |
cpmCPUTotal1min |
1.3.6.1.4.1.9.9.109.1.1.1.1.4 |
INTERO: 5 |
Utilizzo CPU complessivo in % ultimi 5 minuti |
cpmCPUTotal5min |
1.3.6.1.4.1.9.9.109.1.1.1.1.5 |
INTERO: 5 |
Memoria attualmente utilizzata in byte |
cpmCPUMemoriaUtilizzata |
1.3.6.1.4.1.9.9.109.1.1.1.1.12 |
NUMERO INTERO: 3783236 |
Memoria disponibile corrente in byte |
cpmCPUMemoryFree |
1.3.6.1.4.1.9.9.109.1.1.1.1.13 |
NUMERO INTERO: 4263578 |
Quantità di memoria disponibile inferiore dall'ultimo avvio in byte |
cpmCPUMemoriaMinima |
1.3.6.1.4.1.9.9.109.1.1.1.1.15 |
NUMERO INTERO: 4251212 |
Motivo ultimo ricaricamento |
perchéRicarica |
1.3.6.1.4.1.9.2.1.2 |
STRING: "ricarica" |
Immagine software di tutti i punti di accesso aggiunti |
VersioneSoftwareBSN |
1.3.6.1.4.1.14179.2.2.1.1.8 |
STRINGA: "17.5.1.12" |
Numero di modello di tutti gli access point uniti |
bsnModelloAPM |
1.3.6.1.4.1.14179.2.2.1.1.16 |
STRINGA: "AIR-AP1840I-E-K9" |
Numero di client |
X |
X |
X |
Numero di access point uniti |
X |
X |
X |
Stato unità di alimentazione |
X |
X |
X |
Stato ventola |
X |
X |
X |
Al momento sono presenti richieste di miglioramento aperte per supportare OID del numero totale di client e del numero di punti di accesso collegati:
ID bug Cisco CSCvu26309 - OID SNMP per il numero di client non presente su 9800
ID bug Cisco CSCv44330 - OID SNMP per l'access point non presente su 9800
Lo stato dell'alimentatore (PSU) e della ventola non sono supportati al momento della scrittura di questo articolo. Richiesta di miglioramento aperta:
Cisco bug ID CSCwa23598 - Miglioramento/supporto WLC 9800 per PSU e Fan State SNMP OID (1.3.6.1.4.1.9.9.13)
Per monitorare un WLC in standby in un cluster ad alta disponibilità, è possibile usare solo la versione 17.5.1. Il WLC in standby può essere monitorato direttamente tramite RMI o con la query del WLC attivo.
Il WLC in standby può essere monitorato direttamente solo se i WLC vengono eseguiti nel tipo RMI + RP HA. Questa operazione viene eseguita tramite l'indirizzo IP RMI (Redundancy Management Interface) in standby del WLC di standby.
In questo scenario, solo gli OID di IF-MIB sono ufficialmente supportati, il che rende possibile solo monitorare lo stato di tutte le interfacce sul WLC di standby. Esempio di output da 9800-CL WLC:
Descrizione |
Nome oggetto |
OID |
Risposta prevista |
Nome interfaccia |
ifDescr |
1.3.6.1.2.1.2.2.1.2 |
SNMPv2-SMI::mib-2.2.2.1.2.1 = Gigabit Ethernet1 |
Stato operativo interfaccia (1=attivo, 2=inattivo) |
ifStatoOper |
1.3.6.1.2.1.2.2.1.8 |
SNMPv2-SMI::mib-2.2.2.1.8.1 = 2 |
Nota: si prevede che la porta WLC Gig 2 in standby (porta trunk utilizzata per la commutazione del traffico) sia nello stato shutdown. Una volta eseguito il failover, viene visualizzata la porta Gig 2 sul WLC in standby. Una situazione simile si verifica con le porte 10 Gigabit sui dispositivi fisici 9800 (9800-80, 9800-40 e 9800-CL).
Lo stato WLC in standby può essere monitorato anche con la query sul WLC attivo. Sono ufficialmente supportati solo i MIB CISCO-LWAPP-HA-MIB e CISCO-PROCESS-MIB. Quando si esegue una query sul WLC attivo in HA, la prima risposta rappresenta il valore del WLC attivo, mentre la seconda risposta rappresenta il valore del WLC in standby.
Descrizione |
Nome oggetto |
OID |
Risposta prevista |
Utilizzo complessivo CPU in % ultimi 5 sec |
cpmCPUTotal5sec |
1.3.6.1.4.1.9.9.109.1.1.1.1.3 |
SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.3.5 = 3 |
Utilizzo CPU complessivo in % ultimi 1 minuto |
cpmCPUTotal1min |
1.3.6.1.4.1.9.9.109.1.1.1.1.4 |
SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.4.5 = 8 |
Utilizzo CPU complessivo in % ultimi 5 minuti |
cpmCPUTotal5min |
1.3.6.1.4.1.9.9.109.1.1.1.1.5 |
SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.5.5 = 10 |
Memoria attualmente utilizzata in byte |
cpmCPUMemoriaUtilizzata |
1.3.6.1.4.1.9.9.109.1.1.1.1.12 |
SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.12.5 = 4318980 |
Memoria disponibile corrente in byte |
cpmCPUMemoryFree |
1.3.6.1.4.1.9.9.109.1.1.1.1.13 |
SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.12.5 = 4318739 |
Quantità di memoria disponibile inferiore dall'ultimo avvio in byte |
cpmCPUMemoriaMinima |
1.3.6.1.4.1.9.9.109.1.1.1.1.15 |
SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.15.5 = 3763868 |
Stato del WLC di standby (1=su, 0=giù) |
cLHaPeerHotStandbyEvent |
1.3.6.1.4.1.9.9.843.1.3.4 |
SNMPv2-SMI::enterprise.9.9.843.1.3.4.0 = 1 |
Revisione | Data di pubblicazione | Commenti |
---|---|---|
4.0 |
01-Apr-2022 |
OID aggiuntivi citati |
2.0 |
01-Oct-2021 |
Release iniziale |
1.0 |
12-Oct-2021 |
Versione iniziale |