BGP utility. Michael Waligora

Podobné dokumenty
Typická využití atributu Community protokolu BGP - modelové situace

Europen: IP anycast služba

Semestrální projekt do předmětu SPS

BIRD Internet Routing Daemon

Nezávislé unicast a multicast topologie s využitím MBGP

BIRD Internet Routing Daemon

Možnosti IPv6 NAT. Lukáš Krupčík, Martin Hruška KRU0052, HRU0079. Konfigurace... 3 Statické NAT-PT Ověření zapojení... 7

Základy IOS, Přepínače: Spanning Tree

32-bitová čísla Autonomních Systémů v protokolu BGP

32-bitová čísla Autonomních Systémů v protokolu BGP

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

Route reflektory protokolu BGP

OpenVPN a dynamické směrování

Směrovací démon BIRD. CZ.NIC z. s. p. o. Ondřej Filip / IT10

Projekt VRF LITE. Jiří Otisk, Filip Frank

Cisco IOS TCL skriptování využití SMTP knihovny

Počítačové sítě IP směrování (routing)

Jiří Tic, TIC080 Lukáš Dziadkowiec, DZI016 VŠB-TUO. Typy LSA v OSPF Semestrální projekt: Směrované a přepínané sítě

5. Směrování v počítačových sítích a směrovací protokoly

MPLS Penultimate Hop Popping

Load Balancer. RNDr. Václav Petříček. Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný

Testy kompatibility BGP a OSPF mezi Cisco a Mikrotik

Správa a provoz serveru Knot DNS

Vzdálené ovládání dotykového displeje IDEC HG3G pomocí routeru VIPA TM-C VPN

Programování síťové služby Sniffer OSPFv2 a OSPFv3

SEMESTRÁLNÍ PROJEKT Směrové přepínané sítě

Počítačové sítě II. 13. Směrování Miroslav Spousta,

GRE tunel APLIKA ˇ CNÍ P ˇ RÍRU ˇ CKA

Konfigurace sítě s WLAN controllerem

Počítačové sítě II. 13. Směrování. Miroslav Spousta, 2004

Přístup k transportní vrstvě z vrstvy aplikační rozhraní služeb služby pro systémové aplikace, služby pro uživatelské aplikace DNS

Základní principy obrany sítě II. Michal Kostěnec CESNET, z. s. p. o.

Další nástroje pro testování

Směrované a přepínané sítě

Administrace služby - GTS Network Storage

Možnosti Multi-Topology Routing v Cisco IOS (ISIS, OSPF, BGP, EIGRP)

Dodávka nových switchů a jejich integrace do stávající IT infrastruktury inspektorátu SZPI v Praze

Evoluce RTBH v NIX.CZ. Petr Jiran NIX.CZ IT17 Praha

Konfigurace DHCP serveru a překladu adres na směrovačích Cisco

Nepřímé do jiných sítí (podle IP adresy sítě přes router - určitou gateway ) Default gateway (společná výchozí brána do všech dostupných sítí)

Směrovací protokol OSPF s využitím systému Mikrotom. Ing. Libor Michalek, Ph.D.

Počítačové sítě I LS 2004/2005 Návrh a konstrukce sítě zadání

Podmíněná propagace cest do protokolu BGP

Směrovací protokoly, propojování sítí

Site - Zapich. Varianta 1

Semestrální projekt do SPS Protokol RSVP na Cisco routerech

Počítačové sítě IP routing

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Představa propojení sítí

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

Analýza protokolů rodiny TCP/IP, NAT

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Konfigurace směrovače, CDP

BEZTŘÍDNÍ SMĚROVÁNÍ, RIP V2 CLASSLESS ROUTING, RIP V2

Inovace bakalářského studijního oboru Aplikovaná chemie

Technologie počítačových sítí - LS 2016/2017. Případová studie příklady syntaktických konstruktů Cisco IOS pro jednotlivé části případové studie.

Multicast Source Discovery Protocol (MSDP)

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

Konfigurace Nagios. Zadání: Příprava a prvotní problémy: Instalace a konfigurace serveru:

Access Control Lists (ACL)

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

Budování sítě v datových centrech

Použití Virtual NAT interfaces na Cisco IOS

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

INSTALACE DATABÁZE ORACLE A SYSTÉMU ABRA NA OS WINDOWS

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

VLSM Statické směrování

VŠB Technická univerzita Ostrava Fakulta elektroniky a informatiky. Semestrální práce. BGP Routing Registry - principy a využití Zdeněk Nábělek

Informační technologie. Název oboru: Školní rok: jarní i podzimní zkušební období 2017/2018

4. Síťová vrstva. Síťová vrstva. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si funkci síťové vrstvy a jednotlivé protokoly.

DNS. Počítačové sítě. 11. cvičení

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

Internet Information Services (IIS) 6.0

RouterOS: Vizualizace datových toků

Abychom se v IPv6 adresách lépe orientovali, rozdělíme si je dle způsobu adresování do několika skupin:

Multiple Event Support

Administrace Unixu (Nastavení firewallu)

Technologie počítačových sítí - ZS 2015/2016 Kombinované studium

DHCP. Martin Jiřička,

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Nové LSA v topologické databází OSPFv3

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

X36PKO Úvod Protokolová rodina TCP/IP

Instalace SQL 2008 R2 na Windows 7 (64bit)

Ověření možností generování provozu na platformě MikroTik + srovnání s Cisco a Open Source řešeními

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Administrace služby IP komplet premium

IPv6 na OpenWRT. 6. června Ondřej Caletka (CESNET, z.s.p.o.) IPv6 na OpenWRT 6. června / 17

Směrovací protokol Mesh (802.11s) na platformě Mikrotik

Administrace služby IP komplet premium

NÁVOD K POUŽITÍ. IP kamerový systém.

Modbus SecuriPro Protocol Bridge

Stručný návod pro software dodávaný jako příslušenství k NetMini adaptéru. Komunikace UPS \ NetAgent Mini DK532, DP532. O.K.SERVIS Plus s.r.o.

Konfigurace Cisco směrovače

Quido - Telnet. Popis konfigurace modulů Quido protokolem Telnet. 3. srpna 2007 w w w. p a p o u c h. c o m

Internet protokol, IP adresy, návaznost IP na nižší vrstvy

Instalační a uživatelská příručka aplikace PSImulator2 Obsah

Počítačové sítě ZS 2008/2009 Projekt návrhu sítě zadání

2005 Mikrovlny s.r.o. IP/GSM Restarter

Transkript:

BGP utility Michael Waligora Abstrakt: Tento článek popisuje 6 vybraných BGP utilit - BIRD, BGPmon, BGPD.pl, BGPsimple, ExaBGP a IP to ASN. U každé utility je popsáno její použití, instalace, konfigurace a spuštění. Všechny nástroje běžely na Xubuntu 12.04 a byly úspěšně otestovány na BGP topologii postavené na směrovačích firmy Cisco. Klíčová slova: BGP utility, BIRD, BGPmon, BGPD.pl, BGP simple, ExaBGP, IP to ASN 1 Úvod...2 1.1 Modelová situace...2 2 BIRD (BIRD Internet Routing Daemon)...2 2.1 Instalace...3 2.2 Konfigurace a spuštění...3 2.3 Příklad užití...4 3 BGPmon...5 3.1 Instalace...6 3.2 Konfigurace a spuštění...6 3.3 Příklad užití...6 3.4 Další konfigurační příkazy...7 4 BGPD.pl...7 4.1 Instalace a konfigurace...8 4.2 Příklad užití...8 5 BGPsimple...9 5.1 Instalace a konfigurace...9 5.2 Příklad užití...9 6 ExaBGP...10 6.1 Instalace a konfigurace...10 6.2 Příklad užití...10 7 IP to ASN (Autonomous System Number)...11 7.1 Instalace...12 7.1 Příklad užizí...12 7.1.1 Whois...12 7.1.2 DNS...12 7.1.3 HTTP/HTTPS...13 8 Závěr...13 9 Použité zdroje...14 1/14

1 Úvod BGP je dynamický směrovací protokol používaný pro směrování mezi autonomními systémy (AS sys tém zpravidla spravovaný jednou organizací/společností). Na webových stránkách http://www.bgp4.as/tools se nachází seznam dostupných nástrojů a softwaru pro práci s BGP protokolem. Jsou zde k dispozici nástroje pro monitorování výměny směrovacích informací, online služby pro zjišťování informací o autonomních systémech, simulátory BGP sítí nebo aplikace implementující BGP protokol. Bohužel při jejich prozkou mávání jsem zjistil že velká část jich nefunguje. V této seminární práci postupně popíšu 6 utilit, které by se daly rozdělit do tří kategorií. Do první patří směrovací daemon BIRD. Dále následují 4 podobné utility, jejiž hlavní účel je navázání spojení s hraničním BGP směrovačem a monitorování směrovacích informací BGPmon, BGPD.pl, BGPsimple a ExaBGP. Po slední utilitu kterou popíšu je IP to ASN, která mapuje IP adresu na informace o autonomním systému ve kte rém leží. [1] 1.1 Modelová situace Pro testování BGP utilit jsem navrhl jednoduchou topologii, která se skládá ze tří autonomních systémů, na počítači s ip adresou 10.0.0.10 postupně poběží BGP utility - BIRD, BGPmon, BGPD.pl, BGPsimple a ExaBGP. Při instalaci jednotlivých nástrojů je nutné mít root oprávnění. Jelikož se jedná o jednoduchou topologii, která slouží pouze pro ověření funkčnosti jednotlivých utilit, nebudu v této práci popisovat jednot livé konfigurační příkazy na směrovačích firmy Cisco. Obrázek 1: BGP topologie 2 BIRD (BIRD Internet Routing Daemon) BIRD je daemon (program běžící v pozadí), který podporuje téměř všechny dnes užívané směrovací tech nologie. BIRD vyvinuli studenti z Matematicko-fyzikální fakulty, Karlovy univerzity jako studentský projekt pod GNU licencí. Tento projekt by měl být spustitelný na všech systémech Unixového typu (testováno na linuxových verzích 2.0-2.6, FreeBSD, NetBSD, OpenBSD). Pro používání IPv4 a IPv6 zá roveň je potřeba zkompilovat a spustit BIRD 2 krát každý s jinou konfigurací. [2] 2/14

Vlatnosti: IPv4 a IPv6 protokoly Border Gateway protocol (BGPv4) Routing Information Protocol (RIPv2) Open Shortest Path First protocol (OSPFv2, OSPFv3) Router Advertisements pro IPv6 hosty Konfigurace z příkazové řádky pro on-line ovládání nastavení routeru Snadné přenastavení přes konfigurační soubory 2.1 Instalace Před samotnou instalací je nejdříve nutné mít nainstalované následující knihovny GNU C Compiler, GNU Make, GNU Bison, GNU M4, Flex, ncurses a GNU Readline klihovny. Poté BIRD nainstalujeme příkazy./configure make make install. 2.2 Konfigurace a spuštění BIRD se standartně konfiguruje přes soubor /usr/local/etc/bird.conf. Příkazem bird spustíme daemona BIRD (volitelným parametrem -c zvolíme jiný konfigurační soubor). Jelikož počet konfiguračních příkazů je docela obsáhlý, budu zde popisovat pouze základní volby a strukturu konfiguračního souboru (více můžete najít zde http://bird.network.cz/?get_doc&f=bird.html). Každá volba musí být oddělena středníkem, soubor dále může obsahovat komentáře buď # pro jednořádkový nebo /* */ pro víceřádkové komentáře. Konfigu rační volby můžeme rozdělit do dvou kategorií globální(pro celý daemon BIRD) a nastavení protokolu(pro nastavení jednotlivých protokolů BGP, OSPF,...). Základní globální nastavení: log nastavení logování debug debugování (standartně vypnuto) filter router-id nastavení ID směrovače( standartně nejnižší ip adresa rozhraní) function definování vlastní funkce Základní nastavení protokolu (volby pouze pro BGP protokol): local as number definuje AS ve kterém se nachází náš směrovač neighbor ip as number definuje sousedící směrovač, pokud nastavíme jeho AS stejné jako AS naše ho směrovače, BIRD se automaticky přepne do ibgp import filter specifikuje filter, který bude rozhodovat jaké příchozí cesty budou předávány do smě rovací tabulky hosta (standartně ALL) export filter pracuje podobně jako import, akorát ve směru od hosta hold time time čas v sekundách, jak dlouho se má čekat na zprávu Keepalive, než se daný smě rovač bude považovat za mrtvý keepalive time number čas v sekundách mezi odesláním dvou Keepalive zpráv Ostatní BGP atributy např. bgppath, bgp_local_pref, bgp_med, bgp_origin, bgp_next_hop,... Po úspěšném spuštění daemona, můžeme BIRD ovládát pomocí klienta birdc. Tento klient nám umožňuje zobrazovat informace o stavu směrovače, vypsat routovací tabulku, zapnout/vypnout daný protokol, znovu načíst konfigurační soubor atd. Client funguje podobně jako Cisco IOS, po zadání? se zobrazí seznam všech příkazů. Některé příklady nejdůležitějších příkazů: show status zobrazí stav směrovače show protocol zobrazí seznam aktivních protokolů show route vypíše směrovací tabulku configure znovu načte konfiguraci enable disable restart name zapne vypne restartuje protokol down vypne daemona 3/14

2.3 Příklad užití router id 50.50.50.50; /* protokol device není reálný směrovací protokol, slouží jako modul pro přístup k síťovým rozhraním */ protocol device { scan time 10;#čas v sekundách mezi skenováním rozhraní } /* protokol kernel není reálný směrovací protokol, stará se o synchronizaci směrovacích tabulek BIRDU s operačním systémem*/ protocol kernel { export all; #bude šířit všechny směrovací informace co zná } protocol bgp { local as 500; neighbor 10.0.0.9 as 200; import all; export all; } Konfigurace BIRD Počítač na kterém poběží BIRD, bude v autonomním systému 500. Bude peerovat se sousedem 10.0.0.9, který je v autonomním systému 200. Oba směrovače si navzájem budou vyměňovat informace o sítích v ji ných autonomních systémech (topologie viz. Obrázek 1.). Na obrázku 2. můžete vidět celý postup od spuštění BIRDU po zobrazení směrovací tabulky. Bird se nau čil všechny sítě šířené BGP v ukázkové topologii. 4/14

3 BGPmon BGP Montor (BGPmon) je malý, škálovatelný a rozšiřovatelný systém pro monitorování BGP směrování. BGPmon emuluje skutečný BGP směrovač a peeruje s ostatními směrovači, ale pouze poslouchá. BGPmon nemá implementované žádné směrovací politiky, neprovádí úpravy směrovacích tabulek a ani nepřeposílá pakety. Během svého provozu zachycuje směrovací informace přijaté od BGP sousedů a konvertuje je do XML formátu. Tato data můžou být zobrazena buď na monitorovací stanici, nebo můžou být poskytnuta BGPmon klientovi. BGPmon může také označit směrovací data pro zjednodušení pozdější analýzy, všechny typy ozna čení dat můžeme vidět v Tabulce 1. NANN Oznámení nového prefixu. DPATH Update oznamující rozdílný AS PATH. SPATH Update oznamující stejný AS PATH. DANN Žádná změna ve všech atributech. WITH Odebrání prefixu. Tabulka 1: BGPmon popisky Jedna instance BGPmon může zpracovávat velké množství směrovačů a klientů. Další užitečnou vlastností je, že z jednotlivých instancí můžeme vytvořit řetěz, kde každá instance v řetězu bude získávat data od ostatních instancích. Tímto způsobem můžeme monitorovat rozsáhlé sítě. Klientem se může stát každý program, který umí navázat TCP spojení a parsovat XML. Součástí BGPmon není klient, je na uživatelích jaký program pro zpracovávání XML dat použijí. [3] Celá architektura BGPmon je zobrazena na obrázku 3. Na levé straně jsou navázané spojení s sousedními směrovači a BGPmon serverem (pro každý objekt 1 vlákno). Informace jsou řazeny do fronty, poté jsou označeny. Všechny přijaté informace jsou dále překonvertovány do XML formátu a jsou dostupné klientům nebo jiným BGPmon serverů. 5/14

3.1 Instalace BGPmon nainstalujeme příkazy./configure make make install. Pro běh aplikace je nutné mít nain stalovanou knihovnu libxml2 (v Ubuntu se nainstaluje apt-get install libxml2-dev). 3.2 Konfigurace a spuštění BGPmon spustíme příkazem sudo service bgpmon start (nyní běží BGPmon jako služba). Službu konfiguruje prostřednictvím příkazové řádky telnetu, BGPmon server běží na portu 50000. Příkaz pro připo jení z lokální stanice tedy je telnet localhost 50000. Standardní heslo je BGPmon (dá se změnit příkazem password v konfiguračním režimu). Nyní jste v tzv. guest módu, kde můžou být zobrazeny různé statistiky a směrovací tabulky. Abychom mohli konfigurovat server, musíme nejdříve přejít do privilegovaného módu (příkaz enable), a poté do konfiguračního módu (příkaz configure). Příkazy pro konfiguraci popíšu přímo na ukázkovém příkladu (konfigurace je založena na Cisco IOS). 3.3 Příklad užití Pro otestování utility použiji opět topologii na Obrázku 1., BGPmon server poběží na adrese 10.0.0.10 (AS 500) a bude peerovat s směrovačem s ip adresou 10.0.0.9 (AS 200). První dva příkazy mají stejný vý znam jako v Cisco IOS. Poslední příkaz uloží konfiguraci, která se znovu nahraje při startu systému. host(config)# router bgp 500 host(config-router)# neigbor 10.0.0.9 remote as 200 host(config-router)# exit host(config)# exit host# copy running-config startup-config Konfigurace BGPmon Nyní je navázána vazba s směrovačem v AS 200, pro připojení klienta je dobré nejdříve ověřit na jakém portu bude BGPmon server poskytovat data. Toto docílíme příkazem show client-listener summary. Stan dardně sever poskytuje data na portu 50001. Na obrázku 4. vidíme že naváže spojení s směrovačem z AS 200 a ip adresou rozhraní 10.0.0.9 bylo navázáno. Obrázek 4: BGPmon - show bgp neighbor Jako klienta jsem použil program telnet, na obrázku 5. jsou zobrazena získaná data ze serveru v XML for mátu. 6/14

Obrázek 5: BGPmon klient 3.4 Další konfigurační příkazy Konfigurace přístupu klientů Nastavení IP adresy na které bude server naslouchat: client-listener update address <new_update_address> - informace o BGP update client-listener rib address <new_rib_address> - informace o směrovací tabulce Nastavení portu na kterém bude server naslouchat: client-listener update port <new_update_port> - informace o BGP update client-listener rib port <new_rib_port> - informace o směrovací tabulce Dále BGPmon umožňuje kontrolovat, kteří klienti se můžou připojit pomocí ACL: client-listener update acl <acl_name> - informace o BGP update client-listener rib acl <acl_name> - informace o směrovací tabulce Po provedení některého z příkazu výše dojde k restartování služby. Přístup klientům se může vypnout nebo zapnout příkazem: client-listener <disable enable> Konfigurace ACL (Access Control Lists) ACL se používá k povolení nebo zamítnutí přístupu klientů. BGPmon má standardně dvě ACL denyall (zakač vše) a permitall(povol vše). Příkazy pro práci s ACL: show acl vypíše dostupné ACL acl <acl_name> - vytvoří nový ACL no acl <acl_name> - smazání ACL V konfiguračním módu acl: permit IP mask [rule_index] povolí přístup z IP adresy s maskou deny IP mask [rule_index] - zamítne přístup z IP adresy s maskou no rule_index smazání pravidla na indexu Pro povolení nebo zamítnutí všech adres zadáme místo IP adresy příkaz any. Konfigurace řetězů Pro připojení BGPmon do serveru slouží tyto příkazy: chain IP <[update:port][rib:port]><[enable disable]> - připojí se jako klient k BGPmon serveru na daném portu no chain address [port] odpojí se z řetězu 4 BGPD.pl Bgpd.pl je částečná implementace protokolu BGP (RFC1771), napsaná v Perlu. Tato knihovna byla navr žena jako modul pro použití v dalších aplikacích. Dále knihovnu můžeme využít jako nástroj pro monito rování BGP updatů nebo pro sbírání různých druhů statistik. 7/14

Bgpd.pl se nedá použít jako směrovač v reálné síti, protože nemá podporu propagování směrovacích informací (nemá implementovaný kód pro posílání směrovacích informací sousedním směrovačům). Knihovna dále neumí konfigurovat směrovací tabulku na hostiteli. [4] 4.1 Instalace a konfigurace Jelikož se jedná o Perl knihovnu, není potřeba žádná instalace. Pro spuštění skriptu je potřeba nain stalovat knihovnu Net::Patricia (http://net.doit.wisc.edu/~plonka/net-patricia/). Konfiguraci tentokrát přímo popíšu na ukázkovém příkladu. 4.2 Příklad užití Oproti předchozím nástrojům je tato knihovna jednodušší a má pouze několik konfiguračních příkazů. Jako v předchozích dvou kapitolách opět budu vycházet z topologie na obrázku 1. AS a ip rozhraní směrova če s kterým budu peerovat je stejné jako v předchozích příkladech. Ukázkový konfigurační soubor je zob razen ve výpisu níže. router bgp 500 #AS hosta s Bgpd.pl je 500 neighbor 10.0.0.9 remote-as 200 #peer má ip 10.0.0.9 a je v AS 200 #které události se mají logovat log general session-warnings log localrib session-warnings log header session-warnings log open open-optional log update parse-update log notification session-warnings log keepalive session-warnings log route-refresh session-warnings log list session-warnings #router-id a.b.c.d, standartně je nastaveno id, které vrátí funkce gethostbyname() Bgpd.pl konfigurace Volby logování mají tvar log <class> <level>. Bgpd.pl poskytuje tyto třídy general, header, localrib, open, update, notification, keepalive, router-refresh a list. Každá třída má několik úrovní logování critical, warning, info, parse, session-error, session warning. Bohužel v dokumentaci není přesně popsané, které informace spadají do jednotlivých tříd a levelů. Nástroj spustíme příkazem./bgpd.pl [--log [syslog file stdout] ] [ --daemon] [ --config <config file> ], kde si můžeme vybrat ze tří způsobů logování, jestli bgpd spustíme jako daemon a jméno konfiguračního příkazu. Obrázek 7: Bgpd.pl ukázka Obrázek 6: Cisco směrovač 8/14

Na obrázku 6., vidíme že bgpd.pl navázalo BGP spojení s směrovačem. Jelikož se během provozu Bgpd.pl neobjevily žádné upozornění a chyby, je tento výstup poměrně nezajímavý. 5 BGPsimple BGPsimple je skript perlu, který navazuje spojení s BGP sousedem, monitoruje přijaté zprávy a aktualiza ce. Dále skript umí injektovat cesty uložené v souboru (TABLE_DUMP_V2 formát), a šířit je přes BGP spo jení. Veškerá komunikace s BGP sousedem se provádí pomocí knihovny NET::BGP. 5.1 Instalace a konfigurace Pro běh skriptu není nutná žádná instalace, je nutné mít pouze nainstalovanou knihovnu Tuto knihovnu nainstalujeme příkazy perl Makefile.pl make make test make install. [5] Veškeré konfigurační parametry jsou Bgpsimple poskytnuty přes parametry příkazové řádky při spuštění skriptu. Spuštění: bgp_simple.pl: -myas ASNUMBER -myip IP address -peerip IP address -peeras ASNUMBER Toto jsou 4 povinné parametry, další nepovinné parametry jsou: [-holdtime] Seconds [-keepalive] Seconds [-v] # poskytuje výpis na STDIN [-p file] # prefixy které se mají šířit [-o file] # zapíše všechny přijaté a odeslané zprávy UPDATE do souboru [-m number] # maximální počet prefixů, které se mají šířit [-dry] # nenavazuje BGP spojení, pouze kontroluje syntaxi souboru s prefixy další viz. readme projektu Net::BGP (http://search.cpan.org/~kbrint/net-bgp-0.14/lib/net/bgp.pm). 5.2 Příklad užití Topologii je zobrazena na obrázku 1., všechna nastavení jsou stejná jako v předchozích příkladech. BGP simple naváže spojení s peerem. a bude propagovat tyto sítě 4.0.0.0/9, 4.0.0.0/8, 4.23.88.0/23. Na obrázku 7. vidíme jak bylo navázáno spojení s směrovačem 10.0.0.9. Na obrázku dále vidíme že jsme obdrželi informace o sítích v topologii, aspath a nexthop. Obrázek 8: BGPSimple příklad Abychom mohli šířit sítě - 4.0.0.0/9, 4.0.0.0/8, 4.23.88.0/23, k příkazu na obrázku 6. je nutné přidat para metr -p soubor s prefixy v TABLE_DUMP_V2 formátu. Jelikož jsem neznal tento formát použil jsem ukáz kový soubor ze stránek projektu. Na obrázku 8. vidíme výpis směrovací tabulky směrovače, kde je vidět že směrovač zná cestu k těmto sítím. 9/14

6 ExaBGP Tento program je navržen aby injektoval libovolnou routu do sítě (IPv4 i IPv6) s libovolnou adresou dalšího skoku (next-hop). ExaBGP může také parsovat přicházející cesty do textové podoby a předat je ji ným programům ke zpracování. [6] 6.1 Instalace a konfigurace Velkou výhodou tohoto programu je, že není závislý na jiných knihovnách třetích stran. K běhu programu stačí mít nainstalovaný Python 2.4 a vyšší. Program spustíme příkazem /exabgp/sbin/exabgp file (cesta ke konfiguračnímu souboru). U této utility bohužel opět není moc popsaná struktura konfiguračního souboru, asi nejlepší způsob jak porozumět konfiguraci je prozkoumání ukázkových souborů (/exabgp/etc/exabgp), kde je přibližně 30 konfigurací. 6.2 Příklad užití Opět byla použita topologie z obrázku 1., počítač s ExaBGP (AS 500, IP 10.0.0.10) bude peerovat s smě rovačem (AS 200, IP 10.0.0.9). K připojení využijeme upravený soubor ebgp4-peer-update.txt (konfigurace s komentáři níže). Domnívám se, že pokud jste četli předcházející kapitoly, nemá smysl konfigurační soubor popisovat. Za zmínku stojí příkaz process tcp-control, který spustí tcp server pro další ovládání ExaBGP. #bgp soused v rámci jednoho konfiguračního souboru může být více sousedů neighbor 10.0.0.9 { description "popis"; router-id 10.0.0.10; local-address 10.0.0.10; local-as 500; peer-as 200; hold-time 180; #čas v sekundách, jak dlouho se má čekat na zprávu Keepalive, než se daný směrovač bude považovat za mrtvý # spuštění TCP serveru pro ovládání ExaBGP process tcp-control { receive-routes; run etc/exabgp/processes/tcp-server; } #cesta která se bude šířit static { route 10.0.5.0/24 next-hop 10.0.255.254; #alternativně s parametry med a local preference #route 10.0.5.0/24{ # next-hop 10.0.255.254; # med 2000; # local-preference 1; #} } } ExaBGP konfigurace Po spuštění programu příkazem /exabgp/sbin/exabgp /exabgp/etc/exabgp/ebgp4-peer-update.txt začne program generovat informativní zprávy do konzole (obrázek 9.). 10/14

Obrázek 9: ExaBGP Příkazem telnet localhost 9999, se připojíme na tcp server ExaBGP. Po připojení vidíme všechny cesty, které ExaBGP přijal. Příkazem help se zobrazí seznam všech příkazů, např: 1. reload znovu načte konfiguraci 2. announce route odeslání cesty všem sousedům 3. witdraw route odebrání cesty 4. show neighbors zobrazení připojených sousedů 5. show routes zobrazení přijatých cest Na obrázku 10. můžete vidět ovládání přes telnet. Obrázek 10: ExaBGP telnet 7 IP to ASN (Autonomous System Number) Poslední utilita se zabývá mapováním ip adresy na číslo autonomního systému a BGP prefixy. Jedná se o službu, ke které můžeme přistupovat přes: Whois (TCP 43) DNS (UDP 53) HTTP (TCP 80) HTTPs (TCP 443) 11/14

Všechny tyto služby poskytují stejné informace, které se aktualizují každé 4 hodiny. Služby poskytují tyto informace: BGP Origin (původ) ASN BGP Peer ASN BGP Prefix Prefix Country code (kód země) ASN Registry (registrátor) ASN Allocation date (datum alokace) ASN Description (popis) [7] 7.1 Instalace Utilita Whois se nainstaluje příkazem (sudo apt-get install whois), program dig pro práci s dns je běžnou součástí většiny linuxových distribucí. 7.1 Příklad užizí 7.1.1 Whois Pro využívání této služby jsou dostupné 2 severy whois.cymru.com (v4.whois.cymru.com) a peer.whois.cymru.com (v4-peer.whois.cymru.com). Server whois.cymru.com je primárně určen pro mapování IP adres na BGP ASN a prefixy. Pomocí serve ru peer.whois.cymru.com můžeme určit ASN čísla oblastí, která jsou jeden BGP skok vzdálená od ASN IP adresy (sousední AS). Toto může být např. užitečné jestliže chceme rychle zjistit poskytovatele připojení ně jakého ASN. Na obrázku 11. zjišťujeme informace o ip adrese 77.75.72.3, příkaz whois -h whois.cymru.com -v 77.75.72.3 vypsal informace ASN, BGP prefix, kód země, registrátor a datum alokace. Pro zjištění BGP sousedů se použil stejný příkaz, pouze na server v4-peer.whois.cymru.com. Zjistili jsme že sousedí s AS 5610 a 29208. Další parametry příkazu můžete zjistit na adrese http://www.team-cymru.org/services/ip-toasn.html. Obrázek 11: Whois 7.1.2 DNS DNS služba má výhodu cachování a pracuje na UDP protokolu => menší režie oproti WHOIS. Pro mapo vání IP jsou k dispozici 4 servery (1 pro IPv6): origin.asn.cymru.com mapuje IPv4 na BGP ASN origin6.asn.cymru.com mapuje IPv6 na BGP ASN peer.asn.cymru.com mapuje IP adresu na možné BGP peery asn.cymru.com - zobrazuje popis AS Na obrázku 12. můžeme viděl příklad zjišťování informací o adrese 77.75.72.3 (v dotazu musí být adresa v obráceném pořadí). První příkaz zjistí ASN adresy, druhý informace o daném AS. 12/14

Obrázek 12: Dig 7.1.3 HTTP/HTTPS Poslední možný přístup ke službě přes HTTP nebo HTTPS protokol je pro normáního uživatele nejjedno dušší, stačí navštívit adresu http://asn.cymru.com nebo https://asn.cymru.com. Na obrázku 13. vidíte zobrazení všechny možné informace o adrese 77.75.72.3. 8 Závěr V této práci jsem popsal 6 BGP utilit, všechny tyto utility jse mi podařilo spustit a otestovat na jedno duchých příkladech. Utility BGPD.pl, BGPsimple a ExaBGP měly podobnou funkcionalitu, lišily se pouze v několika detailech a v použitém programovacím jazyku (c++, perl, python). Utility, které mě zaujali a které bych doporučil k dalšímu prozkoumání jsou BIRD (dá se využít pro směrování i jiných protokolů než BGP OSPF, RIP), BGPMon (je možné monitorovat rozlehlé sítě) a ExaBGP (velké množství předkonfigurovaných souborů). Pomocí služby IP to ASN můžeme získat užitečné informace o autonomních systémech. Dále jsem se pokoušel ještě zprovoznit několik simulátorů BGP sítí (C-BGP, BGP++ Simulation Tool), bohužel se mi nepodařilo je zprovoznit na používané systému Xubuntu 12.4. 13/14

9 Použité zdroje [1] BGPUtility. [online]. [cit. 2013-05-01]. Dostupné z: http://www.bgp4.as/tools [2] BIRD. [online]. [cit. 2013-05-01]. Dostupné z: http://bird.network.cz/ [3] BGPMon. [online]. [cit. 2013-05-01]. Dostupné z: http://bgpmon.netsec.colostate.edu/ [4] BGPD.pl. [online]. [cit. 2013-05-01]. Dostupné z: http://sourceforge.net/projects/bgpd/ [5] BGPSimple. [online]. [cit. 2013-05-01]. Dostupné z: https://code.google.com/p/bgpsimple/ [6] ExaBGP. [online]. [cit. 2013-05-01]. Dostupné z: https://code.google.com/p/exabgp/ [7] IP TO ASN. [online]. [cit. 2013-05-01]. Dostupné z: http://www.team-cymru.org/services/ip-toasn.html 14/14