system monitorowania obciążenia segmentów sieci lan

21
BIULETYN INSTYTUTU AUTOMATYKI I ROBOTYKI NR 19, 2003 105 System monitorowania obciążenia segmentów sieci LAN Jarosław FILONIK, Tomasz MALINOWSKI Zakład Teleinformatyki, Instytut Teleinformatyki i Automatyki WAT ul. Kaliskiego 2, 00-908 Warszawa STRESZCZENIE: W artykule przedstawiono system monitorowania obciążenia segmentów sieci LAN. Omówione zostały zarówno główne założenia projektowe dotyczące działania systemu monitorowania sieci, jak i sposoby pozyskiwania, archiwizowania i przetwarzania danych o stanie monitorowanych urządzeń i wielkości ruchu sieciowego we wskazanych segmentach LAN. 1. Wprowadzenie Systematyczne monitorowanie stanu sieci LAN jest podstawą skutecznego rozwiązywania różnego rodzaju problemów pojawiających się w trakcie codziennej eksploatacji sieci komputerowej. Najczęściej monitorowanymi elementami sieci są jej węzły, porty tych węzłów określane mianem „wąskich gardeł” oraz parametry pracy węzłów wskazujące, czy urządzenie jest właściwie skonfigurowane i czy nie jest zbyt mocno obciążone. Etap monitorowania, czyli zbierania wszelkich dostępnych informacji zawierających parametry pracy urządzeń, stanowi pierwszy etap procesu diagnozowania sieci. Etap przygotowywania właściwych (pożądanych) raportów, będących pewną projekcją zebranych danych, jest etapem zasadniczym wskazywania potencjalnych źródeł problemów. Właściwie przeprowadzony pomiar i dobre algorytmy analizy zebranych danych pozwalają wyznaczyć wiarygodny poziom bazowy sieci, czyli jej stan pracy określany jako „normalny”, w którym realizowane są na zadowalającym poziomie wszystkie jej funkcje. Poziom bazowy jest poziomem odniesienia, pozwalającym wykryć niepożądane przypadki odchyleń w przyszłości.

Upload: haquynh

Post on 11-Jan-2017

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: System monitorowania obciążenia segmentów sieci LAN

BIULETYN INSTYTUTU AUTOMATYKI I ROBOTYKI NR 19, 2003

105

System monitorowania obciążenia segmentów sieci LAN

Jarosław FILONIK, Tomasz MALINOWSKI Zakład Teleinformatyki, Instytut Teleinformatyki i Automatyki WAT

ul. Kaliskiego 2, 00-908 Warszawa

STRESZCZENIE: W artykule przedstawiono system monitorowania obciążenia segmentów sieci LAN. Omówione zostały zarówno główne założenia projektowe dotyczące działania systemu monitorowania sieci, jak i sposoby pozyskiwania, archiwizowania i przetwarzania danych o stanie monitorowanych urządzeń i wielkości ruchu sieciowego we wskazanych segmentach LAN.

1. Wprowadzenie

Systematyczne monitorowanie stanu sieci LAN jest podstawą skutecznego rozwiązywania różnego rodzaju problemów pojawiających się w trakcie codziennej eksploatacji sieci komputerowej. Najczęściej monitorowanymi elementami sieci są jej węzły, porty tych węzłów określane mianem „wąskich gardeł” oraz parametry pracy węzłów wskazujące, czy urządzenie jest właściwie skonfigurowane i czy nie jest zbyt mocno obciążone. Etap monitorowania, czyli zbierania wszelkich dostępnych informacji zawierających parametry pracy urządzeń, stanowi pierwszy etap procesu diagnozowania sieci. Etap przygotowywania właściwych (pożądanych) raportów, będących pewną projekcją zebranych danych, jest etapem zasadniczym wskazywania potencjalnych źródeł problemów.

Właściwie przeprowadzony pomiar i dobre algorytmy analizy zebranych danych pozwalają wyznaczyć wiarygodny poziom bazowy sieci, czyli jej stan pracy określany jako „normalny”, w którym realizowane są na zadowalającym poziomie wszystkie jej funkcje. Poziom bazowy jest poziomem odniesienia, pozwalającym wykryć niepożądane przypadki odchyleń w przyszłości.

Page 2: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 106

Przy prowadzeniu pomiarów administrator zwykle posługuje się pewnym zestawem narzędzi często dedykowanych, a więc przygotowanych do identyfikowania źródeł problemów określonego typu. Artykuł przedstawia etapy realizacji i wyniki działania oprogramowania wspomagającego administratora lokalnej sieci komputerowej w określaniu obciążenia wskazanych punktów bądź całych segmentów sieci. Wykonane oprogramowanie umożliwia również sprawdzenie parametrów pracy wskazanych aktywnych urządzeń sieciowych. Wyniki pomiarów ruchu sieciowego oraz wartości parametrów pracy urządzeń dostarczane administratorowi mogą stanowić podstawę określenia newralgicznych, zbyt mocno obciążanych portów urządzeń, wskazania źródeł nadmiernego, a niezbyt pożądanego ruchu sieciowego, wyznaczenia nowej konfiguracji urządzeń sieciowych. Opracowany system bazuje na protokole SNMP, jak również na analizie zawartości przechwytywanych ramek ethernetowych.

Najważniejszym źródłem danych o stanie sieci są urządzenia sieciowe tworzące węzły sieci. Urządzenia te mogą udostępniać dużą ilość użytecznych danych pod warunkiem, że są do tego celu odpowiednio skonfigurowane. Większość urządzeń sieciowych oferowanych na rynku jest wyposażona w mechanizmy udostępniania danych zwykle bazujących na protokole SNMP.

Cennym źródłem informacji mogą być sprzętowe analizatory ruchu sieciowego. Ich cechą charakterystyczną jest to, że dostarczają precyzyjnych informacji o stanie sieci nie tylko z perspektywy pojedynczego urządzenia. Oczywiście istnieją programowe odpowiedniki sprzętowych analizatorów. Są to różnego rodzaju aplikacje do przechwytywania ramek z segmentów sieci, do odtwarzania fizycznej i logicznej topologii sieci, do monitorowania dostępności usług itp. Przydatność dostarczanych przez program danych zależy od wielu czynników, a w szczególności od konfiguracji sieci i samej aplikacji.

Wykorzystanie programowych narzędzi służących do analizy ruchu sieciowego oraz dodatkowo do odczytu parametrów pracy urządzeń sieciowych jest najlepszą metodą pozyskiwania danych o stanie sieci komputerowej. Do tej klasy programów należy projektowany system monitorowania obciążenia segmentów sieci LAN.

2. Założenia projektowe dla systemu monitorowania LAN

2.1. Prowadzenie pomiarów i gromadzenie wyników

Prowadzenie pomiaru jest procesem polegającym na określeniu wartości danego parametru. Określona wartość musi zostać zapamiętana, co zwykle

Page 3: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 107

dokonywane jest automatycznie. Aby odczytana wartość parametru mogła być wykorzystana, powinna być zaetykietowana tzn. musi zostać określone, z którego punktu sieci ona pochodzi, co oznacza i kiedy został dokonany jej pomiar. Wszystkie te informacje muszą zostać jednoznacznie i na stałe powiązane z pomierzoną wartością. Zazwyczaj realizowane jest to poprzez wprowadzenie wartości do usystematyzowanej według określonego z góry schematu bazy danych. Mechanizmy tworzenia i obsługi baz danych gwarantują realizację przypisania i poprawne odtworzenie informacji w przypadku potrzeby skorzystania z nich.

W odniesieniu do sposobu gromadzenia wyników pomiarów i ich przetwarzania przyjęto, że:

• System monitorowania obciążenia sieci LAN będzie umożliwiał dokonywanie pomiarów w oparciu o procedury przechwytywania i analizy zawartości ramek sieciowych z punktów sieci wskazanych przez administratora.

• Zasadniczym zadaniem systemu będzie wyznaczenie poziomu wykorzystania dostępnego pasma przepustowości sieci w poszczególnych segmentach. Analiza liczby i rodzaju ramek pojawiających się na interfejsach powinna umożliwić podanie odpowiedzi na dwa zasadnicze pytania: - jakie usługi sieciowe są najczęściej wykorzystywane ?

- które urządzenia pracujące w sieci generują największy ruch ?

• Wyniki analizy ruchu sieciowego będą przechowywane w odpowiednio zorganizowanej bazie danych. Operator systemu będzie mógł w każdej chwili zażądać raportu opracowywanego z wykorzystaniem przechowywanych danych.

• Wartości pozyskiwanych przez system monitorowania parametrów określane będą na różne sposoby: przez cykliczne sprawdzanie, czy określone urządzenie sieciowe realizuje swoje funkcje oraz przez wyznaczenie na żądanie operatora wartości charakterystyk. Przykładowo: „dokładność” określana będzie na podstawie przechowywanych przez wszystkie urządzenia sieciowe informacji o liczbie błędnych ramek pojawiających się na ich interfejsach, natomiast „stopień obciążenia sieci komputerowej” będzie określany liczbą ramek pojawiających się na wskazanych przez operatora systemu interfejsach w ustalonym przedziale czasowym.

Page 4: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 108

2.2. Środowisko działania systemu System monitorowania będzie działał w środowisku sieci Ethernet/Fastethernet, w której do komunikacji używa się zestawu protokołów TCP/IP, natomiast do zarządzania – protokołu SNMP.

Tabela 1 zawiera krótką charakterystykę środowiska, w którym uruchomiona zostanie aplikacja monitorowania. Tabela 1. Opis środowiska sieci lokalnej, dla której przeznaczony jest projektowany system. Lp. Element składowy Opis

1. Rodzaj sieci Sieć lokalna. 2. Standard sieci Standard Ethernet. Wersja standardu dowolna.

3. Topologia warstwy drugiej

Dowolna. Maksymalna liczba segmentów jest nieokreślona.

4. Topologia warstwy trzeciej

Dowolna. Maksymalna liczba podsieci jest nieokreślona.

5. Protokół komunikacyjny W sieci funkcjonuje wyłącznie zestaw protokołów TCP/IP. Protokół IPv4.

6. Protokół zarządzania SNMP w wersji co najmniej drugiej. 7. Urządzenia sieciowe Wyprodukowane przez CISCO, posiadające system

operacyjny IOS wspierający SNMP w wersji drugiej lub zgodne. Na urządzeniach przełączających w warstwie drugiej jest możliwość skonfigurowania co najmniej jednego interfejsu do działania w trybie port-mirroring.

8. Stacje robocze i serwery Komputery PC pracujące w oparciu o dowolny system operacyjny. Istnieje możliwość dostosowania konfiguracji systemu do potrzeb zarządzania siecią i nie naruszania przy tym jego podstawowej funkcjonalności. Wdrażana aplikacja monitorowania powinna umożliwiać bezpośrednie monitorowanie interfejsów stacji roboczych pracujących z systemem LINUX z wersją jądra co najmniej 2.4.x.

9. Bezpieczeństwo Zakłada się, że w sieci mogą działać filtry pakietowe. Istnieje możliwość dostosowania ich konfiguracji do potrzeb zarządzania siecią. Zakłada się, że nie zdefiniowano sieci wirtualnych VLAN.

10. Usługi QoS W sieci nie działają mechanizmy ustalania priorytetów dla ruchu sieciowego.

Page 5: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 109

2.3. Funkcje systemu monitorowania

Przyjęto, że system monitorowania obciążenia sieci LAN musi umożliwiać realizację sześciu zasadniczych funkcji:

a. Prowadzenie analizy ruchu sieciowego obciążającego określone punkty sieci.

b. Śledzenie obciążenia interfejsów urządzeń sieciowych. c. Monitorowanie urządzeń sieciowych (sprawdzanie wartości parametrów

określających stan ich pracy). d. Gromadzenie danych historycznych o stanie pracy urządzeń sieciowych. e. Automatyczne identyfikowanie urządzeń pracujących w sieci i okresowe

badanie ich dostępności. f. Generowanie raportów w postaci tabel, wykresów i powiadomień.

Ad. a.

• Analiza obciążenia dotyczyć może dowolnych punktów sieci wskazanych przez użytkownika projektowanego systemu. Punktami tymi są interfejsy urządzeń sieciowych lub stacji roboczych.

• Analizie podlegać może cały ruch sieciowy przechodzący przez określony punkt.

• Wynikiem analizy jest sklasyfikowanie ruchu ze względu na dwa czynniki: 1) pochodzenie ruchu (związane ze wskazaniem źródła ruchu

sieciowego), 2) rodzaj realizowanej usługi sieciowej.

• Musi istnieć możliwość określenia rzeczywistego czasu przeprowadzenia analizy.

• Musi istnieć możliwość zatrzymania działań systemu związanych z prowadzeniem analizy, jak również ich późniejszego wznowienia.

Ad. b.

• Śledzenie obciążenia może być prowadzone w dowolnym, wskazanym przez użytkownika punkcie sieci. Punktami tymi są interfejsy urządzeń sieciowych lub stacji roboczych.

• Śledzeniem może być objęty cały ruch sieciowy w danym punkcie, bądź tylko ruch związany z usługą sieciową wskazaną przez administratora.

• Musi istnieć możliwość zatrzymania działań związanych ze śledzeniem obciążenia, jak również możliwość ich późniejszego wznowienia.

Page 6: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 110

Ad. c. Projektowany system musi dawać możliwość sprawdzenia w dowolnej

chwili wartości parametrów określających stan pracy urządzeń sieciowych, oczywiście wtedy, gdy są one przez to urządzenie udostępniane. Najistotniejszymi parametrami, są:

• czas pracy urządzenia, • ilość i rodzaj interfejsów pracujących w urządzeniu, • status administracyjny i operacyjny tych interfejsów, • adresy sprzętowe interfejsów, • przepustowość interfejsów, • parametry określające wielkość ruchu na interfejsie, • parametry określające ilość błędów na interfejsie.

Efektem realizacji funkcji monitorowania jest pozyskanie określonych informacji bądź powiadomienie o braku dostępu do informacji i określenie przyczyn takiego stanu rzeczy.

Ad. d.

W systemie musi istnieć możliwość gromadzenia danych o stanie pracy urządzeń. Dotyczy to w szczególności informacji o wielkości ruchu na poszczególnych interfejsach oraz informacji o ilości błędów. Zgromadzone dane muszą zostać zapisane w plikach na dysku twardym, w takim formacie, aby nadawały się do późniejszej obróbki. Wymagane jest zatem, żeby w plikach tych znalazły się co najmniej takie informacje jak:

• chwila rozpoczęcia gromadzenia danych zapisanych w pliku, • chwila zakończenia gromadzenia danych, • pochodzenie danych, • znaczenie danych, • format w jakim zapisane są dane.

Ad. e.

System musi mieć możliwość identyfikowania urządzeń znajdujących się w zdefiniowanym przez użytkownika obszarze sieci. W szczególności powinien dawać możliwość określenia, jakie informacje można odczytać ze zidentyfikowanego urządzenia.

Po zidentyfikowaniu wszystkich urządzeń sieciowych, do zadań systemu należy okresowe badanie ich dostępności tak, aby wykrywać zdarzenia polegające między innymi na utracie połączenia z tymi urządzeniami.

Page 7: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 111

Ad. f. Wyniki działania poszczególnych funkcji muszą być przekazywane użytkownikowi systemu. Odpowiada za to funkcja raportująca, której zadaniem jest przesłanie użytkownikowi wszystkich niezbędnych, wyspecyfikowanych wcześniej informacji w określonej przez niego postaci i czasie. Informacje przekazywane mogą być w postaci komunikatów, tabel, wykresów i ewentualnie wiadomości e-mail.

Projektowany system monitorowania musi zostać tak zrealizowany, aby spełnione były poniższe warunki:

• System nie może mieć możliwości ingerowania w konfigurację sieci

komputerowej w ramach której pracuje (dotyczy to także etapu wdrażania).

• Praca systemu powinna w stopniu minimalnym obciążać sieć komputerową.

• Praca systemu nie może powodować utraty danych przesyłanych przez sieć komputerową.

• System może zmieniać wartości określonych przez użytkownika zmiennych na wskazanych przez niego urządzeniach. Nie może zmieniać wartości żadnych innych zmiennych.

3. Projekt systemu monitorowania obciążenia segmentów sieci LAN

Diagram kontekstowy projektowanego systemu monitorowania sieci przedstawiony został na rysunku 1.

Użytkownik systemu, zwany dalej operatorem, wymusza na systemie podjęcie określonego działania poprzez wysłanie do niego dokumentu żądanie, w którym określany jest typ akcji. Żądanie to jest wysyłane asynchronicznie. Podstawowe akcje to:

• rozpoczęcie monitorowania, • zatrzymanie monitorowania, • zmiana parametrów monitorowania, • pobranie wartości parametru określającego stan pracy

urządzenia sieciowego.

Page 8: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Rys. 1. Diagram kontekstowy systemu monitorowania obciążenia segmentów sieci LAN

Do swego żądania operator dołącza ponadto parametry żądania. Mają

one wpływ na sposób wykonywania przez system określonych wcześniej akcji.

W przypadku, gdy system przyjął komendę operatora, operator jest informowany o zdarzeniu komunikatem typu potwierdzenie przyjęcia żądania. Brak takiego potwierdzenia ze strony systemu jest sygnałem, że żądanie nie jest akceptowane przez system. Dopuszczalna jest również reakcja polegająca na wysłaniu komunikatu o błędzie.

Jeśli żądanie operatora jest zleceniem pobrania z urządzenia sieciowego wartości jednego z jego parametrów, urządzenie to identyfikowane jest przez adres urządzenia, natomiast wybrany parametr przez identyfikator parametru.

Realizacja żądania operatora związanego z odczytaniem przez system wartości parametru urządzenia sieciowego jest możliwa przy wykorzystaniu mechanizmów protokołu SNMP. Oznacza to, że realizacja tego typu żądań będzie bazowała na przekształcaniu żądań operatora na odpowiednie polecenia SNMP i nie jest konieczne projektowanie specjalnego podsystemu współpracy z urządzeniem sieciowym.

Operator może odczytać wyniki działania systemu poprzez wysyłanie żądania wyświetlenia informacji o rezultatach monitorowania obciążenia precyzując, o jakie informacje mu chodzi. W odpowiedzi system wysyła

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 112

Page 9: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

informacje o rezultacie monitorowania (w odpowiedniej, czytelnej dla operatora formie), bądź sygnalizuje operatorowi brak takich informacji.

W podsumowaniu powyższych rozważań na rysunku poniżej przedstawiona została struktura funkcjonalna systemu monitorowania obciążenia sieci LAN.

Rys. 2. Struktura funkcjonalna systemu monitorowania sieci LAN

W projektowanym systemie istnieje konieczność kilkukrotnego

przetworzenia formatów przesyłanych danych, co ilustruje rysunek 3. Konwersje formatów danych (zaznaczone na schemacie pogrubionymi

liniami) muszą zostać zrealizowane w obrębie projektowanych podsystemów i będzie im towarzyszyła weryfikacja poprawności danych i ich spójności.

Protokół SNMP, a dokładniej jego interfejs programowy, oprócz wymogu konwersji formatów danych narzuca konieczność wydzielenia w obu podsystemach (współpracy z operatorem i współpracy z otoczeniem sieciowym) procesów odpowiedzialnych za współpracę z mechanizmami protokołu SNMP.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 113

Page 10: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Rys 3. Konwersje formatu danych wymuszone przez mechanizmy protokołu SNMP

4. Implementacja systemu

Oprogramowanie systemu monitorowania zostało napisane dla stanowisk działających w oparciu o system operacyjny Linux. O wyborze zadecydowały: duża elastyczność w zakresie konfiguracji systemu i łatwość tworzenia oprogramowania niskopoziomowego dla Linuxa. Monitorowanie działania stacji roboczych i serwerów działających w oparciu o inne systemy operacyjne będzie realizowane poprzez podsłuchiwanie ruchu na ich interfejsach (z wykorzystaniem trybu promiscuous karty sieciowej).

Podsystem współpracy z operatorem jest tą częścią systemu, której efekty działania są najbardziej widoczne. Głównym jego zadaniem jest współpraca z operatorem systemu za pośrednictwem interfejsu graficznego. Interfejs służy z jednej strony do odbierania od użytkownika danych i poleceń, z drugiej zaś do przedstawiania mu wyników przetwarzania zachodzącego w obrębie systemu. Głównymi wymaganiami wobec takiego interfejsu (z punktu widzenia odbiorcy) jest oczywiście łatwość obsługi, przejrzystość oraz kompletność przedstawianych za jego pomocą informacji. Z punktu widzenia realizacji systemu istotna jest przede wszystkim łatwość wytworzenia takiego interfejsu.

Interfejs graficzny napisany został dla środowiska X-WINDOWS. Wykorzystany został język TCL/TK i język C. Język TCL/TK nie nadaje się do tworzenia niskopoziomowych fragmentów oprogramowania realizowanego systemu. Powodem jest brak poleceń w tym języku służących do bezpośredniego zarządzania procesami, zarządzania pamięcią operacyjną, generowania sygnałów i ich obsługi oraz do realizacji zaawansowanej komunikacji między procesami. Nie ma ponadto w tym języku interfejsu programowego dla

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 114

Page 11: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 115

protokołu SNMP. Z tego też względu przy użyciu języka skryptowego TCL/TK zrealizowane zostały wyłącznie następujące procesy podsystemu współpracy z operatorem:

• proces 1. Identyfikacja żądań operatora systemu, • proces 2. Analiza plików konfiguracyjnych, • proces 3. Prezentacja wyników, • proces 4. Badanie dostępności urządzeń.

Pozostałe procesy, czyli:

• proces 5. Współpraca z mechanizmami protokołu SNMP, • proces 6. Monitorowanie,

zostały napisane w języku C, a następnie połączone z resztą w jeden kompletny podsystem. Podobnie wszystkie procesy podsystemu współpracy z otoczeniem sieciowym zostały napisane w języku C. Kompilacja kodu źródłowego wytworzonego w języku C zrealizowana jest przy pomocy narzędzi udostępnianych nieodpłatnie (w ramach licencji GNU) wraz z dystrybucją RedHat systemu Linux.

Realizację procesów związanych z obsługą protokołu SNMP (procesy w podsystemie współpracy z operatorem oraz podsystemie współpracy z otoczeniem sieciowym) znacznie ułatwia wykorzystanie gotowej implementacji mechanizmów protokołu SNMP. Taką implementację zawiera pakiet net-SNMP dla rodziny systemów operacyjnych UNIX. W skład pakietu wchodzi biblioteka z zestawem procedur do realizacji komunikacji zgodnej z protokołem SNMP. Procedury te można wykorzystywać nieodpłatnie w ramach licencji GNU. Dokładny opis wykorzystywanych przy realizacji systemu elementów interfejsu programowego biblioteki pakietu net-SNMP znajduje się w [1].

Podstawowe zalety pakietu net-SNMP to przede wszystkim:

• nieodpłatność, • bogata dokumentacja dostępna w sieci Internet, • rozbudowany interfejs programowy (API), umożliwiający

programiście wykorzystanie wszystkich możliwości protokołu SNMP.

Podstawową wadą pakietu net-SNMP jest duża złożoność interfejsu programowego zmuszająca programistę do bardzo wnikliwego analizowania dokumentacji.

Page 12: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 116

Procesy realizujące przechwytywanie ramek ze wskazanych interfejsów, a działające w ramach podsystemu współpracy z otoczeniem sieciowym, zrealizowane zostały z wykorzystaniem gotowych procedur przechwytywania ramek z interfejsów urządzenia i ich powielania. Procedury te zebrane są w bibliotece libpcap dostarczanej nieodpłatnie wraz z wieloma dystrybucjami systemu Linux. Dokładny opis wykorzystywanych przy realizacji systemu elementów interfejsu programowego biblioteki libpcap znajduje się w [2].

5. Pakiet narzędzi umożliwiających realizację komunikacji zgodnej z SNMP

Opracowanie i oprogramowanie zasad komunikacji pomiędzy podsystemem współpracy z użytkownikiem i podsystemem współpracy z otoczeniem sieciowym było kluczowym elementem fazy projektowania i następnie implementacji systemu monitorowania. Zgodnie z założeniami komunikacja ta obywa się w oparciu o protokół SNMP.

Na etapie realizacji systemu zdecydowano się skorzystać z gotowego interfejsu programowego (biblioteka wchodząca w skład pakietu net-SNMP), realizującego komunikację rozproszoną zgodnie z protokołem SNMP. Wykorzystana została najnowsza obecnie wersja pakietu net-SNMP 5.0.8.

Najważniejsze z punktu widzenia projektowanego systemu elementy pakietu net-SNMP to:

• demon snmpd, czyli serwer protokołu SNMP obsługujący nadchodzące od klientów żądania,

• biblioteka procedur stanowiąca interfejs programowy do realizacji komunikacji zgodnej z protokołem SNMP.

Demon snmpd został opracowany z myślą o obsłudze standardowego, określonego w dokumentach RFC, zestawu baz MIB. Nie jest on niestety w stanie obsłużyć bazy MIB, która powstała specjalnie dla projektowanego systemu monitorowania sieci LAN. Do obsługi nowopowstałej bazy konieczne jest zatem stworzenie nowego serwera protokołu SNMP. Zakłada się przy tym możliwość komunikowania się tych dwóch serwerów.

Współpraca demona snmpd z innymi serwerami SNMP działającymi w obrębie tego samego systemu operacyjnego realizowana jest następująco:

1. Jeżeli demon snmpd otrzyma od klienta protokołu SNMP żądanie,

które może zinterpretować i obsłużyć, to realizuje to żądanie.

Page 13: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

2. Jeżeli demon snmpd otrzyma od klienta protokołu SNMP żądanie, które może zinterpretować, ale którego nie może obsłużyć, to identyfikuje współpracujący serwer SNMP, który jest w stanie zrealizować to żądanie, a następnie przekazuje żądanie temu serwerowi.

Działania opisane w punkcie drugim możliwe są jedynie wtedy, gdy demon snmpd jest w stanie wstępnie zinterpretować przekazane od klienta żądanie. Taka interpretacja może mieć miejsce dopiero wtedy, gdy właściwy dla żądania serwer SNMP dokonał rejestracji obsługiwanych przez siebie żądań. W przypadku braku rejestracji żądania, zostanie ono przez demona snmpd odrzucone.

Rys. 4. Diagram przepływu danych i komunikatów pomiędzy podsystemami

wykorzystującymi SNMP

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 117

Page 14: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 118

Współpraca pomiędzy działającymi w tym samym systemie serwerami protokołu SNMP realizowana jest według zasad protokołu AGENTX. Ilustruje to schemat na rysunku nr 4.

Prywatna baza MIB jest strukturą drzewiastą opisującą działanie procesów nasłuchiwania ruchu sieciowego i zawierającą dane zebrane w trakcie monitorowania sieci. Modyfikacja zmiennych tej bazy równoznaczna jest z przekazywaniem sterowania (polecenia operatora z podsystemu współpracy z operatorem) do elementów wykonawczych, czyli procesów nasłuchujących ruch sieciowy. Odczyt zmiennych bazy przez podsystem współpracy z operatorem równoznaczny jest z odbieraniem wyników prowadzonego nasłuchu ruchu sieciowego.

Prywatna baza MIB utworzona została przy użyciu języka ASN.1. Język ten jest interpretowany przez mechanizmy pakietu net-SNMP.

Poniżej przedstawiony jest zapis bazy MIB w języku ASN.1.

JRF-PORTSTAT-MIB DEFINITIONS ::= BEGIN

IMPORTS

OBJECT-TYPE, MODULE-IDENTITY, Integer32, enterprises FROM SNMPv2-SMI

MacAddress FROM SNMPv2-TC;

jrfPortstatMIB MODULE-IDENTITY

LAST-UPDATED "0304010000Z"

ORGANIZATION "Wojskowa Akademia Techniczna, Wydzial Cybernetyki

Instytut Teleinformatyki i Automatyki, grupa CZ-98A,

Jaroslaw FILONIK"

CONTACT-INFO "[email protected]"

DESCRIPTION "Jest to formalna definicja bazy MIB obsługiwanej

przez podsystem współpracy z użytkownikiem.

Określone zostały w niej typy danych dla

poszczególnych elementów bazy oraz identyfikatory

obiektów SNMP dla tych elementów"

Page 15: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 119

::= { enterprises 16585 } Jest to węzeł w drzewie identyfikatorów obiektów SNMP,

do którego dołączona została baza MIB tworzonego

systemu monitorowania sieci LAN. Jest to węzeł

unikalny. Wniosek o jego przydzielenie dla potrzeb

projektu skierowany został do międzynarodowej

organizacji IANA, przez którą został rozpatrzony

pozytywnie

jrfPortstatNastepnaPozycja OBJECT-TYPE

SYNTAX Integer32

MAX-ACCESS read-only Zapis oznacza, że w stosunku do tego

elementu bazy MIB kierowane mogą być

jedynie żądania odczytu

STATUS current

DESCRIPTION "Obiekt jrfPortstatNastepnaPozycja jest realizacją

elementu struktury informacji wymienianej pomiędzy

procesami o nazwie Wskaźnik następnej wolnej

pozycji tablicy z informacjami o obciążeniu punktu

sieci. Opis przeznaczenia obiektu znajduje się w

punkcie 2. tabeli 3 z definicją tej struktury"

::= { jrfPortstatMIB 1 } Jest to identyfikator obiektu, unikalny w drzewie

indentyfikatorów obiektów SNMP.

jrfPortstatTable OBJECT-TYPE

SYNTAX SEQUENCE OF jrfPortstatEntry

MAX-ACCESS not-accessible

STATUS current

DESCRIPTION "Obiekt jrfPortstatTable jest realizacją elementu

struktury informacji wymienianej pomiędzy

procesami o nazwie Tablica sterowania procesami

śledzenia obciążenia punktu sieci ruchem sieciowym

Page 16: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 120

i prezentacji wyników ich działania. Opis

przeznaczenia obiektu znajduje się w punkcie 1.

tabeli 3 z definicją tej struktury."

::= { jrfPortstatMIB 2 }

6. Dokumentacja użytkowa systemu monitorowania obciążenia LAN

6.1. Warunki uruchomienia programu konsoli systemu monitorowania Uruchomienie programu konsoli systemu monitorowania obciążenia sieci LAN możliwe jest tylko na stacji roboczej, która spełnia poniższe warunki:

• jest komputerem działającym na platformie x86 (nie testowano aplikacji na innych platformach),

• posiada system operacyjny Linux (instalowany z dowolnej dystrybucji). Wersja jądra systemu to 2.4.x lub wyższa. Istotne jest, aby jądro systemu skompilowane było z obsługą sieci oraz stosu protokołów TCP/IP. System operacyjny musi pracować w trybie wieloużytkownikowym z obsługą sieci,

• posiada zainstalowany i poprawnie skonfigurowany system X-Windows, z powłoką GNOME lub KDE,

• posiada zainstalowany pakiet TCL w wersji co najmniej 8.4, • posiada zainstalowany pakiet TK w wersji co najmniej 8.4. Istotne jest

by wraz z pakietem zainstalowany był interpreter wish8.4. Interpreter ten musi się znajdować w jednym z katalogów wskazywanych przez zmienną środowiskową $PATH systemu,

• posiada zainstalowany pakiet net-SNMP w wersji co najmniej 5.0.8. Biblioteki tego pakietu ładowane dynamicznie i wykorzystywane przez program muszą znajdować się w katalogu /usr/lib, bądź w jednym z katalogów znajdujących się w pliku konfiguracyjnym /etc/ld.so.conf.

6.2. Wstępna konfiguracja programu konsoli systemu monitorowania

Wstępna konfiguracja programu polega na określeniu, jakie segmenty sieci lokalnej mają być monitorowane przez program. Powinna się ona odbyć przed uruchomieniem programu monitorowania obciążenia sieci. Istnieje możliwość określenia wielu segmentów podlegających monitorowaniu.

Page 17: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 121

Konfiguracja ustalana jest w pliku siec.conf umieszczonym w głównym katalogu programu. Format pliku jest następujący: liczba_segmentów adres_IP_segmentu maska adres_IP_segmentu maska adres_IP_segmentu maska (...)

Parametr liczba_segmentów określa liczbę segmentów sieci zdefiniowanych w liniach poniżej. Jeśli liczba segmentów w pliku siec.conf jest większa niż wartość tego parametru, nadmiarowe segmenty są ignorowane.

Parametr adres_IP_segmentu jest adresem sieciowym segmentu, który ma podlegać monitorowaniu. Może to być również adres IP hosta, ale tylko pod warunkiem, że parametr maska ma wartość 32.

6.3. Uruchomienie systemu monitorowania

Uruchomienie programu jest możliwe tylko wtedy, gdy uruchomiony jest graficzny podsystem X-WINDOWS.

Uruchomienie programu (przez użytkownika, który ma do tego niezbędne uprawnienia – domyślnie jest to użytkownik root) jest możliwe poprzez wywołanie z wiersza poleceń terminala skryptu glowny.tcl. Program nie wymaga podawania parametrów.

6.4. Użytkowanie programu z poziomu konsoli systemu monitorowania

Po uruchomieniu program rozpoczyna badanie dostępności urządzeń, znajdujących się w określonych wstępną konfiguracją podsieciach. Badanie to może trwać długo. Jest to spowodowane tym, że w przypadku braku dostępności określonego urządzenia, badanie ponawiane jest przez okres około 5s, zanim ostatecznie program poinformuje o tym, że urządzenie jest niedostępne. Po pomyślnym wykonaniu badania dostępności, użytkownikowi przedstawiona zostaje lista dostępnych urządzeń (tzn. tych, z którymi udało się nawiązać połączenie z wykorzystaniem protokołu SNMP). Przykładowa lista przedstawiona jest poniżej (rys. 5).

Page 18: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

Rys. 5. Okno programu konsoli systemu monitorowania – lista dostępnych urządzeń

Użytkownik wybierając przycisk Odśwież ma możliwość uaktualnienia

listy poprzez ponowne wykonanie procedury sprawdzenia dostępności urządzeń w segmentach sieci.

Zaznaczając adres dostępnego urządzenia i wybierając przycisk Zbadaj, użytkownik powoduje wyświetlenie podstawowych informacji o urządzeniu (rys. 6).

Rys. 6. Okno programu konsoli systemu monitorowania – informacje o urządzeniu

Informacja wyświetlana w polu Stan jrfPortstatMIB określa, czy na

danym urządzeniu funkcjonuje agent systemu monitorowania obciążenia segmentów sieci LAN. W sytuacji, gdy program agenta na danym urządzeniu nie został uruchomiony, pole Statystyki jrfPortstatMIB oraz przyciski Monitorowanie oraz Wyswietl... i Konfiguruj są nieaktywne.

Wybierając przycisk Szczegóły..., po zaznaczeniu odpowiedniego

interfejsu, użytkownik może sprawdzić jego konfigurację oraz podstawowe statystyki dotyczące obciążenia i liczby błędów (rys. 7).

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 122

Page 19: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

Rys. 7. Okno programu konsoli systemu monitorowania – informacje o interfejsie

Wybierając przycisk Monitorowanie użytkownik przechodzi do okna,

z pomocą którego może skonfigurować proces śledzenia obciążenia punktu sieci. Śledzenie odbywa się za pośrednictwem wskazanego w oknie Wykaz interfejsów interfejsu. Okno dialogowe konfiguracji procesu śledzenia obciążenia przedstawia rysunek 8.

Rys. 8. Okno programu konsoli systemu monitorowania – konfiguracja procesu śledzenia

obciążenia

Program umożliwia również definiowanie usług, dla których prowadzone jest śledzenie. Określany jest sposób prowadzenia śledzenia (bezpośrednio lub przez podsłuch określonego adresu fizycznego urządzenia znajdującego się w obrębie segmentu). Cztery przyciski sterują procesem śledzenia. Można go uruchamiać (START), zatrzymywać (STOP), usuwać (KASUJ) oraz zerować tablice wyników (ZERUJ).

Naciśnięcie prawego klawisza myszy nad określonym numerem portu w obszarze listy usług powoduje wyświetlenie menu kontekstowego.

Menu oferuje możliwość skonfigurowania programu tak, aby okresowo sprawdzał parametry udostępniane przez proces śledzenia (dostępne parametry to: liczba pakietów wchodzących w ramach usługi, liczba pakietów wychodzących w ramach usługi, liczba bajtów wchodzących w ramach usługi,

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 123

Page 20: System monitorowania obciążenia segmentów sieci LAN

J. Filonik, T. Malinowski

liczba pakietów wychodzących w ramach usługi, chwilowe obciążenie interfejsu przez usługę).

Menu kontekstowe steruje procesem monitorowania. Za jego pośrednictwem można uruchamiać i zatrzymywać monitorowanie.

Wybierając przycisk Wyświetl w oknie Badanie urządzenia użytkownik może wyświetlić wyniki analizy ruchu sieciowego przechodzącego przez wskazany interfejs. Użytkownik może obejrzeć wyniki klasyfikacji ruchu sieciowego ze względu na rodzaj usługi oraz ze względu na urządzenia generujące ruch. Przykładowe wyniki analizy przedstawione są na rysunku 9.

Rys. 9. Okno programu konsoli systemu monitorowania prezentujące wyniki analizy ruchu

sieciowego

Rys. 10. Okno programu konsoli systemu monitorowania – konfiguracja procesu

analizy ruchu sieciowego

Na rysunku 10 przedstawiona jest aktualna konfiguracja procesu analizy obciążenia ruchem sieciowym oraz stan tego procesu. Zmiana stanu procesu odbywa się przy pomocy jednego z dwóch przycisków: Start lub Stop. Przycisk Zeruj pozwala wyzerować tablice z wynikami powodując, że proces analizowania ruchu rozpoczyna się od nowa. Przycisk Zmiana konf. otwiera okno, w którym użytkownik może wskazać nowy punkt sieci, który podlegać ma analizie oraz określić, za pośrednictwem którego interfejsu urządzenia z agentem monitorowania będzie prowadzona owa analiza.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 124

Page 21: System monitorowania obciążenia segmentów sieci LAN

Badanie obciążenia segmentów sieci LAN.

Biuletyn Instytutu Automatyki i Robotyki, 19/2003 125

7. Podsumowanie

W trakcie realizacji systemu duży nacisk położony został na jego skalowalność. Projekt prywatnej bazy MIB zakłada możliwość łatwej rozbudowy o dalsze obiekty. Zrealizowane biblioteki umożliwiają łatwe powiązanie nowo powstałych obiektów z istniejącymi już strukturami systemu monitorowania. Możliwe jest wzbogacenie zrealizowanego oprogramowania o następujące funkcje:

• statystyczna obróbka wyników pomiarów dokonywanych przez analizatory ruchu sieciowego,

• obsługa pułapek SNMP, • powiadamianie operatora systemu za pomocą komunikatów,

wiadomości e-mail lub SMS, o zdarzeniach krytycznych dla działania sieci wykrytych podczas analizy jej stanu,

• wnioskowanie o przyczynach pojawiania się zdarzeń krytycznych dla sieci.

System nie ingeruje w konfigurację aktywnych urządzeń sieciowych ani nie powoduje utraty przesyłanych danych. Obciążenie sieci komputerowej przez system monitorowania wiąże się z przesyłaniem informacji pomiędzy podsystemami oraz pomiędzy podsystemem współpracy z operatorem a urządzeniami sieciowymi w ramach dialogu z wykorzystaniem protokołu SNMP. Można przyjąć, że wielkość tego ruchu jest stała w czasie pracy systemu. W przypadku pracy systemu w sieci o dużym natężeniu ruchu, obciążenie wynikające z jego działania będzie niezauważalne.

Literatura:

[1] www.netsnmp.org - dokumentacja pakietu net-snmp. [2] www.tcpdump.org - dokumentacja programów tcpdump i libpcap. [3] Andrews G.E.: The Theory of Partitions, London, Addison-Wesley Publishing

Company, 1976. [4] Barsi F., Grandoni F., Maestrini P.: A Theory of Diagnosability of Digital Systems,

IEEE Trans. on Comput. 6, 1976, pp. 585-593.

Recenzent: dr inż. Janusz Furtak

Praca wpłynęła do redakcji 10.12.2003