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?
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ć.
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.
źródło
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.
źródło
Łą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).
źródło
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.
źródło
„Łą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.
źródło