WireGuard y CAKE en un MikroTik hEX 750Gr3

Siguiendo con el análisis del impacto del uso de WireGuard en MikroTik, esta vez evaluamos un hEX 750Gr3 administrando la red de una empresa, con dos servicios de internet segmentados para diferentes redes.

📌 Escenario Técnico

El router NO está haciendo balanceo PCC, pero sí maneja:
2 servicios de internet 🚀
2 redes segmentadas mediante interfaces dedicadas:

  • Ingeniería → Tráfico directo a internet.
  • Administración → Todo el tráfico pasa por una VPN WireGuard.
    Control de ancho de banda mediante Simple Queues con CAKE.

📊 Observaciones clave del rendimiento

1️⃣ Carga de CPU y WireGuard 🔥

  • El uso de CPU es muy alto (66%), considerando que el tráfico total no supera los 100 Mbps.
  • En este router, WireGuard NO cuenta con aceleración de hardware, lo que significa que la encriptación y desencriptación ocurre completamente en CPU.
  • WireGuard se basa en el cifrado ChaCha20-Poly1305, que aunque es eficiente, en arquitecturas MIPS (como este 750Gr3) consume bastantes ciclos de CPU.
  • La alta carga en chacha_mips confirma el impacto del cifrado en el rendimiento del equipo.

2️⃣ CAKE y su impacto en CPU y RAM 🧠

  • Se está utilizando CAKE (Common Applications Kept Enhanced) como algoritmo de colas dentro de Simple Queues.
  • CAKE consume considerablemente más CPU y memoria en comparación con HTB (Hierarchical Token Bucket) y SFQ (Stochastic Fair Queuing).
  • Razones por las que CAKE es más demandante:
    🔹 Implementa AQM (Active Queue Management), lo que implica más procesamiento en cada paquete.
    🔹 Soporta diffserv (diferenciación de tráfico) y detección de congestión con ECN (Explicit Congestion Notification).
    🔹 Mantiene múltiples colas internas para mejorar la equidad entre flujos y latencias.

3️⃣ Firewall y su impacto adicional 🛡️

  • Se observa un alto uso de CPU en la categoría de firewall.
  • Debido a la segmentación de tráfico y la VPN, el firewall tiene que procesar más reglas para el control de acceso y ruteo.
  • Las reglas aplicadas para marcar tráfico afectan aún más el rendimiento.

🔎 Consideraciones y soluciones para optimizar el rendimiento

✔️ Migrar a un hardware más potente 🔄

  • El RB5009 (ARM64) es una mejor opción, ya que tiene mayor capacidad de procesamiento y maneja WireGuard con menor impacto en CPU.
  • Para despliegues más grandes, considerar CHR en un servidor con x86 para optimizar la VPN.

✔️ Optimización de CAKE y colas 📊

  • Si el objetivo es equidad en la distribución del ancho de banda, CAKE es ideal, pero en routers con procesadores débiles como MIPS, HTB+SFQ podría ser más eficiente.
  • Revisar si realmente se necesita CAKE o si FQ-CoDel es suficiente.

✔️ Reducir el impacto del firewall 🛠️

  • Reordenar las reglas más usadas al inicio para mejorar la eficiencia.
  • Evitar marcas de conexión innecesarias.

✔️ Distribuir la carga de VPN 🔗

  • Si hay múltiples dispositivos en la red, configurar WireGuard en un servidor dedicado y hacer offload del tráfico VPN para liberar CPU en el MikroTik.

🚀 El MikroTik hEX 750Gr3 (MIPS) es un router robusto para tareas básicas de ruteo y firewall, pero al agregar WireGuard + CAKE, la CPU se convierte en un cuello de botella. Si el tráfico VPN es alto, es recomendable optar por hardware con mejor rendimiento en cifrado y manejo de colas.

📌 ¿Te ha pasado algo similar con WireGuard o CAKE en MikroTik? 🤔
Escríbenos en el grupo https://www.facebook.com/groups/aportesisp