Border Gateway Protocol

Origem: Wikipédia, a enciclopédia livre.
 Nota: Se procura BGP - Batalhão da Guarda Presidencial, veja Batalhão da Guarda Presidencial.

O BGP [RFCs 1771,1772,1773,1774,1657] é um protocolo de roteamento entre sistemas autônomos (ASs), criado para uso nos roteadores principais da Internet.[1]

O BGP foi projetado para evitar laços de roteamento em topologias arbitrárias, o mais sério problema de seu antecessor, o EGP (Exterior Gateway Protocol). Outro problema que o EGP não resolve - e é abordado pelo BGP - é o do Roteamento Baseado em Política (policy-based routing), um roteamento com base em um conjunto de regras não técnicas, definidas pelos Sistemas Autônomos. Sendo assim, o BGP melhora o EGP.

Descrição detalhada[editar | editar código-fonte]

A função primária de um sistema BGP é trocar informação de acesso à rede, inclusive informação sobre a lista das trajetórias dos ASs, com outros sistemas BGP. Esta informação pode ser usada para construir um gráfico da conectividade dos ASs a partir do qual laços de roteamento podem ser detectados e reforçadas as políticas de decisão com outros ASs.

Quando um roteador se conecta à rede pela primeira vez, os roteadores BGP trocam suas tabelas de rotas completas. De maneira similar, quando a tabela de rotas muda, roteadores enviam a parte da tabela que mudou. Roteadores BGP não enviam regularmente atualizações de roteamento planejadas e as atualizações de rotas informam somente a trajetória ótima para uma rede.

BGP usa uma única métrica para determinar a melhor trajetória para uma dada rede. Esta métrica consiste de número arbitrário que especifica o grau de preferência de um enlace em particular e é atribuído pelo administrador da rede. Este número pode ser baseado em qualquer critério: número de ASs que a trajetória cruza, estabilidade, velocidade, retardo ou custo. Os 4 tipos de mensagens BGP são:

1. Abertura (open message) – abre uma sessão de comunicação entre BGP pares (peers) e é a primeira mensagem enviada de cada lado depois que uma conexão de protocolo de transporte é estabelecida; essa mensagem é confirmada usando uma mensagem de keep-alive enviada pelo roteador par e tem que ser confirmada antes das atualizações, notificações e outras mensagens de keep-alive.

2. Atualização (update message) – é usada para informar atualizações de rotas para outros sistemas BGP, permitindo que os roteadores possam construir uma visão consistente da topologia da rede, usando o TCP para garantir uma entrega confiável; essas mensagens podem retirar rotas inviáveis (unfeasible routes) da tabela de roteamento e simultaneamente informar uma nova rota.

3. Notificação (notification message) – é enviada quando uma condição de erro é detectada; elas são usadas para encerrar uma sessão ativa e informar a quaisquer roteadores conectados do porquê do encerramento da sessão.

4. Keep-alive – notifica aos roteadores BGP pares que um dispositivo está ativo.

Formatos do pacote[editar | editar código-fonte]

1. Cabeçalho – todos os tipos de mensagens usam o cabeçalho básico mais alguns campos adicionais, exceto a mensagem Keep-alive que usa somente o cabeçalho básico; seus campos são:

  • Marcador (Marker) – contém um valor de autenticação que o recebedor pode verificar.
  • Comprimento (Length) – indica o comprimento total da mensagem em bytes.
  • Tipo (Type) – especifica o tipo de mensagem.
  • Dados (Data) – opcional, contém informação das camadas superiores.

2. Abertura –fornece o critério de troca para que dois roteadores BGP estabeleçam uma relação par (peer relationship); seus campos são:

  • Versão (Version) – informa o número da versão do protocolo BGP.
  • Sistema Autônomo (Autonomous System - AS)– número do AS do enviador.
  • Hold-time – indica o número máximo de segundos que podem decorrer, sem receber uma mensagem, antes que o transmissor seja assumido como não funcional.
  • Identificador do BGP (BGP Identifier) – fornece um identificador BGP do transmissor (endereço IP) determinado na inicialização sendo idêntico para todas as interfaces locais e para todos os BGPs pares.
  • Comprimento dos parâmetros opcionais (Optional Parameters Length) – indica o comprimento do campo opcional de parâmetros (se existir).
  • Parâmetros opcionais (Optional Parameters) – contém uma lista dos parâmetros opcionais (se existir); atualmente somente um tipo está definido: informação de autenticação.

3. Atualização – ao receberem um pacote de mensagem de atualização, os roteadores estarão aptos a adicionar ou excluir entradas específicas de suas tabelas de roteamento; seus campos são:

  • Comprimento das Rotas Inviáveis (Unfeasible Routes Length) – indica o comprimento total do campo de retirada de rotas ou indica que o campo não está presente.
  • Retirada de Rotas (Withdrawn Routes) – contém a lista dos prefixos dos endereços IP para as rotas que estão sendo retiradas de serviço.
  • Comprimento total dos atributos de trajetória (Total Path Attribute Length) – indica o comprimento total do campo de atributos da trajetória ou que indica que o campo não está presente.
  • Atributos da Trajetória (Path Attributes) – descreve as características da trajetória informada.
  • Informação de Acessibilidade da Camada de Rede (Network Layer Reachability Information) – contém a lista de prefixos dos endereços IP para as rotas informadas.

4. Notificação – este pacote é usado para indicar algum tipo de condição de erro para os pares do roteador de origem; seus campos são:

  • Código de Erro (Error Code) – indica o tipo de erro que ocorreu.
  • Sub-código de Erro (Error Subcode)– fornece informação mais específica sobre a natureza do erro informado.
  • Dados do Erro (Error Data) – contém os dados baseados no código de erro e campos de sub-código de erro; este campo é usado para diagnosticar a causa para a mensagem de notificação.

Formato do cabeçalho[editar | editar código-fonte]

Cada pacote BGP contém um cabeçalho cujo principal propósito é identificar a função do pacote em questão. As seguintes descrições resume a função de cada campo do cabeçalho BGP.

  • Marcador (16 bytes) – Contém um valor de autenticação que o destinatário da mensagem poderá prever.
  • Comprimento (2 bytes)– Indica o comprimento total da mensagem em bytes.
  • Tipo (1 byte) – Especifica o tipo de mensagem desnecessária,como um dos seguintes:
    • Abrir;
    • Atualizar;
    • Notificação;
    • Keep Alive (Manter vivo)
  • Dados (tamanho variável) – Contém informações da camada superior nesse campo opcional.

A última versão do BGP, o BGP4, foi projetada para suportar os problemas causados pelo grande crescimento da Internet.

Tópicos relacionados[editar | editar código-fonte]

Referências[editar | editar código-fonte]

  1. «Border Gateway Protocol». Biblioteca Nacional da Alemanha (em alemão). Consultado em 19 de dezembro de 2019 
Ícone de esboço Este artigo sobre redes de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.