OSPF er en link state routnings protokol.
OSPF er en åben standard der kan bruges på mange forskellige enheder og ikke nødvendigvis på cisco udstyr. (i modsætning til EIGRP, som er cisco proprietary)
OSPF er en klasseløs routningsprotokol der understøtter VLSM, CIDR, manuel routnings opsummering, cost load balancing.
Routere der er sat op til OSPF, skal først etablere naboforbindelser, før de udveksler sine routes med de andre routere. Da OSPF er en link state routing protokol, udveksler naboer ikke deres routnings tabeller men i stedet udveksler de information om netværkstopologien.
Hver router kører derefter en SFP algoritme for at udregne den bedste route og tilføjer dem til sin routnings tabel.
Da hver router kender hele netværkstopologien er chancen er et loop minimalt.
Alle OSPF routere gemmer OSPF oplysninger i 3 tabeller:
- Nabotabellen (gemmer informationen om dens OSPF naboer)
- Topologitabellen (gemmer topologi strukturen fra netværket)
- Rutetabellen (gemmer de bedste routes på netværket)
OSPF naboer
Som nævnt ovenfor så skal routere opsat med OSPF etablere et forhold til dens naboer, før den udveksler routing oplysninger.
OSPF naboer opdages dynamisk ved at sende HELLO pakker ud af hvert OSPF aktiveret interface på en router. (HELLO pakker sendes via multicast IP adressen 224.0.0.5)
Jeg har prøvet at stille det op i billeder nedenfor, for at forklare udvekslingen af OSPF oplysninger.
Router1 og Router2 er direkte forbundet. Efter OSPF er aktiveret vil begge routere sende HELLO beskeder til hinanden for at skabe en nabo relation.
Du kan tjekke om din router er forbundet til en nabo ved at bruge kommandoen:
show ip ospf neighbors
I eksemplet ovenfor kan du se Router 2 med nabo ID 192.168.0.2 er nabo med Router 1.
Det er vigtigt at når du opretter OSPF på dit netværk, at de Routere du vil have til at blive naboer skal have følgende til fælles:
- subnet
- ospf area ID
- hello interval tider
- authentication
- area stub flag
- MTU
Som standard sender OSPF HELLO pakker ud hvert 10 sekund (hello interval), derudover er der noget ved navn DEAD timer, der altid er 4 x hello interval, så som standard er DEAD timer 40 sekunder.
Hvis ikke routeren har fået en HELLO besked de sidste 40 sekunder, erklærer routeren naboen for død og finder så en bedre route.
OSPF nabo tilstande:
Før der oprettes en nabo relation, skal en OSPF router igennem flere forskellige tilstande, der er forklaret nedenfor:
- INIT state – en router modtager en HELLO besked fra en anden router
- 2-way state – naboen har modtaget en HELLO besked og har svaret med en HELLO besked
- Exstart state – begyndelsen på LSDB exchange imellem begge routere. Routere begynder at udveksle link state information.
- Exchange state – DBD (database descriptor) pakker er udvekslet. DBD pakker indeholder LSA headers. Routeren vil bruge denne information til at se hvilke LSAs der skal udveksles.
- Loading state – En nabo sender LSRs (link state requests) for hvert netværk routeren ikke kender til. Den anden router besvarer anmodningen med en link state update, der indeholder information om det anmodede netværk.
- Full state – Begge routere har synkroniseret deres databaser og er fuldt forbundet.