Dziś rozpoczniemy naukę protokołu EIGRP, który, obok OSPF, jest najważniejszym tematem kursu CCNA.
Później wrócimy do rozdziału 2.5, a teraz od razu po rozdziale 2.4 przejdźmy do rozdziału 2.6 „Konfiguracja, weryfikacja i rozwiązywanie problemów z EIGRP w protokole IPv4 (poza autoryzacją, filtrowaniem, ręcznym sumowaniem, redystrybucją i konfiguracją stub)”.
Dzisiaj mamy lekcję wprowadzającą, na której opowiem wam o koncepcji zaawansowanego wewnętrznego protokołu routingu EIGRP, a w kolejnych dwóch lekcjach omówimy konfigurację i rozwiązywanie problemów z tym protokołem. Ale najpierw chciałbym wam przekazać kilka informacji.
W ciągu kilku ostatnich lekcji omawialiśmy OSPF. Teraz chcę, żebyście przypomnieli sobie, że kiedy wiele miesięcy temu uczyliśmy się protokołu RIP, mówiliśmy o pętlach routingu i technologiach zapobiegających cykliczności ruchu. Jak można zapobiec powstawaniu pętli routingu przy użyciu OSPF? Czy można użyć takich metod, jak „trucizna routingu” czy „podzielony horyzont”? To pytania, na które musicie odpowiedzieć samodzielnie. Możecie skorzystać z innych zasobów tematycznych, ale znajdźcie odpowiedzi na te pytania. Chcę, abyście nauczyli się samodzielnie szukać odpowiedzi, pracując z różnymi źródłami, i proszę, abyście zostawili swoje komentarze pod tym filmem, abym mógł zobaczyć, ile moich uczniów sobie z tym poradziło.
Czym jest EIGRP? To hybrydowy protokół routingu, który łączy użyteczne funkcje zarówno protokołu typu distance-vector, takiego jak RIP, jak i protokołu stanu łącza, jak OSPF.
EIGRP jest protokołem, który stworzony przez Cisco, a udostępniony do użytku publicznego w 2013 roku. Z protokołu stanu łącza przejął algorytm ustalania sąsiedztwa, w przeciwieństwie do RIP, który nie tworzy sąsiadów. RIP również wymienia tabele routingu z innymi uczestnikami protokołu, jednak OSPF przed rozpoczęciem tego wymiany tworzy sąsiedztwo. EIGRP działa w podobny sposób.
Protokół RIP co 30 sekund przeprowadza okresowe aktualizacje pełnej tabeli routingu i rozsyła informacje o wszystkich interfejsach oraz wszystkich trasach do wszystkich swoich sąsiadów. EIGRP nie przeprowadza okresowej pełnej aktualizacji informacji, zamiast tego wykorzystuje koncepcję wysyłania wiadomości Hello, tak jak robi to OSPF. Co kilka sekund wysyła Hello, aby upewnić się, że sąsiad nadal „żyje”.
W odróżnieniu od protokołu wektorowego, który bada całą topologię sieci przed podjęciem decyzji o formowaniu trasy, EIGRP podobnie jak RIP tworzy trasy na podstawie plotek. Kiedy mówię „plotki”, mam na myśli, że gdy sąsiad coś komunikuje, EIGRP to bezwarunkowo akceptuje. Na przykład, jeśli sąsiad mówi, że wie, jak dotrzeć do 10.1.1.2, EIGRP mu wierzy, nie pytając: „Skąd to wiesz? Opowiedz mi o topologii całej sieci!”.
Do 2013 roku, jeśli korzystałeś tylko z infrastruktury Cisco, mogłeś używać EIGRP, ponieważ ten protokół został stworzony w 1994 roku. Jednak wiele firm, nawet używając sprzętu Cisco, nie chciało pracować z tym protokołem. Moim zdaniem, obecnie EIGRP jest najlepszym protokołem dynamicznej routingu, ponieważ jest znacznie łatwiejszy w użyciu, jednak ludzie nadal wolą OSPF. Myślę, że to dlatego, że nie chcą „związywać się” z produktami Cisco. Ale Cisco uczyniło ten protokół ogólnodostępnym, ponieważ wspiera on sprzęt sieciowy innych producentów, na przykład Juniper, i jeśli połączysz się z firmą, która nie używa sprzętu Cisco, nie napotkasz żadnych problemów.
Zróbmy krótki przegląd historii protokołów sieciowych.
Protokół RIPv1, który pojawił się w latach 80-tych, miał szereg ograniczeń, na przykład maksymalną liczbę skoków równą 16, przez co nie był w stanie zapewnić routingu w rozległych sieciach. Wkrótce potem opracowano wewnętrzny protokół routingu IGRP, który był znacznie lepszy od RIP. Jednak był bardziej protokołem wektorowym niż protokołem stanu łączy. Pod koniec lat 80-tych pojawił się otwarty standard – protokół śledzenia stanu łączy OSPFv2 dla protokołu IPv4.
Na początku lat 90-tych Cisco zdecydowało, że protokół IGRP wymaga usprawnienia i wypuściło zaawansowany wewnętrzny protokół routingu EIGRP. Był on znacznie bardziej efektywny od OSPF, ponieważ łączył cechy zarówno RIP, jak i OSPF. Kiedy zaczniemy jego omawianie, przekonasz się, że konfiguracja EIGRP jest znacznie prostsza niż OSPF. Cisco starało się stworzyć protokół, który zapewnia możliwie najszybszą konwergencję sieci.
Pod koniec lat 90-tych wydano zaktualizowaną wersję bezklasowego protokołu RIPv2. W latach 2000-ych pojawiły się trzecia wersja OSPF, RIPng i EIGRPv6, które obsługiwały protokół IPv6. Świat stopniowo zbliża się do pełnego przejścia na IPv6, a twórcy protokołów routingu chcą być na to gotowi.
Jeśli pamiętasz, uczyliśmy się, że przy wyborze optymalnej trasy protokół RIP, jako protokół wektorowy, kieruje się tylko jednym kryterium — minimalną liczbą przeskoków, czyli minimalną odległością do docelowego interfejsu. Tak więc router R1 wybierze bezpośrednią trasę do routera R3, mimo że prędkość na tej trasie wynosi 64 kbit/s — znacznie mniej niż na trasie R1-R2-R3, która wynosi 1544 kbit/s. Protokół RIP uznaje wolną trasę długości jednego przeskoku za optymalną, a nie szybką trasę długości dwóch przeskoków.
Protokół OSPF zbada całą topologię sieci i podejmie decyzję, że do połączenia z routerem R3 użyje trasy przez router R2 jako szybszej. Jako metrykę, RIP wykorzystuje liczbę przeskoków, a metryką OSPF jest koszt, który w większości przypadków jest proporcjonalny do przepustowości łącza.
EIGRP również orientuje się na koszt trasy, jednak jego metryka jest znacznie bardziej skomplikowana niż metryka OSPF i opiera się na wielu czynnikach, w tym na przepustowości (Bandwidth), opóźnieniu (Delay), niezawodności (Reliability), obciążeniu (Loading) oraz maksymalnym rozmiarze pakietu (MTU). Na przykład, jeśli jakiś węzeł jest bardziej obciążony niż pozostałe, EIGRP przeanalizuje obciążenie całej trasy i wybierze inny węzeł o mniejszym obciążeniu.
W kursie CCNA będziemy brać pod uwagę tylko takie czynniki formowania metryki, jak Bandwidth i Delay, to właśnie te czynniki będą wykorzystywane w formule metryki.
Protokół RIP oparty na zasadzie wektora odległości używa dwóch pojęć: odległości i kierunku. Jeśli mamy 3 routery, a jeden z nich jest połączony z siecią 20.0.0.0, wybór będzie oparty na odległości – są to hops, w tym przypadku 1 hop, oraz na kierunku, czyli na tym, którą drogą – górną czy dolną – przesyłać ruch.
Ponadto, RIP wykorzystuje okresowe aktualizacje informacji, wysyłając pełną tabelę routingu w całej sieci co 30 sekund. Ta aktualizacja pełni dwie funkcje. Po pierwsze – aktualizuje tabelę routingu, po drugie – sprawdza żywotność sąsiada. Jeśli urządzenie nie otrzyma odpowiedzi z aktualizacją tabeli lub nowych informacji o trasie od sąsiada w ciągu 30 s, stwierdza, że trasa do sąsiada nie może być już używana. Router wysyła aktualizację co 30 sekund, aby sprawdzić, czy sąsiad jest jeszcze „żywy” i czy trasa jest nadal ważna.
Jak już wspomniałem, aby zapobiec pętlom routingu, stosuje się technologię Split Horizon. Oznacza to, że aktualizacja nie jest wysyłana z powrotem do interfejsu, z którego nadeszła. Drugą technologią zapobiegającą pętli jest Route Poison. Jeśli połączenie z siecią 20.0.0.0 przedstawioną na obrazku zostanie przerwane, router, do którego była podłączona, wysyła sąsiadom „filterowany routing”, w którym informuje, że ta sieć jest teraz dostępna w 16 hopach, co oznacza, że jest praktycznie nieosiągalna. Tak działa protokół RIP.
Jak działa EIGRP? Jeśli pamiętacie z lekcji o OSPF, protokół ten wykonuje trzy funkcje: nawiązuje sąsiedztwo, za pomocą LSA aktualizuje bazę LSDB zgodnie ze zmianami w topologii sieci i buduje tabelę routingu. Nawiązanie sąsiedztwa to dość skomplikowana procedura, wykorzystująca wiele parametrów. Na przykład, sprawdzenie i zmiana połączenia 2WAY – niektóre połączenia pozostają w stanie dwukierunkowym, inne przechodzą w stan FULL. W przeciwieństwie do OSPF w protokole EIGRP nie występuje to zjawisko – sprawdza on tylko 4 parametry.
Podobnie jak OSPF, ten protokół co 10 sekund wysyła komunikat Hello, który zawiera 4 parametry. Pierwszy - to kryterium uwierzytelnienia, jeśli zostało wcześniej skonfigurowane. Przy tym wszystkie urządzenia, z którymi nawiązywane jest sąsiedztwo, muszą mieć identyczne parametry uwierzytelnienia.
Drugi parametr służy do weryfikacji przynależności urządzeń do jednej autonomicznej systemu, co oznacza, że aby nawiązać sąsiedztwo za pomocą protokołu EIGRP, oba urządzenia muszą mieć ten sam numer autonomicznej systemu. Trzeci parametr służy do sprawdzenia, że komunikaty Hello są rozsyłane z jednego adresu IP źródłowego Source IP.
Czwarty parametr służy do sprawdzenia zgodności zmiennych współczynników K-Values. Protokół EIGRP używa 5 takich współczynników od K1 do K5. Jeśli pamiętacie, przy wartości K=0 parametry są ignorowane, natomiast gdy K=1, parametry są uwzględniane w formule obliczania metryki. Dlatego wartości K1-5 dla różnych urządzeń muszą być zgodne. W kursie CCNA przyjmiemy domyślne wartości tych współczynników: K1 i K3 równe 1, a K2, K4 i K5 równe 0.
Zatem, jeśli te 4 parametry się zgadzają, EIGRP nawiązuje relacje sąsiedztwa, a urządzenia wprowadzają się nawzajem do tabeli sąsiadów. Następnie wprowadza się zmiany w tabeli topologii.
Wszystkie komunikaty Hello są wysyłane na adres IP multicastowy 224.0.0.10, a aktualizacje, w zależności od ustawień, są wysyłane na unicastowe adresy sąsiadów lub na adres multicastowy. Ta aktualizacja nie jest przesyłana przez UDP ani TCP, lecz wykorzystuje inny protokół o nazwie RTP, Reliable Transport Protocol, czyli "protokołu transportowego niezawodności". Protokół ten sprawdza, czy sąsiad otrzymał aktualizację, a jak wskazuje jego nazwa, jego kluczową funkcją jest zapewnienie niezawodności komunikacji. Jeśli aktualizacja nie dotrze do sąsiada, przekazanie będzie powtarzane, aż zostanie ona odebrana. W OSPF mechanizm do weryfikacji urządzenia odbierającego jest nieobecny, dlatego system nie wie, czy sąsiadujące urządzenia otrzymały aktualizację, czy nie.
Jeśli pamiętacie, RIP co 30 sekund wysyła aktualizację pełnej topologii sieci. EIGRP robi to tylko w przypadku, gdy w sieci pojawiło się nowe urządzenie lub zajdą jakiekolwiek zmiany. Jeśli topologia podsieci ulegnie zmianie, protokół wyśle aktualizację, ale nie całej tabeli topologii, a tylko wpisy z tą zmianą. Jeśli zmieni się jakaś podsieć, zostanie zaktualizowana tylko jej topologia. Wygląda to jak częściowa aktualizacja, która odbywa się, gdy jest to konieczne.
Jak wiadomo, OSPF wysyła LSA co 30 minut, niezależnie od tego, czy w sieci zaszły jakieś zmiany. EIGRP nie będzie wysyłać żadnych aktualizacji przez długi czas, dopóki w sieci nie nastąpią żadne zmiany. Dlatego EIGRP jest znacznie bardziej efektywny niż OSPF.
Po tym, jak routery wymieniły pakiety aktualizacyjne, następuje trzeci etap – tworzenie tabeli routingu na podstawie metryki, która jest obliczana według wzoru przedstawionego na rysunku. Oblicza ona koszt i w zależności od tego kosztu podejmuje decyzję.
Załóżmy, że R1 wysłał Hello routerowi R2, a ten odpowiedział Hello routerowi R1. Jeśli wszystkie parametry się zgadzają, routery tworzą tabelę sąsiedztwa. Do tej tabeli R2 wpisuje dane o routerze R1, a R1 tworzy wpis o R2. Następnie router R1 wysyła aktualizację do podłączonej sieci 10.1.1.0/24. W tabeli routingu wygląda to jak informacje o adresie IP sieci, interfejsie routera, który zapewnia z nią łączność, i koszcie trasy przez ten interfejs. Jeśli pamiętacie, koszt EIGRP wynosi 90, a następnie podane jest wartość dystansu Distance value, o którym porozmawiamy później.
Cała formuła metryki wygląda znacznie bardziej skomplikowanie, ponieważ obejmuje wartości współczynników K oraz różne przekształcenia. Na stronie Cisco podany jest pełny wygląd formuły, jednak jeśli podstawicie wartości współczynników domyślnych, to przekształca się ona w prostszą postać – metryka będzie równa (bandwidth + Delay) * 256.
Będziemy korzystać z takiej uproszczonej wersji formuły do obliczenia metryki, gdzie przepustowość w kilobitach równa się 107 podzielone przez najmniejszą przepustowość wszystkich interfejsów prowadzących do sieci docelowej least-bandwidth, a opóźnienie cumulative-delay to całkowite opóźnienie w dziesiątkach mikrosekund na wszystkich interfejsach prowadzących do sieci docelowej.
Podczas badania EIGRP musimy zapamiętać cztery definicje: Feasible Distance (odległość wykonalna), Reported Distance (odległość zgłoszona), Successor (sąsiedni router z najniższym kosztem drogi do sieci docelowej) i Feasible Successor (rezerwowy sąsiedni router). Aby zrozumieć, co one oznaczają, rozważmy następującą topologię sieci.
Zacznijmy od utworzenia tabeli routingu R1 w celu wybrania najlepszego szlaku do sieci 10.1.1.0/24. Przy każdym z urządzeń pokazana jest przepustowość w kbit/s i opóźnienie w ms. Używamy interfejsów GigabitEthernet z przepustowością 100 Mbit/s, czyli 1000000 kbit/s, interfejsów FastEthernet z prędkością 100000 kbit/s, Ethernet z prędkością 10000 kbit/s oraz interfejsu szeregowego z prędkością 1544 kbit/s. Te wartości można znaleźć, przeglądając w ustawieniach routera właściwości odpowiednich interfejsów fizycznych.
Przepustowość interfejsów szeregowych domyślnie wynosi 1544 kbit/s, a nawet jeśli masz łączność 64 kbit/s, przepustowość nadal będzie wynosić 1544 kbit/s. Dlatego jako administrator sieci musisz upewnić się, że używasz właściwej wartości bandwidth. Dla konkretnego interfejsu można ją ustawić za pomocą polecenia bandwidth, a za pomocą polecenia delay możesz zmienić domyślną wartość opóźnienia. Nie musisz się martwić o domyślne wartości bandwidth dla interfejsów GigabitEthernet lub Ethernet, ale bądź ostrożny przy wyborze prędkości linii, jeśli korzystasz z interfejsu szeregowego.
Zauważ, że na tym schemacie opóźnienie oznaczone jest jako w milisekundach ms, ale w rzeczywistości to mikrosekundy, po prostu nie mam litery μ, aby poprawnie oznaczyć mikrosekundy μs.
Zwróć uwagę na następującą okoliczność. Jeśli wprowadzisz polecenie show interface g0/0, system wyświetli opóźnienie w dziesiątkach mikrosekund, a nie tylko w mikrosekundach.
Szczegółowo omówimy tę kwestię w następnym filmie poświęconym konfigurowaniu EIGRP, na razie zapamiętaj, że wstawiając wartości opóźnienia do wzoru 100 μs, zamienia się to w 10, ponieważ wzór używa dziesiątek mikrosekund, a nie jedności.
Na schemacie zaznaczę czerwonymi kropkami interfejsy, do których odnoszą się pokazane przepustowości i opóźnienia.
Przede wszystkim musimy określić możliwą odległość Feasible Distance. To metryka FD, która jest obliczana na podstawie wzoru. Dla odcinka od R5 do zewnętrznej sieci musimy podzielić 107 przez 106, w wyniku czego uzyskamy 10. Następnie do tej wartości bandwidth musimy dodać opóźnienie wynoszące 1, ponieważ mamy 10 mikrosekund, to znaczy jeden dziesiątek. Uzyskana wartość 11 należy pomnożyć przez 256, co daje metrykę równą 2816. Taka jest wartość FD dla danego odcinka sieci.
Ta wartość zostanie przekazana przez router R5 do routera R2, a dla R2 stanie się ogłoszoną odległością Reported Distance, czyli wartością, którą przekazał mu sąsiad. W ten sposób ogłoszona odległość RD dla wszystkich pozostałych urządzeń będzie równa możliwej odległości FD urządzenia, które ją ogłosiło.
Router R2 oblicza FD na podstawie swoich danych, dzieląc 107 przez 105 i uzyskując 100. Następnie dodaje do tej wartości sumę opóźnień na trasie do zewnętrznej sieci: opóźnienie R5 wynoszące jeden dziesiątek mikrosekund oraz własne opóźnienie równające się dziesięciu dziesiątkom. Suma opóźnień wyniesie 11 dziesiątków mikrosekund. Dodajemy je do uzyskanej setki i otrzymujemy 111, mnożymy tę wartość przez 256 i uzyskujemy wartość FD=28416. Podobnie postępuje router R3, uzyskując po przeprowadzonych obliczeniach wartość FD=281856. Router R4 oblicza wartość FD=3072 i przekazuje ją R1 jako RD.
Zwróć uwagę, że router R1 podczas obliczania FD wykorzystuje w formule nie swoją przepustowość 1000000 kbit/s, ale mniejszą przepustowość routera R2, która wynosi 100000 kbit/s, ponieważ w formule zawsze stosuje się minimalną przepustowość interfejsu prowadzącego do docelowej sieci. W tym przypadku na drodze do sieci 10.1.1.0/24 znajdują się routery R2 i R5, ale ponieważ przepustowość piątego routera jest większa, w formule wykorzystuje się najniższą wartość przepustowości routera R2. Całkowite opóźnienie na drodze R1-R2-R5 wynosi 1+10+1 (dziesiątek) = 12, przy czym przepustowość wynikowa wynosi 100, a suma tych liczb, pomnożona przez 256, daje wartość FD=30976.
Tak więc wszystkie urządzenia obliczyły FD swoich interfejsów, a router R1 ma 3 trasy prowadzące do sieci docelowej. Są to trasy R1-R2, R1-R3 i R1-R4. Router wybiera minimalną wartość możliwej odległości FD, która wynosi 30976 – to jest trasa do routera R2. Ten router staje się Successorem, czyli „następcą”. W tabeli routingu wskazany jest również Feasible Successor (rezerwowy następca) – oznacza to, że w przypadku przerwania łączności między R1 a Successorem, ruch będzie kierowany przez rezerwowy router Feasible Successor.
Feasible Successors są przypisywani zgodnie z prostą zasadą: ogłoszona odległość RD tego routera musi być mniejsza niż FD routera na odcinku do Successora. W naszym przypadku R1-R2 ma FD=30976, a RD na odcinku R1-R3 wynosi 281856, natomiast RD na odcinku R1-R4 wynosi 3072. Ponieważ 3072 < 30976, jako Feasible Successors wybierany jest router R4.
Oznacza to, że w przypadku przerwania łączności na odcinku sieci R1-R2 ruch do sieci 10.1.1.0/24 będzie kierowany przez trasę R1-R4-R5. Przełączanie trasy przy użyciu RIP zajmuje kilka dziesiątek sekund, przy użyciu OSPF – kilka sekund, a w EIGRP następuje natychmiastowo. To jest kolejna zaleta EIGRP w porównaniu do innych protokołów routingu.
Co się stanie, jeśli jednocześnie przerwie się połączenie z Successor i Feasible Successor? W takim przypadku EIGRP zaangażuje algorytm DUAL, który może obliczyć zapasową trasę przez prawdopodobnego następcę. Może to zająć kilka sekund, w tym czasie EIGRP znajdzie innego sąsiada, którego można wykorzystać do przesyłania ruchu, i umieści jego dane w tabeli routingu. Po tym protokół będzie kontynuował normalne działanie w celu zapewnienia routingu.

Dziękujemy, że z nami jesteś. Czy podobają Ci się nasze artykuły? Chcesz widzieć więcej interesujących materiałów? Wspieraj nas składając zamówienie lub polecając znajomym, 30% zniżki dla użytkowników Habr na unikalny odpowiednik serwerów entry-level, który został stworzony przez nas dla Ciebie: (dostępne opcje z RAID1 i RAID10, do 24 rdzeni i do 40GB DDR4).
Dell R730xd dwa razy tańszy? Tylko u nas w Holandii! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — od 99 dolarów! Czytaj o tym
Źródło: habr.com
