El CAKE en MikroTik representa un avance significativo en la gestión de colas, diseñado para optimizar la calidad de servicio (QoS) en redes de alta demanda. Desarrollado como una evolución de fq_codel, el algoritmo CAKE (Common Applications Kept Enhanced) integra múltiples mecanismos de colas en un único sistema. Opera principalmente en las capas 3 y 4 del modelo OSI, gestionando tráfico IP y diferenciando flujos TCP y UDP. Si bien es más demandante que las colas simples o PCQ, CAKE ofrece una solución unificada para la equidad, la reducción de latencia y el control de tráfico.
Para una gestión de tráfico más sencilla, especialmente en redes con requisitos menos complejos, se puede utilizar Simple Queues. Esta herramienta se encuentra en el menú Queues -> Simple queues y permite definir límites de ancho de banda por regla (por ejemplo, un límite de 5 Mbps por conexión). Sin embargo, para priorizar servicios específicos, como el tráfico RDP (Escritorio Remoto), se recurre a Queue Tree. Este método permite establecer prioridades detalladas para diferentes tipos de tráfico.
Priorización de Tráfico con Queue Tree y Mangle
La priorización de tráfico implica identificar y marcar paquetes específicos para que el router los gestione de manera diferente. Esto se realiza en la tabla MANGLE del firewall de RouterOS. Para optimizar el rendimiento, es recomendable aplicar dos marcas: una por conexión y otra por paquete, utilizando la marca de la conexión.
Por ejemplo, para marcar el tráfico HTTP (puertos 80, 443, 8080, 8181) se procede de la siguiente manera:
/ip firewall mangle# Marcar conexión HTTPadd action=mark-connection chain=prerouting comment="HTTP CON" connection-state=new new-connection-mark=http-con port="80,443,8080,8181" protocol=tcp# Marcar paquete HTTP usando la marca de conexiónadd action=mark-packet chain=forward comment=HTTP connection-mark=http-con new-packet-mark=http passthrough=no# Marcar paquetes de internet no marcados previamente con una marca "no-mark"add action=mark-packet chain=forward comment="OTHER INTERNET" connection-mark=no-mark new-packet-mark=other-internet passthrough=no
Es importante especificar passthrough=no en la regla de marcado de paquete para optimizar el uso del CPU. No es necesario especificar la interfaz en este punto, ya que se hará en los Queue Trees.
A continuación, se configuran las colas HTB (Hierarchical Token Bucket) para la priorización:
/queue tree# Cola para el tráfico total de bajada (ej: bridge-local)add limit-at=90M max-limit=90M name="Total download" parent=bridge-local priority=1 queue=default# Cola para el tráfico total de subida (ej: ether1-gateway)add limit-at=20M max-limit=20M name="Total upload" parent=ether1-gateway priority=1 queue=default# Cola hija para tráfico web (HTTP) de bajadaadd limit-at=20M max-limit=70M name=HTTP_D packet-mark=http parent="Total download" priority=3 queue=default# Cola hija para tráfico web (HTTP) de subidaadd limit-at=1M max-limit=15M name=HTTP_U packet-mark=http parent="Total upload" priority=3 queue=default# Colas para tráfico de internet no gestionado directamenteadd limit-at=10M max-limit=20M name=OTHER_D packet-mark=other-internet parent="Total download" priority=4 queue=defaultadd limit-at=1M max-limit=5M name=OTHER_U packet-mark=other-internet parent="Total upload" priority=4 queue=default
Notas importantes sobre Queue Trees:
- Se recomienda utilizar aproximadamente el 90% del tráfico total de cada interfaz como límite en las colas padre para asegurar que las reglas se apliquen.
- El tráfico se gestiona principalmente al salir del router, por lo que la elección adecuada de las interfaces de subida/bajada es crucial.
- limit-at define la tasa garantizada para una cola, y no debe exceder el límite global de la cola padre.
- max-limit es el ancho de banda que una cola puede "tomar prestado" de la cola padre una vez alcanzado su limit-at, siempre que haya ancho de banda disponible.
- Las colas con la marca "other-internet" son esenciales para asignar una prioridad al tráfico no gestionado directamente.

Límites de Velocidad por Usuario con PCQ
Para establecer límites de velocidad individuales por usuario, se utiliza el algoritmo PCQ (Per Connection Queue). Este método divide el ancho de banda de manera dinámica y equitativa entre los clientes.
Primero, se crean los tipos de cola PCQ para subida y bajada:
/queue type# Tipo de cola PCQ para bajada (clasificador por dirección IP de destino)add kind=pcq name=PCQ_download_5mb pcq-classifier=dst-address pcq-rate=5M# Tipo de cola PCQ para subida (clasificador por dirección IP de origen)add kind=pcq name=PCQ_upload_1mb pcq-classifier=src-address pcq-rate=1M
Luego, se crea una Simple Queue que utiliza estos tipos de cola para un segmento de red específico:
/queue simple# Límite global compartido: 35M bajada / 5M subida# Segmento de red de los clientes: 10.10.12.0/24add limit-at=5M/35M max-limit=5M/35M name=5MB_down_1MB_up queue=PCQ_upload_1mb/PCQ_download_5mb target=10.10.12.0/24 total-queue=default
Esta configuración asigna un máximo de 1 Mbps de subida y 5 Mbps de bajada por usuario (IP). Si la suma total del tráfico de todos los clientes excede los límites globales (5M/35M), el ancho de banda disponible se ecualizará entre los clientes activos.
Fundamentos Teóricos de PCQ
Concepto y Funcionamiento: PCQ divide el ancho de banda en colas dinámicas. Cada cliente recibe un límite de velocidad definido de manera equitativa, independientemente del número de usuarios conectados. La clasificación se basa en parámetros como la dirección IP de origen, de destino o puertos.
Parámetros Clave:
- Rate: Velocidad máxima asignada por cliente.
- Limit: Número de paquetes en cola por usuario.
- Total Limit: Capacidad global de paquetes en el sistema.
- Classifier: Criterio de clasificación (src-address, dst-address, src-port, dst-port).
Ventajas de Usar PCQ en MikroTik
- Automatización y Escalabilidad: Permite administrar cientos de usuarios sin crear colas individuales, reduciendo la carga operativa.
- Control de Equidad: Cada usuario obtiene la misma proporción de ancho de banda, lo que evita saturaciones en horas pico.
- Flexibilidad en Aplicación: Se puede usar con Simple Queues, Queue Trees o en combinación con Mangle.
Desventajas y Limitaciones
- Consumo de CPU: En routers con hardware limitado, el uso intensivo de PCQ puede aumentar la carga de procesamiento, especialmente con miles de conexiones simultáneas.
- Configuración Incorrecta: Un mal uso de los parámetros, como el classifier, puede generar asignaciones ineficientes de ancho de banda.

Casos de Uso Reales
- ISP y WISP: Un proveedor de Internet puede implementar PCQ para asignar 5 Mbps de descarga y 2 Mbps de subida por cliente, asegurando igualdad de servicio incluso con saturación de la red.
- Redes Corporativas: PCQ puede dividir el ancho de banda entre diferentes departamentos, asegurando una distribución justa.
Ejercicios Prácticos: Configuración de PCQ
Este ejercicio muestra cómo configurar PCQ en MikroTik para distribuir 64 kbps de descarga y 32 kbps de subida por cliente, utilizando dos métodos alternativos.
1. Definición de Tipos de Colas PCQ
Se crean dos tipos de cola PCQ. La columna "download" aplica dst-address para limitar la descarga, y la columna "upload" usa src-address para controlar la subida.
/queue typeadd name="PCQ_download" kind=pcq pcq-rate=64000 pcq-classifier=dst-addressadd name="PCQ_upload" kind=pcq pcq-rate=32000 pcq-classifier=src-address
Con esta configuración, PCQ en MikroTik crea automáticamente sub-colas por IP sin intervención adicional.
2. Implementación con Queue Tree
Se marcan paquetes según la interfaz. Se usa in-interface=ether2-LAN para subida y in-interface=ether1-WAN para descarga.
/ip firewall mangleadd chain=prerouting action=mark-packet in-interface=ether2-LAN new-packet-mark=client_uploadadd chain=prerouting action=mark-packet in-interface=ether1-WAN new-packet-mark=client_download/queue treeadd parent=global queue=PCQ_download packet-mark=client_downloadadd parent=global queue=PCQ_upload packet-mark=client_upload
Este modelo permite que PCQ en MikroTik gestione cargas bajo congestión sin reglas individuales por cliente.
3. Alternativa con Simple Queues
Para una vía más sencilla, se utiliza una sola línea para aplicar PCQ a toda la red.
/queue simpleadd target=192.168.0.0/24 queue=PCQ_upload/PCQ_download
Esto reduce la complejidad y sigue garantizando la equidad en la distribución del ancho de banda.
¡Optimiza el Ancho de Banda en tu Router MikroTik con PCQ! 🚀
Buenas Prácticas y Recomendaciones
- Utilizar classifier=src-address para controlar subidas y dst-address para descargas.
- Ajustar el rate según el plan contratado por cliente.
- Monitorear el uso de CPU en routers de gama baja.
- Combinar PCQ con Firewall Mangle para una segmentación de tráfico más precisa.
Errores Comunes y Cómo Evitarlos
- Classifier incorrecto: Puede asignar ancho de banda de forma desigual.
- Rate demasiado bajo: Genera latencia elevada y una mala experiencia de usuario.
- No usar límites globales: Puede provocar saturación de la red.