Border Gateway Protocol

 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

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

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

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

Referências

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