Sieci  komputerowe 
Kompendium 

Karol Krysiak

Włóż do koszyka

Więcej informacji


7. Protokół SNMP.

7.1 Opis protokołu [2].

Protokół SNMP (Simple Network Management Protocol) służy do zarządzania i monitorowania urządzeń sieciowych. Aktualnie stosowaną wersją tego protokołu jest SNMPv2. Jest to protokół typu klient/serwer, opisywany w terminologii SNMP jako protokół menedżer/agent. Agent (serwer) działa na obsługiwanym urządzeniu nazywanym MNE (Managed Network Entity) - obsługiwana jednostka sieciowa - i monitoruje stan urządzenia. Menedżer (klient) działa na jednostce NMS (Network Management Station) - jednostka zarządzania siecią - i odbiera raporty od agenta.

NMS regularnie żąda informacji o stanie obsługiwanych urządzeń, a każda MNE odpowiada podając stan swojego urządzenia. Wysyłanie regularnych żądań jest nazywane ankietowaniem (pooling). Ponieważ żądania pojawiają się w pewnych okresach czasu, nie można mówić o reakcji w czasie rzeczywistym. Zostało to zmienione poprzez wprowadzenie tzw. ankietowania z nastawieniem na pułapki (trap directed pooling). Pułapka jest komunikatem o predefiniowanym wydarzeniu, który natychmiast wysyłany jest do menedżera. Menedżer wysyła ankiety na port 161 protokołu UDP, a pułapek nasłuchuje na porcie 162 protokołu UDP.

Sposób opisywania obiektów, składnia ich definiowania oraz sposób kodowania przed przesłaniem przez sieć, są definiowane przez SMI (Structure of Management Information). Każdy definiowany obiekt dostaje unikatową nazwę - identyfikator obiektu. Identyfikator obiektu jest częścią hierarchicznie uporządkowanej bazy MIB (Managemet Information Base). Aktualnie do monitorowania TCP/IP używana jest MIB II. Wraz z niektórymi urządzeniami (z agentami dołączonymi do urządzeń) rozprowadzane są specjalne wersje MIB, umożliwiające wykorzystanie specjalnych funkcji danego urządzenia.


7.2 Konfiguracja agenta snmpd [14i].

Konfiguracja demona snmpd zostanie przedstawiona na podstawie konfiguracji na ruterze. W celu uruchomienia agenta snmp użyłem pakiet: cmu-snmp w wersji 3.4 (wykonywałem to dosyć dawno, w najblizszym czasie zamieszczę opis konfiguracji pakietów w nowszych wersjach - jeśli się będzie w czymś różnił). Zaimplementowano w nim SNMPv1 i SNMPv2, zawiera również kilka użytecznych komend służących do zarządzania agentem. Cmu-snmp zawiera również drugą wersję bazy MIB.

Proces instalacji przebiega standardowo, po rozpakowaniu archiwum tar.gz, skompilowaniu i zainstalowaniu programu, przechodzimy do procesu konfiguracji. Dokonujemy go poprzez wywołanie komendy installconf, z odpowiednimi parametrami, przykładowo:

./installconf -mini <password>

Parametr -mini powoduje, że nieautoryzowany dostęp do obiektów MIB będzie ograniczony w stopniu minimalnym, w tym przypadku możliwe jest odczytywanie większości parametrów systemu i statystyk w trybie „tylko do odczytu”. Lepszym rozwiązaniem jest zastosowanie silniejszych restrykcji. Ponieważ dostęp z zewnątrz Internetu dla protokołu SNMP powinniśmy ograniczyć przez firewalla (chyba, że chcemy aby jakiś Bad Boy zarządzał naszym ruterem z zewnątrz), więc można to tak zostawić.

Następnie na końcu skryptu /etc/rc.local dodajemy wpis:

/usr/sbin/snmpd -f

uruchamiający demona snmpd po starcie systemu. Konfiguracja demona zawarta jest w /etc/snmpd.conf. Baza MIB znajduje się w pliku /usr/lib/mib.txt.

7.3 Konfiguracja menedżera MRTG [15i].

Pakiet MRTG (Multi Router Traffic Grapher) w wersji 2.8 wykorzystamy do ściągania statystyk z rutera oraz generowania na ich podstawie charakterystyk graficznych. Pakiet zawiera skrypty języka Perl służące do ściągania i archiwizacji danych statystycznych z obsługiwanych urządzeń oraz szybki program napisany w języku C do generowania ich graficznej reprezentacji w formie wykresów. Do instalacji wymaga (poza językiem Perl w wersji powyżej 5.0) bibliotek Gdlib umożliwiających generowanie plików graficznych. Zastosowana biblioteka o numerze wersji 1.8  umożliwia tworzenie tych plików w formacie PNG. Charakterystyki te są automatycznie umieszczane w plikach HTML, co umożliwia ich przeglądanie przez Internet za pomocą przeglądarki WWW.

Pakiet instalujemy na komputerze w sieci wewnętrznej na którym mamy działjący serwer WWW. Jeśli robimy to na ruterze, to zapytania do agenta snmp nie będą generowały niepotrzebnego ruchu w sieci. Jednak w takiej sytuacji musimy się liczyć z większym zużyciem zasobów systemowych rutera (działanie Apacha, uruchamianie Perla, programiku w C). Po zainstalowaniu pakietu, należy utworzyć pliki konfiguracyjne. Pisanie ich ręcznie jest trudne i czasochłonne, więc producenci pakietu dodali narzędzie do ich automatycznego tworzenia. Po wydaniu komendy:

./cfgmaker public@localhost

A w przypadku instalacji na innym komputerze w naszej sieci

./cfgmaker public@nazwa_komputera_lub_jego_numer_IP

otrzymujemy plik: mrtg.cfg z konfiguracją dla rutera.

Następnie dokonujemy koniecznych modyfikacji tych plików. Dopisujemy została ścieżkę do katalogu roboczego, w którym mrtg będzie umieszczał pliki generowane na podstawie skryptu cfg.  Katalog ten powinien znajdować się wewnątrz struktury katalogów Apacha. Przykładowo w pliku mrtg.cfg dopisujemy:

WorkDir: /var/lib/apache/htdocs/mrtg/

Ponieważ plik konfiguracyjny nie zawsze wykrywa poprawnie szybkość kart sieciowych, czasem musimy ją zmienić ręcznie dla każdej karty, przykładowo:

MaxBytes[nazwa.hosta.pl]: 1250000

Gdzie nazwa.hosta.pl jest nazwą DNS-ową dla numeru IP interfejsu opisywanego przez tą linijkę. Liczba po dwukropku jest ilością bajtów na sekundę, np.:

10Mb     ----uproszczenie--->      10.000.000 / 8 bit = 1.250.000

Ponadto, aby osie X wykresów nie były odwrócone (ustawienie standardowe) zostały dodane wpisy:

Options[nazwa.hosta.pl]: growright

Po ustawieniu plików konfiguracyjnych i skopiowaniu ich do katalogu: /usr/local/bin/, należy jeszcze dokonać odpowiednich wpisów w konfiguracji demona crond - w pliku /etc/crontab:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/bin/mrtg /usr/local/bin/mrtg.cfg 1>/dev/null 2>&1

powodujące uruchamianie programu mrtg co 5 minut w celu uaktualnienia wykresów.

W tym momencie po powiadomieniu demona cron o zmianie konfiguracji:

#killall -HUP crond

Powinniśmy już móc obejrzeć charakterystyki obciążenia łączy naszego rutera.

Sieci  komputerowe 
Kompendium 

Karol Krysiak

Sieci komputerowe. Kompendium.

Włóż do koszyka

Więcej informacji