BIULETYN INSTYTUTU AUTOMATYKI I ROBOTYKI NR 27, 2009 Diagnozowanie sieci teleinformatycznej z wykorzystaniem sieci agentów snmp Tomasz MALINOWSKI Zakład Teleinformatyki, Instytut Teleinformatyki i Automatyki WAT, ul. Kaliskiego 2, 00-908 Warszawa STRESZCZENIE: W artykule przedstawiony został zarys systemu diagnozowania sieci teleinformatycznej w oparciu o sieć rozproszonych agentów snmp. Zaproponowano podział sieci na domeny diagnostyczne, sposób wyboru lokalnych agentów odpowiedzialnych za sprawdzanie statusu hostów w domenie diagnostycznej, przechowywanie informacji diagnostycznych w rozszerzonej bazie MIB i komunikowanie się z agentami innych domen. SŁOWA KLUCZOWE: diagnozowanie, agenci snmp, baza MIB 1. Wprowadzenie Jedną z najważniejszych funkcji realizowanych przez system zarządzania siecią jest identyfikowanie uszkodzeń urządzeń sieciowych, rozumiane jako odnotowanie stanu niedostępności lub nieprawidłowego funkcjonowania urządzenia, ustalenie przyczyny takiego stanu i podjęcie działań zmierzających do naprawy wykrytych uszkodzeń. Podsystem realizujący tę funkcję nazywany jest podsystemem zarządzania uszkodzeniami (Fault Management Subsystem). Podstawą działania systemu zarządzania uszkodzeniami jest z kolei system zbierania informacji o kondycji urządzeń sieciowych. Tutaj spotyka się rozwiązania z nadzorowaniem o charakterze scentralizowanym i rozproszonym. Niezależnie od tego charakteru, szczególnie użyteczny i chętnie stosowany jest protokół snmp. Architektura zarządzania siecią bazująca na protokole snmp nazywana jest architekturą zarządca-agent. Protokół snmp definiuje komunikaty wymieniane między zarządcą i agentem. Zarządca i agent przeprowadzają operacje na reprezentacji zarządzanych zasobów zgromadzonych w bazie MIB (Management Information Base). Baza MIB opisywana jest w notacji ASN.1 3
Tomasz Malinowski w sposób abstrakcyjny i niezależny od implementacji i wewnętrznej reprezentacji danych. Jedną z istotniejszych cech protokołu snmp jest możliwość rozbudowy bazy MIB o nowe obiekty. Własne obiekty mogą być dodawane do podgałęzi o nazwie private standardowej bazy MIB. W bazie MIB mogą być przechowywane tylko dane określone przez proste typy i grupowane co najwyżej w dwuwymiarowych, niezagnieżdżonych tabelach. Zakłada się możliwość dynamicznego modyfikowania tabel (usuwanie i dodawanie wierszy) zgodnie ze specyfikacją RMON lub snmpv2. Tutaj przyjęto, że modyfikowanie tabel będzie realizowane zgodnie z zasadami określonymi przez specyfikację RMON. W artykule zaproponowany zostanie ogólny kształt systemu diagnozowania sieci teleinformatycznej, bazujący na sieci rozproszonych rozszerzonych agentów snmp. Rozszerzonym agentem snmp będzie nazwany standardowy agent snmp urządzenia łącznie z oprogramowaniem wzbogacającym jego działanie o funkcję komunikowania się z innymi agentami tego typu. Rozszerzony agent snmp będzie dalej nazywany po prostu agentem snmp. 2. Założenia ogólne systemu diagnozowania sieci teleinformatycznej Tłem dla rozważań nad kształtem systemu diagnozowana sieci teleinformatycznej będzie sieć przedstawiona na rysunku 1. Jest to sieć połączonych ze sobą kilku podsieci LAN (Ethernet) z wykorzystaniem routerów z interfejsami Ethernet i łączami typu punkt-punkt. Rys. 1. Struktura przykładowej sieci teleinformatycznej 4 Biuletyn Instytutu Automatyki i Robotyki, 27/2009
Diagnozowanie sieci teleinformatycznej z wykorzystaniem Adresy sieci z rysunku 1 są przykładowe i nie mają związku z praktyką stosowania adresów IPv4. Adresy interfejsów routerów R1-R4 są następujące: R1: 1.0.0.1 i 10.0.0.1 R2: 1.0.0.2, 2.0.0.1 i 20.0.0.1 R3: 3.0.0.1 i 30.0.0.2 R4: 10.0.0.2, 20.0.0.2 i 30.0.0.1 Przyjęte zostały następujące założenia: 1. Diagnozowanie stanu urządzeń sieciowych (węzłów sieciowych i hostów) realizowane będzie z wykorzystaniem protokołu snmp. Wymagane będzie uruchomienie agenta snmp w diagnozowanym urządzeniu sieciowym. W przypadku urządzeń, w których nie jest możliwe lub jest niewskazane uruchomienie oprogramowania agenta snmp, dopuszcza się testowanie stanu tego urządzenia z wykorzystaniem innych technik (np. agent proxy snmp). 2. W sieci teleinformatycznej wyróżnione zostaną domeny diagnostyczne, odpowiadające segmentom różnych sieci IP (z pominięciem segmentów sieci związanych z połączeniami typu punkt-punkt między routerami). 3. W każdej domenie diagnostycznej, w drodze elekcji, wyróżniony zostanie host pełniący rolę lokalnego (domenowego) agenta snmp. Kandydat na agenta domenowego musi być wolny od błędów. Lokalny agent snmp odpowiedzialny będzie za zbieranie informacji o stanie diagnostycznym hostów w domenie i porządkowanie ich we własnej bazie MIB. Zakłada się, że agent domenowy będzie również odpowiedzialny za zebranie informacji o stanie urządzeń sieciowych, z którymi ma połączenie sieciowe (przełączniki domenowe, najbliższe routery). 4. Agent domenowy będzie członkiem grupy multicastowej agentów domenowych, z którymi będzie mógł wymienić informacje diagnostyczne o kondycji nadzorowanych urządzeń i hostów. Wymiana danych pomiędzy agentami domenowymi będzie możliwa po przyłączeniu się do grupy multicastowej i zidentyfikowaniu innych agentów (tzw. wstępne synchronizowanie baz MIB). Resynchronizacja baz MIB będzie odbywać się w przypadku: zmiany struktury fizycznych połączeń w sieci (odebranie pułapki snmp od urządzenia sieciowego niosącej informację np. o upadku któregoś z interfejsów sieciowych), braku odpowiedzi od któregokolwiek z nadzorowanych hostów na rozsyłane na adres rozgłoszeniowy domeny komunikaty typu keepalive. Biuletyn Instytutu Automatyki i Robotyki, 27/2009 5
Tomasz Malinowski 5. W okresach stabilnej pracy węzłów i urządzeń sieciowych domenowi agenci snmp będą wysyłać do siebie komunikaty typu keepalive. Zakłada się, że po zarejestrowaniu się w grupie multicastowej agentów domenowych, każdy agent pozna adres IP innego agenta. Adresy te będą zarazem identyfikatorami agentów domenowych. 6. Hosty domeny diagnostycznej będą realizowały wybraną procedurę opiniowania diagnostycznego (algorytm nie jest rozważany w niniejszej pracy) na żądanie domenowego agenta snmp i przesyłały do niego raport diagnostyczny. Podział sieci teleinformatycznej na domeny diagnostyczne przedstawiony został na rysunku 2. Rys. 2. Domeny diagnostyczne w przykładowej sieci teleinformatycznej 3. Struktura techniczno-programowa domeny diagnostycznej Na rysunku 3 przedstawiono topologię domeny diagnostycznej. Przyjęto założenie, że hosty połączone przez przełącznik (strukturę przełączników sieciowych tworzących pojedynczą domenę rozgłoszeniową) wykorzystują szybkie łącza sieciowe (fastethernet, gigabitethernet). 6 Biuletyn Instytutu Automatyki i Robotyki, 27/2009
Diagnozowanie sieci teleinformatycznej z wykorzystaniem Rys. 3. Fragment sieci z domeną diagnostyczną DOMENA-1: DA agent domenowy, LA lokalny agent hosta Szczególna użyteczność agenta snmp uruchomionego w diagnozowanym urządzeniu polega na tym, że odwołanie się ze stacji zarządzającej do projektowanej bazy MIB umożliwia łatwe pozyskanie wielu szczegółowych informacji na temat zasobów sprzętowo-programowych urządzenia. Najczęściej wykorzystywanymi przez systemy NMS (Network Management System) gałęziami bazy MIB są: System gałąź zawierająca podstawowe informacje na temat urządzenia, takie jak nazwa systemu, czas uruchomienia agenta, informacje kontaktowe, itp. Rys. 4. Fragment bazy MIB z gałęzią system At informacje dotyczące adresów fizycznych interfejsów sieciowych, niezbędne do diagnozowania problemów w niższych warstwach modelu odniesienia sieci. Biuletyn Instytutu Automatyki i Robotyki, 27/2009 7
Tomasz Malinowski Rys. 5. Gałąź at bazy MIB Interfaces gałąź zawierająca informacje o interfejsach sieciowych urządzenia i ich statusie. Rys. 6. Struktura gałęzi interfaces bazy MIB W niniejszym projekcie zakłada się również wykorzystanie definiowanej w RFC2790 części bazy MIB hosta sieciowego nazwanej Host Resorce MIB, która przechowuje informacje o zasobach programowych hosta. Informacje te mogą być wykorzystane w trakcie realizowania testowania hosta, polegającego na sprawdzeniu statusu uruchomionych w systemie procesów. Struktura podgałęzi Host Resorce MIB przedstawiona jest na rysunku 7. 8 Biuletyn Instytutu Automatyki i Robotyki, 27/2009
Diagnozowanie sieci teleinformatycznej z wykorzystaniem Rys. 7. Struktura gałęzi host bazy MIB W przypadku odmiennego podejścia do realizacji zadania ciągłego monitorowania poprawnej pracy hostów i węzłów sieciowych, bazującego na wymianie komunikatów snmp (pułapki i inne komunikaty zdefiniowane przez administratora) i pełnej autonomiczności standardowego agenta, mogą być wykorzystane inne części bazy MIB, ze zdefiniowanymi komunikatami, trybami ich wymiany i sposobami obsługi różnych zdarzeń. Szczególnie użyteczne mogą być następujące części bazy MIB: 1. Event MIB (RFC2981), opisuje obiekty, które mogą służyć do opisu innych monitorowanych obiektów bazy MIB i podejmowania akcji w odpowiedzi na zdefiniowane przez administratora zdarzenia (zdarzeniowe wyzwalanie działań agenta snmp). 2. Alarm MIB (RFC 3877), służy modelowaniu alarmów i przechowywaniu listy aktywnych alarmów. 3. Notification MIB (RFC3413), zawiera informacje o zarządzanych obiektach, które powinny być powiadomione o jakimś zdarzeniu, oraz powiązane z tymi obiektami rodzaje powiadomień. 4. Target MIB (RFC2573), tu zawarte są definicje mechanizmów zdalnego konfigurowania przez stację zarządzającą zasad generowania powiadomień snmp. Biuletyn Instytutu Automatyki i Robotyki, 27/2009 9
Tomasz Malinowski W artykule nie są prowadzone rozważania na temat użyteczności wymienionych części bazy MIB. Na tym etapie można przyjąć szereg uproszczeń. Zakłada się więc, że diagnozowanie sprawności hostów będzie polegało na sprawdzaniu ich dostępności (sprawności interfejsu sieciowego i stosu TCP/IP) i poprawności realizacji uruchomionych procesów (dostępnych w Host Resource MIB). Detekcja uszkodzeń i błędów w LAN może mieć charakter scentralizowany, z jedną stacją monitorującą hosty, lub rozproszony, gdzie jeden proces (host) testuje inne hosty. Zakłada się, że wykrywanie niesprawności hostów bazować będzie na wzajemnym testowaniu się komputerów opartym na przygotowanej przez agenta domenowego (DA z rysunku 3) strukturze opiniowania diagnostycznego. Każdy host może przeprowadzić testowanie samego siebie i każdego innego hosta w domenie. Testowanie będzie odbywać się na wniosek agenta domenowego. Agent domenowy odpowiedzialny będzie za przesłanie do hosta listy hostów, które mają być przez niego przetestowane. Rozszerzony agent snmp będzie umożliwiał kontrolowanie (w oparciu o zgromadzone przez standardowego agenta snmp w bazie MIB statusu procesów, usług sieciowych i sprzętu komputerowego) i komunikowanie się z innymi agentami. Wnioskowanie o ogólnej kondycji hosta może wykorzystywać jeden z wielu proponowanych w literaturze algorytmów. Struktura logiczna domeny diagnostycznej przedstawiona została na rysunku 8. Rys. 8. Struktura logiczna domeny diagnostycznej 10 Biuletyn Instytutu Automatyki i Robotyki, 27/2009
Diagnozowanie sieci teleinformatycznej z wykorzystaniem Ważną funkcją projektowanego agenta snmp będzie ciągłe monitorowanie dostępności diagnozowanych hostów, bazujące na wysyłaniu i odbieraniu odpowiedzi na komunikaty typu keepalive, nazwane tutaj dla odróżnienia od komunikatów hello komunikatami heartbeat. Komunikaty te będą wysyłane również do agenta domenowego, a nieuzyskanie odpowiedzi od DA skutkować będzie rozpoczęciem procesu reelekcji agenta domenowego. Czynności realizowane przez agenta snmp po jego włączeniu to: 1. Samotestowanie sprawności sprzętu komputerowego i sprawdzenie statusu uruchomionych procesów (ważnych dla systemu diagnozowania). 2. Wysłanie komunikatu hello na adres rozgłoszeniowy domeny diagnostycznej, niosącego informację o identyfikatorze własnym i identyfikatorze agenta domenowego (początkowo identyfikatory te są identyczne). Identyfikator może stanowić adres IP fizycznego interfejsu sieciowego hosta lub interfejsu loopback. Można przyjąć założenie, że host o najwyższym identyfikatorze będzie pełnił funkcję agenta domenowego DA. 3. Realizacja ciągłej wymiany komunikatów hello (z określoną częstotliwością), niosących informację o dostępności DA. W przypadku nieotrzymania komunikatu hello z zapamiętanym wcześniej identyfikatorem DA (w określonym czasie będącym wielokrotnością interwału hello ) rozpoczęcie procesu elekcji nowego DA. Pod rozwagę poddaje się rozsyłanie komunikatów hello jedynie do hostów podlegających diagnozowaniu, a więc na ustalony w danej domenie adres multicastowy diagnozowanych hostów. 4. Działanie w trybie oczekiwania na instrukcje od agenta domenowego DA z informacją, które hosty powinny być przez agenta LA diagnozowane. Diagnozowanie będzie polegało na pozyskaniu z bazy MIB diagnozowanego hosta informacji o jego statusie i zapisanie ich we własnej bazie. Żywotność diagnozowanych hostów będzie sprawdzana na drodze wymiany komunikatów heartbeat przez agentów LA. Nieuzyskanie odpowiedzi na komunikat heartbeat będzie świadczyło o niedostępności (upadku interfejsu sieciowego) lub awarii rozszerzonego agenta snmp diagnozowanego hosta i skutkowało powiadomieniem agenta DA. Raport diagnostyczny będzie udostępniony agentowi DA. Na rysunku 9 przedstawiona została propozycja tabel bazy MIB dla rozszerzonego agenta snmp hosta. Biuletyn Instytutu Automatyki i Robotyki, 27/2009 11
Tomasz Malinowski Rys. 9. Tabele MIB rozszerzonego agenta snmp Tabela hostdiagcontroltable zawiera informacje o adresie IP diagnozowanych hostów (kolumna hdiagadd), port, na którym działa oprogramowanie rozszerzające funkcje standardowego agenta snmp (kolumna hdiagport), kod określający status diagnozowanego hosta (hdiagstat), wartość bieżącą licznika czasu od momentu uzyskania ostatniej odpowiedzi na komunikat typu heartbeat (hdiagupd), pole kontrolne wykorzystywane do sterowania dodawaniem i usuwaniem wpisów z tabel (hdiagcontrol). Tabela hostdiagprocess jest indeksowana numerami zamieszczonymi w kolumnie hdiagcontrolindex tabeli hostdiagcontroltable. Poszczególne wiersze tej tabeli zawierają informacje o statusie procesów z identyfikatorami zapisanymi w kolumnie hdiagprocid (odpowiadającymi obiektom hrswrunid z gałęzi hrswrunentry bazy Host Resorce MIB). Tabela ta zawiera również nazwy mnemoniczne diagnozowanych procesów (hdiagprocname) i status procesów (hdiagprocstatus). Podkreślić należy, że kształt tabel ma charakter poglądowy i może ulec zmianie w trakcie implementacji systemu. Struktura podgałęzi bazy MIB przechowującej informacje o diagnozowanych hostach, odpowiadająca tabelom hostdiagcontroltable i hostdiagprocess, przedstawiona została na rysunku 10. 12 Biuletyn Instytutu Automatyki i Robotyki, 27/2009
Diagnozowanie sieci teleinformatycznej z wykorzystaniem Rys. 10. Struktura bazy MIB rozszerzonego agenta snmp 4. Rola i funkcje realizowane przez agenta domenowego DA Agent domenowy DA, oprócz zadań realizowanych na rzecz domeny diagnostycznej, które są identyczne jak zadania realizowane przez agentów LA, będzie komunikował się z innymi agentami typu DA. Komunikacja ta będzie realizowana w ramach grupy multicastowej agentów DA, tak jak zaznaczono to na rysunku 11. Biuletyn Instytutu Automatyki i Robotyki, 27/2009 13
Tomasz Malinowski Rys. 11. Grupa multicastowa agentów domenowych DA Zorganizowanie transmisji multicastowej wiąże się z odpowiednim skonfigurowaniem routerów i przełączników sieciowych z wybranym protokołem realizacji transmisji typu multicast (PIM, IGMP) i ustaleniem adresu grupy (np. z zakresu 239.0.0.0 do 239.255.255.255). Działanie agenta DA może obejmować: 1. Komunikowanie się z agentami typu LA domeny diagnostycznej (co zostało wcześniej omówione), ponieważ agent domenowy należy również do grupy agentów typu LA. 2. Zarejestrowanie się w grupie multicast agentów domenowych. 3. Cykliczne wysyłanie na adres multicastowy grupy swojego ID, zawierającego adres IP w domenie diagnostycznej w komunikatach typu hello. 4. Zarejestrowanie ID od innych agentów domenowych. 5. Informowanie innych agentów o zmianie topologii swojej domeny diagnostycznej (np. awaria diagnozowanego hosta). 6. Oczekiwanie na zapytania o status diagnostyczny od innych agentów domenowych lub centralnej stacji NMS zarządzania siecią. 14 Biuletyn Instytutu Automatyki i Robotyki, 27/2009
Diagnozowanie sieci teleinformatycznej z wykorzystaniem 7. Identyfikowanie topologii sieci i wysyłanie powiadomień o topologii do innych agentów domenowych, co może być zadaniem dodatkowym. Dłuższego komentarza wymaga tutaj punkt 7. W systemach monitorowania sieci teleinformatycznych stosowane są różne mechanizmy i protokoły służące odkrywaniu topologii sieci i zadanie to nie jest trywialne. Dzięki zorganizowaniu grupy multicastowej agentów DA i przy założeniu, że agent DA będzie w stanie pozyskać informacje z baz MIB przyległych urządzeń sieciowych (konfiguracje interfejsów, zawartość tablic routingu, adresy następnego skoku do danej sieci IP itp.), może być ono znacznie uproszczone. Schemat składania w całość częściowych informacji o topologii zebranych przez poszczególnych agentów DA zilustrowany został na rysunku 12. Oczywiście przyjmuje się założenie, że agenci DA wymienią ze sobą szczątkowe topologie. Rys. 12. Składanie topologii sieci w oparciu o składowe uzyskane przez agentów DA-1, DA-2 i DA-3 Biuletyn Instytutu Automatyki i Robotyki, 27/2009 15
Tomasz Malinowski Na rysunku 13 przedstawione zostały tabele MIB związane z systemem komunikowania się agentów DA w ramach grupy multicastowej. Rys. 13. Tabele MIB domenowego agenta DA Tabele te będą przechowywały takie informacje jak: adresy IP domen diagnostycznych (domtoplanadd), identyfikatory (adresy IP) komunikujących się agentów (domtopagentid), czas uzyskania ostatniej odpowiedzi na komunikat hello, identyfikatory, status i typ urządzeń sieciowych, z którym agent domenowy pozostaje w bezpośrednim sąsiedztwie (domtopdevicesid, domtopdevicestype, domtopdevicesstatus). Wartości zapisane w kolumnie domtopdevicesid mogą stanowić indeksy dla kolejnej tabeli (celowo tu pominiętej), zawierającej szczegółowe informacje na temat urządzeń sieciowych, dla których podany został tutaj tylko kod statusu ogólnego (domtopdevicesstatus). Struktura bazy MIB agenta domenowego przedstawiona została na rysunku 14. Jak widać, zawiera ona podgałąź hostdiag(2) o strukturze identycznej jak dla agenta LA, oraz nierozwiniętą gałąź o nazwie hostdiagglobal(3), gdzie mogą być przechowywane informacje o statusie diagnozowanych hostów pozyskane od innych agentów domenowych (jeśli celowe będzie duplikowanie tych informacji). 16 Biuletyn Instytutu Automatyki i Robotyki, 27/2009
Diagnozowanie sieci teleinformatycznej z wykorzystaniem Rys. 14. Struktura bazy MIB agenta DA 5. Podsumowanie Niniejszy artykuł zawiera ogólny schemat scentralizowanego systemu diagnozowania sieci teleinformatycznej. Podstawę opiniowania diagnostycznego stanowić mają informacje o kondycji węzłów i hostów sieciowych pozyskiwane od agentów snmp i zapamiętywane w bazie MIB centralnej stacji diagnozowania. Rozproszony charakter systemu diagnozowania wiąże się z zapewnieniem autonomiczności lokalnych i domenowych agentów snmp i wprowadzeniem hierarchii zależności pomiędzy współpracującymi ze sobą agentami. Proponowane rozwiązanie jest jednym z wielu sposobów realizacji zadania rozproszonego diagnozowania. Biuletyn Instytutu Automatyki i Robotyki, 27/2009 17
Tomasz Malinowski Literatura [1] MCCLOGHRIE K., PERKINS D., SCHÖNWÄLDER J., Structure of Management Information Version 2, RFC 2578, 1999. [2] MURDOCH J.L., Distributed, Agent-Based, Network Fault Diagnosis System, School of Computing, Napier University, 2003. [3] STALLINGS W., Protokół SNMP i RMON. Vademecum profesjonalisty, Wyd. Helion, 2003. [4] SU MING-SHAN, THULASIRAMAN K., DAS ANINDYA, A Scalable On-Line Multilevel Distributed Network Fault Detection/Monitoring, Global Telecommunications Conference, GLOBECOM '02. IEEE, 2002. Diagnosing of teleinformatic network with net of snmp agents ABSTRACT: In the paper, the outline of the system of the teleinformatic network diagnosing, based on the net of distracted snmp agents, was introduced. The division of network on diagnostic domains, the way of local agents choice, which are responsible for checking the status of hosts in diagnostic domains, storing the diagnostic information in the widened MIB base and communicating with the agents of different domains, were proposed. KEYWORDS: diagnostic, snmp agents, MIB base Praca naukowa finansowana ze środków na naukę w latach 2008-2011 jako projekt badawczy nr O N514 051135. Praca wpłynęła do redakcji: 02.11.2009. 18 Biuletyn Instytutu Automatyki i Robotyki, 27/2009