Open Shortest Path First (OSPF)

Open Shortest Path First (OSPF)

je smerovací protokol vyvinutý pracovnou skupinou IETF (Internet Engineering Task Force) ako interný protokol (IGP) pre IP siete a zalozeny na otvorenych standardoch. Pracovná skupina bola vytvorená v 1988 na navrhnutie IGP založeného na algoritme najkratšej cesty (SPF) pre použitie v internete. Podobne ako IGRP (Interior Gateway Routing Protocol), aj OSPF bol vytvorený kvôli neschopnosti protokolu RIP obsluhovať veľké nehomogénne siete.

Podporuje VLSM - je to classless protokol s administrative distanc 110, bez limitácie hopov.

OSPF je popísaný v RFC 1247 a tiež RFC 2328. OSPF je založený na SPF algoritme, ktorý sa niekedy odvoláva na algoritmus Dijkstra. OSPF je link-state smerovací protokol, ktorý volá na odoslanie link-state oznámenia LSA (Link-State Advertisements) všetky ostatné smerovače v tej istej hierarchickej oblasti. Informácia o pripojenom rozhraní, použitá metrika a iné premenné sú zahrnuté v OSPF LSA. Ak OSPF smerovač zhromaždí link-state informáciu, použije SPF algoritmus na výpočet najkratšej cesty do každého uzla.

Na rozdiel od RIP, OSPF môže byť použitý v rámci hierarchicky orientovaných sietí. Najväčšia entita v rámci hierarchie je autonómny systém AS (Autonomous System), ktorý je množinou sieti pod všeobecnou správou, ktorá zdieľa všeobecnú smerovaciu stratégiu. OSPF je intra-AS (vnútorný gateway) smerovací protokol, i keď je schopný prijať cestu a posielať cesty k ďalším AS.

AS môže byť rozdelený do niekoľkých oblastí, ktoré pozostávajú z množiny súvisiacich sietí a príslušných hostiteľov (hosts). Smerovače s viacerými rozhraniami môžu pôsobiť vo viacerých oblastiach. Smerovače, ktoré sú nazývane ako smerovače na okraji oblasti ABR (Area Border Router), udržiavajú oddelenú topologickú databázu pre každú oblasť. Smerovače na okraji AS sú nazývane ASBR (Autonomous System Boundary Router).

Topologická databáza v podstate predstavuje celkový obraz siete vo vzťahu k smerovačom. Topologická databáza obsahuje zbierku prijatých LSA od všetkých smerovačov v danej oblasti. Pretože smerovače vnútri jednej oblasti zdieľajú rovnakú informáciu, majú identickú topologickú databázu.

Delenie na oblasti spôsobuje dva typy OSPF smerovania, podľa toho, či zdroj a cieľ sú v rovnakých alebo rozdielnych oblastiach.

Smerovanie v autonómnom systéme sa vykonáva na dvoch úrovniach:
Intra–area routing – zdroj a cieľ sa nachádzajú v tej istej oblasti,
Inter–area routing – zdroj a cieľ sa nachádzajú v rôznych oblastiach.

Pri Inter–area smerovaní sa používa chrbtica siete. Ide vlastne o tri Intra–area cesty:
Cesta zo zdroja do ABR smerovača zdrojovej oblasti.
Cesta cez chrbticu OSPF z ABR smerovača zdrojovej oblasti do ABR smerovača cieľovej oblasti.
Cesta z ABR smerovača cieľovej oblasti do cieľa.

Chrbtica OSPF je zodpovedná za distribúciu smerovacej informácie medzi oblasťami. Samotná chrbtica je OSPF oblasť, v ktorej všetky chrbticové smerovače používajú rovnakú procedúru a algoritmus k udržaniu informácie vnútri chrbtice tak, ako hociktorý iný smerovač. Topológia chrbticovej siete je pre všetky smerovače vo vnútri jednotlivých oblastní neviditeľná.

Smerovací algoritmus prvej najkratšej cesty SPF (Shortest Path First) je základom fungovania OSPF protokolu. Keď je SPF smerovač zapnutý, štartuje smerovací protokol dátovej štruktúry a potom čaká na údaje z nižšej vrstvy protokolu o funkčnosti jeho rozhrania. Smerovač je ubezpečený, že jeho prepojenia sú funkčné a použíje OSPF Hello protokol na získanie susedov, ktorých smerovače sú s prepojením k všeobecnej sieti. Smerovač posiela hello pakety susedom a prijíma ich hello pakety. Navyše pomáha získať susedov, ktorých hello pakety tiež pôsobia ako udržiavače života - spustené smerovače vedia, že iné smerovače sú stále funkčné.

Keď link-state databázy od dvoch susedných smerovačov sú synchronizované, potom sa týmto smerovačom hovorí, že sú vedľajšie. V mnoho prístupových sieťach určený smerovač určí, ktorý smerovač sa stane vedľajším. Topologické databázy sú synchronizované dvojicou vedľajších smerovačov. Susedstvá ovláda distribúcia paketov smerovacích protokolov, ktoré sú poslané a prijaté len v susedstvách.

Každý smerovač periodicky posiela LSA k poskytnutiu informácií o susedstve smerovača alebo k informovaniu iných o zmene stavu smerovača. Pri porovnávaní platných susedstiev link-state, poškodené smerovače môžu byť rýchlo detekované a sieťová topológia sa náležite zmení. Podľa topologickej databázy generovanej z LSA, každý smerovač vypočítava strom najkratšej cesty so samým sebou ako koreňom. Strom najkratšej cesty, na oplátku, vráti smerovaciu tabuľku.

OSPF - zakladne pojmy

linkk
- linka - rozhranie smerovaca
link-state
- stav linky - stav spojenia medzi dvoma smerovacmi. Tiež možno chápat aj ako rozhranie smerovaca v suvislosti zo susedným smerovacom.
link-state databaze (topological database)
- štrukturovane informacie o všetkych ostatných smerovacoch v sieti - mapa siete, ktoru si smerovac uchovava
area
- oblasť - Skupina sieti a smerovacov, pouzivajuca spolocny identifikator oblasti. Kazdy smerovac v oblasti zdiela rovnakú topologickú databazu. Smerovacu v oblasti hovorime vnutorny smerovac.
area-id - specifikuje oblast s ktorou sa spaja sietova adresa. Moze to byt cislo, ale moze sa to tiez zapisovat podobne ako IP adresa, teda A.B.C.D.Chrbticova oblast sa oznacuje kodom 0.
cost
- cena linky - hodnota priradena kazdej linke zvlast, vypovedajuca o jej kvalite. U OSPF sa odvadza od sirky pasma priepustnosti linky/jej prenosovej rychlosti.

Cena linka, ako je vidieť sa počíta podľa vzorca cost = 100/bandwidth, pričom bandwidth je Mbps - bitoch za sekundu. Cenu za linku mozme zmeniť dvoma spôsobmi:

routing table - smerovacia tabulka - je vysledkom spracovania link-state databazy pomocou SPF algoritmu.
neightbor
- sused - priamo pripojený smerovač
adjacency
- priľahlosť - spojenie, ktore si medzi sebou susedne smerovače mozu/nemusia vytvorit. V ramci tohto spojenia si potom vymienaju topologicke informacie
adjacencies database
- databáza susedov - zoznam susedov, s ktorými smerovač priamo obojsmerne komunikuje
ID Smerovača -
všetky smerovače sa vzájomne identifikujú a identifikujú svoje oznámenia stavu liniek na základe OSPF router ID. Smerovače Cisco používajú ako ID najvyššiu nastavenú IP adresu loopback, ak nie je nastavená použijú najvyššiu IP adresu aktívneho rozhrania. Ak nieje ziadne z rozhrani aktivne, potom OSPF nenastartuje. Podobne ak sa aktívne rozhrania povypínajú, OSPF ide dole tiež.
Designated router (DR) a Backup Designated Router (BDR) - poverený smerovač a jeho záložník - smerovač, vyvolený spomedzi všetkých smerovačov v sieti, aby ich zastupoval. Každá sieť, používajúca OSPF, ma poverený smerovač a jeho záložníka. Designated router (predurčený smerovač) sa stáva adjacent (priľahlým) každému smerovaču v broadcastovej doméne. Tým sa redukuje počet adjacencies (priľahlosti) v broadcastovej doméne. Inak by ich bolo podľa poctu kombinácií bez opakovania, teda n*(n-1)/2, čo by sa už aj pri malých počtoch mohlo stať veľmi nepraktické.

Smerovače zasielajú
svoje link-states predurčenému smerovaču (DR) a jeho záložníkovi (BDR) na viacesmerovú adresu 224.0.0.6. DR potom nacuva vsetkym smerovacom v broadcastovej domene a odpoveda im pomocou multicastu 224.0.0.5. OSPF komunikuje IP protokolom typu 89.Jedine v sietach point-to-point (dvojbodovych, modemovych) sa DR a BDR nevolia - nieje to potrebne

Typy sieti v OSPF

typ siete charakteristika volba DR (Designated Router)
broadcast multiaccess Ethernet, Token-Ring, FDDI ano
NONbroadcast multiaccess Frame-relay, X.25, SMDS ano
Point-to-Point PPP, HDLC NIE
Point-to-Multipoint konfigurovane spravcom siete NIE

Formát paketu OSPF

Všetky OSPF pakety začínajú s 24 bajtovou hlavičkou. OSPF paket pozostáva z 9 polí.

1 1 2 4 4 2 2 8 Variabilná
Číslo verzie Typ Dĺžka Paketu ID Smerovača ID Oblasti Kontrolná Suma Typ Autentifikácie Autentifikácia Dáta

Popis jednotlivých polí paketu OSPF:
Číslo verzie – identifikuje používanú verziu
Typ – identifikuje typ OSPF paketu ako jeden s nasledujúcich: Dĺžka Paketu – špecifikuje dĺžku paketu vrátane OSPF hlavičky v bajtoch
ID Smerovača – identifikuje zdroj paketu
ID Oblasti – identifikuje oblasť, do ktorej paket patrí. Všetky OSPF pakety sú súvisiace s oddelenou oblasťou
Kontrolná Suma – skontroluje obsah celého paketu, či počas prepravy nedošlo k poškodeniu
Typ Autentifikácie – obsahuje autentifikačný typ. Všetky zmeny OSPF protokolu sú autentifikované. Autentifikačný typ je konfigurovaný podľa oblastí
Autentifikácia – obsahuje autentifikačnú informáciu
Dáta – obsahuje enkapsulovanú informáciu vyššej vrstvy

Hello pakety

Na 3. vrstve ISO/OSI sú hello packety adresovane na multicast 224.0.0.5. Smerovače hello používajú na vytvorenie adjacencies (priľahlosti) a tiež na to aby sa uistili, že priľahlý smerovač "je ešte na žive". Štandardne su hello v broadcast-multiaccess a point-to-point sieťach rozosielane každých 10 sekúnd. V nonbroadcast-multiaccess sieťach ako je frame-relay sa rozosielajú štandardne každých 30 sekúnd.
V multiaccess sieťach hello zabezpečí voľbu DR a BDR. V hello políčko typu paketu v hlavičke OSPF obsahuje hodnotu 1.

OSPF Hello header

4 2 1 1 4 4 4 4 4 Variabilná
network mask hello interval options router priority deal interval designated router (DR) backup designated router (BDR) neighbor router ID neighbor router ID ďalší neighbor router - tu môžu nasledovať, ak je to potrebne

OSPF postup
Konfigurácia

Nastavenie OSPF

  Smerovac(config)# router ospf process-id
  Smerovac(config-router)# network address wildcard-mask area area-id
  Smerovac(config-router)# network address wildcard-mask area area-id
  Smerovac(config-router)# area area-id stub no-summary 
  ...

process-id - symbolizuje identifikator procesu. Moze obsahovat cislo od 1 do 65535. Pouziva sa to vtedy, ak na smerovaci bezi viacero OSPF procesov.
address - moze ist o sietovu adresu, podsiet, alebo adresu sietoveho rozhrania. Smerovac podla toho vie, na ktorom rozhrani ma vysielat/pocuvat aktualizacie a ktorych sieti sa to tyka.
wildchar-mask - maska z divych znakov, podobne ako u access-listov, teda bity s nulou sa porovnavaju, bity s jednotkou su dive - ich obsah moze byt lubovolny. Napriklad pre siet "C" treba pouzit masku 0.0.0.255. Ak uvadzame adresu rozhrania, mali by sme uviest masku 0.0.0.0.

Spustenie loopback pre zvolenie router ID

   Smerovac(config)# interface loopback 0
   Smerovac(config-if)# ip address 192.168.99.31 255.255.255.255

Nastavenie priority

   Smerovac(router-if)# ip ospf priority cislo


Autentifikacia v OSPF
cistym textom
 Smerovac(config)# interface serial 0
 Smerovac(config-if) ip ospf authentication-key hesielko
 Smerovac(config-if)# exit
 Smreovac(config)# router ospf 1
 Smerovac(config-router)# area 0 authentication

Heslo by malo mat do osem znakov.
MD5-kou
  Smerovac(config)# interface serial 0
  Smerovac(config-if)# ip ospf message-digest-key 1 md5 7 nejake_heslo
  Smerovac(config-if)# exit
  Smerovac(config)# router ospf 1
  Smerovac(config-router)# area 0 authentication message-digest

V riadku ip ospf message-digest-key prve cislo je identifikacny kluc. Smerovace, ktore si navzajom preukazuju totoznost musia pri tomto preukazovani pouzit rovnaku dvojicu klucov a hesiel. Identifikacny kluc moze byt v rozsahu 1 az 255. Druhe cislo reprezentuje sposob zasifrovania hesla v konfiguracnom subore, podobne ako u userov. 0 - znamena vodec, 7 - znamena proprietarne. Za druhym cislom nasleduje heslo. malo by mat do 16 znakov.

Nastavenie časovačov v OSPF
  Smerovac(config-if)# ip ospf hello-interval 5
  Smerovac(config-if)# ip ospf dead-interval 20

Smerovace musia mat vzajomne nastaveny rovnaky interval pre hello aj pre dead, aby si korektne vedeli vymienat informacie. Je dobrym zvykom, ze dead interval je stvornasobkom intervalu, ktorym sa skusa, ci je protajsok "nazive". Ak teda smerovac na linke nezachyti hello packet, ma na to este dalsie tri opravne pokusy. Potom linku vyhlasi za mrtvu a po ostatnych rozhraniach zacne rozosielat LSU.

V oboch pripadoch sa interval uvadza v sekundach. U broadcastovych sieti s viacnasobnym pristupom, ako je napr. ethernet a pre point-to-point (teda dvojbodove/modemove) siete sa standartne pouziva 10 sekundovy hello interval a 40 sekundovy dead interval. Pre nonbroadcast siete s viacnasobnym pristupom, ako napriklad frame relay sa standartne pouziva pre hello 30 sekundovy a pre dead 120 sekundovy interval.

Distribucia implicitnej cesty v OSPF
  Smerovac(config)# ip route 0.0.0.0 0.0.0.0 172.17.0.9
  Smerovac(config)# router ospf 1
  Smerovac(config-router)# default-information originate

Predosle prikazy sposobia, ze smerovac sa stava v OSPF oblasti okrajovym a jeho cesta sa povazuje za vychodziu branu pre celu oblast (area). Tato informacia o vychodzej brane je distribuovana vsetkym smerovacom v oblasti.

Riešenie problémov s OSPF
príkazpopis
Smerovac# debug ip ospf events priebežne bude zobrazovať ladiace informácie o:
  • adjacencies - priľahlostiach
  • flooding informations - záplavy, kopa update packetov, keď sa niečo zapne, alebo vypne
  • designated route selection - vyber predurčeného smerovača
  • SPF kalkuláciách
Smerovac# show ip protocols zobrazí informácie o časovačoch, filtroch, metrikách, sieťach a iné nie len týkajúce sa procesu smerovania OSPF ale aj ostatných smerovacích protokolov
Smerovac# show ip ospf interface Tento príkaz umožní vypísať intervaly časovačov, priľahlosti susedov, zistiť či je OSPF povolene na rozhraní, zistiť či rozhrania OSPF smerovačov sú v jednej OSPF area (oblasti)
Smerovac# show ip ospf neighbor po rozhraniach porozpisuje, akých ma smerovač susedov
Smerovac# show ip ospf zobrazí známe cesty k smerovacom/sieťam aj odkiaľ ich smerovač pozná. Tento príkaz je najlepším spôsobom, ako popísať konektivitu medzi lokálnym smerovacom a sieťou okolo.
Smerovac# debug ip ospf packet zobrazí informáciu o každom prijatom OSPF pakete

Pri nefunkčnosti treba skontrolovať

Cisco commandy pre overenie cinnosti OSPF

show ip protocol
- zobrazi parametre casovacov, filtrov, metrik, sieti a dalsich o celom smerovaci.
show ip route - zobrazi cesty zo smerovacej tabulky aj to, odkial sa ich naucil
show ip ospf interface
- umozni zistit, ci je rozhranie nakonfigurovane do spravnej oblasti. Tiez to umoznuje zistit dlzky intervalov (hello, dead) a prilahlosti (spojenia so susedmi s cielom vymienat si informacie).
show ip ospf - zobrazi, kolko krat bola databaza prepocitana SPF algoritmom, ake su link-state update intervaly (za predpokladu ze prave nedoslo k zmene topologie).
show ip ospf neighbor detail - rospise podrobny zoznam susedov, ich priorit, ich stavov (napriklad init, exstart, full...).
show ip ospf database - vypise obsah topologickej databaze, ktora sa prave v smerovaci nachadza. Zaroven sa na vystup dostane ID smerovaca a ID OSPF procesu. Cislo typu databazy moze vzhliadnute pouzitim dalsich klucovych slov viz. www.cisco.com
clear ip route * - zmaze vsetky cesty v smerovacej tabulke (pochopitelne iba tie, ktore pochadzaju zo smerovacich protokolov)
clear ip route a.b.c.d - zmaze zo smerovacej tabulky cestu k sieti a.b.c.d
debug ip ospf events - zapne ladiace vypisy o vsetkych udalostiach, ktore sa dotykaju OSPF
debug ip ospf adj - zapne vypis OSPF adjecency events - teda vypis o vytvarani/zaniku prilahlosti so susednymi smerovacmi.