Sie sind auf Seite 1von 20

Univerzitet u Beogradu Elektrotehniki fakultet

SEMINARSKI RAD
iz predmeta
RAUNARSKE MREE

Tema: OpenBGPD kao alternativa namenskim BGP ruterima

Profesor: Prof.Dr. Zoran Jovanovi

Student Dejan Bogdanovi br.ind. 08/3239

Beograd, Mart 2009.

Dejan Bogdanovi

Semestralni rad

1. SADRAJ
1. SADRAJ...............................................................................................................................................................................................2 2. UVOD.....................................................................................................................................................................................................4 2.1 BGP ..................................................................................................................................................................................................4 3. OPENBGPD...........................................................................................................................................................................................5 3.1 INSTALACIJA.........................................................................................................................................................................................5 3.2 KONFIGURACIJA....................................................................................................................................................................................6 3.3 UPRAVLJANJE I MONITORING..................................................................................................................................................................10 4. PRIMER BGP TOPOLOGIJE REALIZOVANE POMOU OPENBGPD-A........................................................................11 4.1 TOPOLOGIJA........................................................................................................................................................................................11 4.2 KONFIGURACIJA..................................................................................................................................................................................12 4.3 VERIFIKACIJA......................................................................................................................................................................................16 5. ZAKLJUAK......................................................................................................................................................................................19 6. LITERATURA....................................................................................................................................................................................20

Strana 2

Dejan Bogdanovi

Semestralni rad

Strana 3

Dejan Bogdanovi

Semestralni rad

2. UVOD 2.1 BGP


BGP (Border Gateway Protocol) protokol je jedini protokol za rutiranje saobraaja izmeu autonomnih sistema koji je trenutno u upotrebi. Kao takav, predstavlja nosei stub dananjeg Interneta. Iako je nevidljiv za krajnje korisnike, svaki problem u njegovom funkcionisanju za sobom povlai deliminu ili potpunu izolaciju autonomnog sistema, tj. prekid veze sa ostatkom sveta. Zbog toga su pouzdanost i performanse hardverskih, kao i softverskih komponenata koje vre BGP rutiranje izmeu autonomnih sistema od izuzetnog znaaja. BGP je vrlo zahtevan protokol u pogledu resursa. Osnovna verzija BGP protokola (BGPv4) je od svog uvoenja u upotrebu 1995. godine pa do danas doivela mnoge izmene i proirenja radi podrke modernim mrenim tehnologijama (multicast, VPN, IPv6). Ove ekstenzije su protokol uinile skalabilnijim, ali i kompleksnijim i zahtevnijim. Ipak, glavni razlog velike zahtevnosti protokola je ne-hijerarhijska raspodela IPv4 adresa. Zahvaljujui injenici da IPv4 adresa neke mree nema nikakve veze sa njenom fizikom lokacijom, dananja puna tabela ruting-tabela Interneta ima oko 300.000 ruta. Da bi se ova tabela smestila u memoriju, u zavisnosti od implementacije moe biti potrebno i par desetina megabajta. Potrebni su vrlo efikasni mehanizmi pretraivanja i keiranja da bi se rutiranje vrilo dovoljno efikasno. Uobiajeni BGP ruteri koji se sreu su namenski high-end ruteri proizvoaa kao to su Cisco systems, Juniper networks itd. Takoe, noviji high-end L3 svievi sve ee imaju podrku za BGP. Da bi postigli zadovoljavajue performanse, ovi ureaji se oslanjaju na hardverska ASIC reenja kao na primer CEF (Cisco). Generiu se ekvivalenti ruting tabela u hardverskim komponentama, koje potom samostalno obavljaju rutiranje, rastereujui pri tom CPU. Tranzitni ruteri se rastereuju korienjem MPLS tehnologije. Mreni interfejsi su velikog kapaciteta, i postoje brojne tehnologije za poveanje njihovog kapaciteta i pouzdanosti. Sve ovo dolazi uz odgovarajuu, jako visoku, cenu. Cisco ruteri su popularni zbog obilja mogunosti koje pruaju, ali su zbog toga neto manje pouzdani (to je i logino, to je sistem komplikovaniji, to je podloniji kvaru). Juniper ruteri vae za izuzetno pouzdane, po cenu manjeg broja mogunosti. U isto vreme su i daleko skuplji. ta to ove ureaje ini tako posebnim? Hajde da se latimo alata i rasklopimo jedan od njih. Shvatiemo da je u pitanju raunar nalik na uobiajeni. Centralni procesori u ovim ureajima (obino PPC, Motorola, Intel, AMD, itd...) su esto daleko slabiji nego na modernim serverima. Koliina operativne memorije je takoe mala, obino ispod 512 MB, i nije u pitanju neka neuobiajena tehnologija, sreemo uglavnom ipove koje moemo nai i u PC raunarima. Mreni interfejsi su jako raznovrsni i kvalitetni, ali se ekvivalent njih moe nabaviti i u obliku PCI/PCI-E i slinih mrenih kartica. Ono to namenske rutere bitno razlikuje od ostalih raunara su ASIC kola koja ubrzavaju neke funkcije (rutiranje, kriptovanje, keiranje itd). Ovakve ipove verovatno neemo nai na serverima opte namene, ali njihove funkcije se uglavnom mogu nadomestiti softverski po cenu veeg utroka resursa i manjih performansi. Operativni sistem na ovim ureajima (IOS, JunOS itd.) je po poreklu najee modifikovani Unix. Ako uporedimo zbirnu cenu pojedinanih komponenata koje ine ruter sa cenom samog rutera, videemo da je ruter dosta skuplji. Logino, proizvoai naplauju svoj trud i teko steenu poziciju na tritu, kao i dodatne usluge. Ali, postavlja se pitanje: Da li server opte namene, koji kota dosta manje od namenskog rutera, uz dodatak odgovarajuih mrenih interfejsa i odgovarajui softver, moe da poslui kao BGP ruter? Odgovor je da moe, uz neke rtve u pogledu performansi i funkcionalnosti. RFC-ovi pruaju dovoljno informacija za entuzijaste koji ele da naprave svoju implementaciju BGP softvera, i oni su to i inili. Postoje besplatni softveri za Unix-like operativne sisteme koji ovo omoguavaju (Zebra, Quagga...) kao i neka komercijalna reenja (npr. Vyatta). *BSD operativni sistemi (FreeBSD, OpenBSD, NetBSD itd...) predstavljaju porodicu minimalistikih opensource UNIX naslednika koji su zapostavljeni u medijima, ali su u mnogim oblastima (mree, bezbednost, storage...) tehnoloki lideri. BSD licenca ne namee gotovo nikakva ogranienja u pogledu korienja izvornog koda, tako da su delovi ovih OS-ova jako esto pozajmljivani i ugraivani u ostale operativne sisteme (prvenstveno MacOSX, zatim Windows, Linux, itd.). OpenBSD je lider u pogledu bezbednosti i reenja za VPN i rutiranje, i u okviru njega je nastao projekat OpenBGPd, koji predstavlja implementaciju BGP protokola za *BSD operativne sisteme. Ovaj rad se bavi razmatranjem mogunosti koje prua OpenBGPD, i daje primer instalacije i konfiguracije ovog softvera na FreeBSD platformi. Zbog tehnikih ogranienja, use-case e biti simuliran na virtuelnim mainama.
Strana 4

Dejan Bogdanovi

Semestralni rad

3. OPENBGPD

OpenBGPd je open-source implementacija BGP protokola za *BSD platforme, kreirana od strane OpenBSD tima. Za sada postoji samo na *BSD platformama, mada postoji i projekat portovanja na Linux, o kome nema puno informacija. Nastao je iz nezadovoljstva postojeim Open Source BGP reenjima, s ciljem da se dosledno isprati standard koji postavlja RFC 1771, i da se ostvari maksimalna stabilnost, sigurnost i performanse putem minimalizacije. Postavljeni ciljevi su vrlo uspeno realizovani. Ceo OpenBGPd paket softvera zauzima nekoliko stotina kilobajta i sadri samo nekoliko fajlova: Sam izvrni program - bgpd, kontrolni alat - bgpctl, konfiguracioni fajl - bgpd.conf, pratee skripte za pokretanje, zaustavljanje i kontrolu daemon-a specifine za konkretan operativni sistem, kao i dokumentaciju u obliku man stranica. Implementacija je potpuno ispotovala RFC standarde, ak do te mere da su usput po prvi put otkrivene neke nedoslednosti u drugim BGP implementacijama. to se performansi tie, OpenBSD tim navodi da je za potpunu funkcionalnost dovoljan i P III na 800mhz sa dovoljnom koliinom memorije, mada ovakve tvrdnje treba uzeti sa rezervom, jer se ne navodi koliko optereenje saobraajem moe podneti takav ruter. Na stranici http://www.openbgpd.org/users.html postoje brojna svedoanstva internet provajdera koji trenutno koriste OpenBGPd, i njihov broj polako raste. Evidentno je da su uglavnom u pitanju mali provajderi, to upuuje da OpenBGPd nije dobro reenje za one vee, ali u isto vreme potvruje njegovu upotrebljivost.

3.1 Instalacija
Napomena: Svi navedeni postupci instalacije i konfiguracije odnose se na FreeBSD. U sluaju drugih BSD sistema postoje razlike koje su neznatne i svode se uglavnom na lokacije pojedinih fajlova. Zbog minimalistike prirode aplikacije instalacija je vrlo jednostavna i svodi se na instaliranje binarnog paketa sledeom komandom. Naravno, potrebna je internet konekcija.

pkg_add -rv openbgpd


Alternativa je kompajliranje iz izvornog koda korienjem ports kolekcije, ali poto nema znaajnih konfigurabilnih opcija, rezultat je potpuno isti. Preduslov je da je ports kolekcija instalirana.

cd /usr/ports/net/openbgpd make install clean


Da bi se OpenBGPd pokretao po startovanju sistema potrebno je dodati sledeu liniju u fajl /etc/rc.conf :

openbgpd_enable="YES"
Ova linija slui kao "okida" koji aktivira odgovarajuu skriptu u /usr/local/etc/rc.d pomou koje kontroliemo BGP daemon. Gruba kontrola procesa se moe izvesti sledeim komandama:

/usr/local/etc/rc.d/openbgpd start #pokretanje /usr/local/etc/rc.d/openbgpd stop #zaustavljanje /usr/local/etc/rc.d/openbgpd restart #restart


Strana 5

Dejan Bogdanovi

Semestralni rad

Naravno, u sluaju BGP procesa, ovakva kontrola uopte nije dobra ideja, ve se u te svrhe koristi alat bgpctl koji e biti opisan kasnije.

3.2 Konfiguracija
OpenBGPd ima samo jedan konfiguracioni fajl, bgpd.conf, koji se nalazi u direktorijumu /usr/local/etc. Ne kreira se automatski po instalaciji, ve ga moramo sami kreirati sledeim komandama:

touch /usr/local/etc/bgpd.conf chmod 600 /usr/local/etc/bgpd.conf


Druga komanda je potrebna zbog toga to bgpd proces po pokretanju proverava dozvole ovog fajla i odbija da se startuje ako su one razliite od koda 600 (dozvoljeno itanje i upis samo root korisniku). Ovde e biti opisane samo osnovne konfiguracione opcije, za pun spisak iskoristite komandu man bgpd.conf. Konfiguracioni fajl se sastoji od 4 sekcije: 1. Makroi - korisniki definisane promenljive koje mogu pojednostaviti sam konfiguracioni fajl. Makro se definie u obliku ime_promenjive="vrednost" A posle toga koristi u obliku: $ime_promenljive Parser konfiguracionog fajla vri jednostavnu zamenu imena promenljive njenom vrednou. 2. Globalne konfiguracione opcije - one koje se odnose na BGP proces u globalu, a ne na pojedinane susede. AS broj connect-retry broj fib-update (yes | no) definie broj BGP autonomnog sistema broj sekundi pre ponovnog pokuaja uspostavljanja konekcije sa susedom, podrazumevano 120 sekundi. ako je ova opcija postavljena na yes, bgpd aurira sistemsku ruting tabelu; u protivnom aurira samo svoju internu ruting tabelu vreme u sekundama posle koga se sused smatra nedostupnim ukoliko u meuvremenu nije pristigla nijedna KEEPALIVE ili UPDATE poruka; podrazumevano 90 sekundi IP/IPV6 adresa za koju je vezan bgpd ukoliko ova opcija postoji, svaki update ruting tabele e biti zabeleen u sistemskom logu definie mree koje pripadaju lokalnom autonomnom sistemu i koje se oglaavaju susedima; mogu biti eksplicitno navedene, sve statike rute iz ruting tabele, ili sve connected
Strana 6

holdtime broj

listen on ip adresa log updates network ip adresa/maska [set ...] network [inet|inet6] static [set ...]

Dejan Bogdanovi

Semestralni rad

network [inet|inet6] connected [set ...] nexthop qualify via (bgp | default)

rute iz ruting tabele; set direktivom moemo podeavati BGP atribute pojedinane mree nain na koji se odreuje validni next-hop ruter; bgp oznaava da e se koristiti BGP rute, a default da e se koristiti statike rute kao i rute dobijene od drugih ruting protokola ukoliko je ova opcija yes, ne vri se proces selekcije najbolje rute, ve bgpd slui samo da pokupi informacije o rutama od suseda; podrazumevano ponaanje je no oznaava adresu koja se koristi za identifikaciju rutera i koja mora biti lokalna za ruter odreuje da li je u pitanju transparentni autonomni sistem, tj. da li se broj lokalnog autonomnog sistema dodaje na ASPATH rute koja se oglaava EBGP susedu

route-collector (yes | no)

router-id ip adresa transparent-as (yes | no)

3. Opcije koje se odnose na susede i grupe Jedan BGP sused se definie direktivom: neighbor ip_adresa_suseda { opcije_koje_se_odnose_na_suseda } Vie suseda moe sainjavati grupu, kao u sledeem primeru: group "ime grupe" { opcije koje se odnose na grupu neighbor ip_adresa_prvog suseda { opcije_koje_se_odnose_na_prvog suseda } neighbor ip_adresa_drugog suseda { opcije_koje_se_odnose_na_drugog suseda } } Pri tom, svaka opcija koja se navede kao opcija za grupu automatski vai za svakog lana grupe i nema potrebe navoditi je ponovo. U nastavku su vanije opcije koje se odnose na susede i grupe:

Strana 7

Dejan Bogdanovi

Semestralni rad

announce (all|none|self|default-route)

odreuje koji e tipovi ruta biti oglaeni BGP susedu (sve rute, nijedna ruta, sopstvene rute ili default ruta, respektivno); podrazumevano ponaanje za EBGP sesiju je self, a za IBGP sesiju all. objavljuje implementirane mogunosti OpenBGPd rutera BGP susedima, podrazumevano ponaanje je yes definie simboliko ime za suseda, koje se koristi u show komandama i log fajlovima; potpuno opciono broj autonomnog sistema u kome se nalazi sused; obavezno

announce capabilities (yes|no) descr opis remote-as broj

ipsec esp (in|out) spi broj_konekcije podrka za ipsec autentifikaciju i enkripciju bgp poruka; u authspec (sha1|md5) klju (3des|aes) sluaju da se koristi, moraju postojati dve direktive, jedna u klju in i jedna u out smeru; enkripcija je opciona i moe se izostaviti, a kljuevi moraju biti u heksadecimalnom formatu max-prefix broj multihop broj route-reflector adresa softreconfig (in|out) (yes|no) maksimalan broj mrenih prefiksa koji moe biti primljen od suseda, zatita od preoptereenja maksimalan broj hop-ova do suseda Ruter se ponaa kao route-reflector za ovog suseda omoguava "meku" rekonfiguraciju sesije u zadatom smeru, tj. primenu filtara na UPDATE poruke tako da se po promeni konfiguracije osveavaju samo oni unosi u ruting tabeli za koje postoji potreba, a ne svi; ovo ubrzava konvergenciju ruting tabela, ali poveava memorijsku zahtevnost BGP procesa ukljuuje TCP MD5 potpise, jedan od naina za autentifikaciju osigurava da je BGP sused direktno konektovan (tj. da ne postoji ruter izmeu) putem provere TTL vrednosti paketa; u sluaju da se koristi multihop, paket koji putuje do susednog rutera moe biti rutiran maksimalno onoliko puta kolika je vrednost multihop-a postavlja vrednosti parametara koji utiu na izbor najbolje rute, detaljnije u nastavku

tcp md5sig password klju ttl-security (yes|no)

set atribut

Pomou set opcije moemo postaviti vrednost sledeih atributa: set community broj AS-a:community postavlja vrednost community atributa; mogu se koristiti i predefinisane vrednosti kao NO_EXPORT i NO_ADVERTISE postavlja vrednost local preference atributa postavlja vrednost MED atributa postavlja vrednost NEXTHOP atributa vri prepend AS-PATH atributa AS brojem suseda, ili sopstvenim, navedeni broj puta postavlja vrednost WEIGHT atributa

set localpref broj set med broj set nexthop (adresa | blackhole | reject | self | no-modify) prepend-neighbor broj prepend-self broj weight broj

Strana 8

Dejan Bogdanovi

Semestralni rad

4. Opcije koje se odnose na filtriranje Poslednji deo bgpd.conf konfiguracionog fajla se odnosi na filtriranje ruta iz UPDATE poruka po njihovim specifinim atributima i njihovo prihvatanje, odbacivanje, ili modifikaciju u zavisnosti od vrednosti tih atributa. Filtriranje se vri direktivama koje imaju sledei oblik: (allow|deny) (from|to) identifikator atribut Prvi i drugi deo odreuju da li se update prihvata ili odbija, kao i smer na koji se pravilo odnosi. Identifikator moe biti neto od sledeeg: any adresa group ime_grupe bilo koji host IP adresa pojedinanog host-a identifikator grupe koja je prethodno definisana

Vie identifikatora se moe grupisati zajedno u obliku: { identifikator1, identifikator2... } Atribut moe biti neto od sledeeg: Autonomni sistem: (AS | peer-as | source-as | transit-as) (autonomni sistem | {autonomni sistem1, autonomni sistem2,...} ) AS oznaava bilo koji deo AS-path-a, peer-as zadnji broj, source-as prvi broj, transit-as bilo koji broj osim prvog. Community: community ( community-string | { community-string1, community-string2... } ) Community-string moe biti u obliku broj AS-a:community ili neka od predefinisanih vrednosti. Mreni prefiks: prefix (adresa/maska | { adresa1/maska1, adresa2/maska2... } ) Duina mrenog prefiksa: prefixlen ( = | != | < | > | <= | >= | >< ) broj Uporeuje duinu mrenog prefiksa sa brojem, obino se koristi zajedno sa prefix. Vie atributa se moe grupisati zajedno u obliku: { atribut1, atribut2... } Ukoliko umesto filtriranja elimo da izvrimo modifikaciju atributa, koristimo sledeu direktivu: match (from|to) identifikator [atribut] set atribut Set direktiva se koristi na isti nain kao u definiciji suseda. Ovaj put, atribut po kome se vri filtriranje je opcion. Sve navedene opcije pruaju velike mogunosti za preciznu kontrolu UPDATE poruka. Fleksibilnost je neto manja nego u sluaju Cisco route-map ekvivalenta, ali je i dalje jako zadovoljavajua. Jedan primer:
Strana 9

Dejan Bogdanovi

Semestralni rad

match from { 147.91.213.1, 147.91.213.2} { source-as 32123, community 32123:313, prefix 147.91.1.0/24} set {localpref 150, prepend-neighbor 2} Ova direktiva e svim update-ovima koji dolaze od suseda 147.91.213.1 i 147.91.213.2 i koji imaju izvorni AS broj 32123, community 313 i koji se odnose na prefiks 147.91.1.0/24 postaviti local-preference atribut na 150 i prepend-ovati AS-PATH 2 puta sa AS brojem suseda. Ovim su u kratkim crtama opisane glavne konfiguracione opcije bgpd daemon-a. Postoje jo mnoge, a i veliki broj BSD-specifinih, pomou kojih moemo, na primer, koristiti nekoliko sistemskih ruting tabela, povezati bgpd sa pf firewall-om, konfigurisati high availability pomou carp protokola itd.

3.3 Upravljanje i monitoring


Za kontrolu BGP procesa u toku rada, kao i za detaljan uvid u stanje, koristi se alat bgpctl. On ima veliki broj opcija, od kojih e ovde biti navedene najvanije. Neke od njegovih komandi dosta lie na Cisco IOS ekvivalente, to je namerno, poto skrauje vreme upoznavanja. bgpctl reload bgpctl neighbor ( adresa | ime ) up bgpctl neighbor ( adresa | ime ) down bgpctl neighbor ( adresa | ime ) clear bgpctl neighbor ( adresa | ime ) refresh bgpctl network add prefiks bgpctl network delete prefiks bgpctl network flush bgpctl show fib bgpctl show interfaces bgpctl show neighbor ( adresa | ime ) bgpctl show nexthop bgpctl show rib bgpctl show ip bgp ponovo uitava konfiguracioni fajl (bgpd.conf) aktivira suseda odreenog adresom ili simbolikim imenom iz bgpd.conf deaktivira suseda resetuje BGP sesiju sa susedom zahteva od suseda da ponovo poalje sve rute dinamiki dodaje prefiks u listu prefiksa koje ruter oglaava dinamiki brie prefiks iz liste prefiksa koje ruter oglaava brie sve dinamiki dodane prefikse prikazuje sadraj FIB tabele bgpd procesa prikazuje status mrenih interfejsa prikazuje statistike suseda prikazuje status nexthop-ova i njihov validitet prikazuje bazu podataka o BGP rutama (RIB) isto kao bgpctl show rib

Komanda bgpctl show rib podrava dodatne argumente kao to su as, source-as, transit-as, peer-as, empty-as, community, detail, in, out, neighbor, adresa/maska pomou kojih moemo filtrirati njen izlaz, ili dobiti detaljnije informacije o pojedinanom ulazu tabele. Ove komande pruaju potpuno ekvivalentnu funkcionalnost Cisco IOS show ip bgp i clear ip bgp komandama. Takoe, mogue je pokrenuti bgpd u debug modu komandom bgpd -d -v, i dobiti ekvivalent debug ip bgp komandama.

Strana 10

Dejan Bogdanovi

Semestralni rad

4. PRIMER BGP TOPOLOGIJE REALIZOVANE POMOU OPENBGPD-A


Ova sekcija je posveena praktinoj realizaciji jedne srednje kompleksne BGP topologije koja za cilj ima demonstraciju osnovnih mogunosti OpenBGPd-a. Zbog tehnikih ogranienja, koriena je VMWare virtuelizacija umesto fizikih servera, i BGP ruteri nisu povezani sa ostatkom sveta. Ovo za sobom povlai nemogunost praktinog testiranja performansi koje bi potvrdilo ili osporilo navode o upotrebljivosti OpenBGPd-a u realnim situacijama. I pored toga, ovaj primer je dobra polazna osnova za implementaciju OpenBGPd baziranih reenja.

4.1 Topologija
Topologija mree je prikazana na sledeoj slici:

AS 65002 Lo0 10.0.0.2/32 IBGP R2 192.168.1.102 192.168.1.103 R3 Lo0 10.0.0.3/32

EBGP

EBGP

AS 65001 R1

AS 65003 192.168.1.101 VMWare workstation 192.168.1.104 Lo0 10.0.0.4/32 R4 Lo1 10.0.0.5/32

Lo0 10.0.0.1/32

Postoje 3 autonomna sistema, AS 65001, AS 65002 i AS 65003. U AS 65001 se nalazi jedan ruter, R1, koji oglaava mreu 10.0.0.1/32, koja je realizovana preko loopback interfejsa, to je sluaj i sa mreama koje oglaavaju ostali ruteri. U AS 65002 se nalaze 2 rutera, R2, koji oglaava mreu 10.0.0.2/32, i R3, koji oglaava mreu 10.0.0.3/32. U AS 65003 se nalazi ruter R4, koji oglaava mree 10.0.0.4/32 i 10.0.0.5/32. Svi ruteri su povezani virtuelnim VMWare sviem, i nalaze se u opsegu 192.168.1.0/24 na adresama 101, 102, 103, i 104 respektivno. Update sistemske ruting tabele je ukljuen na svim ruterima. Ruter R1 ostvaruje EBGP sesiju sa ruterom R2, router R2 IBGP sesiju sa ruterom R3, a router R4 EBGP sesiju sa ruterom R3. Sledi konfiguracija OpenBGPd procesa na pojedinanim ruterima.
Strana 11

Dejan Bogdanovi

Semestralni rad

4.2 Konfiguracija

Strana 12

Dejan Bogdanovi

Semestralni rad

Strana 13

Dejan Bogdanovi

Semestralni rad

# /usr/local/etc/bgpd.conf AS 65001 listen on 192.168.1.101 log updates network 10.0.0.1/32 router-id 10.0.0.1 neighbor 192.168.1.102 { remote-as 65002 descr "R2" announce all announce capabilities yes } match to 192.168.1.102 set { med 150 } match from any prefix { 10.0.0.4/32 } set { prepend-neighbor 2 }

bgpd.conf (R1) Ruter R1 pripada AS 65001, i vezan je za fiziku adresu 192.168.1.101. Oglaava mreu 10.0.0.1/32. Za router-id je uzeta ista adresa. Definisan je neighbor 192.168.1.102, koji pripada AS 65002, i kome je dato simboliko ime "R2". Oglaavaju mu se sve mree poznate bgpd procesu, kao i mogunosti rutera. Postoje 2 opcije za modifikovanje UPDATE poruka. Prva, match to 192.168.1.102 set { med 150 }, postavlja vrednost MED atributa na 150 za sve rute koje se oglaavaju susedu R2. Druga, match from any prefix { 10.0.0.4/32 } set { prependneighbor 2 }, prependuje prefiks 10.0.0.4/32 dva puta AS brojem suseda od koga je on pristigao.

# /usr/local/etc/bgpd.conf AS 65002 listen on 192.168.1.102 log updates network 10.0.0.2/32 router-id 10.0.0.2 neighbor 192.168.1.101 { remote-as 65001 descr "R1" announce all announce capabilities yes } neighbor 192.168.1.103 { remote-as 65002 descr "R3" announce all announce capabilities yes }

bgpd.conf (R2) Ruter R2 pripada AS 65002, i vezan je za fiziku adresu 192.168.1.102. Oglaava mreu 10.0.0.2/32. Za router-id je uzeta ista adresa. Definisana su 2 neighbor-a: EBGP neighbor 192.168.1.101, koji pripada AS 65001, i kome je dato simboliko ime "R1". Oglaavaju mu se sve mree poznate bgpd procesu, kao i mogunosti rutera. IBGP neighbor 192.168.1.103, koji pripada AS 65002, i kome je dato simboliko ime "R3". Oglaavaju mu se sve mree poznate bgpd procesu, kao i mogunosti rutera.

Strana 14

Dejan Bogdanovi

Semestralni rad

# /usr/local/etc/bgpd.conf AS 65002 listen on 192.168.1.103 log updates network 10.0.0.3/32 router-id 10.0.0.3 neighbor 192.168.1.102 { remote-as 65002 descr "R2" announce all announce capabilities yes } neighbor 192.168.1.104 { remote-as 65003 descr "R4" announce all announce capabilities yes } match from any AS { 65003 } set { localpref 150 }
bgpd.conf (R3) Ruter R3 pripada AS 65002, i vezan je za fiziku adresu 192.168.1.103. Oglaava mreu 10.0.0.3/32. Za router-id je uzeta ista adresa. Definisana su 2 neighbor-a: IBGP neighbor 192.168.1.102, koji pripada AS 65002, i kome je dato simboliko ime "R2". Oglaavaju mu se sve mree poznate bgpd procesu, kao i mogunosti rutera. EBGP neighbor 192.168.1.104, koji pripada AS 65003, i kome je dato simboliko ime "R4". Oglaavaju mu se sve mree poznate bgpd procesu, kao i mogunosti rutera.

Postoji opcija za modifikovanje UPDATE poruka, match from any AS { 65003 } set { localpref 150 }, kojom se postavlja vrednost local preference atributa za svaki update koji sadri AS 65003 u svom AS-PATH-u.

# /usr/local/etc/bgpd.conf AS 65003 listen on 192.168.1.104 log updates network 10.0.0.4/32 network 10.0.0.5/32 router-id 10.0.0.4 neighbor 192.168.1.103 { remote-as 65002 descr "R3" announce all announce capabilities yes } match to any prefix { 10.0.0.5/32 } set { community NO_EXPORT }
bgpd.conf (R4) Ruter R4 pripada AS 65003, i vezan je za fiziku adresu 192.168.1.104. Oglaava mree 10.0.0.4/32 i 10.0.0.5/32. Za router-id je uzeta adresa 10.0.0.4. Definisan je EBGP neighbor 192.168.1.103, koji pripada AS 65002, i kome je dato simboliko ime "R3". Oglaavaju mu se sve mree poznate bgpd procesu, kao i mogunosti rutera.

Postoji opcija za modifikovanje UPDATE poruka, match to any prefix { 10.0.0.5/32 } set { community NO_EXPORT }, koja postavlja predefinisani community atribut NO_EXPORT prefiksu 10.0.0.5/32 prilikom njegovog oglaavanja.

Strana 15

Dejan Bogdanovi

Semestralni rad

4.3 Verifikacija
Poto su ruteri konfigurisani, i OpenBGPd na njima pokrenut, posle kratkog vremena potrebnog za konvergenciju ruting tabela moemo potvrditi njegovu funkcionalnost komandom bgpctl show ip bgp na svakom od rutera: R1:
[root@R1 ~]# bgpctl show ip bgp flags: * = Valid, > = Selected, I = via IBGP, A = Announced origin: i = IGP, e = EGP, ? = Incomplete

flags destination AI*> 10.0.0.1/32 *> *> *> 10.0.0.2/32 10.0.0.3/32 10.0.0.4/32

gateway 0.0.0.0 192.168.1.102 192.168.1.103 192.168.1.104

lpref med aspath origin 100 100 100 100 0i 0 65002 i 0 65002 i 0 65002 65002 65002 65003 i

R2:
[root@R2 ~]# bgpctl show ip bgp flags: * = Valid, > = Selected, I = via IBGP, A = Announced origin: i = IGP, e = EGP, ? = Incomplete

flags destination *> 10.0.0.1/32

gateway 192.168.1.101 0.0.0.0 192.168.1.103 192.168.1.104 192.168.1.104

lpref med aspath origin 100 150 65001 i 100 100 150 150 0i 0i 0 65003 i 0 65003 i

AI*> 10.0.0.2/32 I*> 10.0.0.3/32 I*> 10.0.0.4/32 I*> 10.0.0.5/32

R3:
[root@R3 ~]# bgpctl show ip bgp flags: * = Valid, > = Selected, I = via IBGP, A = Announced origin: i = IGP, e = EGP, ? = Incomplete

flags destination I*> 10.0.0.1/32 I*> 10.0.0.2/32 AI*> 10.0.0.3/32 *> *> 10.0.0.4/32 10.0.0.5/32

gateway 192.168.1.101 192.168.1.102 0.0.0.0 192.168.1.104 192.168.1.104

lpref med aspath origin 100 150 65001 i 100 100 150 150 0i 0 65003 i 0 65003 i 0i

R4:
[root@R4 ~]# bgpctl show ip bgp flags: * = Valid, > = Selected, I = via IBGP, A = Announced origin: i = IGP, e = EGP, ? = Incomplete

flags destination *> *> *> 10.0.0.1/32 10.0.0.2/32 10.0.0.3/32

gateway 192.168.1.101 192.168.1.102 192.168.1.103

lpref med aspath origin 100 100 100 0 65002 65001 i 0 65002 i 0 65002 i

Strana 16

Dejan Bogdanovi
AI*> 10.0.0.4/32 AI*> 10.0.0.5/32 0.0.0.0 0.0.0.0 100 100 0i 0i

Semestralni rad

Moemo primetiti da je mrea 10.0.0.4/32 na ruteru R1 prepend-ovana 2 puta sa AS 65002, kao i da se mrea 10.0.0.5/32 ne pojavljuje na ruteru R1, zbog community atributa NO-EXPORT koji spreava njenu propagaciju van AS 65002. U AS 65002, tj. na ruterima R2 i R3, mrea 10.0.0.1/32 ima MED atribut sa vrednou 150. Takoe, mree koje potiu iz AS 65003, tj. sa rutera R4, u AS 65002 imaju atribut local-preference 150. Sve ovo je u skladu sa match/set pravilima koja smo definisali u bgpd.conf fajlovima. Sistemske ruting tabele sadre sve odgovarajue BGP rute, i mrea je konvergirala, to moemo pokazati ping-om sa rutera R1 do mree 10.0.0.4/32.
[root@R1 ~]# ping 10.0.0.4 PING 10.0.0.4 (10.0.0.4): 56 data bytes 64 bytes from 10.0.0.4: icmp_seq=0 ttl=64 time=3.146 ms 64 bytes from 10.0.0.4: icmp_seq=1 ttl=64 time=0.454 ms 64 bytes from 10.0.0.4: icmp_seq=2 ttl=64 time=0.437 ms ^C --- 10.0.0.4 ping statistics --3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.437/1.346/3.146/1.273 ms [root@R1 ~]#

Sadraj sistemske ruting tabele na R1:


[root@R1 ~]# netstat -r Routing tables

Internet: Destination default 10.0.0.1 10.0.0.2/32 10.0.0.3/32 10.0.0.4/32 192.168.1.0 R1 Gateway 192.168.1.1 link#3 Flags UGS UH UG1 UG1 UG1 U UHS 0 3 0 Refs 0 0 0 0 0 4614 0 lo0 Use Netif Expire 0 le0 lo0 0 0 3 le0 le0 le0

192.168.1.102 192.168.1.103 192.168.1.104 link#1 link#1

le0

Strana 17

Dejan Bogdanovi

Semestralni rad

Strana 18

Dejan Bogdanovi

Semestralni rad

5. ZAKLJUAK
Sledea tabela prikazuje uporedne napredne mogunosti Cisco rutera i OpenBGPd rutera vezane za BGP. Cisco IPv6 Multicast MPLS IPsec za BGP Da Da Da Zavisno od IOS-a OpenBGPd Da Ne Ne Da

Glavni nedostatak koji e spreiti iru upotrebu OpenBGPd-a je nedostatak podrke za MPLS, koji znaajno suava njegovu primenu u velikim sistemima. Sreom, MPLS podrka je u planu u skorijoj budunosti. Takoe izostaje podrka za multicast, ali to ne predstavlja previe ozbiljan problem obzirom da on jo uvek nije zaiveo u praksi koliko je bilo oekivano. Ali, OpenBGPd ima i dve velike prednosti: Cenu i jednostavnost. Prosean server sa instaliranim OpenBGPd-om (koji je naravno besplatan) kota daleko manje od Cisco rutera istih performansi, i dosta je jednostavniji za konfiguraciju. Izvetaji provajdera koji koriste OpenBGPd takoe govore da su performanse i stabilnost na zadovoljavajuem nivou, to je osnovna zamerka ostalim Open-Source BGP implementacijama. Ukoliko zadovoljava konkretne potrebe, OpenBGPd zasluuje da bude ozbiljno uzet u razmatranje kao alternativa Cisco/Juniper i ostalim namenskim BGP ruterima.

Strana 19

Dejan Bogdanovi

Semestralni rad

6. LITERATURA
Web stranice: [1] [2] http://www.openbgpd.org/ http://www.cisco.com/en/US/docs/internetworking/technology/handbook/bgp.html

FreeBSD manual stranice: [1] [2] [3] man bgpd man bgpd.conf man bgpctl

Strana 20

Das könnte Ihnen auch gefallen