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 (ingen Hello-paket tas emot)
  2. Attempt/Init state (ett Hello-paket har tagits emot skickat av en intilliggande OSPF-router)
  3. Two ways state (routrar väljer en DR och en DBR)
  4. Exstart state (OSPF-routrar bestämmer vilken router startar att växla DBD paket)
  5. Exchange state (OSPF-routrar skickar varandra DBD paket)
  6. Loading state (route bearbetas med SPF-algoritmen)
  7. Full state (OSPF-routrar har konvergerat Link-state databaser)

Låt oss studera dessa statusar med ett enkelt exempel. Antag att ett nätverk har två OSPF-routrar. Routrarna är anslutna till varandra. 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 sin Router ID (RID). Därefter initierar routern en OSPF-process
  • 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 för att få sin RID:

1.- Manuellt konfiguration är det första alternativet för en OSPF-router som söker efter sin RID. Till exempel kan vi använda som root ID 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 från R1 och läser av RID numret. R2 har för intention att kontrollera om RID numret finns redan i sin lista av godkända OSPF-routrar (neighbor list).
  • Om R1 identifikation hittas i listan 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. Om värdena matchar inkluderar R2 till R1 i sin tabell för godkända OSPF-grannar (neighbor table).
  • Slutligen skickar R2 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 routing-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 tar emot Hello-paketet från R2. R1 läser av RID numret inkluderat i svaret samtidigt söker efter sin egen RID i Hello-paketet.
  • R1 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. R2 Hello-paket tolkas som en begär att bli grannar (två steg status).
    • 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.
  • 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 vara med i OSPF-grannskapet kommer att bilda en master-slav relation. I varje OSPF-grannskap (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 sekvensnummer som kommer att användas vid utbyte av routing-information. Sekvensnumret 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 när ändringar sker annars varje 30 minut. 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.