Uno de los errores mas comunes en ISP MikroTik es limitar a cada cliente a su plan de forma rigida, desperdiciando el ancho de banda de los clientes que no lo estan usando en ese momento. Con Queue Tree y HTB puedes configurar que el enlace se aproveche al maximo: cada cliente tiene velocidad garantizada (CIR), pero si otros clientes estan inactivos, los activos pueden usar su ancho libre automaticamente hasta un maximo definido (MIR). Sin scripts, sin intervencion manual.

El concepto clave: CIR y MIR

CIR (Committed Information Rate) = velocidad minima garantizada siempre, incluso en hora pico. MIR (Maximum Information Rate) = velocidad maxima que puede alcanzar el cliente cuando hay ancho libre en el enlace. En MikroTik: CIR = limit-at, MIR = max-limit en Queue Tree.

1. Como funciona la comparticion dinamica

El mecanismo es el siguiente: tienes un enlace de 100 Mbps con 20 clientes en plan de 10 Mbps cada uno (overbooking 2:1). A las 3 AM solo hay 2 clientes activos. Con limites rigidos cada uno usa maximo 10 Mbps y los 80 Mbps restantes se desperdician. Con comparticion dinamica esos 2 clientes pueden usar hasta 40 o 50 Mbps cada uno.

ENLACE WAN: 100 Mbps total | [Cola padre global: max=100M] | +-----+-----+-----+-----+ | | | | | [C1] [C2] [C3] ... [C20] CIR=5M CIR=5M CIR=5M CIR=5M MIR=30M MIR=30M MIR=30M MIR=30M Escenario hora pico (10 clientes activos): Cada cliente activo recibe: 5M garantizados + hasta 30M si hay libre Escenario hora valle (2 clientes activos): Cada cliente activo puede usar hasta 30M (MIR) libremente

2. Arquitectura Queue Tree con HTB

La implementacion correcta usa una jerarquia de dos niveles: una cola padre que define el total del enlace, y colas hija (una por cliente o por plan) con limit-at (CIR) y max-limit (MIR).

HTB (Hierarchical Token Bucket) es el algoritmo que hace posible esto: cuando una cola hija no usa su CIR, ese ancho libre queda disponible en el pool de la cola padre, y otras colas hija pueden tomarlo hasta su MIR.

3. Configuracion basica: un plan, multiples clientes

Ejemplo con un enlace de 100 Mbps y clientes en plan de 10 Mbps, con CIR de 5 Mbps garantizados y MIR de 25 Mbps cuando hay disponibilidad:

RouterOS — Queue Tree CIR/MIR paso a paso
# PASO 1: Marcar el trafico de cada cliente con mangle
# Esto permite que Queue Tree identifique a quien pertenece cada paquete

# Marcar conexiones de download (destino = IP del cliente)
/ip firewall mangle add     chain=forward     dst-address=10.10.0.0/24     action=mark-packet     new-packet-mark=clientes-down     passthrough=no     comment="marcar trafico download clientes"

# Marcar conexiones de upload (origen = IP del cliente)
/ip firewall mangle add     chain=forward     src-address=10.10.0.0/24     action=mark-packet     new-packet-mark=clientes-up     passthrough=no     comment="marcar trafico upload clientes"

# PASO 2: Cola padre global (limita el total del enlace)
/queue tree add     name=global-down     parent=global     packet-mark=clientes-down     max-limit=100M     queue=default     comment="limite total descarga enlace WAN"

/queue tree add     name=global-up     parent=global     packet-mark=clientes-up     max-limit=50M     queue=default     comment="limite total subida enlace WAN"

# PASO 3: Cola hija por cliente (CIR=5M garantizado, MIR=25M maximo)
# limit-at = CIR (garantizado aunque este congestionado)
# max-limit = MIR (maximo cuando hay ancho libre)

/queue tree add     name=cliente-001-down     parent=global-down     dst-address=10.10.0.2/32     limit-at=5M     max-limit=25M     priority=5     comment="cliente001 down CIR=5M MIR=25M"

/queue tree add     name=cliente-001-up     parent=global-up     src-address=10.10.0.2/32     limit-at=2M     max-limit=10M     priority=5     comment="cliente001 up CIR=2M MIR=10M"
Mangle en forward deshabilita L3HW en CRS

En switches CRS326, CRS354, CRS317 con Marvell L3HW: agregar reglas mangle en chain=forward deshabilita el hardware offloading. Aplica Queue Tree y mangle solo en el router upstream, nunca en el switch CRS que hace forwarding de capa 3.

4. Version con PPPoE: cola por sesion activa

Para clientes PPPoE, lo mas limpio es usar mangle con in-interface apuntando a la interface PPPoE del cliente. La comparticion funciona igual.

RouterOS — Queue Tree para clientes PPPoE
# Marcar paquetes por interface PPPoE de entrada (upload del cliente)
/ip firewall mangle add     chain=forward     in-interface=     action=mark-packet     new-packet-mark=up-cliente001     passthrough=no

# Marcar paquetes por interface PPPoE de salida (download del cliente)
/ip firewall mangle add     chain=forward     out-interface=     action=mark-packet     new-packet-mark=down-cliente001     passthrough=no

# Cola hija para ese cliente PPPoE
/queue tree add     name=pppoe-cliente001-down     parent=global-down     packet-mark=down-cliente001     limit-at=5M     max-limit=25M     comment="pppoe cliente001 download"

/queue tree add     name=pppoe-cliente001-up     parent=global-up     packet-mark=up-cliente001     limit-at=2M     max-limit=10M     comment="pppoe cliente001 upload"

5. Version escalable: PCQ con comparticion automatica

Si tienes muchos clientes y no quieres crear colas individuales, PCQ con pcq-rate hace comparticion automatica. Cada IP detectada recibe una sub-cola que puede usar hasta pcq-rate cuando hay disponibilidad, o menos si el enlace esta saturado.

RouterOS — PCQ con comparticion dinamica
# Crear tipos de cola PCQ
# pcq-rate = MIR por cliente cuando el enlace tiene capacidad
# Si el enlace se satura, PCQ divide equitativamente entre activos
/queue type add     name=pcq-download-isp     kind=pcq     pcq-classifier=dst-address     pcq-rate=20M     pcq-burst-rate=30M     pcq-burst-threshold=15M     pcq-burst-time=10s     pcq-limit=200KiB     pcq-total-limit=20000KiB     comment="PCQ download: max 20M por cliente con burst a 30M"

/queue type add     name=pcq-upload-isp     kind=pcq     pcq-classifier=src-address     pcq-rate=8M     pcq-burst-rate=12M     pcq-burst-threshold=6M     pcq-burst-time=10s     pcq-limit=100KiB     pcq-total-limit=10000KiB     comment="PCQ upload: max 8M por cliente con burst a 12M"

# Aplicar al enlace WAN con el limite total real del ISP
/queue simple add     name=isp-global-pcq     target=0.0.0.0/0     interface=ether1-wan     queue=pcq-download-isp/pcq-upload-isp     max-limit=100M/50M     comment="QoS global ISP con comparticion PCQ"
PCQ vs Queue Tree HTB: cuando usar cada uno

Usa PCQ cuando quieres comparticion automatica sin configurar colas por cliente. Es simple y escala a miles de clientes. Usa Queue Tree con HTB cuando necesitas CIR garantizado por cliente (compromiso de SLA) y diferentes niveles de prioridad por tipo de cliente (residencial vs corporativo).

6. Multiples planes con comparticion inter-plan

El escenario real de un ISP: tienes plan residencial (10M) y plan corporativo (50M). Los corporativos tienen prioridad y CIR mas alto, pero el ancho libre de cualquier plan puede ser aprovechado por todos.

RouterOS — Jerarquia multi-plan con comparticion
# Cola raiz del enlace WAN (100 Mbps total)
/queue tree add     name=wan-total-down     parent=global     max-limit=100M     comment="enlace WAN total descarga"

# Sub-cola plan corporativo (prioridad alta, CIR 30M del enlace)
/queue tree add     name=plan-corp-down     parent=wan-total-down     limit-at=30M     max-limit=100M     priority=1     comment="plan corporativo: 30M garantizados, hasta 100M libre"

# Sub-cola plan residencial (prioridad normal, CIR 20M del enlace)
/queue tree add     name=plan-resid-down     parent=wan-total-down     limit-at=20M     max-limit=100M     priority=5     comment="plan residencial: 20M garantizados, hasta 100M libre"

# Colas hija corporativas (cada cliente: CIR 10M, MIR 50M)
/queue tree add     name=corp-cliente-a-down     parent=plan-corp-down     dst-address=10.10.1.2/32     limit-at=10M     max-limit=50M     priority=1

# Colas hija residenciales (cada cliente: CIR 3M, MIR 20M)
/queue tree add     name=resid-cliente-01-down     parent=plan-resid-down     dst-address=10.10.0.2/32     limit-at=3M     max-limit=20M     priority=5

7. Calcular CIR/MIR segun tu enlace y clientes

EnlaceClientesPlan vendidoCIR recomendadoMIR recomendadoOverbooking
100 Mbps2010 Mbps5 Mbps (50%)25 Mbps (2.5x)2:1
100 Mbps4010 Mbps2.5 Mbps (25%)20 Mbps (2x)4:1
200 Mbps3020 Mbps8 Mbps (40%)40 Mbps (2x)3:1
500 Mbps10010 Mbps3 Mbps (30%)20 Mbps (2x)2:1

Regla practica: CIR = 30-50% del plan vendido. MIR = 2x a 3x el plan vendido. El overbooking sostenible para WISP residencial es 3:1 a 4:1. Para clientes corporativos, 1.5:1 maximo.

8. Verificar que la comparticion funciona

RouterOS — Monitoreo de comparticion en tiempo real
# Ver todas las colas con rate actual vs limite
/queue tree print stats

# Ver una cola especifica en tiempo real (cada segundo)
/queue tree monitor [find name=cliente-001-down]

# Verificar que clientes inactivos tienen rate=0 y los activos superan su CIR
/queue tree print stats where rate>0

# Ver cuanto del enlace total esta siendo usado
/queue tree print stats where name=global-down

# Ver estadisticas de mangle (confirmar que el trafico se esta marcando)
/ip firewall mangle print stats

# Ver throughput actual de la interface WAN
/interface monitor-traffic ether1-wan
Senal de que la comparticion esta activa

En /queue tree print stats, si ves clientes con rate mayor que su limit-at durante periodos de baja demanda, la comparticion esta funcionando correctamente. Si todos los clientes activos siempre muestran exactamente su limit-at, HTB no esta distribuyendo el excedente — revisa que max-limit sea mayor que limit-at.

Conclusion

La comparticion dinamica de ancho de banda es la diferencia entre un ISP que desperdicia su enlace y uno que maximiza la experiencia de cada cliente. Con Queue Tree y HTB, MikroTik hace este trabajo automaticamente: garantiza el CIR cuando el enlace esta saturado, y regala el ancho libre a quien lo necesite cuando no lo esta. El resultado es una red mas eficiente, clientes mas satisfechos y mejor aprovechamiento de la inversion en transit.

Optimizamos el QoS de tu red ISP

Disenamos la jerarquia de colas correcta para tu enlace, clientes y planes de servicio.

Conocer el soporte MikroTik remoto o solicita una evaluación gratuita →