Články
SNMP - Simple Network Management Protocol
SNMP je jednoduchý, široce rozšířený a užitečný standardizovaný protokol, který slouží k získávání nebo nastavování hodnot na určitém zařízení. Obdobou je například WMI od firmy Microsoft. 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.
Jak SNMP funguje
Protokol SNMP vyžaduje pro komunikaci dvě strany. Jednou entitou je správce (manager) a druhou agent. SNMP pracuje ve dvou režimech činnosti:
- Správce posílá dotazy agentovi a přijímá odpovědi. Hodnoty tedy může získávat i více správců a mohou se ptát kdykoliv.
- Agent zasílá oznámení (trapy) na adresu správce. V nějakých definovaných situacích (překročení nějaké hodnoty nebo i v pravidelném intervalu) odesílá agent jednomu správci hodnoty.
Protokol SNMP nyní existuje ve třech verzích. SNMPv1 a SNMPv2c používají pro autentizaci community string, v podstatě textové heslo. V SNMPv3 je možno využít autentizaci pomocí jména a hesla a šifrování.
SNMP používá pro komunikaci UDP, díky čemuž je velmi rychlé, ale může dojít ke ztrátě (nedoručení) zasílané informace. Od verze 2 je implementována kontrola doručení, takže ke ztrátě by nemělo dojít. Standardně se používá port 161 (SNMP) na straně agenta (pro dotazy) a port 162 (SNMPTRAP) na straně serveru (pro trapy). Klient, který posílá dotaz, zvolí dynamický port, z kterého posílá dotaz na port 161. Agent odpovídá z portu 161 na dynamický port klienta. V praxi je pro každý dotaz použit jiný dynamický port.
SNMP paket
Dotaz a odpověď
| verze | community string | PDU typ | ID dotazu | error status | error ID | OID | hodnota |
Příklad
| 1 | public | GET (0) | 8 | no error (0) | 0 | 1.3.6.1.4.1.311.1.1.3.1.1.1 | NULL |
Pro trapy
| verze | community | PDU typ | enterprise | agent IP | gen trap | spec trap | čas | objekt 1 hodnota 1 | ... |
Community string je heslo pro SNMPv1 a SNMPv2c, PDU typ je typ SNMP dotazu.
SNMP dotazy
Klasická komunikace, kdy posílám dotaz na jednu hodnotu a následně přijímám odpověď, probíhá následovně:
- odešle se dotaz – nastaví se typ GET, zadá se OID pro zjišťovanou hodnotu, vlastní hodnota se nastaví na NULL
- vrátí se odpověď – typ je nastaven na RESPONSE (2), OID na dotazovanou hodnotu a je vyplněna hodnota
Další možné typy dotazů jsou SNMP GET (0) – vrátí jednu hodnotu, GET-NEXT (1) - vrátí další hodnotu (vezme následující OID za zadaným). Od verze 2 GET-BULK, který vrací více hodnot najednou (například pro všechny porty přepínače). Pomocí SNMP můžeme hodnoty nejen číst, ale také zapisovat, k tomu slouží typ SET. Trapy mají trochu jiný formát paketu, jako typ je TRAP. Ještě jsou speciální typy NOTIFICATION, INFORM a REPORT.
MIB databáze – Management Information Base
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.
Příkladem OID může být třeba hodnota 1.3.6.1.2.1.2.2.1.6.1, které odpovídá textová verze z MIB databáze iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifPhysAddress.
Pro vlastní práci se SNMP nepotřebujeme MIB databázi, v SNMP paketu figuruje pouze OID, ale pokud neznáme správné OID, tak nám databáze může pomoci k jeho dohledání.

Software pro SNMP
MIB Browser je velice dobrý a užitečný program pro prohlížení MIB databáze s možností přidávání MIB souborů a dotazů na zařízení. Druhým užitečným programem je Paessler SNMP Tester, který sice neobsahuje MIB databázi, ale má zase několik funkcí navíc. Dovede provádět dotazy v SNMPv1, SNMPv2c i SNMPv3 a také má užitečnou funkci SNMP WALK pro výpis všech OID daného zařízení.
- nástroje pro SNMP
- MIB Browser
- Paessler SNMP Tester
- Net-SNMP - SNMP příkazy do command line
- Getif - různé nástroje
- popis SNMP
- MIB soubory různých výrobců
- MIB validátor
Související články:
SNMP
- SNMP - Simple Network Management Protocol [20.12.2006 15:09] právě čtete
- CACTI – SNMP monitoring a grafy [07.01.2007 12:51]
- Informace o portech switche pomocí SNMP a PHP [17.03.2007 19:37]
- Informace o zařazení portu do VLANy u Cisco Switchů pomocí SNMP a PHP [25.03.2007 19:02]
- Zjištění MAC adresy zařízení na portu switche pomocí SNMP a PHP [20.03.2008 11:21]
- Stažení ARP tabulky z routeru (switche) pomocí SNMP a PHP [26.03.2008 18:33]
linkuj.cz | zalinkuj.cz | jagg.cz | vybrali.sme.sk | del.icio.us.
Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže. Pokud chcete poradit s nějakým problémem či diskutovat na nějaké téma, tak použijte fórum.

Komentáře
Je to pecka článek o SNMP!!
Dost mi pomohl!!
odpověď na [1]Tulinko: Děkuji, takovýhle komentář vždy potěší
. Samotnému mě dalo práci pořádně pochopit, jak SNMP funguje a přitom je to tak jednoduché
.
My musíme mít totiž o tom takou jako by seminární práci!!A každý si musel vybrat jeden z protokolů, tak jsem si vybral SNMP!!
a mám to už hotové, tak teď jen čekám na vyhodnocení!!
tak děkuji za dobré zpracování na této stránce!!
Článek mi také pomohl .. díky .. a přídám si tě mezi RSS :).
Moc pekně popsané, konečně jsem to pochopil :) Dík
Výborný článek. Díky moc.