Protocol simplu de gestionare a rețelei

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică și telecomunicații Protocolul de gestionare a rețelei simple (SNMP) este un protocol de rețea fără conexiune care aparține suitei de protocol Internet definită de IETF (Internet Engineering Task Force). Funcționează la nivelul 7 al modelului OSI , utilizând protocolul UDP de strat de transport pe porturile 161 și 162, permițând simplificarea configurării , gestionării și supravegherii ( monitorizării ) dispozitivelor conectate într-o rețea (indiferent dacă sunt noduri de comutare interne, cum ar fi dispozitive de comutare) noduri de rețea sau terminale de utilizator), cu privire la toate acele aspecte care necesită acțiuni administrative ( gestionare ).

Arhitectură

Interacțiunea manager-agent în SNMP

Protocolul SNMP presupune că gestionarea unui dispozitiv de rețea este posibilă prin citirea / scrierea informațiilor elementare (denumite în continuare „obiecte gestionate”) care reprezintă configurația curentă a unui sistem. Conceptual cadrul definit de IETF pentru gestionarea rețelelor TCP / IP are trei componente fundamentale [1] :

  1. sistem de management ( manager );
  2. agent de management ( agent sau agent principal ), activ în dispozitiv și orice sub-agenți ;
  3. colectarea obiectelor gestionate .

Fiecare sistem gestionat (de exemplu un nod simplu, un router , o imprimantă sau orice alt dispozitiv care oferă o interfață de gestionare SNMP) găzduiește un agent de gestionare ( agent master ) și, de obicei, un număr de subagenti. Agentul principal are cel puțin rolul de intermediar între manager, o aplicație la distanță care ia decizii de management, de exemplu sub controlul direct al operatorului uman, și sub-agenții, executanți ai acestor decizii. Fiecare subagent este responsabil pentru implementarea deciziilor de management date de manager în contextul unui subsistem particular sau în raport cu un anumit aspect al sistemului gestionat. În sistemele care oferă mecanisme de gestionare deosebit de simple, agenții master și subagenți se pot îmbina într-o singură componentă software capabilă atât să comunice cu managerul, cât și să implementeze deciziile acestuia; în acest caz vom vorbi pur și simplu de agent.

Prin urmare, SNMP folosește o separare clară între protocolul de gestionare și structura obiectului gestionat. În arhitectura SNMP, o bază de date numită MIB ( Management Information Base ) este definită pentru fiecare subsistem, gestionată de subagentul corespunzător, care reprezintă starea subsistemului gestionat, sau mai bine zis, o proiecție a acestei stări limitată la aspectele pe care le dorește pentru a permite managementul. Este o bază de date care ar putea fi definită, împrumutând un termen din reflecție , „conectat cauzal”: cu alte cuvinte, fiecare modificare a MIB determină o modificare corespunzătoare a stării subsistemului reprezentat și invers. Asigurarea acestei proprietăți asupra MIB este funcția principală a subagentului care îl administrează.

Exemplu de arbore MIB

Accesul la MIB (citire și scriere) reprezintă interfața furnizată managerului pentru gestionarea sistemului. Fiecare MIB, deși variază în conținutul său specific, are aceeași structură generală sub forma unui copac și aceleași mecanisme generale de acces de către manager (citirea și scrierea datelor). Fiecare obiect din MIB este identificat printr-un ID obiect (OID). Un OID este reprezentat de o succesiune de numere întregi separate prin puncte. Reprezintă calea din interiorul arborelui MIB pentru a ajunge de la rădăcină la el. Nodurile de frunze ale MIB reprezintă obiecte gestionate . De exemplu, sistemul de nod SNMP MIB este reprezentat de OID 1.3.6.1.2.1.1.

Datorită conexiunii cauzale a MIB, este, prin urmare, posibil ca managerul să acționeze asupra stării subsistemului într-un mod care este în mare măsură independent de procedurile concrete care trebuie apoi puse în aplicare (de către subagent) pentru a extrage informațiile de stat reprezentate în MIB sau implementați modificări de stare în urma modificărilor din conținutul MIB. Astfel, de exemplu, puteți avea date MIB care reprezintă adresa IP a sistemului gestionat; pentru a schimba această adresă, managerul trebuie doar să acceseze MIB prin suprascrierea datelor corespunzătoare, indiferent de detaliile modului în care o astfel de modificare este apoi „implementată” efectiv pe sistemul gestionat prin agent sau subagent.

SNMP versiunea 1

Protocolul SNMP în prima sa versiune (SNMPv1) a fost definit pentru prima dată în 1988 în RFC 1067 și aprobat ca standard de internet în 1990 în RFC 1157 . Schema de interacțiune fundamentală este de tip cerere-răspuns. Protocolul prevede trei tipuri de mesaje de solicitare, trimise de manager agenților sistemelor gestionate:

  • Get-request , prin care managerul recuperează valoarea unui obiect;
  • Get-next-request , cu care recuperează următorul obiect (în ordinea lexicografică definită în MIB);
  • Set-request , prin care managerul atribuie o valoare unui obiect.

Cele trei tipuri de mesaje de solicitare corespund unui singur format de mesaj de răspuns: Get-response .

Protocolul oferă un alt tip de mesaj, Capcană , trimis de un agent SNMP unui manager predefinit pentru notificarea asincronă a evenimentelor:

  • Trap , pentru notificarea asincronă către managerul unui eveniment.

Mesajele SNMPv1 constau din două părți: un antet și o unitate de date de protocol (PDU) . Antetul este format din:

  • un număr de versiune;
  • un nume de comunitate ( șir de comunitate ).

Numele comunității este utilizat în SNMPv1 ca formă de bază de autentificare. SNMP presupune că dispozitivele dintr-o rețea sunt grupate în comunități , fiecare identificată printr-un șir de 32 de octeți . Un singur dispozitiv poate aparține mai multor comunități. Agentul SNMP acceptă cererile numai de la un manager din aceeași comunitate care se identifică cu același șir. Deoarece șirul comunității este transmis în text clar în mesajele SNMP, protocolul SNMPv1 este considerat de fapt nesigur și majoritatea dispozitivelor împiedică setarea operațiilor prin SNMPv1.

Format mesaj SNMPv1

Formatul general al mesajelor SNMPv1 este după cum urmează.

Versiune Comunitate PDU SNMP

Format PDU pentru mesajele de solicitare SNMPv1 ( Get-request / Get-next-request / Set-request ):

Tip PDU Solicitați un ID 0 0 Legături variabile

Format PDU pentru mesajele de răspuns SNMPv1 ( Get-response ):

Tip PDU Solicitați un ID Starea erorii Indice de eroare Legături variabile
  • ID cerere: utilizat pentru a asocia cererile și răspunsurile;
  • Stare eroare: indică un tip de eroare (pentru comenzile Get / GetNext / Set este setat la 0);
  • Index eroare: asociază eroarea cu o anumită variabilă specificată în câmpul Variable Bindings (pentru comenzile Get / GetNext / Set este setat la 0);
  • Legături variabile: asociați numele variabilei cu valoarea sa curentă.

Format pentru PDU-uri SNMPv1 Trap:

Tip PDU Afacere Adresa agentului Tipul generic de capcană Codul specific al capcanei Timestamp-ul Legături variabile
  • Întreprindere: identifică tipul de obiect care a generat capcana;
  • Adresa agentului: returnează adresa acestui obiect;
  • Tip de capcană generică: returnează un tip de capcană generic;
  • Cod specific trap: returnează codul specific trap;
  • Marcă de timp: returnează timpul scurs între cerere și generarea capcanei;
  • Legături variabile: generează o listă de variabile care conțin informații despre capcană.
Mesaje SNMPv1

RFC-uri legate de SNMPv1

Specificațiile protocolului SNMPv1, definite de IETF, au suferit numeroase actualizări de-a lungul anilor. Acestea sunt conținute într-un număr de documente RFC . Primele RFC-uri referitoare la SNMPv1 datează din 1988:

  • RFC 1065 - Structura și identificarea informațiilor de management pentru internet-uri bazate pe TCP / IP
  • RFC 1066 - Baza de informații de gestionare pentru gestionarea rețelei de internet bazate pe TCP / IP
  • RFC 1067 - Un protocol simplu de gestionare a rețelei

Aceste documente au fost ulterior (1990) învechite de:

  • RFC 1155 - Structura și identificarea informațiilor de gestionare pentru internet-uri bazate pe TCP / IP
  • RFC 1156 - Baza de informații de gestionare pentru gestionarea rețelei de internet bazate pe TCP / IP
  • RFC 1157 - Un protocol simplu de gestionare a rețelei

În cele din urmă, după un timp scurt, RFC 1156 a fost înlocuit cu documentul:

  • RFC 1213 - Versiunea 2 a bazei de informații de management (MIB-2) pentru gestionarea rețelei de internet bazate pe TCP / IP

SNMP versiunea 2

Versiunea 2 a protocolului SNMP (SNMPv2) a fost propusă în 1993 ( RFC 1448 ), revizuită în 1996 ( RFC 1905 ) și ulterior modificată în 2002 ( RFC 3416 ).

SNMPv2 adaugă noi mecanisme de securitate, suport pentru o nouă arhitectură de gestionare distribuită și introduce două noi tipuri de mesaje [2] :

  • Informare : permite unui manager de management să prindă informațiile MIB către un alt agent care răspunde cu un răspuns PDU „Fără eroare” ca confirmare de primire
  • Get-bulk : folosit de manager pentru a prelua cantități mari de date, evitând seriile redundante de Get și Get-Next.

Format mesaj SNMPv2

Mesajele SNMPv2 au un format diferit de cel definit pentru SNMPv1.

Versiune Antet Securitate Context-ID Context-Nume PDU SNMP

Formatul PDU al mesajelor Inform este același cu cel al mesajelor Get , Get-next și Set , în timp ce formatul mesajelor Get-bulk este diferit și este prezentat mai jos.

Formatul PDU în bloc :

Tip PDU Solicitați un ID Non-repetori Repetiții maxime Legături variabile
  • Tipul PDU, ID-ul cererii și legăturile variabile au aceeași funcție ca și versiunea anterioară
  • Non-repetitoarele și repetările maxime definesc numărul de valori returnate de cerere

Management Architecture

SNMPv2 acceptă atât gestionarea centralizată a rețelei SNMPv1, cât și o nouă strategie distribuită bazată pe interacțiunile manager-manager. Într-o arhitectură distribuită, unele sisteme pot funcționa atât în ​​rolul de manager, cât și în cel de agent. Când un sistem acționează ca un agent, acceptă comenzi de la un manager de nivel superior. Aceste comenzi pot solicita informații stocate local în managerul care acționează ca agent sau pot solicita informații de la un agent subordonat pentru a acționa ca intermediar (proxy).

Siguranță

SNMPv2 rezolvă problema lipsei de autentificare, cea mai gravă deficiență de securitate a SNMPv1. Lipsa de autentificare este o problemă de securitate SNMPv1 gravă, ca urmare a care SNMPv1 este utilizat în rețelele corporative numai în scopul monitorizării (Obțineți operațiuni numai).

SNMPv2 introduce mecanisme pentru a preveni următoarele tipuri de amenințări la adresa securității [3] :

  • Mascare (în italiană, pentru a deghiza): o entitate neautorizată poate efectua operațiuni de administrare prin asumarea identității unei entități autorizate;
  • Modificarea informațiilor (în italiană, modificarea informațiilor): o entitate neautorizată poate modifica un mesaj trimis de o entitate autorizată;
  • Secvență mesaj și modificarea momentului (în limba italiană, modificarea secvenței și sincronizarea mesajelor): o entitate neautorizată poate reordona, întârziere sau copia și trimite din nou un mesaj prin exploatarea inconsistența protocolului stratului de transport UDP;
  • Divulgare (în italiană, divulgare): o entitate neautorizată poate afla valorile obiectelor gestionate monitorizând mesajele schimbate între manager și agent.

SNMPv2 permite criptarea mesajelor pentru a asigura confidențialitatea conținutului și adaugă un câmp de rezumat la formatul mesajului pentru a asigura autentificarea între două entități.

SNMPv2c

Protocolul de gestionare a rețelei simplă bazat pe comunitate versiunea 2 (SNMPv2c), definit în RFC 1901 , elimină sistemul de securitate complex introdus de SNMPv2 prin reutilizarea șirului comunitar din versiunea 1. SNMPv2c, așa cum este descris, este incompatibil cu SNMPv1 din două motive fundamentale: formatul mesajului și operațiunile. Mesajele SNMPv2c, de fapt, utilizează un alt antet și PDU decât versiunea 1. În plus, SNMPv2c folosește operațiile GetBulk și Inform care nu sunt prezente în versiunea anterioară. Două strategii posibile pentru coexistența între cele două versiuni sunt: ​​agent proxy și sistem de gestionare a rețelei bilingv. [4]

Agent proxy

Soluția proxy ar trebui utilizată pentru a permite comunicarea între entitățile care acceptă diferite versiuni ale mesajelor SNMP. Comunicarea este asigurată prin traducerea mesajelor PDU.

În cazul în care un mesaj SNMPv2 trebuie trimis unui agent care acceptă SNMPv1, sunt utilizate următoarele reguli de traducere:

  • Get-Bulk-Request - Agentul proxy trebuie să seteze câmpurile NonRepeaters și MaxRepetitions la 0 și să seteze câmpul PDU Type al mesajelor la Get-Next-Request.
  • Get-Response - Agentul proxy, în cazul în care nu există erori, transmite mesajul nealterat, în caz de erori, urmați procedura definită în RFC 3584 .
  • Trap - Agentul proxy mapează mesajele trap ale diferitelor versiuni și redirecționează mesajul.

SNMP versiunea 3

SNMPv3 a fost definit de IETF într-o serie de RFC produse din 1998. SNMPv3 nu anulează versiunile anterioare, dar adaugă mecanisme în RFC 3414 care permit următoarele trei niveluri de securitate în comunicarea manager-agent [5] :

  • comunicare fără autentificare sau confidențialitate ( NoAuthNoPriv );
  • comunicare cu autentificare și fără confidențialitate ( AuthNoPriv );
  • comunicare cu autentificare și confidențialitate ( AuthPriv ).

Prin aceste mecanisme, protocolul este capabil să garanteze:

  • Integritatea mesajului: asigură faptul că mesajele nu sunt modificate în timpul tranzitului în rețea;
  • Autentificare: destinatarul poate verifica dacă mesajul provine dintr-o sursă validă;
  • Criptare: expeditorul criptează conținutul mesajului într-un mod care nu este de înțeles de către o terță parte neautorizată.

Tabelul de mai jos prezintă combinațiile posibile ale modelelor de securitate [6] .

Nivel Autentificare Criptare Urmări
NoAuthNoPriv Nume de utilizator Nu Folosiți un șir (Nume utilizator) pentru

autentificare

AuthNoPriv Algoritmul de rezolvare a mesajelor 5 (MD5)

o Algoritm securizat Hash (SHA)

Nu Autentificați-vă prin

Hashed Message Authentication Code (HMAC) -MD5 sau

Algoritmi HMAC-SHA

AuthPriv MD5 sau SHA Standard de criptare a datelor

(DES)

Adăugați criptare DES la șablonul authNoPriv

56 de biți bazat pe înlănțuirea blocurilor cifrate (CBC) -DES (DES-56)

RFC-uri legate de SNMPv3

Există multe RFC-uri legate de SNMPv3. Specificațiile protocolului sunt ambalate în secvențe RFC standard, care au fost supuse modificărilor de-a lungul anilor. Un prim set de RFC-uri legate de SNMPv3 a fost produs în 1998:

  • RFC 2271 - O arhitectură pentru descrierea cadrelor de gestionare SNMP
  • RFC 2272 - Procesarea și expedierea mesajelor pentru protocolul simplu de gestionare a rețelei (SNMP)
  • RFC 2273 - Aplicații SNMP
  • RFC 2274 - Model de securitate bazat pe utilizator (USM) pentru versiunea 3 a protocolului de gestionare simplă a rețelei (SNMPv3)
  • RFC 2275 - Model de control al accesului bazat pe vizualizare (VACM) pentru protocolul de gestionare simplă a rețelei (SNMP)

Rețineți că RFC 2271 a înlocuit RFC 2261 anterior câteva zile mai târziu. Un al doilea set de RFC-uri legate de SNMPv3 a fost produs încă din 1999:

  • RFC 2570 - Introducere în versiunea 3 a Internet-standard Network Management Framework
  • RFC 2571 - O arhitectură pentru descrierea cadrelor de gestionare SNMP
  • RFC 2572 - Prelucrarea și expedierea mesajelor pentru protocolul simplu de gestionare a rețelei (SNMP)
  • RFC 2573 - Aplicații SNMP
  • RFC 2574 - Model de securitate bazat pe utilizator (USM) pentru versiunea 3 a protocolului de gestionare simplă a rețelei (SNMPv3)
  • RFC 2575 - Model de control al accesului bazat pe vizualizare (VACM) pentru protocolul de gestionare simplă a rețelei (SNMP)
  • RFC 2576 - Coexistența între versiunea 1, versiunea 2 și versiunea 3 a cadrului de gestionare a rețelei standard pentru Internet

În cele din urmă, o nouă secvență RFC a fost produsă în 2002:

  • RFC 3410 - Introducere în versiunea 3 a Internet-standard Network Management Framework
  • RFC 3411 - O arhitectură pentru descrierea cadrelor de management ale protocolului de gestionare a rețelei simple (SNMP)
  • RFC 3412 - Procesarea și expedierea mesajelor pentru protocolul simplu de gestionare a rețelei (SNMP)
  • RFC 3413 - Aplicații SNMP
  • RFC 3414 - Model de securitate bazat pe utilizator (USM) pentru versiunea 3 a Protocolului simplu de gestionare a rețelei (SNMPv3)
  • RFC 3415 - Model de control al accesului bazat pe vizualizare (VACM) pentru protocolul de gestionare simplă a rețelei (SNMP)
  • RFC 3417 - Mape de transport pentru protocolul simplu de gestionare a rețelei (SNMP)

Documentul privind coexistența între diferite versiuni de SNMP (inițial RFC 2576 ) a fost actualizat ca RFC 3584 în 2003. În cele din urmă, în 2009, alte RFC-uri referitoare la SNMPv3 au fost produse de IETF:

  • RFC 5590 - Subsistem de transport pentru protocolul simplu de gestionare a rețelei (SNMP)
  • RFC 5591 - Model de securitate a transportului pentru protocolul simplu de gestionare a rețelei (SNMP)
  • RFC 5592 - Model de transport securizat Shell pentru protocolul de gestionare simplă a rețelei (SNMP)

Implementări

Există mai multe implementări ale protocolului SNMP atât pentru rolurile de manager, cât și pentru cele de agent.

Biblioteci SNMP

Mai multe implementări sunt sub forma unei biblioteci de programare , concepută pentru utilizarea SNMP în programe mai complexe. Aceste biblioteci sunt disponibile pentru cele mai comune limbaje de programare.

  • netsnmpj [7] (Java, open-source)
  • SNMP4J [8] (Java, open-source)
  • PySNMP [9] (Python, open-source)
  • Biblioteca #SNMP [10] (C #, open-source)

Instrument SNMP

Alte implementări sunt sub formă de linie de comandă sau instrumente de interfață grafică.

O suită de instrumente open-source este Net-SNMP . Net-SNMP este o colecție de instrumente de linie de comandă care pot fi utilizate atât în ​​Unix / Linux, cât și în Windows. Suportă versiunile v1-v2c-v3 ale protocolului SNMP. Mai jos este un exemplu simplu de utilizare a comenzii snmpget incluse în pachetul Net-SNMP.

 snmpget -v 2c -c public 149.144.21.254 system.sysDescr.0

Comanda vă permite să recuperați valoarea variabilei sysDescr a gazdei 149.144.21.254. Opțiunea -v specifică versiunea protocolului (în acest caz 2c), în timp ce opțiunea -c setează șirul comunității pentru accesarea dispozitivului (în acest caz public). Este important să rețineți că sistemul și sysDescr sunt doar aliasuri care permit accesul la valoarea variabilei, de fapt, amintiți-vă că un MIB are întotdeauna o structură de arbore și pentru a accesa un nod trebuie să specificați calea pentru a ajunge la el.

Comanda poate fi apoi rescrisă după cum urmează, specificând întreaga cale folosind ID-urile obiect ale variabilelor.

 snmpget -v 2c -c public 149.144.21.254 1.3.6.1.2.1.1.1.0

Zero-ul final trebuie întotdeauna specificat deoarece variabilele ar putea fi simple scalare sau tabele (în acest caz ar trebui specificat rândul care trebuie accesat).

Produse comerciale

  • SunNet Manager [11]
  • IBM Tivoli NetView [12]

Aplicații

Monitorizare SNMP

Una dintre principalele utilizări ale SNMP este monitorizarea senzorilor sau detectarea continuă a parametrilor referitori la echipamente sau servicii utilizând senzori (atât fizici, cât și virtuali). Această aplicație este utilizată, de exemplu, în monitorizarea resurselor IT.

Notă

  1. ^ RFC 3411 - O arhitectură pentru descrierea cadrelor de gestionare a protocolului de gestionare a rețelei simple (SNMP)
  2. ^ RFC 3416 - Versiunea 2 a operațiunilor protocolului Protocolul simplu de gestionare a rețelei (SNMP)
  3. ^ http://www.net130.com/tutorial/other/Internet%20Overview.pdf– Capitolul 8-Managementul rețelei
  4. ^ RFC 3584 - Coexistența între versiunea 1, versiunea 2 și versiunea 3 a cadrului de gestionare a rețelei standard pentru Internet
  5. ^ RFC 3414 - Model de securitate bazat pe utilizator (USM) pentru versiunea 3 a Protocolului simplu de gestionare a rețelei (SNMPv3)
  6. ^ https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp -snmpv3.pdf - CISCO SNMP versiunea 3
  7. ^ http://netsnmpj.sourceforge.net/ netsnmpj: SNMP open source pentru Java
  8. ^ http://www.snmp4j.org/ SNMP4J - API-ul SNMP orientat pe obiecte pentru administratorii și agenții Java
  9. ^ http://pysnmp.sourceforge.net/ PySNMP
  10. ^ https://www.nuget.org/packages/Lextm.SharpSnmpLib/ #SNMP Library
  11. ^ https://docs.oracle.com/cd/E19957-01/802-4523/802-4523.pdf SunNet Manager 2.2.3 Manual de referință
  12. ^ https://www.ibm.com/us-en/marketplace/ibm-tivoli-netview-for-zos IBM Tivoli NetView for z / OS

Bibliografie

Elemente conexe

Alte proiecte

linkuri externe

  • Întrebări frecvente SNMP partea 1 ( TXT ), la snmp.com .
  • Întrebări frecvente SNMP partea 2 ( TXT ), la snmp.com .
  • RFC 3410 - Declarații de introducere și aplicabilitate pentru Internet Standard Framework Management
  • RFC 3412 - Standard 62 - Procesarea și expedierea mesajelor pentru protocolul simplu de gestionare a rețelei (SNMP)
  • RFC 3413 - Standard 62 - Aplicație SNMP (Simple Network Management Protocol)
  • RFC 3414 - Standard 62 - Model de securitate bazat pe utilizator (USM) pentru versiunea 3 a Protocolului simplu de gestionare a rețelei (SNMPv3)
  • RFC 3415 - Standard 62 - Model de control al accesului bazat pe vizualizare (VACM) pentru protocolul simplu de gestionare a rețelei (SNMP)
  • RFC 3417 - Standard 62 - Mapări de transport pentru protocolul de gestionare simplă a rețelei (SNMP)
  • RFC 3418 - Standard 62 - Baza de informații de gestionare (MIB) pentru protocolul simplu de gestionare a rețelei (SNMP)
  • RFC 3512 - Configurarea rețelelor și dispozitivelor cu protocolul de gestionare a rețelei simple (SNMP)
  • Implementare SNMP open source , pe net-snmp.org .
  • Netsnmpj: SNMP open source pentru Java , la netsnmpj.sourceforge.net .
  • OpenSNMP: motor SNMPv3 multi-threaded , pe sourceforge.net .
Controlul autorității LCCN ( EN ) sh93003801
Telematică Portal telematic : accesați intrări Wikipedia care vorbesc despre rețele, telecomunicații și protocoale de rețea