Protokół SNMP

ITpedia

SNMP (Simple Network Management Protocol) jest obecnie najczęściej stosowanym protokołem komunikacyjnym używanym do zarządzania sieciami komputerowymi.

Dzięki wielu zaletom (takim jak: łatwość implementacji, dostępność wielu aplikacji opartych na tym protokole i niewielkie wymagania odnośnie sprzętu i przepustowości łączy sprzęgających zarządzane węzły sieci) protokół zyskał szerokie poparcie, zdecydowanie wygrywając rywalizację z protokołem CMIP (Common Management Information Protocol). Nie ma on obecnie na rynku poważnego rywala.

Protokół powstał w 1989 r. z inicjatywy organizacji Internet Activities Board, a jego protoplastą był prosty protokół SGMP (Simple Gateway Management Protocol).

SNMP używa do przesyłania pakietów w sieciach Internet (trzeba też pamiętać, że na rynku są dostępne aplikacje zarządzania SNMP wspierające inne rodzaje sieci, np. IPX) dwóch protokołów komunikacyjnych wchodzących w skład TCP/IP: protokołu IP (Internet Protocol; warstwa sieci w modelu OSI) i UDP (User Datagram Protocol – bezpołączeniowy protokół posługujący się tzw. datagramami; warstwa transportu w modelu OSI). Protokół SNMP jest opisany w RFC 1157.

Spis treści

Interfejs SNMP

W interfejsy SNMP są wyposażone zarówno stacje zarządzające, jak i zarządzane węzły sieci. Mówiąc najprościej, interfejs jest zbiorem poleceń wysyłanych do zarządzanej stacji (celem uzyskania przez stację zarządzającą interesujących ją informacji). Stacja zarządzana z kolei wysyła w pewien uporządkowany sposób te informacje do stacji zarządzającej. Czyli jest to swego rodzaju prosty język, za pomocą którego zainstalowane w sieci węzły i urządzenia porozumiewają się z pakietem SNMP. I tak np. aplikacja zarządzająca może wygenerować polecenie GetRequest, które zażąda od węzła sieci podania liczby występujących kolizji pakietów, jaką węzeł zarejestrował na porcie numer X. Węzeł odczytuje wtedy wartość jednej ze zmiennych bazy danych MIB i odsyła ją do stacji zarządzającej, posiłkując się poleceniem protokołu SNMP GetResponse.

Polecenia protokołu SNMP

SNMP używa do pracy prostego zestawu poleceń, które monitorują pracę urządzeń w sieci.

Urządzenia wysyłają do konsoli zarządzania dane (zwane też obiektami bazy danych MIB), pozwalające administratorowi systemu sprawować kontrolę nad stacją.

SNMP/UDP

SNMP używa do przesyłania pakietów protokołu UDP, zlokalizowanego w czwartej od dołu warstwie systemu otwartego OSI (warstwa transportu). Protokół UDP (User Datagram Protocol) służy do świadczenia usług komunikacyjnych w trybie bezpołączeniowym, używanym przez zarządcę do porozumiewania się z zarządzanymi stacjami.

Agent zastępczy

W aplikacjach SNMP zarządzających sieciami spotkamy się nieraz z definicją agenta proxy. Agent tego rodzaju jest instalowany w tych węzłach sieci czy stanowiskach pracy, które nie wspierają standardowych rozwiązań proponowanych przez SNMP. Aby jednak można było nimi zarządzać przy użyciu aplikacji SNMP wymyślono agenta zastępczego, zwanego proxy. Jest to właściwie specyficznego rodzaju konwerter (oprogramowanie), tłumaczący polecenia generowane przez system SNMP na postać zrozumiałą przez zarządzaną stację. Jest to bardzo cenna opcja, pozwalająca zarządzać tymi urządzeniami sieciowymi, których konstrukcja nie jest przygotowana na wsparcie systemu SNMP.

Jednostki PDU

Jednostki PDU poleceń GetRequest, GetNextRequest, SetRequest i GetResponse zawierają następujące pola:

  1. Identyfikator przesyłanej wiadomości (aby wiadomości tego samego rodzaju, np. Get-Request, były rozróżnialne).
  2. Kod błędu (standardowa wartość zero to brak błędu; wartość różna od zera świadczy o błędzie).
  3. Dodatkowa informacja o błędzie (wskazanie zmiennej, która spowodowała błąd).
  4. Lista zmiennych.

Zalety i wady SNMP

SNMP ma zwoje zalety i wady, ale popularność tego protokołu świadczy o tym, że tych pierwszych jest dużo więcej. Niewątpliwymi zaletami protokołu są prostota w pracy i niski koszt implementacji aplikacji opartych na tym standardzie. Poza tym użytkownik ma pewność, że standard został zaakceptowany przez cały przemysł informatyczny i znakomita większość produktów sieciowych pracuje zgodnie z SNMP. Najważniejszą z wad SNMP wydaje się być brak mechanizmów zapewniających danym przesyłanym przez ten protokół odpowiedniego poziomu bezpieczeństwa.

Do głównych zalet SNMP zaliczyć należy:

  • Stosunkowo małe obciążenie sieci pakietami. SNMP używa do komunikowania się ze stacjami prostego bezpołączeniowego protokołu UDP (wymieniającego informacje w trybie żądanie/odpowiedź), przez co ruch pakietów w sieci jest ograniczony do niezbędnego minimum.
  • Instalowane w węzłach sieci programy typu agent zajmują mało miejsca w pamięci.
  • Protokół pozwala kontrolować liczbę generowanych przez stację zarządzania powtórzeń żądań obsługi oraz czas oczekiwania (time out) na odpowiedzi urządzeń.
  • Cenną zaletą protokołu SNMP jest możliwość zbierania od zarządzanych węzłów informacji typu trap (wychwytywanie konkretnych zdarzeń). Pozwala to węzłom sieci przesyłać do zarządcy te informacje, które są szczególnie cenne dla stacji zarządzania (rodzaj zdarzenia jest wcześniej definiowany przez administratora systemu).

Jeśli chodzi o wady, to można wymienić trzy podstawowe zastrzeżenia zgłaszane pod adresem protokołu SNMP:

  • Skomplikowana praca samego agenta.
  • Ograniczanie przepustowości sieci.
  • Brak mechanizmów bezpieczeństwa.

SNMPv2

Główna wada protokołu SNMP polega na tym, że nie gwarantuje on danym odpowiedniego poziomu bezpieczeństwa. Nie ma tu np. możliwości weryfikacji czy szyfrowania poleceń PDU. Aby usprawnić pracę aplikacji zarządzających sieciami, zaproponowano najpierw protokół S-SNMP (Secure SNMP), który oferował wiele rozwiązań nieobecnych w protokole SNMP. Jednak protokół ten nie był w pełni kompatybilny z SNMP, więc nie zyskał większej popularności. Następnie zaproponowano SNMPv2. Największa zmiana w stosunku do SNMP polega na wprowadzeniu dwóch nowych jednostek PDU:

  • GetBulkRequest (możliwość odczytywania całego bloku informacji po wygenerowaniu jednego zapytania).
  • InformRequest (możliwość wymiany informacji między różnymi stacjami zarządzania).

Wydawałoby się, że protokół SNMPv2 powinien odnieść sukces. Niestety, nic takiego się nie stało. Aplikacji zarządzania opartych na tym standardzie jest bardzo mało. Niektórzy twierdzą, że SNMPv1 jest tak dobry, że nowe opcje wprowadzone do SNMPv2 są za mało atrakcyjne, aby zachęcić producentów systemów zarządzania do implementowania tego protokołu.

-
-