Wprowadzenie: IGRP i EIGRP w routingu Cisco
W routingu sieciowym rozwinęły się dwie główne filozofie: prosty, oparty na informacjach od sąsiadów protokół wektora odległości, taki jak RIP, oraz oparty na obrazie topologii protokół stanu łącza, taki jak OSPF. Otwarte standardy zapewniały wspólny sposób wymiany informacji między routerami różnych producentów, ale wiązały się z określonymi kompromisami. Cisco Systems opracowało rozwiązania dopasowane do własnego sprzętu oraz sposobu podejmowania decyzji w dużych sieciach.
Doprowadziło to do rozwoju protokołów zastrzeżonych (proprietary). Taki protokół jest projektowany i posiadany przez jedną firmę, a historycznie był używany wyłącznie na jej sprzęcie. Ogranicza to interoperacyjność, lecz daje firmie swobodę rozwijania funkcji poza ograniczeniami publicznych procesów standaryzacyjnych.
Cisco opracowało Wewnętrzny Protokół Routingu Bramy (IGRP) w celu rozwiązania najważniejszych problemów RIP, a następnie jego następcę, Ulepszony Wewnętrzny Protokół Routingu Bramy (EIGRP). EIGRP zachowuje metrykę złożoną IGRP, a dodatkowo obsługuje routing bezklasowy i algorytm DUAL.
IGRP: Wektor odległości i metryka złożona
Wewnętrzny Protokół Routingu Bramy (IGRP) zaprojektowano i wdrożono w Cisco w połowie lat 80. W swojej podstawie pozostał protokołem wektora odległości: routery wymieniały informacje o odległości do sieci, podobnie jak w RIP. Protokół ten usuwał najpoważniejsze słabości RIP.
Naprawianie Wad RIP
IGRP został stworzony, aby rozwiązać dwa kluczowe problemy:
- Prosta metryka: Wyłączne poleganie RIP na liczbie przeskoków było jego największą wadą: wolne łącze satelitarne 56 kbps miało tę samą wartość co szybkie łącze światłowodowe. IGRP wprowadził sposób pomiaru jakości ścieżki uwzględniający więcej niż liczbę przeskoków.
- Ograniczona skala: Maksymalna liczba przeskoków w RIP wynosząca 15 czyniła go nieodpowiednim dla sieci o umiarkowanym rozmiarze. IGRP został zaprojektowany dla większych sieci korporacyjnych, z wyższą domyślną maksymalną liczbą przeskoków (100, z możliwością konfiguracji do 255).
Złożona metryka IGRP
Najważniejszym rozszerzeniem IGRP była metryka złożona. Zamiast tylko liczyć routery, IGRP uwzględniał wiele cech ścieżki, aby obliczyć jej koszt. Brał pod uwagę pięć wartości wektora metryki. Cztery z nich mogły wpływać na koszt przez współczynniki K, natomiast MTU było śledzone, lecz nie wchodziło do wzoru:
- Przepustowość (K1): Najniższa przepustowość na całej ścieżce, ponieważ przepustowość trasy ogranicza jej najwęższy odcinek.
- Opóźnienie (K3): Skumulowane opóźnienie, czyli latencja wszystkich łączy na ścieżce.
- Obciążenie (K2): Wykorzystanie łącza, określające stopień jego zajętości.
- Niezawodność (K4 i K5): Wskaźnik poprawnego dostarczenia pakietów na łączu, powiązany ze stopą błędów. K4 i K5 określają jego udział we wzorze.
- MTU: Maksymalna jednostka transmisji, czyli największy rozmiar pakietu obsługiwany na ścieżce. MTU jest śledzone, ale nie jest składnikiem wzoru metryki.
Współczynniki K pozwalają uwzględniać w obliczeniach przepustowość, opóźnienie, obciążenie oraz niezawodność. W konfiguracji domyślnej IGRP i klasycznego EIGRP aktywne są tylko Przepustowość i Opóźnienie. Wzór preferuje ścieżki o wyższej przepustowości i niższym skumulowanym opóźnieniu.
Wzór metryki IGRP
Pełny zapis obejmuje także czynnik z . Gdy , tak jak w ustawieniach domyślnych, iloraz niezawodności ma wartość 1 i nie zmienia pierwszego nawiasu. Domyślnie i , podczas gdy są ustawione na 0. Dla IGRP upraszcza to wzór do:
Gdzie „Przepustowość” jest obliczana jako , a „Opóźnienie” to .
Klasyczny EIGRP korzysta z tych samych składników, lecz skaluje wynik przez 256. Przy domyślnych wartościach K jego metryka wynosi 256 × (Przepustowość + Opóźnienie). Metryka szeroka EIGRP modyfikuje format pakietu i wzór dla łączy o dużej przepustowości oraz mierzy czas przejścia informacji w pikosekundach. W trybie nazwanym korzysta z obliczeń 64-bitowych i może uwzględniać dodatkowy współczynnik K6, domyślnie równy 0.
Ograniczenie IGRP: routing klasowy
Mimo metryki złożonej IGRP miał tę samą kluczową wadę co RIPv1: był klasowym protokołem routingu. Nie wysyłał informacji o masce podsieci w aktualizacjach. Oznaczało to, że IGRP nie obsługiwał VLSM i nie pasował do bezklasowego adresowania współczesnych sieci.
Gdy Internet przechodził na model bezklasowy w celu oszczędzania adresów IP, IGRP stał się przestarzały. Cisco potrzebowało następcy, który zachowałby metrykę IGRP i obsługiwał bezklasowe adresowanie. Tym następcą był EIGRP.
Charakterystyka EIGRP
Enhanced Interior Gateway Routing Protocol (EIGRP) jest protokołem routingu wewnątrzdomenowego opracowanym przez Cisco. Jest rozszerzoną wersją IGRP i korzysta z technologii wektora odległości. Algorytm DUAL wyznacza trasy bez pętli oraz wybiera trasy zapasowe.
EIGRP obsługuje routing bezklasowy, relacje sąsiedztwa, częściowe aktualizacje tras oraz równoważenie obciążenia po ścieżkach o równym i nierównym koszcie. Mechanizmy te łączą informacje o sąsiadach z wyborem tras i obsługą zmian topologii.
DUAL i tablice EIGRP
Podstawą obliczeń EIGRP jest Rozproszony Algorytm Aktualizacji (DUAL). DUAL wyznacza trasy bez pętli i oblicza ścieżki zapasowe na podstawie informacji przechowywanych przez router.
Trzy tablice routingu
Aby przechowywać informacje o sąsiadach i alternatywnych trasach, EIGRP utrzymuje trzy tabele zamiast jednej:
- Tablica sąsiadów: Lista wszystkich bezpośrednio podłączonych routerów, które nawiązały relację sąsiedztwa EIGRP. Zawiera informacje potrzebne do utrzymania tych relacji.
- Tablica topologii: Tablica topologii zawiera wszystkie poznane ścieżki do każdego celu, otrzymane od sąsiadów. Obejmuje najlepszą trasę oraz pozostałe reklamowane trasy i ich metryki.
- Tablica routingu: Zawiera tylko najlepszą ścieżkę do każdego celu, wybraną z tablicy topologii. Jest używana do przekazywania pakietów.
Warunek Wykonalności i ścieżki zapasowe bez pętli
DUAL wybiera trasy zapasowe bez pętli za pomocą reguły zwanej Warunkiem Wykonalności (ang. Feasibility Condition). Do jej zastosowania potrzebne są dwie definicje:
- To zapamiętana przez router najniższa znana metryka do celu. Nie musi odpowiadać metryce ścieżki używanej obecnie w jego tablicy routingu.
- To wartość przekazana przez sąsiada dla tej sieci. RD jest metryką reklamowaną przez sąsiada, a FD oblicza lokalny router. Podczas ponownego obliczania trasy zapisana RD może różnić się od bieżącej odległości sąsiada.
Warunek Wykonalności mówi: Aby ścieżka ogłoszona przez sąsiada była uznana za ważną, wolną od pętli ścieżkę zapasową, Odległość Zgłoszona (RD) sąsiada do celu musi być ściśle mniejsza niż zapamiętana przez router Odległość Wykonalna (FD) do tego samego celu. Jest to warunek wystarczający, ale nie konieczny: każda ścieżka spełniająca nierówność jest bez pętli, lecz nie każda ścieżka bez pętli musi ją spełniać.
Przykład liczbowy: Router A wyznacza trasę do celu Z. Jego zapamiętana FD wynosi 60 jednostek metryki. Sąsiad B zgłasza RD równe 40, więc 40 jest mniejsze od 60 i trasa B spełnia warunek, może zostać użyta jako zapasowa i jest skierowana w stronę celu. Sąsiad C zgłasza RD równe 70, które przekracza FD routera A, więc trasa C nie jest wybierana jako wykonalny następca. Bez tego warunku trasa C mogłaby prowadzić przez A i utworzyć pętlę.
Następca i Wykonalny następca
Warunek ten pozwala algorytmowi DUAL klasyfikować ścieżki w tablicy topologii:
- Następca (Successor): To trasa z najniższą metryką (najlepsza ścieżka). Następca jest instalowany w tablicy routingu.
- Wykonalny następca (Feasible Successor, FS): Jest to alternatywna ścieżka spełniająca Warunek Wykonalności . Jest to zapasowa ścieżka bez pętli, przechowywana w tablicy topologii i gotowa do użycia.
Jeśli ścieżka następcy ulegnie awarii, obecność Wykonalnego następcy oznacza, że router nie musi wysyłać zapytań ani czekać na liczniki czasu. Może zainstalować tę ścieżkę jako nowego następcę bez ponownego obliczania trasy. Dopiero gdy Wykonalny następca nie istnieje, router przechodzi w stan „aktywny” i wysyła zapytania do sąsiadów w celu znalezienia nowej ścieżki.
Pakiety i dodatkowe cechy EIGRP
Poza algorytmem DUAL EIGRP zawiera funkcje dotyczące transportu pakietów, aktualizacji tras i wyboru ścieżek.
- Niezawodny protokół transportowy (RTP): EIGRP nie używa UDP ani TCP. Pakiety są bezpośrednio enkapsulowane w IPv4 lub IPv6 i korzystają z numeru protokołu IP 88. Własny Reliable Transport Protocol zapewnia uporządkowane, niezawodne dostarczanie pakietów wymagających potwierdzenia. EIGRP definiuje pięć typów pakietów: HELLO, UPDATE, QUERY, REPLY i REQUEST. Potwierdzenie ACK jest zawarte w pakiecie HELLO, więc zestaw nadal obejmuje pięć typów. Nazwa RTP w EIGRP oznacza Reliable Transport Protocol. Real-time Transport Protocol służy do przesyłania głosu i wideo.
- Częściowe i ograniczone aktualizacje: W przeciwieństwie do okresowego rozgłaszania całej tablicy przez RIP, EIGRP wysyła aktualizacje zależnie od zmian topologii. Po nawiązaniu sąsiedztwa wysyła pełną tabelę do nowego sąsiada, a późniejsze aktualizacje powstają, gdy łącze zostanie włączone lub wyłączone albo zmieni się metryka. Aktualizacje są częściowe, ponieważ zawierają tylko zmienione informacje, oraz ograniczone, ponieważ są wysyłane tylko do routerów dotkniętych zmianą. Ogranicza to ilość ruchu routingowego w sieci.
- Bezklasowy z założenia: EIGRP został od początku zaprojektowany jako protokół bezklasowy. Obsługuje VLSM i wysyła informacje o masce podsieci z każdą aktualizacją trasy.
- Równoważenie obciążenia równo- i nierównokosztowe: EIGRP może rozkładać ruch na wiele ścieżek do tego samego celu. Domyślnie obsługuje równoważenie obciążenia na maksymalnie 4 równokosztowych ścieżkach, z możliwością konfiguracji większej liczby. Może być również skonfigurowany do nierównokosztowego równoważenia obciążenia za pomocą funkcji Variance. Pozwala to przesyłać ruch przez ścieżki zapasowe, które nie są tak dobre jak podstawowa, o ile spełniają Warunek Wykonalności.
Status specyfikacji i zastosowanie EIGRP
IGRP jest protokołem wycofanym, natomiast EIGRP zachował koncepcję metryki złożonej i uzupełnił ją o routing bezklasowy oraz algorytm DUAL.
Opis EIGRP opublikowano w 2016 roku jako RFC 7868. Dokument ma kategorię Informational, został złożony niezależnie od ścieżki standardyzacyjnej IETF i nie jest standardem Internetu. Publikacja udostępniła opis protokołu, lecz nie uzasadnia nazywania EIGRP otwartym standardem IETF. Dobór EIGRP, OSPF lub IS-IS zależy od obsługiwanych urządzeń, wymagań interoperacyjności, topologii i zasad utrzymania sieci.