SNMP a monitoring sítě

Lukáš Pospíšil, 536439@mail.muni.cz

Protokol SNMP

SNMP je jednoduchý, široce rozšířený standardizovaný protokol, který slouží k získávání nebo nastavování hodnot na určitém zařízení. Podporu SNMP má velká řada zařízení, například aktivní síťové prvky, počítačová čidla, tiskárny, přístupové body nebo pomocí softwaru a ovladačů ji mohou získat osobní počítače a servery. Hodnoty můžeme získávat v pravidelném intervalu a ty pak jednoduše ukládat do databáze spolu s časem a následně vykreslit do grafu. Přehledně tak můžeme zobrazit třeba vytížení procesoru, průběh teploty nebo datový tok na portu přepínače.


SNMP funguje na aplikační vrstvě. V případě nezabezpečeného SNMP agent přijímá požadavky na UDP portu 161. Správce přijímá asynchronní oznámení (Trapy) od agenta na portu 162. Při použití zabezpečení (SNMPv3) agent přijímá požadavky na portu 10161. Správce přijímá asynchronní oznámení (Trapy) od agenta na portu 10162.


Síť řízená pomocí SNMP se skládá ze tří hlavních částí:
Spravované zařízení
Agent – software, který běží na spravovaných zařízeních
NMS (Network management station) – software, který běží na správcovských počítačích

Strom MIB-2, OIDs a jejich překlad na jméno

Každá hodnota v SNMP je jednoznačně identifikována pomocí číselného identifikátoru OID - Object Identifier. OID je tvořeno posloupností čísel oddělených tečkou, tato hodnota vznikne tak, že se vezme OID nadřazeného prvku a doplní se tečka a aktuální číslo. Celá tato stromová struktura je uložena v MIB databázi. Navíc MIB databáze obsahuje jména a popisy jednotlivých hodnot (OID). MIB databáze může být doplněna o další hodnoty pomocí části struktury uložené v MIB souboru.

Například pro objekt Name s OID .1.3.6.1.2.1.1.5 strom vypadá následovně:

  • OID tool
  • Verze SNMP

    SNMP disponuje 3 verzemi:

    SNMP Verze Description
    SNMPv1 Původní verze SNMP.
    SNMPv2c Vylepšení oproti SNMPv1, zachování metody komunitního řetězce pro zabezpečení, ale s vylepšeními v protokolových operacích a typech dat. Přidání GetBulk, INFORM.
    SNMPv3 Významný upgrade zavádějící robustní bezpečnostní funkce včetně ověřování, šifrování a vylepšené integrity dat.

    Autentizace v SNMP (v1, v2c, v3)

    SNMP v1 a v2c používají jednoduchý mechanismus založený na komunitních řetězcích (community strings) pro autentizaci, což je v podstatě heslo pro přístup k informacím. Verze 3 SNMP přidává vylepšené možnosti zabezpečení, včetně šifrování a silnější autentizace. V SNMPv3 lze také použít TLS a DTLS.

    Metody SNMP (get, set, getBulk, ...)

    Metody SNMP umožňují interakci s monitorovanými zařízeními. Get slouží k získání hodnoty specifické proměnné, Set umožňuje změnit hodnotu proměnné, GetBulk je používán pro efektivní získávání velkého množství dat najednou, a GetNext poskytuje způsob pro procházení MIB stromem.

    Název metody CLI nástroj SNMP verze Popis
    GET snmpget v1, v2c, v3 získá seznam přesně zadaných objektů
    GETNEXT snmpgetnext, snmpwalk v1, v2c, v3 získá další objekt v MIB stromě (inorder řazení)
    GETBULK snmpgetbulk v2c, v3 podobné GETNEXT, pouze se vrací více následujících objektů najednou
    SET snmpset v1, v2c, v3 pošle konfiguraci nebo příkaz SNMP agentovi
    TRAP snmptrap v1, v2c, v3 jednosměrná asynchronní zpráva od agenta směrem k NMS
    INFORM snmpinform v2c, v3 skoro jako TRAP, jen se očekává odpověď druhé strany
    RESPONSE - v1, v2c, v3 odpověď na všechny ostatní typy zpráv (kromě TRAP, REPORT, RESPONSE)
    REPORT - v3 interní zpráva protokolu, většinou komunikační chyba

    Tabulka převzata z referátu Adama Ivory

    SNMP trap a inform

    SNMP trap a infrom jsou metody posílané od zařízení (agenta) k SNMP manažerovi automaticky, když dojde k určité události (například vypadne interface). Umožňují rychlou reakci na mimořádné situace bez nutnosti aktivního dotazování zařízení. Infrom očekává potvrzení od NMS a když se nedostaví, tak zonvu pošle zprávu. Narozdíl od inform, trap pošle zprávu a odpověď neočekává.

    Konfigurace SNMP démona ( net-snmp )

    Interaktivní konfigurace použitím snmpconf. Manuálová stránka snmpd.conf

    V souboru /etc/snmpd.conf. Např. nastavení snmpv2c pro read only: rocommunity COMMUNITY [SOURCE [OID | -V VIEW [CONTEXT]]]

    view systemonly included .1.3.6.1.2.1.25.1
    rocommunity public default -V systemonly

    Pro read write by se jednalo o rwcommunity.

    Generování grafů na základě SNMP veličin (MRTG)

    Multi Router Traffic Grapher (MRTG) je nástroj pro monitorování a vizualizaci provozu na síťových linkách. MRTG využívá SNMP pro sběr dat o síťovém provozu z různých zařízení. Pracuje tak, že periodicky (obvykle každých pět minut) získává data z monitorovaných zařízení a generuje grafy, které ukazují průběh datového toku na jednotlivých síťových rozhraních. MRTG je schopen zobrazovat denní, týdenní, měsíční a roční statistiky. Je jeho schopen vizualizovat data ve webovém rozhraní.

    Obecné generování grafů (RRDtool a jeho nadstavby)

    RRDtool (Round Robin Database tool) efektivně pracuje s daty a generuje grafy s vysokou mírou přizpůsobitelnosti. Umožňuje ukládat data v databázích typu "round-robin", což znamená, že starší data jsou postupně nahrazována novými. To zajišťuje, že velikost databáze zůstává konstantní bez ohledu na to, jak dlouho je systém v provozu. Nadstavby jako Cacti nebo Torrus poskytují pokročilé funkce a uživatelská rozhraní.

    Sledování chybovosti sítě (SmokePing)

    SmokePing je nástroj pro monitorování síťového výkonu, který se zaměřuje zejména na sledování latence a ztrátovosti v síťi. SmokePing vysílá pravidelné "ping" požadavky k definovaným cílům v síti. Každý "ping" měří dobu odezvy a zaznamenává případné ztráty paketů.

    Software pro monitorování síťových služeb (Nagios, Zabbix, netdisco)

    Software nabízí široké spektrum možností pro monitorování a správu síťové infrastruktury a služeb. Webové rozhraní, implementace grafů, přehled upozornění stavu sítě, mailové notifikace.

    netdisco

    nagios

    zabbix

    Description of image

    Literatura