Routing jest niczym innym jak wskazówkami jednej sieci dla innej. Te wskazówki zwane także marszrutą mogą być ogłaszane dynamicznie przez router lub ustalone statycznie przez administratora.
Administrator sieci wybierając routing dynamiczny musi brać pod uwagę wiele czynników. Wielkość sieci, przepustowość łącz, moc przeliczeniową routerów, rodzaj i model routerów, działające już w sieci protokoły
Routing jest procesem, w którym router używając przednich pakietów przesyła dane do miejsca przeznaczenia. Router podejmuje decyzje bazując na adresie IP hosta docelowego zawartym w pakiecie. Wszystkie urządzenia na całej drodze pakietu używają tego adresu IP, aby przesłać dane we właściwe miejsce. Aby router podejmował właściwe decyzje musi nauczyć się jaka jest trasa do odległej sieci. Gdy router używa routingu dynamicznego dowiaduje się tego od sąsiadujących routerów. W przypadku, gdy router używa routingu statycznego te informacje są wprowadzane ręcznie przez administratora.
Ponieważ routing statyczny musi być wprowadzany ręcznie przez administratora, każda zmiana w topologii sieci wymaga dokonania zmian w konfiguracji routingu. W dużej sieci ręcznie utrzymanie tablicy routingu może wymagać olbrzymiej ilości poświęconego czasu. W małej sieci z małą ilością możliwych zmian, konfiguracja routingu statycznego wymaga mniejszego wkładu. Ponieważ routing statyczny wymaga dodatkowych zdolnośi administracyjnych nie jest on tak elastyczny jak routing dynamiczny. Nawet w dużych sieciach, gdzie routing satyczny jest planowany do wdrożenia, współdziała on z routingiem dynamicznym.
Operacje routingu statycznego mogą być podzielone na trzy części:
Czasami routing statyczny jest stosowany jako wyjście awaryjne. Routing statyczny jest skonfigurowany na routerze, jednak jest wykorzystywany tylko w przypadku, gdy zawiedzie routing dynamiczny. Aby osiągnąć taką konfigurację do routingu statycznego
przypisywany jest wysoki dystans administracyjny.
waycross(config)#ip route 172.16.3.0 255.255.255.0 172.16.4.1 130
Przygotowanie do konfiguracji:
Domyślny routing dla pakietów jest stosowany, gdy nie ma odpowiednich wpisów w tablicy routingu. Routing domyślny jest specjalnym rodzajem routingu statycznego
i w konfiguracji routera ma postać:
ip route 0.0.0.0 0.0.0.0 [next-hop-address | outgoing interface]
Konfiguracja routingu domyślnego wygląda następująco:
Po skonfigurowaniu routigu statycznego należy sprawdzić poprawność wpisów w tablicy routingu i przetestować sam routing, czy działa tak jak zakładaliśmy. Sprawdzenie aktywnej konfiguracji, która jest zapisana w pamięci RAM odbywa się poprzez wydanie polecenia show running-config. Wpisy w tablicy routingu przeglądamy za pomocą polecenia show ip route.
Weryfikacja routingu statycznego przebiega następująco:
Protokoły routingu różnią się od protokołów routowalnych, pod względem funkcjonowania i powierzonych im zadań. Protokół routingu słóży do komunikacji między routerami. Protokół routingu pozwala jednemu routewrowi dzielić się informacjami z innymi routerami, które są razem z nim w jedej sieci. Router zbiera, więc informacje od innych routerów, za pomocą protokołów routingu budując w ten sposób swoją tablicę routingu. Przykłady protokołów routingu:
Protokół routowalny jest stosowany do bezpośredniego połączenia użytkowników. Protokól routowalny posiada wystarczająco dużo informacji w swojej warstwie sieci, aby pozwolić pakietowi na przebycie całej drogi od źródła do celu, nawet o zmienionym schemacie adresowanie. Przykłady potokołów routowalnych:
Autonomus System jest zbiorem sieci jednej administracji i dzielący jedną strategię routingu. Na zewnątrz AS jest postrzegany jako jeden byt. The American Registry of Internet Numbers (ARIN) prowadzi spis Systemów Autonomicznych. Numer każdego AS to liczba 16-bitowa. Protokoły routingu takie jak Cisco IGRP wymagają podania unikalnego numeru AS.
Zadaniem protokołów routingu jest budowa i utrzymanie tablicy routingu. Tablica ta zawiera "nauczone" sieci i numery portów przez jakie można dostać się do tych sieci. Routery używaja protokołów routingu do zarządzania informacjami otrzymanymi od innych routerów, informacjami otrzymanymi od swoich własnych interfejsów i informacjami wprowadzonymi ręcznie.
Protokół routingu uczy się jak najlepiej dostać się do osiągalnego routera i umieszcza te informacje w tablicy routingu, a nieaktualne informacje kasuje z tej tablicy. Router używa tych informacji do przesyłania pakietów do celu za pomocą protokołu routowalnego.
Algorytm routingu jest podstawą routingu dynamicznego. Kiedy topologia sieci się zmienia z powodu dodania nowych urządzeń, rekonfiguracji lub braku dostępu do poszczegulnych urządzeń, baza na temat sieci też musi ulec zmianie. Baza informacji o sieciach musi odzwierciedlać jej faktyczną topologię.
Kiedy wszystkie routery w sieci wewnętrznej operują na tych samych wiadomościach , mówi się że sieć jest zbieżna. Szybkie osiągnięcie stanu zbieżności jest pożądane ponieważ redukuje to okres czasu, podczas którego routery podejmują błędne decyzje.
Autonomus System (AS) przeprowadza podział dużej sieci na mniejsze i bardziej podatne sieci. Każdy AS ma swój własny zestaw regół i swoją własną politykę. Ma także swój unikalny numer, który go odznacza na tele innych AS na całym świecie.
Większość protokołów routingu można sklasyfikować w dwóch kategoriach:
Algorytm routingu typu distance vector kopiuje okresowo tabicę routingu z jednego routera na inny. Te regularne uaktualnienia pomiędzy routerami komunikują zmiany w topologii. Algorytmy Distance Vector są zwane także jako algorytmy Bellman-Ford.
Każdy router otrzymuje tablice routingu od bezpośrednio podłączonego sąsiada. Router A otrzymuje informacje od Routera B, Router B dodaje wtedy nastpny "distance vector", czyli numer skoku. Router B przesyła swoją nową tablicę routingu do następnego sąsiada, czyli do Routera C. Ta sama czynność jest powtarzana między każdymi bezpośrednio połączonymi routerami. Algorytm może gromadzić wartości odległości przez co utrzymuje bazę danych na temat topologii sieci. Jednak algorytmy tego typu nie pozwalają routerowi na zapoznanie się z dokładną topologią całej sieci, każdy router "widzi" tylko bezpośrednio połączonego sąsiada.
Każdy router, który używa algorytmu routingu typu distance vector jest zidentyfikowany przez wszystkich swoich sąsiadów. Interfejs routera, który daje dostęp do bezpośrednio podłączonej sieci ma ustawioną wartość distance na 0. Proces odkrywania sieci odbywa się za pomocą pakietów odbieranych od sąsiadów. Router A uczy się na temat swojej sieci bazując na informacjach otrzymanych od Routera B. Wpisy na temat każdej znanej sieci zawarte w tablicy routingu dotyczą między innymi informacji jak daleko jest ta sieć.
Kiedy zdarzy się zmiana w topologii sieci, informacje na temat tej sieci sa akutalizowane. Proces odkrywania topologii sieci odbywa się kolejno od routera do routera. Algorytmy distance vector wysyłają uaktualnienia do swoich sąsiadów. Tablice routingu zawierają informacje na temat całkowitego kosztu
ścieżki zdefiniowanej za pomocą metryk protokołu.
Metryka routingu obejmuje następujace elementy:
Drugim typem protokołów routingu są protokoły wykorzystujące algorytm link state. Algorytmy typu link state są znane inaczej jako algorytmy Dijkstras lub SPF (shortest path first). Protokoły tego typu zachowują dokładną topologię sieci. Algorytmy distane vector nie mają dokładnych informacji na temat odległych sieci i routerów.
Algorytm routingu przechowuje dokładne informacje na temat odległych routerów i ich wzajemnych połączeniach.
Algorytmy routingu link state używają:
Algorytm SPF oblicza rozciągłość sieci. Router buduje logiczną topologię sieci w postaci drzewa, w którym on sam jest "korzeniem", z którego wychodzą wszystkie możliwe ścieżki obsługiwane przez protokół link state. Później wszystkie te ścieżki sa sortowane przez SPF. Lista najlepszych ścieżek i interfejsów jest potem umieszczana w tablicy routingu.
Router, który pierwszy zostaje poinformowany o zmianie topologii zmienia informacje, które cyklicznie rozsyła, tak aby inne routery mogły także dokonać aktualizacji swoich tablic routingu. Osiągnięcie zbieżności osiąga się, gdy każdy router ma informacje na temat nazw routerów, statusów ich portów i kosztów ścieżki. Router buduje pakiet LSA z listą nowych sąsiadów, z informacjami na temat zmian kosztów i z listą ścieżek, które nie są już aktualne. Taki pakiet jest następnie rozsyłany do wszystkich routerów.
Kiedy router dostaje pakiet LSA z nowymi danymi, baza danych jest uaktualniana i za pomocą algorytmu PSF jest obiczana nowa mapa sieci z listą najkrótszych scieżek. Tak więc tablica routingu jest uaktualniana za każdym razem, kiedy router otrzyma pakiet LSA.
Algorytm link state jest związany z :
Router ustala ścieżkę dla pakietów z jednego węzła danych do innego korzystając z dwóch funkcji:
Włączenie jakiegokolwiek protokołu routingu IP na routerze pociąga za sobą konieczność konfiguracji dodatkowych parametrów globalnych i parametrów routingu. Globalne parametry uwzględzniają wybór protokołu routingu np. RIP, IGRP, EIGRP lub OSPF. Należy także wybrać numery IP dla sieci. Routing dynamiczny używa dodatkowo rozgłoszeń broadcast i multicas do komunikacji z innymi routerami. Metryki routingu pomagają routerowi odszukać i wybrać najlepszą ścieżkę do każdej sieci lub podsieci. Przykład prostej konfiguracji protokołu routingu wygląda nasępująco:
GAD(config)#router ripNumer sieci bazuje na klasie adresu, a nie na adresie podsieci lub adresach IP konkretnych hostów. Ważniejsze klasy dozwolonych adresów to klasy A, B i C.
Router może korzystać z różnych protokołów routingu, które są zestawione w Warstwie Internetu stosu TCP/IP. Przykłady protokołów routingu IP:
Wewnętrzne protokoły routingu są zaprojektowane dla sieci, które są pod kontrolą jednej organizacji. Kryterium dla tych protokołów jest znalezienie najlepszej ścieżki poprzez wewnętrzną sieć. Jednym słowem metryka wyboru trasy jest najważniejszą rzeczą w tych protokołach.
Zewnętrzne protokoły routingu są zaprojektowane do użycia między dwoma (lub więcej) różnymi sieciami, które są pod kontrolą różnych organizacji. Przeważnie są użyte między ISP lub między firmą i ISP. Na przykład jakaś firma chce uruchomić BGP między routerem umieszczonym w swojej siedzibie i routerem umieszczonym w ISP. Przed uruchomieniem protokołu potrzebne będą następujące informacje:
Każdy system autonomiczny musi posiadać swój numer identyfikacjuny, który jest nadawany przez American Registry of Internet Numbers (ARIN) lub prowaidera. Taki identyfikator to 16- bitowy numer. Protokoły routingu takie jak IGRP lub EIGRP żądają tego numeru identyfikacyjnego.
Algorytm Distance vector (znany także jako algorytm Bellman-Ford) nawołuje każdy router do wysyłania całej lub części swojej tablicy routingu tylko do swoich bezpośrednich sąsiadów. Algorytm Distance vector preferuje routing oparty na informacjach dostarczonych przez sąsiadów.
Protokoły Distance vector zużywają mniej systemowych zasobów routera, za to ich wadą jest powolna zbieżność i użycie metryk routingu, które nie nadają sie dobrze do użycia w dużych sieciach. Protokoły Distance vector bazują na odszukaniu dystansu, czyli liczby skoków i wektora, czyli właściwego kierunku do celu.
Ten prosty typ routingu wymaga od każdego routera informowania sojego sąsiada o swojej tablicy routingu. Dla każdej poznanej ścieżki router wysyła do swojego sąsiada informację o najniższym koszcie, a ten zapamiętuje te informacje w swojej tablicy routingu. RIP i IGRP sa najbardziej powszechnymi protokołami tego typu.
Algorytmy Link state (znane także jako shortest path first, czyli najpierw najkrótsza ścieżka) wysyłają informacje o routingu do wszystkich routerów kreując w ten sposób mapę całej sieci. Każdy router wysyła pakiet z informacjami do wszystkich swoich sąsiadów. Te pakiety zawierają informacje o sieciach z którymi router jest połączony. Routery gromadzą wszystkie te informacje do skompletowania mapy całej sieci i wytyczenia najkrótszej ścieżki do wszystkich miejsc w sieci. Raz osiągnięta zbieżność sprawia, że następne pakiety uaktualniające nie są już takie duże. Rozsyłane sa tylko informacje na temat zmian w topologii, a nie wszystkie informacje na temat sieci.
Ponieważ zbieżność jest szybciej osiągalna niż za pomocą protokołów Distance vector. Algorytmy Link state są mniej podatne na pętle routingu. Algorytmy te są róznież mniej podatne na błędy w routingu, ale za to zużywaja więcej zasobów systemowych routera. Algorytmy Link state mogą być równiż droższe do wdrożenia i eksploatacji. Jednak generalnie pozwalają lepiej scalić całą sieć niż protokoły Distance vector.
Kiedy topologia sieci się zmienia są rozsyłane pakiety link-state advertisement (LSA). Wszystkie routery notują zmiany w topologii i stosownie do nowej sytuacji wyznaczają nowe cieżki routingu. Ta metoda jest bardziej niezawodna, łatwiejsza do usuwania błędów, i zajmuje mniej przepustowości na łączach sieciowych. OSPF i IS-IS są przykładami protokołów tego typu.