Denna handledning förklarar OSPF Metric Calculation Formula och SPF-algoritmen steg för steg i detalj med exempel. Lär dig hur SPF-algoritmen (Shortest Path First) beräknar den kumulativa kostnaden för rutten för att bygga upp Shortest Path Tree (SPT) och hur OSPF Metric Formula kan manipuleras genom att ändra referensvärdet för bandbredd.
Shortest Path First (SPF) Algorithm
Som vi vet vid initialisering eller på grund av någon förändring i routningsinformation genererar en OSPF-router en LSA. Denna LSA (Link State Advertisement) innehåller en samling av alla länktillstånd på den routern. Routern sprider denna LSA i nätverket. Varje router som tar emot denna LSA lagrar en kopia av den i sin LSA-databas och skickar sedan denna LSA till andra routrar.
När databasen är uppdaterad väljer routern en enda bästa rutt för varje destination bland alla tillgängliga rutter. Routern använder SPF-algoritmen för att välja den bästa rutten.
Som andra routningsalgoritmer använder SPF också en metrisk komponent som kallas kostnad för att välja den bästa rutten för routningstabellen.
Denna handledning är den sista delen av vår artikel ”OSPF Routing Protocol Explained with examples”. Du kan läsa andra delar av artikeln här.
OSPF Fundamental Terminology Explained
Denna handledning är den första delen av den här artikeln. I den här delen förklarar vi grundläggande terminologi för OSPF som Feature , Advantage and Disadvantage, Autonomous System, Area concept, ABR, IR, Link, State , LSA och LSDB med exempel.
OSPF Neighborship Condition and Requirement
Denna handledning är den andra delen av den här artikeln. OSPF-grannskap byggs mellan två routrar endast om konfigurationsvärdet för Area ID, Authentication, Hello and Dead interval, Stub Area och MTU matchar varandra. Denna del förklarar dessa parametrar och OSPF adjacency i detalj med exempel.
OSPF Neighbor States Explained with Example
Denna handledning är den tredje delen av denna artikel. OSPF adjacency-processen går igenom de sju tillstånden; OSPF State down, OSPF State Init, OSPF State two ways, OSPF State Exstart, OSPF State Exchange, OSPF State Loading och OSPF State full. Den här delen förklarar dessa tillstånd med DR BDR-urvalsprocessen i detalj med exempel.
OSPF Configuration Step by Step Guide
Denna handledning är den fjärde delen av den här artikeln. Konfigurationsdelen av OSPF omfattar process-ID, områdes-ID och wildcard-mask, vilket gör konfigurationen av OSPF lite svårare. Den här delen förklarar dessa parametrar i detalj med exempel.
OSPF Metric cost
Logiskt sett kommer ett paket att möta mer overhead när det korsar en 56Kbps seriell länk än när det korsar en 100Mbps Ethernet-länk. Det kommer att ta mindre tid att korsa en länk med högre bandbredd än en länk med lägre bandbredd. OSPF använder denna logik för att beräkna kostnaden. Kostnaden är omvänt proportionell mot bandbredden. Högre bandbredd har en lägre kostnad. Lägre bandbredd har en högre kostnad.
OSPF använder följande formel för att beräkna kostnaden
Kostnad = Referensbandbredd / Gränssnittsbandbredd i bps.
Referensbandbredd definierades som ett godtyckligt värde i OSPF-dokumentationen (RFC 2338). Leverantörerna måste använda sin egen referensbandbredd. Cisco använder 100 Mbps (108) bandbredd som referensbandbredd. Med denna bandbredd skulle vår ekvation vara
Kostnad = 108/gränssnittsbandbredd i bps
Nyckelpunkter
- Kostnad är ett positivt heltalsvärde.
- Varje decimalvärde avrundas tillbaka till närmaste positiva heltal.
- Varje värde under 1 betraktas som 1.
Nu när vi känner till ekvationen kan vi räkna lite och räkna ut standardkostnaden för några viktiga gränssnitt.
Standardkostnad för viktiga gränssnitt.
Interfacetyp | bandbredd | Metrisk beräkning | Kostnad |
Ethernetlänk | 10Mbps | 100000000/10000000 = 10 | 10 |
FastEthernet Link | 100Mbps | 100000000/100000000 = 1 | 1 |
Serial Link | 1544Kbps(standard) | 100000000/1544000 = 64.76 | 64 |
Kostnad för gemensamma linjer
Linje | Bandbredd | Metrisk beräkning | Kostnad |
56 Kbps linje | 56Kbps | 100000000/56000 = 1785.71 | 1785 |
64 Kbps line | 64Kbps | 100000000/64000 = 1562.5 | 1562 |
128 Kbps line | 128Kbps | 100000000/128000 = 781.25 | 781 |
512 Kbps linje | 512 Kbps | 100000000/512000 = 195.31 | 195 |
1 Mbps-linje | 1Mbps | 100000000/1000000 = 100 | 100 |
10 Mbps-linje | 10Mbps | 100000000/10000000 = 10 | 10 |
100 Mbps line | 100Mbps | 100000000/100000000 = 1 | 1 |
1 Gbps line | 1Gbps | 100000000/100000000 0= 0.1 | 1 |
10 Gbps-linje | 10Gbps | 100000000/100000000000000 = 0,01 | 1 |
SPT (Shortest Path Tree)
OSPF-routern bygger upp ett Shortest Path Tree. SPT är precis som ett släktträd där routern är roten och destinationsnätverken är bladen. SPF-algoritmen beräknar grenkostnaden mellan bladen och roten. Den gren som har den lägsta kostnaden används för att nå bladet. På fackspråk kan man säga att den väg som har det lägsta kumulativa kostnadsvärdet mellan källan och destinationen kommer att väljas ut i routningstabellen.
Kumulativ kostnad = Summan av alla utgående gränssnitts kostnader i rutten
Bästa rutten för routningstabellen = Rutten som har den lägsta kumulativa kostnaden
Sammanfattning
- OSPF använder SPT-trädet för att beräkna den bästa rutten för routningstabellen.
- Ett SPT-träd kan inte växa utanför området. Så om en router har gränssnitt i flera områden måste den bygga ett separat träd för varje område.
- SPF-algoritmen beräknar alla möjliga vägar från källroutern till destinationsnätverket.
- Den kumulativa kostnaden är summan av alla kostnader för de utgående OSPF-gränssnitten i sökvägen.
- Vid beräkningen av den kumulativa kostnaden beaktar OSPF endast utgående gränssnitt i sökvägen. Den lägger inte till kostnaden för inkommande gränssnitt i den kumulativa kostnaden.
- Om det finns flera rutter jämför SPF de kumulativa kostnaderna. Den väg som har den lägsta kumulativa kostnaden väljs i routningstabellen.
Nu har vi en grundläggande förståelse för SPF-algoritmen. I den återstående delen av denna handledning kommer vi att lära oss hur SPF-algoritmen väljer den bästa rutten från de tillgängliga rutterna.
Skapa ett övningslaboratorium som illustreras i följande figur eller ladda ner detta förskapade övningslaboratorium och ladda in det i Practice Tracer.
Hämta OSPF-övningstopologi med OSPF-konfiguration
Access CLI-prompten för Router0.
Kör kommandot show ip route ospf från privilegierat läge för att visa alla inlärda rutter via OSPF-protokollet.
Som utdata visar har Router0 sex rutter från OSPF i routningstabellen. Vi kommer att gå igenom varje rutt och ta reda på varför den valdes som den bästa rutten för routningstabellen av OSPF.
Rutt 20.0.0.0.0
Vi har tre rutter för att få nätverket 20.0.0.0.0/8. Låt oss beräkna den kumulativa kostnaden för varje väg.
Via Route R0-R1-R2-R6
Via route R0 – R3 – R4 – R6
Via route R0 – R5 – R6
Router | Exit Interface | Bandbredd | Metrisk beräkning | Kostnad |
R0 | Fa0/1 | 100Mbps | 100000000/100000000 = 1 | 1 |
R5 | Fa0/0 | 100Mbps | 100000000/100000000 = 1 | 1 |
R0 | Fa0/1 | 100Mbps | 100000000/100000000 = 1 | 1 |
Kumulativ kostnad för rutten (1+ 1 + 1) =3 |
Av dessa rutter, har rutten R0-R5-R6 den lägsta kumulativa kostnaden. Därför valdes den som den bästa rutten för routningstabellen.
Rutt 192.168.0.4
Via Route R0 – R1
R0:s Serial 0/0/0/0-kostnad (1562) + R1:s Serial 0/0/1-kostnad (1562) = 3124 (kumulativ kostnad)
Via Route R0 – R3 – R4 – R6 – R2
Via Route R0 – R5 – R6 – R2
Av dessa rutter, Rutten R0 – R5 – R6 – R2 har den lägsta kostnaden och valdes därför ut i routningstabellen.
Rutt 192.168.0.8
Via rutt R0 – R1
R0:s Serial 0/0/0/0-kostnad (1562) + R1:s Serial 0/0/1-kostnad (1562) + R2:s Serial 0/0/0 (1562) = 4686 (kumulativ kostnad)
Via rutt R0 – R3 – R4 – R6
R0:s Serial 0/0/1-kostnad (64) + R3:s Serial 0/0/0/0-kostnad (64) + R4:s Serial 0/0/1-kostnad (64) + R6:s Serial 0/0/0-kostnad (64) = 256 (kumulativ kostnad)
Via Route R0 – R5 – R6
Ros FastEthernet 0/1-kostnad (1) + R5:s FastEthernet 0/0-kostnad (1) + R6:s Serial 0/0/0-kostnad (64) = 66 (kumulativ kostnad)
Av dessa rutter, Rutten R0 – R5 – R6 har den lägsta kostnaden och valdes därför ut i routningstabellen.
Rutt 192.168.1.4
Via Route R0 – R1 – R2 – R6
R0:s Seriell 0/0/0/0-kostnad (1562) + R1:s Seriell 0/0/1 (1562) + R2:s Seriell 0/0/0 (1562) + R6:s FastEthernet 0/0 (1) = 4687 (kumulativ kostnad)
Via R0 – R3 – R4 – R6
R0:s Serial 0/0/1 kostnad (64) + R3:s Serial 0/0/0/0 kostnad (64) + R4:s Serial 0/0/1 kostnad (64) + R6:s FastEthernet 0/0 (1) = 193
Via R0 – R5
R0:s FastEthernet 0/1 kostnad (1) + R5:s FastEthernet 0/0 kostnad (1) = 2
Av dessa rutter, Rutten R0 – R5 har den lägsta kostnaden och valdes därför som den bästa rutten.
Rutt 192.168.2.4
Via Route R0 – R1 – R2 – R6 – R4
Via Route R0 – R5 – R6 – R4
R0:s FastEthernet 0/1 kostnad (1) + R5:s FastEthernet 0/0 kostnad (1) + R6:s Serial 0/0/1 (64) + R4:s Serial 0/0/0/0 kostnad (64) = 130
Via rutt R0 – R3
R0:s Serial 0/0/1 kostnad (64) + R3:s Serial 0/0/0/0 kostnad (64) = 128
Av dessa rutter, Rutten R0 – R3 har den lägsta kostnaden för destination 192.168.2.4.
Rutt 192.168.2.8
Via rutt R0 – R3 – R4
R0:s Seriell 0/0/1-kostnad (64) + R3:s Seriell 0/0/0-kostnad (64) + R4:s Seriell 0/0/1-kostnad (64) = 192
Via rutt R0 – R1 – R2 – R6
Ros Seriell 0/0/0-kostnad (1562) + Rils Seriell 0/0/1-kostnad (1562) + R2:s Serial 0/0/0/0-kostnad (1562) + R6:s Serial 0/0/1-kostnad (64) = 4750
Via Route R0 – R5 – R6
R0:s FastEthernet 0/1-kostnad (1) + R5:s FastEthernet 0/0-kostnad (1) + R6:s Serial 0/0/1-kostnad (64) = 66
Rute R0 – R5 – R6 har det lägsta kostnadsvärdet.
Efter att ha valt den bästa rutten för varje destination ser OSPF-nätverket ut som följande figur.
OSPF Route cost Manipulation
Vi kan manipulera OSPF:s ruttkostnad på två sätt.
- För att ändra gränssnittets bandbredd
- För att ändra referensvärdet för bandbredd
För att ändra gränssnittets bandbredd
Sub interface mode command Bandwidth används för att ställa in bandbredden för gränssnittet som stöds.
Om bandbredd ställs in med det här kommandot kommer OSPF att använda det. Om bandbredd inte är inställd används gränssnittets standardbandbredd.
När vi aktiverar ett gränssnitt tilldelar routern automatiskt ett bandbreddsvärde till det baserat på dess typ. Seriellt gränssnitt har till exempel ett standardvärde för bandbredd på 1544k. Tills vi ändrar detta värde med kommandot bandwidth kommer det att användas där det behövs.
Låt mig klargöra en sak till om bandbredd. Att ändra standardbandbredden med kommandot bandwidth ändrar inte gränssnittets faktiska bandbredd. Varken standardbandbredd eller bandbredd som ställs in med bandbreddskommandot har något att göra med den faktiska bandbredden för en länk i lager ett.
Vilket syfte löser det här kommandot då?
Det här kommandot används endast för att påverka routningsprotokollet som använder bandbredd i ruttvalsprocessen, t.ex. OSPF och EIGRP.
Vi har redan sett ett exempel på den här metoden i vårt exempel. Vi ändrade standardbandbredden (1544 Kbps) till anpassad bandbredd (64 kbps) på R0:s seriella 0/0/0, R1:s seriella 0/0/1 och R2:s seriella 0/0/0. På grund av denna ändring tog R0 en annan router för nätverket 192.168.0.4.
Låt oss förstå detta mer i detalj.
Aktuell kostnad för destination 192.168.0.4 från R0
Via Route R0 – R1
R0:s Serial 0/0/0/0-kostnad (1562) + R1:s Serial 0/0/1-kostnad (1562) = 3124 (kumulativ kostnad)
Via Route R0 – R5 – R6 – R2
Via Route R0 – R3 – R4 – R6 – R2
Av dessa rutter, Rutten R0 – R5 – R6 – R2 har den lägsta kostnaden och valdes därför ut i routningstabellen.
Okej … Vilken rutt skulle ha valts om vi hade använt standardbandbredd?
Kostnad för destination 192.168.0.4 från R0 med standardbandbredd.
Via Route R0 – R1
R0:s Serial 0/0/0/0-kostnad (64) + R1:s Serial 0/0/1-kostnad (64) = 128 (kumulativ kostnad)
Via Route R0 – R5 – R6 – R2
Via Route R0 – R3 – R4 – R6 – R2
Av dessa rutter, Rutten R0 – R1 har det lägsta kostnadsvärdet och väljs därför i routningstabellen. Genom att ändra gränssnittets bandbredd har vi alltså faktiskt påverkat processen för val av rutt.
Förändra värdet för referensbandbredd
Som jag nämnde tidigare använder OSPF som standard 100Mbps bandbredd som referensbandbredd. Om du ändrar det här värdet ändras även kostnaden för rutten. Om vi använder 1000 Mbps som referensbandbredd skulle kostnaden för en 100 Mbps-länk bli 10. Detta låter bra, särskilt om vi har länkar med högre bandbredd i vårt nätverk. Titta till exempel på följande figur.
Vilken rutt tar R2 för att nå nätverket 10.0.0.0.0/8?
Rutt R2 – R3
I den här rutten har vi två utgångspunkter. Båda punkterna har en standardhastighet på 1oo Mbps.
R2:s FastEthernet-kostnad (100000000/100000000) = 1
R3:s FastEthernet-kostnad (100000000/100000000) = 1
Kostnad för den här rutten 1 + 1 = 2
Rutt R2 – R1 – R3
I den här rutten har vi tre utgångspunkter. Två utgångspunkter (R2 och R1) har en 1 Gbps-länk.
R2:s FastEthernet-kostnad (100000000/1000000000) = .1 (Allt under 1 betraktas som 1)
R3:s FastEthernet-kostnad (100000000/1000000000) = .1 (Allt under 1 betraktas som 1)
R3:s FastEthernet-kostnad (100000000/100000000) = 1
Kostnad för den här rutten 1 + 1 + 1 = 3
Med standardreferensbandbredd kommer R2 att välja Route R2 – R3, vilket inte är bra.
Vi kan justera referensbandbredden med kommandot auto-cost reference-bandwidth ref-band.
Vi måste justera referensbandbredden på alla routrar i nätverket. Felanpassad referensbandbredd kan leda till att routrarna kör SPF-algoritmen kontinuerligt, vilket kan skapa ett allvarligt prestandaproblem.
Referensbandbredd tilldelas i Mbps. Giltigt intervall är 1 till 4294967. Standardreferensbandbredd är 100 Mbps.
Syndigt nog innehåller inte packet tracer det här kommandot. För att öva på det här kommandot, använd andra simuleringsmjukvaror som stöder det här kommandot eller använd en riktig router.
Låt oss ändra referensbandbredden till 1000Mbps på alla tre routrar med följande kommandon
Router# configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router (config)#router ospf 1Router (config-router)#auto-cost reference-bandwidth 1000% OSPF: Reference bandwidth is changed. Please ensure reference bandwidth is consistent across all routers.Router (config-router)#exitRouter #
Ruttkostnad med ny referens. bandwidth
{module in_art_slot_10}
Route R2 – R3
R2’s FastEthernet cost (1000000000/100000000) = 10
R3’s FastEthernet cost (1000000000/100000000) = 10
Kostnad för denna rutt 10 + 10 = 20
Rutt R2 – R1 – R3
R2:s FastEthernet-kostnad (1000000000/1000000000) = 1
R3:s FastEthernet (1000000000/1000000000) = 1
R3:s FastEthernet-kostnad (1000000000/100000000) = 10
Kostnad för denna rutt 1 + 1 + 10 = 12
I detta fall rutt R2-R1-R3 kommer att väljas, vilket är den kortaste vägen till destinationen.
Det var allt för den här artikeln. Jag hoppas att du nu har bättre förståelse för OSPF Routing protocol. I nästa artikel kommer jag att förklara Access List i detalj med exempel.