Rozdział 10
Interior Gateway Routing Protocol (IGRP)
Protokół RIP okazał się zdolny do wykorzystywania wektorów odległości w obliczaniu tras w obrębie systemów autonomicznych. Niestety, w obliczu coraz powszechniejszego wykorzystywania routingu i protokołu IP przez coraz większe organizacje, pewne wrodzone ograniczenia protokołu RIP stawały się coraz bardziej widoczne.
Dlatego w reakcji na ten proces firma Cisco opracowała protokół IGRP (Interior Gateway Routing Protocol), który zachowywał prostotę użycia RIP przy jednoczesnej eliminacji ograniczeń działania. Protokół IGRP okazał się tak dużym sukcesem, że zapewnił firmie Cisco pozycję dostawcy rozwiązań technologii routingu.
Aż do lat osiemdziesiątych nie było dużego zapotrzebowania organizacji komercyjnych na sieci złożone, gdyż organizacje te opierały swoje działanie na infrastrukturze składającej się z terminali, sterowników klasterów i komputerów typu mainframe. Jedynie grupy badawcze i uniwersytety odczuwały konieczność stosowania sieci złożonej. Tak ograniczone wymagania rynku co do technologii sieci złożonej oznaczały, że istniała zdecydowana większość małych sieci komputerowych. Były to sprzyjające warunki do uzyskania przez RIP ogromnej popularności.
Jednak w latach osiemdziesiątych dokonał się znaczny postęp technologiczny. Najważniejszymi jego elementami było opracowanie ujednoliconej platformy dla komputerów typu desktop (PC) oraz pojawienie się sieci LAN. Razem, PC i LAN, stworzyły nową wizję niedrogiej sieci komputerowej. Co za tym idzie, wzrosło zapotrzebowanie na sieci złożone. W tych nowych warunkach RIP zaczął zdradzać oznaki swojego zaawansowanego wieku.
Prawdopodobnie największym ograniczeniem protokołu RIP było to, że zaprojektowany został do zastosowania tylko w małych systemach autonomicznych. Jakkolwiek w początkowych dniach istnienia sieci złożonej nie było to uznawane za wadę, w połowie lat osiemdziesiątych systemy autonomiczne uchodziły już za przeżytek. Dodatkowo jednak sieci złożone zaczęły być coraz większe i coraz bardziej skomplikowane. Wszystko to powodowało pojawianie się nieprzelicznych trudności w działaniu sieci RIP. Jako rozwiązanie tego problemu firma Cisco zaproponowała wprowadzenie silnego protokołu routingu, który poradziłby sobie ze znacznie większym stopniem komplikacji struktury sieci złożonej.
Opracowanie nowego protokołu nie jest sprawą łatwą. Aby to uczynić, należy szczególnie starannie określić wymagania jemu stawiane i według tego opracować mechanizmy nowego protokołu. Wymaganiem Cisco co do nowego protokołu było przełamanie funkcjonalnych ograniczeń protokołu RIP.
RIP, oprócz stosunkowo dużego ograniczenia licznika skoków (maksymalna ilość skoków to 15, skok 16 oznaczał nieskończoność), nie był także w stanie równoważyć obciążenia ruchu poprzez wiele nadmiarowych łączy, ponieważ mógł zapamiętać jedynie "' pojedynczą trasę. Co gorsze trasa ta była wyznaczana przy użyciu pojedynczej statycznej metryki. Dyskwalifikowało to protokół RIP w sieciach, w których wymagane było rozróżnianie typów łączy oraz podejmowanie decyzji co do wyboru trasy na podstawie aktualnych charakterystyk działania poszczególnych łączy.
Przełożenie tych ograniczeń na wymagania dotyczące nowego protokołu było stosunkowo łatwe. Oto niektóre z określonych atrybutów sieci złożonej, które musiały być obsługiwane przez nowy protokół:
· złożone topologie
· dynamiczne równoważenie obciążenia (co implikuje śledzenie wielu tras do punktu ' docelowego)
· obliczanie tras przy użyciu dynamicznych metryk
· szybki proces zbieżności po zmianie w topologii sieci
· zdolność wyboru optymalnych tras, bez względu na zawartość w sieci złożonej różnorodnych technologii transmisyjnych, takich jak Ethernet, FDDI, ATM, Frame Relay, T1 i T3.
Rozwiązaniem firmy Cisco dla sieci złożonej był protokół routingu distance-vector nazywany IGRP. IGRP został zaprojektowany tak, aby był łatwy do konfigurowania i użycia, ponadto odziedziczył po protokole RIP wiele cech, które uczyniły go również bardzo użytecznym. Umożliwiało to stosunkowo bezproblemową migrację do nowego protokołu, ponieważ większość administratorów sieci była całkiem dobrze zaznajomiona z protokołem RIP. Pomimo zachowania wielu zalet protokołu RIP, IGRP uniknął jego funkcjonalnych ograniczeń.
IGRP jest protokołem distance-vector zaprojektowanym do użycia w wewnętrznych routerach bramowych w obrębie systemu autonomicznego. Jak wyjaśniono to w rozdziale 7, routery, które wykorzystują protokoły routingu distance-vector, regularnie przesyłają całą lub część swojej tablicy routingu do najbliższych sąsiadów. Proces ten powtarza się okresowo w systemie autonomicznym, aż do momentu gdy wszystkie jego węzły „osiągną porozumienie", co do jego topologii i odległości do znanych punktów docelowych.
IGRP otrzymał rozszerzone właściwości w stosunku do protokołu RIP i innych protokołów distance-vector. Jedną z najbardziej rewolucyjnych nowych cech był sposób, w jaki obliczał wektory odległości. W odróżnieniu od poprzednich protokołów, korzystających z pojedynczej metryki do obliczania tras, IGRP dysonuje serią metryk, z których każda ma szeroki zakres możliwych do przyjęcia wartości. Każda taka metryka może być połączona z wartością matematyczną i wagą. Umożliwia to administratorom sieci dopasowanie algorytmu obliczania trasy do określonych potrzeb. Metryki te i ich wagi używane są do obliczania pojedynczej, łącznej metryki routingu, która wykorzystywana jest do matematycznego porównania potencjalnych tras do punktów docelowych.
Dodatkowo, IGRP może obsługiwać routing wielościeżkowy. RIP, jak i inne podobne do niego protokoły, zdolne były do zapamiętania tylko jednej trasy do danego punktu. Dlatego też protokoły te z natury były niezdolne do przeprowadzania routingu wielościeżkowego. Natomiast IGRP może zapamiętać do czterech tras do każdego punktu docelowego, co umożliwia mu obsługę routingu wielościeżkowego w sieci distance-vector. Praktycznym skutkiem takiego typu routingu są dwie nowe możliwości protokołu:
· równoważenie obciążenia pomiędzy dwoma, trzema i czterema łączami
· automatyczne odzyskiwanie uszkodzonego połączenia.
Pomimo swojego ogromnego sukcesu na rynku, IGRP pozostaje zastrzeżonym protokołem routingu. Dlatego jedynym producentem routerów, który stosuje IGRP, jest Cisco Systems. Firma Cisco nie opublikowała szczegółów dotyczących wewnętrznych mechanizmów IGRP. W związku z tym szczegółowe i wyczerpujące omówienie protokołu IGRP nie jest możliwe.
IGRP odznacza się wysokim stopniem elastyczności, który uzyskiwany jest poprzez I jego metryki routingu. W przeciwieństwie do RIP, który posiada jedną, statyczną metrykę, IGRP wykorzystuje sześć metryk:
· liczba skoków
· rozmiar pakietu (opisany jako MTU - Maximum Transmission Unit)
· przepustowość łącza
· opóźnienie
· obciążenie
· niezawodność.
Węzły IGRP w czasie uaktualniania tablic routingu dzielą się pomiędzy sobą informacjami dotyczącymi wszystkich sześciu metryk, z których nie wszystkie wykorzystywane są do obliczania tras. W rzeczywistości tylko cztery ostatnie metryki mogą być użyte do obliczania tras. Natomiast liczba skoków i MTU w inny sposób ułatwiają routing.
Elastyczność protokołu IGRP nie wynika tylko z większej liczby metryk, ale także wiąże się z zakresem wartości, które te metryki mogą przyjąć. IGRP umożliwia administratorowi definiowanie każdej z metryk oraz ustanawianie dla nich domyślnych wag, które także brane są pod uwagę w procesie obliczania trasy.
IGRP traktuje przyrost wartości licznika skoków jako sposób do określenia odległości punktu docelowego. Każdy router w ścieżce liczony jest jako pojedynczy skok i w przeciwieństwie do RIP, IGRP nie ogranicza tej wartości do 16. Domyślna maksymalna liczba skoków wynosi 100, aczkolwiek może zostać powiększona do 255. Umożliwia to wykorzystanie protokołu IGRP w znacznie większych sieciach niż miało to miejsce w przypadku protokołu RIP.
Należy przy tym zauważyć, że jakkolwiek IGRP obsługuje licznik skoków, jednak nie wykorzystuje jego wartości do wyznaczania optymalnych tras. Licznik natomiast używany jako zabezpieczenie przed powstawaniem pętli routingu. Trasy z liczbą skoków przewyższającą podaną maksymalną wartość są automatycznie unieważniane przez IGRP i nie są rozgłaszane do sąsiednich węzłów poprzez uaktualnienia tablic.
Protokół RIP jest prostym protokołem distance-vector, który odległości w sieci określał jedynie na podstawie zliczania ilości routerów oddzielających maszynę źródłową od docelowej. IGRP nie skupia w obliczaniu tras uwagi na ilości routerów, lecz na atrybutach infrastruktury transmisyjnej, która te routery łączy. Właściwie skonfigurowany protokół IGRP może rozróżniać atrybuty związane z osiągami różnych typów infrastruktury transmisyjnej.
MTU określa, jaki maksymalny rozmiar datagramu zaakceptuje router IGRP. Wartość ta nie jest wykorzystywana do obliczania tras ani nie jest czynnikiem występującym w zbiorowej metryce IGRP. Węzły IGRP przekazują innym węzłom maksymalny rozmiar datagramu, który są w stanie przyjąć. Jeśli datagram jest większy niż rozmiar MTU routera musi być podzielony na dwa lub więcej datagramów, które nie przekroczą tego rozmiaru.
Bardzo duże wartości MTU prowadzą do pogorszenia działania sieci, ponieważ routery muszą buforować nadchodzące datagramy, aż będą w stanie określić, gdzie je dalej przesłać. Im większy datagram, tym więcej zajmuje miejsca w przestrzeni bufora. Także bardzo małe wartości MTU mogą powodować pogorszenie osiągów sieci, ponieważ niepotrzebnie mogą zachwiać stosunkiem wielkości nagłówka do przestrzeni danych datagramu (większy rozmiar nagłówka przy stosunkowo małej przestrzeni danych). Dlatego też MTU może być bardzo dobrym czynnikiem dostrajania sieci, prowadzącym do uzyskania jej jak najwydajniejszej pracę.
Przepustowość określa prędkość łącza transmisyjnego, które podłączone jest do danego portu WE/WY routera. Wartość ta może wahać się od 1200 b/s aż do 10 Gb/s. Należy przy tym zauważyć, że jeżeli metryka przepustowości nie jest ustawiona na inną wartość Cisco IOS (Cisco Internetwork Operating System - przyp. tłum.) założy, że łączem jest Tl i wartość tej metryki domyślnie ustawi na poziomie 1.544 Mb/s.
Pomimo tego, że domyślną wartością przepustowości jest 1.544 Mb/s, porty interfejsu nie będą w stanie wykorzystać większej szerokości pasma niż ta, która jest w rzeczywistości dostępna. Porty te połączone są z urządzeniem sterownika linii, takim jak CSU/DSU. Są to te urządzenia warstwy fizycznej, które w rzeczywistości umieszczają dane w łączach transmisyjnych.
Wykorzystywanie domyślnych wartości sprawia, że metryka przepustowości nie nadaje się do celów obliczania trasy. Dlatego zazwyczaj preferuje się definiowanie dla każdego portu interfejsu rzeczywistej dostępnej mu przepustowości, a nie akceptowanie z góry zadanych wartości domyślnych. Umożliwia to poprawę możliwości IGRP obliczenia i wyboru optymalnych tras.
Przepustowość może zostać celowo zaniżona w stosunku do rzeczywiście dostępnej aby zmniejszyć stopień wykorzystania określonego łącza. Pozwoli to zarezerwować łącze do wykorzystania w czasie nagłych wypadków lub okresów wzmożonego ruchu.
Aby obliczyć metrykę, IGRP przygląda się zdefiniowanej szerokości pasma we wszystkich portach interfejsu występujących w danej trasie a następnie wybiera najmniejszą wartość, która określa górną granicę przepustowości dla tej trasy. Wartość ta dzielona jest przez 10 000 000 co powoduje, że szerokość pasma wyrażona jest w kilobitach na sekundę.
Opóźnienie mierzy przybliżony czas potrzebny na przejście przez całe łącze w sieci. Łączne opóźnienie trasy w sieci IGRP jest sumą opóźnień przypisanych każdemu interfejsowi routera tworzącego tę trasę. Suma ta dzielona jest przez 10, aby można było uzyskać mikrosekundy. Metryka ta może osiągać wartość od 1 do 16 777 215.
Zamiast opracowywać algorytm obliczania rzeczywistego opóźnienia, IGRP wykorzystuje wartość średniego opóźnienia różną dla każdej technologii transmisji. Przykładowo dla prywatnej linii T1 wartość domyślna opóźnienia ustawiana jest na 21 000 ~,s. Takie uproszczone założenie znacznie redukuje obciążenie procesora IGRP, ale wciąż zapewnia elastyczność w obliczaniu tras w heterogenicznej sieci.
IGRP automatycznie wypełnia metrykę opóźnienia dla każdego łącza transmisyjnego według jego zdefiniowanej przepustowości i technologii transmisji. Przykładowo łącze 10 Mb/s Ethernet charakteryzuje się 10 razy większym średnim opóźnieniem niż łącze 100 Mb/s Ethernet. Również administratorzy sieci mogą zmieniać tę wartość na każdą inną z dozwolonego przedziału, tak aby odwzorowywać określone warunki w ich sieci. Umożliwia to routerom z protokołem IGRP odróżnianie naziemnego połączenia Tl od połączenia satelitarnego T1. Jakkolwiek oba te połączenia oferują identyczne szerokości pasma, połączenie naziemne cechować będzie znacznie mniejsze opóźnienie.
Oczywiście opóźnienie różni się także ze względu na długość łącza. Przykładowo, naziemne połączenie T1 pomiędzy Krakowem a Gdańskiem już z natury posiada większe opóźnienie w propagacji niż podobne połączenie o tej samej szerokości pasma pomiędzy Krakowem a Warszawą. Administrator sieci może manipulować obliczaniem trasy poprzez obniżanie współczynnika opóźnienia dla krótszych łączy lub jego podwyższanie dla łączy dłuższych. Modyfikowanie metryk musi być przeprowadzane z wielką ostrożnością, gdyż nie zawsze otrzymuje się oczekiwane efekty.
Współczynnik obciążenia mierzy wielkość aktualnie dostępnej szerokości pasma przez dane łącze. Im łącze jest silniej eksploatowane, tym więcej czasu potrzeba do jego przemierzenia łącza. Taka metryka obciążenia IGRP bierze udział w obliczaniu optymalnych tras w sieci.
Teoretycznie oparcie obliczania trasy na stopniu obciążenia poszczególnych łączy wydaje się być dobrym pomysłem. Umożliwia to protokołowi routingu omijanie wszelkich zatorów komunikacyjnych powstałych w sieci. Jednakże w praktyce obciążenia w sieci mogą zbyt szybko ulegać zmianie, aby było możliwe ponowne obliczanie tras lub jakakolwiek inna akcja podjęta przez protokół routingu. Przykładowo, użytkownik ze stabilnym połączeniem LAN z routerem może łatwo zająć całą dostępną szerokość pasma w łączu szeregowym za pomocą prostej sesji FTP (File Transfer Protocol). W takim przypadku sieć IGRP, która wykorzystuje metrykę obciążenia do obliczania swoich tras, nagle dostrzegłaby, że łącze to jest niemożliwe do wykorzystania. Spowodowałoby to podjęcie przez IGRP odpowiednich akcji korygujących włącznie z zawieszeniem tras wykorzystujących to łącze, a nawet zapoczątkowaniem procesu zbieżności co do nowej topologii sieci. Sesja FTP mogłaby z kolei się zakończyć, zanim sieć rozwiązałaby problem przez nią spowodowany.
W rezultacie domyślna wartość stałej używanej do wyważenia metryki skutecznie kompensuje ją w procesie obliczania łącznej metryki IGRP. Dlatego zanim metryka obciążenia zostanie wykorzystana jako współczynnik w łącznej metryce IGRP, należy dokonać wyraźnej modyfikacji wartości stałej tej metryki. Metryka może przyjmować wartości z zakresu od 1 do 255 i może być zmieniana przez administratora sieci, tak jak jej waga.
Innym sposobem wpływania na wynik obliczania trasy w IGRP jest wykorzystanie metryki niezawodności. Metryka ta śledzi aktualny współczynnik błędu dla każdego łącza transmisyjnego. Współczynnik ten jest stosunkiem pakietów, które nadeszły nieuszkodzone. Metryka ta może przyjmować wartości od 1 do 255, a domyślnie dla wszystkich typów łączy ustawiana jest na wartość równą 1.
Klucz do elastyczności protokołu IGRP nie leży w żadnej z jego metryk, lecz w tym co IGRP z nimi robi. W przeciwieństwie do RIP i większości innych protokołów, IGRP nie porównuje wartości metryk potencjalnych tras. Zamiast tego, wykorzystuje wartości metryk do określenia pojedynczej łącznej metryki, która w sposób matematyczny opisuje potencjalne trasy. Metryka taka może być używana do porównywania potencjalnych tras przez sieć, nawet wtedy, gdy trasy te znacznie różnią się od siebie współczynnikami niezawodności, przepustowości, opóźnienia i wykorzystania.
IGRP wykorzystuje łączną metrykę do obliczania optymalnej trasy. Metryka ta ma długość 24 bitów, co daje zakres możliwych wartości od 1 do 16 777 215. W gruncie rzeczy wartość łącznej metryki odzwierciedla ważoną sumę opóźnień i przepustowości wzdłuż danej trasy.
Oto ogólna formuła obliczania łącznych wektorów:
Metryka = K1 x Przepustowość+(K2 x Przepustowość)/(256-Obciążenie)+K3 x Opóźnienie
W powyższej formule K1, K2 i K3 są stałymi używanymi do wyważania wpływu poszczególnych metryk routingu na wartość łącznej metryki. Wartością domyślną K1 i K3 jest 1, natomiast K2 jest 0. Dodatkowo mogą być wykorzystane dwie inne stałe, K4 i K5, które domyślnie przyjmują wartość 0 i w takim przypadku nie występują w formule. Administrator sieci może modyfikować wszystkie stałe K.
Oryginalne równanie można podzielić na następujące pojedyncze operacje:
· Pierwszą operacją jest pomnożenie Przepustowości przez 1, co nie zmienia jej wartości.
· Następnie Przepustowość mnożona jest przez 0 i dzielona przez (256-Obciążenie). Obciążenie może osiągnąć maksymalną wartość 255, tak więc operacja odejmowania zawsze da wynik z przedziału od 1 do 255.
· W poprzedniej operacji iloczyn K2 i Przepustowości wyniesie 0, gdy używana będzie domyślna wartość stałej K2. Dzielenie zera przez każdą liczbę zawsze da zero, dlatego przyjęcie domyślnych wartości stałych spowoduje wyeliminowanie wpływu Obciążenia na wynik obliczenia metryki IGRP.
· Wynik drugiej operacji, który zawsze wynosi zero przy zaakceptowaniu domyślnych wartości stałych, dodawany jest do rezultatu pierwszej operacji.
· Ostatnią operacją w podstawowym obliczeniu metryki jest pomnożenie Opóźnienia przez stałą K3, która domyślnie przyjmuje wartość 1. Przy zaakceptowaniu domyślnej wartości K3 wynik operacji jest zachowaniem oryginalnej wartości Opóźnienia. Następnie wartość ta dodawana jest do rezultatu poprzednich operacji.
Dlatego też podstawowe wyliczenie metryki ulega skróceniu do:
Metryka = Przepustowość + Opóźnienie
W opisanych powyżej działaniach matematycznych da się zauważyć brak czwartej metryki routingu: Niezawodności. Metryka ta używana jest tylko w przypadku, gdy administrator sieci zmodyfikuje wartość stałej K5. Jeśli wartość ta będzie większa niż 0, wtedy wykonywana jest następująca dodatkowa operacja:
Metryka = Metryka x [KS/(Niezawodność + K4)]
Gdyby stała KS przyjęła domyślną wartość 0, wtedy powyższa formuła zawsze zwracałaby zero dla całej łącznej metryki IGRP. Dlatego wykonywana jest jedynie dla KS>0. Jak można zauważyć, stałe K4 i KS używane są do wyważania wpływu metryki niezawodności na wartość łącznej metryki. Widząc złożoność tej formuły można dojść do wniosku, że beztroskie manipulowanie wartościami stałych tak bywa niebezpieczne.
Bez względu na to, czy używane są wartości domyślne, wynikiem obliczenia metryki IGRP jest łączna metryka, która może obiektywnie ocenić potencjalne trasy przez zróżnicowaną sieć. Wartość takiej łącznej metryki często opisywana jest jako koszt trasy, a trasa z najniższym kosztem jest trasą najlepszą.
Oprócz łącznej metryki routingu, do poprawnego funkcjonowania i utrzymywania stabilnego środowiska sieci złożonej, IGRP opiera się również na szeregu innych mechanizmach. Dzielą się one na mechanizmy czasowe i mechanizmy zbieżności.
Podobnie jak inne protokoły distance-vector, IGRP utrzymuje integralność swoich tablic routingu poprzez wymaganie od routerów dzielenia się...
marianpol1973