Simple Network Management Protocol – rodzinaprotokołów sieciowych wykorzystywanych do zarządzania urządzeniami takimi jakroutery,przełączniki,komputery czycentrale telefoniczne za pośrednictwem sieciIP. Do transmisji wiadomości SNMP wykorzystywany jest głównie protokółUDP: standardowo port 161 wykorzystywany jest do wysyłania i odbierania żądań, natomiast port 162 wykorzystywany jest do przechwytywania sygnałówtrap od urządzeń. Możliwe jest także wykorzystanie innych protokołów do przekazywania żądań, na przykładTCP[1].
Istnieją trzy wersje protokołu:
- SNMPv1 – pierwsza wersja, która została opublikowana w 1988 roku w dokumencieRFC 1067 ↓ (z późniejszymi zmianami wRFC 1098 ↓ orazRFC 1157 ↓). W tej wersji protokołu bezpieczeństwo oparte jest na tak zwanychcommunities, które są pewnego rodzaju nieszyfrowanymi hasłami umożliwiającymi zarządzanie urządzeniem,
- SNMPv2 – eksperymentalna wersja protokołu, określana także SNMPv2c, opisana w dokumencieRFC 1901 ↓,
- SNMPv3 – obsługującauwierzytelnianie oraz szyfrowaną komunikację.
Każdy komunikat dotyczy określonej zmiennej, tzw.OID (ang.Object IDentifier). Dla przykładu zmienna OID o nazwie sysUpTime (czas pracy urządzenia od ostatniego włączenia) ma postać 1.3.6.1.2.1.1.3.0, co odpowiada jej adresowi w drzewieMIB.
Protokół SNMP zakłada istnienie w zarządzanej sieci dwóch rodzajów urządzeń:zarządzających izarządzanych. Urządzenie (komputer) jestzarządzającym (tzw.NMS,ang. Network Management Station), gdy jest na nim uruchomiony odpowiedni program,manager SNMP (zarządca SNMP). Urządzenie jestzarządzane, jeśli działa na nim programagent SNMP.
W procesie zarządzania używane sąbazy MIB (ang.Management Information Base – baza informacji zarządzania), czyli zbiory zmiennych, któremanager SNMP w zależności od uprawnień może odczytać lub zmienić. W tym celumanager SNMP kontaktuje się zagentem na danym zarządzanym urządzeniu, wykorzystując jedno z dwóch wcześniej skonfigurowanych haseł:
- hasło odczytu, tzw. public_community,
- hasło zapisu, tzw. private_community.
Odczytanie wybranej zmiennej dajemanagerowi określonąinformację o stanie danego elementu sieci, podczas gdy zapis do danej zmiennej pozwala mu na sterowanie zachowaniem się urządzenia w sieci.
Oprócz operacji odczytu i zapisu zmiennych wagencie przezmanagera istnieje również możliwość takiego skonfigurowaniaagenta, aby sam poinformował danegomanagera o zmianie swojego stanu w przypadku zajścia określonego zdarzenia. Odbywa się to przy pomocy wysyłanego przezagenta komunikatu Trap lub (od wersji drugiej protokołu SNMP) przy pomocy komunikatu Inform.
SNMP domyślnie działa na porcie 161TCP orazUDP.
Komunikaty Trap są domyślnie wysyłane do portu 162 TCP lub UDP.
Budowa komunikatów protokołu SNMP zdefiniowana jest przy pomocy notacji zwanejAbstract Syntax Notation One (oznaczanejASN.1). Sposobem kodowania struktur danych komunikatów SNMP jest uproszczonyBER.
SNMP to obecnie najpopularniejszy protokół służący do zarządzania sieciami. Swoją popularność zawdzięcza następującym zaletom:
- Stosunkowo małe dodatkowe obciążenie sieci generowane przez sam protokół,
- Niewielka liczba poleceń własnych obniża koszty urządzeń go obsługujących,
- Niskie koszty wdrożenia do eksploatacji.
Główne wady SNMP:
- Brak zapewnienia bezpieczeństwa przesyłanym danym (SNMP w wersji pierwszej i drugiej).
W wersji pierwszej protokołu dostępne są następujące komunikaty:
- Get,
- GetNext,
- Set,
- Response,
- Trap.
W wersji drugiej, oprócz komunikatów wersji pierwszej dostępne są:
Wersja trzecia nie dodaje do protokołu nowych komunikatów.
Kwestie bezpieczeństwa są największym problemem użytkowników protokołu SNMP w wersji pierwszej i drugiej. Jedyne zabezpieczenie w tym protokole, tzw.community string będącyde facto hasłem, jest wysyłany poprzezsieć w postaci niezaszyfrowanej. Pozwala to na jego podsłuchanie przy użyciu programów typusniffer.
SNMPv3 znacząco poprawia bezpieczeństwo protokołu poprzez wprowadzenie bardziej zaawansowanych metoduwierzytelniania.
- ↑Douglas Mauro, Kevin Schmidt: Essential SNMP. O'Reilly, 2001. Brak numerów stron w książce
- SimpleWeb. simpleweb.org. [zarchiwizowane ztego adresu (2021-04-27)].
- SNMP FAQ część 1
- SNMP FAQ część 2
- J.D.J.D. Case J.D.J.D.,M.M. Fedor M.M.,M.L.M.L. Schoffstall M.L.M.L.,J.J. Davin J.J.,Simple Network Management Protocol,RFC 1067,IETF, sierpień 1988,DOI: 10.17487/RFC1067,ISSN2070-1721,OCLC 943595667 (ang.).
- J.D.J.D. Case J.D.J.D.,M.M. Fedor M.M.,M.L.M.L. Schoffstall M.L.M.L.,J.J. Davin J.J.,Simple Network Management Protocol (SNMP),RFC 1098,IETF, kwiecień 1989,DOI: 10.17487/RFC1098,ISSN2070-1721,OCLC 943595667 (ang.).
- J.D.J.D. Case J.D.J.D.,M.M. Fedor M.M.,M.L.M.L. Schoffstall M.L.M.L.,J.J. Davin J.J.,Simple Network Management Protocol (SNMP),RFC 1157,IETF, maj 1990,DOI: 10.17487/RFC1157,ISSN2070-1721,OCLC 943595667 (ang.).
- J.J. Case J.J.,K.K. McCloghrie K.K.,M.M. Rose M.M.,S.S. Waldbusser S.S.,Introduction to Community-based SNMPv2,RFC 1901,IETF, styczeń 1996,DOI: 10.17487/RFC1901,ISSN2070-1721,OCLC 943595667 (ang.).