7. protokoli rutiranja
TRANSCRIPT
-
7/26/2019 7. Protokoli rutiranja
1/6
7. Protokoli rutiranja
Zadatak ruting protokola je da osposobe ruting tabele. To mozemo uraditi rucno staticko rutiranje. Ali to nije skalabilno, pa se cesce koristi dinamicko rutiranje. Dakle,
ruting protokoli sluze da nauce rutere kako da rutiraju. Osnovne funkcije ruting protokola
jesu da prikupljaju informacije o drugim podmrezama, treba da obaveste druge rutere osvojim podmrezama za koje oni imaju informacije, do odredjenih podmreza moze da
postoji vise ruta, pa treba da biraju najbolju i ako dodje do promene topologije,
oglasavaju drugim ruterima novo stanje i ponovo biraju najbolju rutu. Dinamicki ruterprotokoli dele se na interne (Interior) i eksterne (Exterior). eksternom se samo
koristi !"#. $nterni su kategorizovani u dve osnovne grupe Distance Vector Protocols i
Link-State Protocols.
$nternet kao jako rasprostranjena mreza mora da funkcionise na stabilan nacin. %vaki
korisnik je zaduzen za svoj deo mreze i te celine se nazivaju Autonomni sistemi. Oni se
medjusobno mogu povezati i to su eksterne veze. A unutar jednog autonomnog sistematreba da postoje usaglasena pravila i to je zadatak prvo mreznih administratora i onda se
uspostave protokoli rutiranja koji ce to omoguciti.
Distance &ector i 'ink %tate rade dosta razlicito jedan od drugog. D& je konvencionalniji
pristup, informacije se razmenjuju samo izmedju susednih rutera i to na osnovu dva
parametra. To su distanca do odredjene podmreze, a vektor nosi informaciju o pravcu gdese ta mreza nalazi, a u ovom slucaju to je ne(t)hop. %vaki ruter zna svoje mreze koje su
povezne na njega. Dakle, svi ruteri u mrezi znaju sve mreze. $ oni prenose ono sto oni
znaju, a i ono sto su naucili od svojih suseda. 'ink state protokoli razmenjuju mnogo vise
informacija i ideja je da svaki ruter zna celu topologiju mreze.
*uting protokole mozemo da posmatramo i prema tome kako tretiraju mreze, podmreze,
odnosno maske. %tariji nisu predvidjali koncept maski, a bez maski mi ne znamo koja jevelicina mreze. Odnosno, mozemo da znamo tako sto mozemo da uspostavimo masku
odredjene duzine sto nam daje fikse mreze, mreze fiksne velicine. Ovakvi ruting
protokoli nazivaju se +lassful ruting protokoli. A danas koristimo varijabilne maske&'%- i to su +lassless ruting protokoli.
Metrika oznacava vrednost, parametar koji nam oznacava koliko je dobro odredjena
ruta. /ao metrika se moze koristiti Hop count broj koraka rutera do podmreze,
Ban!it" kapacitet veze, brzina veze, #ost cena, koja moze da se definise, Dela$
kasnjenje *TT, Loa opterecenje linka, %elia&ilit$ pouzdanost veze. Tipicno se
koriste ili hop count ili band0idth.
#rema nekim mrezama mozemo da imamo i dva puta i mi biramo najbolji preko metrike.Ako je ista za obe putanje ne mozemo da izaberemo jednu, nego podelimo saobracaj, deoide na jednu, deo na drugu stranu. To se zove Loa Balancin'. %lucaju otkaza jedne,
druga ce preuzeti njen deo.
inistrati*na istancaukazuje koliko zelimo da dodelimo prioritet nekoj ruti. Ona je
vezana za ruting protokol i ima vecu tezinu u odnosu na ruting protokol. Dakle, ona
odredjuje preferencu prioritet ruta.
1
-
7/26/2019 7. Protokoli rutiranja
2/6
Distance &ector ruting protokoli rade tako sto se razmenjuju informacije izmedju
susednih rutera. Ta razmena poruka naziva se routing update, koji sadrzi adresu podmreze
koja se oglasava i metriku do podmreze. *uter moze da dobije sa vise strana informacijeo jednoj istoj mrezi. On dobija npr redom metrike 2, 3, 4. A zadatak rutera je da samo
najbolju rutu ubaci u ruting tabelu. On odlucuje na osnovu metrike, najmanja metrika ima
najmanje koraka i najbolja je. Distance vector protokoli stalno moraju da oglasavajusvoje informacije. -ora periodicno da se oglasava i to se sprovodi na red velicine
nekoliko desetina sekundi, u slucaju *$# protokola to je 35 sekundi. $mamo, dakle,
relativno cesto oglasavanje.
slucaju promene stanja u mrezi moramo da uspostavimo novo stacionarno
konzistentno stanje i taj proces se naziva konvergencija. +ilj je da konvergencija bude
sto brza. #roblem je sto mreza moze da bude dosta velika. /onvergencija najvise zavisiod routing update)a, ali i od brzine racunanja ruta i uspostavljanja ruting tabela. -ogu da
se jave ruting petlje. $mamo mehanizam Time To 'ive koji ce izbaciti pakete iz petlje, ali
nije dobro da se javi. -oze da se javi greskom u konfiguraciji, ali ovo kako je do sadapredstavljen ruting protokol nije dobro. #osle odredjenog vremena, rute u obe tabele ce
dostici maksimalni broj hopova, tj. maksimalnu metriku 6infinit76, rute su nevalidne,
brisu se iz tabele i ptelja se konacno prekida. Ali ruting update se i dalje desava i imamodrugi efekat koji se zove #ount-to-In+init$. Zato se uvode zastite od ruting petlji. 8a
nivou $# paketa to je Time To 'ive, ali od njega nema neke velike koristi. 8a nivou ruting
protokola imamo ,ri''ere upate, %oute Poisonin', Split "orion i Holo!n
,ier. +ilj je ubrzati konvergenciju. $deja je da se ne ceka sledeci routing update, vec
cim se desi promena da se ona odmah propagira i u tom trenutku posalje update do drugih
rutera. %to ce dosta ubrzati konvergenciju zato sto ce ta nova informacija relativno brzo
da propagira do susednog rutera i nadalje. *oute #oisoning je situacija kada se detektujeda je neka ruta pala. $ u tom slucaju ako je mi ne oglasimo, izbrisemo, to nam nije dobro,
vec zelimo na neki nacin da kazemo da ta ruta vise ne postoji. tom slucaju koristimo
metriku koja nosi najvecu, beskonacnu vrednost koja je nevalidna. slucaju *$#)a je to19 i mi cemo tu vrednost staviti za mrezu koja je pala da bismo oznacili da mreza ne
postoji. %alje se takav update. /ada to dodje do drugog rutera, ta vrednost ce se upisati,
ali ce se znati da je nevalidna. #ravilo %plit horizon kaze da ruter nikada nece oglasitineku rutu na stranu, na interfejs prema ruteru od koga je on tu rutu naucio. -edjutim
postoji jedan izuzetak koji se usvojio da se primenjuje, a to je da se oglasi nevalidna ruta
#oison *evers, u obrnutom slucaju. *uta se oglasava sa nevalidnom metrikom, ne moze
nista lose da se desi, ali imamo jednu dodatnu informaciju. 8pr. ako padne mreza naruteru 4, ona se brise iz ruting tabele i ona se prenosi kao #oison trigerovari update sa
metrikom 19 do rutera 1, koji je upisuje u ruting tabelu. ovom koraku, tada ce ruter 1
koji je naucio od rutera 4, oglasiti nazad, samo u ovom slucaju, kao neku vrstu
informaciju da on ima takvu informaciju u svojoj ruting tabeli. *uter 4 ce izignorisati to,vec ce samo znati za tu informaciju da postoji ta ruta kao nevalidna.
Ove tehnike ne obezbedjuju uvek odbranu od ruting petlji. 8pr. imamo tri rutera
povezana na trougao i svaki ruter oglasava svoje mreze i sto je naucio od svojih suseda.
8pr ruter 4. ce svoje mreze proslediti ruteru 3, ali i one mreze koje je naucio od rutera 1. $to rade svi ruteri na sve strane koristeci pravilo i split horizona, a videcemo da koriste i
trigger update, koji u slucaju prekida neke mreze, npr ruter 4 gubi informaciju o toj
4
-
7/26/2019 7. Protokoli rutiranja
3/6
mrezi, generise se triggered update sa metrikom 19. Ova mreza vise nije dostupna sa
rutera 4 i to se prenosi i do rutera 3 i do rutera 1. %tigla je informacija do rutera 3,
medjutim jos nije stiglo do rutera 1. *uter 1 pre nego sto je dobio informaciju da jeodredjena mreza pala, on je oglasio svoje dosadasnje znanje o toj mrezi i ta informacija
ide ka ruteru 3. *uter 3 je vec saznao da je metrika nevalidna, ali neposredno nakon toga
mu stize nova informacija od rutera 1, koja je zapravo zastarela. *uter 3 ce upisati tuvalidnu informaciju i on ce misliti da je mreza zaista validna. To nije dobro i potrebno je
uvesti jos jedan mehanizam koji se naziva :olddo0n Timer koji predstavlja jedan
vremenski brojac koji ce za svaku rutu cuvati njenu informaciju u ruting tabeli, cak i kadase ona izbrise, nece dozvoliti da nova informacija pregazi prethodnu informaciju.
:olddo0n Timer pamti informaciju za svaku rutu u tabeli. /ada se promeni ta
informacija i dodje neka nova informacija, u tom periodu se nece dozvoliti azuriranje
rute. Dakle, sprecice da rute brzo menjaju svoje vrednosti u ruting tabeli.
*uting protokoli kao i protokoli u racunarskim mrezama rade tako sto razmenjuju poruke
medju susedima. ;edan od tih protokola je %IP Protocol (%outin' In+oration
Protocol), to je Distance protokol i prvobitno je bio u verziji 1, koja se odnosi na +lassful
ruting informacije. +lassful znaci da se ne podrzavaju varijabilne duzine maske. *$#
koristi metriku hop)count. /oristi se broadcast adresiranje. *$# poruka ima svoj format.$ma polje koje oznacava verziju, polje koje oznacava $# adresu mreze. Ovih $# adresa u
jednoj poruci moze biti vise. *$# se enkapsulira u D# protokl, na 2. nivou i naravno u
$# paketu, koji se enkapsulira na nekom nizem nivou u odgovarajuci okvir. *$# paketeprepoznaju ruteri i samo ih oni i prihvataju. *$# ima admistrativnu distancu 145. 8e
podrzava se varijabilna duzina maske, ali mogu koristiti maske u mrezi odredjenih
duzina. ;os jedan razlog zasto je to +lassful ruting protokol, *$# u nekom domenu
podrzava odredjene mreze i masku odredjene duzine. *$# i drugi protokoli imajumogucnost da razmene rute iz jednog u drugi ruting protokol. #osto *$# nema mogucnost
da informise i o velicini maske, drugi ruting ptotokoli to mogu da podrzavaju, *$# ce na
toj granici svog domena da vrsi automatsko sumiranje, agregaciju svih ruta u klasu A, !ili +. Doslo je i do razvoja *$#)a verzije 4 koji je sada +lassless Distance &ector ruting
protokol, jer podrzava masku u routing updateu. kljucuje se i ne(t)hop u informaciju o
routing updateu, ukljucuje se i metrika. *$# 1 je prenosio okvire svima, a *$# 4 koristimalo bolji nacin prenosa, tako sto se ruting update prenosi multicastom, a ne
broadcastom. #rimice se samo od uredjaja, rutera koji imaju startovan *$#. *$# 4 unosi
dodatnu opciju koja moze da postavi odredjeni pass0ord, koristi se split horizon,
holddo0n timer, triggered update, to su slicnosti sa *$#)om verzije 1. -aksimalno 19hopova je dozvoljena metrika unreachable. Distance &ector ruting protokoli nisu
komplikovani, ni za razumevanje, ni za konfigurisanje i odrzavanje. 8isu mnogo zahtevni
po pitanju +# i memorije, oglasavaju se periodicno. #ored toga, smatra se da imaju
sporu konvergenciju i sporiju u vecim mrezama. %matra se i da imaju nedovoljnuskalabilnost.
/od 'ink)%tate ruting protokola sam nacin rada je dosta slozeniji. /od Distance &ector
ruting protokola imamo ruting updatee kada se oglasavaju rute, a za rutu kazemo da je to
informacija o mrezi i oglasava je onaj koji zna gde je ta mreza. 'ink)%tate rutingprotokoli oglasavaju neke dodatne informacije. Oglasavaju informacije koje oni vide o
svojim mrezama i to sa dosta detalja, koji je tip veze, koja je brzina, koje su mrezne
3
-
7/26/2019 7. Protokoli rutiranja
4/6
adrese i maske, ko je povezan na te rutere itd. Zatim ce te informacije da se propagiraju
kroz mrezu i to nisu rute, ruting updatei u smislu mreza, maska, ne(t)hop, vec su to dosta
detalja koje ruter vidi iz svog ugla. Te informacije se nazivaju LS (Link-State
*ertiseents) oglasavanje o stanju linkova. 8a osnovu ovih informacija ruteri ce da
prikupe znanje o svim linkovima u celoj mrezi u tom domenu i taj skup informacija se
naziva baza '%A ili LSDB (Link-State Data&ase). #osto su svi ruteri na istoj mrezi, svisu prikupili informacije o svima, pa ce '%D! od svih rutera biti identicni. 8akon toga cilj
svakog ruting protokola je da napravi ruting tabelu. *uter ce, poznavajuci celu mrezu, da
gleda svoju poziciju u mrezi i da odredi do svake mreze adrese najkracu putanju. /oristise algoritam SP (S"ortest Pat" irst). /ada se uspostavi najkraci put, dobice se neko
stablo, struktura koja iz jednog rutera do svake mreze vidi jedan put, na osnovu cega se
tek tada odredjuje ruting tabela. 'ink)%tate Advertisements se odnosi na razmenu
informacija o linkovima, a u 'ink)%tate terminologiji linkne oznacava vezu vec interfejsrutera. Link statene oznacava stanje, vec sve bitne informacije o interfejsima u tom
momentu, a to su $# adresa i maska mreze, $# adresa interfejsa, tip interfejsa, cena linka i
koji su suedni ruteri na tom linku. /ei'"&orspredstavljaju direktno povezane rutere.
'ink)%tate Advertisements poruke se razmenjuju tako sto se prvo otkrivaju susedni ruteri,nije potrebno da bude bilo koji ruter na drugoj strani da bi mogli da komuniciramo, nego
taj drugi ruter mora da ima usaglasene parametre. Ta usaglasenost se otkriva pomocu:ello poruka, koje se razmenjuju izmedju susednih rutera. Tek kada susedni ruteri
razmene ove poruke i parametre i saznaju da oba rutera pricaju isti protokol u istoj verziji
i da razumeju jedan drugog tada se oni smatraju da su ajacent nei'"&ours. Tek kada seuspostave adjacentsi izmedju rutera, tada ce ruteri da salju 'ink)%tate pakete koji ce da
sadrze informacije o svojim interfejsima i informacije o susedima, metrici, tipu linkova i
to se salje sada to svih adjacentsi ruterima. Te informacije moraju brzo i intenzivno da se
salju. Ovaj proces se naziva flooding, jer ce jedan ruter da posalje svoje informacijedrugim ruterima, drugi ruteri ce da prime te informacije i one moraju da propagiraju do
drugih rutera. Dakle, flooding je taj intenzivni proces kada se nesto promeni u celoj
mrezi, ta informacija mora brzo da prodje do svih. Znaci cilj je da se uspostavi rutingtabela, a da bismo to uradili moramo da imamo kompletnu '%D! bazu.
'%D! se uspostavlja tako sto, kako pristizu 'ink)%tate paketi od drugih rutera prekomreze, ruter ce da dopunjuje i da gradi, saznaje sve vise informacija o mrezi. /ada mreza
ima vise putanja, ruter treba iz svoje tacke u kojoj se nalazi, da za svaku pojedinacnu
mrezu koja se javlja da odredi koja je putanja najbolja. "ledaju se cene i najbolja putanja
je ona koja ima najmanju cenu. To se radi pomocu Dijkstrinog alogoritma. $z stablanajkracih puteva %#< tree, koje je jedinstveno za svaki ruter, kreira se ruting tabela.
0so&ine Link-State rutin' protokola1
#rvo imamo intenzivno slanje paketa u procesu koji se naziva flooding. Ali nije dobro sto
je tom prilikom mreza opterecena sa ovim stvarima i ne prenosi produktivni saobracaj./oristi se samo za brzo uspostavljanje ruting informacija.
-
7/26/2019 7. Protokoli rutiranja
5/6
malo vec kapaciteta. Dobro je da imamo i veci propusni opseg da bi se flooding sto pre
zavrsio. %recom, mreza je cesto stabilna, nemamo periodicnih updatea, imamo samo
oglasavanje hello poruka, koje se oglasavaju izmedju rutera samo da oglase da su zivi.Ako je mreza stabilna u duzem vremenskom intervalu, moze da se uspostavi odredjeni
flooding cisto da se refreshuju te informacije.
#osto imamo ovakav nacin rada, skalabilonst nam je dosta veliki problem, jer sa rastom
mreze raste i broj rutera i sam flooding ce biti intenzivniji, a i vise uredjaja moze da utice
na promenu topologije. %vaki put kada se to desi, mi cemo imati celu koja je floodovana.To nam nije mnogo dobro i sprecava se tako sto se mreza deli na odredjene oblasti kojima
se ogranicava prenos ovih informacija. Tako da pad i promena topologije u jednoj oblasti,
koja se zove rea, ne treba da utice na stanje u drugoj oblasti. #odelom u oblasti izoluju
se domeni floodovanja i ogranicava se ova osobina.
'ink)%tate ruting protokoli postoje u dve vrste= O%#< i $%)$%. 0SP (0pen S"ortest
Pat" irst)je standardizovala organizacija $>T
-
7/26/2019 7. Protokoli rutiranja
6/6
polje koje se naziva seen, sta je vidjeno, sta ruter zna, ali drugi ruter kada dobije hello
paket zna da postoji neki ruter koji se njemu obratio preko ovog paketa, pa ce on njemu
da odgovori isto sa hello porukom, da mu kaze svoje ime i u seen polje da postavi ono stoje on video, a to je prvi uredjaj. /ada prvi ruter primi poruku, zna da je drugi ruter
svestan njegovog postojanja. Oni su se upoznali i tada mu on odgovara sa dodatom
adresom drugog rutera u seen polju i drugi ruter kada vidi svoju adresu tada seuspostavlja susedstvo. Tom prilikom moraju da budu usaglaseni i svi drugi parametni.
%usedstvo se uspostavilo, ali nemamo informacije o cenama. Za to je prvo potrebno
razmeniti podatke i u toj vezi jedan mora da bude master, a drugi slave i u tom ExStartstanju se to uspostavlja. Onaj koji ima vec $D postaje master. Onda se prlazi u Exc"an'estanje kada ruteri treba da razmene D!D poruke koje sadrze kratke informacije o svim
'%A koje poseduju i prvo salje master, pa onda slave. *uteri ce prvo da ustanove u cemu
se razlikuju podaci, pa samo ono u cemu se razlikuju, to ce da se prenese. Onda se prelaziu Loain'stanje, gde se prenosi samo ono sto ruterima nedostaje. A na kraju se prelazi u
ull ajacenc$ stanje kada susedni ruteri imaju iste uparene sinhronizovane baze
podataka.
-edjutim, jos veca komplikacija nastaje ako imamo >thernet veze sa vise pristupa koji
mogu da se dese, a to su mreze multiaccess tipa. #ostoji ? mreza na kojima radi O%#thernetu ili