Skip to content

Os protocolos de roteamento externo como o próprio nome diz, são responsáveis pela conexão de uma Intranet com uma Extranet ou Internet. Atualmente o único representante desta modalidade é o protocolo BGP (Border Gateway Protocol) é um protocolo de roteamento externo ele executa o roteamento interdomínio em redes IP. Ele é do tipo EGP (não confundir protocolos exteriores com o protocolo EGP, que têm a mesma sigla), o que significa que ele executa roteamento entre múltiplos AS ou domínios e troca informações de roteamento com  outros sistemas BGP.

O BGP foi desenvolvido para substituir seu predecessor o agora obsoleto Exterior Gateway Protocol (EGP), tornando-se o protocolo padrão de roteamento exterior na Internet. Na figura abaixo, observe que os roteadores de núcleo (core router) utilizam o protocolo BGP para rotear tráfego entre ASs (Autonomous System).

O BGP executa 3 tipos de roteamento:

  • Inter-AS ocorre entre dois ou mais roteadores BGP em diferentes ASs.
  • Intra-AS ocorre entre dois ou mais roteadores BGP localizados dentro do mesmo AS.
  • Pass-through AS ocorre entre dois ou mais roteadores BGP pares (peers) que trocam tráfego através de um AS que não roda BGP; nesse caso, o tráfego não foi originado dentro do AS e não é destinado para um host dentro do AS; BGP precisa interagir com qualquer que seja o protocolo de roteamento usado dentro do AS para transportar o tráfego através do AS com sucesso.

URL para informações complementares:

http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/55143.htm

Como todo protocolo de roteamento, o BGP mantém tabelas de roteamento, transmite atualizações de rotas e baseia as decisões de roteamento em métricas. 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 loops 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:

  • 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 da atualizações, notificações e outras mensagens de keep-alive.
  • 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.
  • 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 porque do encerramento da sessão.
  • Keep-alive – notifica aos roteadores BGP pares que um dispositivo está ativo.
Os formatos de pacotes BGP são:
  • 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
  • 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 enviador (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.
  • 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.
  • 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.
  • Subcó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 subcódigo de erro; este campo é usado para diagnosticar a causa para a mensagem de notificação.
Não utilize o BGP nas seguintes condições:
  • Uma única conexão para a Internet ou outro AS.
  • Política de Roteamento ou a seleção de rotas não são uma preocupação do seu AS.
  • Carência de memória ou processamento do router para manusear constantes atualizaçãoes (updates).
  • Limitado conhecimento de filtro de rotas e o processo de seleção de caminhos para o BGP.
  • Baixa quantidade de banda entre os ASs.

Para estes casos, a melhor solução é a utilização de rotas estáticas.

CARACTERISTICAS BGP

–Utiliza um algoritmo  chamado Vetor de Caminhos (Path Vector).

–Atualizações Confiáveis — BGP atua em cima de TCP – (Porta 179).

–Utiliza-se somente de “Triggered Updates”.

–Envia periodicamente KEEPALIVES para verificar a conectividade TCP.

–Métrica conhecida como “Vector” ou  Atributos .

–Designado para escalar redes de grande porte – (por exemplo – a Internet).

TABELAS DE ROTEAMENTO

Um Router BGP conectado na internet possui em média:

  • Uma tabela de roteamento que possui mais de 30MB.
  • Mais de 100.000 rotas.
  • Mais de 6.500 números de AS.
  • BGP tem a sua própria tabela em adição a tabela IP de roteamento.

  • As informações podem ser trocadas entre as duas tabelas.

A Métrica do BGP

A métrica é conhecida por seus atributos, as características de atributos incluem:

  • Conhecido versus Opcional.
  • Mandatórios versus Arbitrários.
  • Transitivo versus Não-Transitivo.
  • Parcial.

Atributos Conhecidos:

  • Deve ser reconhecido por todos  complacente implementações BGP.
  • São propagados para os outros neighbors.

Atributos Mandatórios:

  • Devem estar presentes em todas as  mensagens de atualização – updates.

Atributos Arbitrários

  • Podem estar presentes em todas as atualizações – updates.

Atributos Opcionais:

  • Reconhecido por algumas implementações (pode ser privada), espera-se não ser reconhecida por qualquer um.
  • Atributos opcionais reconhecidos são propagados para outros neighbors baseados no que se pretende fazer.

Atributos Transitivos Opcionais:

  • Se não reconhecido, são marcados como parcial e propagado para outros neighbors.

Atributo Opcional Não-Transitivo

  • Descartado se não reconhecido.
ATRIBUTOS

Atributos BGP incluem:

  • AS-path *
  • Next-hop *
  • Local preference
  • Multi-Exit-Discriminator (MED)
  • Origin *
  • Community

* = Atributos Mandatórios conhecidos

ATRIBUTO AS-PATH
  • A lista de ASs que uma rota tem que atravessar para chegar ao destino.

–Por exemplo, o caminho do Router B para a rede 192.168.1.0 é pela sequência de ASs 65500 64520.

NEXT-HOP

O atributo Next-hop pode ser utilizado para chegar a uma determinada rede:

Router A anuncia 172.16.0.0 para o Router B em eBGP, com a next hop de 10.10.10.3.

Router B anuncia 172.16.0.0 em iBGP para o Router C, ficando 10.10.10.3 como o endereço de next-hop.

LOCAL PREFERENCE
  • Caminho com maior Valor de Preferência – “Local Preference” será utilizado.

–A Preferência é configurada no routers.

–A informação de Preferência é enviada somente para os Routers iBGP neighbors.

MED

Caminho com menor MED (também conhecido como métrica) é o preferido.

  • MED é configurado nos Routers.
  • MED são enviados somente para eBGP neighbors.
COMANDOS BÁSICOS

As etapas para configurar o BGP em um roteador IOS são as seguintes:

Etapa 1. Crie o processo de roteamento BGP. Inicialize o processo BGP com o comando global router bgp as-number.

Etapa 2. Identifique o endereço IP do vizinho BGP e o número do sistema autônomo. Identifique o endereço IP do vizinho BGP e o número do sistema autônomo com o comando de configuração do roteador BGP endereço IP remoto do vizinho como número.

ATENÇÃO!

O IOS ativa a família de endereços IPv4 por padrão. Isso pode simplificar a configuração em um ambiente IPv4 porque as etapas 3 e 4 são opcionais, mas pode causar confusão ao trabalhar com outras famílias de endereços. O comando de configuração do roteador BGP no bgp default ip4-unicast desativa a ativação automática do IPv4 AFI para que as etapas 3 e 4 sejam necessárias.

Etapa 3. Inicializar a família de endereços com o comando de configuração do roteador BGP address-family afi safi.

Etapa 4. Ativar a família de endereços para o vizinho BGP com o comando de configuração da família de endereços BGP vizinho ativar o endereço IP.

O Exemplo 1-2 demonstra como configurar R1 e R2 usando o padrão IOS e a sintaxe CLI do modificador AFI IPv4 opcional. R1 é configurado usando a família de endereços IPv4 padrão habilitada e R2 desabilita a família de endereços IPv4 padrão do IOS e ativa-o manualmente para o vizinho específico 10.1.12.1.

R1 (com IPv4)

router bgp 65100 neighbor 10.1.12.2 remote-as 65100

R2 (com IPv4 desabilitado)
router bgp 65100
 no bgp default ipv4-unicast
 neighbor 10.1.12.1 remote-as 65100
 !
 address-family ipv4
  neighbor 10.1.12.1 activate
 exit-address-family

As etapas para configurar o BGP em um roteador IOS XR são as seguintes:

Etapa 1. Crie o processo de roteamento BGP. Inicialize o processo BGP com o comando de configuração global router bgp as-number.

Etapa 2. Inicializar a família de endereços com o comando de configuração do roteador BGP address-family afi safi para que possa ser associado a um vizinho BGP.

Etapa 3. Identificar o endereço IP do vizinho BGP com o endereço IP vizinho do comando de configuração do roteador BGP.

Etapa 4. Identifique o número do sistema autônomo do vizinho BGP com o comando de configuração do vizinho BGP remoto como número.

Etapa 5. Ative a família de endereços para o vizinho BGP com o comando de configuração de vizinho BGP família de endereços afi safi.

Etapa 6. Associe uma política de rota para EBGP Peers. O IOS XR exige que uma política de roteamento seja associada a um par EBGP como medida de segurança para garantir que as rotas não sejam aceitas ou anunciadas acidentalmente. Se uma política de rota não for configurada na família de endereços apropriada, então os NLRIs serão descartados após o recebimento e nenhum NLRI será anunciado aos pares EBGP.

Uma política de rota de entrada e de saída é configurada com o comando route-policy-name-name {in | out} na configuração da família de endereços do vizinho BGP.

ATENÇÃO!

Os nós IOS XR não estabelecem uma sessão BGP se o RID for definido como zero, porque a alocação dinâmica de RID não encontrou nenhuma interface de loopback up. O RID precisa ser definido manualmente com o comando de configuração do roteador BGP bgp router-id.

O exemplo 1-3 exibe a configuração do BGP para R1 se ele estava executando o IOS XR. O RID é definido em R1 porque esse roteador não tem nenhuma interface de loopback.

O exemplo 1-3 exibe a configuração do BGP para R1 se ele estava executando o IOS XR. O RID é definido em R1 porque esse roteador não tem nenhuma interface de loopback.

Exemplo 1-3 Configuração IOS XR BGP

IOS XR
router bgp 65100
 bgp router-id 192.168.1.1
 address-family ipv4 unicast
 !
 neighbor 10.1.12.2
  remote-as 65100
  address-family ipv4 unicast

As etapas para configurar o BGP em um dispositivo NX-OS são as seguintes:

Etapa 1. Crie o processo de roteamento BGP. Inicialize o processo BGP com o comando de configuração global router bgp as-number.

Etapa 2. Inicializar a família de endereços com o comando de configuração do roteador BGP address-family afi safi para que possa ser associado a um vizinho BGP.

Etapa 3. Identifique o endereço IP do vizinho BGP e o número do sistema autônomo com o comando de configuração do roteador BGP endereço IP remoto do vizinho como número.

Etapa 4. Ative a família de endereços para o vizinho BGP com o comando de configuração do vizinho BGP família de endereços afi safi.

O exemplo 1-4 exibe a configuração do BGP para R1 se estiver executando o NX-OS.

Exemplo 1-4 Configuração NX-OS BGP

NX-OS
router bgp 65100
 address-family ipv4 unicast
 neighbor 10.1.12.2 remote-as 65100
  address-family ipv4 unicast

Verificação de sessões BGP
A sessão BGP é verificada com o comando show bgp afi safi summary nos dispositivos IOS, IOS XR e NX-OS. O exemplo 1-5 exibe o resumo unicast do BGP IPv4. Observe que o BGP RID e as versões da tabela são os primeiros componentes mostrados. A coluna Para cima / Para baixo reflete que a sessão do BGP está ativa por mais de 5 minutos.

Exemplo 1-5 Verificação do resumo da sessão IPv4 do BGP

R1-IOS# show bgp ipv4 unicast summary
BGP router identifier 192.168.2.2, local AS number 65100
BGP table version is 1, main routing table version 1
Neighbor      V     AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.1.12.2     4  65100       8       9        1    0    0 00:05:23        0

RP/0/0/CPU0:R1-XR# show bgp ipv4 unicast summary ! Output omitted for brevity BGP router identifier 192.168.1.1, local AS number 65100 BGP main routing table version 4 Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 4 4 4 4 4 4 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 10.1.12.2 0 65100 8 7 4 0 000:05:23 0

R1-NXOS# show bgp ipv4 unicast summary ! Output omitted for brevity BGP router identifier 192.168.1.1, local AS number 65100 BGP table version is 5, IPv4 Unicast config peers 2, capable peers 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.1.12.2 4 65100 32 37 5 0 0 00:05:24 0