< Cisco szerint a hálózat

Egyterületű OSPF

Szerző: Sallai András

Copyright © Sallai András, 2018

CC Attribution-Share Alike 4.0 International

Web: http://szit.hu

Az egyterületű OSPF

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:

gyors konvergencia

osztály nélküli

skálázható

bevezeti a terület fogalmát

SPF algoritmus használ

Shortest Path First

támogatja a VLSM-et és a CIDR-et

frissítés csak változáskor

nincs periodikus frissítés

hitelesítés

SPF algoritmus

Edsger Wybe Dijkstra

[ˈɛtsxər ˈʋibə ˈdɛikstra]

holland matematikus, programozó és elméleti fizikus

munkáit számos nyelven használják

Shortest Path First

az algoritmus:

célok elérésének teljes költségét számolja

SPF fát épít

Több információ az SPF algoritmusról:

https://hu.wikipedia.org/wiki/Dijkstra-algoritmus

OSPF és az IP

OSPFv2 – IPv4

OSPFv2 – IPv6

Fejlesztés

a fejlesztés kezdete: 1987

fejlesztő:

Internet Engineering Task Force (IETF)

OSPF munkacsoport

Csoportosítás

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

Hitelesítés

Message Digest – MD5 alapú hitelesítés

Ha be van kapcsolva: a router csak akkor fogad irányítási információt, ha egyezik a kulcs

Adminisztratív távolság

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

OSPF adatbázisai

szomszédsági – adjacency database

kapcsolatállapot – link-state database

továbbítási adatbázis – forwarding database – irányítótábla

Egy konvergencia folyamat

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.

szomszédsági kapcsolatok építése – hello csomag

kapcsolatállapot hirdetés – Link-State Advertisements – LSA

Az LSA tartalmaz:

minden közvetlenül kapcsolódó hálózat költsége

a router elárasztja a szomszédokat

a szomszéd azonnal továbbítja

topológia tábla építése

SPF-algoritmus futtatása

létrejön az SPF-fa

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

OSPF megvalósítások

egyterületű

Single-Area OSPF

egyetlen terület

gerinc terület

backbone area, area 0

többterületű OSPF

multiarea OSPF

hierarchikus

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.

OSPF üzenetek

hello csomag

adatbázis-leíró

frissítő (kapcsolatállapot)

nyugtázó

Etherneten át küldött OSPF üzenet

Adatkapcsolati Ethernet keretfejléc.

A következő csoportos MAC címzés lehet:

01-00-5E-00-00-05 vagy

01-00-5E-00-00-06

Data Link Frame Header

IP szinten

IP csomagfejléc.

A következő csoportos IP címzés lehet:

224.0.0.5 vagy

224.0.0.6

protokoll: 89

Data Link Frame Header	IP Packet Header

IPv6 esetén:

ff02::5 a cím.

OSPF üzenetfej

OSPF csomag

Tartalma:

OSPF típusa

router ID

area ID

Data Link Frame Header	IP Packet Header	OSPF Packet Header

OSPF üzenet

OSPF csomagtípustól függő adatok:

0x01 Hello

0x02 Database Description

0x03 Link State Request

0x04 Link State Update

0x05 Link State

Acknowledgment

Data Link Frame Header	IP Packet Header	OSPF Packet Header	OSPF Packet Type Specified Database

LSP üzenetek

Az LSP kapcsolatállapotcsomag.

Az LSP üzenetek típusai:

1-es típus – hello csomag

2-es típus – adatbázis leíró csomag

Database Description, DBD

LSDB-adatbázis rövidített listája

3-as típus – kapcsolatállapot kérés

Link-State Request, LSR

4-es típus – kapcsolatállapot frissítés csomag

Link-State Update – LSU

5-ös típus – kapcsolatállapot nyugta csomag

Link-State Acknowledgment

LSAck

Hello üzenet

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.

Router Priority

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ó.

Dead Interval

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 DR a Designated Router rövidítése. Kijelölt forgalomirányító. Gyűjtő elosztó pont.

BDR

A BDR a Backup Designated Router rövidítése. Tartalék forgalomirányító.

List Of Neighbors

A List Of Neighbor a szomszédok listája, azok azonosítóját tartalmazza.

Üzenetváltások

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.

LSU

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

Az OSPF indulása

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

OSPF működés

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

DR/BDR

DR - Gyűjtő elosztó pont. Master.

BDR – DR tartaléka

OSPF konfigurálása

RouterID

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:

rendszergazda beállítja

automatikusan kerül beállítá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

Helyettesítő maszk

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

Hálózat megadása

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

Passziválás

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

OSPF költségek

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#

Interfész sávszélesség

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.

Költség állítása közvetlenül

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.

Ellenőrzés

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

Pri

Az interfész prioritása, OSPF számára

DR és BDR választásnál jelentős

State

FULL azt jelenti a szomszédok LSDB-je azonos

Dead Time

Mikor tekintjük halottnak

A szomszédsági viszony ha nem jön létre, a következőket nézzük meg:

egyeznek az alhálózati maszkok

az OSPF Hello és Dead idő azonos a forgalomirányítók között?

volt az OSPF beállításnál network parancs volt?

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

OSPFv3

IPv6 támogatással fut

Egyszerre tudja az IPv4 és IPv6 útvonalakat is.

De külön folyamat fut az IPv4 és az IPv6 számára

külön irányítótábla

külön topológia

külön szomszédsági tábla

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

Címek használata

forrás cím: link-local

cél cím: ff02::5, ff02::6, IPv6 link-local

Konfigurálá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

Ellenőrzés

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#

OSPF gyakorlat

Feladat 001

Kösse össze az alábbi hálózatokat OSPF segítségével.

Feladat 002

Kösse össze az alábbi hálózatokat OSPF segítségével.