notatka
BGP w pięć minut
BGP w pięć minut
BGP to protokół routingu, którego największą różnicą w stosunku do OSPF czy EIGRP jest możliwość okonfigurowania wszystkiego: do kogo i co rozgłaszamy, z jakimi parametrami, od kogo się czego uczymy. BGP nie został stworzony z myślą - mam sieć w firmie: 20 routerów i chcę, żeby ze sobą gadały i żeby wszystko śmigało, tylko priorytetem jest to, że jeżeli ja się dowiem o 20 prefiksach, to somsiadowi powiem o tylko 5, żeby miał gorzej.
Jakie informacje wymieniają między sobą speakery BGP?
BGP to protokół routingu, w którym urządzenia mówią sobie jak trafić do jakiegoś adresu IP. Co jest bardzo istotne, ta informacja o dostępności sieci ABC nie musi oznaczać "jeżeli do mnie wyślesz pakiet, to ja go prześlę do sieci ABC". BGP pozwala przesłać informację "sieć ABC jest dostępna przez urządzenie h1" (a ja jestem np. urządzeniem h2). Co z tego wynika, BGP może być uruchomione nie tylko na routerze i będzie to równie przydatny speaker BGP.
Przykład: h2 to speaker BGP, który przekazuje h3 informację o trasie przez h1.
BGP:
h2 (speaker) ---- PREFIX: 10.0.0.0/27 ----> h3 (router)
next-hop: 192.168.0.13
Pakiet do 10.0.0.12 idzie do h1, mimo że trasę poznaliśmy od h2.
h3 (router) ----> h1 (router) ----> 10.0.0.0/27
192.168.0.13
h3 musi umieć dotrzeć do next-hopa 192.168.0.13. Pakiety do prefiksu
10.0.0.0/27 przechodzą przez h1, a h2 zajmuje się tylko wymianą informacji o trasach.
Przykładowe ogłoszenie BGP (advertisement)
| nazwa | przykład | co to |
|---|---|---|
PREFIX |
10.0.0.0/27 |
docelowa sieć |
next-hop |
192.168.0.13 |
dokąd wysłać pakiet |
as-path |
6500 6509 6531 |
przy rozgłaszaniu do innego AS zwykle dodajemy swój numer |
communities |
234:69 |
labelka, tag - zwał jak zwał |
local-pref |
110 |
którą ścieżkę wolimy wewnątrz AS |
med |
90 |
sugestia dla sąsiada, którym wejściem wchodzić |
local-pref wymieniamy wewnątrz AS, przez iBGP. Do zwykłego sąsiada eBGP go nie wysyłamy.
Źródło: RFC 4271, sekcje 5.1.2 i 5.1.5.
Sesje
Sesja BGP to zwykłe połączenie TCP na porcie 179 między dwoma speakerami (peerami - tego słowa się używa w kontekście właśnie sesji). Po nawiązaniu wymieniają się prefiksami, które chcą rozgłaszać, a potem aktualizują trasy przy zmianach. Do utrzymania sesji służą też krótkie wiadomości KEEPALIVE.
- eBGP - między różnymi systemami autonomicznymi (AS) - na tym się skupimy, tego używamy w datacenterach.
- iBGP - wewnątrz jednego AS.
Implementacje BGP, z którymi pracujemy: frr-i-gobgp.
Powiązane: route-server, overlay, rib-vs-fib