Piotr Sosnowski

Wizualizacja topologii i wybranych
elementów intersieci TCP/IP

Praca magisterska z informatyki
Promotor: dr Janina Mincer-Daszkiewicz
Warszawa, kwiecień 1998


Krótki opis pracy

1.Wstęp

Sieć komputerowa jest to zbiór maszyn połączonych ze sobą w celu wymiany informacji. W ramach jednej sieci maszyny komunikują się w oparciu o jednolitą platformę sprzętową. Rozwiązania zastosowane w poszczególnych sieciach często jednak różnią się między sobą. Ich odmienność wynika stąd, że wybór sprzętu jest podyktowany lokalnymi potrzebami użytkowników w każdej z sieci. W niektórych sieciach ważne jest przesyłanie danych z dużą szybkością, podczas gdy w innych istotne może być łączenie maszyn na znaczne odległości. Wynikająca stąd różnorodność rozwiązań sprzętowych stwarza pewne ograniczenia w przypadku łączenia wielu sieci.

Intersieć jest zbiorem połączonych ze sobą sieci, w których niskopoziomowe szczegóły transmisji danych są zasłonięte przez wyższe warstwy oprogramowania. Zapewnia ona jednolity sposób komunikowania się komputerów, niezależny od platformy sprzętowej. Wszystkie komputery w intersieci korzystają z jednolitego zbioru identyfikatorów, o których można myśleć jako o nazwach lub adresach. Zapewniona jest także niezależność interfejsu użytkownika od typu sieci. Oznacza to, że zestaw operacji używanych do ustanowienia połączenia lub przesyłania danych w intersieci jest niezależny od zastosowanej techniki sieciowej.

Architektura intersieci zakłada istnienie specjalnych maszyn, które łączą poszczególne sieci i przekazują pomiędzy nimi pakiety. Maszyny te są nazywane ruterami (ang. routers). Odgrywają one kluczową rolę w komunikacji intersieciowej.
Topologia intersieci jest to schemat wzajemnych połączeń międzysieciowych. Uwzględnia ona typowe elementy intersieci, takie jak segmenty czy rutery i ukazuje powiązania między nimi. Informacja na temat topologii sieci jest niezbędna ruterom do podejmowania decyzji o tym, którędy kierować przesyłane pakiety.

Przykładem intersieci jest tzw. intersieć TCP/IP, w której uniwersalny mechanizm komunikacji zapewniają protokoły z rodziny TCP/IP.
Przedmiotem pracy jest wizualizacja takiego właśnie rodzaju intersieci. Celem pracy było stworzenie aplikacji obrazującej topologię wybranego obszaru sieci oraz ukazującej pewne informacje na temat poszczególnych jej elementów. Realizacja programu wymagała między innymi wykorzystania określonych mechanizmów służących uzyskiwaniu informacji z sieci. Mechanizmy te oraz związane z nimi protokoły sieciowe są przedstawione w pracy.

2.Projekt aplikacji

2.1 Przeznaczenie programu i dostępne funkcje

Podstawowym narzędziem stworzonym w ramach pracy jest aplikacja graficzna, służąca do obrazowego przedstawiania określonego obszaru sieci. Źródłem prezentowanej informacji są węzły znajdujące się w zadanym obszarze oraz system DNS. Na podstawie informacji uzyskanych bezpośrednio od węzłów budowany jest graf odzwierciedlający topologię analizowanego fragmentu sieci. Topologia ta jest widziana z poziomu protokołu IP. Oznacza to, że elementy grafu odpowiadają obiektom, które komunikują się przy użyciu tego protokołu (mają więc np. własny adres IP). Nie jest tu natomiast uwzględniona fizyczna struktura sieci, odpowiadająca niższym warstwom przesyłania w modelu ISO OSI.
Po zbudowaniu grafu program prezentuje go w formie mapy analizowanego fragmentu sieci. Obiekty odpowiadające fizycznym węzłom sieci są aktywnymi elementami tej mapy. Ich uaktywnienie umożliwia uzyskanie dodatkowych informacji o wybranym węźle. W obecnej wersji programu informacje te obejmują listę interfejsów sieciowych danej maszyny, wraz z przypisanymi im adresami i nazwami w systemie DNS.

2.2 Interfejs użytkownika

Główna aplikacja graficzna działa w środowisku X-Windows. Komunikacja z programem odbywa się za pomocą okienek dialogowych i udostępnianych w trakcie działania aktywnych elementów map. Ich uaktywnienie uzyskuje się poprzez kliknięcie odpowiadających im przycisków. Po uruchomieniu programu należy podać odpowiednie parametry wywołania w przeznaczonym do tego celu oknie. Parametry te określają:

2.3 Wymagania związane z korzystaniem z aplikacji

Analizowanie określonego obszaru sieci przy użyciu głównej aplikacji wymaga znajomości haseł chroniących dostęp do informacji serwerów SNMP w tym obszarze. Każdy serwer ma zwykle jedno takie hasło, zapewniające dostęp do wszystkich informacji, choć możliwe są bardziej wyrafinowane konfiguracje.
Na znacznej części maszyn hasła te nie są ustawiane (a raczej mają one wartość domyślną). W odniesieniu do takich maszyn z programu może korzystać użytkownik nie posiadający żadnych uprawnień (nie znający haseł).
W przypadku, gdy maszyny w interesującym nas obszarze mają ustawione hasła, należy przed wywołaniem programu wprowadzić je do odpowiedniego pliku. Program nie jest w stanie rozbudować konstruowanego grafu sieci, jeżeli węzeł nie udostępni mu niezbędnych informacji (a tak stanie się, jeżeli nie będzie znane hasło dla tego węzła). Na takim węźle zakończy się więc dana gałąź drzewa analizowanej sieci.

Stworzone oprogramowanie, z uwagi na użyte mechanizmy i pewną specyfikę wynikającą z jego zastosowania, dedykowane jest dla systemu Unix. Jego wykorzystanie wymaga bezpośredniego dostępu do sieci na poziomie protokołu IP. Ponadto, główna aplikacja ze względu na interfejs graficzny wymaga uruchamiania w systemie X-Windows.

2.4 Zastosowanie programu

Aplikacja może być użyta jako narzędzie wspomagające różnego rodzaju działania administracyjne lub użytkowe. W tym zakresie program moze spełniać następujące przykładowe funkcje:

Do innej kategorii zastosowań aplikacji można zaliczyć różnego rodzaju cele dydaktyczne i demonstracyjne. Program może umożliwić pewne zobrazowanie teoretycznych informacji, za pomocą otrzymanych z jego użyciem przykładów. Związana z tym tematyka obejmuje między innymi:

Możliwe są oczywiście także inne, nie wymienione tu przykłady zastosowań. Możliwości takie zależą w dużym stopniu od indywidualnych potrzeb użytkownika.

2.5 Przenośność oprogramowania

Aplikacja stworzona w ramach pracy została wykonana, uruchomiona i przetestowana w systemie Linux. Do jej realizacji wykorzystano jednak standard języka C, bez użycia jakichkolwiek cech właściwych dla tego systemu. Do skompilowania programu wystarcza więc jakakolwiek realizacja C.
Niezależnie wymagana jest odpowiednia (7.6 lub wyższa) wersja języka TCL.
Trzecim elementem, który jest niezbędny do skompilowania i uruchomienia programu, jest biblioteka libsnmp (dostępna m.in. na systemie Linux).
Przy spełnieniu powyższych warunków oprogramowanie jest całkowicie przenośne i może być używane na dowolnej wersji systemu Unix.


Piotr.Sosnowski@mimuw.edu.pl