Protokół Informacji o Trasach (RIP)
Prosty protokół wektora-odległości (IGP) oparty na liczbie przeskoków.
Wprowadzenie: Routing przez Plotki
W świecie sieci komputerowych routery muszą uczyć się, jak przekazywać pakiety do odległych sieci. Chociaż routing statyczny dostarcza manualnej, stałej mapy, jest on niewykonalny dla każdej sieci, która się zmienia lub rośnie. Tu z pomocą przychodzą dynamiczne protokoły routingu. Protokół Informacji o Trasach (RIP) jest jednym z najstarszych i najprostszych z tych protokołów.
RIP jest klasycznym przykładem algorytmu . Najlepszą analogią jest pytanie o drogę w obcym mieście. Pytasz lokalnego mieszkańca (sąsiedni router), jak dostać się do muzeum. On odpowiada: „Wiem, to 10 minut spacerem stąd.” Ty wiesz, że dojście do tej osoby zajmuje Ci 2 minuty. Wnioskujesz więc, że muzeum jest 12 minut drogi od Ciebie, a Twoim pierwszym krokiem jest podejście do tej osoby. RIP działa na tej samej zasadzie ufania sąsiadom i dodawania własnego kosztu.
Jako , RIP jest zaprojektowany do działania wewnątrz jednej, samodzielnej sieci (Systemu Autonomicznego), a nie na ogromną, globalną skalę Internetu. Skupimy się na jego pierwszej standaryzowanej wersji, RIPv1, aby zrozumieć jego fundamentalne, choć wadliwe, zasady.
Jak Działa RIP: Cykl Aktualizacji co 30 Sekund
Działanie RIP jest zdefiniowane przez prosty, nieustanny cykl aktualizacji. Routery używające RIP nie tworzą jawnych relacji sąsiedztwa; po prostu "wykrzykują" swoje informacje do wszystkich, którzy słuchają, i nasłuchują informacji wykrzykiwanych przez innych.
Mechanizm Podstawowy
- Okresowe Aktualizacje: Domyślnie, co 30 sekund, router z uruchomionym RIP wysyła całą swoją tablicę routingu w serii komunikatów aktualizacyjnych RIP.
- Transmisja Rozgłoszeniowa: Te komunikaty aktualizacyjne są wysyłane jako na adres . Oznacza to, że każde urządzenie w tej samej sieci lokalnej, niezależnie od tego, czy jest to inny router, czy zwykły komputer, otrzyma i przetworzy ten pakiet.
- Transport UDP: Komunikaty RIP są enkapsulowane w segmentach protokołu UDP (User Datagram Protocol). UDP to prosty, bezpołączeniowy protokół, który nie gwarantuje dostarczenia, co jest akceptowalne dla powtarzalnego mechanizmu aktualizacji RIP. Używa on portu UDP .
- Aktualizacja Tablicy Routingu: Gdy router otrzyma aktualizację od sąsiada, analizuje każdą trasę w komunikacie. Jeśli otrzymana trasa oferuje lepszą (niższą) metrykę do celu, router zaktualizuje własną tablicę, oznaczając sąsiada, który wysłał ogłoszenie, jako nowy następny przeskok do tego celu.
Przykład: Poznawanie Nowej Trasy
- Router A jest bezpośrednio połączony z Routerem B. Router B jest bezpośrednio połączony z siecią .
- W swojej 30-sekundowej aktualizacji, Router B rozgłasza swoją tablicę, która zawiera wpis: "Cel: , Metryka: 1 (bezpośrednio podłączone)".
- Router A otrzymuje to rozgłoszenie. Sprawdza swoją tablicę. Nie ma trasy do .
- Router A oblicza własną metrykę: .
- Router A instaluje nową trasę: "Cel: , Metryka: 2, Następny-Przeskok: ".
Metryka RIP: Liczba Przeskoków
Aby zdecydować, która ścieżka jest „najlepsza”, RIP używa najprostszej możliwej metryki: liczby przeskoków (ang. hop count). Liczba przeskoków to po prostu liczba routerów, przez które pakiet musi przejść, aby dotrzeć do celu.
Sieć bezpośrednio podłączona ma metrykę 0, ale gdy router ją ogłasza, jest ona reklamowana z metryką 1. Każdy kolejny router, który uczy się trasy, dodaje 1 do metryki.
Ograniczenie: Prędkość nie ma znaczenia
Największą słabością liczby przeskoków jako metryki jest to, że jest ona całkowicie ślepa na jakość łączy. Traktuje wszystkie łącza jako równe.
W powyższym przykładzie pakiet musi trafić z serwera podłączonego do Routera A do serwera podłączonego do Routera D.
- Ścieżka 1 (przez B): Pakiet idzie z A do B (1 przeskok), a następnie z B do D (2 przeskoki). Całkowita liczba przeskoków wynosi 2. Ta ścieżka wykorzystuje nowoczesne, szybkie łącze 1 Gb/s.
- Ścieżka 2 (przez C): Pakiet idzie z A do C (1 przeskok). Całkowita liczba przeskoków wynosi 1. Ta ścieżka wykorzystuje archaiczne, wolne łącza 56 kb/s.
Ponieważ RIP dba tylko o minimalizację liczby przeskoków, wybierze Ścieżkę 2 jako najlepszą, ponieważ 1 jest mniejsze niż 2. Wyśle cały ruch przez niewiarygodnie wolną ścieżkę, podczas gdy znacznie szybsza pozostanie bezczynna. Jest to krytyczne ograniczenie, które czyni RIP nieodpowiednim dla nowoczesnych sieci z łączami o różnych prędkościach.
Maksymalna Liczba Przeskoków
RIP definiuje maksymalną liczbę przeskoków na 15. Każda trasa o metryce 16 jest uważana za "nieskończenie daleką" i w związku z tym nieosiągalną. Ten limit był przeznaczony dla małych sieci i działa również jako podstawowy, choć powolny, mechanizm zapobiegający wiecznym pętlom routingu.
Konwergencja i Problem Liczenia do Nieskończoności
Ponieważ RIP polega na okresowych aktualizacjach i informacjach z drugiej ręki, może zająć bardzo dużo czasu, zanim wszystkie routery w sieci uzgodnią aktualną topologię po zmianie. Ten wolny czas reakcji, znany jako powolna konwergencja, jest najbardziej problematyczny, gdy łącze sieciowe ulegnie awarii.
Scenariusz: Liczenie do Nieskończoności
Powróćmy do klasycznego scenariusza awarii, który nęka proste protokoły wektora odległości.
| Czas | Metryka Routera A do Y | Metryka Routera B do Y | Akcja |
|---|---|---|---|
| T0 | 3 | 2 | Stan stabilny. C może dotrzeć do Y w 1 przeskoku, B w 2, A w 3. |
| T1 | 3 | 2 | Łącze od C do Y ulega awarii. C oznacza trasę jako nieosiągalną. |
| T2 | 3 | 4 (przez A) | B otrzymuje aktualizację od A (który wciąż ma starą trasę, metryka 3). B myśli, że znalazł nową ścieżkę przez A. Powstaje pętla routingu (B->A->B). |
| T3 | 5 (przez B) | 4 | A otrzymuje aktualizację od B (metryka 4) i aktualizuje własną metrykę na 5. Pętla trwa. |
| ... | ... | ... | Metryki rosną... |
| T-final | 16 | 16 | Wreszcie metryka osiąga 16, a trasa jest uznana za nieosiągalną. |
Gdy pętla jest aktywna, pakiety do Sieci Y odbijają się między routerami, aż ich Czas Życia (TTL) wygaśnie, marnując przepustowość i zasoby procesora. Powolna konwergencja do metryki 16 może trwać kilka minut w większych sieciach.
Liczniki Czasu i Mechanizmy Zapobiegania Pętlom
Aby uczynić RIP bardziej stabilnym i złagodzić jego najgorsze wady, zaimplementowano kilka mechanizmów i liczników czasu.
Kluczowe Liczniki Czasu
- Licznik Aktualizacji (30s): Definiuje, jak często wysyłane są aktualizacje routingu.
- Licznik Unieważnienia (180s): Jeśli router nie usłyszy aktualizacji dla określonej trasy przez 180 sekund, zakłada, że trasa uległa awarii i oznacza ją jako nieważną (metryka 16). Jednakże trzyma trasę w tablicy jeszcze przez chwilę.
- Licznik Usunięcia (240s): Po dodatkowych 60 sekundach (180 + 60 = 240s) trasa jest całkowicie usuwana (czyszczona) z tablicy routingu.
Techniki Zapobiegania Pętlom
- Dzielony Horyzont (Split Horizon): Prosta, ale skuteczna reguła. Router nigdy nie ogłosi trasy z powrotem przez ten sam interfejs, z którego się jej nauczył. To bezpośrednio zapobiega prostym pętlom dwu-routerowym, jakie widzieliśmy w przykładzie „Liczenia do Nieskończoności”.
- Zatruwanie Trasy (Route Poisoning): Bardziej aktywne podejście. Gdy trasa ulega awarii, zamiast po prostu przestać ją ogłaszać, router natychmiast rozgłasza aktualizację dla tej trasy z metryką 16 (nieosiągalna). To „zatruwa” trasę u sąsiednich routerów, informując je jawnie, że ścieżka jest martwa. Znacznie przyspiesza to konwergencję w porównaniu z oczekiwaniem na wygaśnięcie Licznika Unieważnienia.
Ograniczenia i Przestarzałość RIPv1
Mimo prostoty i dodatków zapobiegających pętlom, RIP wersja 1 (RIPv1) ma dwie fundamentalne, paraliżujące wady, które czynią go bezużytecznym w każdej nowoczesnej sieci.
- Jest Klasowym Protokołem Routingu: To jest jego fatalna wada. Aktualizacje routingu RIPv1 nie zawierają informacji o masce podsieci. Zakłada on, że każda sieć używa swojej domyślnej, klasowej maski (np. /8 dla klasy A, /16 dla klasy B). Oznacza to, że RIPv1 nie obsługuje . Każdy projekt sieci, który używa podsieci o różnych rozmiarach, co jest standardem w niemal wszystkich nowoczesnych sieciach, zostanie zepsuty przez RIPv1.
- Brak Uwierzytelniania: RIPv1 nie ma mechanizmu uwierzytelniania aktualizacji routingu. Każde złośliwe urządzenie w sieci może wstrzyknąć fałszywe informacje routingowe, potencjalnie przekierowując ruch do ataków typu „man-in-the-middle” lub tworząc czarne dziury typu denial-of-service.
- Użycie Rozgłoszeń: Używanie rozgłoszeń do aktualizacji jest nieefektywne. Zmusza to każdego hosta w sieci, w tym urządzenia niebędące routerami, takie jak komputery i drukarki, do odbierania i przetwarzania pakietu aktualizacji routingowej na warstwie sieciowej, zanim ostatecznie go odrzuci.
Z powodu tych ograniczeń, RIPv1 jest uważany za przestarzały. Dziś studiuje się go głównie z powodów historycznych i aby zrozumieć ewolucję protokołów routingu. Wiele z jego wad zostało rozwiązanych przez jego następcę, RIPv2, który dodał wsparcie dla VLSM, uwierzytelniania i aktualizacji multicastowych.