Wstęp
Istnieją dwie główne klasy protokołów IGP: protokoły działające na podstawie
wektora odległości i protokoły routingu według stanu łącza. Zadaniem obu tych typów
protokołów routingu jest znajdowanie tras prowadzących przez systemy autonomiczne.
Protokoły działające na podstawie wektora odległości i protokoły routingu według
stanu łącza do osiągnięcia tych samych celów używają różnych metod.
Algorytmy routingu według stanu łącza, nazywane również algorytmami SPF (
ang. Shortest Path First), tworzą złożoną bazę danych zawierającą informacje o
topologii. Algorytm routingu według stanu łącza utrzymuje pełną wiedzę na temat
odległych routerów i sposobu ich połączenia. W przeciwieństwie do niego algorytmy
działające na podstawie wektora odległości gromadzą ogólne informacje na temat
odległych sieci i nie dają wiedzy na temat odległych routerów.
Zrozumienie działania protokołów routingu według stanu łącza jest niezbędne
przy ich konfigurowaniu, sprawdzaniu działania i rozwiązywaniu problemów.
Pierwsze protokoły routingu, takie jak RIP v1 (RIP w wersji 1), działały na
podstawie wektora odległości. Obecnie używanych jest wiele protokołów działających
na podstawie wektora odległości, takich jak RIP v2 (RIP w wersji 2) oraz IGRP,
a także hybrydowy protokół routingu EIGRP. Wraz ze wzrostem rozmiarów i stopnia
skomplikowania sieci coraz wyraźniejsze stawały się ograniczenia protokołów
działających na podstawie wektora odległości. Routery wykorzystujące protokoły
działające na podstawie wektora odległości poznają topologię sieci na podstawie
aktualizacji tablic routingu otrzymanych od sąsiednich routerów. Okresowe aktualizacje
informacji o routingu wymagają szerokiego pasma, a zbieżność sieci jest osiągana
powoli, czego rezultatem są nieoptymalne decyzje dotyczące routingu.
Protokoły routingu według stanu łącza różnią się od protokołów działających na
podstawie wektora odległości. Protokoły routingu według stanu łącza przekazują
rozpływowo informacje o trasach, dzięki czemu każdy router ma pełen obraz topologii
sieci. Stosowanie wyzwalanych aktualizacji umożliwia oszczędniejsze wykorzystanie
pasma i zapewnia szybszą zbieżność. Natychmiast po wystąpieniu zmian w stanie
łącza do wszystkich routerów są wysyłane odpowiednie informacje.
Jednym z najważniejszych protokołów działających według stanu łącza jest protokół
OSPF. Protokół OSPF jest oparty na otwartych standardach, co oznacza, że prace nad
jego opracowaniem i ulepszaniem mogą być prowadzone przez wielu dostawców. Jest
to skomplikowany protokół, którego implementacja w dużej sieci stanowi spore wyzwanie.
Konfigurowanie protokołu OSPF na routerze firmy Cisco nie różni się od konfigurowania
innych protokołów routingu. Podobnie jak w przypadku pozostałych metod routingu
protokół OSPF musi zostać włączony na routerze oraz należy podać sieci, które
będą przez niego rozgłaszane. Protokół OSPF cechuje się szeregiem unikatowych
funkcji i procedur konfiguracyjnych. Dzięki tym funkcjom protokół OSPF jest
rozwiązaniem o dużym potencjale, jednak jego konfigurowanie jest trudne.
W wielkich sieciach można tak skonfigurować protokół OSPF, aby obejmował wiele
obszarów oraz kilka różnych typów obszarów. Umiejętność projektowania i implementacji
protokołu OSPF w wielkich sieciach można nabyć tylko po zapoznaniu się z konfigurowaniem
tego protokołu w pojedynczym obszarze. Konfigurowanie protokołu OSPF w pojedynczym
obszarze.
Funkcje protokołu routingu według stanu łącza
Protokoły routingu według stanu łącza zbierają informacje o trasach od pozostałych
routerów znajdujących się w sieci lub w zdefiniowanym obszarze sieci. Po zgromadzeniu
tych informacji każdy router oblicza najlepszą trasę do każdego miejsca docelowego
w sieci. Ponieważ każdy z routerów ma własny obraz sieci, prawdopodobieństwo
propagacji nieprawidłowych informacji dostarczonych przez któryś z sąsiednich
routerów jest mniejsze.
Protokół routingu według stanu łącza spełnia między innymi następujące funkcje:
- szybko reagować na zmiany w sieci,
- wysyłać aktualizacje wyzwalane jedynie po wystąpieniu zmian w sieci,
- cyklicznie wysyłać aktualizacje (tzw. odświeżanie stanu łącza),
- używać mechanizmu hello do określania dostępności sąsiadów
Każdy z routerów rozgłasza pakiety hello, aby móc śledzić stan sąsiednich
routerów. Każdy z routerów używa ogłoszeń LSA (ang. link-state adverisement) do
śledzenia stanu wszystkich routerów znajdujących się w obsługiwanym obszarze sieci.
Pakiety hello zawierają informacje o sieciach dołączonych do routera. Ogłoszenia
LSA zawierają aktualizacje stanów łączy będących interfejsami innych routerów
znajdujących się w sieci.
Routery używające protokołów działających według stanu łącza mają następujące cechy:
- Używają informacji zawartych w pakietach hello i ogłoszeniach LSA
otrzymywanych od innych routerów do tworzenia bazy danych informacji o sieci.
- Korzystają z algorytmu SPF do obliczania najkrótszej trasy do każdej sieci.
- Przechowują informacje o trasach w tablicy routingu.
Sposoby utrzymywania informacji o routingu
Został tu opisany sposób, w jaki protokoły routingu według stanu łącza korzystają
z następujących elementów:
- ogłoszeń LSA,
- bazy danych o topologii,
- algorytmu SPF,
- drzewa SPF,
- tablicy routingu tras i portów służącej do określania najlepszej trasy dla pakietów.
Protokoły routingu z wykorzystaniem stanu łącza zostały zaprojektowane w celu
eliminacji ograniczeń protokołów routingu opartych na wektorze odległości.
Protokoły działające na podstawie wektora odległości wymieniają na przykład
informacje aktualizujące jedynie z bezpośrednimi sąsiadami, podczas gdy protokoły
routingu według stanu łącza wymieniają informacje o routingu na znacznie większym obszarze.
Po wystąpieniu awarii w sieci, na przykład wówczas, gdy sąsiad stanie się
niedostępny, protokoły routingu według stanu łącza przekazują rozpływowo w całym
obszarze pakiety LSA wykorzystując do tego specjalny adres grupowy. Rozgłaszanie
rozpływowe (ang. flooding) jest procesem polegającym na wysyłaniu informacji na
wszystkich portach z wyjątkiem tego, na którym dana informacja została odebrana.
Każdy router działający według stanu łącza pobiera kopię informacji LSA i aktualizuje
stan łącza (bazę danych o topologii). Następnie router działający według stanu
łącza przekazuje pakiet LSA do wszystkich sąsiednich urządzeń. Nadejście pakietów
LSA powoduje, że każdy router w danym obszarze przelicza trasy na nowo. Z tego
powodu liczba działających według stanu łącza routerów znajdujących się w określonym
obszarze powinna być ograniczona.
Łącze jest równoważne interfejsowi routera. Stan łącza jest opisem interfejsu
oraz relacji z sąsiednimi routerami. Opis interfejsu może na przykład zawierać
adres IP interfejsu, maskę podsieci, typ sieci, do której jest przyłączony,
routery dołączone do danej sieci itp. Zbiór stanów poszczególnych łączy stanowi
bazę danych stanów łączy, która jest czasem nazywana bazą danych o topologii.
Baza danych stanów łączy służy od obliczania najlepszych tras w sieci. Routery
wykorzystujące stan łącza korzystają z algorytmu Dijkstry (Shortest Path
First) działającego na bazie danych stanów łączy. Algorytm ten tworzy drzewo SPF,
którego korzeniem jest router lokalny. Następnie w drzewie SPF są wyszukiwane
najlepsze ścieżki, które zostają umieszczone w tablicy routingu.
Algorytmy routingu według stanu łącza
Algorytmy routingu według stanu łącza tworzą złożoną bazę danych topologii
sieci, wymieniając pakiety LSA (ang. link-state advertisement) z innymi routerami
w sieci.
Algorytmy routingu według stanu łącza mają następujące cechy:
- Są znane pod ogólną nazwą protokołów SPF.
- Tworzą i korzystają ze złożonej bazy danych topologii sieci.
- Są oparte na algorytmie Dijkstry.
Protokoły routingu według stanu łącza zbierają i utrzymują pełne informacje o
routerach znajdujących się w sieci oraz o ich wzajemnych połączeniach. Jest to
możliwe dzięki wymianie pakietów LSA z pozostałymi routerami w sieci.
Każdy router tworzy bazę danych o topologii na podstawie otrzymanych pakietów
LSA. Następnie przy pomocy algorytmu SPF jest obliczana dostępność miejsc docelowych.
Informacje te są używane do aktualizacji tablicy routingu. Proces ten umożliwia
wykrywanie zmian w topologii sieci spowodowanych awariami sprzętu lub rozbudową sieci.
Wymiana pakietów LSA jest wywoływana (wyzwalana) przez wystąpienie zdarzenia
w sieci, nie jest natomiast cykliczną aktualizacją. Przyspiesza to proces osiągania
zbieżności, ponieważ nie trzeba czekać na upłynięcie limitu czasu na wielu zegarach.
Jeśli sieć przedstawiona na rysunku poniżej używa protokołu routingu według
stanu łącza, nawiązanie łączności między routerami A i D nie stanowi problemu.
Korzystając z danego protokołu i wybranej metryki, mechanizm routingu może wybrać
najlepszą trasę z dwóch prowadzących do tego samego miejsca docelowego. Na tym
rysunku mają one jednakowy koszt, tak więc protokół routingu według stanu łącza
zapisuje obie trasy. Niektóre protokoły routingu według stanu łącza umożliwiają
ocenę optymalności obu tras oraz wybór lepszej z nich. Jeśli biegnąca przez router
C trasa preferowana zostaje zakłócona, na przykład na skutek przeciążenia lub
awarii sprzętu, protokół routingu według stanu łącza może wykryć taką zmianę i
rozpocząć przesyłanie pakietów przez router B.
Podobieństwa i różnice między protokołami routingu działającymi na podstawie wektora odległości a protokołami routingu według stanu łącza.
Wszystkie protokoły działające na podstawie wektora odległości zapamiętują trasy
i wysyłają informacje o nich do bezpośrednio podłączonych sąsiadów. W przypadku
routingu według stanu łącza routery wysyłają stan swoich łączy do wszystkich
pozostałych routerów znajdujących się w obszarze, dzięki czemu każdy router może
zbudować pełną bazę danych stanów łączy. Ogłoszenia te są nazywane ogłoszeniami
stanu łącza lub pakietami LSA (ang. link-state advertisement). W odróżnieniu od
routerów działających na podstawie wektora odległości, routery działające według
stanu łącza mogą tworzyć specjalne relacje ze swoimi sąsiadami i innymi routerami
działającymi według stanu łącza. Dzięki temu informacje LSA są wymieniane poprawnie i
efektywnie.
Dzięki początkowemu rozpływowemu routingowi pakietów LSA routery dysponują
informacjami niezbędnymi do budowy bazy danych stanów łączy. Aktualizacje informacji
o routingu zachodzą jedynie po wystąpieniu zmian w sieci. Jeśli zmiany nie występują,
aktualizacje informacji o routingu zachodzą po upływie określonego czasu. Po
wystąpieniu zmian w sieci natychmiast jest wysyłana częściowa aktualizacja.
Częściowa aktualizacja zawiera wyłącznie informacje o tych łączach, na których
wystąpiły zmiany. Administratorzy sieci, dla których istotnym problemem jest
stopień wykorzystania łączy WAN, potraktują te częściowe i rzadkie aktualizacje
jako interesującą alternatywę w stosunku do protokołów działających na podstawie
wektora odległości, przesyłających całe tablice routingu co 30 sekund. Po wystąpieniu
zmiany routery działające według stanu łącza są jednocześnie powiadamiane o tym
zdarzeniu dzięki częściowej aktualizacji. Routery działające na podstawie wektora
odległości oczekują na pochodzące od sąsiadów informacje o zmianie, implementują
tę informację, po czym przekazują aktualizację do sąsiednich routerów.
Zaletą protokołów routingu według stanu łącza w porównaniu z protokołami
działającymi na podstawie wektora odległości jest szybsza zbieżność i lepsze
wykorzystanie pasma. Protokoły według stanu łącza obsługują notacje CIDR i VLSM.
Dzięki temu nadają się do pracy w złożonych i skalowalnych sieciach. W rzeczywistości
jednak protokoły routingu według stanu łącza są zazwyczaj bardziej wydajne niż
protokoły działające na podstawie wektora odległości bez względu na wielkość sieci.
Protokoły routingu według stanu łącza nie są stosowane we wszystkich sieciach,
ponieważ wymagają większej ilości pamięci i mocy obliczeniowej niż protokoły
działające na podstawie wektora odległości, na skutek czego wolny sprzęt może
nie sprostać ich wymaganiom. Innym powodem, dla którego ich zastosowanie nie jest
bardziej rozpowszechnione, jest fakt, że protokoły routingu według stanu łącza
są dość złożone. Wymagają one pracy dobrze wyszkolonych administratorów, którzy
potrafią je prawidłowo konfigurować i obsługiwać.
Protokół OSPF - przegląd
OSPF jest opartym na otwartych standardach protokołem routingu według stanu
łącza. Został on opisany w szeregu standardów opracowanych przez Grupę Roboczą
ds. Technicznych Internetu IETF (ang. Internet Engineering Task Force). Otwartość
(ang. Open) w nazwie OSPF oznacza, że jest on dostępny dla wszystkich i nie jest
niczyją własnością.
W porównaniu z protokołami RIP v1 i v2 protokół OSPF jest preferowanym
rozwiązaniem, ponieważ jest skalowalnym protokołem IGP. Protokół RIP jest ograniczony
do 15 przeskoków, ma długi czas zbieżności i czasami powoduje wybór wolniejszych
tras, ponieważ przy wyborze trasy nie bierze pod uwagę ważnych czynników, takich
jak przepustowość. Wadą OSPF jest to, że może działać tylko z zestawem protokołów
TCP/IP. W protokole OSPF takie ograniczenia nie występują, dzięki czemu stał się
on odpornym i skalowalnym protokołem przystosowanym do pracy w nowoczesnych
sieciach. W małych sieciach protokół OSPF może być stosowany i konfigurowany do
pracy w pojedynczym obszarze. Można go również używać w wielkich sieciach.
ak pokazano na rysunku poniżej, wielkie sieci OSPF cechują się strukturą hierarchiczną.
Wiele obszarów jest dołączonych do obszaru dystrybucji (obszaru 0), który jest
również nazywany obszarem szkieletowym. Takie podejście umożliwia precyzyjną
kontrolę procesu aktualizacji informacji o routingu. Zdefiniowanie obszarów zmniejsza
narzut wnoszony przez routing, przyspiesza proces zbieżności, ogranicza niestabilność
sieci do pojedynczego obszaru i poprawia wydajność.
Terminologia używana w protokole OSPF
Routery działające według stanu łącza rozpoznają routery sąsiednie i następnie
komunikują się z tak poznanymi sąsiadami. Protokół OSPF posiada własną terminologię.
Protokół OSPF zbiera pochodzące od sąsiednich routerów informacje o stanie łącza
każdego routera OSPF. Router przekazuje rozpływowo te informacje do wszystkich sąsiadów.
Router OSPF ogłasza stany swoich własnych łączy oraz przekazuje dalej odebrane informacje
o stanach innych łączy.
Routery przetwarzają informacje o stanach łączy i budują bazę danych stanów łączy.
Każdy z routerów znajdujących się wewnątrz jednego obszaru będzie dysponował taką
samą bazą danych o stanach łączy. Dlatego też każdy router dysponuje takimi samymi
informacjami o stanie łączy oraz o sąsiadach wszystkich pozostałych routerów.
Następnie każdy router przetwarza za pomocą algorytmu SPF własną kopię bazy
danych. W ten sposób jest obliczana najlepsza trasa do miejsca docelowego.
Algorytm SPF sumuje koszty, których wartość zależy zazwyczaj od przepustowości.
Ścieżka o najniższym koszcie jest umieszczana w tablicy routingu, która znana jest
również jako baza danych przesyłania (ang. forwarding database).
Każdy router przechowuje listę przyległych sąsiadów, która bywa określana jako
baza danych przylegania (ang. adjacency database). Baza danych przylegania jest
listą wszystkich sąsiednich routerów, z którymi dany router ma łączność w obu
kierunkach. Lista ta jest unikatowa dla każdego routera.
Aby zmniejszyć ilość informacji o routingu wymienianych między sąsiadami w
tej samej sieci, routery OSPF wybierają tak zwany router desygnowany DR
(ang. designated router) oraz zapasowy router desygnowany BDR
(ang. backup designated router), które służą jako główne punkty wymiany informacji
o routingu.
Porównanie protokołu OSPF z protokołami działającymi na podstawie wektora odległości
Routery działające według stanu łącza utrzymują wspólny obraz sieci oraz wymieniają
informacje o łączach podczas początkowego wykrywania urządzeń w sieci lub po zajściu
zmian w sieci. W odróżnieniu od protokołów wektora odległości, routery działające
według stanu łącza nie rozsyłają cyklicznie tablic routingu. Dzięki temu routery
działające według stanu łącza mają mniejsze wymagania odnośnie szerokości pasma do
utrzymywania tablic routingu.
Protokół RIP nadaje się do pracy w małych sieciach; najlepsza ścieżka jest
określana na podstawie najmniejszej liczby przeskoków. Protokół OSPF nadaje się
do pracy w wielkich, skalowalnych intersieciach; najlepsza ścieżka jest określana
na podstawie szybkości łącza. Protokół RIP i inne protokoły działające na podstawie
wektora odległości do wyboru najlepszych ścieżek używają prostych algorytmów.
Algorytm SPF jest złożony. Routery, na których zaimplementowano protokoły działające
na podstawie wektora odległości, nie wymagają tyle pamięci i tak silnych procesorów
jak te, na których zaimplementowano protokół OSPF.
Protokół OSPF przy wyborze tras posługuje się kosztem, który jest zależny od
prędkości. Im większa jest prędkość, tym niższy jest koszt OSPF danego łącza.
Jako najlepszą ścieżkę w sieci protokół OSPF wybiera najszybszą pozbawioną
zapętleń ścieżkę drzewa SPF.
Protokół OSPF gwarantuje brak pętli routingu. Protokoły działające na podstawie
wektora odległości mogą powodować powstawanie pętli routingu.
Jeśli łącza nie są stabilne, rozpływowe rozgłaszanie informacji o stanie łączy
może prowadzić do niezsynchronizowanych ogłoszeń o stanie łącza i niespójnych
decyzji podejmowanych przez routery.
Protokół OSPF został zaprojektowany z myślą o realizacji następujących kryteriów:
- szybkość procesu zbieżności,
- obsługa masek podsieci o zmiennej długości (technika VLSM),
- wielkość sieci,
- wybór trasy,
- łączenie członków w grupy.
W przypadku wielkich sieci proces zbieżności protokołu RIP może trwać nawet
kilka minut, ponieważ tablice routingu są kopiowane i przesyłane do bezpośrednio
podłączonych routerów. Po wstępnym procesie doprowadzenia do zbieżności utrzymywanie
stanu zbieżnego w protokole OSPF jest związane z mniejszym opóźnieniem, ponieważ
do routerów znajdujących się w danym obszarze są przesyłane wyłącznie informacje
o zmianach w sieci.
Protokół OSPF obsługuje technikę VLSM i dlatego jest nazywany protokołem bezklasowym.
Protokół RIP v1 nie obsługuje techniki VLSM, natomiast protokół RIP v2 ją obsługuje.
Protokół RIP ze względu na zawarty w nim próg liczby przeskoków traktuje sieci
odległe o więcej niż 15 przeskoków jako niedostępne. Ogranicza to zastosowanie
protokołu RIP do małych topologii. Protokół OSPF nie ma ograniczenia na wielkość
sieci i może być stosowany zarówno w średnich, jak i w wielkich sieciach.
Protokół RIP wybiera ścieżkę do sieci, dodając wartość jeden do liczby przeskoków
przesłanej przez sąsiada. Porównuje liczby przeskoków do miejsca docelowego i
wybiera ścieżkę o najmniejszej odległości (liczbie przeskoków). Jest to prosty
algorytm i nie wymaga od routera ani mocnego procesora, ani dużej ilości pamięci. Przy
wyborze najlepszej ścieżki protokół RIP nie bierze pod uwagę dostępnej przepustowości.
Protokół OSPF dokonuje wyboru ścieżki na podstawie kosztu będącego metryką
opartą na przepustowości. Aby obliczyć najkrótszą ścieżkę, wszystkie routery
OSPF muszą dysponować pełnymi informacjami o sieciach każdego routera. Jest to
złożony algorytm. Z tego powodu protokół OSPF wymaga od routerów silniejszego
procesora i większej ilości pamięci niż RIP.
Protokół RIP używa płaskiej topologii. Routery w regionie RIP wymieniają
informacje ze wszystkimi innymi routerami. Protokół OSPF wykorzystuje koncepcję
obszarów. Sieć może być podzielona na grupy routerów. W ten sposób protokół OSPF
może ograniczyć ruch do tych obszarów. Zmiany zachodzące w jednym obszarze nie
wpływają na wydajność pozostałych obszarów. To hierarchiczne podejście umożliwia
efektywną skalowalność sieci.
Algorytm SPF (Shortest Path First)
W przypadku tego algorytmu najlepszą trasą jest trasa o najniższym koszcie.
Algorytm ten został opracowany przez E. W. Dijkstrę, informatyka holenderskiego,
i został opublikowany w roku 1959. Algorytm przedstawia sieć jako zbiór węzłów
połączonych przez łącza punkt-punkt. Każdemu łączu jest przypisany koszt. Każdy
węzeł ma nazwę. Każdy węzeł dysponuje pełną bazą danych wszystkich łączy, tak
więc jest mu znana pełna informacja o topologii fizycznej. Wszystkie bazy danych
stanów łączy znajdujące się w danym obszarze są identyczne.
Następnie algorytm SPF wyznacza topologię wolną od zapętleń, używając danego
węzła jako punktu początkowego i odwołując się do posiadanych informacji o przyległych
węzłach. Na rysunku poniżej przedstawiono węzeł B, na którym obliczono najlepszą
ścieżkę do węzła D. Najlepsza ścieżka do węzła D prowadzi przez węzeł E i ma koszt
równy 4. Informacja ta jest zapisywana w pozycji trasy w węźle B, przez który
będzie przekazywany ruch do węzła C. W przypadku tej sieci OSPF pakiety z węzła
B do węzła D będą przekazywane z B do C, E i następnie do D.
W tym przykładzie węzeł B określił, że najkrótsza ścieżka do F ma koszt 5 i
prowadzi przez węzeł C. Wszystkie pozostałe możliwe topologie albo zawierają pętle,
albo są ścieżkami o wyższym koszcie.
Typy sieci OSPF
Aby routery OSPF mogły dzielić się informacjami o routingu, musi istnieć relacja
sąsiedztwa. Router będzie próbował stać się routerem przyległym (sąsiadem) do
przynajmniej jednego routera w każdej sieci IP, do której jest dołączony. Routery
OSPF określają, które routery mają stać się przyległymi, na podstawie typu sieci,
do której są dołączone. Niektóre routery mogą próbować stać się przyległymi do
wszystkich routerów sąsiednich. Inne mogą próbować stać się przyległymi tylko do
jednego lub dwóch routerów sąsiednich. Po ustaleniu relacji przylegania między
sąsiednimi routerami następuje wymiana informacji o stanie łącza.
Interfejsy OSPF automatycznie rozróżniają trzy typy sieci:
- rozgłoszeniowa wielodostępowa (na przykład Ethernet),
- sieci punkt-punkt,
- nierozgłoszeniowa wielodostępowa NBMA (ang. Nonbroadcast multi-access) - na przykład Frame Relay
Czwarty typ, punkt-wiele punktów, może zostać skonfigurowany ręcznie na interfejsie przez administratora.
W przypadku sieci wielodostępowej nie wiadomo z góry, ile routerów będzie do
niej dołączonych. W sieciach punkt-punkt mogą być ze sobą połączone tylko dwa routery.
Do segmentu sieci rozgłoszeniowej wielodostępowej może być dołączonych wiele routerów.
Gdyby każdy router musiał ustanowić pełną relację przylegania ze wszystkimi pozostałymi
routerami i wymieniać informacje o stanie łącza z każdym sąsiadem, spowodowałoby
to powstanie zbyt dużego narzutu. W przypadku 5 routerów byłoby wymagane 10
relacji przylegania i wysyłanie 10 informacji o stanach łącza. W przypadku 10
routerów niezbędnych jest 45 relacji przylegania. W ogólnym przypadku n routerów
wymaga utworzenia n*(n-1)/2 relacji przylegania. Rozwiązaniem tego problemu jest
wybór routera desygnowanego DR. Taki router wchodzi w relację przylegania ze wszystkimi
innymi routerami znajdującymi się w danym segmencie rozgłoszeniowym. Wszystkie
pozostałe routery należące do tego segmentu wysyłają własne informacje o stanie
łączy do routera DR. Router DR działa jako przedstawiciel segmentu. Router DR
wysyła informacje o stanie łącza do wszystkich pozostałych routerów OSPF w
segmencie za pomocą adresu grupowego 224.0.0.5.
Jednak oprócz korzyści, jakie przynosi wybór routera DR, istnieje również jedna
wada. Router DR stanowi pojedynczy punkt awarii. Wybierany jest zatem drugi router,
który pełni rolę zapasowego routera desygnowanego BDR przejmującego obowiązki
routera DR w przypadku jego awarii. Aby zagwarantować, że oba routery - DR i BDR -
widzą wszystkie stany łączy wysyłane przez wszystkie routery w segmencie, używany
jest adres grupowy przeznaczony dla wszystkich routerów desygnowanych, 224.0.0.6.
W przypadku sieci punkt-punkt istnieją tylko dwa routery i nie jest wybierany
ani router DR, ani BDR. Oba routery są w pełni przyległe do siebie.
Protokół OSPF Hello
Po uruchomieniu przez router protokołu routingu OSPF na interfejsie jest wysyłany
pakiet hello. Następnie pakiety hello są wysyłane w regularnych odstępach czasu.
Reguły rządzące wymianą pakietów OSPF hello są nazywane protokołem Hello.
W warstwie 3 modelu OSI pakiety hello są wysyłane na adres grupowy 224.0.0.5.
Adres ten oznacza "wszystkie routery OSPF". Routery OSPF używają pakietów hello
do inicjowania nowych relacji przylegania oraz do sprawdzania, czy sąsiednie routery
nadal pracują. Pakiety hello są wysyłane domyślnie co 10 sekund w sieciach
rozgłoszeniowych wielodostępowych i w sieciach punkt-punkt. Na interfejsach do
sieci NBMA, takich jak Frame Relay, domyślnym odstępem jest 30 sekund.
W sieciach wielodostępowych protokół Hello służy do wyboru wyznaczonego routera
(DR) i zapasowego routera desygnowanego (BDR).
Chociaż pakiet hello jest mały, zawiera on nagłówek protokołu OSPF. W przypadku
pakietu hello pole typu pakietu ma wartość 1.
Pakiet hello przenosi informacje, które muszą zostać uzgodnione przez wszystkich
sąsiadów przed utworzeniem relacji przylegania oraz rozpoczęciem wymiany informacji
o stanie łącza.
Czynności wykonywane przez protokół OSPF
Po uruchomieniu przez router protokołu routingu OSPF na interfejsie jest wysyłany
pakiet hello. Następnie pakiety hello są wysyłane w regularnych odstępach czasu.
Zestaw reguł rządzących wymianą pakietów OSPF hello jest nazywany protokołem Hello.
W sieciach wielodostępowych protokół Hello służy do wyboru wyznaczonego routera
DR i zapasowego routera desygnowanego BDR. Pakiet hello przenosi informacje, które
muszą zostać uzgodnione przez wszystkich sąsiadów przed utworzeniem relacji
przylegania oraz rozpoczęciem wymiany informacji o stanie łącza. W sieciach
wielodostępowych routery DR i BDR utrzymują relację przylegania ze wszystkimi
pozostałymi routerami OSPF znajdującymi się w sieci.
Routery przylegające przechodzą przez szereg stanów. Routery przylegające muszą
znajdować się w stanie pełnym (ang. full), zanim zostaną utworzone tablice routingu
i rozpocznie się routing pakietów. Każdy router wysyła informacje LSA w pakietach
aktualizacji stanu łącza LSU (ang. link-state update). Informacje LSA zawierają
opis wszystkich łączy routera. Każdy router po odebraniu informacji LSA od swojego
sąsiada zapisuje je w bazie danych stanów łączy. Proces ten jest powtarzany dla
wszystkich routerów znajdujących się w sieci OSPF.
Po wypełnieniu baz danych każdy router za pomocą algorytmu SPF oblicza wolną
od zapętleń topologię prowadzącą do każdej znanej sieci. Do tworzenia tej topologii
jest używana najkrótsza ścieżka o najmniejszym koszcie, dzięki czemu jest wybierana
najlepsza trasa.
Następnie rozpoczyna się proces utrzymywania informacji o routingu. Po wystąpieniu
zmiany stanu łącza routery używają rozgłaszania rozpływowego do powiadamiania innych
routerów w sieci o tej zmianie. Zastosowanie tzw. czasu nieaktywności (ang. dead
interval) w protokole Hello jest prostym mechanizmem wykrywania wyłączenia
przyległego sąsiada.
Konfigurowanie procesu routingu protokołu OSPF
Do celów routingu protokół OSPF wykorzystuje koncepcję obszarów. Każdy router
zawiera pełną bazę danych stanów łączy dla danego obszaru. Obszarowi w sieci OSPF
można przypisać dowolny numer z zakresu od 0 do 65 535. Jednemu z tych obszarów
przypisuje się numer 0 - jest on znany jako "obszar zerowy". W sieci OSPF o wielu
obszarach wszystkie obszary muszą łączyć się z obszarem 0. Obszar 0 nosi również
nazwę obszaru szkieletowego.
Konfigurowanie protokołu OSPF wymaga włączenia procesu routingu OSPF na routerze
oraz podaniu adresów sieci i informacji o obszarach. Adresy sieciowe są konfigurowane
przy użyciu dzikich masek, a nie masek podsieci. Dzika maska reprezentuje łącza
lub adresy hostów, które mogą znajdować się w danym segmencie. Identyfikatory
obszarów muszą być zapisywane w postaci pełnych liczb lub też w notacji kropkowo-dziesiętnej.
Aby włączyć routing OSPF, należy użyć polecenia konfiguracji globalnej o składni:
Router(config)#router ospf id-procesu
Identyfikator procesu jest liczbą używaną do identyfikacji procesu routingu OSPF
na routerze. Na tym samym routerze można jednocześnie uruchomić wiele procesów OSPF.
Liczba ta może przyjmować wartości z przedziału od 1 do 65 535. Większość
administratorów sieci używa tego samego identyfikatora procesu w całym systemie
autonomicznym, ale nie jest to obowiązkowe. Rzadko zdarza się, że jest konieczne
uruchomienie na routerze więcej niż jednego procesu OSPF. W protokole OSPF sieci
IP są ogłaszane w następujący sposób:
Router(config-router)#network adres dzikiej maski area id-obszaru
Każda sieć musi być powiązana z obszarem, do którego należy. Adres sieci może być
adresem całej sieci, podsieci lub adresem interfejsu. Dzika maska reprezentuje zbiór
adresów hostów, które są obsługiwane w danym segmencie. Różni się ona od maski podsieci,
która jest używana podczas konfigurowania adresów IP na interfejsach.
Konfigurowanie adresu pseudosieci (loopback) OSPF i priorytetu routera
Po uruchomieniu procesu OSPF w systemie Cisco IOS najwyższy lokalny aktywny
adres IP jest używany jako własny identyfikator routera OSPF. W przypadku braku
aktywnego interfejsu proces OSPF nie zostanie uruchomiony. Jeśli interfejs aktywny
zostanie wyłączony, proces OSPF utraci identyfikator routera i w związku z tym
przestanie działać aż do ponownego włączenia interfejsu.
Aby zapewnić stabilność działania protokołu OSPF, przez cały czas powinien
istnieć aktywny interfejs procesu OSPF. W tym celu można skonfigurować interfejs
pętli zwrotnej, będący interfejsem logicznym. Po skonfigurowaniu interfejsu loopback
protokół OSPF używa jego adresu jako identyfikatora routera, niezależnie od jego
wartości. W przypadku routera z więcej niż jednym interfejsem loopback jako
identyfikatora routera protokół OSPF używa najwyższego adresu IP interfejsu loopback.
Aby utworzyć i przypisać adres IP do interfejsu loopback, należy użyć następujących poleceń:
Router(config)#interface loopback liczba
Router(config-if)#ip address adres-ip maska-podsieci
Zaleca się, aby interfejsy pętli zwrotnej były używane na wszystkich routerach,
na których uruchomiono protokół OSPF. Interfejs loopback powinien zostać skonfigurowany
przy użyciu adresu o 32-bitowej masce podsieci równej 255.255.255.255. Ta 32-bitowa
maska podsieci jest nazywana maską hosta, ponieważ określa ona sieć składającą się
z jednego hosta. Gdy protokół OSPF musi ogłosić sieć pętli zwrotnej, zawsze ogłasza
ją jako trasę do hosta o 32-bitowej masce.
W rozgłoszeniowych sieciach wielodostępowych mogą znajdować się więcej niż dwa
routery. Protokół OSPF wybiera router desygnowany DR, który pełni rolę centralnego
punktu wszystkich aktualizacji stanu łączy oraz ogłoszeń stanu łączy. Ponieważ
rola pełniona przez DR ma kluczowe znaczenie, wybierany jest również zapasowy
router desygnowany BDR, który w przypadku awarii routera DR przejmuje jego zadania.
Jeśli sieć dla danego interfejsu jest typu rozgłoszeniowego, domyślnym priorytetem
protokołu OSPF jest 1. Jeśli priorytety OSPF są takie same, protokół OSPF wybiera
router DR na podstawie identyfikatora routera. Wybierany jest router o najwyższej
wartości identyfikatora.
Wyniki wyborów można wstępnie określić, gdy pakiety hello zawierają priorytet
interfejsu routera. Routerem DR staje się ten router, którego interfejs zgłasza
najwyższy priorytet.
Priorytety mogą przyjmować wartości z przedziału od 0 do 255. Wartość 0 wyklucza
router z wyborów. Router o najwyższym priorytecie OSPF zostanie wybrany routerem DR.
Router o następnym z kolei priorytecie zostanie wybrany routerem BDR. Po zakończeniu
wyborów routery DR i BDR zachowują swoje funkcje, nawet jeśli do sieci dodano routery
o wyższych wartościach priorytetu OSPF.
Wartość priorytetu OSPF można zmienić, wydając polecenie konfiguracji
interfejsu ip ospf priority, który bierze udział w routingu OSPF.
Polecenie show ip ospf interface wyświetla wartość priorytetu interfejsu
oraz inne ważne informacje.
Koszt może zostać zmieniony w celu wpłynięcia na wynik obliczeń kosztów
przeprowadzanych przez protokół OSPF. Często spotykaną sytuacją wymagającą zmiany
kosztu jest środowisko sieci z routingiem, gdzie używany jest sprzęt od różnych
dostawców. Dzięki zmianie kosztu jego wartość dla jednego dostawcy będzie odpowiadać
wartości dla drugiego dostawcy. Podobna sytuacja zachodzi w przypadku stosowania sieci
Gigabit Ethernet. Domyślnym kosztem przypisywanym łączu 100 Mb/s jest najniższa
wartość kosztu równa 1. W przypadku sieci 100 Mb/s i Gigabit Ethernet te domyślne
wartości kosztu, o ile nie zostaną zmienione, mogą spowodować wybór mniej efektywnej
ścieżki. Liczba oznaczająca koszt może przyjmować wartości z przedziału od 1 do 65 535
Do ustawiania wartości kosztu łącza należy używać następującego polecenia konfiguracji interfejsu:
Domyślnie router przyjmuje, że informacje o routingu nadchodzą od tego routera,
który powinien je przysłać. Router zakłada również, że przesyłana informacja nie
została zmieniona w trakcie przesyłania.
Aby to zagwarantować, można tak skonfigurować routery znajdujące się w danym
obszarze, aby przeprowadzały wzajemne uwierzytelnianie.
Każdy interfejs OSPF może udostępniać klucz uwierzytelniający, który jest
przeznaczony dla routerów wysyłających informacje OSPF do innych routerów
znajdujących się w danym segmencie. Klucz uwierzytelniający, zwany również hasłem,
jest tajną wartością wspólną dla routerów. Klucz ten jest używany do generowania
danych uwierzytelniających przesyłanych w nagłówku pakietu OSPF. Hasło może mieć
długość do ośmiu znaków. Do konfigurowania uwierzytelniania protokołu OSPF służy
polecenie o następującej składni:
W przypadku prostego uwierzytelniania hasło jest wysyłane tekstem jawnym.
Oznacza to, że można je łatwo zdekodować, jeśli odpowiedni program przechwyci
pakiet OSPF.
Zaleca się, aby wiadomości uwierzytelniające były przesyłane w postaci zaszyfrowanej.
W celu wysłania wiadomości uwierzytelniających w postaci zaszyfrowanej i zapewnienia
większego bezpieczeństwa jest używane słowo kluczowe message-digest. Słowo kluczowe
MD5 określa typ algorytmu mieszającego używanego do tworzenia sygnatury wiadomości,
zaś pole typu szyfrowania określa stosowaną metodę szyfrowania, gdzie 0 oznacza
brak szyfrowania, a 7 - zastrzeżoną metodę szyfrowania.
Podany id-klucza jest identyfikatorem i przybiera wartość z przedziału od 1 do 255.
Klucz jest hasłem alfanumerycznym o długości do szesnastu znaków. Routery sąsiednie
muszą używać takiego samego identyfikatora klucza o tej samej wartości.
Algorytm MD5 tworzy sygnaturę wiadomości. Jest to zaszyfrowana wartość zależna od
hasła i zawartości pakietu. Router odbierający używa treści pakietu i wspólnego
hasła do ponownego obliczenia sygnatury. Jeśli sygnatury są identyczne, router
zakłada, że źródło i zawartość pakietu nie zostały zmienione. Typ uwierzytelniania
określa, czy i jaki rodzaj uwierzytelniania jest stosowany. W przypadku uwierzytelniania
opartego na sygnaturze wiadomości pole danych uwierzytelniających zawiera identyfikator
klucza i długość sygnatury dołączonej do pakietu. Sygnatura wiadomości pełni funkcję
znaku wodnego, którego nie można podrobić.
Konfigurowanie zegarów protokołu OSPF
Aby móc wymieniać informacje, routery OSPF muszą używać tych samych wartości
czasu między pakietami hello oraz czasu nieaktywności. Domyślnie wartość czasu
nieaktywności jest cztery razy większa niż czas między pakietami hello. Oznacza to,
że router może podjąć cztery próby wysłania pakietu hello, zanim zostanie uznany za
wyłączony (martwy).
W rozgłoszeniowych sieciach OSPF domyślna wartość czasu między pakietami hello
wynosi 10 sekund, a domyślna wartość czasu nieaktywności - 40 sekund. W sieciach
innych niż rozgłoszeniowe domyślna wartość czasu między pakietami hello wynosi
30 sekund, zaś wartość czasu nieaktywności - 120 sekund. Te wartości domyślne
gwarantują sprawne działanie protokołu OSPF i rzadko zachodzi potrzeba ich zmiany.
Wartości zegarów mogą być zmienione przez administratora sieci. Usprawiedliwieniem
zmiany wartości zegarów może być tylko poprawa wydajności sieci OSPF. Należy tak
zmieniać wartość zegarów, aby odpowiadały wartościom na sąsiednich routerach.
Aby skonfigurować interwał pakietów hello oraz czas nieaktywności, należy użyć następujących poleceń:
Router(config-if)#ip ospf hello-interval sekundy
Router(config-if)#ip ospf dead-interval sekundy
Propagowanie domyślnej trasy w protokole OSPF
Routing OSPF zapewnia istnienie wolnych od zapętleń tras do wszystkich sieci w
domenie. Aby osiągnąć sieć znajdującą się poza domeną, protokół OSPF musi wiedzieć
o tej sieci lub też musi mieć domyślną trasę. Gdyby router musiał pamiętać trasę
do każdej sieci na świecie, wymagałoby to olbrzymiej ilości zasobów.
Praktycznym rozwiązaniem jest dodanie domyślnej trasy do routera OSPF połączonego
z siecią zewnętrzną. Trasa ta może być redystrybuowana między wszystkimi routerami
znajdującymi się w danym systemie autonomicznym dzięki zwykłym aktualizacjom OSPF.
Skonfigurowana trasa domyślna jest używana przez router do utworzenia bramy
ostatniej szansy. Składnia konfiguracji statycznej trasy domyślnej używa adresu
sieci 0.0.0.0 oraz maski podsieci 0.0.0.0:
Router(config)#ip route 0.0.0.0 0.0.0.0 [interfejs | adres-następnego-przeskoku]
Nosi ona nazwę trasy czterech zer. Sposób dopasowania adresu sieci jest opisany
poniżej. Adres bramy sieci jest otrzymywany po obliczeniu iloczynu dwójkowego AND
adresu docelowego pakietu i maski podsieci.
Następująca instrukcja konfiguracyjna dokona propagacji tej trasy do wszystkich
routerów w normalnym obszarze OSPF:
Centre(config-router)#default-information originate
Wszystkie routery w obszarze OSPF poznają trasę domyślną, jeśli jest aktywny
interfejs routera brzegowego do bramy domyślnej.
| Polecenie |
Opis |
| show ip protocol |
Służy do wyświetlania parametrów zegarów, filtrów, metryk, sieci oraz innych
informacji dotyczących routera traktowanego jako całość. |
| show ip route |
Służy do wyświetlania tras znanych routerowi i opisu metody ich poznania.
Jest to jeden z najlepszych sposobów sprawdzania połączenia między lokalnym routerem, a resztą
intersieci. |
| show ip ospf interface |
Służy do sprawdzania, czy interfejsy zostały skonfigurowane w odpowiednich obszarach.
Jeśli nie podano adresy pseudosieci (loopback), rolę identyfikatora routera pełni interfejs
o najwyższym adresie. Wyświetla również wartość zegarów, takich jak zegar pakietó hello,
oraz prezentuje relacje przylegania. |
| show ip ospf |
Służy do wyświetlania liczby wskazującej, ile razy został użyta algorytm SPF.
Wyświetla również interwał aktualizacji stanu łącza w przypadku zmian w topologii. |
| show ip ospf neighbor detail |
Służy do wyświetlania szczegółowej listy sąsiadów, ich priorytetu oraz stanu
(np init, exstart lub full). |
| show ip ospf database |
Służy do wyświetlania zawartości bazy danych o topologi uaktualnionej przez router.
Wyświetla również identyfikator routera oraz identyfikator procesu ospf. Używając odpowiednich słów
kluczowych, można wyświetlić bazy danych różnych typów. Szczegółowe informacje dotyczące słów kluczowych
można znaleźć na stronie internetowej Cisco.com.
|