> ## Content Index
> Fetch the complete content index at: https://innasiec.pl/llms.txt
> Use this file to discover other available public pages before exploring further.

# OSPF - Routing w oparciu o link state | teoria
- URL: https://innasiec.pl/podstawy-ospf-teoria/
- Published: 2017-05-29T09:59:42.000Z
- Updated: 2024-06-25T19:49:18.000Z
- Author: Rafał Rudewicz
- Tags: Routing & Switching, #wordpress, #toc

Ospf (ang. Open Shortest Path First) jest obecnie jednym z najczęściej wybieranych protokołów IGP. Podobnie jak [EIGRP](https://innasiec.pl/eigrp-protokol-routingu-distance-vector/?ref=amigurumi-polecat.pikapod.net) czy IS-IS, działa w ramach jednej domeny autonomicznej, co oznacza, że zajmuje się routowaniem w obrębie sieci zarządzanej przez jedną firmę lub organizację. **Współcześnie stosujemy OSPF w wersji 2 dla IPv4 oraz w wersji 3 dla IPv6.**

**Protokół OSPF cieszy się popularnością, ponieważ:**

- Wykorzystuje algorytm SPF (Dijkstry) do wybierania najlepszej trasy
- Jest bardzo prosty do wdrożenia w podstawowej konfiguracji
- Posiada szeroki zakres opcji konfiguracyjnych
- Posiada 5 różnych rodzajów obszarów, które określają wspólną politykę wobec tras spoza obszaru (normal, stub, totally stub, not so stubby, totally not so stubby)
- Posiada hierarchiczną strukturę obszarów
- Wszystkie routery w danym obszarze są świadome wszystkich możliwych tras, co umożliwia bardzo szybką konwergencję
- Przy odpowiedniej konfiguracji można osiągnąć konwergencję w zaledwie kilka milisekund.
- Posiada podstawowe mechanizmy bezpieczeństwa

> Nawigacja w Twoim aucie korzysta z algorytmu SPF do wyznaczania trasy – dokładnie tego samego algorytmu używa OSPF.  
>  
> Wszystko to możliwe jest dzięki Panu o nazwisku **Dijsktra** – dzięki stary! *😉*

Nie bez znaczenia jest również fakt, że **OSPF był od samego początku protokołem otwartym, który działa na sprzęcie każdego producenta.** W przeciwieństwie do wspomnianego już EIGRP, który przez pewien czas był dostępny jedynie dla routerów Cisco.

### Protokół routingu na podstawie stanu łącza

**OSPF** wraz z **IS-IS** należą do grupy **protokołów routingu typu link-state**. Oznacza to, że **każdy router w danym obszarze, zwanym area, posiada identyczną bazę topologii, na podstawie której wybiera najkorzystniejszy wpis do tablicy routingu**. Jednakże wraz ze wzrostem liczby routerów w danym obszarze, wzrasta także liczba przesyłanych pakietów. 

W celu ograniczenia tego zjawiska routery są dzielone hierarchicznie na obszary. Z centralnie umieszczonym obszarem 0 (ang. area 0, backbone), przez który muszą przechodzić wszystkie informacje. 

💡

****OSPF jest protokołem link state jedynie wewnątrz obszaru**, informacje o podsieciach są rozsyłane przez routery brzegowe – ****ABR i ASBR** – w formie ****zsumaryzowanej informacji (gotowych ścieżek)**. Oznacza to, że między obszarami OSPF zachowuje się jak protokół distance-vector.

Podstawowymi **cechami odróżniającymi protokoł OSPF od protokołów typu distance-vector** są:

- **Metryki/koszty przejścia** pakietu przez dany link
- **Oszczędność pasma**, ponieważ uaktualnienia są wysyłane jedynie w przypadku zmiany stanu łącza, a nie w formie okresowych rozgłoszeń
- **Szybka konwergencja** – zdolność do uzyskania stanu stabilnego po wykryciu zmiany w drzewie połączeń sieciowych
- **Struktura hierarchiczna** – zastosowanie obszarów w celu zmniejszenia liczby przesyłanych pakietów, z centralnie położonym obszarem 0 (backbone)
- **Wsparcie dla VLSM (Variable Length Subnet Mask)** – cecha niektórych protokołów trasowania umożliwiająca podzielenie i rozróżnianie podsieci z już istniejących sieci
- **Możliwość uwierzytelniania sąsiadów** – przyległych routerów w rozumieniu konkretnej instancji OSPF

### Koszt i metryka OSPF

Koszt danego łącza obliczamy poprzez podzielenie referencyjnej przepustowości (wartość referencyjna może być dowolnie skonfigurowana) przez przepustowość interfejsu.

 W danym obszarze **wszystkie routery powinny mieć taką samą wartość referencyjną, najlepiej odpowiadającą najszybszemu interfejsowi.**

**Koszt** \= **Referencyjna przepustowość / przepustowość interfejsu** 

Przykład: Koszt = 100 Mbps / 100 Mbps = 1

Jeśli potrzebujesz większej kontroli nad ruchem w Twojej sieci, możesz ręcznie dostosować koszt dla każdego z interfejsów.

Po obliczeniu kosztów dla każdej trasy do podsieci (suma wszystkich kosztów interfejsów w drodze do celu), router umieszcza trasę z najniższym kosztem w tablicy routingu. Należy pamiętać, że g**dy istnieje więcej niż jedna ścieżka o takim samym koszcie prowadząca do danej podsieci, możliwe jest zastosowanie równoważenia obciążenia**, które jest realizowane przez CEF (Cisco Express Forwarding).

### Topologie sieci OSPF

Komunikacja pomiędzy urządzeniami zależy od fizycznego medium, które je łączy. Wyróżniamy 5 rodzajów topologii:

- point-to-point,
- point-to-multipoint,
- Broadcast Multiaccess,
- Nonbroadcast Multiaccess,
- Virtual Links.

### Sieć typu punkt-punkt (Point to Point)

O sieciach punkt-punkt mówimy, gdy dwa routery są połączone bezpośrednio. Medium transmisyjne jest wykorzystywane jedynie do komunikacji między nimi. **Z uwagi na jednoznaczną relację przylegania, nie ma potrzeby przeprowadzania elekcji DR i BDR**. Przykładem takiej sieci są połączenia szeregowe. Nawet interfejsy Ethernet, które są bezpośrednio ze sobą połączone kablem, są traktowane jako topologia typu broadcast i wymagają zmiany na punkt-punkt za pomocą polecenia network-type point-to-point.

### Sieć typu punkt-wielopunkt (Point to Multipoint)

Sieci punkt-wielopunkt występują, gdy jeden interfejs łączy się z wieloma innymi. Taka grupa połączeń jest traktowana jako sieć punkt-punkt zawarta w jednym interfejsie. **W tym przypadku nie ma konieczności wyboru DR i BDR**.

### Sieć typu Broadcast Multiaccess

Do sieci wielodostępnych zaliczamy między innymi sieci Ethernet. W takim modelu możliwe jest rozsyłanie informacji do wszystkich hostów w sieci, a medium jest współdzielone. **W związku z tym niezbędny jest wybór DR oraz BDR, aby zapobiec nadmiernemu tworzeniu się połączeń przylegania**. Pakiety hello są rozsyłane na adres multicastowy 225.0.0.5.

### Sieć typu Nonbroadcast Multiaccess

Sieci punkt-wielopunkt, które z jakiegoś powodu nie umożliwiają rozsyłania pakietów broadcastowych i multicastowych, nazywamy właśnie sieciami typu wielodostęp niemultikierunkowy. **Fizycznie taka sieć jest realizowana w połączeniach punkt-punkt i konieczne jest przeprowadzenie elekcji DR i BDR**. Pakiety LSA rozsyłane są na adresy unicastowe.

### Połączenia wirtualne (Virtual Links)

Każdy obszar w danej sesji OSPF powinien przylegać bezpośrednio do obszaru 0 (obszaru backbone). Jednak zdarza się, że nie ma takiej możliwości i wtedy należy utworzyć połączenie wirtualne poprzez obszary pośredniczące, tak aby ostatecznie osiągnąć relacje przylegania z obszarem backbone.

![Poglądowy schemat gdzie tworzone są relacje DR-BDR oraz DRother](https://innasiec.pl/content/images/2024/06/OSPF-DR-BDR.webp)

### Nawiązywanie relacji przylegania

Kiedy podłączamy nowy router do obszaru, nie wystarczy połączyć go z siecią, aby otrzymał on wszystkie informacje od sąsiednich urządzeń. Konieczne jest wcześniejsze zsynchronizowanie tablic topologii oraz obliczenie nowych tras na routerach w danym obszarze.

Pierwszym krokiem w tym procesie jest nawiązanie relacji przylegania. Routery przechodzą wtedy kolejno przez następujące stany:

1. **Stan Down** – Router wysyła pakiety Hello na multicastowy adres 224.0.0.5 (AllSPFRouters), informując o swojej obecności w sieci. Pola adresów DR i BDR w danym obszarze zawierają wartość 0.0.0.0\.
2. **Stan Init** – Router oczekuje na odpowiedź od innych routerów pracujących w tym samym obszarze. Okres oczekiwania zazwyczaj wynosi czterokrotność timera pakietu Hello (na routerach Cisco jest to 10 sekund). Z odebranych pakietów router dowiaduje się o adresach DR i BDR. Jeśli nie otrzyma takiej informacji, rozpoczyna proces wyboru nowego DR i BDR. Router z najwyższym ID zostaje wybrany na DR. Zwycięzca elekcji dodaje nowy router do swojej tablicy topologii oraz wysyła swoje ID wraz z listą wszystkich znanych sąsiadów.
3. **Stan Two-way** – Nowo dołączony router widzi swoje ID w uzyskanej liście sąsiadów, co powoduje nawiązanie poprawnego sąsiedztwa między routerami.
4. **Stan Exstart** – Bazując na adresie IP, router o wyższym adresie uzyskuje pierwszeństwo w rozpoczęciu procedury wymiany informacji.
5. **Stan Exchange** – Routery wymieniają się pakietami DDP (Database Description Packet). Ponieważ nowy router nie ma żadnej wiedzy o topologii obszaru poza bezpośrednio sąsiadującymi urządzeniami, otrzymuje ją od DR, który wysyła serię pakietów DDP zawierających informacje o obszarze. Przyłączone sieci nazywane są linkami.
6. **Stan Loading** – Ponieważ pakiety DDR zawierają tylko zsumowane informacje o połączeniach, nowy router może potrzebować dodatkowych informacji o konkretnym łączu. Wysyła wtedy żądanie LSR (Link State Request) do DR i oczekuje odpowiedzi w postaci pakietu LSU (Link State Update).
7. **Stan Full** – Wszystkie routery posiadają taką samą bazę topologii oraz znają wszystkie linki w danym obszarze.

### Rodzaje pakietów LSA

- **Router-link (LSA typ 1)** – zawiera informacje o wszystkich połączeniach routera oraz listę wszystkich sąsiadów. Ten rodzaj LSA jest rozsyłany tylko w obrębie obszaru i jest wysyłany przez każdego routera uczestniczącego w procesie OSPF.
- **Network-link (LSA typ 2)** – Wysyłany przez router DR, zawiera listę wszystkich routerów w danym obszarze, dla których działa jako DR i z którymi nawiązał sąsiedztwo. Ten rodzaj LSA jest rozsyłany tylko w obrębie obszaru.
- **Summary link (LSA typ 3)** – przekazywane między obszarami, podsumowują informacje o sieciach w danym obszarze. Są tworzone przez ABR.
- **ASBR Summary** **(LSA typ 4)** – przekazywane między obszarami, zawierają informacje o lokalizacji ASBR. W pakiecie LSA 4 znajdują się informacje o ABR, który wysłał pakiet, oraz o ASBR, do którego można dotrzeć dzięki niemu.
- **External link (LSA typ 5)** – zawiera informacje o sieciach redystrybuowanych z innych protokołów lub innych instancji OSPF. Rozsyłane są przez ASBR. Wyróżniamy 2 podtypy:  
  - **Typ 1** – metryka jest sumą kosztu dojścia po OSPF oraz metryki zewnętrznego protokołu;
  - **Typ 2** – metryka obejmuje jedynie koszt zewnętrznego protokołu;
- **Multicast LSA (LSA typ 6)** \- nieobsługiwane i nieużywane..
- **NSSA External Link (LSA typ 7)** – to specjalny typ stworzony dla obszarów NSSA i służy do przekazywania informacji o sieciach redystrybuowanych. Podobnie jak LSA 5, ma 2 typy. Tworzone są przez ASBR.

![](https://innasiec.pl/content/images/2024/06/OSPF-Routing-Link-State.webp)

### O czym należy pamiętać przy sumaryzacji?

Router **ABR dokonuje sumaryzacji na granicy jednego lub więcej obszarów** w danej instancji OSPF. Z kolei **ASBR dokonuje sumaryzacji i redystrybucji na granicy systemu autonomicznego**, znanego jako AS. Pamiętaj, że sumaryzować można tylko podsieci, które przylegają do obszaru i które router ma w swojej tablicy routingu.

**Krótkie podsumowanie dotyczące sumaryzacji:**

- Sumaryzacji mogą dokonywać jedynie ABR-y i ASBR-y.
- Można sumaryzować do dowolnego rozmiaru podsieci (podsieć musi być oczywiście potęgą liczby 2).
- Sumaryzację należy skonfigurować ręcznie, uważnie planując sieć przy podziale na obszary.

### Rodzaje obszarów w OSPF

**Backbone Area** – nazywany również obszarem 0\. Wszystkie obszary muszą przylegać bezpośrednio do tego obszaru lub poprzez wirtualne łącze. W nim rozsyłane są wszystkie rodzaje pakietów LSA, a pakiet typu 7 LSA jest konwertowany na typ 5 LSA. 

**Standard Area** – obszar dołączony do obszaru 0\. Każdy router posiada pełną wiedzę o topologii obszaru, do którego należy, oraz bazę topologii. 

**Stub Area** – obszar, w którym nie akceptuje się informacji o podsieciach pochodzących z redystrybucji poprzez zablokowanie pakietów typu 5 LSA. Dozwolona jest wymiana informacji z innymi obszarami w ramach jednej instancji OSPF. Aby wysłać pakiety do innych podsieci spoza OSPF, stosujemy trasę domyślną. **W obszarze stub nie powinien występować ASBR.** 

**Totally Stub Area** – obszar, który nie akceptuje żadnych pakietów LSA zawierających zsumaryzowane informacje o innych podsieciach (pakietów LSA 3, 4, 5) spoza obszaru TSA. Pakiety kierowane do podsieci spoza obszaru OSPF są przesyłane za pomocą trasy domyślnej. 

**Not So Stubby Area (NSSA)** – obszary te nie akceptują informacji z redystrybucji, co oznacza blokadę pakietów typu 4 i 5 LSA. Dozwolone są jednak informacje sumaryczne. Informacje o trasach z innych obszarów są rozpowszechniane wewnątrz obszaru NSSA za pomocą pakietów LSA 7\. Informacje o trasach z obszaru NSSA do innych obszarów są przesyłane tylko przez routery ABR po konwersji na typ 5 LSA. **W przeciwieństwie do obszaru stub, w NSSA może występować ASBR**. 

Obszary typu **stub** oraz **Totally Stub** nie akceptują pakietów typu 5 LSA. Dlatego nałożone są na nie pewne ograniczenia.

**Niedozwolone są następujące działania:**

- Przekazywanie informacji o trasach spoza danego obszaru
- Tworzenie wirtualnych połączeń (virtual links)
- Redystrybucja tras z innych protokołów routingu do innych
- Brak routerów działających jako ASBR
- Wszystkie routery w tym obszarze muszą być typu stub
- Obszary te nie mogą być obszarami 0 (obszarem głównym)