El problema fundamental que ranet3 aborda es la creación de redes privadas virtuales (VPN) de malla de alto rendimiento y baja latencia, con capacidades avanzadas de enrutamiento y dirección de tráfico, utilizando exclusivamente protocolos de red estándar. En un panorama donde las soluciones SD-WAN propietarias son comunes, ranet3 busca demostrar que una arquitectura basada en RFCs abiertos puede ofrecer ventajas significativas en interoperabilidad y rendimiento.

La necesidad de soluciones SD-WAN de malla ha crecido con la descentralización de la infraestructura y la proliferación de la computación en la nube y el edge. Las arquitecturas tradicionales de VPN punto a punto o hub-and-spoke introducen latencia y puntos únicos de fallo. ranet3 propone una solución que no solo asegura el tráfico (IPsec) sino que también optimiza dinámicamente las rutas (Babel con RTT) y permite un control granular del flujo (SRv6), todo ello mientras mantiene la compatibilidad con el ecosistema de red existente.

Históricamente, las VPN se han implementado principalmente en el kernel para maximizar el rendimiento. Sin embargo, ranet3 desafía esta noción al lograr un rendimiento superior en userspace para ciertos escenarios, lo que sugiere que las optimizaciones en el espacio de usuario, como el uso eficiente de la pila de red y el procesamiento de paquetes, pueden compensar la sobrecarga del contexto de usuario/kernel.

Arquitectura del Sistema

ranet3 implementa una arquitectura de SD-WAN de malla distribuida, donde cada nodo actúa como un par en la red. La capa de transporte se basa en ESP (RFC 4303) en modo túnel sobre UDP (RFC 3948), lo que permite la encapsulación y el cifrado del tráfico IP. Para el establecimiento de sesiones seguras, ranet3 utiliza IKEv2 (RFC 7296) con intercambio de claves híbrido ML-KEM (FIPS 203) según RFC 9370, garantizando seguridad post-cuántica.

El componente de enrutamiento es un speaker Babel (RFC 8966) embebido, un protocolo de enrutamiento de vector de distancia para redes de baja potencia y baja latencia. ranet3 extiende Babel con métricas de Round Trip Time (RTT) (RFC 9616) y rutas específicas de origen (RFC 9079), permitiendo que el tráfico siempre tome el camino más rápido disponible, adaptándose dinámicamente a la congestión y fallos de enlace. La medición continua de RTT y la penalización por pérdida de paquetes son clave para esta adaptabilidad.

Para la dirección de tráfico, ranet3 implementa Segment Routing sobre IPv6 (SRv6) (RFC 8986) en userspace. Esto permite definir políticas de enrutamiento basadas en prefijos de origen/destino, dirigiendo el tráfico a través de una secuencia específica de "waypoints" o segmentos de red. La implementación en userspace de SRv6 es notable porque permite que esta funcionalidad opere incluso en sistemas operativos sin soporte nativo de kernel para SRv6, como macOS, utilizando el kernel seg6local de Linux para actuar sobre los encabezados SRv6 generados por ranet3.

Flujo de Datos Cifrados y Enrutados

  1. 1 Aplicación Origen Genera tráfico IP.
  2. 2 ranet3 (Userspace) Captura el paquete, aplica políticas SRv6, encapsula en ESP/UDP y cifra.
  3. 3 Sistema Operativo Origen Envía el paquete UDP cifrado a través de la interfaz de red.
  4. 4 Red Subyacente Transporta el paquete UDP cifrado al destino.
  5. 5 Sistema Operativo Destino Recibe el paquete UDP cifrado.
  6. 6 ranet3 (Userspace) Descifra el paquete ESP/UDP, desencapsula y aplica políticas SRv6 (si aplica).
  7. 7 Kernel Linux (seg6local) Procesa encabezados SRv6 para enrutamiento local o reenvío.
  8. 8 Aplicación Destino Recibe el tráfico IP original.

Flujo de Establecimiento de Sesión y Enrutamiento

  1. 1 Nodo A Inicia intercambio IKEv2 con ML-KEM para establecer sesión segura.
  2. 2 Nodo B Responde a IKEv2, negocia parámetros y establece claves de sesión.
  3. 3 Nodos A y B Establecen túnel IPsec (ESP sobre UDP).
  4. 4 Nodos A y B Inician Babel para intercambiar rutas y métricas RTT.
  5. 5 Nodos A y B Actualizan tablas de enrutamiento con rutas óptimas basadas en RTT.
  6. 6 Nodos A y B Aplican políticas SRv6 para dirigir tráfico específico a través de waypoints.
CapaTecnologíaJustificación
networking IPsec ESP (RFC 4303) over UDP (RFC 3948) Proporciona cifrado, autenticación e integridad para el tráfico de datos en modo túnel, encapsulado sobre UDP para facilitar el NAT traversal. vs WireGuard, OpenVPN
security IKEv2 (RFC 7296) with ML-KEM (FIPS 203) hybrid key exchange (RFC 9370) Gestiona el establecimiento de asociaciones de seguridad (SA) para IPsec, incluyendo autenticación y negociación de claves, con un enfoque en seguridad post-cuántica. vs IKEv1
networking Babel (RFC 8966) with RTT metrics (RFC 9616) and source specific routes (RFC 9079) Protocolo de enrutamiento dinámico de vector de distancia que calcula las rutas más rápidas basándose en métricas de RTT y pérdida de paquetes, adaptándose a cambios en la topología. vs OSPF, BGP, RIP
networking SRv6 (RFC 8986) Permite el enrutamiento basado en políticas, dirigiendo el tráfico a través de una secuencia de segmentos (waypoints) definidos por el usuario, implementado en userspace. vs MPLS, Policy-Based Routing (PBR) tradicional

Trade-offs

Ganancias
  • ▲ Throughput (ranet3 userspace vs kernel solutions)
  • ▲ CPU efficiency (ranet3 userspace vs kernel solutions)
  • ▲ Interoperability
  • ▲ Dynamic routing based on RTT
  • ▲ Policy-based traffic steering (SRv6 in userspace)
Costes
  • △ Overhead of userspace packet processing (compared to theoretical zero-copy kernel path)

Fundamentos Teóricos

El concepto de enrutamiento dinámico basado en métricas de enlace, como el RTT, tiene sus raíces en los primeros algoritmos de enrutamiento de vector de distancia, como RIP, pero Babel (RFC 8966) refina estos principios para entornos más dinámicos y de baja latencia. La incorporación de métricas de RTT continuas y penalizaciones por pérdida de paquetes se alinea con los principios de los algoritmos de enrutamiento adaptativo que buscan optimizar el rendimiento de la red en tiempo real, un área de investigación activa desde los inicios de ARPANET.

La utilización de IKEv2 con intercambio de claves híbrido ML-KEM (FIPS 203) refleja la investigación en criptografía post-cuántica, un campo que busca desarrollar algoritmos resistentes a ataques de computadoras cuánticas. El RFC 9370, que especifica el uso de ML-KEM en IKEv2, es un resultado directo de años de investigación académica y estandarización en seguridad criptográfica.

Segment Routing (SRv6) es una evolución de los principios de enrutamiento de origen y enrutamiento por etiquetas (MPLS), que permite una programación de red más flexible y granular. Su desarrollo se basa en la teoría de grafos y la optimización de caminos, permitiendo a los operadores definir rutas explícitas a través de la red, un concepto explorado en la literatura académica sobre redes programables y Software-Defined Networking (SDN) desde principios de los 2000.