Portál AbcLinuxu, 12. června 2024 02:40

BGP - dynamické routování - 2 (konfigurace BGP routeru)

6. 5. 2009 | Dušan Hokův
Články - BGP - dynamické routování - 2 (konfigurace BGP routeru)  

Teď, když je hotova základní administrativa, můžete začít konfigurovat váš BGP router. Od vašeho zvoleného ISP dostanete nějakou tranzitní síť (/30), čímž můžete nakonfigurovat IP adresu na rozhraní, které povede k tomuto poskytovateli. Typicky od ISP získáváte plné BGP tabulky, zapomeňte tedy na default routu.

Routovací tabulka celého Internetu v současnosti obsahuje cca 280 tisíc prefixů. Samozřejmě je možné po dohodě s ISP nepřijímat plné BGP tabulky, ale pouze default routu prostřednictvím BGP, tím se ale připravíte o možnost výběru výhodnějších cest.

Následuje konfigurace samotného BGP, v našem případě pro routovací démon Quagga. Syntaxe Quaggy je obdobná syntaxi na zařízeních Cisco, takže až zatoužíte po hardwarovém routeru a budete mít dostatek finančních prostředků, můžete snadno přejít právě na Cisco. Samozřejmě, že s routery ostatních výrobců rovněž nebudete mít potíže, ale syntaxe je někde více a někde méně odlišná.

Konfigurace

Než začnete s konfigurací BGP, předpokládám, že již na tomto routeru máte nainstalovaný a rozběhaný routovací software Quagga (např. podle předchozího seriálu o OSPF) a připravenou síť za BGP routerem.

Poznámka: Pokud potřebujete zabezpečit BGP peer MD5 heslem, musíte mít buď nejnovější verzi Quagga 0.99.11, nebo aplikujte tento patch. V některých linuxových distribucích tento patch již bývá integrován do distribuovaných balíčků. Pro podporu MD5 je také nutná zapnutá podpora na úrovni linuxového kernelu, konkrétně se jedná o konfigurační volbu CONFIG_TCP_MD5SIG. Dříve bylo nutné aplikovat patch i na kernel, v posledních verzích linuxového kernelu je již podpora integrována. Podpora pro MD5 ve verzi 0.99.11 v současnosti na rozdíl od ručně aplikovaného staršího patche nepodporuje MD5 pro IPv6.

Vzorová konfigurace BGP routeru:

my-bgp# sh ru

Current configuration:
!
hostname my-bgp
password nejake_heslo
enable password nejake_jine_heslo
!
router bgp 57131
 bgp router-id 62.112.232.1
 network 62.112.232.0/21
 neighbor POSKYTOVATEL peer-group
 neighbor POSKYTOVATEL description Provider
 neighbor POSKYTOVATEL route-map prov-in in
 neighbor POSKYTOVATEL route-map prov-out out
 neighbor POSKYTOVATEL filter-list my-as out
 neighbor 177.104.215.242 remote-as 19906
 neighbor 177.104.215.242 peer-group POSKYTOVATEL
!
access-list login remark Administrator access to zebra
access-list login permit 127.0.0.0/8
access-list login permit 181.192.157.130/32
access-list login permit 182.142.127.10/32
access-list login deny any
!
ip as-path access-list my-as permit ^$
!
route-map filter-out permit 10
 match as-path my-as
!
route-map prov-out permit 10
 match as-path my-as
!
route-map prov-in permit 10
 set metric 0
!
line vty
 access-class login
 exec-timeout 60 0
!
end

První tři řádky hostname, password a enable password mohou být shodné s nastavením, které bylo probráno již v seriálu o OSPF, a týkají se konzole Quaggy pro bgpd část. Konfigurace BGP začíná dále.

Poté následuje konfigurace peer group, v našem případě bude v této skupině jen jeden poskytovatel. Peer group se používá, aby bylo možno jednoduše provádět změny na všech peerech, které jsou členy této skupiny.

Další položkou jsou přístupová práva k terminálu BGP:

Další sekce je věnována samotným filtrům a route mapám.

Jako poslední je v konfiguraci nastavení terminálu, kde je vidět, že se odkazuje na access-list login a po minutě nečinnosti vás odhlásí.

line vty
 access-class login
 exec-timeout 60 0

Tato konfigurace pro názornost zobrazuje a nastavuje pouze ty nejdůležitější parametry do začátku. Měla by sloužit jako úvodní funkční konfigurace pro navázání spojení, import všech prefixů od nadřazeného providera a export pouze vlastního prefixu. V dalším díle seriálu tuto konfiguraci rozšíříme a vylepšíme.

Lokální přihlášení na konzoli bgpd provedete pomocí:

telnet localhost bgpd

Po zadání hesla, příkazu enable a druhého hesla můžete router konfigurovat přímo z konzole. Výpis konfigurace můžete provést příkazem show running-config; funguje doplňování tabulátorem, nápověda přes ?, zápis příkazu je možné i zkrátit (v tomto případě na sh ru). Alternativně je možné využívat příkaz vtysh, ve kterém se integrují konzole ke všem běžícím Quagga daemonům.

Stav peeru

Tím je router nakonfigurován a nyní je potřeba si stav peeru zkontrolovat. To učiníme příkazem show ip bgp neighbors (zkráceně sh ip bg n). Na výpise vidíme navázané spojení, počet zpráv mezi routery, dobu trvání spojení atd.

my-bgp# show ip bgp neighbors
BGP neighbor is 177.104.215.242, remote AS 19906, local AS 57131, external link
 Member of peer-group POSKYTOVATEL for session parameters
  BGP version 4, remote router ID 181.192.159.1
  BGP state = Established, up for 6d14h40m
  Last read 00:00:18, hold time is 180, keepalive interval is 60 seconds
  Neighbor capabilities:
    4 Byte AS: advertised
    Route refresh: advertised and received(old & new)
    Address family IPv4 Unicast: advertised and received
  Message statistics:
    Inq depth is 0
    Outq depth is 0
                         Sent       Rcvd
    Opens:                  2          1
    Notifications:          0          1
    Updates:                1     447956
    Keepalives:          9522          1
    Route Refresh:          0          0
    Capability:             0          0
    Total:               9525     447959
  Minimum time between advertisement runs is 30 seconds

 For address family: IPv4 Unicast
  POSKYTOVATEL peer-group member
  Community attribute sent to this neighbor(both)
  Inbound path policy configured
  Outbound path policy configured
  Outgoing update AS path filter list is *my-as
  Route map for incoming advertisements is *prov-in
  Route map for outgoing advertisements is *prov-out
  278304 accepted prefixes

  Connections established 1; dropped 0
  Last reset never
Local host: 177.104.215.241, Local port: 46815
Foreign host: 177.104.215.242, Foreign port: 179
Nexthop: 177.104.215.241
Nexthop global: fe80::203:1dff:fe05:b0da
Nexthop local: ::
BGP connection: non shared network
Read thread: on  Write thread: off

Zkontrolujeme, zda vysíláme náš prefix sousedovi.

my-bgp#  show ip bgp neighbors 177.104.215.242 advertised-routes
BGP table version is 0, local router ID is 62.112.232.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 62.112.232.0/21  177.104.215.241          0         32768 i

Total number of prefixes 1

Podíváme, zda soused vysílá prefixy k nám:

my-bgp#  show ip bgp neighbors 177.104.215.242 routes
BGP table version is 0, local router ID is 62.112.232.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 3.0.0.0          177.104.215.242          0             0 19906 6830 15412 9304 80 i
*> 4.0.0.0          177.104.215.242          0             0 19906 6830 3356 i
*> 4.0.0.0/9        177.104.215.242          0             0 19906 6830 3356 i
*> 4.21.103.0/24    177.104.215.242          0             0 19906 174 3549 46133 i
*> 4.23.88.0/23     177.104.215.242          0             0 19906 174 7018 46164 i
*> 4.23.88.0/24     177.104.215.242          0             0 19906 174 7018 46164 i
*> 4.23.89.0/24     177.104.215.242          0             0 19906 174 7018 46164 i
*> 4.23.92.0/22     177.104.215.242          0             0 19906 174 7018 46164 i
*> 4.23.92.0/23     177.104.215.242          0             0 19906 174 7018 46164 i
*> 4.23.94.0/23     177.104.215.242          0             0 19906 174 7018 46164 i
*> 4.23.112.0/24    177.104.215.242          0             0 19906 6830 174 21889 i

......

Stejného výsledku dosáhnete příkazem show ip bgp, který vám vypíše všechny prefixy od všech sousedů.

Pomocí příkazu show ip bgp summary (sh ip bg su) se můžete rychle podívat na stav BGP session a počet prefixů získaných od jednotlivých peerů.

Že se máte celou routovací tabulku Internetu, zjistíte rovněž přímo v Linuxu příkazem ip route | wc -l. Momentálně má Internet okolo 280 tisíc rout.

Potíže

Vypropagování vašeho prefixu může chvilku trvat a je možné, že se do nekterých částí Internetu nebudete z vašich IP adres moci dostat. To může být způsobeno například tím, že váš provider neprovedl patřičné úpravy v RIPE databázi nebo že svým peeringovým partnerům neoznámil propagování nového prefixu a autonomního systému a oni pak váš prefix neakceptují. Správné záznamy v RIPE databázi jsou třeba nejen z důvodu evidence, ale mimo jiné i proto, že hodně providerů neakceptuje prefix/autonomní systém, který je špatně zanesen do této databáze. Proto je důležité, abyste záznamy v RIPE databázi měli v pořádku vy i vaši peeringoví partneři ve vztahu k vám.

Pokud tedy problém zaznamenáte, řešte jej nejprve se svým peeringovým partnerem (providerem). O tom, že je váš prefix a autonomní systém vypropagován do světa, se můžete přesvědčit na tzv. LG - Looking Glass, na webu RIS (Routing Information Service), kde si můžete zvolit peeringové centrum a dát routeru dotaz na váš prefix. Měl by se ukázat as-path (cesta) do vašeho autonomního systému.

Je-li vše v pořádku, blahopřeji.

Příště

Pokročilá konfigurace BGP.

Seriál BGP - dynamické routování (dílů: 4)

První díl: BGP - dynamické routování - 1 (úvod, administrativa), poslední díl: BGP – dynamické routování – 4 (komunity, IBGP, NIX, IPv6).
Předchozí díl: BGP - dynamické routování - 1 (úvod, administrativa)
Následující díl: BGP – dynamické routování – 3 (pokročilá konfigurace)

Související články

Seriál: OSPF - dynamické routování
Seriál: Nagios + Centreon + MySQL
Traffic shaping (patchování a instalace)
Traffic shaping - 2 (IMQ a úvod do shapingu)
Jemný úvod do adresace v protokolu IP verze 4
Směrování v sítích IP
Seriál: Domácí síť
Seriál: Soukromá síť
Seriál: Stavíme bezdrátovou síť
Seriál: Linuxové DMZ
Distribuce OpenWrt prakticky

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

Diskuse k tomuto článku

6.5.2009 08:02 x
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)
Odpovědět | Sbalit | Link | Blokovat | Admin

Tady taktez spousta zajimaveho pocteni :

 

http://www.openbgpd.org/

6.5.2009 09:52 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

Dalsi free software implementace BGP je treba demon BIRD ( http://bird.network.cz/ ).

6.5.2009 23:57 snehuliak
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)
Odpovědět | Sbalit | Link | Blokovat | Admin

Som sklamany ze tento clanok je o BGP na Cisco routri a nie o BGP na Linuuxe.

Co tento clanok vlastne robi na abclinuxu.cz?

6.5.2009 23:59 snehuliak
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

este chcem dodat ze nabuduce ocakavam clanok o sietovani vo Windows XP...

7.5.2009 00:10 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

 

> Som sklamany ze tento clanok je o BGP na Cisco routri a nie o BGP na Linuuxe.

A na to jsi prisel jak? V clanku se jasne pise, ze se jedna o konfiguraci Quaggy (tedy linuxoveho demona).

7.5.2009 06:27 Dušan Hokův | skóre: 43 | blog: Fedora a další...
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)
Následuje konfigurace samotného BGP, v našem případě pro routovací démon Quagga.
Pro jistotu jsem to zvyraznil. :-)

7.5.2009 13:21 snehuliak
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

Pozrel som na to a vidim Cisco prikazy... Ocakaval som nastavenie konfiguracie v /etc a nie prikaz "sh run"...

Tiez si nemyslim ze Cisco sposob zmeny parametrov za behu je prave ten ktory je hodny kopirovania... Ale co uz.

V kazdom pripade sa ospravedlnujem za moje 2 poznamky.

7.5.2009 13:43 Dušan Hokův | skóre: 43 | blog: Fedora a další...
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)
Diky, omluva se prijima. :-)

Ono toho prave v /etc moc ke konfigurovani neni. Jak jsem naznacil s tim cisco, tak jakmile prestane linuxove reseni stacit, jakykoliv dalsi HW router (Cisco, Force10, Juniper, Huawei atd.) bude spravce stejne vetsinou konfigurovat v nejakem interaktivnim modu. Navic ne vzdy si muzete dovolit shodit bgp proces a a teprve po poeditovani konfiguraku jej zase nahodit. Napriklad pridani dalsiho peeru a vylepseni konfigurace (popisi v dalsim dile) bude prave interaktivne ala HW routery.
7.5.2009 18:09 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

> Navic ne vzdy si muzete dovolit shodit bgp proces a a teprve po poeditovani konfiguraku jej zase nahodit.

Proto take treba BIRD funguje tak, ze clovek zedituje konfigurak a pak rekne BIRDu, aby si ho znovanacetl, a ten se prizpusobi zmenam aniz by pri tom vsechno shodil a znova nahodil.

7.5.2009 20:19 Dušan Hokův | skóre: 43 | blog: Fedora a další...
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)
BIRD prilis neznam, nechtel byste treba nejakym clankem popsat rozdily oproti demonu Quagga? V cem je lepsi/horsi? Mozna byste mohl navazat az skonci tenhle serial.
8.5.2009 13:31 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

Mozna bude stacit ty rozdily v komentari:

+ BIRD podporuje vic kernelich routovacich tabulek (treba pro policy nebo source based routing).

+ BIRD se konfiguruje primarne editaci konfiguraku, interaktivnich prikazu pro zmenu stavu ma jen minimum.

+ BIRD ma jednoduchy programovaci jazyk pro filtrovani rout mezi protokoly.

+ BIRD bezi jako jeden proces, ma mensi spotrebu pameti.

- BIRD podporuje mene protokolu (zejmena chybi OSPF pro IPv6).

- BIRD nepodporuje dohromady IPv6 a IPv4, je treba ho pro kazdy protokol prelozit s jinymi compile-time options.

9.5.2009 13:19 snehuliak
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

Inak ja som nasiel na wiki aj zmienku o OpenBGP - http://en.wikipedia.org/wiki/OpenBGPD

9.5.2009 19:18 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)
Tož, když už tu vytahujeme implementace, tak já přidám XORP :)
9.5.2009 22:59 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

XORP je hodne vysoko na mem zebricku obludnych programu, s kteryma nechci mit nic spolecneho. Routovaci demon, ktery je tak o rad pomalejsi a zabira o rad vic pameti nez konkurence, to se jen tak nevidi.

11.5.2009 17:27 Bzuk a tuk
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)

XORP je vynikajici program. Pamet je dneska levna a procesory rychle. Neni co resit.

15.5.2009 13:28 David Korous
Rozbalit Rozbalit vše Re: BGP - dynamické routování - 2 (konfigurace BGP routeru)
Odpovědět | Sbalit | Link | Blokovat | Admin

Ahoj Dušane,

 

skvěle napsaný článek, opravdu lépe bych to nenapsal. BTW: O čem vlastně je?  :) :) :) :)

čus

David (Alnair)

 

18.5.2009 13:57 Petr
Rozbalit Rozbalit vše Další díl?
Odpovědět | Sbalit | Link | Blokovat | Admin

Kdy bude další díl?

Díky

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.