Análisis de BGP prepends en la región LAC 2024

09/10/2024

Análisis de BGP prepends en la región LAC 2024

Por Alejandro Acosta, Coordinador de I+D en LACNIC

Introducción

En el siguiente informe  quisiéramos  ahondar en un tema muy específico de las tablas de BGP de nuestra región, particularmente  mostrar un análisis del estado de los BGP Prepends en la región. La intención es hacer una revisión detallada de las tablas BGP tanto en IPv4 como en IPv6 y exhibir los resultados 

BGP Prepending es una técnica de muchos años atrás y ampliamente popular conocida como “AS Path Prepending” se ha concebido como una estrategia clave para influir en la selección de rutas y la optimización del tráfico tanto entrante como saliente de un AS. Dicha técnica es utilizada por todo tipo de operadores de red. ¿Qué tan buena es?, ¿siempre hay que usarla? ¿existe alguna otra posibilidad?

Historia

Como mencionamos hace pocos meses en nuestro blog post [1] “Un necesario RFC sobre BGP: AS Path Prepending”,  dentro de IETF está avanzando el documento llamado “AS Path Prepending” [2] donde LACNIC tuvo la oportunidad de participar y ser colaborador del draft. En el mismo se expresan varias consideraciones a ser tomadas dentro del marco de configurar BGP Prepending. En base a lo anterior nos preguntamos, ¿Estamos haciendo las cosas bien en LAC?. Con este trabajo esperamos responder varias inquietudes.

¿Qué AS Path Prepending?

El AS Path Prepending es una técnica que implica la adición repetitiva del identificador de sistema autónomo (ASN) propio a la lista de ASs en el camino de una ruta BGP (AS_PATH). Su objetivo es influir en la selección de rutas, haciendo que ciertos caminos sean menos atractivos para el tráfico entrante/saliente. En otras palabras, es agregar nuestro sistema autónomo en el AS_PATH y así artificialmente “alejar un prefijo” en Internet.

En el gráfico anterior sin prepends, Router A prefiere ir a C a través de B; sin embargo debido a 3 prepends agregados en B, router A decide alcanzar C a través de D.

La fuente de datos utilizados para este estudio

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

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

Alcance

  • Trabajamos con prefijos de cualquier RIR
  • En el AS_PATH debe aparecer al menos un AS del área de cobertura de LACNIC

Herramientas a utilizar para el presente estudio

  •   Python3
  •   JupyterLabs
  •   Tablas BGP en formato “show ip bgp” en Cisco IOS

Resultados

Número de prefijos totales en la tabla de enrutamiento

Los siguientes datos muestran cuántos prefijos tenía la DFZ (Default Free Zone)  al momento de realizar el siguiente trabajo (tabla de enrutamiento tomada el 22 de Agosto 2024).

IPv6: 214682 (17,995)

IPv4: 978614 (82,01%) 

Cantidad de AS_PATHs analizados

Los datos de este apartado corresponden al total de AS_PATHs contabilizados

IPv6: 822573 = 22,10 %

IPv4:  2900978 = 77,90 %

Prefijos donde al menos un AS en el AS_PATH es de LACNIC

De los AS_PATHs anteriores en cuantos se pueden observar ASs de nuestra región contabilizados

IPv6: 47242 (26,27 %)

IPv4: 132559 ( 73,73 %)

Número de prefijos con Prepends en LAC

Los datos de esta sección muestran el número total de prefijos por familia de direcciones IP donde se obtienen ASNs realizando prepends de nuestra región. 

IPv6: 16822 (32,36% )

IPv4: 35154 (67,64%)

Número de ASs de origen haciendo prepends.

Esto sería relativo al AS_PATH.

La siguiente información corresponde a la cantidad de sistemas autónomos de origen que realizan BGP Prepending. Para la obtención de estos valores no necesariamente el AS_Origin corresponde a LACNIC, si existe algún ASN de LACNIC en el AS_PATH es contabilizado.

IPv6: 34832 (48,58 %)

IPv4: 36863  (51,42%). 

ASes “Single Homed” haciendo prepends.

Recordando que no es buena práctica la realización de prepends en aquellos ASNs conocidos como “Single Home” (sección 5 del draft IETF) se consiguieron los siguientes resultados para ASNs del área de cobertura de LACNIC.

IPv6:  296 (28,21%)

IPv4:  753 (71,79%)

Más de 5 prepends en el AS_PATH

Siguiendo la buena práctica de no utilizar más de 5 prepends (sección 5 del draft en IETF) al configurar BGP Prepending, hemos contabilizado la cantidad de repeticiones de los prepends. Nos enfocamos especialmente en aquellos que superan esta cifra, ya que más del 80% de los destinos se encuentran dentro de esta longitud de AS_PATH.

IPv6: 4177 (51,69%)

IPv4: 3903 (48,31%)

Prefijo con más prepends

La siguiente información corresponde a la longitud máxima de prepends conseguido en IPv6 y en IPv4.

IPv6: 27 prepends (agosto 2024)

IPv4: 61 prepends (agosto 2024)

¿Dónde ocurre el prepend?

Las gráficas inferiores muestran donde generalmente se consiguen los prepends dentro del AS_PATH.

Prepends 16 bits vs 32 bits 

Los presentes datos corresponden a un conteo simple de ASNs repetidos en los AS PATHs según su longitud de bits. ASNs mayores a 65.535 corresponden a ASNs de 32 bits.

16bits32bits
IPv615360328445
IPv411582468970

TOP 10 ranking de repeticiones:

Para la obtención de estos datos se contabilizó cada país del ASN en la tabla de BGP siempre y cuando existiese prepends en el  AS_PATH. 

Para más claridad aquí el algoritmo utilizado:

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
IPv6IPv4
CCRepeticionesCCRepeticiones
 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 hacen BGP Prepending en nuestra región (ratio)

Para calcular la relación de países que hacen más prepend se contabilizó la ocurrencia de los países en cada AS_PATH y posteriormente la misma metodología sólo en aquellos donde existían prepends. Finalmente se divide el contador global entre aquellos con prepends. 

Por ejemplo, para Cuba se consiguieron 12 entradas en la tabla BGP (IPv6), de las cuales 6 tienen prepends, en este caso la relación es 2 (12/6).

Otro país con un número entero fue Curazao, donde se consiguieron 108 entradas (IPv6) en la tabla BGP de las cuales 9 tienen prepends, obteniendo una relación de 12 (108/9)

Lo anterior quiere decir que de cada 2  AS_PATHs en la tabla BGP global en los ASNs de Cuba 1 tiene prepend y por cada 12 AS_PATHs  en la tabla BGP global en los ASNs de Curazao, 1 tiene prepends

El TOP 5 de países con menor relación (hacen más prepends):

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

TOP 5 de países con mayor relación (hacen menos prepends):

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

Conclusiones

El BGP Prepending es una técnica común en nuestra región, pero es crucial difundir buenas prácticas de implementación y explorar otras alternativas de ingeniería de tráfico. Nuestro análisis reciente muestra que 296 organizaciones single-homed en IPv6 y 753 en IPv4 están utilizando prepending, una cifra que genera preocupación. Además, es alarmante que muchos operadores realicen más de cinco prepends, llegando a casos extremos de hasta 27 en IPv6 y 61 en IPv4, lo cual no solo carece de impacto positivo en las tablas de enrutamiento, sino que afecta negativamente la memoria, CPU y red en los BGP Speakers.

Un aspecto notable es el desbalance en el uso de prepends entre IPv4 e IPv6, lo que nos lleva a preguntarnos: ¿qué está provocando esta diferencia? Este análisis busca crear conciencia sobre la correcta implementación del BGP Prepending.

¡Revisen la publicación de sus prefijos y aseguren una implementación responsable!
¿Tienes algún comentario? ¡Nos encantaría escucharte!

Te invito a ver el video de mi presentación durante el evento LACNIC 42 LACNOG 2024.

Referencias

[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 

Subscribe
Notify of

1 Comentarios
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Jorge F. LANGE
5 days ago

Muy claro y didáctico para mi. MUCHAS GRACIAS por este aporte.