Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Configurazione delle impostazioni SNMP sul WLC

Nomi di oggetti e ID di oggetti (OID)

Che cosa sono i nomi degli oggetti e gli OID

MIB e elenco di tutti i nomi di oggetto e ID sui WLC Cisco

Uso degli OID per monitorare lo stato del WLC

Monitoraggio tramite SNMPwalk

Monitoraggio tramite Python 3 e pysmnpLibrary

Integrazione con software di terze parti (Grafana/PRTG Network Monitor/SolarWinds)

Tabella degli OID monitorati più comunemente

Introduzione

Questo documento descrive come configurare e monitorare il protocollo SNMP su Cisco Wireless LAN Controller (WLC).

Prerequisiti

Requisiti

Cisco consiglia di disporre di uno strumento SNMP (Simple Network Management Protocol) predefinito sul sistema operativo in uso o di disporre delle conoscenze necessarie per installarne uno.

Componenti usati

Il documento può essere consultato per tutte le versioni software o hardware. Tutti i test sono stati eseguiti su uno switch 3504 WLC con immagine 8.9 e MacOS 10.14. Gli OID descritti nel presente articolo sono validi anche sulle versioni precedenti di AireOS e su altri controller wireless basati su AireOS (8540/5508/5520/2504).

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.

Configurazione delle impostazioni SNMP sul WLC

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. SNMPv1 è obsoleto ma esiste ancora per garantire la compatibilità con software legacy.

Nota: SNMPv2c è abilitato per impostazione predefinita con community private con privilegi di lettura e scrittura e community public con privilegi di sola lettura. Si consiglia di rimuoverli e creare una nuova community con un nome diverso.

In questo articolo, vengono utilizzati solo SNMPv2c e SNMPv3. Accedere all'interfaccia Web del controller. InManagement > SNMP > Generalassicurarsi di abilitare la versione desiderata del protocollo.

Nel menu community vengono visualizzate tutte le community attualmente create.

È buona norma rimuovere le comunità preconfigurate predefinite e crearne una nuova. L'indirizzo IP e la netmask si comportano come un elenco degli accessi. Per impostazione predefinita, entrambi sono impostati su 0.0.0.0, il che significa che tutti gli indirizzi IP possono eseguire query SNMP per questa community. Il campo della modalità di accesso viene lasciato in sola lettura in quanto questa community deve essere utilizzata solo per monitorare e non per la configurazione del WLC.

Nota: In tutte le versioni precedenti alla 8.7.1.135, l'ID bug Cisco CSCvg61933 non consente di impostare la netmask su 255.255.255.255. Aggiornare il controller all'ultima versione consigliata successiva alla 8.7.1.135 o utilizzare questo comando nella CLI per creare una nuova communityconfig snmp community ipaddr

.

Nel menu Utenti SNMP V3 è possibile visualizzare tutti gli utenti configurati, i relativi privilegi e protocolli utilizzati per l'autenticazione e la crittografia. Il pulsante Nuovo consente di creare un nuovo utente. Si consiglia di scegliere HMAC-SHA come protocollo di autenticazione e CFB-AES-128 come protocollo privacy. Creare un utente denominato admin con l'autenticazione e la password per la privacy impostate suCisco123Cisco123.

Nomi di oggetti e ID di oggetti (OID)

Che cosa sono i nomi degli oggetti e gli OID

Gli OID sono identificatori univoci che rappresentano una determinata variabile o un determinato oggetto. Ad esempio, l'utilizzo corrente della CPU è considerato una variabile i cui valori possono essere recuperati quando si richiama il relativo ID oggetto. Ogni OID è univoco e non deve essere uguale in tutto il mondo, analogamente a un indirizzo MAC. Questi identificatori si trovano in una gerarchia ad albero e ogni OID può essere tracciato fino alla relativa radice. Ogni fornitore ha una propria filiale dopo una radice comune.

Un'analogia può essere l'indirizzo dell'abitazione, dove la radice è il paese o lo stato, quindi il CAP della città, la via 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 MIB (Management Information Base) in ciascun dispositivo di rete. Ogni identificatore ha un nome e una definizione (intervallo di valori, tipi e così via).

Non è necessario caricare i MIB sullo strumento SNMP per utilizzare il protocollo SNMP e per interrogare un dispositivo, a condizione che sia noto un OID valido. Il dispositivo risponde con il valore archiviato nella variabile rappresentata dall'OID. Ad esempio, nell'immagine mostrata, il programma di gestione SNMP interroga l'agente SNMP di un dispositivo per conoscere la descrizione del sistema usando OID 1.3.6.1.2.1.1.1.0.

Se caricate il file MIB nello strumento di query, potete utilizzarlo per tradurre i numeri OID in nomi e individuarne le definizioni.

MIB e elenco di tutti i nomi di oggetto e ID sui WLC Cisco

A maggio 2019, una tabella semplice e intuitiva che contiene ogni singolo nome di oggetto disponibile e i rispettivi OID per i controller LAN wireless non esiste. In alternativa, Cisco offre il Management Information Base (MIB), che non è facilmente leggibile ma contiene tutti i nomi degli oggetti disponibili e la relativa descrizione. Cisco 3504 WLC MIB può essere scaricato qui.

Il file di archivio scaricato contiene più file di testo My che possono essere importati in qualsiasi server di monitoraggio SNMP di terze parti o semplicemente aperti con un normale 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 relativi al monitoraggio dello stato fisico del dispositivo (come la temperatura e la velocità della ventola) si trovano all'interno di un MIB denominato  CISCO-ENVMON-MIB.my. Qui,  ciscoEnvMonFanState  è il nome dell'oggetto utilizzato per fornire lo stato della ventola del WLC. I file MIB hanno la sintassi mostrata. Le informazioni sull'oggetto stato ventola sono simili alle seguenti:

ciscoEnvMonFanState OBJECT-TYPE

SYNTAX  CiscoEnvMonState

MAX-ACCESS read-only

STATUS  current

DESCRIPTION

"The current state of the fan being instrumented."

::= { ciscoEnvMonFanStatusEntry 3 }

La maggior parte dei software di monitoraggio di terze parti si basa sugli OID e non sui nomi degli oggetti. La conversione tra il nome dell'oggetto e l'ID dell'oggetto può essere eseguita con lo strumento Cisco SNMP Object Navigator. Immettere il nome dell'oggetto nella barra di ricerca. L'output fornisce l'OID e una breve descrizione. Inoltre, lo stesso strumento può essere utilizzato per trovare il nome oggetto corrispondente dell'OID.

Uso degli OID per monitorare lo stato del WLC

Dopo aver acquisito l'OID dell'oggetto da monitorare, è possibile eseguire la prima query SNMP. Questi esempi mostrano come acquisire un utilizzo di CPU WLC per core (OID = 1.3.6.1.4.1.9.9.618.1.4.1) per la community SNMPv2  snmp_test   e l'utente SNMPv3  admin   con password di autenticazione SHA  Cisco123Cisco123   e password di privacy AES impostate su  Cisco123Cisco123 . L'interfaccia di gestione del controller si trova nella versione 10.48.39.164.

Monitoraggio tramite SNMPwalk

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 ha la sintassi seguente:

snmpwalk -v2c -c <community_name> <WLC_management_interface_ip> <OID>

Ad esempio:

VAPEROVI-M-H1YM:~ vaperovi$ snmpwalk -v2c -c snmp_test 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1

SNMPv2-SMI::enterprises.9.9.618.1.4.1.0 = STRING: "0%/1%, 0%/1%, 0%/1%, 0%/1%"

Se si usa SNMPv3, il comando ha la sintassi seguente:

snmpwalk -v3  -l authPriv -u <username> -a [MD5|SHA] -A <auth_password> -x [AES|DES] -X <priv_password> <WLC_management_interface_ip> <OID>

Scegliere MD5/SHA e AES/DES in base alla modalità di creazione dell'utente SNMPv3 sul controller.

Ad esempio:

VAPEROVI-M-H1YM:~ vaperovi$ snmpwalk -v3  -l authPriv -u admin -a SHA -A Cisco123Cisco123 -x AES -X Cisco123Cisco123 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1

SNMPv2-SMI::enterprises.9.9.618.1.4.1.0 = STRING: "0%/1%, 0%/1%, 0%/0%, 0%/1%"

Monitoraggio tramite Python 3 e libreria pysmnp

Questi frammenti di codice sono scritti in Python 3.7 e utilizzano il pysnmp  modulo (pip install pysnmp ) per creare query SNMP per l'utilizzo della CPU di Cisco 3504 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 con script personalizzati.

Esempio di SNMPv2c:

from pysnmp.hlapi import *

communityName = 'snmp_test'

ipAddress = '10.48.39.164'

OID = '1.3.6.1.4.1.14179.2.3.1.13.0'

errorIndication, errorStatus, errorIndex, varBinds = next(

getCmd(SnmpEngine(),

CommunityData(communityName),

UdpTransportTarget((ipAddress, 161)),

ContextData(),

ObjectType(ObjectIdentity(OID)))

)

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:

SNMPv2-SMI::enterprises.14179.2.3.1.13.0 = 73

Esempio di SNMPv3:

from pysnmp.hlapi import *

username = 'admin'

ipAddress = '10.48.39.164'

OID = '1.3.6.1.4.1.14179.2.3.1.13.0'

authKey = 'Cisco123Cisco123'

privKey = 'Cisco123Cisco123'

errorIndication, errorStatus, errorIndex, varBinds = next(

getCmd(SnmpEngine(),

UsmUserData(username, authKey, privKey,

authProtocol=usmHMACSHAAuthProtocol,

privProtocol=usmAesCfb128Protocol),

UdpTransportTarget((ipAddress, 161)),

ContextData(),

ObjectType(ObjectIdentity(OID)))

)

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]))

Integrazione con software di terze parti (Grafana/PRTG Network Monitor/SolarWinds)

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. Dopo la sincronizzazione, è possibile impostare allarmi e modelli di configurazione push per più controller wireless contemporaneamente.

D'altra parte, Cisco WLC può anche essere integrato con più soluzioni di monitoraggio di terze parti, se gli OID sono noti. Programmi come Grafana, 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.

I server di monitoraggio possono richiedere modifiche per supportare questa integrazione. Nell'esempio mostrato nell'immagine, 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.

Tabella degli OID monitorati più comunemente

Se si considera che i MIB presentano i dati in una sintassi non descrittiva, questa tabella include alcuni dei nomi di oggetto più comuni e i relativi OID utilizzati dai clienti Cisco.

Descrizione

Nome oggetto

OID

Risposta prevista

Utilizzo CPU complessivo in %

agenteCPUtilizzazioneCorrente

1.3.6.1.4.1.14179.1.1.5.1.0

INTERO: 0

Utilizzo CPU per core

clsTutteCpuUtilizzo

1.3.6.1.4.1.9.9.618.1.4.1.0

STRINGA: 0%/1%, 0%/1%, 0%/1%, 0%/1%

Utilizzo RAM in %

clsSysCurrentMemoryUsage

1.3.6.1.4.1.9.9.618.1.8.6.0

Sagoma32: 33

Temperatura CPU in °C

temperaturaSensoreBSN

1.3.6.1.4.1.14179.2.3.1.13.0

INTERO: 76

Numero di punti di accesso collegati

clsSysApConnectCount

1.3.6.1.4.1.9.9.618.1.8.4.0

Sagoma32: 2

Numero di client

ConteggioClientiMaxCls

1.3.6.1.4.1.9.9.618.1.8.12.0

Sagoma32: 0

Numero di client per WLAN

bsnDot11EssNumberOfMobileStations

1.3.6.1.4.1.14179.2.1.1.1.38.0

Contatore 32: 3

Contatore 32: 2