Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

SNMP vs telemetrie

SNMP op WLC configureren

Via webinterface

Middelste opdrachtregel

Objectnamen en object-ID’s (OID’s)

Wat zijn objectnamen en OID’s?

MIB’s en lijst van alle objectnamen en ID’s op Cisco WLC’s

Gebruik OID’s om de status van WLC te bewaken

Monitor via Snelwandeling

Monitor via Python3 en pysnmp Library

Integratie met software van derden (Grafana+Prometheus/PRTG Network Monitor/SolarWinds)

Integratie met CUCM

Tabel van meest frequent gecontroleerde OID’s

Monitor Standby WLC in HA

Direct monitoren in stand-by WLC

Monitor Standby WLC via actieve WLC

Inleiding

Dit document beschrijft hoe u Simple Network Management Protocol (SNMP) kunt configureren om Cisco 9800 draadloze LAN-controller (WLC) te bewaken.

Voorwaarden

Vereisten

- Basiskennis van 9800 WLC en SNMP-protocol

- SNMP-server/tool

Gebruikte componenten

Alle tests werden uitgevoerd op MacOS 10.14 en een 9800-CL WLC met beeldversie 17.5.1. Sommige van de in dit artikel genoemde OID’s bestaan niet op oudere versies van afbeeldingen.

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.

SNMP vs telemetrie

Oudere AireOS WLC's vertrouwen op SNMP als het belangrijkste protocol voor monitor. De meerderheid van de relevante informatie zoals het aantal client, aantal aangesloten access points, processor en geheugen gebruik kan worden verkregen via SNMP query van de tool die monitors, naar de WLC.

Met de 9800 WLC is de nadruk gelegd op telemetrie. Telemetrie werkt in een "push"-model waarbij WLC relevante informatie naar de server stuurt zonder dat er vragen hoeven te worden gesteld. Catalyst 9800 biedt nog steeds SNMP voor oudere doeleinden. Sommige informatie kan exclusief zijn voor telemetrie en sommige OID’s die eerder beschikbaar waren op AireOS zijn nog niet beschikbaar op 9800.

SNMP op WLC configureren

Van Cisco IOS XE Bengaluru 17.6.1 wordt Ethernet-servicepoort (Management-interface VRF/Gigabit Ethernet 0) ondersteund in Cisco Catalyst 9800 Series draadloze controller.

Voorafgaand aan deze release kon Catalyst 9800 WLC alleen worden bewaakt met SNMP via zijn draadloze beheerinterface of via Redundantie Management Interface (in het geval van een standby WLC in HA-cluster op versies 17.5.1 en hoger).

Via webinterface

SNMPv2c is een community-gebaseerde versie van SNMP en alle communicatie tussen de apparaten is in duidelijke tekst. SNMPv3 is de best beveiligde versie die berichtintegriteitscontroles, verificatie en codering van de pakketten biedt. SNMPv1 is extreem verouderd, maar bestaat nog steeds om compatibiliteit met oudere software te bieden. Het wordt in dit artikel niet genoemd.

Belangrijk: SNMPv2c is standaard ingeschakeld met community "private" met lees+schrijfrechten en community "public" met alleen-lezen rechten. We raden aan om deze te verwijderen en een nieuwe gemeenschap te creëren met een andere naam.

Log in op de webinterface van de 9800 WLC. Zorg er onder Beheer > Beheer > SNMP voor dat SNMP wereldwijd is ingeschakeld. Onder Community Strings worden alle momenteel geconfigureerde gemeenschappen en hun machtigingsniveau weergegeven:

Voordat SNMP V3-gebruiker wordt gemaakt, moet er een SNMP V3-groep worden gedefinieerd. Om een groep gebruikers met lees+schrijftoestemming te maken, stelt u de Read View and Write View in op v1default. Alleen-lezen groep moet leeg schrijfweergave hebben

Onder het tabblad SNMP V3 Gebruikers ziet u alle geconfigureerde gebruikers, hun rechten en protocollen die worden gebruikt voor verificatie en codering. Knop Nieuw maakt het mogelijk om een nieuwe gebruiker te maken.

Er zijn 3 beveiligingsmodi beschikbaar:

1. AuthPriv = Berichten worden geverifieerd en versleuteld

2. AuthNoPriv = Berichten worden geverifieerd maar niet versleuteld

3. NoAuthNoPriv = Geen beveiliging toegepast op berichten

Selecteer SHA als verificatieprotocol en ten minste AES-128 als privacyprotocol wordt aanbevolen.

Middelste opdrachtregel

SNMP kan ook worden geconfigureerd via Command Line Interface (CLI). CLI biedt extra configuratieparameters, zoals de mogelijkheid om een toegangslijst toe te wijzen aan de v2-community of v3-gebruiker.

Voorbeeld configuratie van v2 read+write community, v3 read+write groep en v3 gebruiker die tot deze groep behoort:

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

Voorbeeld van een toegangslijst waarmee het apparaat alleen op IP-adres 192.168.10.10 de WLC v2-community met de naam "ReadWriteCommunity" kan bevragen:

ip access-list standard 50

10 permit 192.168.10.10

20 deny   any

snmp-server manager

snmp-server community ReadWriteCommunity RW 50

Opmerking: Op het moment van schrijven van dit document worden alleen standaard ACL’s ondersteund. Uitgebreide ACL’s kunnen worden toegewezen, maar ze werken niet.

Objectnamen en object-ID’s (OID’s)

Wat zijn objectnamen en OID’s?

Object ID’s, of OID’s voor kort, zijn unieke identificatoren die een bepaalde variabele of object vertegenwoordigen. Bijvoorbeeld, het huidige processorgebruik wordt beschouwd als variabel welke waarden kunnen worden opgehaald met de aanroep op hun object ID. Elke OID is uniek en geen twee kan hetzelfde zijn over de hele wereld, vrij vergelijkbaar met een MAC-adres.

Deze herkenningstekens volgen een boomhiërarchie, en elk OID kan terug naar zijn wortel worden opgespoord. Elke verkoper heeft zijn eigen tak met een gemeenschappelijke wortel.

Een analogie zou een huisadres kunnen zijn, waar de wortel het land of de staat zou zijn, gevolgd door een citycode, de straat, en tenslotte het huisnummer.

De cijfers gevolgd door een punt vertegenwoordigen elke stap die nodig is om een bepaald punt in die boom of tak te bereiken.

Al deze waarden worden opgeslagen in een Management Information Base, of MIB voor kort, in elk netwerkapparaat. Elke identificatiecode heeft een naam en een definitie (bereik van mogelijke waarden, type...).

Een MIB laden op uw SNMP monitor tool is niet vereist om SNMP te gebruiken en een apparaat te bevragen.

Zolang een geldige OID bekend is, reageert het apparaat met de waarde die wordt opgeslagen in de variabele die de OID vertegenwoordigt. Als u echter de MIB op uw query tool laadt, biedt het het voordeel om de objectnamen te vertalen naar hun ID’s en maakt het mogelijk om hun beschrijving te kennen.

In dit voorbeeld, vraagt de SNMP-tool de SNMP-agent van een apparaat voor zijn systeembeschrijving met het gebruik van de OID 1.3.6.1.2.1.1.1.0.

MIB’s en lijst van alle objectnamen en ID’s op Cisco WLC’s

Cisco biedt Management Information Base (MIB’s) voor 9800 WLC’s. Het is niet gemakkelijk leesbaar, maar de MIB bevat alle beschikbare objectnamen en hun beschrijving.

Alle 9800 modellen (9800-80, 9800-40, 9800-L, 9800-CL, EWC) gebruiken dezelfde MIB die hier kan worden gedownload: https://software.cisco.com/download/home/286322605/type/280775088/release/.

De meest actuele is de datum met de meest recente datum, niet die met de hogere naam van de codeversie.

Het gedownloade archiefbestand bevat meerdere .my tekstbestanden die kunnen worden geïmporteerd in een SNMP-server van derden of gewoon kunnen worden geopend met een teksteditor. Om de OID van een specifieke objectnaam te vinden, moet u eerst het exacte bestand vinden dat het bevat.

Alle objecten die betrekking hebben op het bewaken van de fysieke toestand van het apparaat (zoals CPU en geheugen), bevinden zich bijvoorbeeld in een MIB genaamd Cisco-PROCES-MIB.my.

Hier is "cpmCPUMemoryused" de objectnaam die wordt gebruikt om de hoeveelheid geheugen te verstrekken die door WLC in bytes wordt gebruikt. MIB-bestanden volgen allemaal een vergelijkbare syntaxis. Informatie over het gebruikte geheugenobject ziet er als volgt uit:

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 }

Het merendeel van de software van derden om te monitoren, vertrouwt op OID’s en niet op objectnamen. De omzetting tussen objectnaam en object-ID kan worden uitgevoerd met behulp van Cisco SNMP-objectnavigator.

Voer de objectnaam in de zoekbalk in. Output biedt de OID en een korte beschrijving. Bovendien, kan het zelfde hulpmiddel worden gebruikt om de objecten naam van verstrekte OID te vinden.

Gebruik OID’s om de status van WLC te bewaken

Na de overname kan de OID van het object dat moet worden bewaakt, eerste SNMP-query worden uitgevoerd.

Voorbeelden in dit hoofdstuk tonen hoe u een WLC-vrij geheugen kunt verwerven (OID = 1.3.6.1.4.1.9.9.48.1.1.1.5) voor SNMPv2-community private en SNMPv3-gebruiker snmpadmin met SHA-autorisatiewachtwoord Cisco123# en AES-privacywachtwoord ingesteld op Cisco123#. De beheerinterface van de controller bevindt zich op 10.48.39.133.

Monitor via Snelwandeling

Snmpwalk is een SNMP applicatie die SNMP GETNEXT verzoeken gebruikt om een netwerk entiteit te vragen voor een boom van informatie. Het is standaard aanwezig op MacOS en de meeste Linux distributies. Voor SNMPv2c wordt de syntaxis gevolgd:

snmpwalk -v2c -c

Voorbeeld:

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

Als SNMPv3 wordt gebruikt, volgt de opdracht de syntaxis:

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

Selecteer MD5/SHA en AES/DES op basis van hoe u de SNMPv3-gebruiker op de controller hebt gemaakt.

Voorbeeld:

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

Monitor via Python3 en pysnmp Library

Code snippets zijn geschreven voor Python 3.9 en gebruiken pysnmp module (pip installeer pysnmp) om SNMP vragen te maken voor geheugengebruik van Catalyst 9800-CL WLC. Deze voorbeelden maken gebruik van dezelfde SNMPv2-community en SNMPv3-gebruiker die in een van de vorige hoofdstukken is gemaakt. Vervang de variabele waarden eenvoudig en integreer de code binnen uw eigen aangepaste scripts.

SNMPv2-voorbeeld:

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

Uitgangspennen:

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236

SNMPv3 voorbeeld:

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

Integratie met software van derden (Grafana+Prometheus/PRTG Network Monitor/SolarWinds)

Cisco Prime Infrastructure biedt de mogelijkheid om eenvoudig meerdere netwerkapparaten te bewaken en te configureren, waaronder draadloze controllers.

Prime Infrastructure wordt vooraf geladen met alle OID’s en integratie met WLC bestaat gewoon uit de toevoeging van de WLC-referenties aan Prime. Met 9800 WLCs vertrouwt Prime meestal op Telemetrie om de meeste gegevens van de WLC te verzamelen, terwijl het kleine deel van de informatie wordt verkregen via SNMP.

Anderzijds kan Cisco WLC ook worden geïntegreerd met meerdere oplossingen van derden voor monitoren, zolang de OID’s bekend zijn.

Programma's zoals Grafana+Prometheus, PRTG-netwerkmonitor en SolarWinds-server maken het mogelijk om MIB's of OID's te importeren en waarden in een gebruiksvriendelijke grafiek weer te geven.

Deze integratie kan enige aanpassingen aan de kant van SNMP-servers vereisen. In dit voorbeeld wordt de PRTG-monitorserver geleverd met de OID per kern-CPU-gebruik die de string "0%/1%, 1%/1%, 0%/1%, 0%/1%, 0%/1%" retourneert. PRTG verwacht een integerwaarde en heft een fout op.

Integratie met CUCM

Cisco Unified Communications Manager (CUCM) heeft een draadloze functie voor endpointtracering waarmee de client de locatie van de client bij benadering kan volgen op basis van het toegangspunt waarmee de client is verbonden. Om deze functie te laten werken, moet de CUCM via SNMP-vragen informatie uit de WLC halen.

Belangrijk: veel CUCM-releases zijn beïnvloed door de Cisco-bug-id CSCv07486 - Kan access points in WLC niet synchroniseren vanwege te grote SNMP-verzoeken. Deze kwestie wordt geactiveerd in situaties waarin CUCM een aangetaste release uitvoert en WLC meer dan 10 access points heeft. Vanwege de onjuiste manier waarop CUCM grote hoeveelheid OID’s in een enkele bulk-aanvraag opvraagt, weigert de WLC te antwoorden of antwoordt met een te grote respons. De te grote reactie wordt niet altijd onmiddellijk gestuurd en kan worden uitgesteld. SNMP debugt op WLC print "SNMP: Packet ontvangen via UDP van x.x.x.x op VLANXXSrParseV1SnmpMessage: packlet is too large SrDoSnmp: ASN Parse Error".

Tabel van meest frequent gecontroleerde OID’s

De tabel bevat een aantal van de meest voorkomende objectnamen en hun OID’s, met de overweging dat MIB’s de gegevens presenteren in een niet-gebruikersvriendelijke syntaxis:

Opmerking: Opdracht "toon snmp mib | in <Objectnaam>" kan worden gebruikt om te verifiëren of een bepaalde objectnaam beschikbaar is op 9800 WLC.

Beschrijving

Objectnaam

OID

Verwachte respons

Totaal CPU-gebruik in % laatste 5 seconden

cpm PUT Totaal5sec

1.3.6.1.4.1.9.9.109.1.1.1.1.3

INTEGER: 5

Totaal CPU-gebruik in % last 1 min

cpmPUT totaal1min

1.3.6.1.4.1.9.9.109.1.1.1.1.4

INTEGER: 5

Totaal CPU-gebruik in % last 5 min

cpm PUT Totaal5min

1.3.6.1.4.1.9.9.109.1.1.1.1.5

INTEGER: 5

Huidig gebruikt geheugen in bytes

cpmCPMegeheugen gebruikt

1.3.6.1.4.1.9.9.109.1.1.1.1.12

INTEGER: 3783236

Huidig vrij geheugen in bytes

CpmCPUMemoryFree

1.3.6.1.4.1.9.9.109.1.1.1.1.13

INTEGER: 4263578

Laagste hoeveelheid vrij geheugen sinds laatste boot in bytes

cpmCPUlaagste geheugen

1.3.6.1.4.1.9.9.109.1.1.1.1.15

INTEGER: 4251212

Reden laatste herlading

waarom herladen

1.3.6.1.4.1.9.2.1.2

STRING: "herladen"

Software-image van alle aangesloten AP’s

bsnAPS-softwareversie

1.3.6.1.4.1.14179.2.2.1.1.8

STRING: "17.5.1.12"

Modelnummer van alle aangesloten AP’s

BSNapm-model

1.3.6.1.4.1.14179.2.2.1.1.16

STRING: "AIR-AP1840I-E-K9"

Aantal klanten

X

X

X

Aantal aangesloten AP’s

X

X

X

Staat van voedingseenheid

X

X

X

Ventilatorstaat

X

X

X

Momenteel zijn er verbeteringsverzoeken open om OID's van het totale aantal cliënten en aantal aangesloten toegangspunten te steunen:

Cisco bug-id CSCvu26309 - SNMP OID voor aantal clients niet aanwezig op 9800

Cisco bug-id CSCv4330 - SNMP OID voor access point niet aanwezig op 9800

Toestand van de voedingseenheid (PSU) en ventilatorstaat worden niet ondersteund op het moment dat dit artikel wordt geschreven. De aanvraag voor verbetering is geopend:

Verbetering in Cisco bug-id CSCwa23598 - 9800 WLC-ondersteuning voor PSU en SNMP-id van ventilatoreenheid (1.3.6.1.4.1.9.9.13)

Monitor Standby WLC in HA

Een standby WLC in High Availability-cluster bewaken is alleen mogelijk vanaf de release 17.5.1. Standby WLC kan ofwel direct worden gecontroleerd via RMI of met de query van de actieve WLC.

Direct monitoren in stand-by WLC

Standby WLC kan alleen direct worden gemonitord als WLC's die werken in RMI + RP HA type. Het wordt uitgevoerd door het standby Redundancy Management Interface (RMI) IP-adres van de standby WLC.

In dit scenario worden alleen OID’s van IF-MIB officieel ondersteund, wat het alleen mogelijk maakt om de status van alle interfaces op de standby WLC te bewaken. Voorbeeld-uitvoer van 9800-CL WLC:

Beschrijving

Objectnaam

OID

Verwachte respons

Interfacsnaam

ifDescr

1.3.6.1.2.1.2.2.1.2

SNMPv2-SMI::mib-2.2.1.2.1 = Gigabit Ethernet1

SNMPv2-SMI::mib-2.2.1.2.2 = Gigabit Ethernet2

SNMPv2-SMI::mib-2.2.1.2.3 = Gigabit Ethernet3

SNMPv2-SMI::mib-2.2.1.2.4 = VoIP-leeg0

SNMPv2-SMI::mib-2.2.2.1.2.5 = leeg0

SNMPv2-SMI::mib-2.2.1.2.6 = VLAN1

SNMPv2-SMI::mib-2.2.2.1.2.7 = VLAN39

Operationele toestand van de interface (1=up, 2=down)

ifOperStatus

1.3.6.1.2.1.2.2.1.8

SNMPv2-SMI::mib-2.2.2.1.8.1 = 2

SNMPv2-SMI::mib-2.2.2.1.8.2 = 2

SNMPv2-SMI::mib-2.2.2.1.8.3 = 1

SNMPv2-SMI::mib-2.2.2.1.8.4 = 2

SNMPv2-SMI::mib-2.2.2.1.8.5 = 2

SNMPv2-SMI::mib-2.2.2.1.8.6 = 1

Opmerking: verwacht wordt dat de standby WLC Gig 2-poort (trunkpoort die wordt gebruikt voor traffic switching) zich in de sluitingsstatus bevindt. Zodra failover optreedt, komt de Gig 2-poort op de standby WLC omhoog. Hetzelfde gebeurt met TenGigabit-poorten op 9800 fysieke apparaten (9800-80, 9800-40 en 9800-CL).

Monitor Standby WLC via actieve WLC

De status van standby WLC kan ook worden gecontroleerd met de query naar de actieve WLC. Officieel worden alleen Cisco-WAP-HA-MIB en Cisco-PROCES-MIB MIB’s ondersteund. Wanneer actieve WLC in HA wordt gevraagd, vertegenwoordigt de eerste reactie de waarde van actieve WLC, terwijl de tweede reactie de waarde van standby WLC vertegenwoordigt.

Beschrijving

Objectnaam

OID

Verwachte respons

Totaal CPU-gebruik in % laatste 5 seconden

cpm PUT Totaal5sec

1.3.6.1.4.1.9.9.109.1.1.1.1.3

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.3.5 = 3

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.3.6 = 7

Totaal CPU-gebruik in % last 1 min

cpmPUT totaal1min

1.3.6.1.4.1.9.9.109.1.1.1.1.4

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.4.5 = 8

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.4.6 = 6

Totaal CPU-gebruik in % last 5 min

cpm PUT Totaal5min

1.3.6.1.4.1.9.9.109.1.1.1.1.5

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.5.5 = 10

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.5.6 = 15

Huidig gebruikt geheugen in bytes

cpmCPMegeheugen gebruikt

1.3.6.1.4.1.9.9.109.1.1.1.1.12

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.12.5 = 4318980

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.12.6 = 3950332

Huidig vrij geheugen in bytes

CpmCPUMemoryFree

1.3.6.1.4.1.9.9.109.1.1.1.1.13

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.12.5 = 4318739

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.12.6 = 3950738

Laagste hoeveelheid vrij geheugen sinds laatste boot in bytes

cpmCPUlaagste geheugen

1.3.6.1.4.1.9.9.109.1.1.1.1.15

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.15.5 = 3763868

SNMPv2-SMI:ondernemingen.9.9.109.1.1.1.1.15.6 = 4132588

Stand van de standby WLC (1 = omhoog, 0 = omlaag)

LHaPeerHotStandbyEvent

1.3.6.1.4.1.9.9.843.1.3.4

SNMPv2-SMI:ondernemingen.9.9.843.1.3.4.0 = 1