header image
Home arrow Protokoły TCP/IP arrow Routing arrow OSPF - Open Shortest Path First
OSPF - Open Shortest Path First E-mail
Oceny: / 32
KiepskiBardzo dobry 

OSPF v.2 jest opisany w RFC2328. Open Shortest Path First (OSPF) jest protokołem typu Interior Gateway Protocol (IGP) wykorzystywanym wewnątrz większych sieciach systemów autonomicznych (Autonomous System - AS). Za AS jest uważana grupa routerów i hostów stosujących wspólny IGP i zarządzanych przez jedną jednostkę (właściciela, administratora).

OSPF i Link-state 

OSPF określa najkrótszą ścieżkę do przeznaczenia przez system AS, wykorzystując algorytm, który umiejscawia router w tzw. „korzeniu drzewa”, kalkulując najniższy koszt do pożądanej lokalizacji (przeznaczenia). W związku z tym, każdy router ma inny wygląd topologii sieci, nawet jeśli otrzymują te same informacje link-state database.

OSPF jest protokołem typu link-state, w związku z tym wykorzystuje link state advertisements (LSAs) by poinformować inne routery o zmianach w topologii, które wykrył. Inaczej niż RIP, który wysyła co 30 sekund całą tablicę routingu , OSPF natychmiast wysyła multicastem LSA, gdy wykryje zmiany w sieci. Jednak wysyła on tylko ta część tabeli routingu, która została zmieniona. By ograniczyć broadcast LSA, system autonomiczny AS jest dzielony na kilka oddzielnych stref (area). Kiedy skonfigurowana jest dana strefa to LSA i konfiguracje SPF (Shortest Path First) na routerze są ograniczone tylko do zmian wewnątrz tej strefy. Podstawową strefą jest Backbone 0.0.0.0, do którego przylegają poszczególne strefy Area X.X.X.X. Routery w Backbone znają całą topologię sieci nazywamy je BR (Border Router), routery w Area znają tylko wewnętrzną topologię tej strefy.

Sieć OSPF (Open Shortest Path First) 

Istnieją różne typy routerów w sieci OSPF. Routery, których wszystkie interfejsy należą do tej samej strefy, nazywane są routerami wewnętrznymi IR (internal routers). Skoro IR należą do tej samej strefy, to mają one dokładnie taką samą bazę danych (link-state database) jak inne routery w tej strefie. Jeśli router należy do więcej niż jednej strefy, jest on nazywany ABR (Area Border Router). ABR odpowiedzialny jest za dystrybucję rozgłoszeń tras przez jego interfejsy do odpowiednich stref. Router, który ma uruchomionych kilka protokołów lub działa jako gateway (brama) do innych zewnętrznych routerów nazywany jest ASBR (Autonomous System Border Router). Implementacja OSPF obsługuje wykorzystanie wielu ścieżek ECMP (Equal Cost Multi Path) – load balancing.

Typu pakietów OSPF 

Nagłówek pakietu OSPF

Protokół OSPF (Open Shortest Path First) wykorzystuje protokół IP do przenoszenia swoich pakietów. Numer protokołu w nagłówku IP dla OSPF wynosi 89. Wszystkie pakiety protokołu OSPF mają ten sam format nagłówka, który jest przedstawiony poniżej.

Nagłówek OSPF (Open Shortest Path First)

Wersja: Numer wersji OSPF.

Typ: Typ pakietu OSPF. W OSPF wyróżnia się 5 typów pakietów, takich jak poniżej:

  • Typ 1      Hello - Odkrywanie/zarządzanie sąsiadami
  • Typ 2      Database Description - Sumaryzacja zawartości bazy danych
  • Typ 3      Link State Request - Download bazy danych
  • Typ 4      Link State Update - Aktualizacja bazy danych
  • Typ 5      Link State Ack - Potwierdzenie rozpływowe

Długość pakietu: Długość pakietu OSPF w bajtach, łącznie z długością nagłówka OSPF.

Router ID: Identyfikator routera OSPF, który wysłał ten pakiet.

Area ID: 32 bitowy numer identyfikacyjny obszaru OSPF (AREA), do której należy ten pakiet. Wszystkie pakiety OSPF są skojarzone z jedną areą.

Suma kontrolna: standardowa suma kontrolna taka jak w IP, liczona z całego pakietu OSPF łącznie z agłówkiem, ale bez 64-bitów pola Autoryzacji.

AuType: Identyfikuje procedurę autoryzacji pakietu OSPF. 

  •         0 - brak autoryzacji
  •         1 - proste hasło
  •         2 - autoryzacja kryptograficzna (algorytm MD5)

Autoryzacja: 64-bitowe pole schematu autoryzacji.

Gdy OSPF wykorzystuje sieć broadcastową do wymiany swoich pakietów to stosuje multicast. Dla celów OSPF zarezerwowano dwa adresy multicastowe:
224.0.0.5 - AllSPFRouters, pakiet do wszystich routerów OSPF.
224.0.0.6 - AllDRouters, pakiet do wszystkich routerów DR (DR + BDR).

Dodatkowo pakiet OSPF ma ustawione pole TOS na wartość bitową 0000 i IP precedens na Internetwork Control.

Pakiet OSPF Hello

Pakiety Hello są typem 1 pakietu OSPF. Są one wysyłane okresowo na wszystkie interfejsy w celu ustanowienia i zarządzania relacjami z sąsiadami (dynamiczne odkrywanie sąsiadów, sprawdzanie ich obecności, potwierdzanie obecności). Wszystkie routery przyłączone do wspólnej sieci muszą zgodzić się na wspólne parametry jakimi są Maska sieci, HelloInterval i RouterDeadInterval. Jeśli te parametry się różnią, to możliwy jest brak ustanowienia sąsiedztwa.

Pakiet Hello OSPF (Open Shortest Path First)

Maska sieci: maska sieci przypisana do interfejsu, z którego wysłano pakiet Hello.

Opcje: dodatkowe funkcjonalności obsługiwane przez router.

              Pole opcji w OSPF

  • E-bit - rozgłaszanie (floodowanie) AS-external-LSA
  • MC-bit - opisuje czy datagram multicastowy IP jest przekazywany zgodnie z RFC1584 "Multicast Extensions to OSPF".
  • N/P-bit - opisuje obsługę Type-7 LSA wg. RFC3101 "The OSPF NSSA Option".
  • EA-bit - wyraża chęć do otzrymywania i przekazywania External-Attributes-LSA.
  • DC-bit - obsługa żądania łączy wg. RFC1793 "Extending OSPF to Support Demand Circuits".

HelloInterval: ilość sekund między pakietami Hello.

Rtr Pri: Router Priority - priorytet routera, wykorzystywaniu przy wyborze routera DR i BDR [(Backup) Designated Router]. Wartość 0 oznacza wyłaczenie z elekcji do DR i BDR.

RouterDeadInterval: ilość sekund przed deklaracją, że router jest nieosiągalny.

Designated Router: router desygnowany dla tej sieci. DR jest identyfikowany przez swój adres IP interfejsu w tej sieci. 0.0.0.0 oznacza, że brak jest DR.

Backup Designated Router: zapasowy router desygnowany dla tej sieci. BDR jest identyfikowany przez swój adres IP interfejsu w tej sieci. 0.0.0.0 oznacza, że brak jest BDR.

Neighbor: kolejne pola z RouterID sąsiadów, od których ten router ostatnio usłyszał poprawne pakiety Hello. Ostatnio oznacza, że w ciągu sekund jakie wyznacza RouterDeadInterval.

Pakiet OSPF Database Description

Pakiet Database Description (opis bazy danych) jest pakietem OSPF typu 2. Pakiety DD (Database Description) są wymieniane po zainicjalizowaniu sąsiedztwa między routerami OSPF i oposują zawartość bazy danych link-state. W celu wymiany informacji wykorzystuje się mechanizm odpytanie - odpowiedź między routerami. Jeden z routerów OSPF jest wyznaczany jako główny (master - patrz bit MS w pakiecie DD ustawiony na 1), a drugi jako podrzędny (slave - bit MS=0). Master wysyła pakiety DD (odpytując swoją bazę), które są potwierdzane przez router slave (odpowiedź). Routery stosują numer sekwencyjny, aby odpowiedzi powiązać z odpytaniami.

Pakiet Database Description w OSPF

MTU interfejsu: wielkość w bajtach największego datagramu IP, jaki może zostać wysłany na ten interfejs bez fragmentacji.

Opcje: dodatkowe funkcjonalności obsługiwane przez router.

bit I: bit Inicjalizacji (Init), jeśli ustawiony na 1, to pakiet jest pierwszym w sekwencji pakietów DD.

bit M: bit More (więcej), jeśli ustawiony na 1, wskazuje, że nadejdzie więcej pakietów DD.

bit MS: bit Master/Slave (główny/podrzędny), jeśli ustawiony na 1, wskazuje, że router OSPF jest głównym routerem w procesie wymiany bazy danych. 0 oznacza, że podrzędnym (slave).

Numer sekwencyjny DD: stosowany do numerowania sekwencji pakietów DD. Wartość początkowa jest tą wartością, która przyjdzie wraz z bitem Init. Następnie jest inkrementowana, aż do całkowitego przesłania bazy danych.

Pola Nagłówek LSA i ... : pozostała część pakietu DD zawiera części bazy danych link-state. Każdy LSA (Link State Advertisement) w bazie danych jest opisany przez nagłówek LSA.

 

Pakiet OSPF Link State Request

Pakiet Link State Request (pakiet OSPF LSR)jest pakietem OSPF typu 3. Jest on wykorzystywany przez sąsiedni router po procesie wymiany bazy danych link-state między routerami OSPF i stwierdzeniu, że część informacji w bazie jest przeterminowana. Pakiet LSR jest zapytaniem do sąsiedniego routera OSPF o konkretną aktualną część informacji. Może być ich kilka. Router wysyłający pakiet LSR oczekuje odpowiedzi dla konkretnej instancji. Każda instancja w bazie danych ma swój numer sekwencyjny, sumę kontrolną LS i wiek LS, jednak te wartości nie są zawarte w pakiecie LSR, w związku z tym router OSPF może otrzymać wiele instancji w odpowiedzi.

Pakiet Link State Request w OSPF

Każdy żądany LSA (Link State Advertisement) w pakiecie OSPF Link State Request jest określony przez swój typ LS, Link State ID i Advertising Router (router rozgłaszający), co unikalnie identyfikuje LSA, ale nie jego instancję, dlatego też należy rozumieć żądanie przez pakiet LSR najświeższej (najbardziej aktualnej) instancji.

Pakiet OSPF Link State Update

Pakiet Link State Update (LSU) jest pakietem OSPF typu 4. Te pakiety rozgłaszają LSA (mechanizm floodingu - rozpływu informacji). Każdy pakiet LSU przenosi zbiór kilku LSA na odległość jednego skoku routera od źródła wysłania. Pakiety LSU są multicastami w sieciach obsługujących multicast/broadcast, W celu zapewnienia większej niezawodności pakiety LSU są potwierdzane przez pakiety Link State Acknowledgment. Jeśli jest potrzebna retransmisja konkretnej LSA, to retransmitowane LSA są zawsze wysyłane bezpośrednio do sąsiada.

Pakiet Link State Update w OSPF

# LSA: liczba LSA zawartych w aktualizacji

Zawartosć pakietu OSPF LSU składa się z listy LSA, gdzie każdy LSA zaczyna się 20 bajtowym nagłówkiem.

Pakiet OSPF Link State Acknowledgment

Pakiet Link State Acknowledgment jest pakietem OSPF typu 5. Pakiety te są wykorzystywane do niezawodnego przekazywania LSA (Link State Advertisement) poprzez ich potwierdzenie. Kilka LSA może zostać potwierdzonych przez jeden pakiet Link State Acknowledgment. Pakiet Link State Acknowledgment może być wysłany multicastem pod adres AllSPFRouters (224.0.0.5) lub unicastem do konkretnego routera, który  wysłał pakiet Link State Update. Format tego pakietu jest zbliżony do pakietu DD.

Pakiet Link State Acknowledgment w OSPF

Każdy potwierdzony LSA jest opisany przez swój nagłówek LSA. Zawiera informacje potrzebne do unikalnej identyfikacji zarówno LSA jak i jego aktualnej instancji.


Typy LSA

W OSPF wyróżniamy pięć różnych typów LSA (Link State Advertisement). KAżdy LSA rozpoczyna się standardowym 20 bajtowym nagłókiem LSA.

Każdy LSA opisuje fragment domeny routingu OSPF. Każdy router wysyła router-LSA, w dodatku jeśli router został wybrany na Designated Router to również wysyła network-LSA.

Wszystkie LSA są floodowane przez domenę routingu OSPF, w celu zapewnienia, że wszystkie routery maja te same informację. Zbiór LSA w routerze nazywamy bazą danych link-state (link-state database). Z bazy tej router tworzy drzewo najkrótszej ścieżki z sobą jako rootem (SPF - Shortest Path First), co w konsekwencji pozwala na stworzenie tabeli routingu.

Wyróżniamy następujące typy LSA (identyfikowane przez pole Typ LSA w nagłóku LSA):
   

 Typ LS Znaczenie
 1  Router-LSA
 2  Network-LSA
 3  Summary-LSA (sieć IP)
 4  Summary-LSA (ASBR)
 5  AS-external-LSA

   

Nagłówek LSA

Wszystkie LSA mają taki sam nagłówek 20 bajtowy, który zawiera wystarczającą ilość informacji do unikalnej identyfikacji LSA czyli typ LSA, Link State ID i Advertising Router. W tym samym czasie w domenie OSPF może istnieć wiele instancji LSA w związku z tym ważne jest określenie, która instancja jest najnowsza. Do tego celu stosuje się wiek LSA (LSA age), numer sekwencyjny LS i sumę kontrolną LS, pola, które sa również zawarte w nagłóku LSA.

Nagłówek LSA w OSPF

Wiek LS: czas w sekundach odkąd od momentu wysłania LSA

Opcje: dodatkowe funkcjonalności obsługiwane przez opisywaną część domeny routingu. Patrz opcje w pakiecie OSPF Hello.

Typ LS: typ LSA, każdy LSA ma odrębny format.

Link State ID: pole identyfikuje część środowiska sieciowego opisywanego przez LSA. Zawartość tego pola zależy od wartości pola Typ LS.

Advertising Router: RouterID routera, który wysłał LSA.

Numer Sekwencyjny LS: wykrywa stare lub powielone LSA. Kolejne instancje LSA mają kolejne numery sekwencyjne LS.

Suma kontrolna LS: Suma kontrolna liczona wg. algorytmu Fletchera całej zawartości LSA łącznie z nagłówkiem LSA, ale bez pola Wiek LS.

Długość: liczona w bajtach długość LSA łącznie z 20 bajtowym nagłówkiem LSA.

 

< Poprzedni   Następny >