OSPF

Opprinnelse

OSPF er en routingprotokoll utviklet av Interior Gateway Protocol (IGP) gruppen av Internet Engineering Task Force(IETF). Gruppen ble formet i 1988 for å designe en IGP basert på Shortest Path First (SPF) algoritmen.
Protokollen stammer fra forskning fra blant annet Richard Bolt, Leo Beranek og Robert Newman sin SPF algoritme utviklet i 1978 for ARPANET, deres senere arbeid med Area Routing i 1986, Radia Perlman sin forskning på feil-tolerant broadcasting av rutinginformasjon i 1988 og en tidlig versjon av Intermediate System-to-Intermediate System (IS-IS) rutingprotokollen.
Den er en åpen standard som hvem som helst kan implementere uten lisenskostnader. Dette har gjort at mange leverandører av nettverksutstyr støtter protokollen. Som en følge av dette har OSPF blitt populær som en erstatning for proprietære rutingprotokoller.

Virkemåte

OSPF er en Link-state Rutingprotokoll i motsetning til den eldre Router Information Protocol som baserer seg på Distance Vector Routing. Ideen med Link State Ruting at alle rutere på nettverket samler informasjon om de andre ruterene og lager seg en database som beskriver nettverkstopologien. Denne databasen er lik på alle rutere og ut fra denne kalkuleres den korteste veien til alle destinasjoner på nettverket, resultatene legges i rutingtabellen.
Det første en OSPF ruter må gjøre er å finne og opprette relasjoner til sine naborutere. Dette gjøres ved hjelp av ”Hello” pakker. Disse danner relasjoner og opprettholder de ved å fortsette å sende ”Hello” til naboen. Med Hello Interval defineres antall sekunder mellom hver gang en ruter sender ”Hello” pakker. Router Dead Interval definerer hvor lang tid ruteren skal vente på å få svar før naboen deklareres død.
Når relasjonene er opprettet er OSPF ruterene klare for å utveksle databaseinformasjon. Dette gjøres med noe som kalles Link State Advertisements(LSA). Rutere utveksler LSA med hverandre og bygger opp hver Link State Databases(LSDB). Det er viktig at LSDBene på alle rutere er like slik at det ikke oppstår rutingloops, LSDBene må derfor synkroniseres jevnlig.
En utfordring oppstår når LSDBene skal synkroniseres, hvordan forteller man naboen om alle sine LSA uten å sende over hele databasen? For å overkomme dette problemet bruker OSPF Database Description og Link State Request meldinger. Istedenfor å sende hele innholdet sendes en Database Description som inneholder en liste over tilgjengelige oppføringer uten å inkludere data fra oppføringene. Ruteren som mottar denne leter i sin egen database og sender en Link State Request over oppføringer den mangler.
OSPF rutere i nettverket har funnet hverandre, naborelasjoner har blitt dannet, LSA har blitt utvekslet og LSDB er synkronisert. Rutere bruker informasjonen i sin LSDB sammen med Dijkstras algoritme for å regne ut den korteste veien til alle nettverk i tilhørende Area og plasserer oppføringene i rutingtabellen sin.

Designated Router Types

Hvis alle routere I ett broadcast nettverk utveksler ruter med hverandre kan dette bidra til mye trafikk og begrense båndbredden spesielt på trege linker. For å redusere trafikk velger alle broadcast nettverk en Designert Ruter(DR). En DR lytter til LSAer på All Designated Routers multicast-adresse 224.0.0.6. Dette er for å forhindre at andre routere tar imot og bruker ressurser på å prossessere meldinger som ikke er adressert til dem. Den sender ut nettverks LSA til andre rutere på 224.0.0.5 dette forsikrer alle at alle rutere har den samme Link State Databasen. Backup Designated Router (BDR) lytter også på LSA på multicast-adressen 224.0.0.6. BDR sikrer kjapp failover hvis den designerte ruteren skulle bli utilgjengelig.
Andre OSPF rutere sender LSA til DR og BDR med multicast-adressen 224.0.0.6 og lytter til nettverks LSAer på 224.0.0.5. Point-to-point og point-to-multipoint nettverk velger ikke DR og BDR.