Kategória: Linux a sieť

Zmenené: 7. november 2010

Správa siete po sieti

Na vzdialenú správu sieťových zariadení existuje už mnoho rokov protokol označovaný skratkou SNMP (Simple Network Management Protocol), ktorá v slovenčine znamená Jednoduchý protokol na správu sietí. Implementáciu tohoto protokolu možno nájsť v mnohých zariadeniach, vrátane Linuxu, v tomto článku je len nejaká základná teória.

Verzie SNMP

Keď sa povie SNMP, tak je to široký pojem, pretože za roky existencie prešiel niekoľkými zmenami:

SNMPv1

Prvá verzia protokolu SNMP bola definovaná v roku 1988. Autentifikácia klienta bola riešená pomocou tzv. community string, ktorý je v tejto verzii prenášaný ako prostý text.

SNMPv2

Druhá verzia protokolu SNMP bol pokus o odstránenie nedostatkov SNMPv1. Vzniklo viac podverzií, ktoré riešili bezpečnosť a rozšírenie protokolu. Nakoniec sa stala prakticky štandardom verzia SNMPv2c, ktorá zaviedla niektoré nové vlastnosti (INFORM, GET BULK, 64-bitové hodnoty/počítadlá), ale autentifikácia ostala na úrovni SNMPv1. V tejto verzii bola tiež podstatne rozšírená štandardná databáza MIB.

SNMPv3

Verzia 3 bola ustanovená od roku 2004 a konečne štandardizovala nové autentifikačné mechanizmy. Najväčšou zmenou je zavedenie autentifikácie pomocou mena a hesla, ktoré sú prenášané v šifrovanej podobe.

Princíp činnosti

Celý protokol SNMP je založený na architektúre klient/server. Na jednej strane komunikácie beží agent (server), ktorý sa stará o zhromažďovanie informácií monitorovanej stanice a ich sprístupňovanie správcom (klient), teda programom, ktoré s týmito informáciami pracujú. Za určitých okolností sa aj agent môže stať klientom, a to v prípade nastavenia tzv. trapov, teda reakcií na určité udalosti v stave monitorovaného zariadenia a ich zverejnenie po sieti.

Tip

Na komunikáciu prostredníctvom SNMP je používaný protokol UDP, pričom štandardným portom je port číslo 161.

MIB

Aby si správca i agent rozumeli, musia používať nie len rovnaký protokol, ale aj rovnakú databázu informácií. Táto databáza je označovaná skratkou MIB (Management Information Base). MIB nie je nič iné, ako dohodnutá štruktúra získavaných a sprístupňovaných informácií, aby bolo možné jednoznačne identifikovať žiadaný údaj. O správu tejto databázy sa stará organizácia IANA, je však možné aj jej rozšírenie o vlastné položky.

MIB je tedy hierarchická stromová štruktúra dát, ktorá zodpovedá konkrétnemu zariadeniu. Jej štruktúra zodpovedá Globálnemu mennému stromu (Global Naming Tree) SNMP, ktorý sa skaldá z troch objektov:

  • koreň (root) nepomenovaný koreň stromu obsahuje spoločnú časť idendifikátora, spoločnú všetkým objektom MIB, umiestneným v tomto koreni;
  • podstrom (subtree) podstrom obsahuje podmnožinu objektov, dostupných pod koreňom, podstrom môže vystupovať ako koreň, a teda mať vlastné podstromy;
  • list (leaf) list je podstrom, ktorý už nemá ďalšie vnorené podstromy a reprezentuje jeden objekt MIB, ktoráho charakteristickou vlastnosťou je, že je jedinečný v celom strome.

OID

Ďalšia skratka, s ktorou sa pri používaní SNMP často stretnete je OID a neznamená nič viac ako identifikátor objektu (Object IDentifier), teda jednoznačné označenie položky v databáze MIB. OID je zapisovaný v číselnej podobe, ako postupnosť celých čísel, oddelených bodkami, napríklad:

1.3.6.1.2.1.1.5.0

Tento OID reprezentuje položku, ktorá obsahuje meno systému. Ak sú k dispozícii aj databázy MIB, možno k OID pristupovať aj prostredníctvom jeho symbolického mena, takže rovnaká položka môže mať tvar:

sysName.0

Typy objektov

SNMP objekty môžu byť jedným z dvoch typov skalárne hodnoty a tabuľky. Skalárne objekty môžu nadobúdať len jednoduché, neštrukturované hodnoty viacerých typov:

  • Integer – jednoduché celé číslo (32 resp. 64 bitové);
  • Gauge – nezáporné celé číslo, ktoré plynule narastá až do maximálnej hodnoty, potom pokračuje znova od nuly, absolútna hodnota takejto hodnoty nie je dôležitá, ale sleduje sa rozdiel od poslednej hodnoty;
  • Gauge – nezáporné celé číslo, ktorého hodnota môže narastať i klesať, ale nemôže prekročiť maximálnu hodnotu (ak ju prekročí, je použitá max. hodnota);
  • TimeTicks – nezáporné celé číslo, reprezentujúce čas v stotinách sekundy;
  • IpAddress – 32 bitová IP adresa;
  • OCTET STRING – postupnosť bajtov, používaná na reťazcovú reprezentáciu hodnoty;
  • OBJECT IDENTIFIER – reprezentuje meno uzla.

Net-SNMP

Asi najznámejším agentom vo svete Linuxu je démon snmpd zo sady nástrojov projektu net-snmp. Našiel som aj openSNMP, ktorý má však poslednú verziu z roku 2006. Projekt net-snmp poskytuje aj sadu nástrojov príkazového riadku, ktoré slúžia ako správcovia a poskytujú prístup k údajom agenta.

V Debiane je táto sada nástrojov dostupná v balíkoch:

  • snmpd – démon (agent) protokolu SNMP;
  • snmp – klientské aplikácie protokolu SNMP;
  • snmp-mibs-downloader – balík zo sekcie non-free, ktorý sa postará o doplnenie databáz MIB.