La automatización del control de ancho de banda en enrutadores MikroTik RouterOS mediante el uso combinado de scripts de Netwatch y colas de tráfico (Simple Queues) permite mitigar la saturación de los enlaces de respaldo (Backup WAN) cuando el enlace principal (Primary WAN) sufre una desconexión. El propósito de este artículo técnico consiste en detallar cómo estructurar un sistema de detección activa que, al activarse la conmutación por error (Failover), modifique dinámicamente las directivas de Calidad de Servicio (QoS) y los límites de tasa de transferencia (Max Limit) de los usuarios locales. Mediante la ejecución de scripts explícitos en la interfaz de línea de comandos (CLI) de RouterOS, los ingenieros de red garantizan la disponibilidad de los servicios críticos de la empresa y evitan el colapso por sobredemanda de enlaces secundarios típicamente limitados o medidos, como conexiones LTE, satelitales o simétricas de baja capacidad.
1. Fundamentos Técnicos del Estrangulamiento de Tráfico Dinámico en Failover
El diseño de una política de QoS reactiva ante fallos de conectividad requiere comprender la interacción entre el subsistema de enrutamiento y las estructuras de control de paquetes (Queues) dentro de RouterOS.
1.1 El problema de la asimetría de capacidad entre enlaces WAN
En la arquitectura de red corporativa estándar, el enlace principal suele ser una conexión de alta capacidad (por ejemplo, fibra óptica simétrica de 500 Mbps), mientras que la WAN de respaldo es un enlace de contingencia con un ancho de banda considerablemente menor (por ejemplo, un enlace de radioenlace, satelital o celular LTE de 20 Mbps). Cuando el enrutador conmuta el tráfico debido a una caída de la WAN principal, el volumen de datos generado por la red de área local (LAN) permanece idéntico. Al carecer de una reconfiguración inmediata de las colas de tráfico, los hosts locales intentan consumir la misma tasa de transferencia anterior, inundando los buffers de la interfaz de respaldo, elevando la latencia (Bufferbloat) y provocando la pérdida masiva de paquetes críticos como VoIP y sesiones SSL.
1.2 Control estático versus aprovisionamiento dinámico de QoS
Mantener una limitación estática y permanente en la red para proteger el enlace de respaldo degrada artificialmente la experiencia del usuario cuando la WAN principal está operativa. Por el contrario, la ingeniería de tráfico moderna exige un enfoque dinámico: las colas deben operar al máximo de la capacidad de la infraestructura principal y reajustarse mediante disparadores automáticos (Event-driven scripts) únicamente durante el tiempo que dure la contingencia del proveedor de Internet.
2. Componentes de la Solución en MikroTik RouterOS
La arquitectura del sistema de control dinámico se compone de tres módulos nativos de RouterOS que trabajan de forma coordinada.
2.1 Marcado e identificación mediante Simple Queues jerárquicas
El motor de control de ancho de banda utiliza la estructura de Simple Queues organizada de forma jerárquica (Parent/Child). Se establece una cola principal (Parent Queue) que define el límite máximo global de la red local. Al modificar únicamente el parámetro de velocidad de esta cola raíz, todas las subcolas (Child Queues) asignadas a los usuarios o departamentos heredan la restricción de forma proporcional, evitando tener que reconfigurar cada dirección IP de forma individual.
2.2 Monitoreo de estado mediante el módulo Netwatch
El mecanismo de detección utiliza el módulo Netwatch para enviar sondas ICMP (Ping) periódicas hacia hosts externos (como servidores DNS públicos de alta disponibilidad) enrutados exclusivamente a través de la interfaz WAN principal. Netwatch evalúa la pérdida de paquetes y los umbrales de tiempo de respuesta (RTT), ejecutando bloques de código automatizados en el momento exacto en que el estado del enlace cambia a fallido (Down) o activo (Up).
3. Configuración Paso a Paso del Entorno mediante CLI
Siga esta secuencia algorítmica y ejecute los comandos detallados en la terminal de su router MikroTik para inicializar la topología de control de tráfico.
3.1 Creación de la estructura de Simple Queues jerárquicas
Defina la cola raíz y las colas secundarias asignando las velocidades base correspondientes a la operación normal con la WAN principal (ejemplo: 200 Mbps de descarga y 100 Mbps de subida).
- Abra la terminal de RouterOS (New Terminal) mediante WinBox o una sesión SSH enfocada en el administrador.
- Ejecute el siguiente script para estructurar la jerarquía de limitación de ancho de banda:
«`mikrotik
/queue simple
add name=»QoS_Global_LAN» target=192.168.88.0/24 max-limit=100M/200M queue=default-small/default-small comment=»Cola Raiz Principal – Modificada por Script»
add name=»Sub_Corta_Usuarios» target=192.168.88.0/24 parent=»QoS_Global_LAN» max-limit=50M/100M limit-at=10M/20M priority=5/5 queue=default-small/default-small comment=»Subcola compartida para usuarios generales»
/ip route
add gateway=192.168.1.1 dst-address=1.1.1.1/32 distance=1 comment=»Ruta Exclusiva Sonda Netwatch por ISP Principal»
/tool netwatch
add host=1.1.1.1 interval=10s timeout=2s thr-loss=40% \
up-script=»/queue/simple/set [find name=\»QoS_Global_LAN\»] max-limit=100M/200M\n/log info \»QoS: WAN principal activa. Ancho de banda restaurado a 200M/100M.\»» \
down-script=»/queue/simple/set [find name=\»QoS_Global_LAN\»] max-limit=10M/20M\n/log warning \»QoS: WAN principal caída. Ancho de banda limitado a 20M/10M en respaldo.\»» \
comment=»Monitoreo Enlace Principal e Inyeccion de QoS Dinamico»
/ip firewall mangle
add chain=prerouting src-address=192.168.88.0/24 protocol=udp dst-port=5060,10000-20000 action=mark-connection new-connection-mark=Conexion_VoIP passthrough=yes comment=»QoS: Marcar Conexiones VoIP»
add chain=prerouting connection-mark=Conexion_VoIP action=mark-packet new-packet-mark=Paquetes_VoIP passthrough=no
add chain=prerouting src-address=192.168.88.0/24 connection-mark=no-mark action=mark-connection new-connection-mark=Conexion_General passthrough=yes comment=»QoS: Marcar Resto de Conexiones»
add chain=prerouting connection-mark=Conexion_General action=mark-packet new-packet-mark=Paquetes_General passthrough=no
/queue tree
add name=»Arbol_Raiz_Salida» parent=global max-limit=100M comment=»Limite Total de Subida General»
add name=»Cola_Prioritaria_VoIP» parent=»Arbol_Raiz_Salida» packet-mark=Paquetes_VoIP priority=1 max-limit=20M limit-at=10M comment=»Garantia de Ancho de Banda para Voz»
add name=»Cola_Tráfico_General» parent=»Arbol_Raiz_Salida» packet-mark=Paquetes_General priority=6 max-limit=80M comment=»Cola para navegacion web y datos generales»
/tool netwatch
set [find comment=\»Monitoreo Enlace Principal e Inyeccion de QoS Dinamico\»] \
up-script=»/queue/tree/set [find name=\»Arbol_Raiz_Salida\»] max-limit=100M\n/queue/tree/set [find name=\»Cola_Tráfico_General\»] max-limit=80M\n/log info \»QoS Tree: Ancho de banda restaurado a valores nominales.\»» \
down-script=»/queue/tree/set [find name=\»Arbol_Raiz_Salida\»] max-limit=15M\n/queue/tree/set [find name=\»Cola_Tráfico_General\»] max-limit=5M\n/log warning \»QoS Tree: Enlace degradado. Trafico general restringido a 5M.\»»
/tool netwatch run-script [find comment=»Monitoreo Enlace Principal e Inyeccion de QoS Dinamico»] type=down-script
/tool netwatch run-script [find comment=»Monitoreo Enlace Principal e Inyeccion de QoS Dinamico»] type=up-script
/log print where message~»QoS»








