Locked History Actions

OSPF

Apibūdinimas

OSPF (Open Shortest Path First – Atviras pirmo trumpiausio kelio nustatymo protokolas) yra vidaus slenkstinis protokolas, t.y. jis užtikrina informacijos apie maršrutizavimo galimybes sklaidą tarp maršrutizatorių, priklausančių tai pačiai autonominei sistemai. OSPF, kaip atviros architektūros protokolą 1987-89 m. sukūrė IETF (Internet Engineering Task Force) grupė. IP v4 tinkluose dabar naudojama antroji OSPF versija, specifikuota RFC 2328.

OSPF protokolas buvo kuriamas norint išspręsti maršrutizavimo uždavinius dideliuose, plečiamuose tinkluose, kur paprastesni maršrutizavimo protokolai tapo neefektyvūs, t.y. siekiant:

• paspartinti konvergavimą (didesniuose tinkluose RIP konvergencija gali siekti iki kelių minučių);

• rasti efektyvesnį kelio parinkties metodą (RIP į vertina tik šuolių (mazgų) skaičių iki tikslo tinklo, bet neatsižvelgia į užlaikymus bei kanalo parametrus): OSPF naudoja kanalo vertės (cost), atvirkščiai proporcingos juostos pločiui, metriką;

• išnaudoti kintamo ilgio potinklio maskuotės (VLSM) galimybes;

• padidinti maršrutizuojamų tinklų aprėptį (RIP ribojamas 15 šuolių);

• efektyviau išnaudoti tinklo kanalų pralaidą (RIP kas 30 s siunčia atnaujinimus kaimynams – pilnas maršrutų lenteles);

• užtikrinti tinklo plečiamumą.

Pagrindiniai OSPF elementai

OSPF protokolo informacija perduodama specializuotais ryšio būsenos paketais (Link-State Packets – LSP).

Įvairiuose maršrutizavimo etapuose OSPF naudojami 5 LSP tipai:

•Hello paketai naudojami nustatant kaimyninius bei gretutinius (adjacent) maršrutizatorius, skelbiant OSPF maršrutizatorių parametrus, renkant išskirtąjį maršrutizatorių DR, bei atsarginį išskirtąjį BDR maršrutizatorių. Hello paketai grupiniu adresu 224.0.0.5 siunčiami visais OSPF procese dalyvaujančiais prievadais.

•DBD yra duomenų bazės aprašo (DBD - database Descriptor) paketas, kuriuo perduodamas sutrumpintas siunčiančiojo maršrutizatoriaus ryšio būsenos DB sąrašas, kur įgaunantysis maršrutizatorius sulygina su savąja ryšio būsenos DB.

•LSR yra užklausos (Link-State Request) paketas, kuriuo reikalaujama papildomos informacijos apie DBD įrašą, kurio nėra gaunančiojo maršrutizatoriaus DB.

•LSU yra ryšio būsenos papildymo (Link-State Update) paketas. Tai gali būti atsakas į LSR, perduodantis pilną užklausoje nurodyto ryšio būsenos informaciją, arba naujos ryšio būsenos informacijos skelbimas. LSU turi iki 10 skirtingų ryšio būsenos skelbimų (LSA Link-State Advertisement) tipų. LSU ir LSA terminų naudojimas (ir skirtumai tarp jų) yra gana komplikuotas ir kai kada jie ne visai tiksliai naudojami kaip sinonimai.

•yra LSU gavimo patvirtinimas. LSP tipai nurodomi LSP antraštės tipo lauke: 1-Hello, 2-DBD, 3-LSR, 4-LSU, 5-LSAck.

OSPF protokolo informacija – Ryšio būsenos paketai – perduodami tiesiogiai IP paketuose, nenaudojant TCP ar UDP inkapsuliacijos, IP paketo antraštėje įvardijant OSPF kaip 89 protokolą. OSPF pranešimai platinami grupiniais (multicast) adresais 224.0.0.5 (DROthers adresas) arba 224.0.0.6 (DR ir BDR adresas) bei su pastaraisiais susietais MAC adresais Ethernet tinkle 01-00-5E-00-00-05 ir 01-00-5E-00-00-06 (23 jaunesnieji bitai iš IP adreso tiesiog kopijuojami įgrupinį MAC).

Bet kokio pasikeitimo informacija apie ryšio būsenas pradžioje visi OSPF procese dalyvaujantys maršrutizatoriai pirmiausia apibrėžia savo kaimynus ir nustato gretimybes - gretutinius (adjacent) maršrutizatorius. Kaimyniniai maršrutizatoriai yra visi tame pačiame potinklyje esantys maršrutizatoriai (gautas Hello paketas su maršrutizatoriaus identifikatoriumi (ID) nurodo, kad ID apibrėžtas įrenginys yra kaimynas). Gretutiniais vadinami maršrutizatoriai, kurie sinchronizuoja tarpusavyje savo duomenų bazes.

OSPF protokolas naudoja hierarchinę struktūrą. Pagrindinė sritis – magistralinė (nulinė sritis). Prie jos maršrutizatoriumi jungiamos kitos sritys, vadinamos reguliatoriais. Srautui keliaujant iš vienos srities į kitą, jis būtinai turi pereiti per magistralinį maršrutizatorių. Hierarchinė struktūra užtikrina patikimumą, centralizuotą valdymą, atskiroms sritims nereikia turėti detalios informacijos apie kitas sritis (tai turi magistralinis maršrutizatorius) bei gerą plečiamumą.

KaimyniniųOSPF maršrutizatoriųbūsenos yra apibrėžiamos taip:

•Down - Prievadas negauna Hello paketų

•Attempt - Kaimynai turi būti aprašyti statiškai; naudojamas NBMA topologijoje.

•Init - Prievadas gauna Hello paketus iš kaimynų.

•2Way - Iš kaimynų gautuose Hello paketuose yra įtrauktas gaunančiojo maršrutizatoriaus ID.

ExStart - Nustatyti pagrindinis / pagalbinis ryšiai, siekiant suformuoti gretimybes, apsikeičiant DB deskriptorių (DD) paketais. (Maršrutizatorius su didesniu ID tampa pagrindiniu.)

•Exchange - Pasikeičiama maršrutizavimo informacija naudojant DD ir LSAck.

•Loading - Siunčiami LSR reikalaujant atnaujinimo informacijos – LSA ir juos gaunant bei patvirtinant.

•Full - LSA informacija yra pilna ir sinchronizuota tarp gretutinių maršrutizatorių.

Prieš pradedant šiuos procesus, turi būti nustatyti trys svarbūs parametrai: Atnaujinimų (Hello) periodas bei laukimo (Dead) intervalas ir tinklo tipas. Tinklo segmente šie parametrai turi griežtai sutapti.

Pagal nutylėjimą transliacinės bendrosios prieigos (pvz., Ethernet) ir dvitaškio sujungimo topologijų tinkluose Hello paketai siunčiami kas 10 s, o netransliacinės bendrosios prieigos tinkluose (NBMA, pvz., Frame Relay) - kas 30 s. Jei per laukimo intervalą negaunamas Hello paketas, yra deklaruojamas linijos trūkis. Laukimo intervalas paprastai būna lygus 4-iems atnaujinimo periodams ir yra 40 ir 120 s anksčiau įvardintiems tinklųtipams atitinkamai. Jei laukimo intervalo metu Hello paketas negaunamas, OSPF pašalina tokį kaimyną iš ryšio būsenos DB, ir maršrutizatorius per visus savo prievadus išplatina LSA apie ryšio nutrūkimą.

Siekiant sumažinti informacijos srautus bendrosios prieigos tinkluose, OSPF naudoja išskirtąjį DR bei atsarginį išskirtąjį BDR maršrutizatorius, kurie veikia kaip tarpiniai srauto paskirstytojai: gretimybės nustatomos ne tarp kiekvieno potinklio maršrutizatoriaus, bet tik tarp DR/BDR ir kitų (vadinamų DROther) įrenginių, taigi, informacija apie ryšio būseną (jos pokyčius) siunčiama ne visiems kaimynams, bet tik DR ir BDR. DR savo ruožtu išplatina informaciją visiems segmento maršrutizatoriams (DROthers) grupiniu adresu 224.0.0.5 (DR ir BDR grupinis adresas yra 224.0.0.6). BDR tik priima informacijąir seka DR būseną. Pastarajam išėjus iš rikiuotės, BDR perima DR funkcijas.

OSPF algoritmas

OSPF naudoja 3duomenų bazes:

•Gretimybių DB

•Topologijosar ryšio būsenos DB

•Persiuntimų DB arba maršrutizavimo lentelę

Kiekvienas maršrutizatorius gauna ryšio linijų būsenos informaciją iš gretutinių maršrutizatorių ir taip sudaro savo ryšių būsenos DB.Naudojant Dijksa trumpiausio kelio paieškos algoritmą sudaromas medis, kuriuo remiantis, sudaroma maršrutizavimo lentelė.

Diegimas

OSPF protokolo diegimas vykdomas labai paprastai. Prieš įdiegiant būtina tinklą suskirstyti į zonas, nes protokolas hierarchinis turi 2 zonas. 0 zonai visada priskiriamas branduolio tinklas. Vienas maršrutizatoriaus prievadas gali priklausyti 0 zonai, o kitas pavyzdžiui trečias 1 zonai.

OSPFrouter#configure

Configuring from terminal, memory, or network [terminal]?

Enter configuration commands, one per line. End With CNTL/Z.

OSPFrouter(config)#router ospf 25000

OSPFrouter(config-router)#network 192.17.18.0 255.255.255.255.224 area 1

OSPFrouter(config-router)#network 192.17.198.0 255.255.255.255.224 area 0

OSPFrouter(config-router)#^Z

Literatūra

1. http://www.informit.com/library/content.aspx?b=CCIE_Practical_Studies_I&seqNum=131

2. http://www.firewall.cx/networking-topics/routing/routing-protocols/186-routing-protocol-ospf.html

3. https://tools.ietf.org/html/rfc2328

4. http://overapi.com/static/cs/OSPF.pdf