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.
- OSPF oblasi mozu byt cislovane od 0 do 65535.
- single area je vzdy cislovana ako 0 (nula)
- v multi-area (viaoblastnych) OSPF sietach cislo 0 (nula)
reprezentuje chrbticovu oblast - backbone area
cost - cena linky - hodnota priradena kazdej linke zvlast,
vypovedajuca o jej kvalite. U OSPF sa odvadza od sirky pasma priepustnosti
linky/jej prenosovej rychlosti.
| typ linky |
obvykla cena |
| 56 kbps serial link |
1785 |
| T1 (1.544 Mbps serial link) |
64 |
| E1 (2.048 Mbps serial link) |
48 |
| 4 Mbps Token Ring |
25 |
| Ethernet 10Bate? |
10 |
| 16 Mbps Token Ring |
6 |
| 100 Mbps Fast Ethernet, FDDI |
1 |
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:
- fiktívne zmeníme priepustnosť linky príkazom bandwidth kbs (kilobits
per second)
Smerovac(config-if)# bandwidth 64
- explicitne nastavíme cenu linky podľa potreby (1 .. 65535) Cislo 1 reprezentuje
rýchlosť 100 Mbps. Smerovac(config-if)#
ip ospf cost 1
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:
- Hello: upevňuje a udržuje susedské vzťahy
- Database Description (opis databázy): opis obsahu topologickej databázy. Správy sú vymenené, keď susedstvo je inicializované
- Link-state Request (LSR): požiadavky z topologickej databázy od susedného smerovača. Tieto správy sú vymenené čo smerovač objaví (pri skúmaní
databázového popisného paketu), že časti jeho topologickej databázy sú neplatné
- Link-state Update (LSU): odpoveď na link-state požiadavkový paket. Správy sú tiež používané na reguláciu rozptýlenia LSA. Niekoľko LSA môže byť zahrnutých vnútri jednoduchého aktualizačného link-state paketu
- Link-state Acknowledgment (LSA): potvrdenia aktualizácií link-state paketov
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
- smerovac sa na zaciatku snazi vytvorit adjacency (prilahlost)
s najblizsim/najlepsim/susediacim smerovacom v kazdej sieti do ktorej je
pripojený
- v multiaccess sietach sa nasledne konaju volby o DR a BDR (designated
router (predurceny) a o zaloznika)
- link-state databaza je spracovana SPF algoritmom, pricom
sa zostavia najlepsie cesty k jednotlivym znamym cielom
- každých 30 min. alebo ked dojde k zmene/poruche , smerovac, ktory
ju zaznamena, vysle do siete LSU (link-state update) na adresu
224.0.0.6 - vsetkym DR/BDR
- DR/BDR odpovedia LSAck - link-state acknowledge - čím potvrdia ze
zmenu zachytili.
- DR/BDR - rozošle LSU ostatnym smerovacom v broadcastovej
domene
- ostatne smerovače potvrdia priatie LSU packetov LSAck DR/BDR
predurcenemu smerovacu/zaloznikovi
- ostatne smerovače rozoslu LSU do dalsich k sebe pripojenych sieti
- jedotlive smerovače si prepočítajú databázy a aktualizujú si svoje
smerovacie tabuľky
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
- priorita/cislo hovori o tom, ci bude smerovac zvoleny sa DR
(designated router (predurceny)), alebo nie.
- ak zadame nulu, v paxi tym vylucime zvolenie smerovaca za predurceny
- najvyssia hodnota smerovaca v broadcastovej domene ma za nasledok jeho
zvolenie za predurceny
- druha najvyssia hodnota ma za nasledok zvolenie za BDR
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íkaz | popis |
| 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ť
- či majú smerovače nakonfigurovanú rovnakú sieťovú masku, OSPF hello
interval a OSPF dead interval
- Maju spojenie rozhrania rovnakeho sietoveho typu (PPP/HDLC...)?
- Su v smerovacoch (na ich rozhraniach) rovnake dvojice klucov a
hesiel?
- Nemaju nahodou smerovace rovnake identifikatory (max. IP adresy,
pozri loopback rozhrania)
- Su rozhrania zapnute (je medzi nimi IP conectivita)?
- Maju rozhrania korektne IP adresy a masky ?
- Maju zdielane informacie o sietach v nastaveni OSPF nastavene
spravne wild-chard masky ?
- Su linky zaradene do spravnych oblasti (area)
? sú všetci susedia členovia tej istej oblasti
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.