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 

Internetiprotokollid