Jak działa BGP przez TCP?

13

O ile wiem, że używamy protokołów routingu do uzyskania łączności w warstwie 3, jestem zdezorientowany faktem, że BGP działa przez TCP, którym jest L4. Jak można ustanowić L4 / TCP bez wcześniejszej łączności L3?

mieszany
źródło

Odpowiedzi:

17

Gniazda TCP / IP ustanawiają połączenie typu end-to-end przez sieć między dwoma specjalnie adresowanymi punktami końcowymi. BGP korzysta z protokołu TCP / IP do komunikacji między routerami (dowolnymi urządzeniami wymieniającymi informacje o routingu). Wymienione informacje są wykorzystywane przez węzły równorzędne BGP, aby lepiej wybrać sposób, w jaki wybierają miejsce wysyłania (inaczej przeskoku) pakietów, które muszą przekazać.

Na samym skraju Internetu wszystko jest łatwe; „wszystko jest w ten sposób” w stosunku do Twojego dostawcy Internetu. Bardziej pośrodku router może mieć wiele możliwości wyboru. Używa więc protokołu TCP / IP do przenoszenia ruchu BGP między sąsiadami routingu. Informacje BGP informują router, które ścieżki preferują, gdy pakiet ma wiele sposobów na dotarcie do celu.

Punkty końcowe (np. Przeglądarki internetowe) i routery mówią TCP / IP. Ale routery używają protokołu TCP / IP (komunikacja BGP złożona z pakietów TCP / IP), aby mówić o tym, co zrobić z innymi pakietami TCP / IP, które muszą trasować.

Craig Constantine
źródło
Uważam, że „Ale routery używają protokołu TCP / IP, aby mówić o tym, co zrobić z innymi pakietami TCP / IP, które muszą trasować”. miał oznaczać „Ale routery używają protokołu BGP do rozmowy o tym, co zrobić z innymi pakietami TCP / IP, które muszą trasować”.
Olivier Dulac
1
... myślałem też o napisaniu tego w ten sposób. W ostatnim zdaniu starałem się podkreślić, jak różne urządzenia robią różne rzeczy z TCP / IP. Poprawię treść.
Craig Constantine
13

Protokoły routingu nie „osiągają” łączności L3. Wypełniają tabelę routingu (przekazywania) routera informacjami uzyskanymi od innych routerów.

BGP to „aplikacja” działająca przez TCP / IP. Innymi słowy, router BGP używa protokołu TCP / IP do komunikacji z innymi routerami BGP w celu wymiany informacji o routingu.

Aby BGP działał, musisz już mieć łączność L3 między routerami.

Ron Trunk
źródło
problem z kurczakiem i jajkami. „Aby BGP działał, musisz już mieć łączność L3 między routerami.” Ponieważ BGP jest de facto protokołem routingu internetowego, w jaki sposób osiąga się łączność L3 w Interecie
zmieszano
6
W ogóle nie ma problemu z kurczakiem i jajkami. Jak powiedziałem, protokoły routingu nie tworzą łączności L3. Głośniki eBGP są (prawie) zawsze bezpośrednio ze sobą połączone. Głośniki iBGP polegają na podstawowej sieci w celu zapewnienia łączności. Innymi słowy, musisz najpierw połączyć się, zanim będziesz mógł uruchomić BGP.
Ron Trunk
Próbuję zrozumieć, jak to się zaczęło i jakie jest uzasadnienie dzisiejszej architektury. Więc na początku było kilku facetów z prywatnymi sieciami z IGP i powiedziało, że możemy połączyć nasze sieci? dlaczego to zrobić przez IP / TCP, a co ze starymi protokołami, takimi jak Novell lub Appletalk
mieszane
To są różne (ale dobre) pytania. Odpowiedzi będą wymagały więcej miejsca niż sekcja komentarzy. Możemy przenieść to na czat, jeśli chcesz
Ron Trunk
6

Model sieci OSI i jego warstwowanie jest przydatne do zrozumienia kompleksowej komunikacji między hostami, ale tak naprawdę nie ma na celu wyjaśnienia, jak działa płaszczyzna sterowania siecią. Istnieje problem ładowania początkowego związany z ustanowieniem pełnej łączności BGP, ale sposób, w jaki odbywa się to ładowanie, jest dobrze zrozumiany i nie ma żadnych okrągłych zależności.

Jeśli chodzi o BGP, sposób tworzenia powiązań i wymiany informacji zależy od rodzaju sesji.

Najprostszy jest eBGP. Zazwyczaj eBGP działa na sesji TCP między dwoma bezpośrednio połączonymi routerami. W takim przypadku każdy uczestnik wie, jak rozmawiać z drugim, ponieważ oba mają interfejs w tej samej podsieci, więc nie ma potrzeby używania zewnętrznego protokołu routingu do utworzenia sąsiedztwa.

Z iBGP sprawy są nieco skomplikowane. W najprostszej konfiguracji wszystkie routery w systemie autonomicznym zostaną skonfigurowane jako część pełnej siatki, z sesjami iBGP ze wszystkimi innymi routerami w sieci. W systemie autonomicznym wewnętrzny protokół bramy, taki jak OSPF lub ISIS, w celu zbudowania wewnętrznej topologii routingu. Kiedy IGP wykona swoje zadanie, wszystkie routery będą miały tabelę routingu wypełnioną trasami do wszystkich sąsiadów iBGP, umożliwiając utworzenie sesji TCP bez zależności cyklicznej.

Sprawy stają się nieco bardziej interesujące w sytuacjach, w których nie wszystkie routery w systemie autonomicznym działają z pełną tabelą BGP. Jeśli siatka iBGP nie jest kompletna, możesz uzyskać sytuacje, w których router w środku sieci ma inny widok tabeli niż jej bezpośredni sąsiedzi. Spowoduje to nieoptymalne trasowanie, aw niektórych przypadkach pętle routingu, które doprowadzą do odbijania się ruchu między urządzeniami aż do wygaśnięcia TTL.

Russell Heilling
źródło
5

Łącze ma skonfigurowane adresy statyczne i powiązane wpisy routingu, które są używane do ustanowienia sesji BGP. Za pomocą BGP tabela routingu jest następnie rozszerzana o wpisy wskazujące na inne sieci.

Ponieważ BGP jest używany tylko między bezpośrednimi węzłami równorzędnymi, w tym momencie nie są wymagane żadne inne trasy niż te, które wskazują na drugi koniec.

Np. Jeśli chcielibyśmy nawiązać połączenie, zgodzilibyśmy się na podsieć / 30 lub / 31, przypisali jeden adres do każdego końca sieci i utworzyli trasę sieci dla tej podsieci do tego łącza, a następnie skonfigurowalibyśmy inny jako Peer BGP, w którym to momencie otrzymuję dodatkowe wpisy routingu dla wszystkich sieci, które ogłaszasz, że mają być wysyłane przez twój router (który z kolei jest częścią lokalnej statycznie skonfigurowanej trasy sieci).

Simon Richter
źródło
Simon, dobrze cię znowu słyszeć. Twoja odpowiedź dotyczy tylko eBGP, ale rówieśnicy iBGP potrzebują tylko osiągalności IGP (tj. OSPF). Czy możesz dodać więcej w sprawie iBGP?
Mike Pennington,
0
                    ---        ---          ---          ---
                   | D |------| A |--------| B |--------| C |
                    ---        ---          ---          ---

Załóżmy, że A i B to routery (w innym lub tym samym AS), a D i C to hosty. Teraz A i B są ze sobą połączone i mogą się komunikować. Ale skąd D miałby znać pozycję C, aby mógł komunikować się z C. To samo dotyczy C, gdy chce komunikować się z D. Teraz, jeśli uruchomimy protokół BGP między A i B, wymieniają między sobą informacje o łączności w warstwie 3 . Mówiąc prosto, A powie B, że D jest z nim związany. Wtedy albo B może przekazać to do C lub jeśli B jest domyślną bramą dla C, w dowolny sposób C może znać pozycję D.

Tak więc w tym przypadku informacje o łączności warstwy 3 są przekazywane między A i B, biorąc pod uwagę, że A i B obsługują protokół BGP.

Tak więc wcześniejsze połączenie BGP jest potrzebne między dwoma systemami w celu wymiany informacji o routingu warstwy 3. Właśnie pokazałem prosty przykład odpowiedzi na twoje zapytanie. W praktycznym scenariuszu o wiele więcej danych o routingu jest wymienianych między peerami BGP.

BGP działa na protokole TCP. Dlatego między nimi musi zostać otwarte gniazdo TCP, tylko wtedy mogą wymieniać dane routingu.

Soumen Das
źródło
0

bez wcześniejszej łączności L3?

„Łączność L3” to nie wszystko albo nic.

Administrator konfigurujący router skonfiguruje interfejsy z adresami IP i maskami podsieci. W oparciu o te konfiguracje zostaną utworzone niejawne wpisy tabeli routingu, które pozwolą routerowi rozmawiać z sąsiadami.

Protokoły routingu mogą następnie działać w oparciu o tę lokalną łączność L3, aby ustanowić większą łączność L3.

Peter Green
źródło