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ě:
- iso (1)
- member-body (2)
- us (840)
- ...
- us (840)
- std (1)
- iso8802 (8802)
- ...
- org (3)
- dod (6)
- internet (1)
- mgmt (2)
- mib-2 (1)
- system (1)
- sysName (5)
- system (1)
- mib-2 (1)
- mgmt (2)
- internet (1)
- dod (6)
- member-body (2)
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.
netdisconagios
zabbix