Como instalar telnet en Alpine Linux (muy común en contenedores docker)
#apk update
#apk add busybox-extras
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.
Como instalar telnet en Alpine Linux (muy común en contenedores docker)
#apk update
#apk add busybox-extras
Paso 1: Instalar Multipass de Canonical
$brew install multipass
Paso 2: Instalar la VM llamada docker
$multipass launch docker --name mydocker
Paso 3: Conectarse a la nueva VM
$multipass shell mydocker
Paso 4: Dentro de la VM instalar ContainerLab
$sudo su
#bash -c "$(curl -sL https://get.containerlab.dev)"
Vamos a probar con esta sencilla topología back2back de dos equipos Linux con FRR
-- 2-frr-back2back.yml --
name: ipv6-ws
topology:
kinds:
linux:
image: ghcr.io/hellt/network-multitool
nodes:
ROUTERS ###
R1:
kind: linux
image: quay.io/frrouting/frr:8.4.1
exec:
- "sysctl -w net.ipv6.conf.all.forwarding=1"
- "ip address add dev eth1 2001:db8:ffab::1/64"
R2:
kind: linux
image: quay.io/frrouting/frr:8.4.1
exec:
- "ip address add dev eth1 2001:db8:ffab::2/64"
- "sysctl -w net.ipv6.conf.all.forwarding=1"
links:
- endpoints: ["R1:eth1", "R2:eth1"]
--- yml --
Paso 5: Levantemos la topología con clab:
clab dep -t 2-frr-back2back.yml
Paso 6: finalmente vamos a conectarnos a una de las VMs dentro de ContainerLAB
docker exec -i -t clab-ipv6-ws-R2 bash
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:
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:
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:
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:
(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/
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
Por Hugo Salgado y Alejandro Acosta Introducción y planteamiento del problema En el presente documento queremos discutir sobre un draft (bor...