Persistencia de VPN en MikroTik con Dual WAN: Configuración de Reglas Mangle, Conmutación por Error y Exclusión de Balanceo

La estabilización de túneles VPN (IPsec, WireGuard, OVPN o SSTP) dentro de una infraestructura de red gestionada por MikroTik RouterOS con doble enlace WAN (Dual WAN) exige la neutralización de las fluctuaciones de enrutamiento causadas por los algoritmos de balanceo de carga dinámicos como PCC (Per Connection Classifier). El propósito de este artículo técnico consiste en detallar cómo estructurar reglas Mangle de exclusión, implementar políticas de ruteo estático con marcado estricto y configurar mecanismos de conmutación por error (Failover) de baja latencia para impedir que los paquetes del túnel cifrado sufran desalineación de interfaces (interface mismatch). Mediante scripts explícitos ejecutados en la interfaz de línea de comandos (CLI) de RouterOS, los ingenieros de redes logran mantener la persistencia absoluta de las conexiones VPN de sitio a sitio y de acceso remoto, asegurando la continuidad operativa del tráfico empresarial.

1. Mecánica del Fallo: Por Qué se Desconectan las VPN en Entornos Dual WAN

El diseño de una topología Multi-WAN resiliente para túneles cifrados requiere comprender las colisiones algorítmicas que ocurren dentro del flujo de paquetes (Packet Flow) de RouterOS.

1.1 El conflicto entre el balanceo dinámico y la persistencia de socket

Los algoritmos de balanceo de carga como PCC distribuyen los flujos de salida dividiendo las conexiones según operaciones matemáticas basadas en las IPs y puertos de origen y destino. Cuando el router MikroTik emite o responde a una solicitud de establecimiento de túnel VPN, el clasificador PCC procesa los paquetes de control de manera idéntica al tráfico web genérico. Si un paquete de mantenimiento de conexión (Keepalive) o una fase de renegociación de llaves criptográficas es enviado por una interfaz WAN distinta a la que originó el saludo inicial (Handshake), los endpoints remotos descartan los paquetes por razones de seguridad perimetral, provocando el colapso inmediato del túnel por pérdida de estado de conexión (Stateful connection drop).

1.2 El problema del ruteo asimétrico en túneles cifrados

El ruteo asimétrico ocurre cuando los paquetes de datos viajan hacia un destino por un camino físico (WAN 1) y las respuestas regresan por otro distinto (WAN 2). En protocolos sensibles al estado de la conexión como IPsec (IKEv2) o WireGuard, el cambio constante de la dirección IP pública de origen rompe la asociación de seguridad (Security Association o SA). RouterOS requiere directivas explícitas en la tabla de ruteo para forzar que tanto el tráfico de inicialización del túnel como el tráfico encapsulado que viaja en su interior utilicen de forma persistente la misma puerta de enlace (Gateway).

2. Estrategia de Ingeniería para Estabilizar Túneles VPN

La resolución definitiva del problema no consiste en desactivar el balanceo de carga, sino en aplicar políticas de aislamiento selectivo dentro del cortafuegos (Firewall) del sistema operativo.

2.1 Exclusión absoluta en la cadena Output y Prerouting

Los paquetes de una VPN en MikroTik pueden tener dos orígenes distintos: tráfico generado por el propio router (como un cliente WireGuard o IPsec iniciado por el MikroTik, procesado en la cadena output) o tráfico de hosts locales que viaja a través del túnel (procesado en la cadena prerouting). Ambos flujos deben ser identificados mediante Address Lists o interfaces lógicas y excluidos explícitamente mediante el parámetro action=accept o marcas de ruta dedicadas antes de que el clasificador PCC aplique la segmentación masiva.

2.2 Vinculación estricta de conexiones mediante marcas de enrutamiento

Cada interfaz WAN debe poseer su propia tabla de ruteo dedicada en el menú de Configuration Options de RouterOS. Al asignar una marca de enrutamiento específica a los paquetes de la VPN, el sistema operativo ignora la tabla de ruteo principal (main) y envía los datagramas exclusivamente a través de la puerta de enlace predeterminada asignada a esa WAN específica, asegurando la simetría del canal de comunicación.

3. Guía de Configuración Paso a Paso en la CLI de RouterOS

Ejecute de forma secuencial las siguientes instrucciones dentro de la terminal de su dispositivo MikroTik para implementar las Address Lists, las reglas Mangle de exclusión y las tablas de ruteo estáticas de contingencia.

3.1 Definición de la infraestructura de direccionamiento local y remoto

Defina las subredes locales y los endpoints remotos de las VPN dentro de listas de direcciones para automatizar su gestión en el cortafuegos.

  1. Acceda al router mediante WinBox y abra una ventana de terminal (New Terminal) o conéctese vía SSH.
  2. Ejecute el siguiente comando para consolidar los segmentos de red que no deben ser afectados por el balanceo de carga:

«`mikrotik
/ip firewall address-list
add address=192.168.88.0/24 list=Redes_Locales comment=»Subred LAN Interna»
add address=203.0.113.50 list=Endpoints_VPN_Remotos comment=»IP Pública del Servidor VPN Destino»
add address=10.0.0.0/8 list=Redes_Corporativas_Remotas comment=»Rango de Red Detrás de la VPN Sitio a Sitio»

/ip firewall mangle
add chain=output dst-address-list=Endpoints_VPN_Remotos action=mark-routing new-routing-mark=Forzar_WAN1 passthrough=no comment=»VPN: Forzar tráfico de control del router a WAN1″

/ip firewall mangle
add chain=prerouting src-address-list=Redes_Locales dst-address-list=Redes_Corporativas_Remotas action=accept passthrough=no comment=»VPN: Omitir balanceo PCC para tráfico interno hacia el túnel»

/ip route
add gateway=192.168.1.1 routing-mark=Forzar_WAN1 distance=1 comment=»VPN: Ruta principal por ISP1″

/ip route
add gateway=10.0.0.1 routing-mark=Forzar_WAN1 distance=2 comment=»VPN: Ruta de contingencia por ISP2″

/ip firewall mangle

=====================================================================

BLOQUE 1: EXCLUSIONES Y BYPASS DE VPN (Prioridad Alta)

=====================================================================

add chain=prerouting src-address-list=Redes_Locales dst-address-list=Redes_Corporativas_Remotas action=accept passthrough=no comment=»1. BYPASS: Tráfico de datos LAN a VPN»
add chain=output dst-address-list=Endpoints_VPN_Remotos action=mark-routing new-routing-mark=Forzar_WAN1 passthrough=no comment=»2. BYPASS: Tráfico de control del Router a VPN»

=====================================================================

BLOQUE 2: CLASIFICACIÓN DE CONEXIONES GENERAL (Balanceo PCC)

=====================================================================

add chain=prerouting dst-address-type=!local in-interface=bridge-LAN connection-mark=no-mark action=mark-connection new-connection-mark=WAN1_conexion passthrough=yes per-connection-classifier=src-address-and-port:2/0 comment=»PCC: Línea 1″
add chain=prerouting dst-address-type=!local in-interface=bridge-LAN connection-mark=no-mark action=mark-connection new-connection-mark=WAN2_conexion passthrough=yes per-connection-classifier=src-address-and-port:2/1 comment=»PCC: Línea 2″

=====================================================================

BLOQUE 3: ASIGNACIÓN DE MARCAS DE RUTA GENERALES

=====================================================================

add chain=prerouting in-interface=bridge-LAN connection-mark=WAN1_conexion action=mark-routing new-routing-mark=Ruta_General_WAN1 passthrough=no
add chain=prerouting in-interface=bridge-LAN connection-mark=WAN2_conexion action=mark-routing new-routing-mark=Ruta_General_WAN2 passthrough=no

/tool netwatch
add host=8.8.8.8 interval=10s timeout=2s thr-loss=50% \
down-script=»/ip route set [find comment=\»VPN: Ruta principal por ISP1\»] distance=10\n/log warning \»VPN: Conectividad de ISP1 fallida. Desviando túnel a WAN 2.\»» \
up-script=»/ip route set [find comment=\»VPN: Ruta principal por ISP1\»] distance=1\n/log info \»VPN: Conectividad de ISP1 restablecida. Retornando túnel a canal principal.\»» \
comment=»Monitoreo Enlace Principal VPN»

/ip firewall connection print where dst-address~»203.0.113.50″

/interface disable [find name=»ether1-WAN1″]

/interface enable [find name=»ether1-WAN1″]


🔥Tendencia🔥


Notas interesantes


Lo más reciente