SNMP og hvordan kan det overvåke nettverk

Irontech er ingen typisk bedrift som leverer utstyr med SNMP støtte, men ettersom noen av våre kunder har kommet med spørsmål har vi valgt å legge ut en forholdsvis enkel beskrivelse av denne protokollen. Dessuten er vi en større tilhenger av Linux og de script mulighetene som finnes der er svært gode og dekker svært dagligdagse SNMP kall som sjekker programvare, fungerer som watchdog, og leser andre verdier av interesse. Men for STORE nettverk med veldig mange servere, routere, etc er SNMP fortsatt det beste alternativet tror vi. SNMP støttes også av Linux. For de som vil ha et 3,dje alternativ er Vpro som benyttes på de nye Intel i-serie prosessorene også et alternativ. Dette er en nettverksuavhengig løsning som Intel har innført og som i tillegg til tradisjonell overvåking/informasjons innhenting også kan gjøre om systemet til en KVM løsning.

SNMP er en av protokollene som benyttes innen TCP/IP kommunikasjon (ethernet og wifi). SNMP gir funksjoner som ofte er benyttet innenfor bedrifts-nettverk (ADB) av en viss størrelse samt innenfor en del prosess-/automasjonsnettverk. Irontech leverer til begge disse brukergruppene selv om vi har lengst erfaring med nettverk for prosess og automasjon. Funksjonene er identiske. SNMP benyttes med andre ord til å overvåke driften av nettverk som router, switcher, etc og helt ned på sensor nivå som alternativ til industribusser. Switcher som støtter SNMP protokollen og den ekstra overvåkings og konfigurasjonsmuligheten kalles for en «Managed Swich», men det finnes produsenter som også benytter andre standarder for begrepet «managed switch». SNMP er imidlertid bare en komponent i programvare. Programvaren kan være gratis, være rimelig eller koste ekstremt mye. Det kommer an på hvor store nettverk som skal overvåkes og hvilke funksjoner en ønsker.
SNMP kan f.eks benyttes til å overvåke vannmengden i et kar der en kan sette en grenseverdi som gir alarm når verdien(e) overskrides eller faller under et minimumsnivå. Men løsningen kan også benyttes tol å lese av verdien i sann tid.
SNMP er imidlertid pr idag mer brukt innen for ADB som f.eks. å fortelle om en vifte begynner å bli dårlig i en server eller om en port i en swich ikke lenger fungerer.

SNMP (Simple Network Monitoring Protocol) er en funksjon som støttes av svært mange enheter og som gjør det mulig å overvåke de forskjellige komponentene i et nettverk. Både Windows, Linux, Unix, Android, Apple iOS, etc er operativsystem som støtter bruk av SNMP.

SNMP eksisterer i versjon 1 versjon 2 og versjon 3, hvor ver. 1 er den første og enkleste og ver.3 er den som ble definert sist og som av mange regnes som den beste. Ver 3 har bl.a. høyere sikkerhetsnivå, noe som er en fordel ettersom det er mye informasjon som sendes over nettverket etter en forespørsel og som utenforstående bør ha begrenset tilgang til. Ver. 2 støttes i 3 utgaver (2C, 2U og bare 2). Ver. 2C er den mest brukte versjonen fordi ver 3 er mer krevende/kompleks å konfigurere og 2C ivaretar mye av sikkerhetsbehovet som ver 1 ikke har.

Som beskrevet ovenfor gor SNMP mulighet for mange typer overvåking avhengig av sensortyper og software. Dette inkluderer f.eks. alt fra å se om routere, switcher, UPS’er, servere, etc. fungerer tilfredsstillende. Men det kan også innebære å overvåker vifter og temperatur i servere, fuktighet om det er utstyr som står slik til, kanskje vibrasjoner, trykkmålere, temperaturmålere, etc, etc Teoretisk sett er det ingen grenser for hva som kan overvåkes. Dermed kan en også detektere om det det er fare for at det kan oppstå feil før feilen oppstår. Vi kommer tilbake til dette etterhvert.

En beskrivelse av de mest brukte forkortelsene og uttrykkene ved SNMP er følgende:

* Agent: Viktig. En prosess som overvåker enheter og sender alarmer til en overvåkingsenhet. Dette er en software som må installeres, men mange
produsenter har dette allerede installert i hardware eller software.

* MIB eller Management Information base. Viktig. Software som leser informasjon i SNMP format og henter data fra en Agent (OID). MIB og MIB-II inneholder
en oversikt over alle SNMP enhetene i nettet og deres id (OID) samt hvilke koder de sender når de sender data om status, feil, etc.
Det finnes MIB av generell type (beskrevet som MIB-II), men også agenter levert av hardware/software leverandør som er spesielt rettet mot en bestemt
leverandør (f.eks IBM, Cisco, Dell eller tilsvarende) som ofte kan gi mer detaljert informasjon. Dette legges i et annet «OIS tre/mappe» under «Enterprise».

* OID: Viktig. Object Identifier. Identifiserer hvilken enhet som overvåkes og evt informasjon om denne enheten vha agenten.

* Object: Det SNMP innhenter data om. Eksempler på dette kan være status informajon om en nettverksport fungerer eller CPU bruk.

* Communiity String: Passord. Som standard benytter mange softwarepakker «Public» og «Private» som passord for versjon 2 og 3. Vi anbefaler at disse
endres til noe annet.Dette er med andre ord en sikkerhetsforanstaltning for å unngå at utenforstående leser/endrer verdiene som er satt på agentene
avhengig av om agentene er kun lesbare eller om det også kan skrives til dem.

* Get: En av flere typer forespørsler/kall til enheter som overvåkes og mottar deretter informasjon fra denne enheten.

* Get next: En annen type (av flere) get forespørsler som gir neste nivå av informasjon, f.eks. en tabell. Avhengig av hvor ofte en ber om statusrapport fra
objektet vil Get kommandoen kreve mer av nettverket og vi mener derfor at en Trap vil være et mer egnet verktøy generelt sett. Men Get er et godt alternativ
om en f.eks skal feilsøke (ref bilder som viser tester nederst på siden).

* Inform: Tilsvarer «trap» (beskrevet nedenfor) men send av «Agent». Denne forespørselen krever at det benyttes v2 eller senere versjon og kan gi informasjon
som gjør at mangement software kan bekrefte mottak av informasjon.

* Management Stations (også kalt NMS eller Network Management Stations): Dette er den programvaren/software som benyttes til å motta og samle
informasjon fra Agenter.

* MOB Walker («browser): Et verktøy som kan hente ut data fra enheter som støter SNMP for å finne ut hvilken enhet som svarer på et anrop.

* Trap (eller «Notificatoin): F.o.m. V2C benyttes beskrivelsen Notification istedenfor trap. Trap er en definisjon av en grense som sender en alarm til
Management software om grensen som blir definert overskrides. Denne funksjonen benytter noe som ofte kalles COS eller «Change Of Status» når den
sender et alarm signal.

* Polling: En NMS (software) vil med jevnlige mellomrom spørre om status til enheten og videresender data til Managment Software.

* Set: SNMP kan benytte denne komandoen til å endre status eller grenseverdi på en enhet.

* Trap: Agenten sender en «trap», dvs en uoppfordret melding til «Managment Station» når en viktig hendelse oppdages. Dette blir en slag motsatt
datainnsamling av «polling» som henter data på oppfordring. Ved å definere en grense, f.eks. om disken er fyllt opp 80% vil den sende beskjed om dette til
MIB (beskrevet ovenfor).

* Variable: Variabler er den aktuelle status for et objekt som f.eks. om enheten er opp/nede (virker/virker ikke), bruk av datakraft (f.eks. 90%).

* Version1: Den første utgaven av SNMP der data sendes i vanlig tekst (gir dårlig sikkerhet).

* Version 2C: V2C er den mest brukte av oppgraderingene fra versjon 1. men både 2 og 2U er gode alternativer avhengig av hvem du spør og hva det skal
brukes til.

* Vesion 3: Den nyeste og sikkreste versjonen av SNMP som ivaretar sikkerhet og autentisering på best mulig måte. Dette bør være et krav i nettverk som ikke
er sikret på annen måte ovenfor utenforstående.

Krav til porter og services

Vær oppmerksom på at porter i switcher, brannmurer, etc må ha riktig «port» åpen for den aktuelle programvaren og agenten for å få informasjonen på nettet og frem til MIB. Som oftest er dette port 161, men det er også flere andre porter som benyttes. Bl.a krever «Trap» og «Inform» å bruke port 162. Les gjennom dokumentasjonen på programvare du bruker for å forsikre det om at riktig port er åpen.

Vær også oppmerksom på at SNMP kjører som en «service» på server/PC. Påse at denne «services er startet. Hvis ikke vil det være vanskelig å få noe fornuftig informasjon fra de forskjellige agentene. Hvilke services som er nødvendig å kjøre vil du finne i dokumentasjonen til Management Software.

Datagram som benytter SNMP består av flere komponenter og er avhengig av hva som sendes

En SNMP melding sendes som et UDP datagram og består av en «header» og en PDU (Protocoll Data Units). Header består av SNMP versjon nr og system navn. System navnet fungerer også som en sikkerhet i SNMP. PDU er avhengig av hva slags informasjon som sendes. Kommandoer som Get, GetNext,Set og responsen på disse består av en spesifikk PDU type, Forespørsel på OID, feilstatus, index, etc. Trap kommandoen inneholder imidlertid onfo om Agent, Agent adresse, trap type og kode, klokkestempel, etc.

OID og beskrivelse av denne

OID er sentralt i SNMP og identifisering av de enheten som overvåkes i nettet. OID numrene leveres som oftest av hardware leverandøren. Men å identifisere enhetene basert på det nummeret de bruker krever often en del erfaring, og om det plutselig oppstår en feil (f.eks. en vifte som stopper/må byttes) så vil ofte MIB software gi en bedre beskrivelse slik at systemansvarlig raskere forstår problemet

MIB er en samling definisjoner (noen beskriver det som en database men egentlig er det flere databaser som beskriver hvert enkelt objekt) som definerer status på objektet som skal overvåkes. Dette objektet kan være alt fra en server eller en switch og ned til detaljer som temperatursensor. Men en slik sensor kan også være en del av serveren som ble beskrevet tidligere.

Hver enkelt produsent har sin egen MIB tre struktur som beskriver objektet.

En slik trestruktur kan f.eks. ha følgende benevnelse:

1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.2

De 4 første sifrene er ALLTID de samme og referer til forskjellige standarder. Det er:

1 – Iso
3 – org (Iso identifisert org)
6 – dod (US Directory of Defence)
1 – internet

Deretter kommer 4 som står for «Private» ID og så 868 som referer til Transistion Networks (en leveransør av Switcher, konvertere, etc). 2 tallet referer til at det er et produkt fra denne leverandøren. 4 forteller at det er et chassis. 1 at det er et kort inne i chassis og slik fortsetter det ned i svært detaljert informasjon. Dette eksempelet er defpr et eksempel på en produsent spesifikk OID ettersom den ligger under «Enterprises».

Hadde nummeret vært f.eks. vært 1.3.6.1.1.1…… så hadde det vært en generell OID som følger med/er en del av standard MIB software
I tegningen nedenfor har vi forsøkt å vise hvordan generelle SNMP OID’er lagres i andre «mapper» enn de «Private bedrifts OID’ ene» ved å farge de generelle med en grønn farge og de som leveres av de enkelte bedriftene med en blå farge.

Noen software pakker har all denne informasjonen liggende inne slik at det ikke er nødvendig å legge inn og definere på nytt. Dette er de tallene («databasen») som benyttes av MIB software til å definere objektet og lese ut verdiene som sendes over TCP/IP (f.eks Ethernet) for å fortelle tilstanden til objektet. Men som beskrevet lenger opp gir mange MIB pakker muligheten til å gi slike tallrekker bedre beskrivelser ved å referere til mer forståelig beskrivelse vha det som er gitt i en database.

MIB software

Det finnes en del programvare ute på nettet. Mye er gratis og enda mer koster penger. Om en arbeider på en et Microsoft server vil SpiceWorks være et godt alternativ. Det finnes også en app som gjør tilsvarende. Begge programmene kan lastes ned fra SpiceWorks.com og begge kan leveres som gratis utgave. Men det finnes også mange andre pakker som brukere vil si er like gode eller bedre ?
Hvis en derimot arbeider fra en Linux server vil vi tro at Nagios fungerer greit, men også Nagios leveres i gratis utgave og betalt utgave. Ubuntu har også en løsning vha sin Canonical Landscape men det koste også noe men ikke like mye som Nagios utgave som det må betales for.Men Canonical sin utgave krever til gjengjeld at en benytter f.eks. Ubuntu server.
Men uansett operativsystem, funksjonalitet, brukervennlighet, pris og andre ting så vil valg av løsning forandre seg på sikt. Det er derfor greit å følge med på nettet mhp hva som er tilgjengelig til enhver tid og om nye løsninger ivaretar nye krav bedre enn tidligere programvare. Overnevnte informasjon er basert på hva som var tilgjengelig i skrivende stund i 2014.

En god oversikt over programvare som er gratis eller som koster noe er å finne hos SNMPLink.org.

Nedenfor er bare et et par bilder fra en MIB software. Jeg telte ca 70 forskjellige skjermbilder fra denne pakken, men de fleste vil klare seg med mye mindre. Pakken som det er hentet bilder fra er ikke testet så det er ingen anbefaling vi kommer med selv om vi bruker bildene. Produsenten av Loriotpro som er avbildet leverer både gratis utgaver, «begrensede» utgaver og full pakke med de fleste mulighetene.

De 2 bildene er fra samme softwarepakke og viser overvåking av prosesser på en Windows server vha SNMP, mens det andre bildet viser respons ved enkel ping.

Det første grafiske bildet viser strukturen på MIB informasjon og hvordan nummereringen av objektene er (ref OID beskrivelse lenger opp), mens det andre bilde viser et skjermbilde om løsningen er sky basert og en ønsker å se belastninger av nettet, etc.

Hva gjør at du ikke får kontakt med objektet?

Det kan være mange årsaker til at et objekt ikke svarer på f.eks. en Get forespørsel. De vanligste har vi beskrevet nedenfor:

  • Feil DNS (Domain Network Services) eller IP adresse
  • Hvis du kan «pinge» enheten er det ikke IP adressen.
  • Ingen SNMP agent i objektet. Dette kan f.eks. skje da mange objekter benytter agenter som opsjoner og derfor må installeres manuelt.
  • En annen ting kan være mangelfull beskrivelse i MIB av den enkelte proben (f.eks. kjølevifte) i en enhet som har mange overvåkingspunkter.
  • Kanskje er passordet feil, eller du forsøker å nå en enhet med SNMP versjon 3 mens det er versjon 2. Forsøk å bytt ut «private» passord med «public».
  • Er riktig port åpnet (må du åpne port 162 i tillegg til161 i brannmuren)?

 

Copyright © 2020
Jørn Jensen

Gjengitt med tillatelse.

Om ønsker informasjon som ikke finnes på våre sider, ber vi deg kontakte oss med f.eks. en mail til vår support avdeling. Vi vil da forsøke å få opp mer informasjon så raskt som mulig.

Skroll til toppen