OBGP é um protocolo de roteamento entre domínios projetado para fornecer roteamento sem loop entre domínios de roteamento separados que contêm políticas de roteamento independentes (sistemas autônomos).

O BGP é um protocolo de roteamento entre domínios projetado para fornecer links de roteamento sem loop entre organizações. O BGP é projetado para ser executado em um protocolo de transporte confiável; ele usa o TCP (porta 179) como o protocolo de transporte porque o TCP é um protocolo orientado à conexão. A porta TCP de destino é atribuída a 179 e a porta local a um número de porta aleatório. O software Cisco oferece suporte ao BGP versão 4 e é essa versão que tem sido usada por provedores de serviços de Internet (ISPs) para ajudar a construir a Internet. A RFC 1771 introduziu e discutiu uma série de novos recursos BGP para permitir que o protocolo seja escalado para uso na Internet.

O BGP é usado principalmente para conectar uma rede local a uma rede externa para obter acesso à Internet ou para se conectar a outras organizações. Ao se conectar a uma organização externa, sessões de peering BGP (eBGP) externas são criadas. Embora o BGP seja referido como um protocolo de gateway exterior (EGP), muitas redes dentro de uma organização estão se tornando tão complexas que o BGP pode ser usado para simplificar a rede interna usada na organização. Os pares BGP dentro da mesma organização trocam informações de roteamento por meio de sessões de peering BGP (iBGP) internas.

O BGP usa um algoritmo de roteamento de vetor de caminho para trocar informações de acessibilidade de rede com outros dispositivos de rede que falam BGP. As informações de acessibilidade da rede são trocadas entre os pares BGP nas atualizações de roteamento. As informações de acessibilidade da rede contêm o número da rede, atributos específicos do caminho e a lista de números do sistema autônomo que uma rota deve transitar para chegar a uma rede de destino. Esta lista está contida no atributo AS-path. O BGP evita loops de roteamento, rejeitando qualquer atualização de roteamento que contenha o número do sistema autônomo local, porque isso indica que a rota já percorreu esse sistema autônomo e, portanto, um loop seria criado.

O BGP seleciona um único caminho, por padrão, como o melhor caminho para um host ou rede de destino. O algoritmo de seleção do melhor caminho analisa os atributos do caminho para determinar qual rota está instalada como o melhor caminho na tabela de roteamento BGP. Cada caminho carrega atributos transitivos obrigatórios, discricionários bem conhecidos e opcionais que são usados na análise do melhor caminho BGP. O software Cisco fornece a capacidade de influenciar a seleção do caminho BGP, alterando alguns desses atributos usando a interface de linha de comando (CLI). A seleção do caminho BGP também pode ser influenciada por meio da configuração de política BGP padrão.

O BGP usa o algoritmo de seleção do melhor caminho para encontrar um conjunto de rotas igualmente boas. Essas rotas são os caminhos múltiplos potenciais. No Cisco IOS Release 12.2 (33) SRD e versões posteriores, quando há mais multipaths igualmente bons disponíveis do que o número máximo permitido, os caminhos mais antigos são selecionados como multipaths.

O BGP pode ser usado para ajudar a gerenciar redes internas complexas fazendo interface com os Interior Gateway Protocols (IGPs). O BGP interno pode ajudar com questões como dimensionar os IGPs existentes para corresponder às demandas de tráfego enquanto mantém a eficiência da rede.

O BGP usa um ID de roteador para identificar pares que falam BGP. A ID do roteador BGP é um valor de 32 bits frequentemente representado por um endereço IPv4. Por padrão, o software Cisco define a ID do roteador para o endereço IPv4 de uma interface de loopback no roteador. Se nenhuma interface de loopback for configurada no dispositivo, o software escolhe o endereço IPv4 mais alto configurado em uma interface física do dispositivo para representar o ID do roteador BGP. O ID do roteador BGP deve ser exclusivo para os pares BGP em uma rede.

Um dispositivo de fala BGP não descobre outro dispositivo de fala BGP automaticamente. Um administrador de rede geralmente configura manualmente os relacionamentos entre os dispositivos de fala BGP. Um dispositivo de mesmo nível é um dispositivo que fala BGP que tem uma conexão TCP ativa com outro dispositivo que fala BGP. Esta relação entre os dispositivos BGP é muitas vezes referida como um vizinho, mas porque isso pode implicar a ideia de que os dispositivos BGP estão diretamente conectados a nenhum outro dispositivo entre eles, o termo vizinho serão evitados sempre que possível neste documento. Um alto-falante BGP é o dispositivo local e um par é qualquer outro dispositivo de rede que fala BGP.

Quando uma conexão TCP é estabelecida entre pares, cada par BGP inicialmente troca todas as suas rotas - a tabela de roteamento BGP completa - com o outro par. Após essa troca inicial, apenas atualizações incrementais são enviadas quando há uma mudança de topologia na rede ou quando uma política de roteamento é implementada ou modificada. Nos períodos de inatividade entre essas atualizações, os pares trocam mensagens especiais chamadas de keepalives.

Um sistema autônomo BGP é uma rede controlada por uma única entidade de administração técnica. Dispositivos de pares são chamados de pares externos quando estão em sistemas autônomos diferentes e pares internos quando estão no mesmo sistema autônomo. Normalmente, os pares externos são adjacentes e compartilham uma sub-rede; os pares internos podem estar em qualquer lugar no mesmo sistema autônomo.

Quando um processo de roteamento BGP estabelece uma sessão de peering com um par, ele passa pelas seguintes alterações de estado:

Configurando o BGP

Se os roteadores BGP estiverem se comunicando com roteadores no mesmo AS, eles usarão o protocolo de gateway de borda interna (iBGP);