Zarządzanie sieciami przy użyciu SNMP

Od czasu powstania w 1988 r., protokół SNMP stał się standardem zarządzania sieciowego. Ponieważ jest to proste rozwiązanie i wymaga do zastosowania niewielkiej ilości kodu, producenci mogą łatwo wbudowywać agenta SNMP do swoich produktów i dodawać własne, specyficzne funkcjonalności. SNMP nie jest więc kolejnym papierowym standardem, ale powszechnie wykorzystywanym rozwiązaniem.

Od czasu powstania w 1988 r., protokół SNMP stał się standardem zarządzania sieciowego. Ponieważ jest to proste rozwiązanie i wymaga do zastosowania niewielkiej ilości kodu, producenci mogą łatwo wbudowywać agenta SNMP do swoich produktów i dodawać własne, specyficzne funkcjonalności. SNMP nie jest więc kolejnym papierowym standardem, ale powszechnie wykorzystywanym rozwiązaniem.

SNMP (Simple Network Management Protocol) jest protokołem warstwy aplikacji, który służy do wymiany informacji zarządzających pomiędzy urządzeniami sieciowymi. SNMP pozwala administratorom zarządzać sieciową wydajnością, wyszukiwać i rozwiązywać problemy oraz planować rozwój sieci. Istnieją trzy wersje protokołu: SNMPv1, SNMPv2 oraz SNMPv3. Kolejne wersje oferują więcej funkcjonalności, a SNMPv3 daje dodatkowe możliwości związane z bezpieczeństwem.

Jak działa SNMP?

Zarządzalna sieć składa się z trzech komponentów: urządzenia zarządzanego, agenta oraz systemu zarządzania NMS (Network Management System). Urządzenia zarządzane to węzły sieciowe, które zawierają agenta SNMP i pracują w sieci. Urządzenia zbierają i zapamiętują specyficzne informacje, a następnie udostępniają NMS dane przy użyciu SNMP. Urządzenia zarządzane, czasami nazywane elementami sieciowymi, mogą być routerami, serwerami dostępowymi, przełącznikami, mostami czy drukarkami. Agent wbudowany w urządzenie ma lokalną bazę informacji o nazwie MIB (Management Information Base). System zarządzania NMS monitoruje i kontroluje zarządzane urządzenia.

Kluczowe elementy protokołu SNMP

Kluczowe elementy protokołu SNMP

Kluczowe elementy protokołu SNMP są oparte na trzech składnikach: zarządcy, agencie i bazie MIB. W każdej konfiguracji zarządca uruchamia oprogramowanie zarządzające SNMP. Urządzenia zarządzane są wyposażone w moduł oprogramowania agenta. Agent jest odpowiedzialny za realizację dostępu do lokalnej bazy obiektów MIB, które reprezentują zasoby i aktywność w danym węźle. Agent sterowany przez zarządcę pozwala na odczyt i zapis wartości bazy MIB. Przykładowym obiektem, który może zostać odczytany, jest licznik zliczający liczby pakietów wysłanych i otrzymywanych przez interfejs w danym węźle. Zarządca może śledzić te wartości, monitorując obciążenie łącza w danym punkcie sieci. Przykładowym obiektem, który może zostać ustawiony, jest status interfejsu. Zarządca może wyłączyć interfejs przez ustawienie wartości zgodnej z tym parametrem.

Koncepcja SNMP jest fantastycznie prosta. Platforma zarządzania sieciowego wysyła zapytanie do agenta, następnie agent zwraca odpowiedź. Zapytanie i odpowiedź odnoszą się do zmiennych dostępnych w oprogramowaniu agenta. Oprogramowanie zarządzające potrafi także ustawiać wartości dla konkretnych zmiennych. Zarządzane urządzenia są monitorowane i kontrolowane przy użyciu prostych komend SNMP, m.in.: read, write, trap. Komenda read jest używana przez NMS do monitorowania urządzeń. NMS sprawdza różne zmienne, które są obsługiwane przez zarządzane urządzenie. Komenda write jest używana przez NMS do kontroli zarządzanych urządzeń. NMS zmienia wartości parametrów urządzeń. Komenda trap jest używana przez urządzenie zarządzane do asynchronicznego zgłaszania zdarzeń do NMS. Kiedy wystąpi pewien typ zdarzenia, urządzenie wyśle komunikat trap do NMS. Trap pozwala oprogramowaniu zarządzającemu utrzymywać pełną wiedzę o znaczących wydarzeniach: restart, błąd interfejsu lub inne. Dodatkowe komendy pozwalają na możliwość sekwencyjnego pobierania informacji z tablicy zmiennych, przykładowo tablicy trasowania.

SNMP wykorzystuje głównie protokół TCP/IP. Protokół zarządzania pozwala klientom sieci opartej na TCP/IP wymieniać szczegółowe informacje o konfiguracji i statusie. Komunikacja SNMP przybiera formę Protocol Data Unit (PDU), która upraszcza wymianę informacji. Pierwsza wersja SNMP wspiera 5 możliwych PDU:

  • GetRequest/SetRequest - pobiera (GetRequest) listę obiektów i wartości, jakie mogą przyjąć (SetRequest).

  • GetResponse - informuje zarządzaną stację o wyniku GetRequest lub SetRequest, zwracając komunikat błędu lub listy załączonych wartości/zmiennych.

  • GetNextRequest - używany do pobierania danych z tablic, a także w przypadkach, gdy stacja zarządzająca nie zna dokładnej nazwy MIB istniejącego obiektu. GetNextRequest nie wymaga podania dokładnej nazwy - jeżeli obiekt o danej nazwie nie istnieje, zostanie zwrócony następny obiekt z bazy MIB.

  • Trap - komunikat PDU wysyłany przez agenta z jego własnej inicjatywy. Jest używany do poinformowania stacji zarządzającej o występującym zdarzeniu. Nowsze bazy MIB definiują obiekty zarządzające, które kontrolują sposób wysyłania komunikatów.

Jak wspomniano, zmienne agenta są zapamiętywane w bazie danych znanej jako MIB - Management Information Base (warto zapoznać się z RFC1213 i informacjami o MIB-II). Oprogramowanie zarządzające (lub narządzie z wierszami poleceń) odnajduje zmienną w MIB, używając identyfikatora obiektu. Aby utrzymać porządek oraz uprościć zadania agenta, identyfikatory obiektu (Object ID - OID) są zorganizowane hierarchicznie. Identyfikator jednoznacznie identyfikuje zarządzany obiekt w hierarchii MIB, która może być przedstawiona jako drzewo z korzeniem oraz poziomami, przypisanymi do różnych organizacji. Kropka reprezentuje korzeń (root), a liczby reprezentują kolejne węzły w drzewie obiektów. Najwyższy poziom w bazie MIB mają obiekty należące do różnych organizacji standaryzujących. Producenci mogą definiować prywatne bazy, zawierające zarządzane obiekty, dla swoich produktów. MIB, które nie przebyły procesu standaryzacji, są umieszczane w bazach eksperymentalnych.

Odczyt i zapis danych jest możliwy po uwierzytelnieniu łańcuchem społeczności SNMP (community) przez system zarządzający. Community jest prostym hasłem, niezbędnym w celu uzyskania dostępu do agenta SNMP.

Wersje protokołu SNMP

Hierarchia identyfikatorów obiektu

Hierarchia identyfikatorów obiektu

SNMPv1 jest pierwszą implementacją protokołu. Specyfikacja została opisana w RFC1157 i funkcjonuje w połączeniu z definicją struktury zarządzania informacją - SMI (Structure of Management Information). SNMPv1 używa protokołu UDP (User Datagram Protocol), IP (Internet Protocol), CLNS (Connectionless Network Service - OSI), DDP (Datagram-Delivery Protocol - AppleTalk) oraz IPX (Internet Packet Exchange Novell). SMI definiuje zasady dotyczące informacji zarządzających przy użyciu ASN.1 (Abstract Syntax Notation One). SNMPv1 SMI jest zdefiniowane w RFC1155. SMI tworzona jest przez trzy kluczowe specyfikacje: typ danych ASN.1, typ danych SMI oraz tabelę SNMP MIB.

SNMPv1 jest prostym protokołem zapytania/odpowiedzi. System zarządzania sieciowego wysyła zapytanie, a zarządzane urządzenie zwraca odpowiedź. Protokół implementuje cztery komendy: Get, GetNext, Set, Trap. Komenda Get jest używana przez NMS do pobrania wartości z jednego lub więcej obiektów. Jeżeli agent odpowiadając na Get nie dostarcza wartości dla wszystkich obiektów na liście, nie zwraca żadnej wartości. Operacja GetNext jest używana do odebrania wartości następnego obiektu w tabeli agenta. Komenda Set jest używana do ustawienia wartości obiektu w agencie. Operacja Trap jest używana przez agenta do asynchronicznego informowania NMS o znaczących zdarzeniach.

Aplikacje SNMPv1 świetnie sprawdzają się w prostym systemie zarządzania sieciowego. W celu rozbudowy tych prostych funkcjonalności w 1993 r. wprowadzono kolejną wersję protokołu SNMP. Standaryzacja protokołu SNMP w wersji 2 została zakończona w 1996 roku. W nowej implementacji zaszło kilka istotnych zmian. SNMPv2 pozwala na transfer dużej liczby wartości, a także rozszerza istniejące funkcje.

Wersja druga protokołu wprowadza następujące zmiany w stosunku do wersji pierwszej:

  • Typ danych - prosty typ danych w SNMPv1 był ograniczony do liczników i zmiennych pomiarowych. W SNMPv2 typ danych jest zdefiniowany przez ich odpowiednią implementację (Counter32, Counter64, Gauge32) oraz wprowadzenie nowego typu: UnInteger32 (całkowita liczba 32-bitowa baz znaku) oraz parametru OSIaddress.

  • Ustawianie wartości - dodane zostały zabezpieczenia dotyczące aktualizowania i ustawiania wartości. Ustawiając nową wartość, stacja musi upewnić się, czy operacja została poprawnie wykonana.

  • Zarządzanie wierszami w tabeli - SNMPv2 uniemożliwia zmiany parametru przez wielu zarządzających jednocześnie.


TOP 200