Border Gateway Protocol (BGP) I

Z MilataWiki

Přejít na: navigace, hledání

Následující text se zabývá problematikou základů BGP, probíraných v rámci cvičení SPS.

Doporučené studijní materiály věnované problematice konfigurace BGP

Co je dobré vědět

  • vnitřní a vnější směrovací protokoly
  • hierarchické směrování, autonomních systémů (single-homed, multi-homed, tranzitní a netranzitní)
  • problematika suboptimáního směrování (směrování na základně politiky)
  • směrovací protokol BGP
    • pojem sousední BGP směrovač (peer)
    • pojmy IBGP a EBGP relace (případně orientačně jejich Administrative distance)
    • pojem BGP atribut (AS-path)


Obsah


Topologie sítě

Image:SPS_CV_BGPI_topologie1.png

Konfigurační příkazy

Předem je nutno zdůraznit, že uvedená konfigurace je vztažena vzhledem k vlastnostem a možnostem aktivních síťových prvků vyráběných společností Cisco, na kterých bude dané problematika procvičována. Na jiných platformách se může konfigurace a schopnosti jednotlivých zařízení, výrazně lišit [1].

Konfigurace směrování

Následující návodná konfigurace předpokládá funkční propojení a korektní adresaci rozhraní směrovačů. [2].

Předtím, než započneme vlastní konfiguraci je dobré si uvědomit pro jaké prostředí je protokol BGP určen. Z jeho předpokládaného nasazení na stabilních a spolehlivých spojích mezi ISP či institucemi nepřímo vyplývají některé jeho vlastnosti. Změny, které má protokol přenášet, jsou záměrně zpomalovány a jejich častý výskyt "pokutován". Do směrování jsou často vnášeny překážky (vzniklé kupříkladu na základě smluv mezi ISP), které nedovolují šíření paketů optimální - nejkratší cestou. Na zmíněné dvě vlastnosti v následujícím příkladu narazíme.

Základní konfigurace BGP procesu na směrovači

Protože je BGP směrovací protokol, který se používá pro směrování informací mezi autonomními systémy (AS), je potřeba při spuštění směrovacího procesu zadat číslo autonomního systému, ke kterému směrovač přináleží. Samotná čísla (identifikace) AS nejsou přidělována náhodně. Podléhají zprávě organizace IANA. Výjimku tvoří čísla 64512 až 65534, která jsou vyhrazena pro "privátní" účely a do informace o autonomních systémech v rámci Internetu nesmějí být propagována. Pro výukové účely v rámci uzavřené laboratoře budeme využívat čísla AS z rozsahu, který IANA spravuje a pro veřejné využití bychom museli žádat o jejich přidělení.

Po spuštění směrovacího procesu je dále zapotřebí specifikovat o kterých sítích chceme v rámci BGP informovat. Na rozdíl od konfigurace směrování pomocí protokolů OSPF nebo RIP, příkaz network zde neznamená automatické formování sousedských vztahů nebo šíření směrovací informace na rozhraních, které do dané sítě svou IP adresou, přináleží. K tomu, aby si směrovač začal s jinými směrovači informace vyměňovat, je zapotřebí specifikovat souseda (další směrovač), který díky své konfiguraci bude toto ochoten dělat.

(config)# router bgp <as_num>
(config-router)# network <ip_net> [mask <net_mask>]
(config-router)# neighbor <ip_nei_router> remote-as <as_num>

Poznámka: položka as_num v příkazu konfigurace souseda slouží k identifikaci autonomního systému sousedního směrovače. Dále na jením základně je lokální směrovač schopen určit, o jaký typ relace se sousedem se jedná.

Pro kontrolu úspěšnosti konfigurace případně nalezení jejích nedostatků lze využít následujících příkazů pro výpis směrovací tabulky, tabulky sousedů, souhrnných informací o BGP procesu a informaci o cestách do sítí, které BGP poskytuje včetně jejich AS path (cesty přes ostatní autonomní sytémy). Poslední příkaz pak provede vymazání a opětovnému startu BGP procesu. Jeho aplikací lze, pouze v laboratorních podmínkách, částečně odstranit problémy dlouhé doby konvergence BGP protokolu.

# show ip route
# show ip bgp neighbor
# show ip bgp summary
# show ip bgp
# clear ip bgp *

Zavádění politik směrování

Jak již bylo zmíněno politiky do směrování v rámci BGP zavádíme z důvodu vynucení definovaných požadavků na směrování mezi AS. Následující text se bude zabývat problematikou omezení šíření směrovací informace, pomocí jejího filtrování na základně nejrůznějších kritérií.

Filtrování konkrétních sítí ze směrovací informace

Uvedený příklad konfigurace reprezentuje jednoduchý způsob filtrování konkrétních sítí ze směrovací informace šířené v rámci BGP. Spočívá v aplikaci distribute-listu přímo na relaci mezi dvěma BGP sousedy vždy ve vstupním (in) nebo výstupním (out) směru šíření informace. Distribute-list se pak odkazuje na příslušný access-list, na základě něhož je pak vlastní výběr propagovaných sítí proveden.

(config-router)# neighbor <ip_nei_router> distribute-list <acc_num> <in|out>
(config)# access-list <acc_num> deny <ip_net> <wildcard>
(config)# access-list <acc_num> permit any

Poznámka: povšimněte si, že po výběru sítí, které nechceme v rámci BGP propagovat následuje další řádek v access-listu, který naopak povolí propagování ostatních sítí.

Po provedení konfigurace je vhodné, pomocí opakovaného výpisu směrovací tabulky, zjistit přibližnou dobu konvergence sítě nad protokolem BGP.

Filtrace cest na základě atributu AS-path

Při aplikaci BGP politik může rovněž nastat situace, kdy nejsme ochotni přijmout informaci, která prochází konkrétním autonomním systémem. Jelikož seznam autonomních systémů, přes které informace musela od svého zdroje do našeho systému projít, je v rámci směrovací informace u protokolu BGP uchováván v podobě atributu AS-path, máme možnost na základně jeho obsahu informace filtrovat.

Definice vyhledávaných vzorů v rámci AS-path je realizována pomocí regulárních výrazů. Význam některých speciálních znaků je uveden v tabulce

speciální symbol význam v rámci regulárních výrazů
^ počátek prohledávaného řetězce
$ konec prohledávaného řetězce
. libovolný znak v prohledávaném řetězci
* libovolný (i nulový) počet opakování předešlého znaku v prohledávaném řetězci

Pro vlastní realizaci filtrování se aplikuje filter-list (podobně jakou distribute-list) přímo na konfigurovaný sousedský vztah. Podobně jako v předešlém případě i zde jsou k dispozici dva směry filtrace in nebo out. Definice hledaného vzoru včetně způsobu zacházení s provozem, který tento vzor obsahuje, je realizována pomocí ip as-path access-list, který je asociován s filter-listem.

(config-router)# neighbor <ip_nei_router> filter-list <as_path_num> <in|out>
(config)# ip as-path access-list <as_path_num> deny <regexp>
(config)# ip as-path access-list <as_path_num> permit <regexp>

Poznámka: příklad regulárního výrazu, který filtruje cesty pocházející z autonomního systému s číslem 100 by mohl vypadat následovně

  ^.*100$

a definuje libovolný počet libovolných znaků před hodnotou 100 na samém konci řetězce.

Pro výpis konfigurovaných regulárních výrazů lze použít příkaz

# show ip bgp regexp

Manipulace s atributem AS-path

Protože atribut AS-path má jednu z nejvyšších priorit při výběru mezi ekvivalentními cestami, jež protokol BGP přenáší, hodí se možnost jeho délku uměle prodlužovat. Toto prodloužení má za následek znevýhodnění cesty v ostatních autonomních systémech před případnými jinými cestami do stejné sítě.

Celá konfigurace spočívá ve dvou krocích - vytvoření a konfiguraci route-map a její následnou aplikací na konfigurovaný sousedský vztah.

(config)# route-map <map_name> permit 10
(config-route-map)# set as-path prepend <as_num>
(config-router)# neighbor <ip_nei_router> route-map <map_name> out

To zda se konfigurace projevila je možno zkontrolovat pomocí příkazu

# show ip bgp

kde je atribut AS-path u jednotlivých záznamů uvedem.

Poznámky autora

  1. Uvedené příkazy slouží jen jako návodný text. Jejich syntaxe se může v závislosti na použité platformě lišit.
  2. Návod jak provést přiřazení příslušných IP adres na rozhraní lze nalézt například zde

Odkazy

Souhrn topologií a konfiguračních příkazů konfigurace Border Gateway Protocol (BGP) I

Osobní nástroje
výuka