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