Popis protokolu BGP a jeho využití

Autonomní systém a využití BGP
Border Gateway Protocol (BGP) je dynamický distance vector směrovací protokol používaný pro směrování mezi autonomními systémy (AS).

Autonomní systém je několik sítí pod jednou technickou správou. AS je základním kamenem BGP směrování a tím pádem i celého Internetu.

BGP_1

Popis protokolu 
Hlavními charakteristickými rysy BGP protokolu jsou :

  • Bohatá metrika, neboli atributy
  • Spolehlivé updaty, používá se TCP spojení na portu TCP 179
  • Pravidelné keepalivy pro kontrolu TCP spojení
  • Je vytvořen pro práci ve velkých sítích
  • Mezi základní funkce BGP protokolu patří to, že se směrovač učí od svých sousedů, vybírá si nejlepší cestu a tu předává k dalšímu rozhodnutí, nejlepší cestu posílá svým sousedům.

Kdy použit BGP protokol ?
Přemýšlet o nasazení BGP protokolu byste měli začít, pokud potřebujete

  • mít více jak jedno připojení k Internetu
  • potřebujete se svým ISP mít dynamický směrovací protokol pro detekci výpadků sítí
  • potřebujete mít vlastní IP adresy, kteří nebudou závislé na vašem poskytovateli připojení
  • datový tok vcházející nebo odcházející z vašeho AS musí být ovladatelný

Samozřejmě potřebujete provozovat BGP, pokud jste tranzitním Internet poskytovatelem a máte tranzitní Autonomní systém viz. obrázek.

BGP_3

BGP atributy 
Hlavním ovládacím mechanizmem v BGP jsou jeho metriky neboli atributy, pomocí kterých se určují nastavení cest, prioritizace a veškeré potřebné nastavení pro správnou prácí směrovače.
Poslední verzi BGP je BGP4, jeho specifikací můžete nalézt v RFC1771.

Atributy se v BGP dělí na Well-known a Optional.
WELL KNOWN ATRIBUTY
– Hlavním jejích rysem je, že well known atributy jsou propagovány ostatním sousedům a každy router je musí umět rozpoznat.
– Jsou rozdělené na mandatary a discretionary, což znamená povinné a nepovinné.
– Well known povinné(mandatary) musí být obsažené ve všech updatech routeru
– Well known nepovinné(discretionary) jsou volitelné a mohou se v updatech objevit.

OPTIONAL ATRIBUTY
– Tyto atributy nejsou povinné, tzn. že BGP routery si je mohou mezi sebou vyměňovat, ale nemusí
– Jsou rozdělené na transitive a non-transitive, neboli přeposilatelné a nepřeposilatelné
– Přeposilatelné (transitive) – jsou vždy propagovány ostatním sousedům, pokud nejsou rozpoznány, směrovač nastaví Partial bit, čímž označí, že atribut nebyl rozpoznán.
– Nepřeposilatelné (non-transitive) – pokud nejsou routerem rozpoznány, jsou zahozeny, rozpoznané atributy se propagují sousedům na základě jejích významu.

 

Seznam BGP Path atributů (metrik)
Název atributu Kategorie / Třída
ORIGIN Well-Known Mandatory
AS_PATH Well-Known Mandatory
NEXT_HOP Well-Known Mandatory
LOCAL_PREF Well-Known Discretionary
ATOMIC_AGGREGATE Well-Known Discretionary
AGGREGATOR Optional Transitive
COMMUNITY Optional Transitive
MULTI_EXIT_DISC (MED) Optional Non-Transitive
ORIGINATOR_ID Optional Non-Transitive
CLUSTER LIST Optional Non-Transitive
MULTIPROTOCOL Reachable NLRI Optional Non-Transitive
MULTIPROTOCOL Unreachable NLRI Optional Non-Transitive

Nejpouživanější jsou Well-known atributy, dále nasleduje jejích stručný popis.

ORIGIN atribut:
Jak je zřejmé z názvu atributu, ORIGIN určuje původ příchozí aktualizace. Jedná se o Well-known povinný BGP atribut a proto musí být rozpoznan vždy a poslan dále všem BGP sousedům. Atribut Origin může obsahovat jednu z těchto tří hodnot
1. IGP – update přišel z Interního protokolu autonomního systému
2. EGP – update přišel zvenku autonomního systému
3. Incomplete – není zřejmý původ update

Pokud BGP má více variant výběru routy při stejných atributech, pak původ je jedním z faktorů při rozhodování o výběru nejlepší routy. IGP je nejvyšší hodnota která se při výběru upřednostní před ostatními ORIGIN atributy. Následuje EGP, Incomplete ORIGIN atribut má nejnižší hodnotu ze tří.

AS_PATH atribut: 
AS_Path – Well-known povinný atribut, popisuje cestu, kterou projde paket k dosažení cíle. Tzn. jsou v něm postupně za sebou uvedeny všechny AS, přes které paket projde během cesty z vašeho AS k cílovému bodu.
Každý BGP router cestou do updatu vkladá vlastní AS číslo. Konečným výsledkem je AS_Path atribut který má v sobě všechny autonomní systémy, přes které paket přejde, počínaje posledním AS a končí původním AS.
Příklad takového atributu je – 2819 5588 12389 12880
Pomocí umělého prodlužování cest přijatých od určitého BGP partnera je možné prioritizovat a řídít příchozí provoz do autonomního systému. Tomuto způsobu se říká AS_PATH prepending.

NEXT_HOP atribut: 
NEXT_HOP – Well-known povinný atribut, který určuje adresu dalšího BGP-routeru na cestě k uvedené síti.
Může, ale nemusí shodovat s adresou BGP-routeru který propaguje síť ven. Uvedené v routeru NEXT_HOP musí být dosažitelný pro příjemce trasy. Při odeslání trasy přes Interní BGP atribut NEXT_HOP zůstává beze změny.

LOCAL_PREF atribut: 
LOCAL_PREF – Well-known nepovinný atribut, který stanoví priority pro určitou cestu. Použivá se uvnitř jednoho autonomního systému. Atribut se stanoví každým hraničním routerem autonomního systému a pak je distribuovány spolu s cestou dovnitč autonomího systému. LOCAL_PREF je používané uvnitř AS pro výběr mezi několika hraničními směrovači pro prioritizaci odchozího provozu přes vybraný směrovač. Taky se používá v rámci jednoho hlavního BGP routerů pro prioritizaci jednouho z BGP peeru před druhým pro odchozí provoz.

Kriteria výběru BGP cesty 
Směrovač po obržení updatu od všech sousedů sestavuje směrovací tabulku, přitom nejlepší cestu k určitému AS vybíra na základě tohoto algoritmu (postupuje se odhora dolů, pokud např. LOCAL_PREF je stejný, bere se v úvahu délka AS_PATH atributu atd.)

  • Preferuj nevýšší weight (toto je lokální atribut který se nastavuje většinou na Cisco routerech)
  • Preferuj local=preference (globální atribut pro řízení odchozího provozu uvnitř jedné AS)
  • Preferuj cestu, která pochází z tohoto routeru
  • Preferuj nejkratší AS paths
  • Preferuj nejnižší ORIGIN code (IPG<egp<incomplete) <li=””> Preferuj nejnižší MED
  • Pro Interní BGP Preferuj cestu s nejnižší IGB metrikou BGP next-hopu
  • Pro Externí BGP preferuj nejstarší cestu
  • Preferuj cesty z routeru s nižším BGP router ID
  • Preferuj cesty s kratším Cluster-list atributem
  • Preferuj cesty od BGP souseda s nižší IP adresou

Jak je vidět, nemůže se stát že by router nevěděl která cesta je pro něj lepší.
Navíc aby se začalo rozhodovat na základě např. Cluster-listu musí se splnit hodně podmínek po sobě (stejný AS_PATH, local preference atd.), což na praktice se stává zřídka.

BGP komunikace mezi dvěma směrovači 
Druhy zpráv BGP, které si směrovače mezi sebou vyměňují –

OPEN – je posílaná po otevření TCP-spojení. Reakce na zprávu OPEN je následujicí – BGP spojení se naváže, pokud druhá strana s tím souhlasí, jinak posílá NOTIFICATION zprávu s kódem, který vysvětluje důvod pro zamítnutí, a spojení je přerušeno.

KEEPALIVE – zpráva je určena k potvrzení dohody o zřízení sousedských vztahů, jakož i pro monitorování činnosti na dobu připojení. BGP sousedé si výměňují KeepAlive zprávy v pravidelných intervalech.

UPDATE – zpráva je určena pro propagování nebo odvolání cesty. Po navázání spojení jsou pomocí UPDATE zprávy zaslané všechny cesty, které router chce oznámit svému sousedovi (plný update), stejně tak jsou od souseda přijaté všechny jím propagované cesty. Při další komunikaci mezi směrovači se odesílají pouze data pro přidání nebo odebrání určitých cest které jsou resp. už nejsou k dispozici (dílčí aktualizace).

NOTIFICATION – zprávy tohoto typu se používají pro informování sousedů o důvod pro ukončení spojení. Po odeslání této zprávy BGP spojení je přerušeno.

Leave a Reply

Be the First to Comment!

Notify of

wpDiscuz