EIGRP – Enhanced IGRP
Pierwsze protokoły routingu dynamicznego korzystały z logiki przekazywania pakietów charakteryzującej obecne protokoły Distance (odległość) Vector (kierunek). W tamtych czasach powszechnie stosowanymi protokołami był RIP w wersji pierwszej, oraz niedługo później wydany IGRP. Jednak we wczesnych latach 90 kiedy „zakończyła się” wojna o standaryzację sieciową i zaczęto odchodzić od własnościowych rozwiązań na rzecz sieci opartych o routery, LAN i TCP/IP, pojawiła się potrzeba lepszych protokołów routingu. Tak powstały jako ulepszone wersje swoich protoplastów RIPv2, EIGRP, OSPFv2. RIP zachował swoją logikę Distance Vector, OSPF zaprezentował coś zupełnie nowego, czyli routing Link state, a cisco wraz ze swoim EIGRP zaproponowało coś pomiędzy.
Głównymi założeniami, które przyjęli sobie inżynierowie Cisco, tworząc EIGPR, było stworzenie rozwiązania wyjątkowo prostego w konfiguracji oraz zarządzaniu jednocześnie wspierającego CIDR, VLSM oraz oferującego szybki czas konwergencji.
RIPv2 | EIGRP | OSPF | |
Metryka ustalana na podstawie | Ilość skoków | Przepustowość oraz opóźnienie | Koszt |
Okresowo wysyła całą tablicę routingu | Tak | Nie | Nie |
Okresowo wysyła pakiety Hello | Nie | Tak | Tak |
Stosuje route poisoning | Tak | Tak | Tak |
Budowa hierarchiczna | Nie | Nie Tak | |
Stosuje split horizon | Tak | Tak | Nie |
Stosowany adres multicast | 224.0.0.9 | 224.0.0.10 | 224.0.0.5, 224.0.0.6 |
Metryka „nieskończości” | 16 | 232 – 1 | 224 – 1 |
Powyższa tabelka opisuje w dosyć dokładny sposób, różnice pomiędzy poszczególnymi protokołami routingu jednakże wymaga kilku słów wyjaśnienia. Czym jest route poisoning? Ponieważ nie wymyślono mechanizmy update odwołującego sieć, routery wysyłają update, z siecią podając metrykę nieskończości. W takim wypadku router odbierający informację o zmianie uzna daną trasę za nieosiągalną.
EIGRP Distance vector czy link state?
Odpowiedź na to pytanie wbrew pozorom nie jest taka oczywista. EIGRP tak jak protokoły DV posiada metrykę dla każdej trasy oraz posiada wiedzę jedynie o swoich sąsiadach. Jednakże tak jak protokoły stanu łącza nie rozsyła okresowo tablic routingu, wysyła jedynie częściowe informacje o zmianach w sieci.
EIGRP wykorzystuje podobnie jak OSPF trójstopniowy model dołączania nowego routera do sieci. W każdym kroku tworzymy tabelę: topologii, sąsiadów oraz routingu.
- Odkrywanie sąsiadów: Router wysyła na adres multicastowy 224.0.0.10 pakiety Hello w celu odkrycia innych potencjalnych routerów pracujących na EIGRP. Dokonuje podstawowego sprawdzenia, czy taki router może zostać sąsiadem. Jeśli wynik jest pozytywy, to sąsiad jest dopisywany do tablicy.
- Wymiana topologii: Sąsiedzi wymieniają się pełnymi informacjami o topologii jedynie podczas nawiązywania sąsiedztwa. Następnie wysyłane są wyłącznie aktualizacje odnośnie zmian w sieci. Tak pozyskane informacje są dodawane do tablicy topologii.
- Zapełnianie tablicy routingu: Każdy router analizuje własną tablicę topologii i wybiera trasy do danej podsieci o najniższej metryce. Tak wybrana trasa zostanie następnie dodana do tablicy routingu,
Relacja sąsiedztwa
Z perspektywy pojedynczego routera sąsiadem nazwiemy każdy EIGRP router, z którym mamy bezpośrednie połączenie, adresy w tej samej podsieci oraz jesteśmy w tym samym autonomicznym systemie. Do nawiązywania sąsiedztwa EIGRP wykorzystuje okresowo wysyłane pakiety HELLO.
Po odkryciu nowego routera następuje sprawdzenie, czy podstawowe wymogi do nawiązania relacji przylegania są osiągnięte:
- Czy router przechodzi poprawnie autentykację
- Czy routery są w tym samym systemie autonomicznym AS
- Czy routery są w tej samej podsieci
- Czy wartości K dla metryk EIGRP są takie same (więcej info przy obliczaniu metryki)
W odróżnieniu od OSPF’a routery EIGRP przechodzą do stanu przekazywania informacji natychmiast po nawiązaniu relacji sąsiedztwa.
Typy pakietów EIGRP
W EIGRP wyróżniamy 5 rodzajów pakietów, które w zależności od swojego przeznaczenia mogą być wysyłane na adres multicastowy lu adres unicastowy.
- Hello
- Wykorzystywane odkrywania sąsiadów
- Wysyłane bezpotwierdzenia
- Wysyłane na adres multicast
- Update
- Wysyłane za potwierdzeniem
- Wysyłane na adres unicast lub multicast
- Wykorzystywane do propagowania informacji
- Query
- Wysyłane w odpytania o konkretną trasę
- Wysyłane na adres unicast lub multicast
- Reply
- Odbiorca oczekuje na potwierdzenie otrzymania
- Wysyła w odpowiedzi na pakiety Query
- Wysyłane na adres unicast
- Acknowledgement
- Wysyłane w celu potwierdzenia otrzymania danych
- Wysyłane na adres unicast
Pakiety update
EIGRP wykorzystuje pakiety update do rozsyłania informacji o topologii do sąsiadów. Pakiety update są wysyłane na adres multicastowy 224.0.0.10 (ten sam, na który wysyłane są pakiety HELLO), gdy zachodzi potrzeba poinformowania więcej niż jednego routera w danej podsieci. W przeciwnym wypadku pakiety kierowane są na adres unicastowy sąsiada.
EIGRP wysyła pakiety HELLO bez użycia UDP lub TCP, zamiast tego wykorzystuje protokół Reliable Transport Protocol (RTP).
RTP dostarcza mechanizmów pozwalających na przesyłanie danych jednakowo za potwierdzeniem lub bez potwierdzenia otrzymania danych. Dzięki czemu router wysyłający pakiet update wie, czy został on poprawnie dostarczony czy powinien zostać przesłany ponownie. Kolejnym powodem zastosowanie RTP była chęć stworzenie prokołu niezależnego od warstwy sieciowej. Dzięki czemu EIGRP może być również wykorzystany w sieciach Appletalk czy IPX.
Algorytm DUAL
EIGRP wykorzystuje algorytm Diffusing Update Algorith (DUAL) w celu zapewnienia ścieżek (podstawowej oraz zapasowej) do danej podsieci z uwzględnieniem braku pętli routingu. Proces decyzyjny dla obliczania każdej ścieżki jest wykonywany przez DUAL Finite State Machine (FSM). Śledzi on wszystkie trasy i na podstawie metryki EIGRP wybiera najefektywniejsze ( o najniższej metryce) ścieżki do umieszczenia w tablicy routingu.
Przeliczanie metryk jest operacją mocno obciążającą procesor i z tego powodu EIGRP stara się dokonywać takich przeliczeń jak najrzadziej. Jest to możliwe poprzez przechowywanie zapasowych tras w tablicy topologii. W przypadku awarii podstawowej trasy kolejna może zostać natychmiast przeniesiona z tablicy topologii do tablicy routngu.
DUAL zapewnia:
- Szybką zbieżność
- Minimalne użycie łącza poprzez aktualizacje protokołu
- Ścieżki wolne od pętli routingu
- Zapasowe ścieżki, które mogą być natychmiastowo użyte
Feasible i Reported Distance
Zanim zaczniemy rozmawiać o konwergencji oraz o tym jak router wybiera najlepszą trasę, musisz poznać kilka terminów specyficznych dla EIGRP:
Feasible Distance (FD): Lokalna metryka dotarcia do danej podsieci obliczona na routerze
Reported Distance (RD) albo Advertised Distance (AD): Metryka dotarcia do podsieci otrzymana od sąsiada (next-hop router).
Successor: To najlepsza droga do danej podsieci, która zostanie umieszczona w tablicy routingu.
Feasible Successor: To zapasowa trasa do danej podsieci, nieumieszczona w tablicy routingu, tylko w tablicy topologii. Aby trasa była uznana za FS, jej RD musi być mniejsze niż FD. Innymi słowy, aby trasa mogła być uważana za FS, metryka dotarcia do podsieci od sąsiada musi być mniejszy niż metryka dotarcia przez Successora.

W powyższym przypadku wyraźnie widać, że:
- Trasa przez R2 będzie Successorem, ponieważ ma najniższą metrykę
- Metryka RD routera R3 jest niższa niż metryka Successora, więc ta trasa może być traktowana jako feasible successor. 10 < 150
Logika algorytmu DUAL

Metryka EIGRP
Do obliczenia metryki EIGRP możemy wykorzystać kilka parametrów:
- Przepustowość (Bandwidth) (K1)
- Obciążenie (Loading) (K2)
- Opóźnienie (Delay) (K3)
- Wiarygodność (Reliability) (K4 i K5)
Pełny wzór na metrykę wygląda tak:
Metryka = (K1 * BW + ((K2 * BW) / (256-obciążenie)) + K3 * opóźnienie)*( K5 / wiarygodność + K4))
BW = 107/Przepustowość w Kbps
Jednakże najczęściej stosowaną wersją algorytmu jest:
Metryka = (107/najniższa wartość przepustowości)+całkowite opóźnienie (delay/10))*256
Czyli przepustowość najwolniejszego linku plus łączne opóźnienie wszystkich łączy na trasie (podzielona przez 10) pomnożone przez 256. Jest to standardowa wersja algorytmu, z której korzystają urządzenia Cisco zaraz po podłączeniu.

Na powyższym obrazku mamy router R2 podpięty gigabitowym portem do podsieci 172.16.0.0. Standardowo ten port ma 1000000kbps oraz delay 100. Podstawiając te dane do wzoru, otrzymujemy FD dla R2. EIGPR dokonuje zaokrąglenia w dół wyniku dzielenia 10^7/Bandwidth)!
FD dla R2 = (10^7/1000000 +100/10)*256 = 5120
Otrzymane w ten sposób FD jest rozsyłane jako RD do sąsiadów, w tym wypadku do R1. Oprócz RD przesyłana jest informacja o najwolniejszym łączu (w naszym przypadku wszystkie łącza są jednogigabitowe) oraz łączny delay już podzielony przez 10.
FD dla R1 = (10^7/1000000 + (100+10) / 10)*256 = 5376
Podstawowa konfiguracja
Konfiguracja EIGRP jest bardzo podobna do tej z OSPF. Polecenie router eigrp ASN (autonomous system number) wymusza uruchomienie protokołu EIGRP na routerze i przejście do trybu konfiguracji. Podobnie jak w OSPF polecenie network aktywuje wszystkie interfejsy w danej podsieci. Następnie EIGRP spróbuje znaleźć sąsiadów oraz rozgłosi podsieci podłączone do swoich interfejsów.
- Użyj polecenia router eigrp ASN
- Skonfigruj poleceniem network adres-ip jeden lub więcej interfejsów
- Opcjonalnie Skonfiguruj ręcznie eigrp router-id adres-ip
- Opcjonalnie Zmień wartość timera Hello ip hello-interval eigrp ASN nowy-czas lub timer Hold’a (czas oczekiwania) ip hold-time eigrp ASN nowy-czas
- Opcjonalnie Zmień wartości Bandwidth oraz Delay na konkretnych interfejsach
- Opcjonalnie Zmień wartości maximum-path liczba oraz variance multiplier
- Opcjonalnie Wyłącz auto-sumaryzację no auto-summary

Konfiguracja bez sumaryzacji
Za pomocą trzech tych samych poleceń wydanych na wszystkich routerach otrzymamy w pełni funkcjonalną sieć na podstawie EIGRP.
R3(config)#router eigrp 1 R3(config-router)#network 10.0.0.0 R3(config-router)#no auto-summary %DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 10.4.1.1 (GigabitEthernet0/0) is up: new adjacency %DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 10.6.1.1 (GigabitEthernet0/1) is up: new adjacency
Nasza prosta konfiguracja uruchomiła EIGRP w AS 1 (wszystkie routery muszą być w tym samy AS, aby nawiązać sąsiedztwo), zakres dostępnych numer jest identyczny jak dla procesów w OSPF i jest to 1-65,535.
Weryfikacja konfiguracji
Zweryfikujmy czy wszystko działa, jak należy:
R3#show ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 10.4.1.1 Gig0/0 11 00:02:37 40 1000 0 78 1 10.6.1.1 Gig0/1 13 00:02:37 40 1000 0 276 R3#show ip eigrp topology IP-EIGRP Topology Table for AS 1/ID(10.6.1.2) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - Reply status P 10.1.0.0/16, 1 successors, FD is 5376 via 10.4.1.1 (5376/5120), GigabitEthernet0/0 P 10.2.0.0/16, 1 successors, FD is 5376 via 10.6.1.1 (5376/5120), GigabitEthernet0/1 P 10.3.0.0/16, 1 successors, FD is 5120 via Connected, GigabitEthernet0/2 P 10.4.0.0/16, 1 successors, FD is 2816 via Connected, GigabitEthernet0/0 P 10.5.0.0/16, 2 successors, FD is 3072 via 10.4.1.1 (3072/2816), GigabitEthernet0/0 via 10.6.1.1 (3072/2816), GigabitEthernet0/1 P 10.6.0.0/16, 1 successors, FD is 3328 via 10.4.1.1 (3328/3072), GigabitEthernet0/0 P 10.6.1.0/24, 1 successors, FD is 2816 via Connected, GigabitEthernet0/1 R3#show ip route Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 10 subnets, 3 masks D 10.1.0.0/16 [90/5376] via 10.4.1.1, 00:02:45, GigabitEthernet0/0 D 10.2.0.0/16 [90/5376] via 10.6.1.1, 00:02:45, GigabitEthernet0/1 C 10.3.0.0/16 is directly connected, GigabitEthernet0/2 L 10.3.1.1/32 is directly connected, GigabitEthernet0/2 C 10.4.0.0/16 is directly connected, GigabitEthernet0/0 L 10.4.1.2/32 is directly connected, GigabitEthernet0/0 D 10.5.0.0/16 [90/3072] via 10.4.1.1, 00:02:45, GigabitEthernet0/0 [90/3072] via 10.6.1.1, 00:02:45, GigabitEthernet0/1 D 10.6.0.0/16 [90/3328] via 10.4.1.1, 00:02:45, GigabitEthernet0/0 C 10.6.1.0/24 is directly connected, GigabitEthernet0/1 L 10.6.1.2/32 is directly connected, GigabitEthernet0/1
0 komentarzy