You are on page 1of 4

KNOW HOW BGP

BGPv4 i przykładowa konfiguracja rutingu typu multihoming

BGPv4 i Quagga
Przedstawiamy podstawowe założenia protokołu BGPv4 oraz przykłado-
wą konfigurację BGP w oparciu o oprogramowanie Quagga, w jednej
z najczęściej spotykanych konfiguracji – klienta z dwoma dostawcami
Internetu (multihoming).
MARCIN MAZUREK

w BGP przenosić dodatkowe informacje. NA przechowywane są informacje dotyczące
Podstawową funkcją BGP, tak jak każdego numerów AS i jednostek, którym zostały
www.PhotoCase.de

protokołu rutowania, jest wymiana informa- przypisane. Aby dowiedzieć się więcej o któ-
cji o zakresach adresów, które dostępne są rymś z numerów ASN, można wykorzystać
poprzez określone rutery/systemy autono- program whois:
miczne. Zakresy adresów są określane jako Aby wykorzystać BGP w sytuacji przez nas
prefiksy (ang. prefix), a ścieżki opisujące ko- rozpatrywanej (klient – 2 różnych dostaw-

B
order Gateway Protocol (BGP) jest lejne systemy autonomiczne (AS), doprowa- ców), poza ASN potrzebne będą także adresy
obecnie podstawowym protokołem, dzające do wybranego prefiksu – jako trasy IP niezależne od dostawców. Procedura
za pomocą którego w ramach Inter- (ang. path). BGP nie przenosi informacji otrzymywania adresów PI (Provider Inde-
netu wymieniane są informacje o dostępności o konkretnych urządzeniach, zamiast tego pendent) jest bardzo podobna do procedury
pomiędzy poszczególnymi sieciami, nazywa- posługuje się terminem systemów autono- otrzymywania numeru AS i sprowadza się do
nymi też systemami autonomicznymi (AS – micznych. Taki system najczęściej tworzą lo- wymiany kilku, kilkunastu maili z RIPE. Na-
Autonomous System). gicznie wydzielone organizacje, firmy czy do- leży jednak pamiętać, że zanim wystąpimy
BGP w pierwszej wersji został opisany stawcy Internetu. To, jak w ramach AS prze- o PI czy ASN, musimy mieć wsparcie jedne-
w RFC-1105 w 1989 roku. Wersja czwarta, kazywana jest informacja o ścieżkach, zależy go z dostawców, który posiada status LIR
która jest obecnie standardem używanym już jedynie od administratorów danej sieci. (Local Internet Registry).
w Internecie, opisana jest w RFC-1771 z 1995 Żeby brać udział w wymianie informacji
roku. BGP w najnowszej wersji znacznie zy- przez BGP, każdy system autonomiczny musi Wiedza tajemna,
skało na funkcjonalności. Zwiększył się roz- posiadać własny numer, który przydzielany czyli jak to działa
miar pojedynczej wiadomości, wprowadzone jest przez IANA/RIPE. Jest to 32-bitowa liczba Celem BGP jest przenoszenie informacji o do-
zostały atrybuty, za pomocą których można – Autonomous System Number (ASN), która stępnych prefiksach poprzez poszczególne
jest następnie używana przez BGP przy wy- AS-y. Jest to informacja nie tylko o trasach do-
mianie informacji. Numery te są unikatowe, stępnych, ale także o zmianach zachodzących
aby nie doszło do zapętlania się rutingu. Po- w sieci BGP. Rutery wykorzystujące BGP na-
dobnie jak w przypadku numerów IP, także tu- zywane są neighbors. Zestawiają one połącze-
taj można wykorzystać prywatne numery AS. nia (peering) pomiędzy sobą. W obrębie dane-
Numery te są często wykorzystywane w dużych go AS (iBGP) każdy ruter musi być połączony
sieciach opartych o BGP.
Prywatne ASN są numera- Korzystanie z programu whois
mi z zakresu 64512-65535. w celu uzyskania informacji o ASN
Przykładowe numery
#whois as8246
ASN:

aut-num: AS8246
GTS – 8246
as-name: INTERNET-TECHNOLOGIES-POLSKA-AS
TPNET – 5617
descr: Internet Technologies Polska Sp. z o.o.
descr: GTS Internet Partners
Rysunek 1: BGP pomiędzy trzema odrębnymi W bazach whois RIPE
[...]
sieciami. i pozostałych agend IA-

56 Lipiec 2004 www.linux-magazine.pl

Wyszukiwanie w procesie BGP informacji next_hop. BGP-4 i BGP-4+. kacji używany jest protokół TCP oraz port 179. i – internal przenoszona jest dodatkowa informacja w pa. Kiedy odda. *> 217.1. także protokoły związane z IPv6”.1. o których informuje. ospfd. *> 195.16 Default-IP-Routing-Table) (157. UPDATE. nie będzie regexp ^8246$ rutera-sąsiada o zmianach.160. BGP tworzy trwałe tingu związanych z IPv4. Last update: Tue Dec 23 07:24:15 Atrybut ten nazywany jest as_path.? U kietach UPDATE – są to atrybuty.12.149. Quagga to zespół demonów komunikują- router ID is 195. jak RIP czy IGRP.16 U jest dostępna przez dwie ścieżki as_path – lone są od siebie o kilka hopów. e – EGP.25. przez niego ścieżce do AS100 i odwrotnie. którego rozwój pozo- sach. czyli 10. 130 000).0/22 rence i MED. BGP KNOW HOW Najczęściej używane atrybuty to: as_path. Jest to oprogramowanie bazujące na ko- o osiągalnych poprzez niego innych prefik. na.25. Do komuni.16 U ASN mógłby powtórzyć się w as_path. jakie prefiksy są u nich Quagga jest jednym z niewielu rozwiązań i poprzez nich dostępne.25. lub korzystają z protokołów OSPFv2. *> 217. że au- widać poniżej. jak BGP działa w warstwie protokołów dynamicznego rutingu w Linuk- 192.111. jest ona dodatkowo oznaczana nu- (213.16 from 157.153.0. Przekazy- external.0/24. ripd. wa własnych mechanizmów do zestawiania z BGP. a nawet sesji i wymiany danych. Jak typów komunikatów do porozumiewania się rów Cisco ciekawe (i wygodne) jest to. U Atrybuty BGP odpowiada za komunikację z systemową ta- d damped. a obecnie także główny programi- LIVE. valid. ripngd. best 2003 wanie informacji o ścieżce as_path. RTP. oprócz in- formacji samej w sobie. localpref 100.1) 8246:667 8246:1080 merami ASN sieci. h history.12. tor Zebry.192.0/19 157.linux-magazine. sta Quaggi.as_path ścieżek.25. Opis pochodzący z dokumentacji najlepiej tomiast AS100 jest informowany o AS200.0 połączone ze sobą bezpośrednio. Quagga obsługuje tylko jedna. router-bgpd# show ip bgp U trzebne są do zestawienia sesji. takie jak EIGRP. podtrzymywania miała kłopotu z konfigurowaniem Quaggi. się dostać poprzez telnet na port 2601 Weight Path trować wybrane ścieżki. Quagga wówczas tras.8. 0 8246 i le sposobów). NOTIFICATION. „martwić” o utrzymywanie połączenia i spraw. wykorzystują własne oprogramowaniem implementującym proto- skomplikowanie ze względu na ilość AS. przez które przechodzi.160.111. OSPFv3. pokazuje. local_prefe- o sieci 162. Niektóre z proto. połączenia pomiędzy ruterami komunikują.12.1 cych się wzajemnie ze sobą. niektóre nie robią tego w ogóle. nizm Route Reflector i Route Server. communities. valid. Paths: (2 available. BGP table version is 0. dzie projektu Zebra [1]. Jeśli jest to cji np. Do poszczególnych demonów można Network Next Hop Metric LocPrf U może wpływać na działanie procesu BGP i fil.0.101 Community: 5588:1001 5588:3001 przez nie. Za ich pomocą administrator terami. RIPv2. tras może być kilka. Poza wsparciem dla protokołów ru- sach adresów IP.0. Poniższy przykład pokazuje ścieżki otrzy. Gdy jest to ruter Powyżej warstwy transportowej BGP uży.25. jako krótsza (na z opcji ebgp-multi-hop. best #1. Rutery nie muszą być 0 8246 i Jak widać. zapobiega występowa- niu pętli przez wykluczenie sytuacji. stałe AS o udostępnianej przez niego trasie. nizmu route eflector). Podobnie pozostałe ASN in. są to tylko trzy trasy: ruterów ze sobą: OPEN.as_path external między ruterami danych AS. Te obsłu- Origin codes: i – IGP. bgpd.25. * valid.94. Komunikaty te po. Pozwalają gują poszczególne protokoły i komunikują – incomplete one procesowi BGP dokonywać wyboru opty. local U oraz zamykania sesji.101 from 62. posiada także zaimplementowany mecha- bardzo dużo (np. RIPng. stara się go naśladować. Demon zebra Status codes: s suppressed. sie.144. Używanych jest kilka Dla osób znających interfejs obsługi rute- mane od ASN 8246 – GTS/IPARTNERS. localpref 100.1.1. dzanie poprawności danych. w przypadku zebra i 2605 w przypadku www.0. ospf6d. AS300 informuje AS200 o dostępnej Dzięki TCP protokół rutowania nie musi się stawia ostatnio wiele do życzenia.168. ich protokoły stworzone specjalnie do komunika.0/22 2003 niu informacji do sąsiadów możemy wpły- BGP routing table entry for wać na zachowanie się procesu BGP i wybór 161. w której z innym (można to obejść za pomocą mecha. Origin IGP.12. table 157. informowania która używała interfejsu Cisco. korzysta się 0 8246 i wybrana została pierwsza.0/19 157. U Wraz z informacją o prefiksach i ich długości blicą rutingu oraz z pozostałymi demonami: > best. origin. TCP/IP.16 U wybór ścieżek można wpływać na bardzo wie- Ruter należący do AS100 informuje pozo.0/16 157. Osoba.12. cymi się bezpośrednio. BGP w sieciach TCP/IP Open Source pozwalających na stosowanie głasza informacje o swoim własnym prefiksie Warto wiedzieć. takich jak UDP.160.12.1. Informacja o prefiksach przekazywana jest 12968 3549 3356 <.12. znany informujący tylko o własnych trasach/zakre. koły dynamicznego rutingu dla protokołu strukturę oraz rozmieszczenie. się jedynie z demonem zebra lub innymi ru- malnej ścieżki. Przechodząc 62.16) Atrybut as_path Not advertised to any peer Origin IGP. trasa do adresów 161.12. Na podstawie ich wartości lub router-bgpd# show ip bgp Last update: Tue Dec 30 17:24:48 przez zmianę ich wartość przy przekazywa- 161. ale informuje także sąsiadów transportowej modelu OSI/ISO.134. może być bezpołączeniowych. ruter tranzytowy prowadzący do Internetu.pl Lipiec 2004 57 . KEEPA.118.1.0/24. Total number of prefixes 3 Quagga formują sąsiadów. takie jak RIPv1. czym jest Quagga: „Quagga jest W rzeczywistości wygląda to nieco bardziej kołów.0/22 8246 5588 1239 3356 <. AS300 nie tylko roz.

0/24 11 description „Siec wewnetrzna – AS100” 11 neighbor 192.KNOW HOW BGP Konfiguracja demona zebra Konfiguracja demona bgpd odpowiadającego za komunikacje z innymi odpowiadającego za komunikację demonami wchodzącymi w skład Quaggi z innymi ruterami BGP 1 hostname router-zebra 1 hostname router-bgpd 2 password 8 xxxxxxxxxxxxx 2 password 8 xxxxxxxxxxxxx 3 enable password 8 xxxxxxxxxxxxx 3 enable password 8 xxxxxxxxxxxxx 4 log file /var/log/quagga. One zapewniają połączenie z resztą informacje. Z rutera A wypro.168.0.0. że połączenia są tej samej Linie 1-7 są dość przejrzyste.31.168.1 description 13 ip address 10. pozwalający na komunikację Jest to jedna z najczęstszych konfiguracji. czyli atrybut as_path można dopaso.168.10. wysyłane z AS100 posiadają pustą ścieżkę na zostanie konfiguracja Quagga w sytuacji AS-ów. jakie będziemy rozgłaszać w In- Internetu i połączenie zapasowe w przypad.168.1 route-map localonly out 21 description „ISP 2 -AS300” 19! 22 link-detect 20 ip prefix-list 10 seq 10 deny 0. hasła i opcje logowania. Zakładamy. ternecie. Rysunek 3.0.1 description 18 ip address 192.0. który może być wykorzystywa.31.0/0 23 ip address 172. Po- Konfiguracja ta zapewnia zdublowanie po. Począwszy od linii 9 przechodzimy do kon- wadzane są dwa połączenia eBGP do AS200 figuracji procesu BGP.0.linux-magazine. towym. i konieczne. aby proces BGP w nich: prompt wyświetlany po zalogowaniu sam decydował o wyborze najlepszej trasy.168. ze wszystkimi działającymi demonami pod. Warto skorzystać z udogodnienia. czyli nasze adresy PI.16. co nie po- ny jako punkt styku pomiędzy operatorami chodzi z lokalnego AS.log 5 log trap informational 5 log trap informational 6 log record-priority 6 log record-priority 7 service advanced-vty 7 service password-encryption 8 service password-encryption 8! 9! 9 router bgp 100 10 interface eth0 10 network 10. i AS300. Może tak być Przykładowa konfiguracja w przypadku. W linii 10 określamy Rysunek 2.1 prefix-list 10 in 20 interface eth2 18 neighbor 172.0.0. lecenie z linii 7 powoduje.10. ku awarii jednego z nich.2/30 „Link do ISP 2” 19! 17 neighbor 172.0. AS połączone z nami będą otrzymywać infor- kim jest vtysh.1 remote-as 300 17 link-detect 16 neighbor 172. Przy konfiguracji warto zwrócić uwagę na my operacyjne to: Linux. w których wykorzystanie BGP jest przydatne czas jednego połączenia. chyba że chcemy to robić celowo.31. (konieczne są adresy PI).1/8 24 route-map localonly permit 10 27! 25 match as-path 50 26! tu. gdy jesteśmy punktem tranzy- Quagga stanowi w pełni funkcjonalny odpo.16. nych od AS200 do AS300 i odwrotnie.2/30 21! 24! 22 ip as-path access-list 50 permit ^$ 25 interface lo 23! 26 ip address 127.1/24 „Link do ISP 1” 14! 13 neighbor 192. definiujemy przepustowości i pozwalamy.0.1 prefix-list 10 in 15 interface eth1 14 neighbor 192.16. Schemat architektury Quaggi. NetBSD. to.31. Schemat sieci wykorzystanej połączenia sieci z dwoma dostawcami Interne.1 route-map localonly out 16 description „ISP 1 – AS200” 15 neighbor 172.0.1 remote-as 200 12 link-detect 12 neighbor 192. wać za pomocą wyrażenia regularnego ^$. 58 Lipiec 2004 www. się do terminala. Oficjalnie wspierane przez Quagga syste.log 4 log file /var/log/quagga. ja. Mapa rutowania o nazwie localonly wiednik rutera.31. ze hasła są prze- łączeń przy pełnej niezależności adresowej chowywane w postaci zaszyfrowanej.0. nie pozwala na wysyłanie niczego. FreeBSD. w opisywanej konfiguracji. Dzięki temu bgpd. Wszystkie informacje wykorzystującymi BGP.16. Poniżej przedstawio.16. aby nie rozgłaszać informacji otrzymywa- OpenBSD i Solaris.pl .

111. localpref 100. zaj.org bgpd. warto znać kilka 157. Paths: (2 available. local AS U http://www.71. router-bgpd# show ip bgp summary Last update: Sun Mar 28 U [3] RFC 1771 – A Border Gateway BGP router identifier U 21:52:08 2004 Protocol 4 (BGP-4): 195. 217. U Sam Halabi. Jest to zwykła konfi.111.118. 217.153.61 | wc -l inicjujące sieć.0/16 www. które będą niezbędne (157.pl Lipiec 2004 59 .25. external ISBN: 157870233X.25. natomiast router-zebra# jest promptem 62. jaka informacja jest prze.0 5617 i chu przydają się właśnie wspomniane wcze. wy- my rozgłaszać naszym sąsiadom informacji starczy sprawdzić informacje o AS 5617. * 62. ■ otrzymano ponad 128000 prefiksów.ietf.0/13 157.33) proces BGP trasy domyślnej. aby proces zebry gamma:~# ip route | wc -l Weight Path uruchamiany był przed pozostałymi demona.153. BGP table version is 0.quagga. takie jak as_path. best Linie 11 i 15 opisują ASN naszego sąsiada.144. *> 80. mujący się wprowadzaniem tras do tablicy ru.16 U umieściłem w nim wielu informacji.org/rfc/rfc1771. Z obydwu sesji Last update: Mon Mar 29 U zajmujących się BGP na co dzień. cji o trasie domyślnej. Są to rzeczywiście działa.153. valid. Status codes: s suppressed. zostały w tym celu mapa rutowania local. innej poza lokalną.1.199.0 http://www.0. w których mogliby. U kę Sama Halabiego [2]. 0 12968 3549 1239 25617 i nym wypadku procesy takie jak bgpd nie będą Tutaj sprawdzamy. 129492 *> 63.25.0.160.0.101 0 12968 24748 U gólnych interfejsach. Prompt router-bgp# jest promptem 62. ponie.0. localpref 100. Bardzo istotne jest. Origin IGP. Neighbor V AS MsgRcvd MsgSent U metric 0.16 150 U banalna.25.25. Zapobie.111. router-bgpd# show ip bgp regexp U sowuje atrybut as_path do listy 50.160.1. local_prefe. chowywana w procesie BGP o trasie 0 8246 5617 i a ten do jądra.16 150 U przekazywać informacji do procesu zebry. local U śmy rozgłaszać z naszego AS informacje inne nalnie.107.25. z których krótsza valid.1) [2] „Internet Routing Architectures”. 0 0 0 01w0d15h 129167 nie trasa najlepsza. Danny McPherson. Ponieważ otrzy. pierwsza zo.16 from 157. Kontrola działania Not advertised to any peer Niniejszy artykuł to tylko krótki wstęp do Zakładając.linux-magazine. *> 83. Total number of neighbors 2 TPNET otrzymujemy od naszych peerów.111. BGP routing table entry for U śniej atrybuty.101 from U [1] Projekt Zebra: http://www. router ID is 195.160. pomińmy skrypty startowe 62.? U nie dublować ich inicjowania. zestawione dwie sesje. jak widać dość nieproporcjo.153.111. best z głównych podręczników administratorów działa od ponad czterech dni. może być świetnym środ- rence czy commmunities. TblVer InQ OutQ Up/Down U Last update 2d16h25m ago W liniach 13 i 17 przy pomocy prefix-list 10 State/PfxRcd * 157.149.185. Do tego typu kontroli ru.153. Problemy zaczynają się. U ma niczego specjalnego.101 U mi wchodzącymi w skład Quaggi.107. 5617$ ga to tworzeniu sytuacji.16) odsyłam do RFC.111. * valid.1. U kiem na rozpoczęcie korzystania z BGP bez table Default-IP-Routing-Table) wydawania dużych pieniędzy.118.71. w tej konfiguracji nie gamma:~# ip route | grep U d damped. trasy pomiędzy dwóch dostawców. po które podstawowych poleceń.160.16 (recursive via U z linii 20 blokujemy przyjmowanie przez nasz 62.167. że mamy już skonfigurowane 8246 bardzo ciekawego tematu. Jeśli robimy to gamma:~# ip route | grep U – incomplete za pomocą zebry.101 0 12968 24748 U Minimalna konfiguracja BGP za pomocą stała wybrana jako najlepsza (best #1). 5617 i Quaggi w przypadku multihomingu jest wręcz waż ma krótszą ścieżkę AS – as_path. U Jak widać powyżej.0/11 157. 31419 Network Next Hop Metric LocPrf U Drugą ważną rzeczą jest to. kiedy chce.0/16 Quagga.0/24 62. jakim jest BGP.16 4 8246 1226765 31877 U W tablicy rutingu została umieszczona jedy- nych w Internecie. Origin IGP.160. Demon Quagga.1 niż o naszej sieci.net 322 BGP community entries Routing entry for 217.101 4 12968 6575310 U 217.txt number 29620 router-zebra# show ip route U [4] Strona domowa projektu Quagga: 43688 BGP AS-PATH entries 217.25.149. 157.111.0.1. e – EGP. 31966 0 0 0 4d17h27m 128107 mujemy pełną informację o prefiksach dostęp. distance 20. U w Internecie. że my nie będzie.33 | wc -l > best.1. czyli tras 05:26:28 2004 do różnych sieci IP. router-bgpd# show ip bgp U * 62. Nie BGP pomiędzy ruterami. W przeciw. jakie trasy do sieci Linie 14 i 18 zapewniają. Jak widać poniżej. na którym działa Quagga. BGP KNOW HOW macje o naszej sieci i propagować je dalej Known via „bgp”. best #1. INFO jące sesje w konfiguracji podobnej do opisanej 12968 8246 powyżej. która stała się jednym Poniżej widać dwie sesje.107. 0 8246 5617 i my mieć wpływ na poziom ruchu na poszcze.134.zebra. h history.160. by 98072 Origin codes: i – IGP.101 (213. nie potrzebujemy informa.1. tingu rozdzielił. i – internal guracja interfejsów. jak widać. external. 217. która dopa. demona zebra.1. Wykorzystywana jest Na ruterze.153.1. 217.0.153.48. Jeśli chcemy sprawdzić. a szczególnie polecam książ- przy monitorowaniu jego działania.