För att upprätthålla routing-information genomför OSPF-routrar en länkstatusbaserad process för att nå konvergens. I det givna exemplet används en topologi med fem routrar, där varje länk mellan routrarna har ett angivet kostnadsvärde. Kostnaden används av OSPF för att beräkna den bästa vägen till en destination.
Steg i OSPF:s länkstatusprocess
- Establish Neighbor Adjacencies
- Exchange Link-State Advertisements
- Build the Link State Database
- Execute the SPF Algorithm
- Choose the Best Route
1. Etablering av grannanslutningar
Innan OSPF-routrar kan utbyta routing-information måste de först identifiera och etablera anslutningar med andra OSPF-routrar i nätverket. Denna process inleds genom att OSPF-aktiverade routrar skickar Hello-paket på alla sina OSPF-aktiverade interface.
Hello-paketen används för att:
- Upptäcka närliggande routrar på samma nätverkssegment.
- Verifiera kompatibilitet genom att jämföra OSPF-parametrar såsom nätverksmask, Hello- och Dead-timers samt autentisering.
- Identifiera och välja Designated Router (DR) och Backup Designated Router (BDR) på multi-access-nätverk som Ethernet.
Om en närliggande router svarar och de har matchande OSPF-inställningar, etableras en grannrelation (neighbor adjacency). När relationen är etablerad kan routrarna börja utbyta routing-information och synkronisera sina topologi-databaser.
2. Utbyte av länkstatusannonser (Link-State Advertisements)
Efter att grannrelationer har etablerats börjar OSPF-routrar utbyta Link-State Advertisements (LSAs) för att bygga en fullständig bild av nätverkets topologi. LSAs innehåller viktig information om status och kostnad för varje direkt ansluten länk.
Hur LSAs sprids i nätverket:
- Routrar skickar sina LSAs till direkt anslutna grannar.
- Grannar vidarebefordrar LSAs till sina egna grannar, vilket gör att informationen snabbt sprids i hela nätverket.
- Alla routrar i samma område tar emot och lagrar LSAs i sin Link-State Database (LSDB).
- LSDB synkroniseras mellan routrar, vilket säkerställer att alla routrar i området har en identisk bild av nätverkets topologi.
Genom denna mekanism kan OSPF snabbt och effektivt konvergera vid förändringar, samtidigt som det garanterar att alla routrar fattar beslut, för att avgöra routing, baserat på samma information.
3. Uppbyggande av Link-State databas
När OSPF-routrar har mottagit och spridit Link-State Advertisements (LSAs), sammanställer de all information i en Link-State Database (LSDB). LSDB fungerar som en topologitabell och innehåller en fullständig representation av nätverket inom samma OSPF-area.
Varje router i en area har en identisk LSDB, vilket säkerställer att alla routrar har en enhetlig och uppdaterad bild av nätverkets struktur. LSDB uppdateras dynamiskt när förändringar sker i nätverket, vilket möjliggör snabb och effektiv omdirigering av nätverkstrafik vid exempelvis länkfel eller topologiförändringar.
Denna databas är grunden för SPF-algoritmens beräkningar, vilket innebär att noggrannhet och synkronisering mellan routrar är avgörande för att upprätthålla en stabil och optimerad routing-miljö.
4. Exekvering av SPF-algoritmen
När Link-State Database (LSDB) är uppdaterad och synkroniserad mellan alla routrar, kör varje OSPF-router Shortest Path First (SPF)-algoritmen, baserad på Dijkstra’s algoritm.
SPF-algoritmen skapar ett SPF-träd, där routern ser sig själv som roten och beräknar de kortaste vägarna till varje destination i nätverket. Detta görs genom att analysera länkkostnader och nätverkets topologi för att hitta den mest effektiva vägen för datatrafik.
SPF-trädet fungerar som en karta över nätverket och används för att bestämma de optimala rutterna. När beräkningen är klar placeras de bästa vägarna i Forwarding Database, som används för att skapa den slutliga routing-tabellen. Detta säkerställer att trafiken alltid dirigeras genom de mest effektiva vägarna i nätverket.
5. Välj den bästa rutten
När SPF-algoritmen har byggt SPF-trädet, identifieras de bästa vägarna till varje destination baserat på den lägsta ackumulerade kostnaden. Dessa vägar väljs och läggs till i IP-routingtabellen, som används för att fatta beslut om hur datapaket ska dirigeras genom nätverket.
Innan en OSPF-rutt inkluderas i routingtabellen jämförs den med andra rutter till samma destination. Om en annan rutt med lägre administrativ distans (t.ex. en statisk rutt eller en BGP-rutt) redan finns i tabellen, används den istället. Endast de mest pålitliga och optimala vägarna väljs, vilket säkerställer effektiv och stabil trafikdirigering.
När routing-tabellen är uppdaterad börjar routern använda den för att styra datapaket genom nätverket, vilket slutför OSPF:s link-state-operation.