En el video se describe, explica y muestra paso a paso como es el comportamiento por defecto en una red BGP, luego con el BGP Multipath tradicional y finalmente con un AS Multipath Relax.
Blog en espanol destinado a diferentes temas tecnicos principalmente en IT y Networking. Se desea cubrir Linux, DNS, DNSSEC, RPKI, BGP, Cisco, Programacion (Bash, Python, etc), Protocolos de Enrutamiento, Seguridad en Redes, VoIP.
jueves, 13 de junio de 2024
lunes, 10 de junio de 2024
Comando oculto en Cisco IOS para BGP: bgp bestpath as-path multipath-relax
Comando oculto
bgp bestpath as-path multipath-relax
¿Qué hace?
Cisco por defecto no hace load-balance o distribuye tráfico entre diferentes ASs, este comando lo permite. Importante, debes también usar el comando maximum-paths
Ejemplo:
router bgp 65001
bgp router-id 1.1.1.1
bgp log-neighbor-changes
bgp bestpath as-path multipath-relax
neighbor 2001:DB8:12::2 remote-as 65002
neighbor 2001:DB8:12:10::2 remote-as 65002
neighbor 2001:DB8:13:11::3 remote-as 65003
!
address-family ipv4
no neighbor 2001:DB8:12::2 activate
no neighbor 2001:DB8:12:10::2 activate
no neighbor 2001:DB8:13:11::3 activate
exit-address-family
!
address-family ipv6
maximum-paths 3
neighbor 2001:DB8:12::2 activate
neighbor 2001:DB8:12:10::2 activate
neighbor 2001:DB8:13:11::3 activate
exit-address-family
Salida después de la implementación
Network Next Hop Metric LocPrf Weight Path
*m 2001:DB8::4/128 2001:DB8:12:10::2
0 65002 65004 ?
*> 2001:DB8:12::2 0 65002 65004 ?
*m 2001:DB8:13:11::3
0 65003 65004 ?
*m 2001:DB8:24:11::/64
2001:DB8:12:10::2
0 65002 65004 ?
*> 2001:DB8:12::2 0 65002 65004 ?
*m 2001:DB8:13:11::3
0 65003 65004 ?
*m 2001:DB8:34::/64 2001:DB8:12:10::2
0 65002 65004 ?
*> 2001:DB8:12::2 0 65002 65004 ?
*m 2001:DB8:13:11::3
0 65003 65004 ?
viernes, 8 de marzo de 2024
BGP Stream: un año de análisis sobre incidentes BGP
BGP Stream: un año de análisis sobre incidentes BGP
04/03/2024
Por Alejandro Acosta, Coordinador de I+D en LACNIC
LACNIC presenta la primera página on line que muestra los incidentes y el análisis de datos de medición del Border Gateway Protocol (BGP) en América Latina y el Caribe.
PRINCIPALES SUCESOS. Además de sumarizar la información se aprecian los tres principales sucesos, los cuales son: posibles secuestros de red, interrupciones BGP y fugas de rutas.
Posibles secuestros de red es la adquisición ilegítima de grupos de direcciones IP al corromper las tablas de enrutamiento de Internet. Tradicionalmente ocurre cuando el Sistema Autónomo anuncia un prefijo que no le pertenece.
Interrupciones (outages) se refiere a la pérdida de visibilidad de prefijos de red por un grupo mayoritario de sensores[1] .
Fugas de rutas como su nombre lo indica, se refiere al anuncio -posiblemente- no intencional de algún prefijo de red vía BGP. Por ejemplo, un peering privado de intercambio de tráfico, alguno de los participantes anuncia el prefijo del peer a Internet. Este caso es el más difícil de detectar por los algoritmos y no consigue identificar algunas de éstas incidencias.
¿Cómo se obtienen los datos?
Esta iniciativa utiliza BGP Stream de Cisco, un proceso automatizado que selecciona los incidentes más grandes e importantes, qué tipo de situación es y cuáles ASNs están involucrados.
La información se publica de forma abierta ya que LACNIC considera que se trata de información importante para que ingenieros, responsables de redes y organizaciones puedan conocer los incidentes más comunes de la región y crear conciencia sobre la situación.
Ello permite la investigación eficiente de eventos, creación rápida de prototipos y de herramientas complejas y aplicaciones de monitoreo a gran escala (por ejemplo, detección de interrupciones de conectividad, ataques o secuestros de BGP).
En base a un sistema desarrollado por el área de I+D de LACNIC, se obtienen los datos de forma cruda, los parcela, identifica, limpia y almacena en una base de datos para posteriormente generar estadísticas y gráficas. Lo anterior ocurre cada 24 horas de forma automatizada.
RESULTADOS. Durante el período de tiempo estudiado -febrero 2023 a febrero 2024- nos encontramos con los siguientes resultados que se muestran en la siguiente gráfica comparando eventos BGP mundiales vs eventos BGP de nuestra región.
Comparando la gráfica mundial versus la gráfica de la región vemos que el orden de incidentes es similar (el mayor es outages, seguido por posibles secuestros de red y finalizando en fugas de prefijos). Adicionalmente hay que destacar que en nuestra región las interrupciones (outages) son más frecuentes en comparación con el total mundial de eventos BGP.
Al analizar la tabla resultados mostrando eventos BGP Mundiales vs eventos BGP de nuestra región, nos encontramos con los siguientes fatos.
TOP 5 países de nuestra región con Interrupciones BGP (Outages)
Outages | |
CC | Events |
BR | 781 |
AR | 99 |
HT | 24 |
MX | 22 |
CL | 17 |
TOP 5 países de nuestra región con secuestros de prefijos (Possible Hijacks)
Expected CC | Detected CC | Events |
BR | BR | 67 |
BR | none | 35 |
PY | BR | 24 |
BR | US | 22 |
BR | CN | 9 |
TOP 3 países de nuestra región con fugas de rutas (Route Leaks)
Origin CC | Leaker CC | Events |
VE | VE | 7 |
MX | MX | 5 |
CL | PA | 2 |
El impacto
En este primer año de funcionamiento desde LACNIC hemos observado una disminución de los incidentes BGP, entre los motivos de estos resultados podemos identificar: a) el despliegue y la adopción de Sistema de Certificación de Recursos (RPKI), b) el Registro de Enrutamiento de Internet de LACNIC (IRR) y la adopción del RFC 9234 (Roles en BGP).
La adopción de dichas herramientas se está dando por mejores prácticas de los operadores y el impulso de MANRS por ISOC.
Conclusiones
Los posibles secuestros de red (BGP Hijacks), interrupciones BGP (Outages) y fugas de rutas son los incidentes BGP más comunes. Durante el primer año de recopilación de datos, se observa una disminución de estos casos; sin embargo, en el futuro cercano no desaparecerán por completo. Es crucial implementar medidas robustas de redundancia y resiliencia en las redes, así como detectar y prevenir tempranamente posibles secuestros para garantizar la integridad y confiabilidad de las rutas de Internet.
En LACNIC, buscamos crear conciencia y motivar a los ISPs y organizaciones a estar preparados para abordar estos incidentes de manera eficiente cuando ocurran.
Referencias
https://stats.labs.lacnic.net/BGP/bgpstream-lac-region.html
lunes, 19 de febrero de 2024
Inocentada: La verdad detrás del coqueteo de QUIC y BGP
jueves, 1 de febrero de 2024
Un necesario RFC sobre BGP: AS Path Prepending
Introducción
Border Gateway Protocol (BGP) desempeña un papel fundamental en la construcción y mantenimiento de las tablas de enrutamiento en Internet, a tal punto que es considerado como el “pegamento” de Internet. En este contexto, 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.
En el presente documento navegaremos a través del draft IETF “AS Path Prepending” [1], el cual recoge varias ideas y conceptos muy valiosos para la comunidad.
Sobre el Draft draft-ietf-grow-as-path-prepending
El Draft se encuentra en discusión dentro del Working Group GROW (Global Routing Operation) desde el año 2020, y actualmente se encuentra en su versión 10.
El draft cuenta con 7 autores: M. McBride, D. Madory, J. Tantsura, R. Raszuk, H. Li., J. Heitz y G. Mishra. En la lista de discusión este draft ha tenido mayoritariamente apoyo (incluido este humilde servidor). Puedes leerlo aquí.
¿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.
¿Para qué y por qué se hace AS PATH Prepending?
Existen muchas razones por las cuales se hace AS PATH prepending. La principal razón indiscutiblemente sería por ingeniería de tráfico la cual a su vez recae en el deseo de influenciar el tráfico entrante y saliente al AS. Es muy probable que el AS desee lograr alguno de los siguientes objetivos:
- distribución de tráfico entre dos o más upstream providers
- tener algún upstream provider de backup
- Sea cual sea el caso, una vez más el objetivo es ingeniería de tráfico.
Hacer prepend o no hacer prepend, he ahí el dilema
Hacer prepend se parece un poco al NAT, es un mal muchas veces necesario.
Como explicaremos, su uso excesivo y a veces innecesario puede convertirse en una vulnerabilidad con implicaciones significativas para la estabilidad de las redes.
¿Qué tiene de malo hacer AS Path Prepending?
Todos sabemos que hacer AS Path Prepending es una técnica muy común para influenciar las decisiones de BGP, sin embargo, el excesivo/mal/ y a veces innecesario uso puede traer resultados negativos. Por ejemplo:
- crear un tráfico subóptimo, es decir, quizás en los enlaces inmediatos logremos nuestro objetivo de una distribución de tráfico, sin embargo, mas alla de tu upstream inmediato el tráfico no se encuentre optimizado para alcanzar nuestro sistema autónomo y viceversa;
- desagregación de prefijos, es muy normal que al momento de querer hacer una ingeniería de tráfico se proceda a desagregar prefijos afectando así el ecosistema de Internet;
- en caso de algun route-leak (fuga de ruta), en condiciones normales nuestras publicaciones tenderían a tener un as-path más corto que el leak, pero si alargamos artificialmente el path haciendo prepend es posible que las rutas fugadas tengan un as-path más corto que las que estamos anunciando legítimamente de nuestro prefijo -legítimo- tendrá menos preferencia en Internet trayendo consigo posibilidades de secuestro de rutas, ataques, y un largo etcétera;
- memoria: como es de esperarse, estos AS Path Prepends son aprendidos por los BGP Speakers consumiendo su memoria. A esto yo también le sumaría a cada prefijo un pequeño consumo de CPU adicional.
Si no recomiendan hacer AS Path Prepend, ¿qué puedo hacer?
Existen muchas técnicas para realizar ingeniería de tráfico en BGP. menciono algunas que aparecen en el draft:
- considera aprovechar las comunidades BGP. Además de las comunidades BGP ampliamente reconocidas, te recomiendo que dialogues con tus pares BGP para optimizar el tráfico. Existen numerosas comunidades BGP implementadas por proveedores, las cuales seguramente podrían beneficiar tu configuración
- Puedes realizar anuncios más específicos hacia tus upstream principales
- Manipular el AS Origin Code; recordemos que este atributo también se encuentra en el algoritmo de selección de rutas de BGP
- Usar MED (Multi Exit Discriminator), un atributo no transitivo, excelente para manipular el tráfico entrante cuando tenemos varios enlaces hacia el mismo proveedor
- Local Preference, otro atributo no transitivo, perfecto para influenciar el tráfico que sale de nuestro sistema autónomo
Todo muy bien, pero aún necesito hacer AS Path Prepend, ¿alguna sugerencia?
El draft menciona las mejores prácticas al momento de realizar prepends, aquí te resumo las mismas:
- solo hacer AS Path Prepend cuando sea imprescindible;
- debido a algunas técnicas de manipulación de tráfico puede ocurrir que al hacer AS Path Prepend no veamos cambios significativos en la distribución del tráfico, por ello es importante conversar con nuestros pares y saber si ellos respetan los prepends;
- utilizar Local Preference en nuestra red;
- no realizar prepends con números de ASs que no son nuestros;
- no hacer prepend si eres single home (esta no está en el draft);
- si realizamos preprends de algún prefijo quizás no es necesario colocar ese prepend hacia todos mis peers;
- no hay necesidad de colocar más de 5 prepends. El motivo es que más del 90% de los destinos se encuentran a 5 o menos ASs de distancia.
(imagen tomada de: https://www.potaroo.net/ispcol/2019-10/prepending.pdf)
Consideraciones finales:
El uso de AS_PATH Prepending es una estrategia valiosa pero debe ser utilizada sólo cuando es necesario y de una manera precavida siguiendo las mejores prácticas. El uso excesivo de prepends puede ocasionar imprevistos a nuestro sistema autónomo desde la perspectiva de tráfico como de seguridad.
Te invitamos a leer el draft completo aquí, y sumarte a la discusión en la lista de LACNOG
Además, te animamos a dejarnos un comentario en este post, para contarnos si haces prepending de tu ASN, por qué y para qué lo usas.
Referencias:
[1] https://datatracker.ietf.org/doc/draft-ietf-grow-as-path-prepending/
martes, 5 de diciembre de 2023
BGP: Ejemplo IPv6 Only entre FRR y OpenBGPD
FRR:
show run
frr# sh run
Building configuration...
Current configuration:
!
frr version 8.1
frr defaults traditional
hostname frr
log syslog informational
service integrated-vtysh-config
!
interface l0
ipv6 address 2001:db8::1/128
exit
!
router bgp 65001
bgp router-id 1.1.1.1
no bgp ebgp-requires-policy
neighbor 2001:db8:12::2 remote-as 65002
!
address-family ipv6 unicast
redistribute connected
neighbor 2001:db8:12::2 activate
neighbor 2001:db8:12::2 soft-reconfiguration inbound
exit-address-family
exit
!
OpenBGPD
Archivo: /etc/bgpd.conf
# macros
ASN="65002"
fib-update yes
log updates
# global configuration
AS $ASN
router-id 2.2.2.2
network 2001:db8::2/128
network inet6 connected
neighbor 2001:db8:12::1 {
descr "epa"
remote-as 65001
announce IPv6 unicast
}
deny from any
deny to any
allow from 2001:db8:12::1
allow to 2001:db8:12::1
sábado, 10 de junio de 2023
Análisis de 7 variables BGP en la región durante el 2022
Contexto de este análisis: Un poco de historia
Internet es un ambiente que cambia, incluso minuto a minuto, segundo a segundo. Cambian las rutas, cambian los sistemas autónomos. Todo esto hace al ecosistema de Internet más divertido e interesante.
Muchos de los que leemos diferentes listas de correo probablemente estemos acostumbrados a recibir un email los viernes llamado: “Weekly Global IPv4 Routing Table Report”, generado por Phillips Smith de NSRC (Network Startup Research Center). Lo cierto es que en ese correo envían datos muy valiosos sobre BGP y el mundo IPv4. Desde LACNIC nos preguntamos ¿qué podemos hacer con esa información? Y la respuesta fue: ¡vamos a procesarla!
Con todo esto en mente, construimos un parser para rescatar diferentes variables en el mundo de BGP de la lista de correo de LACNOG [1] con la intención de construir un histórico de diferentes variables en el mundo BGP que abarque varios años. Con esta información nos preguntamos ¿Cuánto cambiaron las estadísticas de BGP en nuestra región durante el 2022? Aquí te damos la respuesta.
Los datos utilizados
Los datos utilizados para el presente análisis son tomados exclusivamente de la lista de correo de LACNOG en: https://mail.lacnic.net/mailman/listinfo/lacnog, filtrado por los emails con el título: “Weekly Global IPv4 Routing Table Report”
Alcance
Este análisis abarca únicamente el área de cobertura de LACNIC durante el periodo que comprende desde el 1 de enero al 31 de diciembre de 2022. Es importante destacar que los datos son exclusivamente en el ámbito de IPv4.
Las variables estudiadas fueron:
- Prefijo anunciado por los AS de la región de LACNIC
- AS de origen de la región de LACNIC presentes en la tabla de enrutamiento de Internet
- AS de origen de la región de LACNIC que anuncian un solo prefijo
- AS de la región de LACNIC que brindan tránsito y que están presentes en la tabla de enrutamiento de Internet
- Número de direcciones de LACNIC anunciadas a Internet
- Factor de desagregación de LACNIC
- Prefijos de LACNIC por ASN
¿Por qué estas variables?
Las variables expresadas anteriormente son las que consideramos principales debido a que representan el estado de BGP en algún momento determinado, con las mismas y colocándolas en una línea de tiempo podemos conocer con precisión cambios importantes en nuestra región y a su vez, muchas de las otras variables mencionadas en el informe semanal son una sencilla matemática de las que ya tenemos.
Ejemplo de los datos procesados (tomado [2])
Resumen de datos de la región de LACNIC
——————————
Prefixes being announced by LACNIC Region ASes: 117404
Total LACNIC prefixes after maximum aggregation: 28499
LACNIC Deaggregation factor: 4.12
Prefixes being announced from the LACNIC address blocks: 116794
Unique aggregates announced from the LACNIC address blocks: 48887
LACNIC Region origin ASes present in the Internet Routing Table: 10986
LACNIC Prefixes per ASN: 10.63
LACNIC Region origin ASes announcing only one prefix: 2672
LACNIC Region transit ASes present in the Internet Routing Table: 2278
Average LACNIC Region AS path length visible: 4.9
Max LACNIC Region AS path length visible: 55
Number of LACNIC region 32-bit ASNs visible in the Routing Table: 8784
Number of LACNIC addresses announced to Internet: 176436224
Equivalent to 10 /8s, 132 /16s and 52 /24s
LACNIC AS Blocks 26592-26623, 27648-28671, 52224-53247, 61440-61951, 64099-64197, 262144-273820 + ERX transfers
LACNIC Address Blocks 177/8, 179/8, 181/8, 186/8, 187/8, 189/8, 190/8, 191/8, 200/8, 201/8,
Procesamiento de los datos
Los datos fueron procesados en su totalidad utilizando Python3 sobre Linux. Particularmente la librería beautifulsoup [3] fue muy útil para realizar el scraping de la lista de correo. Las gráficas son generadas por Google Charts a través de su API.
Resultados:
- Prefijo anunciado por los AS de la región de LACNIC
- AS de origen de la región de LACNIC presentes en la tabla de enrutamiento de Internet
Este indicador representa la cantidad de sistemas autónomos asignados por LACNIC que son visibles en la tabla global de Internet (DFZ – Default Free Zone). Se aprecia una gráfica muy constante, con un muy leve crecimiento de apenas 1%, aumentando 117 ASs en un periodo de 364 días, comenzando el 1 de enero de 2022 con 10.893 y finalizando el 31 de diciembre del mismo año en 11.010.
- AS de la región de LACNIC que brindan tránsito y que están presentes en la tabla de enrutamiento de Internet
- Número de direcciones de LACNIC anunciadas a Internet
- Factor de desagregación de LACNIC
El factor de desagregación puede sonar complicado, pero a su vez es un valor a tener muy en cuenta. Este es el típico caso donde menos quiere decir más. En esta oportunidad la región de LACNIC termina el año (31/Dic/2022) con un factor de desagregación de 4.13 comenzando con 4.09 (1/Enero/2022), lo que significa que ocurrió un aumento de 0,04. Un factor de desagregación más alto implica que se están anunciando más prefijos específicos para la dirección de destino/padre, lo que puede proporcionar una granularidad y precisión mayores en las decisiones de enrutamiento. Sin embargo, un factor de desagregación más alto también puede llevar a un aumento en los requisitos de memoria y procesamiento para los routers. Lo ideal en este caso es que los operadores de red revisen sus anuncios y que no realizar anuncios sin necesidad, por ejemplo, minimizar el subnetting en el anuncio.
Para que veamos el impacto, una red con 10.000 anuncios y con un factor de 4 de desagregación, en el caso utópico que lleven el factor 1, tan solo tendría 2.500 anuncios.
- Prefijos de LACNIC por ASN
- Se observa un crecimiento constante de un 5% de los prefijos anunciados a Internet por sistemas autónomos de LACNIC durante 2022 (de 111.641 a 117.498)
- El número de sistemas autónomos asignados por LACNIC que son visibles en la tabla global de Internet muestra una gráfica constante con un leve crecimiento del 1%. Durante el año, se incrementaron en 117, pasando de 10,893 a 11,010 ASes.
- Estabilidad en los ASes de origen de LACNIC que anuncian solo un prefijo: La cantidad de sistemas autónomos asignados por LACNIC que anuncian únicamente un prefijo a la tabla global de Internet se mantuvo relativamente estable a lo largo del año. Hubo un aumento del 0.2%, pasando de 2,662 a 2,668 ASes que anuncian solo un prefijo.
- Se aprecia un crecimiento del 4.2% en la cantidad de sistemas autónomos que realizan tránsito a otros sistemas autónomos. Durante el año, se agregaron 92 ASes de LACNIC que realizan tránsito, pasando de 2,188 a 2,280.
- En cuanto a la cantidad de direcciones IP visibles en la DFZ y teniendo en cuenta que no son prefijos sino números de IP podríamos decir que se mantiene estable. La disminución es despreciable. Quizás la conclusión principal es que no han aumentado pese al agotamiento, lo que daría a entender que no hay nuevos bloques que se hayan comenzado a anunciar
- El factor de desagregación se mantuvo sin casi variaciones, pero tuvimos al final un aumento pequeño, como se mencionó anteriormente esto no es positivo para el ecosistema de Internet.
Una mejora práctica en el Transporte DNS sobre UDP en IPv6
Por Hugo Salgado y Alejandro Acosta Introducción y planteamiento del problema En el presente documento queremos discutir sobre un draft (bor...
-
Debido al crecimiento moderado que ha tenido el presente blog se me ocurrió añadir/integrar las estadisticas de google analytics a mi blog. ...
-
Introduccion: En algunas ocasiones es necesario "bajar" o deshabilitar iptables en nuestro Linux, el procedimiento depende de...
-
Saludos, Lo primero que debemos de hacer para quitar el stacking entre los switches es desconectar los cables Stack que los unen.... Es buen...