Simple Network Management Protocol: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
PG (dyskusja | edycje)
drobne redakcyjne
Linia 1: Linia 1:
'''Simple Network Management Protocol''' – rodzina [[protokoły komunikacyjne|protokołów]] sieciowych wykorzystywanych do zarządzania urządzeniami takimi jak [[router]]y, [[Przełącznik sieciowy|przełączniki]], [[komputer]]y czy [[centrala telefoniczna|centrale telefoniczne]] za pośrednictwem sieci [[Internet Protocol|IP]]. 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łów ''trap'' od urządzeń. Możliwe jest także wykorzystanie innych protokołów do przekazywania żądań, na przykład [[TCP (protokół)|TCP]]<ref name="Essential_SNMP">{{cytuj książkę| autor=Douglas Mauro |autor2=Kevin Schmidt |tytuł=Essential SNMP |wydawca=O'Reilly |rok=2001}}</ref>.
'''Simple Network Management Protocol''' – rodzina [[Protokół komunikacyjny|protokołów]] sieciowych wykorzystywanych do zarządzania urządzeniami takimi jak [[router]]y, [[Przełącznik sieciowy|przełączniki]], [[komputer]]y czy [[centrala telefoniczna|centrale telefoniczne]] za pośrednictwem sieci [[Protokół internetowy|IP]]. Do transmisji wiadomości SNMP wykorzystywany jest głównie protokół [[User Datagram Protocol|UDP]]: standardowo port 161 wykorzystywany jest do wysyłania i odbierania żądań, natomiast port 162 wykorzystywany jest do przechwytywania sygnałów ''trap'' od urządzeń. Możliwe jest także wykorzystanie innych protokołów do przekazywania żądań, na przykład [[Transmission Control Protocol|TCP]]<ref name="Essential_SNMP">{{cytuj książkę| autor=Douglas Mauro |autor2=Kevin Schmidt |tytuł=Essential SNMP |wydawca=O'Reilly |rok=2001}}</ref>.


Istnieją trzy wersje protokołu:
Istnieją trzy wersje protokołu:
* SNMPv1 - pierwsza wersja, która została opublikowana w 1988 roku w dokumencie RFC 1067 (z późniejszymi zmianami w RFC 1098 oraz RFC 1157). W tej wersji protokołu bezpieczeństwo oparte jest na tak zwanych ''communities'', które są pewnego rodzaju nieszyfrowanymi hasłami umożliwiającymi zarządzanie urządzeniem.
* SNMPv1 pierwsza wersja, która została opublikowana w 1988 roku w dokumencie RFC 1067 (z późniejszymi zmianami w RFC 1098 oraz RFC 1157). W tej wersji protokołu bezpieczeństwo oparte jest na tak zwanych ''communities'', 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 dokumencie RFC 1901
* SNMPv2 eksperymentalna wersja protokołu, określana także SNMPv2c, opisana w dokumencie RFC 1901
* SNMPv3 - wspierająca [[autentykacja|uwierzytelnianie]] oraz szyfrowaną komunikację
* SNMPv3 wspierająca [[uwierzytelnianie]] 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 drzewie [[Management Information Base|MIB]].
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 drzewie [[Management Information Base|MIB]].
Linia 11: Linia 11:
Protokół SNMP zakłada istnienie w zarządzanej sieci dwóch rodzajów urządzeń: ''zarządzających'' i ''zarządzanych''. Urządzenie (komputer) jest ''zarządzającym'' (tzw. NMS, ang. ''Network Management Station''), gdy jest na nim uruchomiony odpowiedni program, '''manager SNMP''' (zarządca SNMP). Urządzenie jest ''zarządzane'', jeśli działa na nim program '''agent SNMP'''.
Protokół SNMP zakłada istnienie w zarządzanej sieci dwóch rodzajów urządzeń: ''zarządzających'' i ''zarządzanych''. Urządzenie (komputer) jest ''zarządzającym'' (tzw. NMS, ang. ''Network Management Station''), gdy jest na nim uruchomiony odpowiedni program, '''manager SNMP''' (zarządca SNMP). Urządzenie jest ''zarządzane'', jeśli działa na nim program '''agent SNMP'''.


W procesie zarządzania używane są [[Management Information Base|bazy MIB]] (ang. ''Management Information Base'' - baza informacji zarządzania), czyli zbiory zmiennych, które '''manager SNMP''' w zależności od uprawnień może odczytać lub zmienić. W tym celu '''manager SNMP''' kontaktuje się z '''agentem''' na danym zarządzanym urządzeniu wykorzystując jedno z dwóch wcześniej skonfigurowanych haseł:
W procesie zarządzania używane są [[Management Information Base|bazy MIB]] (ang. ''Management Information Base'' baza informacji zarządzania), czyli zbiory zmiennych, które '''manager SNMP''' w zależności od uprawnień może odczytać lub zmienić. W tym celu '''manager SNMP''' kontaktuje się z '''agentem''' na danym zarządzanym urządzeniu wykorzystując jedno z dwóch wcześniej skonfigurowanych haseł:
* hasło odczytu, tzw. public_community,
* hasło odczytu, tzw. public_community,
* hasło zapisu, tzw. private_community.
* hasło zapisu, tzw. private_community.
Linia 18: Linia 18:
Oprócz operacji odczytu i zapisu zmiennych w '''agencie''' przez '''managera''' istnieje również możliwość takiego skonfigurowania '''agenta''', aby sam poinformował danego '''managera''' o zmianie swojego stanu w przypadku zajścia określonego zdarzenia. Odbywa się to przy pomocy wysyłanego przez '''agenta''' komunikatu Trap lub (od wersji drugiej protokołu SNMP) przy pomocy komunikatu Inform.
Oprócz operacji odczytu i zapisu zmiennych w '''agencie''' przez '''managera''' istnieje również możliwość takiego skonfigurowania '''agenta''', aby sam poinformował danego '''managera''' o zmianie swojego stanu w przypadku zajścia określonego zdarzenia. Odbywa się to przy pomocy wysyłanego przez '''agenta''' komunikatu Trap lub (od wersji drugiej protokołu SNMP) przy pomocy komunikatu Inform.


SNMP domyślnie działa na porcie 161 [[TCP (protokół)|TCP]] oraz [[UDP]].
SNMP domyślnie działa na porcie 161 [[Transmission Control Protocol|TCP]] oraz [[User Datagram Protocol|UDP]].


Komunikaty Trap są domyślnie wysyłane do portu 162 TCP lub UDP.
Komunikaty Trap są domyślnie wysyłane do portu 162 TCP lub UDP.


== Budowa komunikatów ==
== Budowa komunikatów ==
Budowa komunikatów protokołu SNMP zdefiniowana jest przy pomocy notacji zwanej [[ASN.1|Abstract Syntax Notation One]] (oznaczanej '''ASN.1'''). Sposobem kodowania struktur danych komunikatów SNMP jest uproszczony [[Basic Encoding Rules|BER]].
Budowa komunikatów protokołu SNMP zdefiniowana jest przy pomocy notacji zwanej [[Abstract Syntax Notation One]] (oznaczanej '''ASN.1'''). Sposobem kodowania struktur danych komunikatów SNMP jest uproszczony [[Basic Encoding Rules|BER]].


== Wady i zalety ==
== Wady i zalety ==
Linia 58: Linia 58:


== Zobacz też ==
== Zobacz też ==
* [[TCP (protokół)|TCP]], [[Internet Protocol|IP]]
* [[Transmission Control Protocol|TCP]], [[Protokół internetowy|IP]]
* [[porty protokołu]]
* [[Port protokołu|porty protokołu]]


== Linki zewnętrzne ==
== Linki zewnętrzne ==

Wersja z 18:45, 6 wrz 2015

Simple Network Management Protocol – rodzina protokołów sieciowych wykorzystywanych do zarządzania urządzeniami takimi jak routery, przełączniki, komputery czy centrale telefoniczne za pośrednictwem sieci IP. 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łów trap od urządzeń. Możliwe jest także wykorzystanie innych protokołów do przekazywania żądań, na przykład TCP[1].

Istnieją trzy wersje protokołu:

  • SNMPv1 – pierwsza wersja, która została opublikowana w 1988 roku w dokumencie RFC 1067 (z późniejszymi zmianami w RFC 1098 oraz RFC 1157). W tej wersji protokołu bezpieczeństwo oparte jest na tak zwanych communities, 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 dokumencie RFC 1901
  • SNMPv3 – wspierająca uwierzytelnianie 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 drzewie MIB.

Funkcjonowanie

Protokół SNMP zakłada istnienie w zarządzanej sieci dwóch rodzajów urządzeń: zarządzających i zarządzanych. Urządzenie (komputer) jest zarządzającym (tzw. NMS, ang. Network Management Station), gdy jest na nim uruchomiony odpowiedni program, manager SNMP (zarządca SNMP). Urządzenie jest zarządzane, jeśli działa na nim program agent SNMP.

W procesie zarządzania używane są bazy MIB (ang. Management Information Base – baza informacji zarządzania), czyli zbiory zmiennych, które manager SNMP w zależności od uprawnień może odczytać lub zmienić. W tym celu manager SNMP kontaktuje się z agentem 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 daje managerowi 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 w agencie przez managera istnieje również możliwość takiego skonfigurowania agenta, aby sam poinformował danego managera o zmianie swojego stanu w przypadku zajścia określonego zdarzenia. Odbywa się to przy pomocy wysyłanego przez agenta komunikatu Trap lub (od wersji drugiej protokołu SNMP) przy pomocy komunikatu Inform.

SNMP domyślnie działa na porcie 161 TCP oraz UDP.

Komunikaty Trap są domyślnie wysyłane do portu 162 TCP lub UDP.

Budowa komunikatów

Budowa komunikatów protokołu SNMP zdefiniowana jest przy pomocy notacji zwanej Abstract Syntax Notation One (oznaczanej ASN.1). Sposobem kodowania struktur danych komunikatów SNMP jest uproszczony BER.

Wady i zalety

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 ilość 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).

Rodzaje komunikatów

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ą:

  • GetBulk,
  • Inform.

Wersja trzecia nie dodaje do protokołu nowych komunikatów.

Bezpieczeństwo

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ący de facto hasłem, jest wysyłany poprzez sieć w postaci niezaszyfrowanej. Pozwala to na jego podsłuchanie przy użyciu programów typu sniffer.

SNMPv3 znacząco poprawia bezpieczeństwo protokołu poprzez wprowadzenie bardziej zaawansowanych metod uwierzytelniania.

  1. Douglas Mauro, Kevin Schmidt: Essential SNMP. O'Reilly, 2001.

Zobacz też

Linki zewnętrzne