32-bitová čísla Autonomních Systémů v protokolu BGP Jakub Martiník (MAR0178), Lukáš Dobrý (DOB0016) Abstrakt: Tento krátký dokument ověřuje kompatibilitu mezi autonomními systémy v protokolu BGP, které jsou číslovány 16 bitovými tak 32 bitovými čísly. Dále bylo úkolem otestovat základní manipulace se směrovacími informacemi a práci s atributy při rozesílání směrovacích informací do autonomníchsystémů. Klíčová slova: autonomní systém, směrování, kompatibilita, atributy, BGP 1 Úvod...2 2 Zadání projekt...2 2.1 Směrovací protokol BGP...2 2.1.1 Autonomní systémy...2 2.1.2 Číslování autonomních systémů...3 2.1.3 Dot formát čísel...3 2.1.4 Atributy BGP...3 2.1.5 Zpracování atributů při směrování v BGP...4 2.1.6 Regulární výrazy v BGP...4 3 Praktická část projektu...4 3.1 Seznam zařízení...5 3.2 Topologie...5 3.2.1 Konfigurace rozhraní na směrovačích...5 4 Závěr...11 Duben 2014 1/11
1 Úvod Cílem projektu je ověření funkčnosti směrovacího protokolu BGP při použití 16 bitových čísel autonomních systémů a 32 bitových čísel autonomních systémů. Další krokem je zjistit kompatibilitu 16 bitových a 32 bitových čísel autonomních systémů při práci s atributy směrování. 1.1 Směrovací protokol BGP BGP (Border Gateway Protokol) je dynamický směrovací protokol používaný pro směrování mezi autonomními systémy (AS). Autonomní systémy jsou entity do kterých je rozdělený současný Internet. BGP se primárně používá jako externí směrovací protokol, také označován jako ebgp. BGP nemá žádné informace o interním směrování a směrovacích protokolech. Směrovač, na kterém běží BGP směrování, funguje pro síť jako hraniční prvek pro vstup do ostatních autonomních systému v Internetu. Směrovací tabulky mohou obsahovat až stovky tisíc záznamů, kde však hlavním kritériem nebývá pouze vzdálenost, ale velkou roli tady hrají i jiné parametry, jako například dodatečná pravidla aplikovaná jako filtry, cena, rychlost linky atd. Protože směrovací tabulky obsahují obrovské množství záznamů, není možné, aby se tabulky přeposílaly na jiné směrovače v síti kompletní. BGP reaguje pouze na změnu ve směrovacích tabulkách a tu také přeposílá dále. [2] 1.1.1 Autonomní systémy Autonomním systémem se označuje souvislá skupina sítí a směrovačů, které mají společnou zprávu a řídí se společnou směrovací politikou. Ten pomocí hraničních směrovačů spojuje další autonomní systémy a vzniká tak Internet. Na začátku implementace BGP se autonomní systému značily 16 bitovými čísly. To znamená, že na celém světě, mohlo být maximálně 2 16 =65536 autonomních systémů. Autonomní systémy musí mít ojedinělé číslo v rámci směrovací tabulky, není možné, aby dva AS měli stejné číslo. Brzo se však zjistilo, že se čísla pro autonomní systémy vyčerpají a proto bylo navrženo rozšíření, na 32 bitová čísla. Autonomní systémy se tady mohou číslovat z rozsahu 2 32 =4294 967 296. Takto navýšená kapacita se pokládá za dostačující a čísla pro autonomní systémy by neměly být vyčerpány. Obrázek 1.1: Ukázka propojení autonomních systémů [4] Duben 2014 2/11
1.1.2 Číslování autonomních systémů 16 bitová čísla autonomních systémů Při číslování autonomních systémů pomocí 16bitů zapisujeme čísla autonomních systémů v rozmezí od 0-65536. Číslo autonomního systému musí být v rámci Internetu jedinečné. 32 bitová čísla autonomních systémů Při číslování autonomních systémů pomocí 32bitů se nepoužívá dekadický zápis z důvodu délky čísla autonomního systému v rozmezí 0 4 294 967 296. Proto se pro zápis používá tzv. dot formát. Dot formát odděluje skupinu 16bitů od sebe tečkou. Proto zápis čísel autonomních systémů mají podobu například 10.2 apod. 1.1.3 Dot formát čísel Zápis a přepočet dot formátu do dekadického formátu Jak bylo uvedeno výše v textu očíslování autonomních systémů pomocí desítkové soustavy by bylo velice nepřehledné a proto se využívá pro zápis tzv. dot formát. Ten může mít například následující podobu 10.2, 358.1458, 10000.5632. Na příkladu níže si vysvětlíme jak funguje přepočet. >dot formát< >přepočet do dekadické soustavy< 10.2 (10*65536)+2=655360+2=655362 358.698 (358*65536)+698=23462586 Z tohoto přepočtu vyplývá, že největší možný zápis je: 65536.65536 (65536*65536)+65536=4295032832 1.1.4 Atributy BGP Atributy v BGP rozhodují o tom, která cesta do daného autonomního systému je nejvýhodnější a tudíž ji bude využívat primárně k provozu. Ostatní cesty budou směrovači známy, ale budou fungovat jako záložní cesty v případě, že by primární byla přerušena. Nejkratší cesta do daného autonomního systému neznamená vždy tu nejlepší volbu. Je rozdíl jestli bude cesta obsahovat dvě 100Mbit/s linky a nebo tři linky v kombinaci 2x 100Mbit/s a 1x 10Gbit/s. V druhém případě bude lepší cestovat delší, ale však rychlejší cestou. K tomu abychom mohli ovlivnit cesty do autonomních systémů slouží atributy pro směrování. Seznam nejdůležitějších atributů je uveden v tabulce. Duben 2014 3/11
ORIGIN - známý a povinný atribut AS_PATH - známý a povinný atribut NEXT_HOP - známý a povinný atribut MULTI_EXIT_DISC - známý volitelný LOCAL_PREF - známý volitelný ATOMIC_AGGREGATE - známý volitelný AGGREGATOR - známý volitelný COMMUNITY - volitelný (Cisco) ORIGINATOR_ID - volitelný (Cisco) CLUSTER LIST - volitelný (Cisco). Tabulka 1: Seznam vybraných atributů v BGP 1.1.5 Zpracování atributů při směrování v BGP Politiku směrování mezi autonomními systémy zajišťuje v BGP manipulace s atributy. Díky těmto atributům je možné nastavit, které informace bude směrovač rozesílat ostatním směrovačům, nebo které směrovací informace naopak nebude přijímat. Je možné také uměle pomocí atributu AS_PATH prodlužovat cestu do autonomního systému. 1.1.6 Regulární výrazy v BGP Další možností jak ovlivnit, už zmínění AS_PATH, směrovací informace, které bude směrovač vysílat nebo přijímat je použití regulárních výrazů. Při použití regulárních výrazů je možné nahradit pomocí speciálních znaků jak řetězec znaků tak pouze jeden znak. Seznam speciálních znaků pro regulární výrazy je uveden v tabulce.. - nahradí jeden znak * - žádný nebo více výskytů znaků + - jeden nebo více výskytů znaků? - žádný nebo jeden výskyt znaků ^ - začátek daného řetězce $ - konec daného řetězce _ - speciální znak pro AS_PATH Tabulka 2: Seznam znaků pro regulární výrazy ^.*300$ - ukázka regulárního výrazu, který filtruje cesty, které pochází z AS 300 Tabulka 3: Ukázka regulárního výrazu Duben 2014 4/11
2 Praktická část projektu 2.1 Seznam zařízení 4x směrovač Cisco 2901 s verzí IOS 15.3 4x přepínač Cisco 2960 2.2 Topologie Obrázek 2.1: Testovací topologie Následující konfigurace předpokládá adresování viz topologie na obrázku 2.1. 2.2.1 Konfigurace na směrovačích a) Nastavení směrovacího protokolu BGP[1] směrovač R1 router bgp 100 - směrování BGP autonomní systém 100 no synchronization bgp asnotation dot - zapnutí použití dot formátu network 192.168.0.0 - přímo připojené sítě neighbor 1.0.0.2 remote-as 10.2 - propojení s ostatními směrovači a neighbor 4.0.0.2 remote-as 10.4 rozesílání směrovacích informací Duben 2014 5/11
směrovač R2 router bgp 10.2 - směrování BGP autonomní systém 10.2 no synchronization bgp asnotation dot - zapnutí použití dot formátu network 192.168.1.0 - přímo připojené sítě neighbor 1.0.0.1 remote-as 100 - propojení s ostatními směrovači a neighbor 2.0.0.1 remote-as 300 rozesílání směrovacích informací směrovač R3 router bgp 300 - směrování BGP autonomní systém 300 no synchronization bgp asnotation dot - zapnutí použití dot formátu network 192.168.2.0 - přímo připojené sítě neighbor 2.0.0.2 remote-as 10.2 - propojení s ostatními směrovači a neighbor 3.0.0.2 remote-as 10.4 rozesílání směrovacích informací směrovač R4 router bgp 10.4 - směrování BGP autonomní systém 10.4 no synchronization bgp asnotation dot - zapnutí použití dot formátu network 192.168.3.0 - přímo připojené sítě neighbor 3.0.0.1 remote-as 300 - propojení s ostatními směrovači a neighbor 4.0.0.1 remote-as 100 rozesílání směrovacích informací b) Ve směrovací tabulce uvedené na obrázku 2.2 lze vidět, že daný směrovač zná všechny sítě. To znamená, že kompatibilita mezi autonomními systémy označené 16 bitovými čísly a 32 bitovými čísly funguje. Obrázek 2.2: Výpis routovací tabulky Zda je směrování funkční lze také ověřit příkazem show ip bgp. Výpis daného příkazu lze vidět na dalším obrázku č. 2.2, kde je vyobrazeno, že každý směrovač má do každé sítě dvě cesty, kdy jedna cesta je delší a druhá je kratší kromě sítí naproti v topologii. Cesty označené znakem > jsou právě používané. Duben 2014 6/11
Obrázek 2.3: Výpis cest do ostatních sítí Z výpisu na obrázku č. 2.3 je vidět, že ze směrovače R4 je možné se dostat se do sítě 192.168.0.0 pomocí dvou cest, a to přes autonomní systémy 100, 10.2, 300 (delší cesta, přes rozhraní s IP adresou 4.0.0.1) nebo přes autonomní systém 300, přes rozhraní s IP adresou 3.0.0.1. Síť 192.168.3.0 nemá žádnou cestu přes autonomní systémy, protože je přímo připojená na směrovač R4. c) Umělé prodlužování cest pomocí atributů AS_PATH Pomocí atributů AS_PATH je možné uměle navyšovat délku cesty do dané sítě. Směrovač rozesílá informace, kde cesta do dané sítě je například přes 7 autonomních systémů, kde prodloužení tvoří přidané číslo autonomního systému, ve kterém se nachází. Konfigurace se provede prostřednictvím příkazu níže. Konfiguraci jsme prováděli na směrovači R4 route-map <název> permit/deny 10 - Vytvoření pravidla, kde buď zakážeme nebo povolíme příkazy níže. set as-path prepend <as_číslo> - Zde zadáme, o kolik čísel autonomních systémů prodloužíme cestu. Je možno zadat dekadicky nebo dot formát. neighbor <ip_souseda> route-map <mapa> out - Posledním příkazem aplikujeme pravidlo. Příkaz out znamená, že směrovač bude tyto informace šířit od sebe. Výsledek tohoto pravidla je vyobrazen na obrázku č.2.4, kde je vyobrazena uměle prodloužená cesta o auto nomní systéme 10.4. Je zvykem uměle prodlužovat cestu pouze číslem autonomního systému, ve kterém se směrovač nachází a ne jiným. Konfiguraci je možné si ověřit pomocí příkazu show ip bgp. Obrázek 2.4: Změna paramtru AS_PATH Duben 2014 7/11
d) Využití regulárních výrazů k filtrování směrovacích informací Regulární výrazy jsou sofistikovanější nástroj na filtrování příchozích nebo odchozích směrovacích informací. Díky speciálním znakům je možné filtrovat všechny možné řetězce v atributu AS_PATH. Pro naše testování a ověření zda fungují regulární výrazy jak pro 16 bitová čísla autonomních systémů tak pro 32 bitová čísla autonomních systémů, využijeme následující konfiguraci. Při konfiguraci regulárního výrazu pro autonomní systém využívající 32 bitové číslovaní, není možné využít zápis v dot formátu, protože obsahuje znak., který se speciální znak pro zápis regulárních výrazů uvedený v tabulce 2. Konfigurace a ověření regulárních výrazů při použití 16 bitového číslování autonomního systému Je nutné vytvořit pravidlo s regulárním výrazem a aplikovat na směrovači. Regulární výrazy jsme testovali na směrovači R4. ip as-path access-list <číslo> deny/permit <regular> - vytvoření pravidla s regulárním výrazem neighbor <ip_souseda> filter-list <číslo_acl> <in/out> - aplikace pravidla IP souseda značí směr, kterým se bude informace posílat. Příkaz out značí, že se regulární výraz bude uplatňovat na odchozí informace. ip as-path access-list 1 deny ^.*300 neighbor 4.0.0.1 filter-list 1 out Při našem testu byl použit regulární výraz v této podobě: ^.*300.Tento regulární výraz bude zahazovat při posílání směrovacích informacích všechny cesty, které začínají číslem 300. První výpis na obrázku 3.5 ze směrovače R1 je uveden před použitím regulárního výrazu a druhý obrázek 3.6 je po aplikaci regulárního výrazu, kde nejsou žádné AS_PATH začínající číslem 300. Obrázek 2.5: Před použitím regulárního výrazu Duben 2014 8/11
Obrázek 2.6: Po aplikaci regulárního výrazu Při porovnání obou obrázků je zřetelný rozdíl. Na druhém obrázku lze vidět, že obsahuje méně záznamů a to je způsobeno aplikací regulárního výrazu na odchozí směrovací informace. Tímto tabulka neobsahuje směrovací informace z autonomního systému 10.4, které začínaly číslem 300. Konfigurace a ověření regulárních výrazů při použití 32 bitového číslování autonomního systému Je nutné vytvořit pravidlo s regulárním výrazem a aplikovat na směrovači. Regulární výrazy jsme testovali na směrovači R1 a výraz ovlivnil informace na směrovači R2. ip as-path access-list <číslo> deny/permit <regular> - vytvoření pravidla s regulárním výrazem neighbor <ip_souseda> filter-list <číslo_acl> <in/out> - aplikace pravidla ip_souseda značí směr, kterým se bude informace posílat. Příkaz out značí, že se regulární výraz bude uplatňovat na odchozí informace. ip as-path access-list 1 deny ^.*655364 neighbor 1.0.0.2 filter-list 1 out Při konfiguraci pravidla pro regulární výrazy obsahující 32 bitová čísla je nutné přepočítat dot formát do dekadického, podle vzorce, který jsme i uvedli výše v textu.tento regulární výraz bude zahazovat všechny cesty, které začínají číslem autonomního systému 10.4. Výpisy před a po použití regulárního výraz jsou na obrázcích č. 2.7 a 2.8. Duben 2014 9/11
Obrázek 2.7: Před aplikací regulárního výrazu Obrázek 2.8: Po aplikaci regulárního výrazu Na výpisu lze vidět, že směrovač R2 nedostal informace začínající čísle 10.4 od směrovače R1. 3 Závěr Cílem tohoto projektu bylo ověřit plnou kompatibilitu mezi autonomními systémy označeny 16 bitovými čísly a autonomními systémy označenými 32 bitovými čísly ve směrovacím protokolu BGP. Kompatibilitu jsme ověřovali konfigurací směrovacího protokolu BGP mezi autonomními systémy (viz. kapitola 2.2.1), poté jsme ověřovali umělé navyšování atributu AS_PATH v 32 bitových autonomních systémech a nakonec jsme testovali funkčnost regulárních výrazů v 32 bitových autonomních systémech. Ve všech krocích testování se nám podařilo úspěšně ověřit funkčnost konfigurace. Díky těmto pozorování můžeme říct, že autonomní systémy označené 16 bitovými čísly a 32 bitovými čísly jsou plně kompatibilní a použitelné. Duben 2014 10/11
4 Zdroje [1] www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/113593-configbgp-using-32bit-asn-00.html [2] www.nanog.org/meetings/nanog45/presentations/tuesday/hankins_4byteasn_n45.pdf [3] http://www.ripe.net/lir-services/resource-management/faq/faq-asn32 [4] http://shin-ajaran.blogspot.cz/2011/06/bgp-awesomeness-with-packet-tracer-532.html Duben 2014 11/11