Routing statyczny i dynamiczny 1. Idea routingu Gdy dwa komputery chcą się ze sobą skomunikować i jednocześnie znajdują się w tej samej sieci lokalnej to jest im bardzo łatwo odnaleźć się nawzajem. Polega to na wysłaniu zapytania ARP o odwzorowanie adresu logicznego IP na adres fizyczny MAC. Sytuacja bardziej się komplikuje gdy komputery które chcą ze sobą pogadać są względem siebie zdalne, czyli znajdują się dwóch oddzielnych sieciach lokalnych. W takiej sytuacji musimy poprosić naszego routera aby wysłał z jednej sieci do drugiej. Proces przekazywania danych z jednej sieci do drugiej nosi nazwę routowania. Dokładniej jest to proces odnajdywania trasy od hosta źródłowego do hosta docelowego. Sieć ogólnoświatowa składa się z bardzo wielu sieci lokalnych, które połączone są między sobą routerami. W tym przypadku możliwych tras od źródła do celu może być kilka. Dlatego pojawia się konieczność realizacji routowanie, którego wynikiem jest decyzja, którą drogą należy posłać dane, aby w sposób najbardziej efektywny dotarły do celu. Wśród wielu wymagań związanych z routowaniem na szczególną uwagę zasługują: poprawność, prostota, adaptacja do zmieniających się warunków sieci, stabliność, wydajność. Kryterium wyboru trasy oparte jest na koszcie trasy określonym na podstawie wielu czynników. Od złożoności mechanizmów trasowania zależy ilość czynników branych pod uwagę podczas szacowania kosztu trasy. Wśród czynników branych pod uwagę mogą się znajdować: liczba przebytych hopów, opóźnienie, przepustowość, koszt ekonomiczny,... Decyzja routowania sprowadza się do wyboru trasy o najmniejszym koszcie. Skuteczność routowania jest zależna również od przyjętej strategii podejmowania decyzji o routowaniu. Miejscem podjęcia decyzji o routowaniu może być każdy węzeł (routowanie rozproszone), węzeł centralny (routowanie scentralizowane), jak również węzeł początkowy (routowanie źródłowe). W związku z tym również czas podjęcia decyzji o routowaniu może być zróżnicowany decyzja może być podejmowana dla każdego pakietu, dla każdego łącza logicznego, jednorazowo bądź dynamicznie. Podstawą podjęcia właściwej decyzji jest znajomość budowy sieci topologii oraz dynamicznych właściwości poszczególnych powiązań pomiędzy elementami tworzącymi strukturę komunikacyjną. Czym informacje są bardziej szczegółowe, tym większe prawdopodobieństwo trafnej i pewnej decyzji. Źródłami informacji o sieci mogą być sąsiednie węzły, wszystkie węzły, brana może być pod uwagę tylko lokalna informacja węzła, w skrajnym przypadku oczywiście sieć może stanowić całkowitą zagadkę wówczas decyzje mogą być podejmowane w sposób losowy, co może się jednak wiązać z małym odsetkiem poprawnych decyzji. Uaktualnianie informacji o sieci może być ciągłe, okresowe, wywołanae istotną zmianą topologii bądź obciążenia, jest funkcją źródła informacji i strategii routowania. Im więcej źródeł informacji i częstsze uaktualniania, tym większe prawdopodobieństwo wybrania właściwej trasy, tym również większy narzut informacji obciążających węzły i łącza. Podstawowa klasyfikacja routingu zakłada wyszczególnienie dwóch grup mechnizmów: routing statyczny bazujący na trasach statycznie zdefiniowanych przez administratora sieci. Routing statyczny zakłada również niezmienność tras informacje o dostępnych trasach nie są akualizowane, a więc narażone na dezaktualizację w wyniku zmienności sieci. Chcąc utrzymać dość aktualne informacje o dostępnych trasach administrator sieci musi na bierząco sprawdzać
konfigurację sieci i aktualizować w sposób ciągły informacje o dostępnych trasach. Pozytywnym aspektem tego mechanizmu jest szybkość przetwarzania informacji i małe wymagania sprzętowe stawiane urządzeniom routującym. routing dynamiczny bazujący na określonym protokole routingu umożliwiającym wymianę informacji pomiędzy elementami routującymi w sieci. Największą zaletą tego typu mechanizmu jest jego adaptacja do zmiennych warunków w sieci. Oznacza to, że routery reagują na wszelkie nieprawidłowości oraz zmiany parametrów podczas pracy sieci, a więc informacje przechowywane w węzłach są bardziej adekwatne i ściślej opisują bieżącą topologię w sieci. Wadą tego rodzaju mechanizmu są wymagania stawiane sprzętowym konfiguracjom węzłów sieci mocy obliczeniowej oraz ilości pamięci, jak również dodatkowy ruch generowany w sieci na skutek wymiany informacji pomiędzy węzłami. Bez względu jaki rodzaj routingu jest stosowany, informacje o dostępnych trasach przechowywane są w tablicy routingu. Wpisy wewnątrz tablicy zawierają cel (sieć docelową podaną w formie adresu sieci), urządzenie przez które trasa jest osiągalna (fizyczne urządzenie bądź adres następnego hopu), metrykę i inne. Przykładową tablicę routingu przedstawia poniższy rysunek. W momencie otrzymania danych, węzeł analizuje miejsce docelowe pakietu. Jeśli pakiet przewidziany jest do przesłania dalej, analizowany jest adres docelowy i porównywany z wpisami tras w tablicy routingu. Jeśli zostanie znaleziona pasująca reguła, pakiet przesyłany jest zgodnie z wytycznymi zawartymi w regule. Jeśli nie zostanie znaleziona odpowiednia reguła pakiet jest porzucany. Aby zapobiec sytuacji braku odpowieniej trasy, definiuje sie specjalną regułę, tzw. trasę domyślną, oznaczoną jako 0.0.0./0.0.0.0, która podaje trasę dla pakietów, które nie zostały dopasowane do żadnej ze wcześniejszych reguł. Jeżeli sieć jest udostępniana przez router brzegowy, nosi ono miano bramy. W celu wymiany informacji między routeremi o dostępnych trasach wykorzytywane są specjalne protokoły, które są przystosowane tylko do tego zadania. Przykładem takiego protokołu jest protokuł RIP (Routing Information Protocol, protokuł informacji routingowych). 2. Routing statyczny Rysunek 1Przykładowa tablica routingu. Definicje statycznych tras dokonuje się za pomoca polecenia route, zarówno w przypadku systemu Microsoft Windows, jak również Linux. Definiownie tras statycznych w systemie Linux: route wyświetlenie wpisów tablicy routingu, route add -net [adres IP sieci] netmask [maska podsieci] dev [urządzenie] polecenie dodaje do tablicy routingu trasę do sieci w wskazanym adresie poprzez odpowiednie urządzenie, przykładowo:
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 doda wpis mówiący o osiągalności sieci 192.168.1.0/24 poprzez urządzenie eth0, route add -net 127.0.0.0 netmask 255.0.0.0 dev lo doda wpis mówiący o osiągalności sieci 127.0.0.0/8 poprzez pętlę sprzężenia zwrotnego. route add -host [adres IP hosta] dev [urządznie] polecenie dodaje do tablicy routingu trasę do konkretnego hosta poprzez odpowienie urządzenie, przykładowo: route add host 192.168.1.2 dev eth2 dodat wpis mówiący o osiągalności hosta poprzez urządzenie eth2. Route add... gw [adres IP bramy] polecenie dodaje do tablicy routingu trasę do konkretnego hosta bądź sieci poprzez bramę o podanym adresie. Route... metric [metryka] polecnie definiuje trasę z określoną metryką. Route add default gw [adres IP bramy] polecenie dodaje do tablicy routingu domyślną trasę poprzez bramę o konkretnym adresie IP. Route del... - usuwa z tablicy routingu konkretny wpis. Definiowanie tras statycznych w systemie Microsoft Windows: route PRINT wyświetlanie wpisów tablicy routingu. Route ADD [adres IP celu] MASK [maska podsieci] [brama] METRIC [metryka] IF [interfejs] polecenie dodaje do tablicy routingu trasę do sieci bądź hosta o wskazanym adresie poprzez odpowiednią bramę i urządzenie z podaną metryką braną pod uwagę w przypadku kilku tras do jednego celu, przykładowo: route ADD 192.168.1.0 MASK 255.255.255.0 192.168.1.1 METRIC 1 doda wpis mówiący o osiągalności sieci 192.168.1.0/24 poprzez bramę 192.168.1.1 z metryką 1 (brak zdefiniowanego interfejsu wymusi na systemie znalezienie odpowiedniego urządzenia). Route CHANGE... - polecenie umożliwia zmianę określonej trasy. route DELETE... - polecenie umożliwia usunięcie określonej trasy. route -f polecenie usuwa wszystkie zdefiniowane trasy. 3. Routing dynamiczny Routing dynamiczny umożliwia wymianę danych pomiędzy węzłami sieci o aktualnych trasach i ich stanie. Zasadą działania routingu dynamicznego jest to, że każdy router wie podczas uruchamiania tylko o jednej sieci. Następnie ogłasza on innym routerom do niego podłączonym to, co wie, a inne routery odpowiadaja tym, co z kolei one wiedza. Niżej przedstawiony przykład pokazuje jak będzie działać wymiana informacji między połączonymi routerami tworzącymi sieć w pewnym zamkniętym obszarze. (Aby uprościć działanie algorytmu zdarzenia przedstawione są szeregowo. W rzeczywistości wiele z tych zdarzeń działałaby jednocześnie). Rysunek 2Przykładowa sieć komputerowa.
Jak pokazano na powyższym rysunku router 1 posiada dane o sieci 192.168.1.0/24 i domyślnej ścieżce do Internetu. 2 wie o sieci 192.168.2.0/24, router 3 o sieci 192.168.3.0/24 i tak dalej. Przy rozruchu tablica każdego z routerów wygląda następująco: Następnie router 1 wykonuje rozgłoszenie zawierające ścieżki które zna. Ponieważ do niego podłączone są routery 2 i 4, to aktualizują one swoje trasy. W efekcie tablice routingu będą wyglądały następująco (nowe trasy są wpisane kursywą): Następnie rozgłoszenie wykonuje router 2. y 1 i 3 odbierają pakiety i aktualizują swoje tablice: 192.168.1.0/24 przez router 2 brama do Internetu przez router 2 3 następnie dokonuje rozgłoszenia, które odczytują routery 2 i 4. W tym miejscu, niektóre routery posiadają wystarczającą ilość informacji, aby istniało wiele ścieżek do jednego miejsca
przeznaczenia. Tabele routingu wyglądają następująco: 192.168.3.0/24 przez router 3 192.168.1.0/24 przez router 2 brama do Internetu przez router 2 lub 3 lub 3 192.168.3.0/24 przez router 3 192.168.2.0/24 przez router 3 Następnie rozgłoszenia dokonuje router 4, które słyszą routery 1 i 3. Po tej operacji tablice wyglądają następująco: lub 4 192.168.3.0/24 przez router 4 192.168.4.0/24 przez router 4 192.168.3.0/24 przez router 3 192.168.1.0/24 przez router 2 lub 4 brama do Internetu przez router 2 lub 4 192.168.4.0/24 przez router 4 lub 3 lub 3
192.168.3.0/24 przez router 3 192.168.2.0/24 przez router 3 Gdy wszystkie routery wykonają kolejną rundę rozgłoszeń to tablice poszczególnych routerów będzie wyglądała następująco: 3. Analiza tras pakietów lub 4 192.168.3.0/24 przez router 4 lub 2 192.168.4.0/24 przez router 4 lub 2 lub 3 lub 3 192.168.3.0/24 przez router 3 lub 1 lub 4 192.168.1.0/24 przez router 2 lub 4 brama do Internetu przez router 2 lub 4 192.168.4.0/24 przez router 4 lub 2 lub 3 lub 3 192.168.3.0/24 przez router 3 lub 1 192.168.2.0/24 przez router 3 lub 1 traceroute Aplikacja traceroute jest programem pozwalającym na zbadanie trasy pakietu od stacji źródłowej do docelowej wraz z oszacowaniem czasów opóźnień na poszczególnych węzłach (czas minimalny, maksymalny i średni). Korzystanie z aplikacji sprowadza się do wprowadzenia adresu analizowanego węzla, w przypadku systemu windows tracert [adres IP], w przypadku Linuxa traceroute [adres IP]. Pathping Aplikacja pathping jest programem będącym rozszerzeniem narzędzia traceroute o moduł statyczny podający dla każdego węzła procent pakietów poprawnych, błędnych, odrzuconych, jak i zagubionych w stosunku do całości transmitowanych danych. Program jest standardowym narzędziem systemu Microsoft Windows, jego użycie jest analogiczne w stosunku do poprzednika pathping [adres IP]. Visula Route
Pakiet Visula Route jest narzędziem pozwalającym analizować połączenia sieciowe i wizualizować ścieżki połączeń w trybie graficznym. Praca z programem sprowadza się do wpisania adresu hosta, do którego trasę chcemy zbadać. Wszystkie węzły napotkane w drodze pakietu są listowane w tabeli oraz kreślone na mapie świata. Dodatkowo z każdym wpisem do tableli skojarzone są dodatkowe informacje dotyczące lokalizacji węzła, przynależności do określonej sieci oraz kontakty do osoby zarządzającej siecią. Dla każdego hopu analizowane są również czasy odpowiedzi minimalny, maksymalny oraz średni, prezentowane w formie zgrubnych wykresów. Okno główne programu przedstawione jest na poniższym rysunku. Ćwiczenia Rysunek 3Śledzenie trasy w programie visual route. 1. Dla zaprezentowanej na poniższym rysunku sieci należy rozpisać tabelę routingu dla poszczególnych routerów w sieci: Cel / Maska Brama Interfejs Metryka
2. W oparciu o istniejącą infrastrukturę należy zorganizować sieć lokalną obejmującą adresy klasy C z rodziny 192.168.1.x/24 począwszy od 192.168.1.2/24. Należy dodać wpis do tablicy routingu domyślnej trasy na adres bramy 192.168.1.1. Poprawność konfiguracji należy wykazać pingując dowolny adres zewnętrzny. 3. Należy uzupełnić tablicę routingu o wpis oznaczający trasę do własnego adresu zewnętrznego poprzez interfejs pętli zwrotnej. 4. Używając narzędzi ping oraz tracert bądź traceroute należy zbadać trasę pakietu od komputera lokalnego do serwera www.wp.pl 5. Z wykorzystaniem narzędzia pathping należy zbadać opóźnienia na poszczególnych węzłach podczas komunikacji z serwerem posejdon.wpk.p.lodz.pl 6. Z wykorzystaniem pakietu Visual Route należy zbadać trasę do serwera www.google.pl. Gdzie znajduje się serwer hostujący temu portaliwi? 7. Należy przeanalizować dwa znalezione adresy IP bądź adresy domowe spośród czterech krajów: Islandia, Honduras, Kongo, Australia pozyskując z nich następujące informacje: miasto, w jakim znajduje się serwer WWW hostujący analizowanej domenie (jeśli informacja jest dostępna), adres IP serwera WWW hostującego analizowanej domenie, nazwę sieci, w jakiej znajduje się serwer WWW oraz najważniejsze parametry przebycia przez pakiet analizowanej trasy: średni czas dotarcia do pakietu, minimalny i maksymalny czas przebycia pakietu oraz liczbę przeskoków niezbędnych do przebycia trasy.