Open Shortest Path First

OSPF (ang. Open Shortest Path First), w wolnym tłumaczeniu: „pierwszeństwo ma najkrótsza ścieżka” (słowo „open” oznacza otwartość, podobnie jak w pojęciu Open Source) – protokół trasowania oparty na analizie stanu łącza (ang. link-state). Jest jednym z protokołów bramy wewnętrznej – IGP (ang. Interior Gateway Protocol) – czyli kontroluje przepływ pakietów wewnątrz systemu autonomicznego (ang. Autonomous System, AS).

Cechami protokołu OSPF są: trasowanie wielościeżkowe, trasowanie najmniejszym kosztem i równoważenie obciążenia. Zdefiniowany on został jako OSPF wersja 2. w RFC 2328 ↓ dla IPv4, a aktualizacja dla IPv6 jako OSPF wersja 3. w RFC 5340 ↓.

Jest zalecanym protokołem wśród protokołów niezależnych, do których należy także RIP. W przeciwieństwie do protokołu RIP, charakteryzuje się dobrą skalowalnością, wyborem optymalnych ścieżek, przyspieszoną zbieżnością i brakiem ograniczenia skoków powyżej 15. Protokół OSPF używa hierarchicznej struktury sieci z podziałem na obszary, z centralnie umieszczonym obszarem zerowym (ang. area 0), który pośredniczy w wymianie tras między wszystkimi obszarami w domenie OSPF. Przeznaczony jest dla sieci posiadających do 500 routerów w wyznaczonym obszarze trasowania.

Routery korzystające z tego protokołu porozumiewają się ze sobą za pomocą pięciu komunikatów:

  • hello – nawiązywanie i utrzymywanie relacji sąsiedzkich,
  • database descriptions – opis przechowywanych baz danych,
  • requests link-state – żądanie informacji na temat stanów połączeń,
  • updates link-state – aktualizacja stanów połączeń,
  • acknowledgments links-state – potwierdzenia stanów połączeń.

OSPF jest protokołem typu link-state jedynie wewnątrz obszaru. Oznacza to, że w ramach pojedynczego obszaru wszystkie routery znają całą jego topologię i wymieniają się między sobą informacjami o stanie łączy, a każdy z nich przelicza trasy samodzielnie (zob. algorytm Dijkstry). Między obszarami OSPF działa jak protokół typu distance-vector, co oznacza, że routery brzegowe obszarów wymieniają się między sobą gotowymi trasami. Istnienie obszaru zerowego umożliwia trasowanie pakietów pomiędzy obszarami bez powstawania pętli.

Aby zmniejszyć liczbę pakietów rozsyłanych w sieci, OSPF wybiera router desygnowany DR (ang. designated router) oraz zapasowy BDR (ang. backup designated router), które służą do wymiany informacji o stanie łączy z pozostałymi routerami OSPF. Komunikat hello służy tutaj do wyboru DR i BDR oraz do wykrywania nieaktywnych sąsiednich routerów OSPF.

Nagłówek protokołu

Istnieją 3 wersje protokołu oznaczone odpowiednio OSPFv1, OSPFv2 (dla IPv4) oraz OSPFv3 (dla IPv6).

+Bity 0–78–1516–31
0WersjaTypDługość ramki
32Identyfikator Routera
64Identyfikator Obszaru
96Suma KontrolnaTyp Autoryzacji
128Kod Uwierzytelnienia
160Dane

Wersja (8 bitów) – numer wersji OSPF.

Typ (8 bitów) – informacja, czy dana ramka jest zapytaniem czy odpowiedzią.

Długość Ramki (16 bitów) – rozmiar ramki OSPF włącznie z nagłówkiem (w bitach).

Identyfikator Routera (32 bity) – identyfikator routera, z którego nadano pakiet.

Identyfikator Obszaru (32 bity) – identyfikator obszaru (podsieci), w którym porusza się pakiet. Pakiet OSPF związany jest zazwyczaj z jednym obszarem i robi tylko jeden przeskok. Pakiety przechodzące przez wirtualne łącza są oznaczone tak zwanym „backbone area”, który wynosi 0.0.0.0

Suma Kontrolna (16 bitów) – średnia suma kontrolna IP całej zawartości pakietu, zaczynając od nagłówka pakietu OSPF, ale z wyłączeniem pola uwierzytelniania o długości 64 bitów.

Typ Autoryzacji (16 bitów) – określa procedure uwierzytelniania, która ma być używany dla tego pakietu.

Kod Uwierzytelniania (64 bity) – opisane w RFC 2328 ↓.

Dane (kolejne bity) – dane o zmiennej długości.

Zobacz też

Linki zewnętrzne