SNMP

A HupWiki-ből...

Az SNMP (Simple Network Management Protocol - egyszerű hálózatkarbantartási protokoll) TCP/IP hálózatra kötött eszközök (szerverek, routerek, hubok, switchek, nyomtatók és egyebek) közötti kommunikációra szolgáló szabványok gyűjteménye. Egy eszköz SNMP kompatibilis, ha ellenőrizhető és/vagy vezérelhető SNMP üzenetek segítségével. Ezen eszközök tartalmaznak egy SNMP ügynökprogramot az SNMP üzenetek fogadására, küldésére és kezelésére. Hálózati eszközök SNMP-vel való kezelésére szolgáló programok mindenféle elterjedt számítógépre elérhetőek, gyakran együtt szállítva azokkal az eszközökkel, amelyek kezelésére szolgálnak. Néhány ilyen program sokféle eszköz kezelésére is képes.

A leggyakrabban használt nyílt forrású implementáció a net-snmp. A net-snmp kliensprogramokat is szállít, melyek közül az snmpget, illetve az snmpwalk használható az OID-k lekérdezésére. A MIB tree tetszőleges mélységben lekérdezhető.

Tartalomjegyzék

Fogalmak

Komponensek

Az SNMP topológia három komponensből áll: managelt eszközök (managed/slave device), az azokon futó agent (kliens) programok, illetve az azoktól az adatokat osszegyűjtő NMS-ek (network monitoring system), melyekkel a tényleges megfigyelést, irányítást végezzük.

Az SNMP alapból a 161/UDP (request/response) és 162/UDP (trap, notification) portokat használja.

Protokoll-verziók

SNMPv1 (RFC: 1988) SNMPv2, SNMPv2c, SNMPv2u (RFC: 1993-) SNMPv3 (RFC: 2002)

Mindegyik verzió az előzőnél jóval fejlettebb biztonsági megoldásokat tartalmaz, értelemszerűen jelenleg a v3 javasolt.

MIB, OID

MIB (Management Information Base): Az SNMP alapjául egy fastruktúra-szerű osztályozás szolgál, ennek egyes táblái a MIB-ek.
OID (Object ID): Egy adott paraméter a MIB tree-n belül. Ezt tetszés szerint névvel, illetve számozás szerint is lekérdezhetjük (lásd az alábbi példát).

A MIB-eket az IEEE, illetve az IETF tartja karban [FIXME].

Enterprise MIB

Az úgynevezett enterprise MIB-ek tartalmazzák a vállalatok, gyártók által az SNMP-be felvetetett MIB-eket. Természetesen itt leginkább a hálózati eszközök gyártóinak az információit találjuk.

Műveletek

Net-SNMP Wiki: GET, GETNEXT, SET, TRAP, INFORM (van még getbulk, getresponse és report is).

Trap

[TODO] Net-SNMP Wiki

Community

Az SNMP access control egyik fontos eleme, mely lehetővé teszi az egyes eszközök csoportosítását, illetve azonosítását. A default 'public' community használható például 'anonim' read-only lekérdezésekre.

Szoftverek

Lehetne még részletesebb is...

Nagios

Nagy felhasználói bázissal rendelkező, bővíthető SNMP és általános monitorozó megoldás. Többféle termék tartozik ide:

- Nagios Core (open source)
- Nagios XI (kereskedelmi termék)
- ezekre épülő appliance-ek

Icinga

Nagios fork, amely a következőkben tér el az előzőtől:

- teljesen nyílt forrású, közösségi fejlesztés (nagyrészt Európában)
- több funkciót implementál

Cacti

RRDToolt használó, PHP-ben írt web frontend.

Példa SNMP lekérdezésre

$ snmpwalk -On -c mycommunity -v 1 remotehost

.1.3.6.1.2.1.1.1.0 = STRING: AIX remotehost 3 5 0000DEADBEEF
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.8072.3.2.15
.1.3.6.1.2.1.1.3.0 = Timeticks: (63151778) 7 days, 7:25:17.78
.1.3.6.1.2.1.1.4.0 = STRING: Sysadmin (root@localhost)
.1.3.6.1.2.1.1.5.0 = STRING: remotehost
.1.3.6.1.2.1.1.6.0 = STRING: Server Room
.1.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.1.9.1.2.1 = OID: .1.3.6.1.6.3.10.3.1.1
.1.3.6.1.2.1.1.9.1.2.2 = OID: .1.3.6.1.6.3.11.3.1.1
.1.3.6.1.2.1.1.9.1.2.3 = OID: .1.3.6.1.6.3.15.2.1.1
...

$ snmpwalk -Os -c mycommunity -v 1 remotehost

sysDescr.0 = STRING: AIX remotehost 3 5 0000DEADBEEF
sysObjectID.0 = OID: netSnmpAgentOIDs.15
sysUpTimeInstance = Timeticks: (63164986) 7 days, 7:27:29.86
sysContact.0 = STRING: Sysadmin (root@localhost)
sysName.0 = STRING: remotehost
sysLocation.0 = STRING: Server Room
sysORLastChange.0 = Timeticks: (0) 0:00:00.00
sysORID.1 = OID: snmpFrameworkMIBCompliance
sysORID.2 = OID: snmpMPDCompliance
sysORID.3 = OID: usmMIBCompliance
...

Egy paraméter (a hostname) lekérdezése, itt az SNMP agent egyedi porton figyel:

$ snmpget -c mycommunity -Onqv -v 1 myhost:1161 .1.3.6.1.2.1.1.5.0

myhost

Hivatkozások

SNMP (Wikipedia - angolul)
SNMP MIB - (Wikipedia - angolul)
Net-SNMP
Nagios
Cacti