BGP Session

Slovnicek

  • AS - autonomni system, elementarni kus globalni site
  • BGP - Border Gateway Protocol
  • IGP - Interior Gateway Protocol (ospf, rip, is-is, ...)
  • EGP - Exterior Gateway Protocol (bgp4!)
  • BGP speaker (mluvci) - router, ktery pouziva BGP
  • AS path (AS cesta) - vycet AS, pres ktere ma packet cestovat do sveho cile

Autonomni system (AS)

  • Sit "s jednotnou spravou"
  • Z pohledu globalniho smerovani nejmensi jednotka
    • vnitrni cleneni nema pro smerovani vyznam
  • Navenek jednotna smerovaci politika
    • jednotlive hranicni routery museji poskytovat konzistentni informace

Priklady:

  • NFX - skupina komunitnich siti, ktera spolecne spravuje verejne IP
  • SPPT, HA-VEL, CD-T - poskytovatele s vlastni pristupovou siti
  • Level3, Telisonera - poskytovatele paternich siti

Spolecna sprava

Nektere prostredky nebo kontakty v globalnich databazich jsou vazane na cislo autonomniho systemu. Predpoklada se, ze se jednotlive organizace, ktere vyuzivaji spolecne AS dokazi efektivne dohodnout a resit pozadavky.

Neznamena to, ze adresy patrici AS musi provozovat jedina organizace. Navenek ale AS vystupuje jednotne, vnitrni cleneni nikoho "venku" nezajima.

Nejmensi jednotka

Cesty v globalnim smerovacim protokolu BGP se vyjadruji pomoci nacestnych AS. Jak presne se data dostanou pres nejake konkretni AS neni zajimave, AS se tvari jako uzel v grafu globalniho smerovani. Proto je dulezita konzistence smerovaci politiky na hranicich AS.

Jednotna smerovaci politika

AS musi propagovat na vsech hranicich spravne smerovani z mista A do mista B a naopak, pokud takove ceste vubec umoznuje tranzit. Je mozne tranzitu pres urcitou hranici zamezit.

Identifikace AS

  • cislo 0-65535
  • bude se rozsirovat na 4-byte identifikator
  • cisla 64512 - 65535 jsou rezervovana pro privatni autonomni systemy
    • na "velkem" Internetu se tato cisla AS nesmeji pouzivat, nejsou unikatni
  • kazde verejne IP ma "sve domovske" (originating) AS

Kdy potrebujete AS

Pri peeringu s vice ISP. Kdyz je pripojeni jen na jednoho ISP, je jasne:
  • kudy ma jit ven default smerovani, a
  • kudy se maji smerovat packety na verejne adresy site (pres toho jednoho ISP)

Kdyz je napojenych vice ISP, nebo se dela tranzit do dalsi site (ktera muze mit i dalsi pripojeni)

  • je lepsi odesilat (prijimat) pres ISP-A nebo ISP-B ?
  • jak se ISP-A nebo ISP-B dozvi, ze za vami je jeste dalsi sit ?
Tyto otazky resi BGP, ktere nechape toplogii site, uvazuje jenom v terminech "pres ktera AS musim poslat ?".

BGP Routing Protocol

Motivace:
  • distribuce velikeho mnozstvi prefixu
  • jednoducha koordinace/vypocty
  • odolnost proti "vadnym" zaznamum
    • napr. u OSPF "vhodna" informace dokaze rozhodit celou sit
  • odolnost proti vypadkum

Pouziva se ve 2 formach

Exterior BGP (eBGP)

  • komunikace mezi ruznymi AS
  • umoznuje filtrovat
  • umoznuje menit vlastnosti smerovani prefixu
Pouziva se na hranicich mezi AS pro vymenu souhrnnych informaci o vlastni siti a moznostech tranzitu pres AS.

Interior BGP (iBGP)

  • komunikace uvnitr stejneho AS
  • muze filtrovat
  • nemuze menit vlastnosti smerovani prefixu

Pouziva se k synchronizaci hranicnich routeru (BGP speakers) jednoho AS.

  • Kazdy hranicni stroj dostane od souseda nejake prefixy
  • Museji se domluvit, jake prefixy maji ostatni hranicni BGP
  • Sousednimu AS pak oznamuji souhrn vsech prefixu ze vsech hranic AS (minus ty, ktere jsou filtrovane)
  • iBGP udrzuje konzistenci tranzitniho smerovani

iBGP speakers musi komunikovat kazdy s kazdym (full mesh). Minimalizuji se tak vypadky smerovani (pri postupnem predavani informace). To co se iBGP speaker posila dalsim speakerum v AS jenom prefixy z cizich AS a ty "svoje vlastni" zkonfigurovane rucne.

igp-egp.jpg

Jak BGP pracuje

Kazdy BGP speaker vi
  • do ktereho AS patri (bgp router 65120)
  • seznam svych vlastnich siti (ktere bude troubit do sveta) (network 10.102.0.0/16)
  • seznam svych kolegu-sousedu (BGP peers), do ktereho AS ktery patri (peer 10.107.1.1 remote-as 65107)
    • podle toho rozlisi jak se k nim chovat (iBGP, eBGP)

Pro kazdou sit BGP speaker predava kolegum:

  • sitovy prefix (IP/mask)
  • AS-path
  • nexthop
AS path je seznam cisel AS, pres ktere ma packet cestovat do mista sveho urceni. Pri predavani mimo sve AS BGP speaker prida sve vlastni AS na zacatek seznamu. Jak se informace o sitovem prefixu siri dal a dal, pridavaji se dalsi AS a tak vznikne kompletni cesta.

nexthop rika, pres ktery dalsi router se ma smerovat. Je to BGP

  • ktery ma cilovy prefix ve svem network
  • BGP speaker "po ceste k cili", ktery nexthop prepsal na sebe (next-hop-self)
    • smi se jenom pri prevzeti cesty z ciziho AS (eBGP), ne v ramci iBGP.

Kdyz BGP speaker prijme [prefix, nexthop, as-path] od ciziho AS:

  • muze se rozhodnout informaci zahodit (access-list, filter-list)
  • muze zaznam trochu pozmenit (route-map)
  • muze zjistit ze neni vyhodne (pro nej) smerovat touhle cestou (local-preference, set as-path prepend)
    • cestu treba sam nebude pouzivat, ale bude ji oznamovat dal, dalsim speakerum
  • nejvyhodnejsi cestu si zavede do smerovaci tabulky

Dulezity je nexthop, ten urcuje kudy se bude smerovat.

    • router potrebuje pro vytvoreni smerovaciho pravidla znat "via" - bezprostredniho souseda
    • nexthop muze byt v uplne jinem AS, nebo podsiti
    • BGP problem "jak se dostat k nexthop" neresi
    • "via" se nastavi podle toho jak "by router sam smeroval na ==nexthop==".
Typicky se pri prevzeti cesty z jineho AS nastavi nexthop na "nas" hranicni router, aby se v ramci jednoho AS resilo jen mistni smerovani. Na obrazku ma napr. Router C nastaveno next-hop-self, aby se do jineho AS komunikovalo pres nej (IP adresy na obrazku ignorujte, tam je pouziti nexthop kvuli frame-relay)

nexthop.jpg

neighbor 10.253.2.2 remote-as 65109 
neighbor 10.253.2.2 next-hop-self
neighbor 10.253.2.2 description pilsfree
neighbor 10.253.2.2 prefix-list cloudtransin in
neighbor 10.253.2.2 prefix-list cloudtransout out

Skupiny peeru

Pro jednodussi nastaveni se daji nadefinovat skupiny. Nastaveni se pak dava k nim, a o jednotlivych peerech (IP adresach) se pouze prohlasi, ze patri do skupiny.

! Skupina "dalsich AS" 
 neighbor EXTERNAL peer-group
 neighbor EXTERNAL description Exterier BGP
 neighbor EXTERNAL next-hop-self
 neighbor EXTERNAL prefix-list cloudtransin in
 neighbor EXTERNAL prefix-list cloudtransout out

Spoluprace BGP a IGP (OSPF)

iBGP neresi smerovani uvnitr AS. BGP speakery si vymeni smerovani, ale v pripade cesty uvnitr AS jako napr.:
jine AS - BGP1 - RouterA - RouterB - RouterC - BGP2 - jine AS
se zadny z RouterX? neucastni BGP vymeny, ani z ni nema informace.
  • to je dobre, jinak by vsechna smerovani byla vsude
  • to je spatne, musi se pouzit jeste jiny protokol a vyrobu cesty BGP1 - BGP2
Pouzivaji se IS-IS (nevim co to je, ale existuje), OSPF, RIP, ...

Smerovani z BGP se mohou predat do OSPF:

  • pridaji se jenom cesty do jinych AS primo sousedicich s BGP speakerem
    • ne cesty ziskane od jineho BGP speakera
  • neexistuje vztah mezi metrikou BGP (dela as-cesty) a OSPG (soucet vah spoju)
  • vsechny RouterA? ... RouterC? si vymeni info ze se do jinych AS chodi pres BGP1, ..., BGP2

Predavat ci nepredavat BGP informace ?

  • na typicke ISP pristupove siti typicky zna jen cesty k hranicim/peeringovemu bodu
  • paterni sit Internetu ma plna smerovani stejne jako Czfree
  • czfree je globalni pater smile kazdy router ma informace o vsech AS v czfree
Pocet "paternich" smerovani na Internetu je ~200 tisic.

Router Maps

route-map se da pouzit ke zmenam parametru jednotlivych zaznamu. "Mapa" je pojmenovana sekvence pravidel s podminkami a akci. Pokud prichozi informace (o smerovani) vyhovi podminkam, provede se s ni pozadovana akce. Pravidla jsou ocislovana, a provadeji se vzestupne podle cisel. Kazde pravidlo se zapisuje zvlast:

route-map jmeno [ permit | deny ] [*poradi*]

takze napr. 2 pravidla v "mape" MYMAP:

route-map MYMAP permit 10
! Prvni pravidlo - podminky

route-map MYMAP permit 20
! Tohle se vyhodnocuje jako druhe...

Podmiky se zapisuji pomoci prikazu match, akce pomoci set na dalsi radky za deklaraci pravidla:

route-map MYMAP permit 10
! Prvni pravidlo - podminky
match ip address 1.1.1.1
set metric 5

Pokud se na prichozi informaci pouzije MYMAP, tak sit 1.1.1.1 dostane metriku 5.

Podrobnosti o podminkach a moznych akcich viz http://www.quagga.net

Vyvazovani BGP

local-preference, weight

local-preference se da nastavit v route-map a distribuuje se v ramci AS pomoci iBGP. Da se tak urcit, ktera smerovani maji vyssi prioritu (tudiz pres ktere stroje chceme spise data posilat) - v pripade, ze je treba do nejakeho AS vice cest, muzeme pro celou sit vybrat preferovanou trasu.

nexthop.jpg Nastaveni pro router C

!Router C
router bgp 256
neighbor 1.1.1.1 remote-as 100
neighbor 128.213.11.2 remote-as 256
bgp default local-preference 150
Nastaveni pro router D
!Router D
router bgp 256
neighbor 3.3.3.4 remote-as 300
neighbor 128.213.11.1 remote-as 256
bgp default local-preference 200

Podobny efekt ma nastaveni weight, to ale plati jen pro jeden pocitac a nerozesila se pomoci iBGP dalsim speakerum.

set as-path prepend

local-preference plati pro odesilani dat z naseho AS ven. Kdyz chceme preferovat urcitou cestu pro prijem dat do naseho AS, musi se na to jinak. Pomoci route-map a se zmeni cesta pres AS tak, ze se na zacatek predradi cislo vlastniho AS. Cesty ktere nechceme se tak prodlouzi o 1 (nebo o vice), a ostatni AS jebudou vnimat jako "mene vyhodne".

route-map SETPATH permit 10
set as-path prepend 300 300

Interni topologie AS

Konfederace

Konfederace

Router C

router bgp 65050
bgp confederation identifier 500
bgp confederation peers 65060 65070

neighbor 128.213.10.1 remote-as 65050
neighbor 128.213.20.1 remote-as 65050
neighbor 128.210.11.1 remote-as 65060
neighbor 135.212.14.1 remote-as 65070
neighbor 5.5.5.5 remote-as 100

Router D

router bgp 65060
bgp confederation identifier 500
bgp confederation peers 65050 65070

neighbor 129.210.30.2 remote-as 65060
neighbor 128.213.30.1 remote-as 65050
neighbor 135.212.14.1 remote-as 65070
neighbor 6.6.6.6 remote-as 600

Vsimnete si preznaceni cisel.

  • Jako ASN se pouzivaji vnitrni, privatni cisla konfederovanych cloudu.
  • Vnejsi ASN, viditelne pro zbytek sveta se oznacuje jako confederation identifier,
  • peery, ktere by jinak (kvuli jinemu cislu ASN) router posuzoval jako externi se pomoci confederation peers oznaci jako soucast konfederace.

Sit je uvnitr strukturovana na nekolik AS, na jejichz hranici plati pravidla obvykla pro exterior BGP, ale pro ostatni site se hlasi ASN 500 jako kdyby vnitrni strukturu nemela.

Route Reflector

Route Reflector

Route reflector je jednodussi nastaveni

  • neslouzi pro oddeleni casti AS do samostatnych "malych AS"
  • zjednodusuje komunikaci mezi BGP speakery
  • snizuje odolnost vuci vypadkum (centralizuje znalosti o smerovani)

Bylo receno, ze BGP speaker:

  • prijme informace od jineho AS (eBGP)
  • prijme informace od stejneho AS (iBGP)
  • informace o jinych AS odesila do iBGP
  • informace o vlastnnim AS neodesila dal
Proto se musi propojit uvnitr AS kazdy s kazdym (full mesh).

Pocitac, ktery je nastaveny jako route reflector poskytuje dal informace o vlastnim AS. Dela "opakovac", takze se da sit rozdelit jak je nakresleno na obrazku:

  • BGP speakeri, kteri jsou pripojeni na route reflector nemusi byt spojeni s nikym jinym
  • Reflectory jsou spojene dohromady
A cele to funguje skoro jako "full mesh", akorat nemluvi kazdy s kazdym

 neighbor INTERNAL peer-group
 neighbor INTERNAL remote-as 65102
 neighbor INTERNAL description Interier BGP
 neighbor INTERNAL prefix-list internal in
 neighbor INTERNAL prefix-list internal out
 neighbor INTERNAL route-reflector-client
 neighbor INTERNAL update-source 10.102.1.4

Prakticka ukazka

Nastaveni BGP

! Jmeno BGP speakeru, identifikace pro cloveka (bude v promptu) hostname klfree-vpns
! Hesla pro pristup k terminalu, a pro zmenu konfigurace
password XXXXX
enable password XXXXX
! Nastaveni logovani
log file /var/log/quagga/bgpd.log informational
log trap errors
log record-priority

! Spusteni terminalu
service advanced-vty

! Cislo vlastniho AS - zacatek deklarace routeru
router bgp 65102

! Identifikace routeru. Jedna z vlastnich IP adres routeru
bgp router-id 10.102.222.9
bgp dampening

! Vlastni site, ktere router obsluhuje a bude oznamovat
network 10.102.0.0/16

! Skupina "dalsich AS"
neighbor EXTERNAL peer-group
neighbor EXTERNAL description Exterier BGP
! Nastavime next-hop na sebe, aby se pres TENHLE router smerovalo do dalsich siti
neighbor EXTERNAL next-hop-self

! filtr na prichozi (in) a odchozi (out). Viz prefix-list nize
neighbor EXTERNAL prefix-list cloudtransin in
neighbor EXTERNAL prefix-list cloudtransout out

! Skupina pro nase vlastni AS
neighbor INTERNAL peer-group
neighbor INTERNAL remote-as 65102
neighbor INTERNAL description Interier BGP
neighbor INTERNAL prefix-list internal in
neighbor INTERNAL prefix-list internal out

! HKfree.net, http://www.hkfree.org
! uvadi se vzdy ip adresa peeru a cislo AS.
neighbor 10.253.2.5 remote-as 41670
! pouzijeme vsechna nastaveni pro EXTERNAL neighbor 10.253.2.5 peer-group EXTERNAL
neighbor 10.253.2.5 description hkfree

! Pilsfree.org http://www.pilsfree.org
neighbor 10.253.2.2 remote-as 65109
neighbor 10.253.2.2 peer-group EXTERNAL
neighbor 10.253.2.2 description pilsfree

! A jeste jeden interni
neighbor 10.102.1.4 peer-group INTERNAL
neighbor 10.102.1.4 description Titan Route Reflector

-- SvataDedic - 15 Dec 2006

Topic attachments
I Attachment Action Size Date Who Comment
jpgjpg confederation.jpg manage 100.8 K 2006-12-15 - 14:12 SvataDedic Konfederace
jpgjpg igp-egp.jpg manage 50.1 K 2006-12-15 - 13:38 SvataDedic iBGP and eBGP
jpgjpg local-pref.jpg manage 55.8 K 2006-12-15 - 13:55 SvataDedic Local Preference
jpgjpg nexthop.jpg manage 44.4 K 2006-12-15 - 13:40 SvataDedic nexthop
jpgjpg route-reflector.jpg manage 89.5 K 2006-12-15 - 14:12 SvataDedic Route Reflector
Topic revision: r2 - 2006-12-16 - 19:29:22 - SvataDedic
 

This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback