Typická využití atributu Community protokolu BGP - modelové situace Vít Slováček Login: SLO0058 Abstrakt: Dokument popisuje konfiguraci protokolu BGP (Border Gateway Protocol) a nastavení atributu community. Klíčová slova: BGP (Border Gateway Protocol), IBGP (Internal Border Gateway Protocol), EBGP (External Border Gateway Protocol), OSPF (Open Shortest Path First), AS (Autonomous system) 1 Úvod...2 2 BGP...2 2.1 Popis BGP...2 2.2 Vyhledávání cest v BGP...3 2.3 Zprávy BGP...3 2.4 Atributy BGP...3 3 Topologie sítě...5 4 Konfigurace BGP...6 5.1 Příkazy použité pro konfiguraci směrovačů R1, R2, R3, R4, R6...6 5 Nastavení atributu community...7 5.1 Nastavení atributu community pro specifické potřeby směrování provozu v síti. 7 5.1.1 Ověření zvýhodnění spojovací linky...8 5.2 Nastavení atributu community jako filter...10 5.2.1 Ověření nastavení BGP...11 5.2.2 Konfigurace R1 a R2...12 5.2.3 Ověření filtrace adres...13 5.3 Nastavení atributu community jako filter pro zvolenou sít...14 5.3.1 Konfigurace R1 a R2...14 5.3.2 Ověření filtrace adres...15 6 Závěr...16 7 Použitá literatura...17 květen 2015 1/17
1 Úvod Projekt popisuje konfiguraci BGP, mezi dvěma autonomními systémy a následné nastavení atributu community. 2 BGP 2.1 Popis BGP BGP směrovací protokol dělíme na vnitřní (IBGP) a vnější (EBGP). V BGP rozlišujeme jednotlivé autonomní systémy. AS (automní systémy obr. 1) jsou skupiny sítí, které mají stejnou směrovací politiku, v našem případě je použit protokol OSPF. IBGP používáme pro směrování uvnitř autonomního systému (obr. 1 ). EBGP používáme pro směrování mezi autonomními systémy (obr. 1). Obr 1. Automní systém, IBGP, EBGP květen 2015 2/17
2.2 Vyhledávání cest v BGP BGP pracuje s grafem propojení autonomních systémů. V grafu jsou vyhledávány cesty mezi automními systémy pomocí atributu AS PATH, cesta k cílové síti je posloupnost čísel automních systémů, přes které musíme projít k cílové síti. BGP nemá jednoznačnou metriku jako je tomu v OSPF nebo RIP. Směrovací politiku proto určuje několik kritérií: Zvolení automních systémů, do kterých může projít provoz přes náš automní systém. Zvolení automních systémů, ze kterých může projít provoz přes náš automní systém. Zvolení výtupní linky našeho AS, ze které odchází provoz k dané sítě. Zvolení vstupní linky našeho AS, do které přicházi provoz k dané siti.[1] 2.3 Zprávy BGP V BGP jsou 4 typy zpráv, které si vyměnují sousední BGP routery. Při konfiguraci vždy nastavujeme věchny sousedy manuálně. OPEN tato zpráva se vyměnuje při konfiguraci vazby mezi sousedními BGP routery UPDATE zpráva nesoucí samotnou směrovací informaci KEEPALIVE zpráva, která se vyměnuje každých 60 sekund mezi sousedy kvůli ověření funkčnosti linky NOTIFICATION zpráva pro indikaci chyb v BGP[1] 2.4 Atributy BGP Obr. 2 BGP atributy [2] květen 2015 3/17
Well-know atributy, které musí být podporovány všemi implementacemi BGP, jsou šířeny na BGP sousedy mandatory povinné atributy, které musí být uvedeny ke každé trase, musí být obsaženy ve zprávě UPDATE discretionary nepovinné atributy, které nemusí být uvedeny ke každé trase, mohou být obsaženy ve zprávě UPDATE Optional atributy, které nemusí být podporovány všemi implementacemi BGP, mohou být šířeny na BGP sousedy transitive pokud není tento atribut implementován, předává se dále beze změny, mohou být obsaženy ve zprávě UPDATE nontransitive pokud není tento atribut iplementován, nepředává se dále, je smazán [2] květen 2015 4/17
3 Topologie sítě Pro ukázku konfigurace atributu community jsem si zvolil následující topologii sítě obr. 3. V topologii se nacházejí dva autonomní systémy. V AS 100 jsou dva hraniční směrovače, které jsou spojeny s hraničním směrovačem, který je v AS 200. Obr. 3 Topologie sítě květen 2015 5/17
4 Konfigurace BGP Konfiguraci BGP musíme provést na všech směrovačích v automním systému. 5.1 Příkazy použité pro konfiguraci směrovačů R1, R2, R3, R4, R6 Konfigurace BGP směrovače spočívá ve správném zvolení sousedů, když volíme souseda, který se nachází ve stejném automním systému, přírádíme mu stejné číslo AS. V tomto případě se jedná o konfiguraci IBGP. Příkaz next-hop-self použítí: aby R2 moh směrovat provoz přes R3 do sítě 40.0.0.0/24. Výpis routovací tabulky směrovače R3. Výpis BGP tabulky směrovače R3. květen 2015 6/17
5 Nastavení atributu community 5.1 Nastavení atributu community pro specifické potřeby směrování provozu v síti V tomto příkladu konfigurace jsme zvýhodnili jednu spojovací linku před druhou, konkrétně linky s IP adresou 10.0.0.4/30 a 10.0.0.8/30. Z předešlé teorie víme, že atribut community patří do kategorie optional-transitive. Jendá se tedy o nepovinný atribut, který může být použit. Atribut community se skládá ze čtyř oktetových hodnot. Dva oktety jsou určeny pro číslo AS, druhé dva oktety určují číslo, které nanstavuje administrátor. Pak se z této hodnoty např. 100:300 určí místní preference 130 vyšší hodnota ma přednost před nižší. V našem případě nastavujeme na R3 v směrovacích mapách hodnoty 100:250 a 100:300. V opačném směru na R1 nastavujeme místní preference na hodnoty 125 a 130. Konfigurace směrovače R3. Museli jsme nastavit zasílání atributu community sousedům. Pak jsme vytvořili novy formát atributu, kde jsme nastavili přístupové listy pro jednotlivé sítě. Následně jsme nastavili směrovací mapy, kde jsme nastavili, jaký přístupový list se má v daném případě použít, a také jsme nastavili hodnoty atributu community ve formanu AA:NN (číslo AS, číselná hodnota). Vysvětlení směrovací mapy: z konfiguračních příkazů je patrné, že ke každé směrovací mapě přiřazujeme přístupový list. Zvýhodnění linky nastavujeme pomocí příkazu set community, kde si můžeme všimnout, že nastavujeme, aby IP adresa sítě 40.0.0.0 měla výhodnější cestu přes routeru R1 pomocí nastavených parametru set community 100:300. Pro IP adresu sítě 50.0.0.0 jsme zvolili set community 100:250 což znamená, že výhodnější cesta bude přes router R2, který má u IP adresy sítě nastaveno set community 100:300. květen 2015 7/17
Konfigurace směrovače R1 je obdobná jako u směrovače R3, rozdil je ve formátu bgp-community, kde nejsou zadány přístupové listy, ale community listy s hodnotami ve formátu AA:NN. Jsou zde nastaveny směrovací mapy, které mají místo formátu AA:NN nastavenou lokální preferenci. Obdobná konfigurace je použita u R3 5.1.1 Ověření zvýhodnění spojovací linky Příkaz traceroute jsme použili z rozhraní směrovače R1. Z výpisu je patrné, že spojovací linka 10.0.0.4/30 je zvýhodněná pro dosažení sítě 40.0.0.0/24, proto povoz prochází R1 R3. Kdežto pro dosažení sítě 50.0.0.0/24 je výhodnější spojovací linka 10.0.0.8/30, tak můžeme vidět, že provoz do této sítě bude směrován přes R1 R2 R3. květen 2015 8/17
Příkaz traceroute jsme použili z rozhraní směrovače R2. Z výpisu je patrné, že spojovací linka 10.0.0.8/30 je zvýhodněná pro dosažení sítě 50.0.0.0/24, proto povoz prochází R2 R3. Kdežto pro dosažení sítě 40.0.0.0/24 je výhodnější spojovací linka 10.0.0.4/30, tak můžeme vidět, že provoz do této sítě bude směrován pře R2 R1 R3. květen 2015 9/17
5.2 Nastavení atributu community jako filter Zapojení topologie dle obr. 4. V tomto případě využíváme nastavení atributu community k filtraci. Pokud se hodnota atributu community na R1 neshoduje s hodnotou, které je nastavena R2, pak jsou všechny provozy do sítí 50.0.0.0/24 a 40.0.0.0/24 zamítnuty. Obr. 4 Topologie sítě květen 2015 10/17
5.2.1 Ověření nastavení BGP Směrovací tabulka R1, pro ověření správně konfigurace BGP. BGP tabulka R1. Směrovací tabulka R2, pro ověření správně konfigurace BGP. BGP tabulka R2. květen 2015 11/17
5.2.2 Konfigurace R1 a R2 Pro konfiguraci fitru jsem využili výhody, že pokud se atributy community sousedů neshodují slouží jako filtr. Konfigurace BGP je shodná s konfigurací v bodě č. 5. V konfiguraci R2 nemusíme vytvářet směrovací mapu, protože chceme, aby nedošlo ke shodě v atributu community. květen 2015 12/17
5.2.3 Ověření filtrace adres Směrovací tabulka R1, pro ověření správně konfigurace BGP. BGP tabulka R1. Tabulky R2 zůstavají stejné jako v předešlém výpisu. Ověření filtrace adres pomocí příkazu ping, prví dva příkazy jsou použity před konfigurací, následující dva příkazy jsou použity po konfiguraci filtru. květen 2015 13/17
5.3 Nastavení atributu community jako filter pro zvolenou sít V této konfiguraci je použita stejná topologie jako v bodě 5.2. Výpisy směrovacích tabulek před konfigurcí atributu community jsou rovněž stejné jako v bodu 5.2. 5.3.1 Konfigurace R1 a R2 Pro konfiguraci fitru jsem využili výhody, že pokud se atributy community sousedů neshodují slouží jako filtr. Pro povolené sítě se musí shodovat atribut community. Konfigurace BGP je shodná s konfigurací v bodě č. 5. V konfiguraci R2 nemusíme vytváříme směrovaci mapu, kde určujeme, jaká adresa nebude filtrována. Hodnota atributy community musí být shodná s atributem community v povolených v R1. květen 2015 14/17
5.3.2 Ověření filtrace adres Směrovací tabulka R1 pro ověření správně konfigurace BGP. BGP tabulka R1. Tabulky R2 zůstavají stejné jako v předešlém výpisu 5.2.1. Ověření filtrace adres pomocí příkazu ping, prví dva příkazy jsou použity před konfigurací, následující dva příkazy jsou použity po konfiguraci filtru. květen 2015 15/17
6 Závěr Cílem projektu bylo nastavení atributu community. Zmíněný atribut se používá v protokolu BGP, který se používá pro směrování provozu mezi autonomními systémy. V prvním případě byl atribut použit ke zvýhodnění spojovací linky mezi dvěma autonomními systémy, tuto linku jsme zvýhodnili pomocí nastavení atributu community ve formátu AA:NN, kde první číslo značí číslo automního systému a druhé označuje číselnou hodnotu. V testovaném případě jsme spojovací lince nastavili jinou hodnotu NN a sledovali jsme pomocí příkazu traceroute, který jsme používali na rozhraních hraničních směrovačů R1 a R2. Z výsledků bylo patrné, že pokud jsme použili tento příkaz na směrovačí R1 a jako cílovou IP adresu jsme zadali adresu sítě 50.0.0.0/24, pak jsme museli přejít přes spojovací linku 10.0.0.0/30 a 10.0.0.8/30,pokud byla zadána adresa 40.0.0.0/24, pak jsme použili k dosažení cíle pouze spojovací linku 10.0.0.4/30. V případě použití příkazu traceroute na směrovačí R2 nastala opačná situace. Tímto jsme si ověřili zvýhodnění spojovací linky pro dosažení požadované sítě. Druhý příklad spočíval v nastavení atributu community jako filtru. V tomto případě jsme využili community listu, kde jsme nastavili, které adresy budou povoleny a které budou zakázány. Nastavení jsme realizovali pomocí community listu, kde jsme nastavili povolení IP adresy s hodnotou community 6553900 a zakázání všech ostatních IP adres, které se s touto hodnotou neshodují, nastavení pomocí hodnoty atributu community 1:1, kdežto IP adrese 40.0.0.0/24 jsme nastavili atribut community na hodnotu 6553900 shodný s atributem community pro povolení IP adresy. Funkci tohoto filtru jsme ověřili příkazem ping viz výpisy výše. květen 2015 16/17
7 Použitá literatura [1] Směrovací protokol BGP [online]. GRYGÁREK, Petr. [cit. 2015-05-07]. Dostupné z: http://www.cs.vsb.cz/grygarek/sps/lect/bgp/bgp.html [2] Using BGP Community Values to Control Routing Policy in Upstream Provider Network [online].,. [cit. 2015-05-07]. Dostupné z: http://www.cisco.com/c/en/us/support/docs/ip/border-gateway- protocol-bgp/28784-bgpcommunity.html [3] Using BGP Community Values to Control Routing Policy in Upstream Provider Network [online].,. [cit. 2015-05-07]. Dostupné z: http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/28784-bgpcommunity.html [4]Configuring OSPF [online]. [cit. 2015-05-07]. Dostupné z: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_ospf/configuration/12-4t/iro-12-4tbook/iro-cfg.html [5]Configuring BGP [online]. [cit. 2015-05-07]. Dostupné z: http://www.cisco.com/c/en/us/td/docs/ios/12_2/ip/configuration/guide/fipr_c/1cfbgp.html [6]Using BGP Communities Attribute [online]. [cit. 2015-05-07]. Dostupné z: http://www.nongnu.org/quagga/docs/docs-multi/using-bgp-communities-attribute.html květen 2015 17/17