Engenharia de redes para provedores de todo o Brasil e empresas de Santa Catarina.Engenharia de redes para provedores e empresas

Passo a passo · Engenharia de tráfego

Como balancear tráfego no BGP: saída e entrada para provedores

Como balancear tráfego no BGP: mede-se o tráfego por destino, define-se uma meta em números e move-se uma fatia por vez entre os links. A saída se ajusta com preferência local no seu roteador, e a entrada se influencia mudando o que as outras redes enxergam nos seus anúncios.

Resumo

  • O BGP escolhe um único caminho por destino, então a divisão da carga precisa ser desenhada por você.
  • A saída é controlada com LOCAL_PREF por grupos de destinos, e o efeito aparece logo depois da mudança.
  • A entrada depende das outras redes e responde a divisão de blocos, prepend e communities da operadora.
  • Um ajuste por vez, medido no mesmo horário de pico, separa o que funcionou do que só coincidiu.

Como balancear tráfego no BGP: o que dá para controlar

Dá para controlar com precisão por onde o tráfego sai e só influenciar por onde ele volta. Todo balanceamento começa separando esses dois sentidos, porque cada um usa ferramentas diferentes.

O tráfego de saída é o que os assinantes mandam para a internet, como pedidos de página e envio de arquivos. Quem escolhe o link é o seu roteador, a partir das rotas que cada operadora entrega. O tráfego de entrada é o download, quase sempre o sentido mais pesado num provedor residencial, e quem escolhe o caminho é a rede de origem, não você.

Essa assimetria de controle explica por que tanto provedor ajusta a saída, vê o gráfico de upload equilibrado e continua com o download concentrado num link só. A engenharia de tráfego BGP trata os dois sentidos como projetos separados, cada um com meta e medição próprias.

Ferramentas para balancear tráfego no BGP e o sentido que cada uma move
FerramentaSentidoPrecisãoQuando o efeito aparece
LOCAL_PREF por grupo de destinosSaídaAlta, decisão é suaLogo após aplicar a política
Divisão dos blocos entre operadorasEntradaMédia, depende da rota de cada origemEm minutos, conforme a propagação
Prepend de AS_PATHEntradaBaixa, muitas redes ignoramVariável, conferir no mesmo horário
Communities da operadoraEntradaMédia, vale só dentro delaConforme a tabela de cada operadora
IX.br e cachesOs doisAlta para as redes presentesAssim que a sessão e o cache entram

Por que o BGP não divide a carga sozinho?

Porque o protocolo foi feito para achar um caminho válido, não para encher os links por igual. Para cada prefixo, ele compara as rotas recebidas e instala só uma, seguindo a ordem de critérios descrita na RFC 4271.

Alguns roteadores permitem instalar mais de um caminho com o recurso de multipath, mas as rotas precisam ter atributos iguais, e rotas de operadoras diferentes quase nunca têm. Mesmo quando se força essa igualdade, a divisão é por fluxo e ignora a capacidade de cada link, o que costuma lotar o menor. O guia sobre como o BGP escolhe entre as rotas detalha cada critério dessa comparação.

Antes de mexer, meça e escreva a meta

Sem saber quais destinos pesam mais, qualquer ajuste é tentativa. A medição por fluxos mostra quem são os grandes volumes, e a meta diz quanto de cada um precisa mudar de link.

Os contadores de interface mostram quanto passa por link, mas não dizem para onde vai. Para balancear, é preciso saber quais sistemas autônomos concentram o tráfego, e isso vem da exportação de fluxos da borda. A implantação de IPFIX descreve como montar essa coleta.

  1. Horário: escolha a janela de pico real, normalmente à noite, e use sempre a mesma janela nas comparações.
  2. Ranking: liste os sistemas autônomos de origem e destino que somam mais tráfego em cada sentido.
  3. Caminho atual: anote por qual link cada grande volume entra e sai hoje.
  4. Fora do trânsito: confira o que já vai pelo IX.br e pelos caches, porque isso não entra na divisão entre operadoras.
  5. Meta: escreva o objetivo em números, como deixar o link A abaixo de um percentual combinado no pico.

A meta precisa considerar o contrato, e não só a capacidade. Um link com volume mínimo pago pode valer a pena encher mais, enquanto outro, cobrado por excedente, deve ficar com folga. Sem essa conta, o balanceamento perfeito no gráfico pode sair mais caro na fatura.

O que ter em mãos antes do primeiro ajuste

A lista abaixo resume o que precisa estar pronto. Faltando qualquer item, o resultado do ajuste fica difícil de provar.

Confira antes de mudar qualquer política

  • Gráfico de cada link no pico dos últimos sete dias, nos dois sentidos.
  • Ranking dos sistemas autônomos que mais pesam, por sentido.
  • Capacidade, preço e volume mínimo de cada contrato.
  • Backup da configuração atual da borda.
  • Roteiro escrito para desfazer cada mudança.

Com todos os itens marcados, o ajuste tem ponto de partida e caminho de volta. Sem o ranking, o mais provável é mover tráfego que não pesa e deixar o grande volume onde estava.

Como balancear o tráfego de saída passo a passo

A saída se balanceia escolhendo grupos de destinos e dando a eles preferência local maior por um dos links. Mexer em grupos, e não em tudo de uma vez, permite mover fatias do tamanho certo.

  1. Grupo: a partir do ranking, separe um conjunto de sistemas autônomos que some a fatia que precisa mudar de link.
  2. Política: na sessão com a operadora que deve receber esse grupo, aumente o LOCAL_PREF das rotas dele.
  3. Padrão: deixe as demais rotas com o valor normal, para não puxar tudo de uma vez.
  4. Aplicação: aplique em janela de baixo uso, com backup, e confira as rotas instaladas para um destino do grupo.
  5. Medição: compare o gráfico do pico seguinte com o anterior e ajuste o tamanho do grupo se a fatia passou da meta.

O exemplo usa sintaxe Cisco IOS-XE, com o seu ASN 64500 e a operadora B no AS 64497. O grupo é formado pelos destinos originados nos sistemas autônomos 64510 e 64511, que no ranking somam a fatia a ser movida.

Preferência de saída pela operadora B para um grupo de destinos, em Cisco IOS-XE [CONFIRMAR na versão do equipamento]
! destinos originados nos AS 64510 e 64511
ip as-path access-list 20 permit _64510$
ip as-path access-list 20 permit _64511$
!
route-map ENTRADA-OPERADORA-B permit 10
 match as-path 20
 set local-preference 150
route-map ENTRADA-OPERADORA-B permit 20
 set local-preference 100
!
router bgp 64500
 address-family ipv4 unicast
  neighbor 198.51.100.5 route-map ENTRADA-OPERADORA-B in
!
! conferir qual caminho ficou instalado para um destino do grupo
do show ip bgp 192.0.2.0/24

Repare que a política fica na entrada da sessão, porque o LOCAL_PREF é dado às rotas recebidas da operadora. O valor só vale dentro do seu sistema autônomo e precisa chegar a todos os roteadores de borda pelo iBGP, senão cada um decide de um jeito.

Quer a carga dividida pela sua meta, com gráfico de antes e depois?

A Táquion Tech mede o tráfego por destino, aplica um ajuste por vez na saída e na entrada e entrega o resultado comparado com a meta combinada.

Pedir proposta de engenharia de tráfego BGP

Como balancear o tráfego de entrada no BGP?

A entrada se balanceia mudando o que as outras redes veem nos seus anúncios, porque são elas que escolhem por onde mandar o download. As três ferramentas são dividir os blocos, alongar o caminho com prepend e usar communities da operadora.

A ferramenta mais previsível é a divisão dos blocos. Cada bloco segue anunciado pelas duas operadoras, para não perder a redundância, mas com preferência diferente em cada uma: um bloco chega com caminho normal pela operadora A e mais longo pela B, e o outro faz o contrário.

Divisão de dois blocos entre as operadoras A e B com prepend, em Cisco IOS-XE [CONFIRMAR na versão do equipamento]
ip prefix-list BLOCO-1 seq 10 permit 192.0.2.0/24
ip prefix-list BLOCO-2 seq 10 permit 203.0.113.0/24
!
route-map ANUNCIO-OPERADORA-A permit 10
 match ip address prefix-list BLOCO-1
route-map ANUNCIO-OPERADORA-A permit 20
 match ip address prefix-list BLOCO-2
 set as-path prepend 64500 64500
!
route-map ANUNCIO-OPERADORA-B permit 10
 match ip address prefix-list BLOCO-2
route-map ANUNCIO-OPERADORA-B permit 20
 match ip address prefix-list BLOCO-1
 set as-path prepend 64500 64500
!
router bgp 64500
 address-family ipv4 unicast
  neighbor 198.51.100.1 route-map ANUNCIO-OPERADORA-A out
  neighbor 198.51.100.5 route-map ANUNCIO-OPERADORA-B out

Os assinantes ligados ao bloco 1 tendem a receber o download pela operadora A, e os do bloco 2 pela B. A divisão fica tão boa quanto a distribuição de assinantes entre os blocos, por isso vale conferir quanto tráfego cada bloco puxa antes de decidir qual vai para cada lado.

Até onde o prepend funciona

O prepend só muda a decisão de quem desempata pelo tamanho do caminho. Redes que preferem rotas de clientes pagantes, ou que fixaram preferência por uma operadora, ignoram as repetições do seu ASN.

Por isso, depois de duas ou três repetições, mais prepend raramente move tráfego e só deixa o anúncio feio na tabela global. Para essas redes, as communities de engenharia de tráfego da própria operadora funcionam melhor, como mostra o guia de configuração de communities BGP.

Anúncios mais específicos e o cuidado com o RPKI

Anunciar um pedaço menor do bloco por uma operadora atrai o tráfego desse pedaço, porque o prefixo mais específico sempre vence. É a ferramenta mais forte para a entrada e também a que mais exige cuidado.

Cada anúncio novo precisa de um ROA que cubra o tamanho anunciado, ou as redes que validam origem vão descartá-lo como inválido. O guia de criação de ROAs mostra como ajustar o tamanho máximo para os anúncios mais específicos.

Erros comuns ao balancear tráfego no BGP

Os erros mais comuns vêm da pressa: vários ajustes de uma vez, medição em horários diferentes e mudanças que esquecem a redundância. Todos aparecem semanas depois, quando um link cai.

Evite

  • Aplicar prepend, LOCAL_PREF e divisão de blocos na mesma janela.
  • Comparar o gráfico de domingo à noite com o de terça à tarde.
  • Anunciar um bloco por uma operadora só e perder a reserva dele.
  • Esquecer o IPv6, que segue saindo pelo caminho padrão.
  • Ajustar só a saída e esperar que o download acompanhe.
  • Anunciar um prefixo mais específico sem ROA para ele.

O erro mais caro é o terceiro. Para dividir a carga, alguém deixa de anunciar um bloco por uma das operadoras, o balanceamento fica perfeito e, no dia em que essa operadora cai, metade dos assinantes fica sem internet. O balanceamento nunca pode custar a redundância que o segundo link deveria dar.

Quando o balanceamento cria rotas assimétricas

Ao mexer na saída e na entrada separadamente, é normal que um destino saia por um link e volte pelo outro. Isso não quebra a navegação, mas confunde gráficos e pode derrubar tráfego quando há filtro de origem estrito na borda.

Se a assimetria passou a incomodar depois de um ajuste, o guia de análise de rotas assimétricas mostra como medir ida e volta e decidir se vale corrigir.

Como saber se o balanceamento funcionou?

O balanceamento funcionou quando o pico de cada link ficou dentro da meta por alguns dias seguidos e a queda de qualquer link ainda leva o tráfego para o outro. Um dia bom isolado não prova nada.

A entrada muda conforme as outras redes reagem aos seus anúncios, e algumas demoram a recalcular. Por isso a conferência olha uma semana de picos, não a primeira noite depois da janela.

  • Gráfico: o pico de cada link, nos dois sentidos, ficou dentro da meta escrita em todos os dias observados.
  • Rotas: um destino de cada grupo movido aparece instalado pelo link esperado.
  • Looking glass: de fora, os seus blocos aparecem pelas duas operadoras, com o caminho previsto em cada uma.
  • Queda: com um link desligado em janela, o tráfego inteiro passa para o outro sem perder blocos.

Se o tráfego crescer ou um grande destino mudar de caminho, o equilíbrio se perde e o processo recomeça pela medição. Quando um link já está no limite e o assinante sente, o guia de link de trânsito saturado mostra o que fazer primeiro, antes de qualquer ajuste fino.

Perguntas frequentes

Dá para balancear tráfego BGP meio a meio exatamente?

Na saída, chega-se perto, ajustando o tamanho dos grupos de destinos. Na entrada, não, porque a escolha é das outras redes e muda com o tempo; a meta realista é uma faixa, não um número exato.

Qual sentido do tráfego pesa mais num provedor?

Num provedor residencial, o download costuma ser bem maior que o upload, então o sentido de entrada é o que mais enche os links. Por isso balancear só a saída quase nunca resolve um link lotado.

O IX.br conta no balanceamento entre operadoras?

Conta como tráfego que sai da conta das operadoras. Tudo o que vai pelo ponto de troca ou pelos caches deixa de pesar no trânsito, e o balanceamento se faz com o que sobra.

Quantos prepends usar para mudar a entrada?

Uma ou duas repetições costumam bastar para quem desempata pelo caminho. Acima de três, o efeito quase não muda e a rota passa a parecer suspeita para quem analisa a tabela global.

Preciso de equipamento novo para balancear o tráfego?

Normalmente não, porque as políticas de LOCAL_PREF, prepend e divisão de blocos rodam no roteador de borda que já existe. O que costuma faltar é a medição por fluxos, que pode exigir um coletor.

Thiago Manoel

Responsável técnico da Táquion Tech · Registro profissional [PREENCHER]

Mais de 15 anos em operações de rede, com gestão de infraestruturas de TI, administração de data centers e condução de equipes em migrações de TI e telecomunicações, com foco em alta disponibilidade e segurança.

A Táquion Tech é uma empresa de engenharia de redes de Balneário Camboriú (SC) que projeta, opera e dá suporte a redes de provedores de internet e de empresas.

Conheça a equipe da Táquion Tech

Fontes

  1. RFC 4271, A Border Gateway Protocol 4 (BGP-4): processo de decisão do BGP e uso do LOCAL_PREF.
  2. RFC 1998, An Application of the BGP Community Attribute in Multi-home Routing: uso de communities para orientar a entrada do tráfego em redes com mais de uma operadora.

Leia também sobre o assunto

Outros guias que costumam ajudar no mesmo tipo de problema.

  • BGP e roteamento

    Como o BGP faz a seleção da melhor rota: passo a passo para provedores

    Como o BGP seleciona a melhor rota: ele junta todos os caminhos recebidos para o mesmo prefixo e compara um critério por vez, parando no primeiro que desempata. Na ordem do padrão vêm LOCAL_PREF mais alto, AS_PATH mais curto, ORIGIN, MED, preferência por eBGP, menor custo interno até o próximo salto e, por fim, o menor router-id.

    13 min de leitura

  • BGP e roteamento

    Análise de rotas assimétricas: guia prático para provedores

    Análise de rotas assimétricas: é descobrir quando o tráfego sai por um caminho e volta por outro, e se isso está causando problema. Assimetria é normal na internet, mas quebra firewalls, CGNAT e filtros de origem quando acontece dentro da rede do provedor.

    11 min de leitura

  • BGP e roteamento

    Configuração de communities BGP: guia prático para provedores

    Configuração de communities BGP: é o trabalho de marcar cada rota com etiquetas que o seu roteador e os das outras redes sabem ler. Com elas o provedor registra de onde veio cada rota, pede ao trânsito prepend ou não anúncio em certos lugares e aciona o descarte do tráfego de um ataque.

    11 min de leitura

Divida o tráfego entre os links com meta escrita e resultado medido

Um Especialista levanta quem pesa no seu tráfego, desenha os grupos de saída e a divisão de entrada e compara o gráfico de antes e depois de cada ajuste.

Falar com o André Comercial, no WhatsApp

Fale com a Táquion Tech

Quer um Especialista olhando a sua rede?

Deixe seus dados e um Especialista chama você no WhatsApp para entender o caso.

Um Especialista responde em até 45 minutos.

Pedido recebido. Protótipo: no site final, a pessoa vai para a página de obrigado e o pedido chega no WhatsApp ou e-mail da Táquion Tech.
Foto de Thiago Manoel
Thiago ManoelResponsável técnico