Az OSPF az Open Shortest Path First rövidítése. Magyarul legrövidebb út először. Az OSPF egy kapcsolatállapot alapú forgalomirányító protokoll. A távolságalapú RIP leváltására alkották meg. A RIP kicsi ugrásszám korlátja, és az útvonalak különböző sebessége nem teszi ideális útválasztó protokollá. A RIP-el szemben a OSPF gyorsabb konvergenciát is lehetővé tesz.
Jellemzők:
Több információ az SPF algoritmusról:
Forgalomirányító protokollok osztályozása | |||||
---|---|---|---|---|---|
Belső | Külső | ||||
Távolság vektor alapú | Kapcsolat állapot alapú | Útvonal vektor alapú |
|||
IPv4 | RIPv2 | EIGRP | OSPFv2 | IS-IS | BGP4 |
IPv6 | RIPng | EIGRP for IPv6 | OSPFv3 | IS-IS for IPv6 | MP-BGP |
közvetlen kapcsolt | 0 |
statikus | 1 |
EIGRP összesített irányítás | 5 |
External BGP | 20 |
Internal EIGRP | 90 |
IGRP | 100 |
OSPF | 110 |
---|---|
IS-IS | 115 |
RIP | 120 |
External EIGRP | 170 |
Internal BGP | 200 |
A forgalomirányító elsőként hello üzenetet küldenek egymásnak, hogy meggyőzödjenek van-e szomszédjuk, aki szintén OSPF-et beszél. Ha igen, felveszik szomszédnak.
Ezek után kapcsolat állapotot hirdet, angolosan Link-State Advertisements, vagy röviden csak LSA. LSA csomagokkal szórja meg a hálózatot. A szomszédok is visszakülik hirdetéseiket, ezeket feldolgozza és elkezd topológiai táblát építeni.
Futtatja az SPF algoritmust, a legjobb útvonal kiszámításához, majd SPF fát építi.
Cél | Legrövidebb út | Költség |
---|---|---|
10.3.0.0/16 | R1 > R2 | 17 |
10.5.0.0/16 | R1 > R2 > R3 | 29 |
10.7.0.0/16 | R1 > R5 > R4 | 12 |
10.11.0.0/16 | R1 > R5 | 7 |
Multiarea OSPF:
Minden területnek a 0 gerinchez kell kapcsolódnia.
Ha topológia változik a változások következtében, minden forgalomirányító futtatja az SPF-algoritmust. Ez nagy számításigényű, de így csak területen belül lesz újraszámolva.
A területek között távolságvektor formájában terjed. Ha egy területen sok forgalomirányító van, akkor túl nagy LSDB-ék vannak.
Adatkapcsolati Ethernet keretfejléc.
A következő csoportos MAC címzés lehet:
Data Link Frame Header |
IP csomagfejléc.
A következő csoportos IP címzés lehet:
Data Link Frame Header | IP Packet Header |
IPv6 esetén:
ff02::5 a cím.
OSPF csomag
Tartalma:
Data Link Frame Header | IP Packet Header | OSPF Packet Header |
OSPF csomagtípustól függő adatok:
Data Link Frame Header | IP Packet Header | OSPF Packet Header | OSPF Packet Type Specified Database |
Az LSP kapcsolatállapotcsomag.
Az LSP üzenetek típusai:
Az OSPF a Hello csomaggal építi ki a szomszédsági viszonyait. Hello üzenetben közli, hogy milyen beállításai vannak, amelyek meg kell egyezzenek a szomszéddal. De ezzel történik a DR és az BDR kiválasztása is.
Amikor egy forgalomirányító kap egy Hello csomagot, megnézi a küldő azonosítóját. Ha még nem ismeri, akkor szomszédsági viszonyt alakít vele ki.
A forgalomirányítók a Hello Interval időintervallumban megadott időközönként küldenek Hello üzenetet. Az érték másodpercben megadott érték. Többes-hozzáférésű hálózatok esetén ez az érték 10 másodperc.
A szomszédok között ez az érték meg kell egyezzen, ez a szomszédsági viszony létrejöttének feltétele.
Többes hozzáférésű hálózat és pon-pont kapcsolat esetén a hello csomagok 10 másodpercenként indulnak. Olyan hálózatban, ahol nincs szórás a csomagok 30 másodpercenként indulnak, mint a Frame Relay-ben.
A Router Priority a forgalomirányítók prioritását szabályzó jellemző. Ezt a jellemzőt DR/BDR választás során használjuk. Az értéke 0 és 255 közötti érték lehet. Az alapértelmezés: 1. Minél magasabb a szám, annál valószínűbb, hogy DR lesz a forgalomirányító.
A Dead Inerval, magyarul halott intervallum. A szomszéd, ha ennyi ideig nem válaszol, hallottnak nyilvánítja a forgalomirányító. Alapértelmezés szerint ez a hello négyszerese (4x).
Szomszédok között azonosnak kell lenni, különben a szomszédság nem jön létre.
Többes-hozzáférésű hálózat és pont-pont kapcsolat esetén ez alapból: 40 másodperc.
NBMA hálózatok, pl. Frame Relay: 120 másodperc. Az NBMA a Non-Broadcast Multiple Access rövidítése.
A DR a Designated Router rövidítése. Kijelölt forgalomirányító. Gyűjtő elosztó pont.
A BDR a Backup Designated Router rövidítése. Tartalék forgalomirányító.
A List Of Neighbor a szomszédok listája, azok azonosítóját tartalmazza.
A DBD az LSDB rövidített változata. A DBD a Database Description rövidítése.
A hello üzenetek után a forgalomirányítók rövidített DBD-t küldenek a megismert szomszédhoz, hogy az összevethesse saját adatbázisával.
A szomszéd ha több információt szeretne ehhez a megküldött DBD-hez, akkor LSR üzenetet küld.
Egy LSU egy vagy több LSA-t tartalmazhat. Az OSPFv2 11 különböző LSA típust ad meg:
LSA típusok | |
---|---|
Típus | Leírás |
1 | Router LSA |
2 | hálózat LSA |
3,4 | összevonó LSA |
5 | külső autonóm system LSA |
6 | Multicast OSPF LSA |
7 | Definíció a Not-So-Stubby Areas számára |
8 | Külső tulajdonságok LSA, BGP számára |
9, 10, 11 | átlátszó LSA |
Down state | nem fogadunk Hello-t, de küldünk |
Init state | Hello csomag fogadása, Router ID küldése |
Two-Way state | Ethernet kapcsolaton DR és BDR választás Pont-pont kapcsolat esetén szinkronizálás |
ExStart state | A master/slave kapcsolatok és a DBD sorszám megbeszélése |
Exchange state | DBD csomag csere |
Loading state | LSR és LSU használata |
Full state | A forgalomirányító konvergált |
Ethernet kapcsolat esetén DR-t és BDR-t választunk, a többszörös szomszédsági viszony kialakulása ellen. Az LSA üzenetek is túl nagy számban jönnének létre.
A szomszédsági viszonyok alakulása | |
---|---|
router | szomszédság |
n | n(n-1)/2 |
5 | 10 |
10 | 45 |
20 | 190 |
30 | 435 |
40 | 780 |
50 | 1225 |
60 | 1770 |
70 | 2415 |
80 | 3160 |
90 | 4005 |
100 | 4950 |
A forgalomirányító számára meg kell határozni egy azonosítót. Angolosan RouterID. Az azonosító a következő módokon kerülhet meghatározásra:
Start ha (kézzel meg van adva) routerID meg van ellenben ha(van loopback interfész) routerID = lobbback interfész ellenben legnagyobb IPv4 címet használjuk ha vége Vége
R1(config)# router ospf 10 R1(config-router)# router-id 1.1.1.1
R1# show ip protocols ... Router ID 1.1.1.1
Ha már működik az OSPF, akkor szükség van az ID váltáshoz a következő parancsra:
R1# clear ip ospf process
Visszacsatoló interfésszel:
R1(config)# interface loopback 0 R1(config-if)# ip address 1.1.1.1 255.255.255.255 R1(config-if)# end
Angolosan Wildcard mask. Veszem a decimális számokat binárisan. Binárisan minden számot az ellentétes állapotba billentek, azaz invertálom a biteket. Így meg kapom a helyettesítő maszkot.
Példa | |
---|---|
maszk | 255.255.255.000 |
helyettesítő maszk | 000.000.000.255 |
/25 maszk | |
---|---|
maszk | 255.255.255.128 |
helyettesítő maszk | 000.000.000.127 |
/26 maszk | |
---|---|
maszk | 255.255.255.192 |
helyettesítő maszk | 000.000.000.063 |
/27 maszk | |
---|---|
maszk | 255.255.255.224 |
helyettesítő maszk | 000.000.000.031 |
/28 maszk | |
---|---|
maszk | 255.255.255.240 |
helyettesítő maszk | 000.000.000.015 |
/29 maszk | |
---|---|
maszk | 255.255.255.248 |
helyettesítő maszk | 000.000.000.07 |
/30 maszk | |
---|---|
maszk | 255.255.255.252 |
helyettesítő maszk | 000.000.000.003 |
R1(config)# router ospf 10 R1(config-router# network 10.1.0.0 0.0.255.255 area 0 R1(config-router# network 10.2.0.0 0.0.255.255 area 0 R1(config-router# network 10.8.0.0 0.0.255.255 area 0 R1(config-router#
Így is lehet:
R1(config)# router ospf 10 R1(config-router# network 10.1.0.0 0.0.0.0 area 0 R1(config-router# network 10.2.0.0 0.0.0.0 area 0 R1(config-router# network 10.8.0.0 0.0.0.0 area 0 R1(config-router#
Figyeljük meg a helyettesítő maszkot:
0.0.0.0
R1(config)# router ospf 10 R1(config-router# passive-interface GigabitEthernet 0/0 R1(config-router#
Ellenőrzés:
R1# show ip protocols … Passive Interface(s): GigabitEthernet0/0
Az OSPF a legjobb útvonal meghatározásához a költséget használja; a költséget veszi mértéknek.
Egy interfész sávszélessége fordítottan arányos a költséggel. Vagyis egy 100Mb/s Ethernetnek nagyobb a költsége mint egy 1000Mb/s interfésznek.
Számítás:
Az alapértelmezett referencia sávszélesség a hatványon, azaz 100 000 000. Ezzel a referencia sávszélességgel a költség képlete:
A következő táblázat mutatja referencia sávszélességgel néhány interfész sávszélességét:
Interfész típus | Osztás | Költség |
---|---|---|
10 Gigabit Ethernet 10 Gbps | 100 000 000 / 10 000 000 000 | 1 |
Gigabit Ethernet 1 Gbps | 100 000 000 / 1 000 000 000 | 1 |
Fast Ethernet 100 Mbps | 100 000 000 / 100 000 000 | 1 |
Ethernet 10 Mbps | 100 000 000 / 10 000 000 | 10 |
Serial 1.544 Mbps | 100 000 000 / 1 544 000 | 64 |
Serial 128 kbps | 100 000 000 / 128 000 | 781 |
Serial 64 kbps | 100 000 000 / 64 000 | 1562 |
Mindig az összes költséggel kell számolni. A példában R1 és R1 között 1.544 Mbps serial kapcsolat van, amelynek a költsége 64. Ehhez jön R4 g0/0 interfésze, amelynek a költsége 1. Így a 10.7.0.0/16 hálózat 65-ös költséggel érhető el közvetlenül R4 forgalomirányítón keresztül.
Költség ellenőrzése:
R1# show ip route | include 172.16.2.0 0 172.16.2.0/24 [110/65] via 172.16.3.2, 03:39:07 Serial0/0/0 R1# R1# show ip route 172.16.2.0 Routing entry for 172.16.2.0/24 Known via "ospf 10", distance 110, metric 65, type intra … Route metric is 65, traffic share count is 1
A fenti táblázatban láttuk, hogy a 10 Gigabit Ethernet, a Gigabit Ethernet és a Fast Ethernet azonos költséggel szerepel, konkrétan: 1. Ezért érdemes beállítani más referencia sávszélességet, például 1000.
auto-cost reference-bandwidth 1000
R1(config)#router ospf 1 R1(config-router)#auto-cost reference-bandwidth 1000000
Megjegyzés: PT-ben nem működik:
R1#show ip ospf | include Reference Reference bandwidth unit is 100 mbps
De ha be van állítva, az látszik a konfigurációban a router résznél:
R1#show run | s router
Persze így még mindig 1 költséggel szerepel a 10 Gigabit és a Gigabit Ethernet.
auto-cost reference-bandwidth 1000 | ||
---|---|---|
Interfész típus | Osztás | Költség |
10 Gigabit Ethernet 10 Gbps | 1 000 000 000 / 10 000 000 000 | 1 |
Gigabit Ethernet 1 Gbps | 1 000 000 000 / 1 000 000 000 | 1 |
Fast Ethernet 100 Mbps | 1 000 000 000 / 100 000 000 | 10 |
Ethernet 10 Mbps | 1 000 000 000 / 10 000 000 | 100 |
Serial 1.544 Mbps | 1 000 000 000 / 1 544 000 | 647 |
Serial 128 kbps | 1 000 000 000 / 128 000 | 7812 |
Serial 64 kbps | 1 000 000 000 / 64 000 | 15625 |
Állítsuk be 10000-es értéket.
Ekkor a költségek alakulása:
auto-cost reference-bandwidth 10000 | ||
---|---|---|
Interfész típus | Osztás | Költség |
10 Gigabit Ethernet 10 Gbps | 10 000 000 000 / 10 000 000 000 | 1 |
Gigabit Ethernet 1 Gbps | 10 000 000 000 / 1 000 000 000 | 10 |
Fast Ethernet 100 Mbps | 10 000 000 000 / 100 000 000 | 100 |
Ethernet 10 Mbps | 10 000 000 000 / 10 000 000 | 1000 |
Serial 1.544 Mbps | 10 000 000 000 / 1 544 000 | 6476 |
Serial 128 kbps | 10 000 000 000 / 128 000 | 78125 |
Serial 64 kbps | 10 000 000 000 / 64 000 | 156250 |
Beállítás:
R1(config)# router ospf 1 R1(config-router)# auto-cost reference-bandwidth 10000
Interfész költségének ellenőrzése:
R1# show ip ospf interface g0/0 … … 3.3.3.3, Network Type BROADCAST, Cost: 10
R1# show ip route | include 10.7.0.0 O 10.7.0.0/16 [110/6486] via 10.8.0.2, 00:10:08, Serial0/0/0
R1# show ip route 10.7.0.0 Routing entry for 10.7.0.0/16 Known via "ospf 10", distance 110, metric 6486, type intra area Last update from 10.8.0.2 on Serial0/0/0, 00:12:10 ago Routing Descriptor Blocks: * 10.8.0.2, from 10.8.0.2, 00:12:10 ago, via Serial0/0/0 Route metric is 6486, traffic share count is 1 R1#
Hasonlóan a referencia sávszélességhez nincs hatással az interfész tényleges sebességére. Az OSPF viszont ezt is figyelembe veszi a számításoknál (az EIGRP is ezt figyelembe veszi).
Nézzük meg a sávszélességet:
R1#show interfaces s0/0/0 Serial0/0/0 is up, line protocol is up (connected) Hardware is HD64570 Internet address is 10.8.0.1/16 MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, ...
A referencia sávszélesség megtekintése:
R1#show ip ospf int s0/0/0 Serial0/0/0 is up, line protocol is up Internet address is 10.8.0.1/16, Area 0 Process ID 10, Router ID 10.8.0.1, Network Type POINT-TO-POINT, Cost: 6476
Most változtassunk a sávszélességen:
R1(config)# int s0/0/0 R1(config-if)# bandwidth 128 R1(config-if)# end ...
Ellenőrzés:
R1#show int s0/0/0 Serial0/0/0 is up, line protocol is up (connected) Hardware is HD64570 Internet address is 10.8.0.1/16 MTU 1500 bytes, BW 128 Kbit, DLY 20000 usec,
A beállítást a másik forgalomirányítón is be kell állítani.
R1(config)# int s0/0/0 R1(config-if)# no bandwidth 128 R1(config-if)# ip ospf cost 15625 R1(config-if)# end
Sávszélesség ellenőrzése:
R1#show int s0/0/0 | include BW MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
Költség ellenőrzése:
R1#show ip ospf int s0/0/0 Serial0/0/0 is up, line protocol is up Internet address is 10.8.0.1/16, Area 0 Process ID 10, Router ID 10.8.0.1, Network Type POINT-TO-POINT, Cost: 80 ...
Utóbbi Packet Tracerben nem működik.
R1# show ip ospf neighbor
Futtatásra példa:
R1#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 10.8.0.2 0 FULL/ - 00:00:33 10.8.0.2 Serial0/0/0 10.2.0.2 0 FULL/ - 00:00:35 10.2.0.2 Ge 0/1
A szomszédsági viszony ha nem jön létre, a következőket nézzük meg:
Az OSPF ellenőrzése:
R1# show ip protocols
R1# show ip ospf
R1# show ip ospf interface
R1# show ip ospf interface brief
R1# show ip ospf interface serial 0/0/0
Eltérés OSPFv2 és OSPFv3 között:
OSPFv2 | OSPFv3 |
---|---|
IPv4 címek | IPv6 címek |
minden OSPF router címe: 224.0.0.5 | minden OSPF router: ff02::5 |
DR/BDR csoportcím: 224.0.0.6 | DR/BDR csoportcím: ff02::6 |
network parancs | ipv6 ospf <procId> area <areaId> interfész parancs |
MD5 azonosítás | IPv6 azonosítás |
R1(config)# ipv6 unicast-routing R1(config)# R1(config)# int g0/0 R1(config-if)# des R1 LAN R1(config-if)# ipv6 address 2001:db8:def:1::1/64 R1(config-if)# no shut R1(config-if)# R1(config-if)# int s0/0/0 R1(config-if)# des Link to R2 R1(config-if)# ipv6 address 2001:db8:def:2::1/64 R1(config-if)# clock rate 128000 R1(config-if)# no shut R1(config-if)# R1(config-if)# int s0/0/1 R1(config-if)# des Link to R3 R1(config-if)# ipv6 address 2001:db8:def:7::1/64 R1(config-if)# no shut R1(config-if)# end
Ellenőrzés:
R1# show ipv6 interface brief
Link-local beállítása
R1(config)# int g0/0 R1(config-if)# ipv6 address fe80::1 link-local R1(config-if)# R1(config-if)# int s0/0/0 R1(config-if)# ipv6 address fe80::1 link-local R1(config-if)# R1(config-if)# int s0/0/1 R1(config-if)# ipv6 address fe80::1 link-local R1(config-if)# end
Ellenőrizzük:
R1# show ipv6 interface brief
RouterID és költség beállítása:
R1(config)# ipv6 router ospf 10 R1(config-rtr)# R1(config-rtr)# router-id 1.1.1.1 R1(config-rtr)# R1(config-rtr)# auto-cost reference-bandwidth 1000 R1(config-rtr)# R1(config-rtr)# end R1# show ipv6 protocols
R1(config)# int g0/0 R1(config-rtr)# ipv6 ospf 10 area 0 R1(config-rtr)# R1(config-rtr)# int s0/0/0 R1(config-rtr)# ipv6 ospf 10 area 0 R1(config-rtr)# R1(config-rtr)# int s0/0/1 R1(config-rtr)# ipv6 ospf 10 area 0 R1(config-rtr)# R1(config-rtr)# end R1# show ipv6 ospf int brief
R1(config)# show ipv6 ospf neighbor OSPFv3 Router with ID (1.1.1.1) (Process ID 10) Neighbor ID Pri State Dead Time Interface ID Interface 3.3.3.3 0 FULL/ - 00:00:39 6 Serial0/0/1 2.2.2.2 0 FULL/ - 00:00:36 6 Serial0/0/0 R1#
R1(config)# show ipv6 protocols IPv6 Routing Protocol is "connected" IPv6 Routing Protocol is "ND" IPv6 Routing Protocol is "ospf 10" Router ID 1.1.1.1 Number of areas: 1 normal, 0 stub, 0 nssa Interfaces (Area 0): Serial0/0/1 Serial0/0/0 GigabitEthernet0/0 Redistribution: None R1#
R1(config)# show ipv6 ospf interface brief Interface PID Area Intf ID Cost State Nbrs F/C Se0/0/1 10 0 7 15625 P2P 1/1 Se0/0/0 10 0 3 647 P2P 1/1 Gi0/0 10 0 3 1 DR 0/0 R1#
R1(config)# show ipv6 route ospf IPv6 Routing Table – default – 10 entries … 0 2001:DB8:DEF:2::/64 [110/657] via FE80::2, Serial0/0/0 0 2001:DB8:DEF:3::/64 [110/1304] via FE80::2, Serial0/0/0 0 2001:DB8:DEF:8::/64 [110/1294] via FE80::2, Serial0/0/0 R1#