Protokół BGP
Zagadnieniem jakim dziś się zajmiemy jest routing. W ostatnich artykułach omawiane były protokoły routingu takie jak OSPF, RIP czy EIGRP. W tym artykule skupimy się na kolejnym protokole routingu jakim jest protokół BGP.
Protokół BGP- co to takiego?
Protokół BGP (ang. Border Gateway Protocol) jest to między domenowy protokół routingu, który ma zapewnić komunikację między oddzielnymi domenami routingu, które zawierają własne zasady routingu (tzw. systemy autonomiczne). Głownie używany jest do łączenia sieci lokalnej z siecią zewnętrzną celem uzyskania dostępu do Internetu lub komunikacji z innymi organizacjami. Gdy łączymy się z siecią zewnętrzna to tworzone są zewnętrzne sesje BGP (eBGP). Natomiast sąsiedzi BGP w tej samej organizacji wymieniają informacje routingu za pomocą wewnętrznych sesji BGP (iBGP). Protokół BGP pracuje w oparciu o protokół warstwy 4 modelu OSI. Podstawową funkcja BGP jest system autonomiczny (ang. Autonomus System), czyli sieć lub grupa sieci pod wspólna administracją i polityką trasowania. Numery AS od 2007 roku są długości 4 bajtów (32 bit) dzięki temu dostępna jest większa przestrzeń numeracji.
Podstawowa konfiguracja BGP
Konfigurację tego protokołu przeprowadzimy według poniższego schematu.

Najpierw należy wykonać wstępną adresację i podstawową konfigurację dwóch sieci LAN według powyższego schematu. Wykonajmy poniższe kroki:
- Adresacja interfejsów na routerze R1
R1(config)#interface fastEthernet 0/0 R1(config-if)#ip address 103.0.11.254 255.255.255.0 R1(config-if)#no shutdown R1(config)#interface serial 3/0 R1(config-if)#ip address 192.168.1.1 255.255.255.252 R1(config-if)#no shutdown R1(config)#interface lo 1 R1(config-if)#ip address 10.1.1.1 255.255.255.255 R1(config-if)#no shutdown
- Konfiguracja PC1
PC1> ip 103.0.11.9/24 103.0.11.254
- Zaadresowanie interfejsów na routerze 2
R2(config)#interface fastEthernet 0/0 R2(config-if)#ip address 105.0.11.254 255.255.255.0 R2(config-if)#no shutdown R2(config)#interface serial 3/0 R2(config-if)#ip address 192.168.1.2 255.255.255.252 R2(config-if)#no shutdown R2(config)#interface lo 1 R2(config-if)#ip address 172.17.1.1 255.255.255.255 R2(config-if)#no shutdown
- Konfiguracja PC2
PC2> ip 105.0.11.9/24 105.0.11.254
Gdy wykonamy powyższe kroki to można przystąpić do konfiguracji Protokołu BGP. Pierwszym elementem jest ustawienie się na routerze R1 i wydania polecenia router bgp [numer systemu autonomicznego]. Dzięki temu uruchomimy protokół BGP na routerze.
R1(config)#router bgp 40000
Następnie podajemy adresy wszystkich sieci, wewnętrznych które chcemy rozgłaszać.
R1(config-router)network 10.1.1.1 mask 255.255.255.255 R1(config-router)network 103.0.11.0 mask 255.255.255.0
Kolejnym krokiem jaki należy wykonać jest dodanie adresu IP sąsiada w określonym AS do wieloprotokołowej tablicy sąsiadów BGP IPv4 urządzenia lokalnego.
R1(config-router)#neighbor 192.168.1.2 remote-as 45000
Podstawowa konfiguracja BGP na tym routerze została wykonana. Na chwilę obecną możemy z sieci wewnętrznej LAN wyjść na świat poprzez interfejs loopback 1. Aby to sprawdzić to z PC1 wydajmy polecenie ping na ten interfejs.
PC1> ping 10.1.1.1 84 bytes from 10.1.1.1 icmp_seq=1 ttl=255 time=15.542 ms 84 bytes from 10.1.1.1 icmp_seq=2 ttl=255 time=15.404 ms 84 bytes from 10.1.1.1 icmp_seq=3 ttl=255 time=15.392 ms 84 bytes from 10.1.1.1 icmp_seq=4 ttl=255 time=15.809 ms 84 bytes from 10.1.1.1 icmp_seq=5 ttl=255 time=15.264 ms
Jak możemy zauważyć komunikacja jest prawidłowa. Wydajmy także polecenie ping z tego komputera na adres interfejsu wychodzącego w stronę routera R2.
PC1> ping 192.168.1.1 84 bytes from 192.168.1.1 icmp_seq=1 ttl=255 time=15.519 ms 84 bytes from 192.168.1.1 icmp_seq=2 ttl=255 time=15.510 ms 84 bytes from 192.168.1.1 icmp_seq=3 ttl=255 time=15.341 ms 84 bytes from 192.168.1.1 icmp_seq=4 ttl=255 time=15.143 ms 84 bytes from 192.168.1.1 icmp_seq=5 ttl=255 time=14.982 ms
Również w tym kierunku ruch pakietów odbywa się bez żadnych problemów.
Lecz jeszcze nie możemy komunikować się z sieciami wewnętrznymi naszego sąsiada. Aby było to możliwe musimy jeszcze wykonać te same kroki co powyżej na routerze R2 z zachowaniem odpowiedniej adresacji.
R2(config)#router bgp 45000 R2(config-router)network 172.17.1.1 mask 255.255.255.255 R2(config-router)network 105.0.11.0 mask 255.255.255.0 R1(config-router)#neighbor 192.168.1.1 remote-as 40000
Teraz sprawdźmy czy PC1 będzie mógł komunikować się z PC2. Wydajmy polecanie ping na jego adres.
PC1> ping 105.0.11.9 84 bytes from 105.0.11.9 icmp_seq=1 ttl=62 time=60.454 ms 84 bytes from 105.0.11.9 icmp_seq=2 ttl=62 time=61.024 ms 84 bytes from 105.0.11.9 icmp_seq=3 ttl=62 time=60.116 ms 84 bytes from 105.0.11.9 icmp_seq=4 ttl=62 time=60.729 ms 84 bytes from 105.0.11.9 icmp_seq=5 ttl=62 time=44.547 ms
Jak widać komunikacja jest prawidłowa. Teraz jeszcze dla pewności wydajmy tą samą komendę z PC1 na adres interfejsu loopback 1 sąsiada.
PC1> ping 172.17.1.1 84 bytes from 172.17.1.1 icmp_seq=1 ttl=254 time=45.672 ms 84 bytes from 172.17.1.1 icmp_seq=2 ttl=254 time=29.266 ms 84 bytes from 172.17.1.1 icmp_seq=3 ttl=254 time=45.005 ms 84 bytes from 172.17.1.1 icmp_seq=4 ttl=254 time=45.381 ms 84 bytes from 172.17.1.1 icmp_seq=5 ttl=254 time=45.413 ms
Również ten ruch pakietów jest możliwy. Tak więc podstawowa konfiguracja protokołu BGP została wykonana prawidłowo.
Inne przydatne komendy
Poniżej zaprezentowane zostały komendy sprawdzające poprawność działania protokołu BGP.
- Show ip bgp – za pomocą tej komendy możemy sprawdzić tablicę routingu BGP na routerze. Poniżej znajdują się listingi z routera 1 i 2 naszej sieci.
R1#sh ip bgp BGP table version is 1, local router ID is 10.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * 10.1.1.1/32 0.0.0.0 0 32768 i * 103.0.11.0/24 0.0.0.0 0 32768 i * 192.168.1.0/30 0.0.0.0 0 32768 i R2#sh ip bgp BGP table version is 6, local router ID is 172.17.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.1.1.1/32 192.168.1.1 0 0 40000 i *> 103.0.11.0/24 192.168.1.1 0 0 40000 i *> 105.0.11.0/24 0.0.0.0 0 32768 i *> 172.17.1.1/32 0.0.0.0 0 32768 i * 192.168.1.0/30 192.168.1.1 0 0 40000 i
- Show ip bgp summary – to polecenie służy do wyświetlenia stanu wszystkich połączeń BGP.
R1#sh ip bgp summary BGP router identifier 10.1.1.1, local AS number 40000 BGP table version is 6, main routing table version 6 5 network entries using 720 bytes of memory 6 path entries using 480 bytes of memory 2/2 BGP path/bestpath attribute entries using 272 bytes of memory 1 BGP AS-PATH entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 1496 total bytes of memory BGP activity 5/0 prefixes, 6/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.2 4 45000 8 7 6 0 0 00:03:29 3 R2#sh ip bgp summary BGP router identifier 172.17.1.1, local AS number 45000 BGP table version is 6, main routing table version 6 5 network entries using 720 bytes of memory 6 path entries using 480 bytes of memory 2/2 BGP path/bestpath attribute entries using 272 bytes of memory 1 BGP AS-PATH entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 1496 total bytes of memory BGP activity 5/0 prefixes, 6/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.1 4 40000 9 9 6 0 0 00:05:19
- Clear ip bgp – polecenie służące do zrobienia twardego resetu wszystkich bieżących sesji BGP.
Podsumowanie
Powyższa konfiguracja protokołu BGP według naszego schematu sieci została wykonana poprawnie. Urządzenia końcowe w sieciach wewnętrznych LAN w dwóch różnych instancjach mogą się ze sobą komunikować. Ponadto urządzenia końcowe mają dostęp do sieci zewnętrznej poprzez porty loopback.
