Lihtne võrguhalduse protokoll

**Lihtne võrguhalduse protokoll** (inglise keeles *Simple Network Management Protocol*, lühend **SNMP**) on internetistandardi protokoll IP-võrkudes hallatavatelt seadmetelt andmete kogumiseks ja korraldamiseks ning nende andmete muutmist seadmete käitumise mõjutamiseks. Tüüpiliselt toetavad SNMP protokolli modemid, ruuterid, kommutaatorid, serverid, tööjaamad, printerid jt.

SNMP protokolli kasutatakse võrguhalduses laialdaselt võrgu seireks. SNMP avaldab hallatavate seadmete haldusinfo muutujatena, mis on organiseeritud halduse informatsiooni baasi (inglise keeles *management information base*, lühend MIB) ja kirjeldavad süsteemi olekut ja konfiguratsiooni. Neid muutujaid saavad haldavad rakendused kaugpäringuga küsida ja teatud juhul ka muutujate väärtusi muuta.

Protokollist on kolm olulist versiooni. SNMPv1 on algne versioon, uuemad versioonid SNMPv2c ja SNMPv3 on saanud täiendusi jõudluse, paindlikkuse ja turvalisuse osas.

SNMP on komponent internetiprotokollistiku rakenduskihis.

## Ülevaade ja kontseptsioon
Tüüpilises SNMP kasutusmallis on ühel või enamal administratiivsel arvutil – mida kutsutakse halduriks (inglise keeles *manager*) – ülesanne võrku seirata ja hallata võrgus paiknevaid seadmeid. Iga hallatav süsteem täidab tarkvarakomponenti, mida kutsutakse agendiks (inglise keeles *agent*). Agendi ülesanne on saata haldurile üle SNMP protokolli informatsiooni.

SNMP-ga hallatav võrk koosneb kolmest põhiosast.
* Hallatavad seadmed
* Agent – tarkvara, mida täidavad hallatavad seadmed
* Võrguseire jaam (inglise keeles *network management station*, NMS) – tarkvara, mida täidab haldur

## Protokolli detailid
SNMP opereerib Internetiprotokollistiku rakenduskihis. Kõik sõnumid transporditakse üle kasutajadatagrammi protokolli (UDP). SNMP agent kuulab UDP porti 161. Haldur võib päringuid saata kõigist saadavalolevatest lähteportidest, agent vastab samale pordile. Haldur võtab asünkroonseid teateid vastu pordi 162 kaudu. Kui SNMP protokolli kasutatakse koos transpordikihi turbeprotokolliga (TLS), võetakse päringuid vastu pordi 10161 kaudu ja teated saadetakse pordile 10162.

SNMPv1 spetsifitseeris viis põhilist protokolliandmeüksust (inglise keeles *protocol data unit*, lühend PDU), SNMPv2 lisas veel kaks – GetBulkRequesti  ja InformRequesti *–* ja SNMPv3 lisas andmeüksuse Report.

Järgnevalt on toodud kõik seitse SNMP protokolliandmeüksust:

**GetRequest**

Haldurilt agendile suunatud päring, millega küsitakse ühe või mitme muutuja väärtust. GetRequesti vastusena tagastatakse haldurile vastus Response hetke muutuja(te) väärtustega.

**SetRequest**

Haldurilt agendile suunatud päring, millega vahetatakse ühe või mitme muutuja väärtust hallatavas seadmes. SetRequesti puhul tagastatakse Response hetke (muudetud) muutuja(te) väärtustega.

**GetNextRequest**

Haldurilt agendile suunatud päring, millega küsitakse saadavalolevaid muutuja nimesid ja nende väärtuseid. GetNextRequesti vastusena tagastatakse Response halduse informatsiooni baasis leksikograafiliselt järgmise muutuja ja selle väärtusega.

**GetBulkRequest**

Optimeeritud versioon GetNextRequestist, millega küsitakse päringust mitu iteratsiooni. GetBulkRequesti puhul tagastatakse Response nende muutujate ja väärtuste komplektiga, mida päriti.

**Response**

Tagastab muutujad koos väärtustega vastusena halduri päringule. Oli SNMPv1 versioonis nimega GetResponse*.*

**Trap**

Asünkroonne teade agendilt haldurile, mis võimaldab agentidel haldurit olulistest sündmustest teavitada. Erineb eelnevatest selle poolest, et haldur ei küsi ilmutatult informatsiooni, vaid agent saadab selle ise haldurile.

**InformRequest**

Asünkroonne kviteeritud teade, kus erinevalt Trap-sõnumist on kättesaamise kinnitusega garanteeritud, et kaotsi läinud UDP paketid on tuvastatavad.

## Turvalisus
Alles kolmas versioon lisas protokollile autentimise ja krüpteerimise, mistõttu võis SNMP päringuid lugeda turvaliseks üksnes sisevõrgus.

Suurim SNMP turvalisusega seotud infoturbeskandaal leidis aset aastal 2002, kui Oulu Ülikooli teadlaste ja üliõpilaste uurimistöö tulemusel osutusid hetkega haavatavaks enamik teadaolevaid SNMP implementatsioone.

## Viited