OSPF statusar

I denna avsnitt studeras OSPF-processen bestående av flera läge eller statusar. OSPF-routrar startar och vill omgående hitta andra OSPF-routrar  för att bygga upp ett OSPF grannskap. Statusarna är kända på engelska som OSPF states och de är sju:

  1. Down state
  2. Attempt/Init state
  3. Two ways state
  4. Exstart state
  5. Exchange state
  6. Loading state
  7. Full state

Låt oss studera dessa statusar med ett enkelt exempel. Antag att ett nätverk har två OSPF-routrar. Routrarna är anslutna till varandra via en seriell länk. Vid start har routrarna inte någon information om varandra, faktum är att de inte ens har en egen identifikation. Routrar måste ha en Router ID för att få kommunicera med varandra. RID är en 32 bitar numerisk identifikation och därför går det bra att använda IP-adressers format. Observera att endast formatet i adressen uppfattas som Router ID, inte innebörden.

1. Down state

En OSPF router som är i down state gör följande:

  • Söker efter en Router ID (RID). Därefter initierar routern OSPF-processen
  • Kör en OSPF instans på det aktiva lokala interfacet som är OSPF konfigurerat
  • I ett Hello-paket inkluderar router nödvändig information för att etablera grannskap med andra OSPF-routrar
Bild 1: Down State

En OSPF-router som söker efter sin RID i Down state har tre alternativ:

1.- Manuellt konfiguration är det första alternativet för en OSPF-router som söker efter sitt RID. Till exempel kan vi använda ett enkelt och sekventiellt IP-schema som:

  • Router R1 identifieras med 1.1.1.1
  • Router R2 identifieras med 2.2.2.2
  • Router R3 identifieras med 3.3.3.3
  • Router R4 identifieras med 4.4.4.4 och så vidare.

RID kan konfigureras så här:

  • Router(config-router)# router-id ip_address

När en OSPF-router hittar sin RID slutar att söka efter det.

2.- Loopback interface IP-konfiguration – Om ett loopback-interface är konfigurerat väljer OSPF dess IP-adress som RID. Om flera loopback-gränssnitt är igång kommer den högsta IP-adressen att väljas från alla loopback-interface. Om inte något loopback-interfacet är konfigurerat söker OSPF på nästa alternativ.

3.- Aktivt interface IP-konfiguration – När inte RID har konfigurerats manuellt och när det inte används något loopback interface är den högsta IP-adressen från alla routers aktiva IP-interface den sista alternativet för en router att få sin RID.

Att tänka på när RID ska bestämmas

  • Som default väljer OSPF-Router RID när routern startas. När routern väljer sin RID kommer den att användas till nästa omstart.
  • Vi har två alternativ sätt att implementera nya RID, antingen genom att omstarta routern eller rensa OPSF-processen med clear ip ospf process kommandot.
  • Om OSPF inte kan välja RID, stoppas OSPF-processen.

2. Attempt/Init state

Nu när routrarna har fått sina RID och skapat ett Hello-paket med information för uppbyggande av ett OSPF grannskap övergår routrarna till nästa status där:

  • R1 skickar ett Hello-paket med RID och viktiga konfigurationsvärden genom alla OSPF-aktiva interface. Hello-paketet skickas till multicast-adressen 224.0.0.5
  • R2 tar emot Hello-paketet och läser av RID numret och därefter söker R2 efter R1 identifikation i tabellen där finns en lista på alla godkända grannar.
  • Om R1 identifikation hittas finns ingen anledning att starta en process för att bygga upp ett grannskap. Istället återställs livslängden (dead interval) för den posten.
  • Om R1 identifikation inte hittas i tabellen startar router R2 byggnadsprocessen för ett nytt grannskap.
  • I den nya byggnadsprocessen kontrolleras om alla nödvändiga konfigurations värden matchar mellan R1 och R2. Därefter inkluderar R2 till R1 i sin tabell för godkända OSPF-grannar (neighbor table).
  • R2 skickar tillbaka ett Hello-paket till R1. I paketet inkluderas RID för router R2 och andra OSPF-värden samt en fullständig lista på egna grannar.
Bild 2: Init State

3. Two ways state

Observera att routern R1 har skickat ett Hello-paket till R2 utan att ha någon specifik information om R2. Router R2 tog emot Hello-paketet från R1 eftersom paketet skickades till multicast adressen 224.0.0.5 och därefter skickat tillbaka till R1 ett annat Hello-paket.

Bild 3: Two-Way State
  • R1 läser av RID inkluderat i svaret som också är ett Hello-paket.
  • Söker efter en matchning i sin grannskaps tabell
  • Om en matchning för RID hittas i grannskaps tabellen återställs livslängden för posten.
  • Om en match inte hittas i grannskaps tabellen läser R1 av alla konfigurations värden i Hello-paketet och jämför med egna värden. Om värden matchar inkluderar R1 den nya grannens RID i tabellen.
  • Om Hello-paketet från R2 innehåller egen RID för R1 betraktar R1 som en begär att bli grannar. Detta kallas två steg status.
  • R1 svarar till R2 med ett Hello-paket som inkluderar R1 grannskaps tabell. Detta paket är en bekräftelse på att börja byta routing-information med varandra.

Processerna som beskrivs ovan kan vara annorlunda beroende på nätverkstypen:

  • Nätverk som behöver DR och BDR routrar som använder broadcast och icke broadcast kommunikationssätt.
  • Nätverk som inte behöver DR och BDR routrar som punkt-till-punkt och punkt-till-multipunkt.

4. Exstart state

Routrar som bestämde sig för att bygga adjacency kommer att bilda en master-slav relation. I varje adjacency blir master den router som har högst RID och den andra slav. Blanda inte Master-Slav relation med DR-BDR-DROTHER relation. Båda termerna liknar varandra men har olika betydelse. DR-BDR-DROTHER relation är byggt i ett segment och har en större betydelse än den master-slav relationen som är uppbyggd mellan två interface vid utbyte av routing-information. Master-slav relation mellan två interface har begränsat syfte.

Bild 4: Exstart State

När routrarna har byggt upp master-slav relationen kommer de att fastställa det initiala sekvensnumret som kommer att användas vid utbyte av routing-information. Sekvensnummer säkerställer att routrarna får mest noggrann information.

5. Exchange state

I utbytes läge bestämmer master och slav hur mycket information som behöver bytas ut. En router som har mer än ett interface kan lära sig samma nätverksinformation från olika källor. En OSFP-router är smart nog att filtrera uppdateringarna innan de tas emot. Det kommer att accepteras endast de uppdateringar som routrarna inte har. I det här läget filtrerar routrarna de uppdateringar som behöver bytas ut.

Bild 5: Exchange State

Några viktiga begrepp

  • LSA – Link State Advertisement är ett datapaket som innehåller länk-status och routing-information. OSPF använder den för att distribuera och lära sig nätverksinformation.
  • LSDB – Link State Database är samling av alla mottagna LSA. Varje LSA har ett sekvensnummer med vilket lagras i LSDB.
  • DBDS – Database Description packets, även känd som DDP, innehåller listan över LSA. Denna lista innehåller länk-status typ, kostnad för länk, ID för advertisement router och sekvensnummer för länken. Se till att du förstår denna term korrekt. Det är bara en lista över alla LSAs från respektive databas. Det innehåller inte fullständiga LSA.
    I Exchange state utbyter routrar DBD. Via DBD kan routrar lära sig vilka LSAs de redan har.
  • LSR – Link State Request är en lista på vilka LSA som inte har lagrats i databasen, därmed en lista på LSA som önskas ta emot.

6. Loading State

I detta läge utväxlas den faktiska routing-informationen. Routrar byter LSA från LSR-listan. Routrar kommer att använda LSU (Link State Update) för att utbyta LSA. Varje LSA innehåller routing-information om en viss länk. Routrar upprätthåller också en lista för att se till att varje skickad LSA är bekräftad (acknowledged).

Bild 6: Loading State

7. Full State

Fullständigt status indikerar att båda routrarna har utbyt alla LSA från LSR-listan. Nu har de samma LSDB. Intilliggande (adjacency) routrar förblir i detta status för livstid. Om någon förändring sker i nätverket kommer routrarna att gå igenom den här processen igen.