GRAF DECYZJI O TRASIE PAKIETU
ROUTING STATYCZNY W SIECIACH IP Routery są urządzeniami, które na podstawie informacji zawartych w nagłówku odebranego pakietu oraz danych odebranych od sąsiednich urządzeń są w stanie podjąć decyzję, gdzie przesłać pakiet aby trafił on w miejsce swojego przeznaczenia. Każdy router posiada własną tablicę routingu, na podstawie której wysyła pakiet przez odpowiedni interfejs. Takie tablice routingu zawierają wszystkie znane routerowi adresy IP odległości oraz odpowiadające im numery interfejsów, którymi można osiągnąć żądany adres. Routing statyczny polega na ręcznej modyfikacji przez administratora wpisów do tablic routingu. Podstawową zaletą implementacji takiego rozwiązania w małych sieciach są stosunkowo małe opóźnienia. Routery posiadające statyczne trasy nie wymieniają się informacjami na temat sieci, nie korzystają również z algorytmów pozwalających na wybór optymalnej drogi. Statycznie definiowane trasy mogą znacznie zwiększać bezpieczeństwo w sieci.
ROUTING DYNAMICZNY W SIECIACH IP Protokoły routingu dynamicznego mają zazadanie określenie zasad wymiany tablic routingu oraz sposobu wyliczania wartości metryki routingu.
ROUTING DYNAMICZNY W SIECIACH IP Podstawową i zaletą tego rozwiązania jest wprowadzenie mechanizmów wymiany informacji między routerami. W routingu dynamicznym same routery budują swoje tablice routingu i w razie potrzeby uaktualniają je. Router zauważa zmianę topologii, informuje o niej inne, sąsiednie routery i przystosowuje się do nowych warunków. Czas potrzebny sieci na uzyskanie zbieżności jest znacznie krótszy niż w przypadku routingu statycznego. W przypadku, gdy do żądanej lokalizacji jest kilka tras (tzw. nadmiarowych ścieżek), router porównuje metryki i wybiera trasę z przypisaną metryką o większej wartości. Wyróżniamy trzy podstawowe algorytmy: Distance Wektor, (np. RIP) Link State, (np. OSPF) routing Hybrydowy.
TABLICA ROUTINGU Dla każdego nadchodzącego pakietu sprawdzana jest zgodność pomiędzy adresem docelowym a wpisami z kolumny Network/Subnet Każdy wiersz określa trasę do sieci/podsieci
Jak powinien być zinterpretowany trzeci wiersz? TABLICA ROUTINGU
TABLICA ROUTINGU Jeżeli tylko jedna trasa może bć wybrana tam właśnie wysyłanyjest pakiet. Trasa 0.0.0.0 oznacza tzw. trasę domyślną
TABLICA ROUTINGU Jeżeli więcej niż jedna trasa może być wybrana za najlepsząuważa się tę speniającą warunek dłuższego prefiksu sieciowego. Jeżeli powyższa reguła nie wystarcza rozstrzyga wartośc metryki routingu
REGUŁA LONGEST MATCH PRZYKŁAD: Jeżeli adres IP przeznaczenia to...5 oraz zdefiniowane są trzy prefix-y w tablicy routingu (...0/4,..0.0/6, and.0.0.0/8), router powinien wybrać sieć docelową...0/4. Sieć ta tj,...0/4 jest wybierana ze względu na fakt, iż prefix dla niej zawiera najwięcej odpowiadających bitów w adresie docelowym.
PODZIAŁ TOPOLOGICZNY Zestaw sieci i routerów administrowanych spójnie przez jedną organizację Definicja nie jest ścisła Zwykle tożsamy z firmą Potrzebny, żeby podzielić na mniejsze, zarządzalne fragmenty ogromną sieć, jaką jest Internet Każdy system autonomiczny może posługiwać się swoim protokołem routingu PODZIAŁ TOPOLOGICZNY SYSTEM AUTONOMICZNY Interior Gateway Protocols (IGPs) Używane przez routery wewnątrz systemu autonomicznego Opisywane trasy leżą w obrębie systemu autonomicznego Exterior Gateway Protocols (EGPs) Używane do komunikacji pomiędzy systemami autonomicznymi. Opisywane trasy leżą w obrębie Internetu
PODZIAŁ TOPOLOGICZNY EGP (pomiędzy systemami) Border Gateway Protocol (BGP) IGP (wewnątrz systemów autonomicznych) Routing Information Protocol (RIP) Open Shortest Path First Protocol (OSPF)
PROTOKOŁY ROUTINGU RIP Protokół RIP (ang. Routing Information Protocol) jest protokołem routingu, który opiera swoje działanie na algorytmie distance-vector. Protokół RIP jest obecnie szeroko wykorzystywany w sieci Internet mimo, że należy do najstarszych protokołów routingu. Wyznacza on optymalne trasy korzystając wyłącznie z jednej metryki Ilość skoków (ang. hops) bezpośrednio decyduje o wyborze drogi. Im pakiet ma na swojej drodze mniej urządzeń, tym lepiej. Router wysyła, otrzymuje uaktualnienia od sąsiadów, interpretuje te dane i zapisuje do tablicy jedynie odległości między routerami w sieci.
PROTOKOŁY ROUTINGU RIP Komunikaty RIP można podzielić na dwa główne typy: komunikaty z informacjami o trasach i komunikaty z prośbami o informacje. Nagłówki obu mają postać przedstawioną poniżej. Polecenie (ang. command) - wskazuje, czy pakiet jest zgłoszeniem czy odpowiedzią. Zgłoszenie pyta, czy router wysłał całą tablicę routingu czy jej część. Odpowiedzią może być dowolne periodyczne uaktualnienie routingu lub odpowiedź na zgłoszenie. Przy przenoszeniu obszernych tablic routingu zachodzi potrzeba użycia wielu pakietów. Wersja (ang.( version number) - określa użytą wersję protokołu RIP. Nie używane (ang. unused) - pole nie używane przyjmuje wartość zero. Adres (ang. address) - określa adres IP dla wejścia.
PROTOKOŁY ROUTINGU RIP Rodzina sieci Rodzina sieci (ang. Address - Family Identyfier) - określa użyty adres rodziny. Protokół RIP jest przeznaczony do przenoszenia informacji o routingu dal wielu różnych protokołów. Każde wejście ma identyfikator AFI wskazujący typ specyfikowanego adresu. Dla protokołu IP identyfikator AFI przyjmuje wartość. Odległość sieci (ang. metric) - wskazuje liczbę przejść pomiędzy sieciami (routerami), które pojawiły się na drodze do miejsca przeznaczenia.
METRYKA ROUTINGU RIP Jedyną miarą używaną przez protokół RIP do mierzenia odległości pomiędzy źródłem a miejscem przeznaczenia jest ilość skoków (ang. hop-count). Każdemu skokowi na drodze od źródła do miejsca przeznaczenia zostaje przypisana wartość, najczęściej. Maksymalna liczba skoków na ścieżce wynosi 5. Jeśli router przyjmie uaktualnienie routingu, które zawiera nowe lub zmienione wejście, i jeśli po zwiększeniu miary o jeden nastąpi przekroczenie granicy 5 skoków, to takie miejsce przeznaczenia w sieci staje się dla routera nieosiągalne.
RIP WŁAŚCIWOŚCI Szeroko dostępny Metryka: hop count Cykliczne update y Łatwy w implementacji Często w cenie RFC 058 Wolna konwegencja Brak wsparcia VLSM Brak wsparcia nieciągłoci sieci Routing loops Count to infinity
PROTOKOŁY ROUTINGU RIP Decydującym czynnikiem wprowadzenie RIP był brak możliwości obsługi masek podsieci adresów IP wersji pierwszej RIP'a. Najważniejszymi w stosunku do pierwotnej wersji RIPa możliwościami są: autoryzacja, czyli mechanizmy pozwalające na identyfikacje tożsamości użytkownika, wprowadzenie maski podsieci, adresów IP następnych skoków i wiadomości multicastingowych. W miejsce pól zarezerwowanych pojawiły się pola związane z nowymi możliwościami RIP'u : domena routowania, znacznik trasy, maska podsieci, następny skok, odległość.
PROTOKOŁY ROUTINGU RIP Polecenie (ang. command) wskazuje, czy pakiet jest zgłoszeniem czy odpowiedzią. Zgłoszenie pyta, czy router wysłał całą tablicę routingu czy jej część. Odpowiedzią może być dobrowolne periodyczne uaktualnienie routingu lub odpowiedź na zgłoszenie. Przy przenoszeniu obszernych tablic routingu zachodzi potrzeba użycia wielu pakietów. Wersja (ang. version) - określa użytą wersję protokołu RIP. W pakiecie RIP implementującym jakiekolwiek pola RIP- lub mechanizm autoryzacji jest ustawiona wartość.
PROTOKOŁY ROUTINGU RIP Domena routowania (ang. routing domain) identyfikator systemu autonomicznego, informuje o tym, które tablice routowania powinny być uaktualnione. Rodzina sieci Rodzina sieci (ang. address - family identyfier) - określa użyty adres rodziny. Protokół RIP jest przeznaczony do przenoszenia informacji o routingu dal wielu różnych protokołów. Każde wejście ma identyfikator AFI wskazujący typ specyfikowanego adresu. Dla protokołu IP identyfikator AFI przyjmuje wartość. Jeśli identyfikator AFI dla pierwszego wejścia o komunikacie przyjmuje wartość 0xFFFF, to oznacza, że wejście zawiera informację o autoryzacji, czyli typ autoryzacji i hasło.znacznik trasy (ang. route tag) - pozwala rozróżnić rasę wewnętrzną (poznawaną przez protokół RIP) od zewnętrznej (poznawanej przez inne protokoły).
PROTOKOŁY ROUTINGU RIP Adres (ang. address) - określa adres IP dla wejścia. Maska podsieci (ang. subnet mask) - zawiera maskę podsieci dla określonego wejścia. Wprowadzenie tego pola umożliwiło protokołowi RIP- obsługiwanie podsieci. Może być implementowany w sieciach o bardziej złożonych topologiach. Jeśli wartość tego pola przyjmuje wartość zero oznacza to, że adres IP nie posiada maski podsieci. Następny skok (ang. next hop) - wskazuje adres IP następnego skoku (routera), do którego pakiet dla danego wejścia powinien być skierowany. Odległość sieci (ang. metric) - wskazuje liczbę przejść pomiędzy sieciami (routerami), które pojawiły się na drodze do miejsca przeznaczenia.
RIP WŁAŚCIWOŚCI RFC 73 Obsługiwany przez Cisco IOS. Obsługa VLSM Sumaryzacja routingu Classless InterDomain Routing (CIDR) Uaktualnianie routingu - multicast Autentykacja update ów (MD5)
PROTOKÓł RIP - PODSTAWY Przykładowa struktura zawiera sieci typu multi-access oraz 3 typu point-topoint. Każdy router ma nadaną nazwę (A do E), adres IP, oraz numer interfejsu. Dla uproszczenia numer intrfejsu i numer hosta w adresie IP są identyczne, np. router C jest dołączony do siecii 0..0.0/6 poprzez interfej, który ma przypisany adres 0..0.. Bellman-Ford algorithm Repeat For every node x For every neighbor z For every destination y d(x,y) Update(x,y,z) Until Converge Adres sieciowu i maska sieci A 0./6 B 3 0./6 C Koszt łącza Iadres IP interfejsu 0.3/6 3 0.6/6 5 Numer interfejsu D 6 4 E 0.5/6 0.4/6
ZIMNY START Założenia zimnego startu Każdy węzeł sieci jest uaktywniany z minimalną wiedzą na temat topologii sieci, tj. Posiada wiedzę na temat swoich interfejsów i sieci IP, z którymi przez te interfejsy może się połączyć, Informacja ta pochodzi z danych konfiguracyjnych interfejsu. Każdy interfejs posiada zdefiniowane przynajmniej elementy: Adres IP Mska sieciowa Numer sieci jest pośrednio uzyskiwany z adresu IP oraz maski sieciowej. Posiada wiedzę na temat kosztu każdego obsługiwanego łącza/sieci.
ZIMNY START - PRZYKŁAD Routing table for A 0..0.0 6 ---------- 0.3.0.0 6 ---------- 3 Routing table for C 0..0.0 6 ---------- 0.5.0.0 6 ---------- 5 Routing table for B 0..0.0 6 ---------- 0..0.0 6 ---------- 0.6.0.0 6 ---------- 3 4 Routing table for D 0.3.0.0 6 ---------- 3 0.4.0.0 6 ---------- 6 Routing table for E 0.4.0.0 6 ---------- 6 0.5.0.0 6 ---------- 5 0.6.0.0 6 ---------- 4 4 A 0.3/6 0./6 D B 3 4 3 0.6/6 4 6 E 0./6 5 0.5/6 C 0.4/6
WYMIANA INFORMACJI Algorytm wysyłania Router wysyła na wszystkie interfejsy (do wszystkich przyłączonych bezpośrednio sieci) wektor odległości zawierający wszystkie znane sieci i koszt osiągnięcia tych sieci. Dla każdej sieci z tablicy routingu, wysyłane są: Numer IP sieci Maska sieciowa Koszt A 0.3/6 D 0./6 3 6 0.4/6 B 3 0./6 4 0.6/6 4 E 5 0.5/6 C Informacje te są przesyłane przez sieci typu multi-access na zasadzie broadcastu dzięki czemu wszystkie routery w sieci mogą otrzymać ten wektor.
WYMIANA INFORMACJI Algorytm otrzymywania Dodaj koszt na danym interfejsie do wartości kosztu osiągnięcia danej sieci, otrzymanego na ten interfejs. Jeżeli dana sieć nie znajduje się w tablicy routingu, dodaj wpis: Ustaw pole interface w tablicy routingu na wartość odpowiadającą numerowi interfejsu, na który nadesłano wektor odległości, Ustaw pole gateway w tablicy routingu na wartość odpowiadającą nazwie węzła, nadawcy wektora odległości. W przypadku sieci typu multi-access, pole gateway odpowiada polu next hop. Wyslij nowy wektor do wszystkich sąsiadów. Jeżeli dana sieć znajduje się w tablicy routingu, to: Jeżeli nadawca jest ten sam jak wcześniej już zapisany w tablicy to: Jeżeli koszt zawarty w otrzymanym wektorze jest różny od posiadanej wartości to uaktualnij wpis w swojej tablicy routingu i wyślij nowy wektor odległości do wszyskich sasiadów. Wprzeciwnym wypadku Jeżeli nowy koszt jest MNIEJSZY niż istniejący w tablicy Uaktualnij wartość koszty, interfejsu oraz gateway`a Wyślij nowy wektor odległości do wszyskich sasiadów.
ALGORYTM NADAWANIA - PRZYKŁAD A 0.3/6 Węzeł A wysyła swój wektor odległości na interfejs i rozgłasza go poprze interfejs W wyniku nadawania przez A, B i D zwiększają swoją widzę o topologii sieci. 0./6 3 B 3 4 0.6/6 0./6 5 C Old table for B 0..0.0 6 ---------- 0..0.0 6 ---------- 0.6.0.0 6 ---------- 3 4 New table for B 0..0.0 6 ---------- 0..0.0 6 ---------- 0.3.0.0 6 0..0. 4 0.6.0.0 6 ---------- 3 4 Old table for D 0.3.0.0 6 ---------- 3 0.4.0.0 6 ---------- 6 D 4 6 0.4/6 E 0.5/6 New table for D 0..0.0 6 0.3.0. 4 0.3.0.0 6 ---------- 3 0.4.0.0 6 ---------- 6
ALGORYTM NADAWANIA PRZYKŁAD Węzły B oraz D uaktualniły swoje tablice routingu, wobec tego mogą wysłąć swoje nowe wektory odległości. Węzeł B wysyła nowy wektor do A, C, E Węzeł D wysyła nowy wektor doo A, E Dla przejrzystości przykładu, załóżmy, że wektor z B nadszedł pierwszy Węzeł A otrzyma od B wektory dla sieci 0., 0. oraz 0.6. Węzeł A dodaje swój lokalny koszt na interejsie () do wartości kosztów wewszystkich 3 wektorach. Sieci 0. oraz 0.6 są nową informacją wobec tego A dadaje odpowiednie wpisy. Informacja o sieci 0.nie będzie uaktualniona ponieważ koszt jst większy kosztt już isniejący w tablicy. Old table for A New table for A A 0./6 3 0.3/6 D 6 0.4/6 B 3 0./6 4 0.6/6 5 4 0.5/6 E C 0..0.0 6 ---------- 0.3.0.0 6 ---------- 3 0..0.0 6 ---------- 0..0.0 6 0..0. 3 0.3.0.0 6 ---------- 3 0.6.0.0 6 0..0. 5
ALGORYTM NADAWANIA PRZYKŁAD Table for A 0..0.0 6 ---------- 0..0.0 6 0..0. 3 0.3.0.0 6 ---------- 3 0.4.0.0 6 0.3.0. 9 0.5.0.0 6 0..0. 8 0.6.0.0 6 0..0. 5 Jaka będzie tablica routingu dla D???? A 0.3/6 D 0./6 3 6 3 0.4/6 B 4 4 0.6/6 E 0./6 5 0.5/6 C Table for B 0..0.0 6 ---------- 0..0.0 6 ---------- 0.3.0.0 6 0..0. 4 0.4.0.0 6 0.6.0.4 3 0 0.5.0.0 6 0..0. 7 0.6.0.0 6 ---------- 3 4 Table for C 0..0.0 6 0..0. 3 0..0.0 6 ---------- 0.3.0.0 6 0..0. 6 0.4.0.0 6 0.5.0. 0.5.0.0 6 ---------- 5 0.6.0.0 6 0..0. 6 Table for E 0..0.0 6 0.6.0.3 4 5 0..0.0 6 0.6.0.3 4 6 0.3.0.0 6 0.6.0.3 4 8 0.4.0.0 6 ---------- 6 0.5.0.0 6 ---------- 5 0.6.0.0 6 ---------- 4 4
REAKCJA NA USZKODZENIE A i B wykryły uszkodzenie A oraz B ustawiają wartość kosztu dla wszystkich wpisów w tablicy odnoszących się do odpowiednio i na nieskończoność. Table for A 0..0.0 6 ---------- inf 0..0.0 6 0..0. inf 0.3.0.0 6 ---------- 3 0.4.0.0 6 0.3.0. 9 0.5.0.0 6 0..0. inf 0.6.0.0 6 0..0. inf A 0.3/6 0./6 D B 3 4 3 0.6/6 4 6 E 0./6 5 0.5/6 C Table for B 0..0.0 6 ---------- inf 0..0.0 6 ---------- 0.3.0.0 6 0..0. inf 0.4.0.0 6 0.6.0.4 3 0 0.5.0.0 6 0..0. 7 0.6.0.0 6 ---------- 3 4 0.4/6