SNMP
vikki(at)mail.muni.cz
Obsah
O SNMP
SNMP je síťový protokol pro správu síťových prvků. Alternativou k tomkuto protokolu je například webová administrace konkrétního síťového zařízení.
Typickými úlohami pro SNMP protokol jsou:
- zjišťoavání stavových informací o zařízeních (množství volné paměti, počet spojení, počet přihlášených uživatelů, ...)
- nastavování parametrů (atributů) na síťových prvcích
- Monitorování uptimu
- Monitorování verzí běžících systémů
- Sběr dat o existujících síťových rozhraních(ifName, ifDescr, ifSpeed, ifType, ifPhysAddr)
- Measuring network interface throughput (ifInOctets, ifOutOctets)
- Dotazování ARP (ipNetToMedia)
SNMP bězí na nejrůznějších síťových protkolech. Od verze 2 pracuje jako samostatný aplikační protokol. Typicky běží na portu 161 pro agenty a 162 pro management. Agent odpovídá na portu, na kterém přišel dotaz, TRAP zasílá na 162. Může se lišit implementací.
SNMPv1 neposkytoval zabezpečení, autentizace se posílala po síti v plain textu, SNMPv2 (RFC 1441RFC 1452)
SNMPv1 a SNMPv2 spolupráce: protokoly nejsou kompatibilní, dva způsoby spolupráce řeší RFC 1908, a to pomocí proxy agentu a dvouprotokolové sítě.
SNMPv3 (RFC 3411RFC 3418, 2004): nejnovější, oba předchozí považovány za zastaralé. Současní klienti obykle podporují všechny tři módy protokoly (viz RFC 3584). Řeší autentizaci a zabezpečení pomocí šifrování (AES))
Negativa SNMP
SNMP je implementováno mnoha dodavately. Často je SNMP přidáno jako něco navíc, není bráno jako základní požadavek na síťové zařízení.
SNMP nemusí svojí strukturou dostatečně pokrávat složitost sítě.
Kdo vystupuje v SNMP komunikaci:
Management station
stanice s lidmi či zpracovateským programem (pro vyhodnocování komunikace)
Zařízení (network component)
zařízení, o kterém chceme získávat informace. je spojeno s agentem a komunikuje výhradně skrze něj
Agent
většinou součást zařízení - realizuje komunikaci, čeaká na dotazy, zasílá odpovědi, nebo samostatně TRAPy
Forma komunikace
Komunikaci si lze představit jako client-server, kde servery jsou Management station. Oproti klasické C-S architektuře není iniciování komunikace na straně klienta. SNMP je asynchronní protokol typu požadavek/odpověď. SNMP je na rozdíl od Token Ringu, kde příjemce musí odpovědět dříve než může vysílací stanice znovu posílat další zprávu, méně rigidní. Tak vysílající zařízení rozezná odpověď jen je-li vyslána a přijata zpět. Slovo Simple pochází z toho faktu, že protokol má jen 5 funkcí:
Komunikaci v SNMP protokolu zahajuje Management station následujíccích PDU (protocol Data Unit)
GET REQUEST - základní GET na prncipu adresy složené z OID
- GETNEXT REQUEST - pro iteraci přes záznamy
- GET RESPONSE - jako odpověď agenta
- SET REQUEST - pro nastavování hodnot
- TRAP Agent iniciuje komunikaci u TRAP
SNMP protokol
Data jsou obsažena v MIB (Management Information Base). MIB je hierarchicky organizovaná kolekce informaci s bezejmenným kořenem a stromovou strukturou - SNMP Global Naming Tree. Kazdy uzel v tomto stromu(kromě kořene) obsahuje stručný textový popis a integerovou hodnotu. V nejvyšší úrovni jsou například uzly 1-ISO(spravován organizaci ISO) 0-CCIT(spravován orgarizací ITU-T) 2-JOINT-ISO-CCITT(spravován společně organizaci ISO a ITU-T). Jednotlivým výrobcúm jsou níže ve stromu přidělovány jejich vlastni podstromy, ve kterých už nadále nejsou omezeni.
MIB je adresován pomocí OID (object identifier). Každé OID je adresou proměnné, která může být čtena či zapisována.
MIB adresy (tvar OID) - jedná se o čísla oddělené tečkovou notací. Příklad adresace MIB stromu pomocí OID:
formát SNMP zprávy
ukázka komunikace SNMP
podroběnjší informace o MIB http://www.svetsiti.cz/view.asp?rubrika=Tutorialy&temaID=129&clanekID=133
praktické použití SNMP
Velice praktický doporučovaný balík softwaru je net-snmp, který obsahuje nástroje práci se SNMP i příslušné démony.
Command line nástroje:
- snmptranslate: překládá MIB adresy
- snmpget: vyžadá konkrétní data od agenta
- snmpgetnext: Vrací totéž, jako snmpget, ale o OID dál (tj. následující údaj
- snmpwalk:zřetězuje volání snmpgetnext - vrací výpis stromu. Pozor, může vrátit hodně dat.
- snmptable: formátuje data do tabulky -což je jejich přirozenější podoba
- snmpset:zapíše konkrétní data
- snmpbulkget: komunikuje pomocí SNMP GETBULK se síťovým zařízením
- snmpbulkwalk: získá podstrom MIB informací pomocí SNMP GETBULK
- snmptrap:Umí odesílat TRAP signál. Tento příkaz je příkaz agenta, nikoli správce. Tento signál musíme ještě zachytit
Démoni
snmpd
Démon snmpd je praktickou ukázkou agenta, který běží v operačním systému. Typicky poskytuje odpovědi na dotazy týkající se stroje, na kterém běží, může ale také fungovat jako proxy agent, tj agent, který zapouzdřuje informace od jiných zařízení či agetnů. Umí zaslat TRAP zprávu.
snmptrapd
Příjem TRAP signálů zachycuje snmptrapd démon.
MRTG
Multi Router Traffic Grapher - http://oss.oetiker.ch/mrtg/. Jedná se o SNMP management software, které běží (také) jako démon a umí vykreslit získané hodnoty do grafu. Umí grafy zobrazit také jako www stránky.
Nagios
http://www.nagios.org je kompletní systém pro zjišťování stavu síťě a detekci síťových problému na základě automatického měření. Je to webová aplikace, většina informací je také přes prohlížeč částečně konfigurovatelná. Umí na základě nastavení posílat upozornění administrátorům (email, IM, SMS). Podle popisu je to komplexní a rozšiřovatelná aplikace. Neslouží promírně ke komunikaci přes SNMP.
Mezi funkce patří:
- Monitorování služeb(SMTP, POP3, HTTP, NNTP, PING, etc.)
- Monitorování zdrojů (procesorová zétěž, využití paměti a disků, běžící procesy, logy, atd.)
- Jednoduchý pluginovací systém
- Schopnost pojmout topologii síťě
- Podporuje distribuci
- Webové rozhraní
- Jednoduché autorizační schéma
SmokePing
http://oss.oetiker.ch/smokeping/ je software pro měření, ukládání a zobrazování zpoždění, rozptylu zpoždění a packet-loss - ztrátovosti paketů.
jedná se perlovské skripty, k funkci potřebují web server, perl, RRDtool pro vykreslování grafů a hromadu volitelných modulů pro testování nejrůznějších služeb: SSH, DNS, IPv6, Telnet, LDAP, SSL, ...
Literatura