/ Linux Reviews / Networking / Kształtowanie Ruchu i Zaawansowany Routing HOWTO - en - pl
17.2. Konfiguracja BGPv4 w ZebrzeProtokół BGP w wersji 4 ("Border Gateway Protocol") jest protokołem routingu dynamicznego opisanym w RFC 1771. Umożliwia dystrybucję informacji o osiągalności, tj. tabel routingu, do innych węzłów obsługujących BGPv4. Można go używać zarówno jako EGP i IGP. W trybie EGP każdy węzeł musi posiadać swój numer Systemu Autonomicznego (ang. "Autonomous System", AS). BGPv4 wspiera notację CIDR oraz agregacje (połączenie rozgłoszenia wielu tras w jedną sumaryczną). 17.2.1. Topologia przykładowej sieciPoniższa topologia użyta zostanie do następnych przykładów. AS 1 i 50 mają więcej sąsiadów, ale będziemy konfigurować tylko je. Węzły w tym przykładzie komunikują się za pośrednictwem tuneli, ale w rzeczywistości nie jest to zupełnie potrzebne. Uwaga: Numery AS użyte w tym przykładzie są zarezerwowane, jeśli chcesz uruchomić BGP w Internecie musisz zwrócić się do RIPE.
--------------------
| 192.168.23.12/24 |
| AS: 23 |
--------------------
/ \
/ \
/ \
------------------ ------------------
| 192.168.1.1/24 |-------| 10.10.1.1/16 |
| AS: 1 | | AS: 50 |
------------------ ------------------17.2.2. Przykładowa konfiguracjaPoniższa konfiguracja została napisana dla węzła 192.168.23.12/24 - względnie prosto jest ją zaadaptować na potrzeby innych węzłów. Na początek konfigurujemy podstawowe parametry, takie jak nazwa hosta, hasło i ustawienia debugingu: ! nazwa hosta hostname anakin ! hasło do logowania password xxx ! hasło trybu enable (odpowiednik roota) enable password xxx ! ścieżka do pliku z logami log file /var/log/zebra/bgpd.log ! debugging: bardzo szczegółowy (oczywiście można ! później wyłączyć) debug bgp events debug bgp filters debug bgp fsm debug bgp keepalives debug bgp updates Następnie definiujemy listy dostępu, które posłużą nam do ograniczenia redystrybucji do tylko podsieci zdefiniowanych w RFC 1918 (prywatnych). ! sieci RFC 1918 access-list local_nets permit 192.168.0.0/16 access-list local_nets permit 172.16.0.0/12 access-list local_nets permit 10.0.0.0/8 access-list local_nets deny any Następnym krokiem jest konfiguracja konkretnego AS: ! Nasz numer AS
router bgp 23
! Adres IP routera którym będzie się identyfikował
bgp router-id 192.168.23.12
! Jakie sieci rozgłaszamy sąsiadom
network 192.168.23.0/24
! Rozgłaszamy wszystkie sieci podłączone
! (bezpośrednio)
redistribute connected
! Rozgłaszamy również trasy z tablicy kernela
! (wpisane ręcznie/statycznie)
redistribute kernelKażdy blok `router bgp' zawiera definicję konkretnego AS i listę sąsiadów do których podłączony jest nasz router. ! (sąsiad o IP 192.168.1.1 to AS 1)
neighbor 192.168.1.1 remote-as 1
! (do tras otrzymywanych od tego sąsiada nałóż
! filtr `local_nets')
neighbor 192.168.1.1 distribute-list local_nets in
! (sąsiad o IP 10.10.1.1 to AS 50)
neighbor 10.10.1.1 remote-as 50
! (do tras otrzymywanych od tego sąsiada nałóż
! filtr `local_nets')
neighbor 10.10.1.1 distribute-list local_nets in17.2.3. Sprawdzanie konfiguracjiUwaga: vtysh to multiplekser i służy do połączeń ze wszystkimi aktywnymi interfejsami Zebry. anakin# sh ip bgp summary BGP router identifier 192.168.23.12, local AS number 23 2 BGP AS-PATH entries 0 BGP community entries Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.10.0.1 4 50 35 40 0 0 0 00:28:40 1 192.168.1.1 4 1 27574 27644 0 0 0 03:26:04 14 Total number of neighbors 2 anakin# anakin# sh ip bgp neighbors 10.10.0.1 BGP neighbor is 10.10.0.1, remote AS 50, local AS 23, external link BGP version 4, remote router ID 10.10.0.1 BGP state = Established, up for 00:29:01 .... anakin# Sprawdźmy jakie trasy dostaliśmy od sąsiadów: anakin# sh ip ro bgp
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
B - BGP, > - selected route, * - FIB route
B>* 172.16.0.0/14 [20/0] via 192.168.1.1, tun0, 2d10h19m
B>* 172.30.0.0/16 [20/0] via 192.168.1.1, tun0, 10:09:24
B>* 192.168.5.10/32 [20/0] via 192.168.1.1, tun0, 2d10h27m
B>* 192.168.5.26/32 [20/0] via 192.168.1.1, tun0, 10:09:24
B>* 192.168.5.36/32 [20/0] via 192.168.1.1, tun0, 2d10h19m
B>* 192.168.17.0/24 [20/0] via 192.168.1.1, tun0, 3d05h07m
B>* 192.168.17.1/32 [20/0] via 192.168.1.1, tun0, 3d05h07m
B>* 192.168.32.0/24 [20/0] via 192.168.1.1, tun0, 2d10h27m
anakin#
/ Linux Reviews / Networking / Kształtowanie Ruchu i Zaawansowany Routing HOWTO | |||||||||||||