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–7 8–15 16–31 0 Wersja Typ Długość ramki 32 Identyfikator Routera 64 Identyfikator Obszaru 96 Suma Kontrolna Typ Autoryzacji 128 Kod Uwierzytelnienia 160 Dane
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ż
- trasowanie
- protokoły trasowania
- protokół IS-IS
- Shortest Path Bridging (IEEE 802.1aq)
- Quagga – implementacja OSPF-a
- Vyatta – darmowy router OSPF/BGP
Linki zewnętrzne
- Laboratoria z OSPF-a
- J. Moy , OSPF Version 2, STD 54, RFC 2328, IETF, kwiecień 1998, DOI: 10.17487/RFC2328, ISSN 2070-1721, OCLC 943595667 (ang.).
- R. Coltun i inni, OSPF for IPv6, RFC 5340, IETF, lipiec 2008, DOI: 10.17487/RFC5340, ISSN 2070-1721, OCLC 943595667 (ang.).