Análise de BGP prepends na região ALC 2024

09/10/2024

Análise de BGP prepends na região ALC 2024

Por Alejandro Acosta, Coordenador de P&D do LACNIC

Introdução

No seguinte relatório gostaríamos de aprofundar em uma questão muito específica das tabelas de BGP da nossa região, particularmente mostrar uma análise do status dos BGP prepends na região. O objetivo é fazer uma revisão detalhada das tabelas BGP tanto no IPv4 quanto no IPv6 e apresentar os resultados. 

BGP Prepending é uma técnica de longa data e amplamente popular conhecida como “AS Path Prepending” que foi concebida como uma estratégia chave para influenciar na seleção de rotas e a otimização do tráfego tanto de entrada quanto de saída de um AS. Essa técnica é usada por todo tipo de operadores de rede. Ela é boa? Deve ser usada sempre? Existe alguma outra possibilidade?

História

Como mencionamos há alguns meses em nossa postagem no blog [1] “Um RFC necessário sobre BGP: o AS Path Prepending”, dentro da IETF está avançando o documento chamado “AS Path Prepending” [2] onde o LACNIC teve a oportunidade de participar e ser colaborador do draft. No documento se levantam várias considerações a serem tomadas no âmbito da configuração do BGP Prepending. Com base no que foi dito acima, nos perguntamos: estamos fazendo as coisas bem na ALC? Com este trabalho esperamos esclarecer várias questões.

O que é o AS Path Prepending?

O AS Path Prepending é uma técnica que envolve a adição repetitiva do identificador de sistema autônomo (ASN) próprio à lista de ASs no caminho de uma rota BGP (AS_PATH). O seu objetivo é influenciar na seleção de rotas, tornando certos caminhos menos atrativos para o tráfego de entrada/saída. Em outras palavras, é adicionar nosso sistema autônomo ao AS_PATH e assim “afastar um prefixo” artificialmente na Internet.

No gráfico acima sem prepends, o roteador A prefere ir para C via B; no entanto, devido a 3 prepends adicionados em B, o roteador A decide alcançar C via D.

A fonte de dados usados para este estudo

https://bgp.potaroo.net/v6/as2.0/bgptable.txt (IPv6)

https://bgp.potaroo.net/as2.0/bgptable.txt (IPv4)

Abrangência

  • Trabalhamos com prefixos de qualquer RIR
  • Pelo menos um AS da área de cobertura do LACNIC deverá aparecer no AS_PATH

Ferramentas usadas para este estudo

  •   Python3
  •   JupyterLabs
  •   Tabelas BGP em formato “show ip bgp” em Cisco IOS

Resultados

Número de prefixos totais na tabela de roteamento

Os dados a seguir mostram quantos prefixos a DFZ (Default Free Zone) tinha no momento da execução do seguinte trabalho (tabela de roteamento obtida em 22 de agosto de 2024).

IPv6: 214682 (17,99%)

IPv4: 978614 (82,01%) 

Número de AS_PATH analisados

Os dados desta seção correspondem ao total de AS_PATH contabilizados

IPv6: 822573 = 22,10 %

IPv4:  2900978 = 77,90 %

Prefixos onde pelo menos um AS no AS_PATH é do LACNIC

Dos AS_PATH anteriores, contabilizamos quantos AS da nossa região podem ser observados

IPv6: 47242 (26,27 %)

IPv4: 132559 (73,73 %)


Número de prefixos com prepends na ALC

Os dados desta seção mostram o número total de prefixos por família de endereços IP onde os ASN são obtidos fazendo prepends da nossa região. 

IPv6: 16822 (32,36%)

IPv4: 35154 (67,64%)

Número de AS de origem fazendo prepends. Isto seria relativo ao AS_PATH.

As informações a seguir correspondem ao número de sistemas autônomos de origem que fazem BGP Prepending. Para obter estes valores, o AS_Origin não corresponde necessariamente ao LACNIC; se houver algum ASN do LACNIC no AS_PATH, ele é contabilizado.

IPv6: 34832 (48,58 %)

IPv4: 36863 (51,42%). 

AS “Single Homed” fazendo prepends.

Lembrando que não é uma boa prática realizar prepends naqueles ASN conhecidos como “Single Home” (seção 5 do rascunho IETF), foram alcançados os seguintes resultados para ASN da área de abrangência do LACNIC.

IPv6:  296 (28,21%)

IPv4:  753 (71,79%)

Mais de 5 prepends no AS_PATH

Seguindo a boa prática de não usar mais de 5 prepends (seção 5 do rascunho IETF) ao configurar o BGP Prepending, contabilizamos o número de repetições dos prepends. Nós nos focamos principalmente naqueles que ultrapassam este valor, uma vez que mais de 80% dos destinos estão dentro deste comprimento de AS_PATH.

IPv6: 4177 (51,69%)

IPv4: 3903 (48,31%)

Prefixo com mais prepends

As informações a seguir correspondem ao comprimento máximo de prepends alcançado em IPv6 e IPv4.

IPv6: 27 prepends (agosto 2024)

IPv4: 61 prepends (agosto 2024)

Onde ocorre o prepend?

Os gráficos abaixo mostram onde, em geral, os prepends são obtidos dentro do AS_PATH.

Prepends 16 bits vs. 32 bits 

Os presentes dados correspondem a uma contagem simples de ASN repetidos nos AS PATH de acordo com o seu comprimento de bits. ASN maiores que 65.535 correspondem a ASN de 32 bits.

16bits32bits
IPv615360328445
IPv411582468970

TOP 10 ranking de repetições:

Para obter esses dados, cada país do ASN foi contabilizado na tabela de BGP desde que houvesse prepends no AS_PATH. 

Para esclarecer, segue o algoritmo usado:

FOR AS_PATH in AS_PATHs_CON_PREPENDS:

FOR ASN in AS_PATH:

ccASN = pais(ASN)

Dict_ASNs_CC[ccASN] = Dict_ASNs_CC[ccASN] + 1
IPv6  IPv4 
CCRepetições CCRepetições
 MX106710  BR76110
 BR35460  AR29804
 CO30549  CO26892
 AR3074  MX10239
 PA1876  CR5811
 EC943  PA5172
 PE859  CL4697
 DO408  EC4038
 CL281  VE3605
 NI272  PE2956

TOP 5 países que fazem BGP Prepending na nossa região (ratio)

Para calcular a relação dos países que mais fazem prepends, foi contabilizada a ocorrência dos países em cada AS_PATH e posteriormente usou-se a mesma metodologia apenas naqueles onde existiam prepends. Finalmente, o contador global é dividido entre aqueles com prepends. 

Por exemplo, para Cuba foram obtidas 12 entradas na tabela BGP (IPv6), das quais 6 têm prepends, neste caso a proporção é 2 (12/6).

Outro país com um número inteiro foi Curaçao, onde foram obtidas 108 entradas (IPv6) na tabela BGP das quais 9 possuem prepends, obtendo uma proporção de 12 (108/9)

O que foi dito acima significa que para cada 2 AS_PATH na tabela BGP global nos ASN de Cuba, 1 tem prepends, e para cada 12 AS_PATH na tabela BGP global nos ASN de Curaçao, 1 tem prepends.

O TOP 5 de países com menor proporção (fazem mais prepends):

IPv6IPv4
CCRatio CCRatio
MX1,75 BZ2,6
CU2 AW3,04
BO3,4 PY3,07
BZ3,2 AR3,3
SV6 PA3,53

O TOP 5 de países com maior proporção (fazem menos prepends):

IPv6IPv4
CCRatio CCRatio
SR60 CW45,11
GY53 CU 37,5
CR36,61 SV14,96
GT28,7 UY11,98
CL26,15 MX11,13

Conclusões

O BGP Prepending é uma técnica comum na nossa região, mas é crucial disseminar boas práticas de implementação e explorar outras alternativas de engenharia de tráfego. Nossa análise recente mostra que 296 organizações single-homed no IPv6 e 753 no IPv4 estão usando prepending, um número que gera preocupação. Além disso, é alarmante que muitas operadoras fazem mais de cinco prepends, chegando a casos extremos de até 27 no IPv6 e 61 no IPv4, o que não só não tem impacto positivo nas tabelas de roteamento, mas também afeta negativamente a memória, CPU e rede nos BGP Speakers.

Um aspecto notável é o desequilíbrio no uso de prepends entre o IPv4 e o IPv6, o que nos leva a nos perguntar: o que está causando essa diferença? Esta análise busca conscientizar sobre a correta implementação do BGP Prepending.

Por favor, reveja a publicação dos seus prefixos e garanta uma implementação responsável! Você tem algum comentário? Gostaríamos de ouvir você!

Se quiser ver a apresentação realizada sobre este tema no LACNIC 42- LACNOG 2024 acesse
aqui.

Referências:

[1] https://blog.lacnic.net/un-necesario-rfc-sobre-bgp-as-path-prepending/

[2] https://datatracker.ietf.org/doc/html/draft-ietf-grow-as-path-prepending-12 

Inscrever-se
Notificar de

0 Comments
mais antigos
mais recentes Mais votado
Feedbacks embutidos
Ver todos os comentários