Routing IP M10.1


Wstęp




W module tym zostaną omówione podstawowe informacje na temat routingu.


Routing jest spisanym zestawem sposobów jak przejść (przesłać pakiety) z jednej sieci do drugiej. Jest to jedna z podstawowych własności routerów umożliwiających przesyłanie danych w Internecie.


Zostaną omówione podstawowe informacje dotyczące klasyfikacji protokołów routingu jak i wymienione te najczęściej używane.


Na wstępie warto zaznaczyć, że określenia oryginalne (angielskojęzyczne) użyte do tych zagadnień mają wiele tłumaczeń. Stąd może się pojawić wrażenie pewnego braku standardu w języku polskim. I tak: ang. routing - pl. trasowanie, ruting, rutowanie.


Ze względu na powszechność niektórych określeń w wykładzie przyjęto tę najbardziej powszechną - chociaż jak powszechnie wiadomo „większość na ogół się myli”.



Rola routera w procesie przesyłania pakietów




Router jest specjalistycznym komputerem, którego podstawowym zadaniem jest właściwe przesyłanie pakietów, które przychodzą na jeden z jego interfejsów na inny. Dzięki temu możliwa jest niezawodna komunikacja pomiędzy poszczególnymi sieciami komputerowymi.

Właściwie każdy komputer wyposażony w system operacyjny może pełnić rolę routera. Ze względów bezpieczeństwa funkcja ta jest wyłączana w przypadku zwykłych hostów. W praktyce najczęściej stosuje się do celu przesyłania pakietów specjalistyczne urządzenia, które mają zbliżoną budowę do standardowych jednostek obliczeniowych. Ze względu na specjalistyczne funkcje, które muszą pełnić są też wyposażone w odpowiedni system operacyjny typowy dla producenta tych urządzeń.

Router dzięki wpisom w tablicy routingu obsługuje ruch pakietów w warstwie L3 modelu ISO/OSI.


Wbudowane mechanizmy unożliwiają również filtrowanie pakietów zwiększając tym samym poziom bezpieczeństwa sieci, które są obsługiwane przez te urządzenia.


Dodatkowo odpowiednie algorytmy doboru optymalnych ścieżek umożliwiają efektywne i niezawodne przesyłanie pakietów w sieci. Router korzysta przy tym z informacji wymienianych z urządzeniami sąsiednimi.



Przepływ danych przez urządzenia sieciowe




Tak jak już zostało to wcześniej wspomniane router jest specjalistycznym komputerem, którego zadaniem jest przesyłanie pakietów bez wnikania w ich zawartość (przy pominięciu funkcji ściany ogniowej).

Rola, którą spełnia to urządzenia wymusza inny przepływ danych w ramach poszczególnych warstw modelu ISO/OSI niż przepływ danych w klasycznym hoście.

Najłatwiej prześledzić różnice przepływu danych przez poszczególne urządzenia na przykładzie. Załóżmy, że komputer X chce wysłać dane do położonego w odległej lokalizacji (innej podsieci) komputera Y.


Dane przechodzą przez kolejne warstwy: Aplikacji, Prezentacji, Sesji, Transportową, Sieci, Łącza Danych, Fizyczną. W trakcie przechodzenia przez poszczególne warstwy są one kolejno enkapsulowane w porcje informacji typowe dla poszczególnych warstw. Po dotarciu do warstwy Fizycznej ramka wysyłana jest do urządzenia sieciowego, które pełni role bramy wyjściowej (getaway). W przypadku sieci lokalnych rolę tą pełni router (A) obsługujący daną sieć. Router ten rozpakowuje ramkę i sprawdza adres docelowy i źródłowy. Następnie na podstawie wpisów w tablicy routingu decyduje, którędy (poprzez które sąsiednie routery) przesłać pakiet do miejsca przeznaczenia.


Sytuacja taka powtarza się na kolejnych routerach (B,C) w trakcie przesyłania pakietów do celu. W przypadku ostatniego routera na trasie urządzenie to przesyła ramkę bezpośrednio na MAC adres urządzenia, do którego jest adresowany pakiet.


W urządzeniu tym (Y) następuje proces odwrotny, tzn. dane przechodząc kolejno przez poszczególne warstwy są składane do postaci pierwotnej.



Routing pakietów




Router jako urządzenie umożliwiające właściwe przekierowanie pakietów na poszczególne interfejsy do urządzeń sąsiadujących potrzebuje właściwej informacji, która musi być zawarta w dostarczanych do niego pakietach.


Aby przesłać dalej pakiety postać tych danych musi być zgodna ze standardami dla protokołów routowalnych, czyli takich, które będą mogły być przesyłane przez router. Protokół routowalny kieruje zatem ruchem użytkowym. Do protokołów takich zalicza się przede wszystkim IP. Innymi protokołami routowalnymi są m.in. Apple Talk, IPX.


Sam proces routowania pakietów obsługiwany jest przez protokoły routujące. Zadaniem tych protokołów jest wybieranie optymalnych tras przesyłania pakietów w oparciu o informacje o dostępnych trasach (zawarte w tabeli routingu). Protokół routujący służy zatem do komunikacji pomiędzy samymi routerami i wymiany informacji o trasach.



Protokół IP




Protokół IP jest przykładem protokołu routowalnego. Szczegółowo został omówiony w poprzednich modułach.

Protokół ten jest bezpołączeniowy, co oznacza, że do przesłania danych nie potrzebne jest zestawienie połączenia pomiędzy nadawcą i odbiorcą. Jest to protokół, który został opracowany do działania również w sytuacjach ekstremalnych, np. w czasie wojny. W związku z tym, używa wszelkich dostępnych ścieżek, aby dostarczyć pakiety do celu.


Protokół IP wykorzystuje wszystkie posiadane mechanizmy, aby dostarczyć pakiet do celu. Protokół ten nie dba o potwierdzenie, czy dane dotarły do adresata, stąd też często jest określany jako zawodny. Określenie „zawodny” jest trochę nieprecyzyjne, ponieważ pakiety wysyłane są wszelkimi możliwymi trasami. Za potwierdzenie właściwego przesłania odpowiadają protokoły wyższych warstw.



Routing




W zależności od sposobu zdobywania informacji na temat dróg przesyłania poszczególnych pakietów dzieli się routing na statyczny i dynamiczny.

W przypadku tego pierwszego wpisy dokonywane są ręcznie przez administratora systemu. To administrator musi znać topologię sieci i na jej podstawie dokonuje wyznaczenia optymalnych tras przesyłania pakietów.


W przypadku routingu dynamicznego za wymianę informacji na temat topologii sieci i zachodzących zamianach w połączeniu routerów odpowiadają protokoły routingu.


Szczegółowo routing statyczny i dynamiczny zostaną omówione na kolejnych slajdach.



Tablica routingu




Tablice routingu są tworzone w celu wyboru optymalnej ścieżki przesyłania pakietów. W przypadku routingu statycznego wpisów do tych tablic dokonuje administrator. W przypadku routngu dynamicznego tworzeniem tablic zajmują się protokoły routingu, na podstawie informacji od innych routerów.

Wymiana informacji umożliwia protokołom utrzymanie poprawnych tras. Część z protokołów wysyła cyklicznie informacje dotyczące topologii sieci. Powoduje to niepotrzebne obciążanie łączy. Lepszym rozwiązaniem wykorzystywanym przez niektóre protokoły dynamicznego routingu jest wysyłanie uaktualnień w momencie, gdy nastąpią zmiany w topologii sieci.


Innym rozwiązaniem poprawiającym efektywność przesyłania uaktualnień jest przesyłanie tylko tej części tablicy routingu, której dotyczą zmiany.



Tablice routingu - wpisy




Wśród danych, które mogą występować w tablicach routingu są następujące elementy:

typ protokołu - wpis, który z protokołów routingu dostarczył informacji na temat danej trasy odniesienie do punktu docelowego/następnego przeskoku - informacja o tym, gdzie znajduje się punkt docelowy lub jak (przez który router) do niego dotrzeć. metryka routingu - informacja o metryce routingu dla danego protokołu interfejs wyjściowy - interfejs, przez który należy wysłać pakiet, aby trafił do sieci docelowej.



Tablice routingu - przykłady




Na slajdzie została pokazana przykładowa tablica routingu uzyskana na stacji roboczej pod kontrolą systemu operacyjnego UNIX, za pomocą polecenia netstat -rn.

W pierwszej kolumnie pokazane są sieci i hosty docelowe. Kolumna „Gateway” informuje, przez jaką bramę następuje komunikacja do wymienionej w poprzedniej kolumnie lokalizacji.


Kolejna kolumna „Flags” podaje następujące informacje: - U - trasa działająca (ang. up) - G - trasa prowadzi przez bramę - H - trasa zdefiniowana do hosta docelowego, a nie do sieci (pierwszy i ostatni wiersz).


Ostatnia kolumna informuje o tym, przez który interfejs odbywa się komunikacja.



Routing statyczny




Określenie routing statyczny odnosi się do przypadku, gdy informacje na temat topologii sieci i tras przesyłania pakietów są wpisane na stałe przez administratora systemu.

Administrator w oparciu o wiedzę, którą posiada, dokonuje wpisów, które są następnie podstawą do kierowania przez router pakietów. Ten sposób konfiguracji routera sprawdza się w sytuacjach, gdy obsługiwana sieć ma nieskomplikowany schemat połączeń. Ewentualne błędy przy przesyłaniu pakietów są wynikiem błędnych wpisów. Stąd są stosunkowo proste w diagnostyce. Administrator ma też możliwość zdefiniowania dystansu administracyjnego. Dzięki takiemu dodatkowemu wpisowi można ustawiać ścieżki zapasowe na wypadek uszkodzenia jednej z tras. Routing statyczny można mieszać z routingiem dynamicznym wtedy zwykle trasy zdefiniowane statycznie są trasami zapasowymi. W takich przypadkach należy użyć wyższej wartości dystansu administracyjnego dla trasy zdefiniowanej w sposób statyczny niż dla trasy wyznaczonej przez protokół routingu.


Zaletą takiej konfiguracji jest również fakt nie obciążania sieci dodatkowymi pakietami z informacjami o topologii (lub jej zmianach), które są przesyłane w przypadku stosowania routingu dynamicznego.


Wadą takiego rozwiązania jest potrzeba ręcznej ingerencji w przypadku awarii któregoś z łączy pośrednich oraz trudność przy definiowaniu połączeń redundantnych na wypadek awarii.


Na slajdzie została podana składnia polecenia ustawienia routingu statycznego w systemie UNIX. W przykładzie pokazano przykładowe wywołanie tego polecenia. Zwykle również w sposób statyczny definiowane są trasy domyślne stacji roboczych i innych urządzeń końcowych. Przykład definiowania tras domyślnych zostanie pokazany na następnym slajdzie.



Trasy domyślne




Tak jak już zostało to podane wcześniej często zachodzi potrzeba wpisania tzw. tras domyślnych (ang. deafault route). Są to wpisy w tabeli routingu, które umożliwiają określenie ścieżki przesyłania pakietów, dla których nie zadeklarowano lub nie została określona w sposób dynamiczny ścieżka. W ten sposób wszystkie te pakiety zostaną automatycznie skierowane do określonego routera.


Na slajdzie pokazano przykład deklaracji domyślnej ścieżki w systemie UNIX. W tym przypadku wszystkie pakiety, dla których nie została odnaleziona ścieżka w tabeli routingu zostaną przesłane na adres 194.29.145.1.



Routing dynamiczny - podział ze względu na zasięg działania




Jednym z kryteriów podziału protokołów routingu jest zasięg ich działania. Systemy, które działają w ramach jednej organizacji określane są jako systemy autonomiczne (ang. Autonomous Systems). Systemom takim nadawane są unikalne numery systemów autonomicznych. Systemy autonomiczne uzyskują numery IP z puli niezależnej od dostawców Internetu PI (ang. Provider Independent). Same numery systemów zawierają się w przedziale od 1 do 65535. Numery od 65412 do 65535 są wyłączone z użytkowania w sieciach publicznych. Są to numery prywatne. Przydziałem numerów publicznych zajmuje się międzynarodowa organizacja ICANN (ang. Internet Corporation for Assigned Names and Numbers). Lokalnie nadawaniem tych numerów zajmują się regionalne przedstawicielstwa tej organizacji.

W ramach systemów autonomicznych wykorzystuje się protokoły wewnętrzne (ang. Interior Gateway Protocol). Jak sugeruje nazwa są to protokoły, które umożliwiają komunikację wewnątrz jakiejś większej organizacji. Przykładem takich protokołów są: RIP (wersja 1 i 2), OSPF, EIGRP.


Same systemy autonomiczne są również połączone z innymi systemami. W komunikacji pomiędzy systemami autonomicznymi potrzeba użyć protokołu routingu, który będzie w stanie obsłużyć możliwe różne standardy protokołów. Protokoły routingu, które są w stanie przenosić informacje pomiędzy systemami autonomicznymi nazywamy protokołami zewnętrznymi (ang. Exterior Gateway Protocol). Przykładem takiego protokołu jest BGP.



Routing dynamiczny - podział ze względu na sposób wyznaczania trasy




Podział ze względu na sposób wyznaczania trasy wynika z odmiennego podejścia do tworzenia informacji na temat routingu.


W przypadku protokołów wektora odległości (ang. distance vector) wyznaczenie trasy routingu oparte jest o znalezienie kierunku, w którym należy przesłać pakiety oraz określeniu odległości (ilości skoków - routerów) do sieci przeznaczenia pakietów. Taki sposób podejścia skutkuje tym, że każdy router widzi sieć przez pryzmat routerów sąsiednich. Protokoły tego typu są dosyć proste algorytmicznie i nie wymagają dużych nakładów obliczeniowych. Niestety ze względu na stosowaną metrykę (liczbę skoków) protokoły te wyznaczają najkrótszą trasę, która nie zawsze musi być najszybsza.


W protokołach, które analizują stan łącza tworzona jest jednolita mapa topologii całej sieci. Do tworzenia topologii sieci używany jest m.in. algorytm Dijkstry. Algorytmy protokołów stan-łącze lepiej wyznaczają optymalną trasę przesyłania pakietów niż protokołu wektora odległości.



Protokoły routingu dynamicznego -przykłady




Przykładami używanych protokołów routingu są:

RIP (ang. Routing Information Protocol) w wersji 1 i 2. OSPF (ang. Open Shortest Path First) BGP (ang. Border Gateway Protoco) IGRP (ang. Interior Gateway Routing Protocol) EIGRP (ang. Enhanced IGRP).


Pierwsze trzy protokoły są zdefiniowane jako otwarte standardy. Dwa ostatnie z wymienionych są protokołami zaproponowanymi przez firmę Cisco.



Wymagania dot. protokołów routingu




Protokoły routingu były oraz są projektowane z myślą o zapewnieniu skutecznego i szybkiego rouingu. Istnieją pewne ogólne cechy, które (część lub wszystkie) każdy z zaimplementowanych protokołów powinien spełniać:

Optymalizacja - pod tym wymaganiem kryje się zdolność algorytmu do wyboru ścieżek o najlepszych metrykach. Odporność na błędy i stabilność - zdolność protokołu do radzenia sobie w przypadku nieprzewidzianych awarii. Szybka zbieżność - w przypadku zmiany dostępnych tras następuje przesyłanie informacji na temat zmian do wszystkich routerów, które obsługują routing dynamiczny. Szybka zbieżność gwarantuje, że po zmianie topologii połączeń informacja na temat zmian zostanie możliwie szybko rozpropagowana wśród pozostałych routerów. Elastyczność - cecha, która pozwala na zastosowanie w sieci urządzeń o różnych parametrach. Dotyczy ona również zmiennych warunków pracy w sieci, np. zmiana szerokości pasma, zmiany opóźnień występujących w sieci. Prostota i niski narzut - protokół routingu jest implementowany jako program komputerowy na poszczególnych routerach. Proste algorytmy routingu, które nie wymagają dużych narzutów obliczeniowych w niewielkim stopniu obciążają zasoby sprzętowe urządzenia. Ma to szczególnie istotne znaczenie przy dużych tablicach routingu i rozbudowaniu sieci komputerowych.



Metryki routingu




Zadaniem protokołu routingu jest wybór optymalnej trasy dla przesyłanych pakietów. Pakiety mogą być wysłane krótszą trasą (przez mniejszą liczbę routerów) lub też trasą dłuższą. Optymalność obu tych tras może być wyznaczana na podstawie kilku cech, tak jak to zostało pokazane na rys.


Metryki routingu - przykłady




Do porównania kilku różnych alternatywnych tras przesyłania pakietów potrzebna jest jakaś miara. Podobnie jak w przypadku porównywania cech różnych obiektów, dystansu pomiędzy miastami, podobieństwa twarzy, itd. w przypadku określania optymalności danej trasy należy posłużyć się jakimiś wartościami poprzez zdefiniowanie metryki routingu. Różne protokoły routingu mogą wykorzystywać odrębne wartości. W skład wartości, które mogą być wykorzystywane przy definiowaniu metryki mogą wchodzić następujące parametry:

szerokość pasma - zwykle im szybsze łącze, tym bardziej preferowane, np. łącze 1Gb/s będzie bardziej preferowane niż łącze modemowe o prędkości 56kb/s Opóźnienie - jest czasem potrzebnym do przesłanie pakietów w pojedynczym łączu danych. Im czas opóźnienia mniejszy tym lepsze własności łącza Obciążenie - intensywność wykorzystanie danego łącza przez innych użytkowników. Im mniejsza tym więcej zasobów może być przeznaczone na przesyłane dane. niezawodność - liczba awarii w danym łączu. Im mniejsza tym łącze bardziej niezawodne. Liczba przeskoków [ang. hoop count] - określa liczbę pośrednich routerów przez, które będzie przesyłany pakiet. W niektórych protokołach, np. w RIP, jest to jedyna miara. Im mniejsza liczba przeskoków (pośrednich routerów), przez które musi być przesłany pakiet do miejsca przeznaczenia, tym lepiej. Impulsy zegarowe - czas opóźnienia łącza jest liczony impulsami zegara komputera IBM PC (ok. 1/18 s) Koszt - wartość oszacowania opłat przypadających na koszt przesłania danych przez łącze.


Wymienione cechy są użyteczne przy definiowaniu metryki routingu jednak w praktyce stosowane protokoły wykorzystują tylko wybrane z nich. Warto zauważyć, że wymienione parametry w sposób naturalny opisują właściwości sieci komputerowych.



RIPv1




Protokół RIPv1 został zaprojektowany jako protokół typu IGP wykorzystywany w ramach jednego systemu autonomicznego (AS). Standard ten został opisany w dokumencie RFC 1058. Protokół ten jest typu wektor odległości (ang. distance vector) i został zaprojektowany z myślą o małych sieciach o nieskomplikowanej topologii.

Protokół ten obsługuje tylko adresację z podziałem na klasy, stąd nie nadaje się do obsługi sieci z zastosowaną adresacją VLSM.


Protokół ten wysyła aktualizację w formie rozgłaszania na adres broadcastowy 255.255.255.255. Aktualizacja tras wysyłana jest co 30 s.


Metryka stosowana w tym protokole to liczba przeskoków. Maksymalna liczba przeskoków w danej trasie to 15. Zatem jeśli licznik przeskoków osiągnie wartość 16 to dany adres docelowy zaznaczany jest jako nieosiągalny.


Protokół ten umożliwia zrównoważenie obciążenia na maksymalnie 6 ścieżkach, przy czym muszą mieć one równe koszty przesyłania.



RIPv1 - format pakietu




Informacje przenoszone przez ten protokół wysyłane są na adres rozgłoszeniowy. Sam pakiet przedstawiony na rysunku zawiera następujące pola:

command - (1B) pole określające funkcje pakietu. Pole to może zawierać następujące wartości: request (1) - żądanie przesłania tablicy routingu response (2) - odpowiedź na żądanie traceon (3) - pakiety z taką wartością pola powinny być ignorowane traceoff (4) - pakiety z taką wartością pola powinny być ignorowane reserverd (5) - pakiety z taką wartością pola powinny być ignorowane - pole zarezerwowane dla SUN Microsystems. version - (1B) pole numeru wersji protokołu RIP AFI (ang. Address Family Identyfier) (2B) - określa, który protokół jest routowany. Dla protokołu IP wartość tego pola wynosi 2. IP address - (4B) Adres sieci must be zero - (2B lub 4B) pole wypełnione zerami.



RIPv2 vs. RIPv1




Format RIPv2 został opracowany na początku lat 90-tych XX w jako modyfikacja szeroko stosowanego protokołu RIPv1. Tak jak zostało to podane na wcześniejszych slajdach wersja 1 protokołu posiadała kilka wad, które ograniczały jego zastosowanie. Poprawiona wersja protokołu usuwa te ograniczenia.

Specyfikacja protokołu w wersji 2 została podana w dokumencie RFC 1723. Protokół ten korzysta z tego samego algorytmu wyznaczania tras co jego poprzednik. Z tego względu nie nadaje się on do bardziej skomplikowanych topologii sieciowych.


Cechami charakteryzującymi ten protokół są: Wysyłanie razem z informacją o trasie również maski podsieci - możliwe jest dzięki temu stosowanie metody VLSM. Wprowadza uwierzytelnienie - możliwe jest przesyłanie informacji uwierzytelniających zarówno tekstem jawnym jak i szyfrowanych. Format pakietu uwierzytelniającego zostanie podany na kolejnych slajdach. Umieszcza adres IP routera następnego przeskoku w wysyłanych przez siebie aktualizacjach tras - dzięki temu inne routery, wiedzą przez który router prowadzi lepsza trasa. Korzysta ze znaczników tras zewnętrznych - przenosi informacje uzyskane przy pomocy innych protokołów do sieci wewnętrznej, zaznaczając jednocześnie, że jest to informacja ze źródła zewnętrzenego Wysyła aktualizacje tras na adres multicastowy - korzysta z rozsyłania grupowego na adres z klasy D o numerze IP 224.0.0.9





Jedną z dosyć istotnych niedogodności wersji 1 protokołu był brak możliwości obsługi sieci z adresacją bezklasową. W obliczu wyczerpujących się adresów IPv4 jest to dosyć duże ograniczenie. Stąd poprawienie tej niedoskonałości było istotne.

Wysyłanie informacji o masce podsieci umożliwia zastosowanie techniki VLSM. Dzięki temu wysyłana informacja o trasie jest pełna.


W odróżnieniu od wersji 1 RIP w wersji 2 możliwe jest stosowanie uwierzytelniania przy przesyłaniu informacji o topologii sieci. Podnosi to znacznie bezpieczeństwo.


Kolejną zmianą poprawiającą efektywność przesyłania uaktualnień jest wysyłanie ich na adres rozsyłania grupowego: 224.0.0.9. Dzięki temu tylko routery, do których jest adresowane uaktualnienie muszą przetworzyć pakiet. W wersji 1 RIP informacje o routingu były rozsyłane na adres rozgłoszeniowy (255.255.255.255) w związku z tym wszystkie maszyny musiały przetworzyć otrzymane pakiety. To w znacznym stopniu obciążało routery i całą sieć.



RIPv2 - format pakietu




Wygląd pakietu dla protokołu RIPv2 został przedstawiony na rysunku. Poszczególne pola mają następujące znaczenie:

command - (1B) pole komendy version - (1B) wersja protokołu RIP AFI (ang. address family identyfier) - (2B) pole identyfikujące jaki protokół będzie przesyłany. W przypadku IP wpisana jest tam wartość 2. Gdy pole ma ustawioną wartość 0xFFFF, to pakiet niesie informację o autoryzacji. route tag (2B) - określa czy trasa jest wysłana z lokalnego routera obsługującego protokół RIP (trasa wewnętrzna) czy też innego routera obsługującego inne protokoły (trasa zewnętrzna). IP address - (4B) jeśli w polu AFI jest wartość 2, to pole to przechowuje adres IP subnet mask - (4B) maska podsieci next hop - (4B) adres następnego routera na trasie (następnego skoku) metric - (4B) metryka


Format pakietu zawierającego informację o autoryzacji zostanie pokazany na następnym slajdzie.



Format pakietu autoryzacyjnego RIPv2




Jedną z cech odróżniających wersję 2 od wersji 1 protokołu RIP jest możliwość autoryzacji, która została wprowadzona do wersji 2. Uzyskuje się ją dzięki zapisaniu w polu AFI wartości 0xFFFF. Wtedy oktety 7i 8 pakietu zawierają informację na temat typu autentykacji. Zaś w dwubajtowym polu authentication może być zawarte hasło pisane jawnym tekstem (nie jest to wystarczająca ochrona). Dlatego zaleca się stosowanie szyfrowania metodą Message-Digest 5 (MD5).


Jeśli na routerach zostanie aktywowana funkcja autoryzacji w protokole RIPv2, to pakiety nie zawierające nagłówka autoryzacyjnego będą odrzucane przez routery .



Sposoby unikania pętli routingu




W przypadku występowania alternatywnych tras może dojść do zapętlenia tras routingu objawiającego się nieprzesyłaniem pakietów. Aby zapobiec temu negatywnemu zjawisku stosuje się różne metody niwelujące takie zdarzenia. Problem ten dotyczy szczególnie protokołu RIP.

Jedną z nich jest metoda podzielonego horyzontu (ang. split horizon). Metoda ta nie pozwala routerowi, który wysłał informację o danej sieci na przyjmowanie informacji o tej sieci od innych routerów.


Inną metodą eliminującą zapętlenia jest blokowanie (zatruwanie) trasy (ang. route poisoning). Router, który wykrył, że sieć do niego przylegająca jest niedostępna zapisuje trasę w swojej tablicy routingu jako niedostępną (metryka = 16) i wysyła uaktualnienia do sąsiednich routerów. Blokuje („zatruwa”) w ten sposób trasę do tej sieci dla innych routerów.



OSPF - cechy




Protokół OSPF (ang. Open Shortest Path First) jest protokołem typu stanu łącza (link-state). Został on zaprojektowany przez Internet Engineering Task Force w 1988 roku. Protokół ten został opracowany na przełomie lat 80-tych i 90-tych XXw. jako protokół otwarty niezależny od producenta. Jednak najszerzej stosowana specyfikacja tego protokołu została zdefiniowana w dokumencie RFC 2178 dopiero pod koniec lat 90-tych XXw. Specyfikacja ta pozwoliła na szerokie wykorzystanie tego protokołu.

Protokół ten posiada wiele cech, które wyróżniają go w stosunku do wcześniej opisywanego protokołu RIPv1 jak również kilka ulepszeń w stosunku do wersji 2 RIP, m.in.: nie ma ograniczeń dot. liczby przeskoków, obsługuje VLSM, wykorzystuje adres rozsyłania grupowego, szybsza zbieżność, bardziej skuteczna metryka, możliwość równoważenia obciążenia, możliwość uwierzytelnienia, podział sieci na obszary.



OSPF - nagłówek pakietu




W związku z tym, że protokół OSPF pozwala na podzielenie obsługiwanej domeny na obszary w polu nagłówka pojawia się informacja o identyfikatorze obszaru do jakiego został przypisany router.

Nagłówek pakietu zawiera również wpisy dotyczące uwierzytelnienia (typ uwierzytelnienia) oraz same dane uwierzytelniające.


W momencie uruchomienia protokołu na routerze zaczyna on wymieniać dane na temat tablic routingu z sąsiednimi routerami. Każdy router posiada takie samo odzwierciedlenie topologii sieci, dzięki temu trasy, które są wyliczane przez poszczególne routery są zgodne.


Komunikacja pomiędzy routerami odbywa się poprzez przesłanie pakietu hello. Pakiet taki jest wyróżniany poprzez wpis o wartości 1 w polu „Typ”. Pakiet taki jest wysyłany na adres rozsyłania grupowego 224.0.0.5, który jest dedykowany dla wszystkich routerów OSPF. Po rozesłaniu informacji inicjujących, pakiety „Hello” są przesyłane co 10s lub 30 s w celu potwierdzania właściwej pracy urządzeń.


Po nawiązaniu komunikacji routery wymieniają się informacjami na temat topologii za pomocą komunikatów LSA (ang. Link State Advertisement). Przy dużej liczbie routerów w danym segmencie przesłanie informacji LSA wymagałoby przesłania NxN komunikatów. Stąd w celu zmniejszenia liczby wysyłanych pakietów wybiera się dwa routery: router desygnowany DR (ang. Designated Router) oraz zapasowy router desygnowany BDR (ang. Back-up Designated Router). Szczegółowy opis wyboru tych routerów wykracza poza ramy tego wykładu.


Wszystkie routery w danym segmencie wysyłają informacje o stanie łącz do routera DR (lub w momencie uszkodzenia DR do BDR). Router desygnowany rozsyła potem te komunikaty do wszystkich routerów w segmencie. Dzięki temu ilość wysyłanych komunikatów wynosi 2xN.


Informacje dotyczące routerów desygnowanych oraz identyfikatory są przesyłane w pakiecie „Hello”, który został przedstawiony na następnym slajdzie.



OSPF - pakiet Hello




Gdy w polu „Typ” nagłówka pakietu OSPF wpisana jest wartość 1, to jest to informacja, że będzie przesyłany pakiet „Hello”.

Pakiet ten zawiera wszelkie informacje niezbędne do przeprowadzenia procesu uzgadniania pomiędzy routerami.



EIGRP




Innym przykładem protokołu routingu jest EIGRP (ang. Enhanced Interior Gateway Routing Protocol).

Protokół ten został wprowadzony w 1994 r przez firmę Cisco. Jest on następcą protokołu IGRP, który działał w oparciu o wektor odległości. Ze względu na fakt, że protokół EIGRP ustanawia relacje z sąsiednimi urządzeniami budując w ten sposób spójną topologię sieci protokół ten posiada również cechy typowe dla protokołów typu stan łącza.



BGP - specyfikacje




Protokół BGP (ang. Border Gateway Protocol) jest protokołem wykorzystywanym do wymiany informacji pomiędzy różnymi systemami autonomicznymi (AS).

Jego specyfikacje znajdują się dokumentach RFC: - RFC 1771 - opis protokołu BGP4 - RFC 1772 - informacje nt. BGP Application - RFC 1773 - Informacje nt. BGP Experience - RFC 1774 - Informacje nt. BGP Protocol Analysis - RFC 1655 - Informacje nt. BGP MIB Protokół ten jest obecnie najczęściej wykorzystywanym protokołem do wymiany tablic routingu pomiędzy różnymi systemami autonomicznymi.



BGP - sposób działania




Protokół BGP uruchomiony na routerach nawiązuje połączenie pomiędzy sąsiednimi urządzeniami. W zależności od przypisania poszczególnych maszyn do określonych systemów autonomicznych może to być:

relacja wewnętrzna (Internal BGP) - gdy routery należą do tego samego systemu autonomicznego relacja zewnętrzna (External BGP), gdy routery należą do różnych systemów autonomicznych

Wymiana komunikatów pomiędzy routerami odbywa się na porcie 179 protokołu TCP.

W celu otwarcia sesji routery wysyłają komunikat OPEN, w którym określają parametry sesji.

Komunikat UPDATE umożliwia wymianę informacji na temat tablic routingu. Przy pierwszym połączeniu wysyłane są pełne tablice routingu, przy kolejnych tylko te które uległy zmianom.

Gdy nie ma zmian, to wysyłany jest komunikat KEEPALIVE sygnalizujący poprawne działanie obu routerów i łącza.




Podsumowanie




W module tym zostały przedstawione podstawowe informacje dotyczące znaczenia routingu w przesyłaniu danych w sieciach komputerowych.

Omówiono również klasyfikację protokołów routingu.


Podane zostały podstawowe informacje na temat protokołów rotingu.