Análisis de BGP prepends en la región LAC 2024
09/10/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
- Extended LACNIC delegated: https://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-extended-latest
- Tablas BGP IPv4 e IPv6 tomadas de:
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.
16bits | 32bits | |
IPv6 | 153603 | 28445 |
IPv4 | 115824 | 68970 |
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
IPv6 | IPv4 | |||
CC | Repeticiones | CC | Repeticiones | |
MX | 106710 | BR | 76110 | |
BR | 35460 | AR | 29804 | |
CO | 30549 | CO | 26892 | |
AR | 3074 | MX | 10239 | |
PA | 1876 | CR | 5811 | |
EC | 943 | PA | 5172 | |
PE | 859 | CL | 4697 | |
DO | 408 | EC | 4038 | |
CL | 281 | VE | 3605 | |
NI | 272 | PE | 2956 |
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):
IPv6 | IPv4 | |||
CC | Ratio | CC | Ratio | |
MX | 1,75 | BZ | 2,6 | |
CU | 2 | AW | 3,04 | |
BO | 3,4 | PY | 3,07 | |
BZ | 3,2 | AR | 3,3 | |
SV | 6 | PA | 3,53 |
TOP 5 de países con mayor relación (hacen menos prepends):
IPv6 | IPv4 | |||
CC | Ratio | CC | Ratio | |
SR | 60 | CW | 45,11 | |
GY | 53 | CU | 37,5 | |
CR | 36,61 | SV | 14,96 | |
GT | 28,7 | UY | 11,98 | |
CL | 26,15 | MX | 11,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
Las opiniones expresadas por los autores de este blog son propias y no necesariamente reflejan las opiniones de LACNIC.
Muy claro y didáctico para mi. MUCHAS GRACIAS por este aporte.
Excelente trabajo del maestro Don Alejandro Acosta. El barrido de la Full Routing Table y su análisis, tanto en IPv4 como en IPv6 siempre arrojará información interesante y de mucha utilidad. De allí lo resaltante de este estudio.