Como o BGP trabalha com o TCP?


13

Tanto quanto sei que estamos usando protocolos de roteamento para alcançar a conectividade da Camada 3, estou confuso com o fato de que o BGP trabalha com TCP, que é L4. Como o L4 / TCP pode ser estabelecido sem conectividade L3 prévia?

Respostas:


17

Os soquetes TCP / IP estabelecem uma conexão ponta a ponta através da rede, entre dois pontos finais endereçados especificamente. O BGP usa o TCP / IP para se comunicar entre os roteadores (qualquer dispositivo que troque informações de roteamento.) As informações trocadas são usadas pelos pares do BGP, para melhor escolher a maneira como eles escolhem para onde enviar (também conhecido como salto seguinte) pacotes que precisam. transmite.

Nas extremidades da Internet, as coisas são fáceis; "tudo é assim", em relação ao seu provedor de Internet. Mais no meio, um roteador pode ter várias opções. Portanto, ele usa o TCP / IP para mover o tráfego BGP entre seus vizinhos de roteamento. As informações do BGP informam ao roteador quais caminhos preferir quando existem várias maneiras de um pacote chegar aonde está indo.

Os pontos finais (por exemplo, navegadores da web) e os roteadores estão falando TCP / IP. Mas os roteadores estão usando TCP / IP (comunicações BGP compostas por pacotes TCP / IP) para falar sobre o que fazer com os outros pacotes TCP / IP que precisam rotear.


Acredito que "Mas os roteadores estão usando o TCP / IP para falar sobre o que fazer com os outros pacotes TCP / IP que precisam rotear". deveria ser "Mas os roteadores estão usando o BGP para falar sobre o que fazer com os outros pacotes TCP / IP que precisam rotear".
Olivier Dulac

1
... Pensei em escrever dessa maneira também. Com a minha última frase, eu estava tentando destacar como dispositivos diferentes estão fazendo coisas diferentes com o TCP / IP. Vou ajustar a redação.
Craig Constantine

13

Os protocolos de roteamento não "alcançam" a conectividade L3. Eles preenchem a tabela de roteamento (encaminhamento) do roteador com informações aprendidas com outros roteadores.

O BGP é um "aplicativo" executado em TCP / IP. Em outras palavras, um roteador BGP usa TCP / IP para se comunicar com outros roteadores BGP e trocar informações de roteamento.

Para que o BGP funcione, você já deve ter conectividade L3 entre os roteadores.


problema de frango e ovo. "Para que o BGP funcione, você já deve ter conectividade L3 entre os roteadores." Desde BGP é o protocolo de roteamento de internet facto De como a conectividade L3 é alcançada na Interet
blended

6
Não é um problema de galinha e ovo. Como eu disse, os protocolos de roteamento não criam conectividade L3. Os alto-falantes do eBGP estão (quase) sempre diretamente conectados um ao outro. Os alto-falantes iBGP dependem da rede subjacente para fornecer conectividade. Em outras palavras, você precisa primeiro de conectividade antes de executar o BGP.
Ron Tronco de

Estou tentando entender como tudo começou e qual é o raciocínio por trás da arquitetura atual. Então, no começo, havia dois caras com redes privadas executando IGPs e disseram vamos conectar nossas redes? por que fazê-lo através de IP / TCP, e protocolos antigos como Novell ou Appletalk
mesclado

Essas são perguntas diferentes (mas boas). As respostas precisarão de mais espaço do que a seção de comentários. Podemos movê-lo para conversar, se você quiser #
Ron Trunk

6

O modelo de rede OSI e suas camadas são úteis para entender a comunicação de ponta a ponta entre hosts, mas não se destina realmente a explicar como o plano de controle de rede funciona. Há um problema de inicialização inerente ao estabelecimento da conectividade BGP completa, mas a maneira como essa inicialização ocorre é bem compreendida e não possui dependências circulares.

Em termos de BGP, a maneira como as adjacências são formadas e as informações são trocadas depende do tipo de sessão.

O mais simples é o eBGP. Normalmente, o eBGP é executado em uma sessão TCP entre dois roteadores conectados diretamente. Nesse caso, cada ponto sabe como conversar com o outro porque ambos têm uma interface na mesma sub-rede, portanto, não há necessidade de usar um protocolo de roteamento externo para formar a adjacência.

Com o iBGP, as coisas são um pouco complicadas. Na configuração mais simples, todos os roteadores dentro de um sistema autônomo serão configurados como parte de uma malha completa, com sessões iBGP com todos os outros roteadores na rede. Dentro do sistema autônomo, um protocolo de gateway interno, como OSPF ou ISIS, para construir a topologia de roteamento interno. Quando o IGP concluir seu trabalho, todos os roteadores terão uma tabela de roteamento preenchida com rotas para todos os vizinhos do iBGP, permitindo que a sessão TCP se forme sem dependência circular.

Onde as coisas ficam um pouco mais interessantes é em situações em que nem todos os roteadores no sistema autônomo são executados com uma tabela BGP completa. Se a malha do iBGP não estiver concluída, você poderá obter situações em que um roteador no meio da rede tenha uma visão diferente da tabela que seus vizinhos diretos. Isso causará roteamento abaixo do ideal e, em alguns casos, loops de roteamento que levarão ao tráfego entre dispositivos até o TTL expirar.


5

O link tem endereços estáticos e entradas de roteamento associadas configuradas, usadas para estabelecer a sessão BGP. Usando o BGP, a tabela de roteamento é então estendida com as entradas apontando para outras redes.

Como o BGP é usado apenas entre pares diretos, nenhuma rota além daquela que aponta para a outra extremidade é necessária neste momento.

Por exemplo, se quiséssemos emparelhar, concordaríamos em uma sub-rede / 30 ou / 31, atribuiríamos um endereço para cada extremidade da rede e criaríamos uma rota de rede para essa sub-rede para esse link, então configuraríamos o outro como Ponto BGP, nesse ponto, recebo entradas de roteamento adicionais para todas as redes que você anuncia serem enviadas pelo roteador (que por sua vez faz parte da rota de rede local configurada estaticamente).


Simon, bom ter notícias suas novamente. Sua resposta aborda apenas o eBGP, mas os pares do iBGP precisam apenas de acessibilidade IGP (ou seja, OSPF). Você poderia adicionar mais para o caso iBGP?
21414 Mike

0
                    ---        ---          ---          ---
                   | D |------| A |--------| B |--------| C |
                    ---        ---          ---          ---

Suponha que A e B sejam roteadores (em AS diferentes ou iguais) e D e C sejam hosts. Agora A e B estão conectados um ao outro e podem se comunicar. Mas como D saberia a posição de C para que ele possa se comunicar com C. O mesmo vale para C quando deseja se comunicar com D. Agora, se rodarmos o protocolo BGP entre A e B, eles trocarão as informações de conectividade da camada 3 entre si. . Em termos simples, A dirá a B que D está conectado a ele. Então, B pode transmitir isso para C ou se B é o gateway padrão para C, de qualquer maneira C pode conhecer a posição de D.

Portanto, nesse caso, as informações de conectividade da camada 3 são passadas entre A e B, dado que A e B executam o protocolo BGP.

Portanto, é necessária uma conexão BGP anterior entre dois sistemas para trocar informações de roteamento da camada 3. Acabei de mostrar um exemplo simples para responder à sua consulta. No cenário prático, muito mais quantidade de dados de roteamento é trocada entre os pares BGP.

O BGP é executado sobre o protocolo TCP. Portanto, um soquete TCP deve ser aberto entre eles, somente para que eles possam trocar dados de roteamento.


0

sem conectividade L3 prévia?

"Conectividade L3" não é tudo ou nada.

O administrador que estiver configurando o roteador irá configurar as interfaces com endereços IP e máscaras de sub-rede. Com base nessas configurações, serão criadas entradas implícitas da tabela de roteamento que permitem ao roteador conversar com seus vizinhos.

Os protocolos de roteamento podem ser executados sobre essa conectividade L3 local para estabelecer uma conectividade L3 de longa distância.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.