You are on page 1of 41

Univerzitet u Novom Sadu

Tehnički fakultet »Mihajlo Pupin«


Zrenjanin

Prikaz protokola za dinamičko rutiranje – BGP


-diplomski rad-

Mentor: Autor:
prof. dr Borislav Odadžić Ivana Grek
137/02-11
dipl. ing. informatike

Zrenjanin, 2009. godina


Sadržaj:
1. Uvod
2. Rutiranje i protokoli rutiranja
2.1 Statičko rutiranje
2.2 Dinamičko rutiranje
2.2.1 Distance vector protokoli
2.2.1.1 RIP
2.2.1.2 IGRP i EIGRP
2.2.2 Link-state protokoli
2.2.2.1 IS-IS
2.2.2.2 OSPF
3. BGP
3.1 Osnovne osobine protokola
3.2 Autonomni sistemi
3.3 Osnovni mehanizam funkcionisanja BGP-a
3.3.1 Vrste poruka
3.3.1.1 Zaglavlje poruke
3.3.1.2 Open poruka
3.3.1.3 Update poruka
3.3.1.4 Keepalive poruka
3.3.1.5 Notification poruka
3.3.2 Stanja uspostavljanja BGP sesije
3.3.3 Atributi putanje
3.3.3.1 Atributi važnosti (weight)
3.3.3.2 Atributi lokalne prednosti (local-preference)
3.3.3.3 Višeizlazni diskriminišući atributi (MED)
3.3.3.4 Izvorni atributi (origin)
3.3.3.5 Atributi puta (AS-path)
3.3.3.6 Atribut sledećeg koraka (next-hop)
3.3.3.7 Community atributi
3.3.4 Redistribucija ruta
3.3.5 Proces izbora najbolje rute u BGP-u
3.4 Route reflector i konfederacije
3.5 Primer napada na sajt YouTube pomoću BGP-a
3.6 Primer povezivanja više rutera pomoću BGP-a
3.6.1 Prikaz rutera, linkova i IP adresa
3.6.2 Konfiguracija BGP-a
3.6.3 Uspostavljanje BGP sesije i razmena ruta
3.6.4 Prekid jednog od linkova
4. Zaključak
5. Spisak skraćenica korišćenih u tekstu
6. Literatura
7. Prilozi

2
1. Uvod

Internet je računarska mreža koja međusobno povezuje milione računarskih uređaja


širom sveta. Donedavno su većinu ovih uređaja činili tradicionalni stoni PC računari,
Linux radne stanice i tzv. serveri koji čuvaju i prenose informacije kao što su veb
stranice i elektronska pošta. Međutim, sve više za internet neubičajenih krajnjih sistema
(uređaja), kao što su PDA (Personal Digital Assistant) računari, televizori, prenosivi
računari, mobilni telefoni, automobili, senzori za praćenje stanja životne sredine, okviri
za slike, kućni elektronski i bezbednosni sistemi povezuje se sa internetom. Štaviše,
izraz računarska mreža počinje da zvuči pomalo zastarelo imajući u vidu sve veći broj
netradicionalnih uređaja koji se povezuju sa internetom.

Broj uredjaja koji koristi internet raste velikom brzinom što je pokazano na slici 1.,
trenutno ih ima vise od 1.650.000.000 .

Slika 1. Porast broja korisnika interneta1

Krajnji sistemi i ostali sastavni delovi interneta, koriste protokole koji kontrolišu slanje i
prijem informacija u okviru interneta. TCP (Transmission Control Protocol) i IP
(Internet Protocol) predstavljaju dva najvažnija internet protokola. Glavni internet
protokoli opšte su poznati pod nazivom TCP/IP.

Imajući u vidu značaj protokola na internetu, veoma je važno da postoji opšta saglasnost
o tome šta svaki od tih protokola tačno radi. Za to su zaduženi standardi. Za internet
standarde zadužena je Tehnička radna grupa za internet (Internet Engineering Task
Force, IETF). IETF standardi nazivaju se RFC dokumenti (Request For Comments –
zahtevi za komentarima). RFC dokumenti nastali su kao opšti zahtevi za komentarima
(otuda i njihov naziv) kako bi se rešili problemi pri projektovanju mreža i protokola sa
kojima su se suočavali projektanti mreža koje su prethodile internetu. RFC dokumenti
1
Izvor http://50X15.com

3
puni su tehničkih izraza i veoma su detaljni. Njima su definisani protokoli kao što su
TCP, IP, HTTP (za veb) i SMTP (za elektronsku poštu).

Krajnji sistemi međusobno su povezani u mrežu komunikacionim linkovima i uređajima


za razmenu paketa. Postoji više različitih oblika i modela uređaja za razmenu paketa, ali
dva najrasprostanjenija u savremenom internetu su ruteri i svičevi. Od polaznog do
odredisnog sistema niz komunikacionih linkova i uredjaja za razmenu paketa poznati su
kao ruta ili putanja kroz mrežu. Na slici 2. prikazana je mapa ruta koja čini internet
mrežu danas.

Slika 2. Internet mapa2

Krajnji sistemi pristupaju internetu preko posrednika za internet usluge (Internet Service
Provider, ISP) i to mogu biti posrednici koji svoje usluge pružaju domaćinstvima, kao
što su AOL ili telefonske kompanije i kablovski operateri, zatim posrednici za
preduzeća i univerzitete, kao i posrednici kao što je, na primer, kompanija T-Mobile
koja obezbeđuje bežični pristup na aerodromima, u hotelima, kafeima i na drugim
2
Izvor: http://www.wikipedia.org

4
javnim mestima. Svaki posrednik za internet usluge, u stvari, predstavlja mrežu rutera i
komunikacionih linkova. Postoji neformalna podela internet provajdera u tri sloja:
– Sloj 1 –Mreža (ISP) koja razmenjuje saobraćaj sa svim ostalim mrežama čime
ima mogućnost da dođe do svih destinacija na Internetu.
– Sloj 2 -Mreža (ISP) koja razmenjuje saobraćaj sa nekim mrežama, ali mora da
kupi IP tranzit kako bi imala pristup do nekih destinacija na Internetu
– Sloj 3 – Mreža koja isključivo kupuje tranzit do svih destinacija na Internetu.

Provajderi prvog sloja su:


– AOL Transit Data Network (ATDN) (AS1668)
– AT&T (AS7018)
– Global Crossing (GX) (AS3549)
– Level 3 (AS3356)
– Verizon Business (UUNET) (AS701)
– NTT Communications / (Verio) (AS2914)
– Qwest (AS209)
– SAVVIS (AS3561)
– Sprint Nextel Corporation (AS1239)

Osnovu interneta čine protokoli koji odredjuju putanju kojom će se doći do željene
destinacije. Protokol koji koriste velike mreže za razmenu informacija o putanjama
između sebe je Border Gataway Protocol – BGP tj. trenutno aktuelna verzija BGPv4.

5
2. Rutiranje i protokoli rutiranja

Jedan od najkompleksnijih i najvažnijih aspekata projektovanja mreže sa komutacijom


paketa odnosi se na rutiranje. Osnovna funkcija mreže sa razmenom paketa sastoji se u
tome što se prihvataju paketi od izvorišne stanice i predaju se odredišnoj stanici. Da bi
se ostvario ovaj cilj, neophodno je odrediti put, ili rutu, poruka kroz mrežu. U opštem
slučaju postoji više od jednog puta.

Ruter radi na mrežnom sloju OSI modela. Ruter je uređaj koji se koristi za spajanje ili
deljenje mreža. On povezuje mnogo manjih mreža u veću mrežu, koja se naziva
međumreža (internetwork), ili deli veliku mrežu u manje podmreže da bi se poboljšale
performanse i upravljivost.

Rutiranje se vrši na osnovu tabele rutiranja. Podaci u tabelu se mogu unositi ručno što
se naziva statičkim rutiranjem ili da se podaci dobijaju od drugih rutera sa kojim je
povezan što se naziva dinamičkim rutiranjem.

Kod statičkog rutiranja svaku rutu pojedinacno unosi administrator što bi u velikim
mrežama podrazumevalo rekonfiguraciju svih rutera. Statičke rute nemaju mogućnist
adaptacije na promenu topologije mreze.

Kad je u pitanju dinamičko rutiranje, ruteri međusobno razmenjuju tabele rutiranja.


Informacije se razmenjuju po određenim pravilima koja su definisana u protokolu i
algoritmu rutiranja. Protokoli rutiranja se mogu podeliti na osnovu oblasti rutiranja na
sledeći način:
– Interni protokoli rutiranja ( Interior Gataway Routing Protocols - IGRP)
- Protokoli rutiranja na osnovu vektora udaljensti ( Distance vector )
- Protokoli rutiranja na osnovu stanja linka ( Link-state )
– Eksterni protokoli rutiranja ( Exterior Gataway Routing Protocols - EGRP)
- Protokoli rutiranja na osnovu vektora putanje ( Path vector )

U Tabeli 1. je prikazana klasifikacija protokola rutiranja.

INTERNI EKSTERNI
Distance vector Link-state Path vector
RIP IS-IS BGP
IGRP OSPF EGP
EIGRP

Tabela1. Klasifikacija protokola rutiranja

6
2.1 Statičko rutiranje

Statičko rutiranje je ono u kome se ručno unose podaci o udaljenim mrežama i kako se
do njih stiže. Prednost ove konfiguracije je u tome što je ona najjednostavnija moguća.
Mana je u tome što je ovo zadovoljavajuće samo u malim mrežama sa malo rutera, jer
kod menjanja topologije mreže mora ručno da se promeni svaka statička ruta na dosta
(možda čak i kod svih) rutera.

Statička ruta može da ukazuje ili na izlazni interfejs na datom ruteru, ako nije u pitanju
medijum na kojem može da bude više rutera kao što je ethernet, ili na adresu interfejsa
susednog rutera.

2.2 Dinamičko rutiranje

Kod dinamičkog rutiranja rute se u tabelu rutiranja unose tako što ruteri međusobno
razmenjuju njima poznate rute na osnovu pravila koja se zovu protokoli rutiranja.
Protokol rutiranja (engl. Routing protocol) predstavlja set pravila kojim ruteri dinamički
razmenjuju informacije o putanjama (rutama) kojima paket treba da se kreće da bi
dosegao željenu destinaciju. Kada se dogodi neka izmena u topologiji računarske mreže,
najbliži ruter kod koga se desila promena, zapisuje je u svoju tabelu rutiranja, a potom
protokoli rutiranja pokreću mehanizme kojima se informacija o promeni u topologiji
prosleđuje ostalim uređajima u mreži. Na ovaj način ruteri dinamički ažuriraju svoje
tabele rutiranja. Ovi protokoli pripadaju sloju mreže referentnog OSI modela.

Karakteristike protokola rutiranja su:


- Vreme konvergencije - za mrežu kažemo da je konvergentna kada su tabele rutiranja
kod svih rutera unutar mreže, kompletne i ispravne. Vreme konvergencije je shodno
tome, vreme za koje mreža iskonvergira nakon izvršene promene u topologiji
(srazmerno je veličini mreže). U vreme konvergencije je uključeno:
- Razmena informacija
- Obrada informacija, procena najboljih ruta
- Unošenje izmena u tabele rutiranja
- Skalabilnost - definiše kolika mreža može da bude, u zavisnosti od protokola koji se
koristi.
- Klasnost - protokoli rutiranja mogu da budu klasni i bezklasni.
- Klasni su stariji protokoli (RIPv1 i IGRP) koji podrazumevaju da adresa
pripada nekoj od klasa (A,B,C).
- Bezklasni, pri razmeni informacija uključuju podmrežnu masku uz adresu
mreže.
- Zauzetost resursa - protokoli rutiranja pri razmeni i obradi informacija zauzimaju
hardverske resurse (memoriju, procesorsko vreme ili propusni opseg linka). Veća
potrebna zauzetost resursa od strane protokola rutiranja zahteva jaču opremu unutar
mreže.
- Implementacija i održavanje - definiše nivo znanja koji je potrebno da ima
administrator mreže, kako bi primenio i održavao mrežu koja radi sa određenim
protokolima rutiranja.

7
2.2.1 Distance vector protokoli

Protokoli rutiranja na osnovu vektora udaljenosti (engl. Distance Vector Routing


Protocols) uključuju protokole kao što su: RIP, IGRP i EIGRP. Protokoli RIP i IGRP
funkcionišu po principu Belman-Ford algoritma (engl. Bellman-Ford Algorithm), dok je
EIGRP napredniji po tom pitanju i koristi (DUAL) (engl. Diffusing Update Algorithm).
Kao što i samo ime govori, ruteri razmenjuju informacije kojima saznaju udaljenost
(distancu) i pravac (interfejs ili ruter) ka nekoj od udaljenih mreža, pri čemu nemaju
informaciju o samom putu do odredišne mreže. Razmenjivanje informacija se vrši tako
što svaki od rutera periodično prosleđuje celu tabelu rutiranja susednim ruterima.

2.2.1.1 RIP

RIP (engl. Routing Information Protocol) je prvi razvijen i najjednostavniji protokol


rutiranja. Zbog svoje jednostavnosti danas se još uvek koristi u mrežama sa malim
brojem rutera. Prvobitno je opisan u RFC 1058 dokumentu, da bi kasnije nakon niza
izmena izašla i druga, poboljšana verzija protokola RIPv2 definisana u dokumentu RFC
2453 (novembra 1998.). RIP je interni protokol rutiranja (engl. Interior Getaway
Routing Protocols). Koristeći Belman-Fordov algoritam (engl. Bellman-Ford
Algorithm) dinamički ažurira tabele rutiranja rutera unutar istog autonomnog sistema.
Kao metriku uzima skok (engl. hop) to jest udaljenost od mreže, što ga svrstava u grupu
protokola rutiranja na osnovu vektora udaljenosti (engl. Distance Vector Routing
Protocols).

RIPv1 je razvijen 1980ih. godina u kompaniji Ziroks (engl. Xerox) iz ranije verzije
protokola (GWINFO) (engl. Gateway Information Protocol). Razvojem Ziroksovih
mrežnih sistema iz (GWINFO) protokola proizašao je RIPv1. Ubrzo, protokol je bio
primenjen u mrežnim sistemima različitih proizvođača, što je dovelo do njegove
standardizacije 1988. godine.

RIPv1 ima sledeće ključne karakteristike:


- Za metriku uzima udaljenost izraženu u broju rutera do odredišne rute (IP mreže):
svaki pređeni ruter predstavlja jedan skok.
- Najviše skokova do destinacije može biti 15, iznad čega se dotična mreža smatra
nedosežnom.
- RIPv1 informacije o rutama se šalju po svim interfejsima (kao broadkast poruke).
- Poruke se šalju periodično na svakih 30 sekundi ili pri promeni topologije.
- Kao adrese mreža, koristi klasne IP adrese (u porukama se ne šalje maska).
Polja RIPv1 poruke su:
- Komanda (8 bita): određuje tip poruke (da li je poruka zahtev ili odgovor na zahtev).
- Verzija (8 bita): za prvu verziju RIP protokola uzima se vrednost 1.
- Polje popunjeno nulama (16/32 bita): polja predviđena za dalju nadogradnju
protokola.
- Korišćena familija adresa (AFI) (engl. Address family identifier) (16 bita): Za IP
protokol uzima se vrednost 1.
- Adresa mreže (32 bita): klasna adresa mreže, adresa odredišne rute.
- Metrika (32 bita): udaljenost izražena u broju rutera do odredišne rute.

8
RIPv2 uvodi sledeća poboljšanja u odnosu na RIPv1:
- Predstavlja bezklasan protokol rutiranja, pored adrese mreže navodi i podmrežnu
masku.
- Poseduje mehanizme autentikacije, uvedene radi sigurnosti.
- Podržava podmrežne maske promenljive dužine VLSM (engl. Variable Length Subnet
Masking)
- Umesto broadkast adresa koristi multikast adrese.
- Podržava manuelno sumiranje ruta.

RIPng (engl. Routing Information Protocol next generation) definisan je u dokumentu


RFC 2080, predstavlja jednostavan protokol rutiranja, kao i njegovi prethodnici on je
isto interni protokol rutiranja na osnovu vektora udaljenosti. RIPng ima sledeće
karakteristike:
- Sličan je RIPv2, na njemu je baziran.
- Koristi grupu multikast adresa FF02::9 za slanje paketa.
- Koristi IPv6 za transport, sadrži pored IPv6 adrese mreže i prefiks.
- Za slanje izmena uzima UDP port 521

2.2.1.2 IGRP i EIGRP

IGRP (engl. Interior Gateway Routing Protocol) je protokol na osnovu vektora


udaljenosti, interni ruting protokol (IGP protokol) napravljen od strane kompanije
Cisco. IGRP je napravljen delimično da prevaziđe ograničenja RIP-a kada se koristi u
velikim mrežama (maksimalni broj skokova samo 15). IGRP podržava više metrika za
svaku rutu, uključujući protok, kašnjenje, opterećenja, MULTICAST MTU i
pouzdanosti. Maksimalan broj skokova IGRP paketima je 255 , kao i to da se tabele sa
rutama emituju svakih 90 sekundi.

IGRP se smatra klasnim ruting protokolom jer protokol nema polje za mrežnu masku,
ruter pretpostavlja da su sve adrese interfejsa u okviru iste klase A, B ili C. Klasni
protokoli su postali manje popularni zbog rasipajna adresnog prostora.

EIGRP (engl. Enhanced Interior Gateway Routing Protocol) razvijen (1992.) je interni,
bezklasni protokol rutiranja koji radi po algoritmu na osnovu vektora udaljenosti. Kao
što i samo ime kaže, razvio se kao nadogradnja klasnog IGRP iz (1985.) (engl. Interior
Gateway Routing Protocol). Za razliku od većine ostalih standardizovanih protokola,
ovi protokoli su vlasništvo Cisco Systems korporacije, podržani samo u njihovim
mrežnim uređajima (ruterima). Umesto broj skokova (udaljenost izražena u broju rutera
do mreže), EIGRP kao metriku uzima broj skokova pri čemu svakom, do odredišne rute
daje težinu formiranu na osnovu propusnih opsega, zakašnjenja, pouzdanosti i
opterećenosti. Isto tako mehanizam pomoću kojeg razmenjuje i obrađuje informacije o
putanjama umesto Belman-Fordovog algoritma (engl. Bellman-Ford Algorithm) koristi
napredniji DUAL (engl. Diffusing Update Algorithm).

9
2.2.2 Link-state protokoli

Rad protokola rutiranja na osnovu stanja linka (engl. Link-State Routing Protocols) se
zasniva na Dajkstrinom (SPF) algoritmu, poznati su još kao (SPF) protokoli (engl.
Shortest Path First) najpre najkraća putanja. Kako su ovi protokoli interni protokoli
rutiranja, oni određuju najkraće putanje unutar istog autonomnog sistema, koji se u
zavisnosti od veličine i složenosti može dalje hijerarhijski podeliti na zone. Pri
dostizanju konvergencije ruteri koji pripadaju istoj zoni izvršavaju sledeće procese:
- Svaki ruter ispituje svoje veze ka susednim ruterima ili mrežama.
- Razmenjujući Hello pakete otkriva susede, uspostavlja i održava susedske veze.
- Svaki ruter formira LSP (engl. Link-State Packet) koji sadrži informacije o stanju
svake direktno konektovane veze.
- Svaki ruter prosleđuje LSP ka susedima koji na osnovu njih formiraju svoje baze
podataka.
(Susedi dalje prosleđuju svojim susedima LSP, sve dok svi ruteri unutar zone ne prime
pakete od svakog rutera)
- Koristeći baze podataka, ruteri formiraju topologiju mreže.
- Potom ka svakoj od mreža određuju najkraće putanje koje unose u tabele rutiranja
(mreža je iskonvergirana).
Ovoj grupi protokola pripadaju:
OSPF, (engl. Open Shortest Path First)
DNA Phase V protokol za DEC mrežna okruženja, preteča IS-IS protokola.
IS-IS, (engl. Intermediate System to Intermediate System)
NLSP Novellova mrežna okruženja, (engl. NetWare Link Services Protocol)
AURP, (engl. AppleTalk Update Routing Protocol) iz AppleTalk skupa protokola.

2.2.2.1 IS-IS

IS-IS (engl. Intermediate System to Intermediate System) je mrežni protokol rutiranja.


Osnovna uloga ovog protokola je računanje najkraće putanje za mrežni paket unutar
autonomnog sistema, a ne između autonomnih sistema. Zbog ovoga, IS-IS je interni
protokol rutiranja IGP (engl. Interior Gateway Protocol). Zasniva se na Dajkstrinom
algoritmu.

Začet od firme DEC (engl. Digital Equipment Corporation), prve specifikacije


protokola su bile publikovane 1987. godine pod standardom ISO 10589. Ovaj dokument
je nanovo publikovan u specifikaciji RFC 1142. Ovaj protokol je kroz vreme doživeo
važna unapređenja. Od 1999. IETF je preuzeo odgovornost za njegovu standardizaciju.
Dva glavna napretka koja potiču od ove grupe su: definicja strukture TLV (engl. Type-
Lenght-Value) i precizna objašnjenja operacionih funkcija, koja su omogućila
homogenije implemetacije protokola. Do tada su proizvođači imali veću slobodu za
različite interpretacije. Osmišljen da se koristi u složenim mrežama koje se mogu
dinamički razvijati. Iz tog razloga, autonomni sistem, to jest IS-IS mrežni domen,
organizovan je hijerarhijski po zonama. To omogućava bolju kontrolu domena, manju
tabelu ruta (mreža) i samim tim brže funkcionisanje rutera.

10
IS-IS zone se mogu smatrati kao mali potskupovi autonomnog sistema. Pritom, zone su
mrežni domeni u tehničkom, a ne administrativnom smislu, jer nisu rezultat polisa, već
su jednostavno granica jedne grupe rutera.
IS-IS ruter može funkcionisati unutar jedne zone ili između više zona. Analogija se
može pronaći u odnosu između IGP-EGP protokola rutiranja. Za razliku od OSPF
rutera, IS-IS ruter pripada jednoj i samo jednoj zoni.
IS-IS ruter operiše u sledećim nivoima:
- Nivo 0 : rutiranje sa krajnjim uređajem (na primer server) ES (engl. End System)
- Nivo 1 : (N1) unutar zone
- Nivo 2 : (N2) između zona
- Nivo 3 : između mrežnih domena, slično BGP protokolu

Većina implementacija ovog protokola podržava samo nivoe 1 i 2. IS-IS ruter


komunicira isključivo sa ruterima koji su u njegovom nivou. Ruteri koji imaju ulogu da
operišu u oba nivoa, označeni su sa N1-2.
Funkcije N1 rutera su ograničene na jednu zasebnu zonu. Paketi koji su upućeni ka
mreži van zone, usmereni su do prvog N1-2 rutera.
Rutiranje među zonama vrši N2 ruter. On nema topološke detalje unutar jedne zone.
N1-2 ruter je posrednik između rutera N1 i N2. On poseduje informacije oba nivoa, ima
karakteristike i sposobnosti oba tipa rutera.
Svi ruteri izgrađuju baze u kojima su zapisane informacije o topologiji mreže. Ruteri
istog nivoa imaju identičnu "mapu" mreže. Kako bi se ove topološke baze izgradile,
potrebno je prvo poznavanje neposrednih veza. Tako se IS-IS ruter uz pomoć HELLO
protokola prvo upozna sa svojim direktno vezanim IS-IS susedima.
Četiri metrike su definisane:
- Osnovna, podrazumevana metrika (engl. Default)
- Zakašnjenje (engl. Delay) : kašnjenje paketa u prenosu
- Trošak (engl. Expense) : monetarna vrednost mrežnog prenosa
- Greška (engl. Error) : verovatnoća pojavljivanja greške u prenosu podataka
Od ovih metrika, koristi se pre svega osnovna metrika. Ona se izražava u pozitivnom,
celom broju i najčešće označava propusni kapacitet veze. Njena je vrednost proizvoljno
dodeljena IS-IS vezama od strane administratora. Što je vrednost manja, to znači da je
veza bolja.

2.2.2.2 OSPF

OSPF (engl. Open Shortest Path First) u informatici (mrežnim komunikacijama),


predstavlja interni, protokol rutiranja stanja linka. OSPF je bezklasni protokol rutiranja
koji je uveo koncept podele autonomnog sistema na zone zarad veće skalabilnosti.
Razvoj OSPF protokola započet je 1987. godine kada je organizacija IEEE (engl.
Institute of Electrical and Electronics Engineers) formirala radnu grupu koja već 1989.
daje specifikacije prve verzije OSPFv1 objavljene u dokumentu RFC 1131. 1991.
godine u vreme kada ISO radi na svojoj verziji protokola rutiranja stanja linka IS-IS,
IEEE objavljuje tehnički poboljšanu verziju OSPFv2 da bi kasnije nakon niza izmena
1999. izašla i treća verzija OSPFv3 za IPv6 protokol ažurirana 2008. godine u
dokumentu RFC 5340.

Baziran je na Dijkstra algoritmu i koristi bezklasno rutiranje. Za metriku koristi cenu


putanje koja se pamti u 16- bitnom broju, što je cena manja to je bolja putanja. Ima bržu
konvergenciju nego protokoli koji koriste distance vector algoritam. Podržava

11
autentifikaciju korisnika, balansiranje saobraćaja (engl. load balancing) i koristi
neadresirane interfejse za serijske linkove.
Cena putanje je obrnuto proporcionalna protoku na linku (10 8 / protok). Zbog prelaska
na veće protoke pojavio se problem inicijalne vrednosti za proračun cene pa su
proizvođači rutera omogućili da se poveća inicijalna vrednost na 109 ili čak i veća.
Proces razmene ruta ima više faza:
1. Ruter svima pošalje komletnu bazu podataka o linkovima – generiše link state
advertisements – LAS flooding
2. Na osnovu tih podataka svaki ruter, koristeći SPF algoritam vrši izračunavanje
svoje taele rutiranja
3. Po formiranju tabele rutiranja svaki ruter povremeno pošalje kratki Hello paket
kojim signalizira da je i dalje u funkciji
4. Tek na svakih 30 minuta ruter generiše LSA
5. U slučaju da dođe do promene u topologiji ona se odmah svima šaljeposle čega
sleduje proračun tabele rutiranja

U slučaju velike mreže, proračun tabele rutiranja i SPF algoritma zahteva značajne
resurse. U cilju smanjenja potrebnih resursa za rad OSPF protokola, velika mreža se deli
na oblasti. Unutar oblasti se koristi LSA i SPF algoritam; između oblasti se oglašavaju
rute po principu distance vector protokola. Podelom na oblasti se postiže da se ponovni
proračun prilikom promene topologije obavlja samo unutar jedne oblasti. Između oblasti
se koristi i agregacija ruta u cilju smanjenja tabele rutiranja. Jedna oblast se proglašava
za backbone oblast i ona ima identifikaciju 0 (nula). Ostale oblasti dobijaju
identifikacije od 1 pa nadalje (32-bitna identifikacija). Sve oblasti moraju da imaju
direktnu vezu sa backbone oblašću. Razmena informacija o dostupnosti pojedinih mreža
se obavlja kroz backbone oblast. Ako slučajno postoji oblast koja nije vezana za
backboneoblast, tada se formira virtuelni link (tunel) do backbone oblasti. Kroz ovaj
tunel se šalju informacije o delu mreže u oblasti ka backbone-u.
Tipovi paketa koji se razmenjuju u ovom protokolu:
- Hello - Uspostavlja i održava adjacency sa susedima.
- Database description Packet - Opisuje sadržaj link-state baze na ruteru.
- Link state request - Zahteva specifičan deo link-state baze.
- Link state update - Prenosi LSA do susednih rutera.
- Link state acknowledgement - Potvrđuje prijem susedovih LSA.
Svi podprotokoli koriste isto zaglavlje paketa koji sadrži sledeće vrednosti:
Version –Verzija OSPF protokola
Type –Tip paketa; ima 5 tipova paketa
Packet Length–Ukupna dužina OSPF paketa u bajtovima
Router ID - ID rutera koji je generisao paket; 32-bitni broj
Area ID - 32-bitni broj koji identifikuje oblast (area) kojoj ovaj paket pripada; paket
koji ide kroz virtuelni link uvek ima oznaku backbone oblasti
Checksum - standardni IP checksum koji obuhvata kompletan OSPF paket osim 64 bita
koji se koriste za autentifikaciju
AuType - Identifikuje proceduru za autentifikaciju koja se koristi i može biti:
0 –Null authentication
1 –simple password
2 –cryptographic authentication
3-...–buduća upotreba
Authentication–polje dužine 64 bita koje se koristi za autentifikaciju.

12
3. BGP

3.1 Uvod u BGP

BGP (engl. Border Gatawey Protocol) je osnovni protokol rutiranja Interneta. Nastao je
1989. godine i bio je definisan u dokumentu RFC 1105. Danasnja verzija BGP4 je
definisana 1995. godine u dokumentu RFC 4271.
BGP je distance vector protokol, gde svaki BGP čvor prima routing informacije od
susednog downstream rutera, na osnovu njih izračunava svoju routing tabelu i
prosleđuje je susednom upstream ruteru. Za razliku od ostalih distance vector protokola,
BGP koristi listu AS (engl. Autonomous Systems) brojeva, koje pridružuje svakoj ruti i
time u potpunosti određuje putanju koju pakt mora da prođe da bi stigao do odredišta.
Zbog ove osobine BGP se još naziva i path vector routing protokol. Na osnovu AS
brojeva se lako određuje najkraća putanja, tako što se odabira minimalni broj AS
brojeva. BGP za uspostavljanje peer konekcija koristi TCP protokol(port 179), pri čemu
se do svakog peer-a posebno uspostavlja point-to-point konekcija. Kada se uspostavi
konekcija između BGP peer-ova, oni razmenjuju kompletne routing tabele. Posle toga
se routing informacije razmenjuju samo u slučaju kada dođe do neke promene i sadrže
samo informacije o promenama.
Postoji dva tipa BGP-a u zavisnosti od toga gde se primenjuje. Ako se koristi unutar
autonomnog sistema naziva se interni BGP (engl. Interior Border Gateway Protocol)
iBGP. Ako se koristi u vezi između različitih autonomnih sistema naziva se eksterni
BGP (engl. Exterior Border Gateway Protocol) eBGP.
Na slici 3. je prikazana hijerarhijska struktura Interneta dobijena na osnovu tabela
rutiranja formiranih BGP protokolom. U centru su čvorovi sa najviše linkova do drugih
rutera dok su na obodu sa najmanje linkova.

13
Slika 3. Online univerzum3
3.2 Autonomni sistemi

Autonomni sistem (AS) na Internetu je skup mreža u nadležnosti jednog


administrativnog tela. Tipično, ovu odgovornost nose velike organizacija poput Internet
servis provajdera (ISP). Prva definicija AS-a se pojavila u RFC 1771 i proširena je u
RFC 1930. Svaki autonomni sistem mora imati svoj jedinstveni registracioni broj ASN
(engl. Autonomous System Number). Dodeljuje ga Internet organizacija IANA (engl.
Internet Assigned Numbers Authority). Sa pojavom RFC 4893 ovaj broj je 32 bitni (do
tada je bio 16 bitni). AS brojevi od 64,512 do 65,535 su rezervisani za privatno
korišćenje, a brojevi 0, 54272–64511 i 65535 su rezervisani od strane IANA i ne mogu
se koristiti.

Postoji više tipova autonomnih sistema:


- AS sa jednim izlazom (stub, single-homed)
- AS sa više izlaza bez tranzita saobraćaja (multihomed nontransit)
- AS sa više izlaza i tranzitom saobraćaja (multihomed transit)

AS sa jednim izlazom (prikazan na slici 4.) može da koristi default rutu za prosleđivanje
saobraćaja ka Internetu, bude deo IGP protokola svog provajdera i bude poseban
privatan AS unutar provajderovog AS-a.

Slika 4. AS sa jednim izlazom

3
Izvor: www.technologyreview.com

14
AS sa više izlaza bez tranzita saobraćaja (Slika 5.) ne prosleđuje saobraćaj koji nije
njemu potreban nego se radi o komunikaciji između dva provajdera na koje je on
povezan.

Slika 5. AS sa više izlaza bez tranzita saobraćaja

AS sa više izlaza i tranzitom saobraćaja prosleđuje sav saobraćaj (Slika 6.)

Slika 6. AS sa više izlaza i tranzitom saobraćaja

15
3.3 Osnovni mehanizam funkcionisanja BGP-a

Kada dva rutera uspostave BGP konekciju, zovu se “BGP peers”. Svaki ruter koji ima
pokrenut BGP proces i razmenjuje rute se zove “BGP speaker” (slika 7.)

Slika 7. BGP susedi

Proces komunikacije između dva rutera se desava u nekoliko faza:


1. Ruteri razmenjuju BGP poruke kojima se uspostavlja BGP konekcija (Open)
2. Ako postoji neslaganje u konfiguracionim parametrima (AS brojevi, IP
adrese,...), BGP sesija se neće uspostaviti i šalju se odgovarajuće poruke
(Notification)
3. Kada se uspostavi BGP sesija ruteri razmenjuju sve poznate rute (Update)
4. Nakon toga rute se razmenjuju samo kada dođe do promene BGP ruta u ruting
tabelama (inkrementalno prosleđivanje poruka)
5. BGP nekada razmenjuje i punu Internet ruting tabelu
6. Update poruke se sastoje od: prefiksa, AS-patha i atributa AS-path-a kojima se
bliže određuje način tretiranja date rute
7. BGP ruteri čuvaju broj verzije BGP ruting tabele susednih rutera.
8. Broj verzije se inkrementira prilikom svake promene (ubacivanje ili izbacivanje
rute)
9. Ako nema nikakvih promena razmenjuju se Keepalive poruke.
10. Keepalive poruke se šalju svakih 60 sekundi i veličine su svega 19 bajta.

16
3.3.1 Vrste poruka

BGP poruke se šalju preko TCP konekcije što znači da se koriste samo kada ruter koji
prima poruku podvrdi da je dobio ispravnu poruku. Maksimalna veličina poruke je 4096
bajta i svi moraju da se pridržavaju toga. Najmanj poruka je veličine 19 bajta i sadrži
samo zaglavlje dela sa podacima.

3.3.1.1 Zaglavlje poruke

Zaglavlje poruke ima samo tri polja: 16-bajtni Marker, a 2-bajtno polje Length, i 1-
bajtno polje Type. (Slika 8.)

Marker služi za autentikaciju BGP speaker-a ili za detekciju gubitka sinhronizacije


– U Open poruci Marker = sve jedinice
– U ostalim porukama može da bude MD5 hash, ako se taj mehanizam koristi za
autentikaciju BGP speaker-a

Polje Lenght označava ukupnu dužinu poruke i može da ima vrednost od 19 – 4096.

PoljeType može da ima 4 vrednosti koje označavaju tipove poruka:


– Open Poruka
– Keepalive Poruka (samo BGP zaglavlje)
– Notification Poruka
– Update Poruka

Slika 8. Format zaglavlja poruke

17
3.3.1.2 Open poruka

Posle uspostavljene TCP konekcije, prva poruka koju šalje svaka strana je Open poruka
(slika 9). Minimalna dužina OPEN poruke je 29 bajta uključujući i zaglavlje. Ona je
sastavljena od sledećih polja:
Verzija – označava verziju protokola koji se koristi i dužine je 1 bajt. Trenutno aktuelna
verzija je 4.
AS broj – označava broj autonomnog sistema pošiljaoca i dužine je 2 bajta
Hold time – veličine je 2 bajta i označava broj sekundi koji pošiljalac predlaže za
vrednost Hold Timer-a. Nakon prijema OPEN poruke, BGP spiker mora izračunati
vrednost Hold Timer-a koristeći manji od svoje konfigurisane vrednosti Hold Time i
vrdnosti Hold Time-a primljene u OPEN poruci. Hold Time mora biti ili nula ili
najmanje tri sekunde. Neka uređaji mogu odbiti vezu na osnovu Hold Time-a.
Izračunata vrednost označava maksimalni broj sekundi koje mogu proći između prijema
uzastopnih KEEPALIVE i / ili UPDATE poruke od pošiljaoca.
Ruter ID ili BGP identifikator – dužine je 4 bajta i predstavlja identifikacioni broj rutera
koji šalje poruku.
Dužina opcionih parametara – predstavlja dužinu polja sa opcionim parametrima i
veličine je 1 bajta
Opcioni parametri – svaki parametar mora da sadrži tip, dužinu i vrednost tog
parametra.

18
Slika 9. Format OPEN poruke
3.3.1.3 Update poruka

UPDATE poruke se koriste za razmenu informacija o rutama, kako o onim koje su mu


nove tako i o onima koje su izbrisane. Poruka uvek sadrži zaglavlje tačno određene
dužine kao i sledeća polja (slika 10.):

Dužina polja „povučene rute“ - veličine je 2 bajta i predstavlja dužinu narednog polja
„povučene rute“. Ako je vrednost ovog polja 0 znači da nema povučenih ruta i naredno
polje se ne prikazuje

Povučene rute - Popis IP prefiksa koje je pošiljalac bio objavio, ali ih sada želi povući.

Dužina polja „atributi putanje“ - dužine je 2 bajta i označava veličinu narednog polja.
Ako je njegova vrednost 0 znaci da u ovoj poruci nema polja „atributi putanje“

Atributi putanje - Popis BGP atributa koji odgovaraju prefiksima opisanima u


narednom polju. Sastoji se iz tri dela, tip, dužina i vrednost atributa. Postoji u svakoj
update poruci sem u onoj koja sadrži samo povučene rute

Network layer reachability information - Popis prefiksa koje pošiljalac najavljuje svome
susedu.

19
Slika 10. Format UPDATE poruke
3.3.1.4 Keepalive poruka

Keepalive poruke služe da bi se ustanovilo da li postoji veza sa susedom. Uobičajeni


interval između keepalive poruka iznosi 60 sekundi. Brojač vremena (hold timer) se
resetuje po primanju keepalive ili update poruke. Keepalive poruka sadrži samo
zaglavlje i dužine je 19 bajta.

3.3.1.5 Notification poruka

Ova poruka se koristi za indikaciju grešaka kao što je: isticanje vremena čekanja (hold
timer), primanje nepoznatog atributa, pogrešnog AS broja i sl. TCP veza se zatvara po
slanju notification poruke. Polja ove poruke su (slika 11.):

Kod greške – to je polje od jednog bajta i sadrži kod greske. Kodovi su prikazani u
tabeli 2.

Kod greške Naziv greške


1 Greška u zaglavlju poruke
2 Greška u OPEN poruci
3 Greška u UPDATE poruci

20
4 Istekao hold timer
5 Stanje sesije
6 Prekid

Podkod greške – prva tri koda imaju i podkodove koji jos preciznije opisuju grešku u
zavisnosti u kom delu poruke je ona nastala

Vrednost – Koristi se da bi se dijagnosticiralo zasto je NOTIFICATION poruka poslata

Slika 11. Format NOTIFICATION poruke

3.3.2 Stanja uspostavljanja BGP sesije

BGP sesija moze da bude u različitim stanjima u zavisnosti od događaja koji utiču na
nju. Mehanizam promene stanja je prikazan na slici 12.

21
Slika 12. Mehanizam stanja BGP sesije

BGP sesija može biti u šest različitih stanja: Idle, Connect, Active, OpenSent,
OpenConfirm i Esteblished. Protokolom je definisano koje poruke BGP susedi
razmenjuju u kom stanju sesije.

Idle stanje – Predstavlja inicijalno stanje konekcije. U ovom stanju pokušava da


uspostavi TCP konekciju sa susedom ako se konekcija uspostavi prelazi u Conect
stanje. Ako TCP port 179 nije otvoren, adresa suseda pogrešno upisana ili je pogrešan
AS broj ostaje u Idle stanju.

Connect stanje – Kada je TCP konekcija uspostavljena šalje se OPEN poruka i


konekcija prelazi u OpenSent stanje. Ako dođe do bilo kakve greške prelazi u Activ
stanje

Active stanje – Ruter pokusava da ponovo uspostavi TCP konekciju ako ni tada ne uspe
šalje NOTIFICATION poruku i vraća se u Idle stanje a ako uspe šalje OPEN poruku i
prelazi u OpenSent stanje. Ako stanje osciluje između Connect i Active, to je indikacija
da postoji problem u ostvarivanju TCP konekcije.

OpenSent stanje – Ruter očekuje OPEN poruku, kada je dobije proverava sadržaj da li
ima grešaka. Ako postoji bilo kakva greška (nedostaje verzija protokola, MD5 šifra
nedostaje ...) ruter šalje NOTIFICATION poruku i prlazi u Idle stanje. Ako je sve u
redu ruter šalje KEEPALIVE poruku i prelazi u OpenConfirm stanje.

OpenConfirm stanje – Ruter očekuje KEEPALIVE poruku. Ako dobije ovu poruku i
hold timer nije istekao konekcija prelazi u Established stanje. Ako je timer istekao pre
dobijanja poruke ili postoji neka druga greška ruter šalje NOTIFICATION poruku i
prelazi u Idle stanje.

22
Esteblished stanje – U ovom stanju konekcije ruter šalje UPDATE poruke svom susedu
ako dođe do bilo kakve greške šalje se NOTIFICATION poruka i sesija se vraća u Idle
stanje.

3.3.3 Atributi putanje

BGP protokol koristi jako puno ruting parametara koji se još nazivaju i atributi, a
njima se definišu ruting pravila. Broj atributa varira, neki su obavezni i moraju biti
prisutni u svakoj poruci, dok su drugi dopunski pa se ne moraju pojaviti u poruci.

23
Atributi takođe mogu biti tranzitivni i netranzitivni. Netranzitivni su važni samo za
autonomni sistem koji ih prima pa se ne šalju u druge autonomne sisteme, dok su
tranzitivni atributi globalno važni i prosljeđuju se drugim sistemima. Prilikom odabira
rute BGP koristi sledeće atribute:
1. weight (atributi važnosti)
2. local-preference (atributi lokalne prednosti)
3. multi-exit discriminator MED (višeizlazni diskriminišući atributi)
4. origin (izvorni atributi)
5. AS path (atributi puta)
6. next hop (atributi sledećeg koraka)
7. community atributi

3.3.3.1 Atributi važnosti (weight)

Atribut važnosti je Cisco definisan atribut koji je lokalan za svaki ruter što znači da
nije objavljen ostalim ruterima. Kad ruter sazna nekoliko routa za istu destinaciju
odabraće onu rutu sa većom važnosti. Weight atribut određuje težine pojedinih veza
prema eBGP ruterima u drugim autonomnim sistemima. Koristi se za usmeravanje
odlaznog saobraćaja iz AS-a prema drugim sistemima istog objavljenog prefiksa.

Slika 13. Primer za weight atribut

Pojašnjenje gornje slike:


Ruter 3 od rutera 2 prima obaveštenje za mrežu 172.16.1.0. Kada primi obaveštenje od
rutera 2, pridružen weight rutera 2 je 50, a od rutera 3 je 100. Obe putanje će biti u BGP
ruting tabeli sa svojim weight vrednostima, dok se ruta s najvećom vrednošću postavlja
u IP ruting tabelu.
3.3.3.2 Atributi lokalne prednosti (local-preference)

Služe za odabir preferirane tačke izlaza iz lokalnog AS-a. Ti se atributi prenose kroz
lokalni AS, a ako postoji više izlaznih tačaka iz AS-a ovi atributi se koriste za odabir

24
određene izlazne tačke za određenu rutu. Ovaj atribut neće uticati na ostale AS jer se
smatra važećim samo unutar jednog AS-a. Kada poruke prelaze eBGP vezama u druge
sisteme vrednost ovog atributa se resetuje. Za razliku od MED atributa, atribut local-
šreference određuje odlazni saobraćaj i ne prelazi u druge sisteme.

Slika 14. Primer za local-preference atribut

Pojašnjenje gornje slike:


AS 200 prima dva obaveštenja za mrežu 172.16.1.0 od AS 300. Kada ruter 1 primi
obaveštenje, odgovarajući local-preference je 50, dok ruter 2 prima obaveštenje za istu
mrežu sa vrednosti local-preference 100. Ove dve vrednosti će razmeniti ruteri 1 i 2.
Ruter 2 ima veću vrednost nego ruter 1, pa će se ruter 2 koristiti kao izlazna tačka za AS
200 premi mreži 172.16.1.0 u AS 300.

3.3.3.3 Višeizlazni diskriminišući atributi (MED)

Ovo je atribut diskriminator u slučaju višestrukog izlaza. Ruteri daju savete eksternim
susedima za preferiranje puta prema svom AS-u u kojem postoje višestruki ulazi iz
drugog AS-a. MED atribut se razmeni između susednih AS-a, međutim kada uđe u
sistem više se ne šalje dalje, nego se resetuje na 0. Koristi se kao nagoveštaj za eksterni
AS s obzirom na preferiranu rutu. Termin nagoveštaj se koristij jer eksterni AS koji
prima MED-ove može koristiti i druge BGP atribute za odabir puta. Preferira se niža
vrednost metrike.

3.3.3.4 Izvorni atributi (origin)

Origin atribut pokazuje kako BGP dobija podatke o ruti. Dužina atributa iznosi 1 bajt i
kodiran je na sledeći način:

25
1) IGP - 0 - Prefiks je unutrašnji za izvorišni AS; ova vrednost se upotrebljava kada se
koristi naredba network za ubacivanje ruta u BGP. Vrednost je postavljena od
konfiguracijske komande mrežnog rutera.
2) EGP - 1 - Prefiks se dobija putem eksternog protokola (eBGP- a).
3) NEPOTPUN - 2 - Najčešće znači da je prefiks saznat iz statičkih ruta. Poreklo
rute je nepoznato ili saznato na drugačiji način.

3.3.3.5 Atributi puta (AS-path)

Svaki prefiks sadrži atribut AS-Path u kojem je lista sistema koji se moraju proći da se
dođe do objavljenog prefiksa. Lista je prazna u sistemu koji objavljuje prefiks. Kada on
pošalje poruku drugom sistemu eBGP vezom dodaje broj svog sistema u listu. Svaki
sledeći sistem dodaje svoj broj na početak liste kada šalje objavu prefiksa svom
susednom eBGP ruteru.
Sam atribut je koristan u dva pogleda:
- Ako imamo višestruke putove do odredišta algoritam će u jednom od svojih
koraka presuditi na temelju dužine ovog atributa (manji broj autonomnih sistema kojima
poruka treba proći)
- Izbegavanje petlji: svaki autonomni sistem odbacuje update poruke koje sadrže njegov
vlastiti broj

Slika 15. Primer za AS-path atribut

Pojašnjenje gornje slike:


AS1 stvara rutu 172.16.1.0 i oglašava tu rutu prema AS2 i AS3 sa „AS_path 1“. AS3
će se javiti prema AS1 sa „AS_path atributom {3,1}“, dok će AS2 sa „AS_path
atributom {2,1}“. AS1 će odbiti ove rute kada je detektovan njegov vlastiti AS broj u
oglašavanju rute. BGP koristi ovaj mehanizam da bi našao petlju u rutiranju. AS2 i AS3
međusobno prenose rute sa AS brojevima označenim kao AS-path atributima. One
neće biti postavljene u ruting tabelu, jer informaciju o ruti od AS1 sa kraćom „AS_path“
listom.

3.3.3.6 Atribut sledećeg koraka (next-hop)

Svaki prefiks u update poruci je praćen Next-Hop atributom, koji opisuje IP adresu
suseda od kog bi trebalo primiti saobraćaj za navedeni prefiks. Kod eBGP veze suseda

26
Next-Hop atribut je obično IP adresa suseda koju objavi prefiks. Ruter modifikuje Next-
Hop kad šalje update poruku eBGP vezom, ali ne i kad šalje poruku iBGP protokolom.
eBGP atribut sledećeg koraka je IP adresa koja se koristi za pronalazak puta do rutera
za oglašavanje.

3.3.3.7 Community atributi

Community atribut određuje put grupnih destinacija, na koje se odnose upravljačke


odluke.
Predefinisani community atributi su :
1) no-export - ne izveštavaj ovu rutu
2) no-advertise - ne oglašavaj ovu rutu
3) internet - oglašavaj ovu rutu internetu (svi ruteri u mreži joj pripadaju)

Slika 16. Primer za weight atribut

Pojašnjenje gornje slike:


AS1 oglašava 176.16.1.0 prema AS2 sa atributom community oznake Internet. AS2 će
prenositi rutu kroz ceo AS2 i kasnije prema AS3. Nema ograničenja za oglašavanje rute
od AS2.

3.3.4 Redistribucija ruta

Ruter redistribuira samo one rute koje su u tabeli rutiranja. Redistribucija se uvek vrši u
izlaznom smeru tj. ruter koji vrši redistribuciju ne menja svoju tabelu rutiranja. Prilikom

27
redistribucije mora da se podesi metrika prema protokolu u koji se vrši redistribucija.
Ruter može da prihvati poruku o novim rutama od više suseda i da ih redistribuira istim
ili nekim drugim ruterima. On ima svoju „master“ tabelu ruta, zove se Loc-RIB (engl.
Local Routing Information Base) koja je odvojena od glavne tabele rutiranja. Takođe
čuva i tabele ruta koje je primio od suseda Adj-RIB-In (engl. Adjacent Routing
Information Base, Incoming) i one koje je on slao susedima Adj-RIB-Out (engl.
Adjacent Routing Information Base, Outgoing). U procesu izbora najbolje rute ce se iz
ovih tabela izabrati koje rute idu u glavnu ruting tabelu (slika 17).

Slika 17. Redistribucija ruta

3.3.5 Proces izbora najbolje rute u BGP-u

28
Proces izbora najbolje rute se vrši na osnovu vrednosti atributa koji su dobijeni od
susednih rutera. Kada ruter dobije informacije o novim rutama, proces odlučivanja koja
će ruta biti prihvaćena izgleda ovako:
1. Ako Next Hop atribut za datu rutu ne postoji u ruting tabeli, ruta se ignoriše tj ne
ubacuje u ruting tabelu.
2. Ako postoji Weight atribut, u ruting tabelu ulazi ruta sa najvećom Weight vrednošću
3. Ako su Weight vrednosti iste, u ruting tabelu ulazi ruta sa najvećom vrednošću Local
Preference
4. Ako su Local Preference vrednosti iste, u ruting tabelu ulazi ruta koju je oglasio dati
ruter
5. Ako su prethodni kriterijumi isti, u ruting tabelu ulazi ruta sa kraćim AS-Path-om
6. Ako su AS-Path dužine iste, ruter će odabrati rutu sa nižom vrednošću Origin atributa
7. Ako je i to isto, Ruter će odabrati rutu sa nižom MED vrednošću
8. Ako su i MED vrednosti iste, ruter će da odabere prvo rute čije putanje idu preko
EBGP konekcija u odnosu na dobijene iz IBGP konekcija
9. Bira se ruta čija je IGP metrika do BGP Next hopa niža
10. Ako su prethodni kriterijumi isti, bira se ruta koja je dobijena ranije (prva koja je
stigla u ruter)
11. Ako su i prethodni kriterijumi isti, bira se ruta dobijena od rutera sa nižim Router
ID-em.
12. Odabira se putanja sa nižom vrednošću dužine klastera.
13. Odabira se ruta dobijena od suseda sa nižom adresom.

Kada se prođe kroz ovaj proces uvek će se odabrati jedna najbolja ruta koja se ubacuje u
glavnu tabelu rutiranja.

3.4 Route reflectr i konfederacije

29
Rešenje za veliki broj iBGP sesija je “route reflector” (slika 18.). Route reflector je ruter
koji krši pravilo ponašanja iBGP rutera – on može da prosledi iBGP rute drugim iBGP
susedima. iBGP ruteri koji koriste usluge route reflectora su klijenti. Kada jedan klijent
pošalje UPDATE poruku nekom route reflectoru, RR prosleđuje tu poruku drugim
njegovim klijentima. Ne moraju svi ruteri u nekom AS da budu ili RR ili klijenti. Neki
mogu da budu “obični” ruteri koji iBGP koriste na klasičan način. RR prosleđuje iBGP
rute samo svojim klijentima i iBGP/eBGP susedima. RR i njegovi klijenti čine klaster.
Bilo koji ruter u AS može da bude RR. Izbor zavisi od administratora i performansi
rutera.
Pravila prosleđivanja ruta kod RR - ako je ruta dobijena od suseda koji nije klijent datog
RR, RR će reflektovati datu rutu samo klijentima. Ako je ruta dobijena od klijenta, RR
će je reflektovati svi ostalim klijentima i svim susedima koji nisu klijenti. Ako je ruta
dobijena od EBGP suseda, reflektuje se svim klijentima i svim susedima koji nisu
klijenti
Redundansa i RR - otkazom RR i nedostatkom potpunog grafa iBGP sesija rutiranje u
AS više ne bi bilo regularno. Moguće je da postoje dva RR u nekom klasteru čime se
povećava pouzdanost mreže. Izbor RR nije nezavisan od fizičke topologije u mreži.
RR se ponaša po svim ostalim pravilima ponašanja za iBGP rutere (ne menja Next
hop,...). RR šalje samo najbolju rutu koju je odredio njegov BGP proces. Ovo dodatno
umanjuje zauzeće memorije na ruterima klijentima u poređenju sa potpunim iBGP
grafom. Uvođenje RR otvara mogućnost stvaranje petlji u rutiranju unutar AS: postoji
mogućnost da ruta koja je poslata iz nekog klastera se vrati u dati klaster (ne postoji
mogućnost provere AS_PATH unutar jednog AS). Zbog toga su uvedeni novi atributi:
ORIGINATOR_ID i CLUSTER_LIST
ORIGINATOR_ID (ONTA) označava Router ID onog rutera koji je poslao datu rutu.
ORIGINATOR kao atribut dodaje RR.
CLUSTER_LIST (ONTA) je atribut analogan AS_PATH atributu. Svaki klaster ima
svoju identifikaciju. CLUSTER_LIST je niz identifikacija klastera unutar jednog AS
kroz koje je prošla data ruta.

Slika 18. Route reflector


Drugi način za rešavanje problema velikog broja iBGP sesija su konfederacije (slika
19.). Unutar jednog AS se formira više privatnih pod-AS koji su u konfederaciji (za

30
spoljašnje AS se pojavljuju kao jedinstven AS). Pod-AS međusobno komuniciraju
putem eBGP, ali je prenos atributa isti kao da je u pitanju iBGP (MED, Local
preference,... se prenose između pod-AS). Pod-AS dobijaju brojeve za AS iz privatnog
skupa AS brojeva.
Unutar AS se ne uzima u obzir kraći AS-Path koji se sastoji od pod-AS. Bez
konfederacija BGP u 8. kriterijumu bira eBGP ispred iBGP ruta. Ukoliko postoji ruta ka
nekoj mreži dobijena iz susednog pod-AS i ruta dobijena od eksternog AS, BGP će
odabrati putanju ka eksternom AS, iako su obe eBGP. Ukoliko postoji ruta ka nekoj
mreži dobijena od iBGP (unutar pod-AS) i ruta dobijena od susednog pod-AS (eBGP
unutar konfederacije), odabraće se ona ruta koja vodi van datog pod-AS (eBGP ruta van
konfederacije).

Slika 19. Konfederacije

3.5 Primer napada na sajt YouTube pomoću BGP-a

31
Napad na sajt www.youtube.com se desio 24.2.2008. godine. Pre početka napada ruter
kroz koji se dolazi do sajta je oglašavao mrežu 208.65.152.0/22 (slika 20.).

Slika 20. Pre napada

Napad je počeo tako što je ruter provajdera iz Pakistana oglasi mrežu sa manjim
prefiksom jer nije postavio filtere kom AS-u je dodeljena koja mreža ip adresa (slika
21.).

Slika 21. Oglašavanje rutera iz Pakistana

Odbrana od napada je uspela tako što su objavljene podmreže sa manjim prefiksima i


sa manjim AS-path-om pošto je napad išao kroz dva autonomna sistema (slike 22., 23. i
24.)

32
Slika 22. Oglasavanje podmreža sa manjim prefiksom

Slika 23. Oglašavanje podmreža sa još manjim prefiksom

Slika 24. Kraj napada

33
3.6 Primer povezivanja vise rutera pomoću BGP-a

Na ovom primeru će biti prikazano funkcionisanje i namena BGP-a između tri internet
provajdera koji su međusobno povezani linkovima, šta se dešava dok se ne uspotavi
BGP sesija, šta se desava kada se ona uspostavi i šta se desava ako dođe do prekida
jednog od linkova. Za prikaz i simulaciju ovih slučajeva koristiće se ruteri sa Mikrotik
OS i njegov alat za prikaz i konfiguraciju Winbox. Simulacija je urađena na virtuelnim
masinama u programu VMware koje su snimljene na CD kao prilog diplomsog rada.

3.6.1 Prikaz rutera, linkova i IP adresa

Slika 25. Prikaz rutera, linkova i IP adresa

Na slici 25. prikazana je šema rutera tri internet provajdera, njihova međusobna
povezanos i definisane ip adrese. Zbog testiranja funkcionalnosti dodat je po jedan ruter
u privatnoj mreži svakog provajdera. Ovo je početno stanje gde su definisane samo ip
adrese na određenim interfejsima rutera. Komunikacija između rutera u privatnim
mrežama ne funkcioniše.

34
3.6.2 Konfiguracija BGP-a

Konfiguracia BGP-a na ruterima sa Mikrotik OS se radi kroz terminal konzolu ili


pomoću programa Winbox. Na slici 26. prikazana je konfiguracija pomoću terminala, a
na slici 27. korišćenjem Winbox-a.

Slika 26. Primer konfiguracije BGP-a iz terminala

Slika 27. Primer konfiguracije BGP-a iz Winbox-a

35
Prvi korak je definisanje parametara samog rutera, dodaje se broj njegovog autonomnog
sistema i koje će rute on reditribuirati svojim bgp susedima. Drugi korak je definisati sa
kojim ruterima će uspostavljati bgp sesiju. Dodaju se susedni ruteri tako što se unosi
njihova ip adresa i broj autonomnog sistema. Ovaj postupak se ponavlja na svim bgp
susedima da bi se ostvario željeni efekat.

3.6.3 Uspostavljanje BGP sesije i razmena ruta

Nakon konfigutacje rutera sledi uspostavljanje BGP sesije. Ako su linkovi dobri i
konfiguracija dobro urađena ruter postavlja sesiju u established stanje i šalje update
poruke o rutama. Na sledećim slikama 28. i 29. je prikazana tabela rutiranja pre i nakon
uspostavljanja bgp sesije. Na slici 28. u tabeli rutiranja su samo direktno konektovane
rute tj. adrese rutera sa kojima je on direktno povezan. Na slici 29. se vide nove rute
dobijene putem bgp-a.

Slika 28. Tabela rutiranja pre uspostavljanja bgp sesije

Slika 29. Tabela rutiranja nakon uspostavljanja bgp sesije

36
3.6.4 Prekid jednog od linkova

U sličaju prekida jednog od glavni linkova dolazi do promene tabele rutiranja. Na


prethodnom primeru se vidi da ruter iz privatne mreze sa adresom 10.10.11.2
komunicira sa ruterom iz privatne mreze drugog provajdera koji ima adresu 10.10.10.2
preko rutera 192.168.12.1 direktno preko interfejsa ether2 (slika 30.)

Slika 30. Ruta ka mreži 10.10.10.0/24

Ako iz nekog razloga dođe do prekida linka izmeđ provajdera ISP2 i ISP3 (slika 31.)
doći će do rekalkulacije ruta i preusmeravanja saobraćaja preko rutera ISP1. Tabela
rutiranja će onda izgledati kao na slici 32. a komunikacija izmedju rutera sa adresama
10.10.11.2 i 10.10.10.2. će ići preko rutera 192.168.11.2.

Slika 31. Prekid linka između provajdera ISP2 i ISP3

37
Slika 32. Tabela rutiranja posle prekida linka

Posle pekida linka sve rute se usmeravaju na ruter do kojeg postoji link dok se direktan
link ponovo ne uspostavi.

38
4. Zaključak

Svake sekunde milioni korisnika šalju milijarde paketa kroz Internet samo sa
destinacionom adresom koja pokazuje gde žele da stignu. Internet provajderi koriste
BGP da bi informisali jedan drugog koja adresa se gde nalazi. BGP je takođe koristan i
pojedincima koji žele da koriste internet dva ili vise provajdera u isto vreme.
BGP je protokol za rutiranje koji razmenjuje informacije o rutama putem Interneta i to
je jedini protokol koji može da se meri sa mrežom veličine Interneta. U slučaju prekida
nekog od linkova, BGP menja putanju tako da izbegne delove u kojima je nastao prekid
i nastavi nesmetano da radi.
BGP se preporučuje svima onima koji žele pouzdane veze sa Internetom.
Razvoj BGP-a ide u smeru dodavanja novih protokola koje će on podržavati. Sadašnja
verzija BGP4 podržava samo IPv4 a radi se na tome da podržava i IPv6, IPX ...
definicija ekstenzija za BGP4 se nalazi u dokumentima RFC2858 i RFC2545.
Multiprotocol BGP (MP-BGP) ima sledeće prednosti u odnosu na onu koja se sad
koristi:
 IPv6 rutiranje
 Inter-domin multicast
 IPv4 VPN
 IPv6 tranzicija
 MPLS distribucija labela
 QoS ekstenzija za BGP

Prednost BGP-a je u tome što ima više netehničkih (političkih i komercijalnih)


kriterijuma za izbor ruta u odnosu na druge protokole za dinamićko rutiranje. Zbog
ovoga je prihvaćen za globalni protokol rutiranja za povezivanje većih provajdera na
Internet i kompletan Internet saobraća se razmenjuje pomoću njega.
Kako IP adrese na internetu nisu hijerarhiski raspodeljene, ruteri razmenjuju informacije
o nekoliko stotina hiljada IP prefiksa (slika 33). BGP je još uvek u stanju da izvrši taj
zadatak što pokazuke njegovu veliku skalabilnost.

Slika 33. Porast broja IP prefiksa od 1994. do 2009. godine4

4
Izvor: http://bgp.potaroo.net/

39
5. Spisak skraćenica korišćenih u tekstu

1. Adj-RIB-In - Adjacent Routing Information Base, Incoming


2. Adj-RIB-Out - Adjacent Routing Information Base, Outgoing
3. AFI - Address family identifier
4. AS - Autonomous Systems
5. ASN - Autonomous System Number
6. AURP - AppleTalk Update Routing Protocol
7. BGP - Border Gataway Protocol
8. DEC - Digital Equipment Corporation
9. DUAL - Diffusing Update Algorithm
10. eBGP - Exterior Border Gateway Protocol
11. EGRP - Exterior Gataway Routing Protocols
12. GWINFO - Gateway Information Protocol
13. IANA - Internet Assigned Numbers Authority
14. iBGP - Interior Border Gateway Protocol
15. IEEE - Institute of Electrical and Electronics Engineers
16. IETF - Internet Engineering Task Force
17. IGRP - Interior Gataway Routing Protocols
18. IP - Internet Protocol
19. IS-IS - Intermediate System to Intermediate System
20. ISP - Internet Service Provider
21. Loc-RIB - Local Routing Information Base
22. LSP - Link-State Packet
23. MED - Multi-exit discriminator
24. NLSP - NetWare Link Services Protocol
25. OSPF - Open Shortest Path First
26. RFC - Request For Comments
27. RIP - Routing Information Protocol
28. RR - Route reflector
29. SPF - Shortest Path First
30. TCP - Transmission Control Protocol
31. TLV - Type-Lenght-Value
32. VLSM - Variable Length Subnet Masking

40
6. Literatura

1. mr Pavle Vuletić, „BGP“, prezentacija u elektronskom formatu


2. Andrew S. Tenenbaum, „Computer Networks“, u elektronskom obliku
3. James F. Kurose, Keith W. Ross, "Umrežavanje računara: Od vrha ka dnu",
prevod 4. izdanja, prvo poglavlje, u elektronskom obliku
4. Berislav Todorović, Nenad Krajnović, „BGP Theory and Practice“, prezentacija
u elektronskom obliku
5. Nenad Krajnović, „BGP Case Studies“, prezentacija u elektronskom obliku
6. Nenad Krajnović, „Rutiranje - osnove“, prezentacija u elektronskom obliku
7. http://www.ris.ripe.net
8. http://en.wikipedia.org
9. http://sr.wikipedia.org
10. http://www.bgp4.as/
11. http://www.rfc-archive.org
12. http://www.ripe.net
13. http://www.academ.com
14. http://www.cisco.com
15. http://bgp.potaroo.net/

7. Prilozi

1. Virtuelne mašine svih korišćenih rutera na CD-u

41

You might also like