Alla routing-protokoll, inklusive OSPF, bygger på tre grundläggande komponenter:
- Paket (Meddelanden)
- Databaser
- Routing-algoritm
Dessa komponenter används av routrar för att utbyta information, bygga en bild av nätverkets topologi och beräkna de bästa rutterna till destinationer.
OSPF-paket (meddelande)
OSPF-routrar utbyter meddelanden för att etablera grannrelationer, synkronisera information relaterad till topologi och uppdatera routing-tillstånd i nätverket. Genom att använda specifika paket säkerställs att alla routrar har en enhetlig och uppdaterad bild av nätverkets topologi.
Routrar som kör OSPF använder fem typer av paket för att utbyta routing-information:
- Hello – Upptäcker grannar och etablerar relationer.
- Database Description (DBD) – Sammanfattar och jämför databasens innehåll mellan routrar.
- Link-State Request (LSR) – Begär mer detaljerad topologiinformation från en granne.
- Link-State Update (LSU) – Innehåller routinguppdateringar och sprider LSAs.
- Link-State Acknowledgment (LSAck) – Bekräftar mottagna LSU-meddelanden
OSPF Databaser
OSPF bygger sin funktion på tre databaser som var och en har en tydlig roll.
1. Adjacency databas (Neighbor Table)
Denna databas innehåller information om direkt anslutna grannar och visar de routrar som har nått minst Two-Way-tillstånd. Varje router har en egen unik Neighbor Table, eftersom den endast registrerar routrar som är direkt anslutna.
Adjacency databas skapas och underhålls med hjälp av Hello-paket, som används för att upptäcka och verifiera grannrelationer. Databasen används för att hålla reda på grannar och deras aktuella tillstånd under adjacensprocessen.
I multiaccess-nätverk, som exempelvis Ethernet, används databasen för att hålla reda på grannar och deras roller, där det framgår vilken router som är vald till Designated Router (DR) och Backup Designated Router (BDR).
Innehållet i Neighbor Table kan visas med kommandot:
show ip ospf neighbor
2. Link-State Database (Topology Table)
Link-State Database (LSDB) är en central i OSPF och innehåller information som beskriver hela nätverkets topologi inom en area.
- LSDB innehåller information om alla routrar och länkar i nätverket, inklusive nätverksprefix, kostnader och anslutningar.
- LSDB representerar nätverkets fullständiga topologi, vilket gör att varje router kan skapa en SPF-trädstruktur för att beräkna kortaste rutten.
- LSDB är identisk hos alla routrar inom samma area, eftersom OSPF säkerställer att varje router har en synkroniserad kopia av LSDB via LSA-uppdateringar.
- LSDB används av Dijkstra’s SPF-algoritm för att räkna ut den optimala rutten till varje destination och uppdatera routingtabellen.
För att visa tabellens innehåll kan man använda kommandot: show ip ospf database eller show ip ospf topology.
Forwarding Database (Routing table)
Forwarding Database, även kallad Routing Table, innehåller de faktiska rutter som används för att vidarebefordra paket i nätverket. Den skapas genom att köra Dijkstra’s SPF-algoritm på Link-State Database (LSDB) och används av routern för att fatta beslut om hur datatrafik ska dirigeras.
- Innehåller de bästa beräknade rutterna, baserade på OSPF:s SPF-algoritm.
- Unik för varje router, eftersom varje enhet beräknar sina egna optimala rutter beroende på sin position i nätverket.
- Anger nästa hopp och utgående interface för att nå varje destination.
- Används för paketvidarebefordran, till skillnad från LSDB, som endast representerar nätverkets topologi.
För att visa routing-tabellen används kommandot: show ip route
OSPF Algoritmen
OSPF använder Dijkstra’s Shortest Path First (SPF)-algoritm för att beräkna den mest effektiva rutten genom nätverket. Algoritmen arbetar genom att analysera information i Link-State Database (LSDB) och beräkna den ackumulerade kostnaden för att nå varje destination.
Algoritmen arbetar i flera steg:
- Bygga topologitabellen – Routern samlar in Link-State Advertisements (LSAs) från sina grannar och skapar en topologidatabas (LSDB), som innehåller en fullständig karta över nätverket inom ett OSPF-område.
- Skapa SPF-trädet – Routern sätter sig själv som rot och bygger ett träd över alla möjliga rutter i nätverket.
- Beräkna bästa rutt – SPF-algoritmen jämför ackumulerad kostnad (bandbreddsbaserad metrik) för varje möjlig rutt och väljer den mest optimala rutten.
- Uppdatera Forwarding-databasen – De bästa rutterna från SPF-trädet lagras i Forwarding Database, som används för att skapa den slutliga routing-tabellen.
Dessa beräkningar säkerställer att OSPF alltid använder den mest effektiva och aktuella rutten till varje destination, vilket gör det till ett dynamiskt och snabbt konvergerande routing-protokoll.

Sammanfattning
OSPF fungerar genom att kombinera tre huvuddelar:
1. OSPF-paket – OSPF-routrar utbyter information mellan routrar för att bygga och underhålla den gemensamma topologin.
2. OSPF-databaser
- Adjacency Database – innehåller direkt anslutna grannar och deras tillstånd (Neighbor table).
- Link-State Database – innehåller hela nätverkets topologi inom ett område och är identisk på alla routrar i samma area (Topology table).
- Forwarding Database – innehåller de bästa rutterna som faktiskt används för paketvidarebefordran (Routing table).
3. Routing-algoritmen (SPF) – OSPF använder Dijkstra’s Shortest Path First algoritm för att beräkna kortaste rutten baserat på kostnad.
Genom dess struktur kan OSPF snabbt anpassa sig till förändringar i nätverket och sökerställa att trafiken alltid tar den mest optimala rutten.