“Routing Mark” o “Marca de enrutamiento” es una característica del sistema operativo RouterOS de MikroTik que permite gestionar múltiples tablas de enrutamiento dentro del mismo dispositivo.
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
Esta es una técnica comúnmente utilizada en configuraciones de red avanzadas y complejas, donde se necesitan rutas diferentes dependiendo de factores como la fuente del tráfico, el destino o la aplicación.
Las marcas de enrutamiento permiten al operador del sistema tener múltiples tablas de enrutamiento y decidir qué tabla de enrutamiento debe utilizar un paquete particular.
Cuando se configura, las reglas de enrutamiento inspeccionan los paquetes entrantes y, en base a las condiciones de la regla, los marcan para su procesamiento posterior.
Estas marcas se utilizan luego en las decisiones de enrutamiento. Cuando un paquete está marcado, el enrutador utiliza una tabla de enrutamiento que coincide con la marca de enrutamiento, en lugar de la tabla de enrutamiento principal. De este modo, se puede controlar el recorrido de los paquetes a través de la red.
Ejemplo de cómo usar una marca de enrutamiento
- Supongamos que tienes dos conexiones a Internet desde dos proveedores de servicios de Internet (ISP) diferentes.
- Quieres que el tráfico de una subred específica utilice la conexión a Internet del ISP 1, y que el tráfico de otra subred utilice la conexión del ISP 2.
- Para lograr esto, puedes configurar marcas de enrutamiento que asignen cada subred a una tabla de enrutamiento específica.
- En la tabla de enrutamiento para la subred que debe utilizar el ISP 1, configuras una ruta por defecto que apunte a la puerta de enlace del ISP 1. Haces lo mismo para la otra subred y el ISP 2 en la otra tabla de enrutamiento.
- Ahora, puedes crear reglas de enrutamiento que marquen el tráfico de cada subred con la marca de enrutamiento correspondiente.
De este modo, puedes controlar qué tráfico utiliza qué conexión a Internet.
Es importante señalar que las marcas de enrutamiento son un concepto avanzado y requieren una buena comprensión del enrutamiento y las tablas de enrutamiento para su uso eficaz.
También hay que tener en cuenta que cada vez que se introduce una nueva tabla de enrutamiento, se introduce también una cierta complejidad y se deben tomar medidas para asegurar que todas las tablas de enrutamiento están correctamente configuradas y gestionadas.
Configuración
Para configurar las marcas de enrutamiento en MikroTik RouterOS, necesitarás configurar algunas cosas:
- Las tablas de enrutamiento:
Puedes crear nuevas tablas de enrutamiento en /ip route rule en la interfaz de línea de comandos (CLI) o en la interfaz de usuario de Winbox. - Las reglas de enrutamiento:
Estas son las reglas que determinarán qué paquetes recibirán qué marca de enrutamiento. Puedes crear reglas de enrutamiento en /ip route rule. - Las rutas:
Necesitas tener las rutas correctas en cada tabla de enrutamiento. Puedes agregar rutas en /ip route.
Cómo se podría ver una configuración de RouterOS
Primero, debes definir las rutas para cada ISP en las tablas de enrutamiento correspondientes:
/ip route
add dst-address=0.0.0.0/0 gateway=isp1-gateway routing-mark=toISP1
add dst-address=0.0.0.0/0 gateway=isp2-gateway routing-mark=toISP2
Luego, debes definir las reglas de enrutamiento que marcarán los paquetes con las marcas de enrutamiento correspondientes:
/ip route rule
add src-address=subnet1 action=lookup table=toISP1
add src-address=subnet2 action=lookup table=toISP2
En este ejemplo, isp1-gateway y isp2-gateway representan las direcciones IP de las puertas de enlace del ISP, y subnet1 y subnet2 representan las subredes que deseas dirigir a cada ISP.
Configuración de NAT (Network Address Translation)
Si estás utilizando NAT, necesitarás configurar reglas de NAT separadas para cada ISP. La regla de NAT asegurará que los paquetes salientes tengan la dirección IP correcta antes de ser enviados a través de la conexión correcta. Aquí hay un ejemplo de cómo podrían verse estas reglas:
/ip firewall nat
add chain=srcnat src-address=subnet1 action=masquerade out-interface=ISP1_interface
add chain=srcnat src-address=subnet2 action=masquerade out-interface=ISP2_interface
Donde ISP1_interface y ISP2_interface son las interfaces de red conectadas a tus ISPs y subnet1 y subnet2 son las subredes que deseas dirigir a cada ISP.
Precauciones
Prioridad de las reglas:
RouterOS aplica las reglas de enrutamiento en orden, desde la primera a la última. Así que si tienes una regla que coincide con un paquete antes que otra, la primera regla será la que se aplique. Por lo tanto, debes asegurarte de que tus reglas estén en el orden correcto.
Prueba de conectividad:
Siempre debes probar la conectividad después de realizar cambios en la configuración de enrutamiento. Puedes hacer esto usando herramientas como ping y traceroute para asegurarte de que los paquetes están tomando la ruta correcta.
Planificación de la red:
Antes de implementar marcas de enrutamiento, es importante planificar cuidadosamente tu red y entender completamente cómo quieres que fluya el tráfico. Un error en la configuración puede causar problemas de conectividad y puede ser difícil de solucionar.
Documentación:
Asegúrate de documentar cualquier cambio que hagas en tu configuración de enrutamiento. Esto será útil si necesitas solucionar problemas en el futuro o si otra persona necesita entender cómo está configurada tu red.
Datos importantes
- Para asignar tráfico específico a la ruta, el tráfico debe ser identificado por “routing mark”
- Los routing mark pueden ser asignados por la opción mangle del IP Firewall SOLAMENTE en reglas prerouting y output
- Los paquetes con routing mark serán ignorados por la tabla de ruteo principal si es que existe por lo menos una ruta para ese routing mark. Si no hay ninguna ruta se usará la tabla de ruteo principal.
- Cada paquete puede tener solo un routing mark
Ejemplo
Con Routing Mark tenemos la capacidad de que, si tenemos dos o mas redes LAN y contamos con mas de un proveedor de internet, podemos realizar que cierta LAN salga por cierta WAN.
Por ejemplo, veamos este siguiente diagrama de red:
Tenemos dos WAN y dos LAN, vamos a realizar la configuración que nos permita que la red de la VLAN10 salga por medio de la WAN_1 y así mismo que la red de la VLAN20 salga por medio de la WAN_2.
Primero debemos marcar el tráfico de cada segmento de cada VLAN etiquetándolo, usando la acción de mark-routing
Configuración en Versión 6
/ip firewall mangle
add action=mark-routing chain=prerouting new-routing-mark=LANVLAN10 passthrough=no src-address=192.168.10.0/24
add action=mark-routing chain=prerouting new-routing-mark=LANVLAN20 passthrough=no src-address=192.168.20.0/24
Segundo creamos las rutas por defecto de cada proveedor, indicándoles la opción de routing mark creadas previamente:
/ip route
add check-gateway=ping distance=1 gateway=200.113.3.1 routing-mark=LANVLAN10
add check-gateway=ping distance=1 gateway=190.213.73.1 routing-mark=LANVLAN20
Tercero, crear el Failover:
/ip route
add check-gateway=ping distance=2 gateway=190.213.73.1 routing-mark=LANVLAN10
add check-gateway=ping distance=2 gateway=200.113.3.1 routing-mark=LANVLAN20
Configuración en Versión 7
/routing table
add disabled=no fib name=LANVLAN10
add disabled=no fib name=LANVLAN20
/ip firewall mangle
add action=mark-routing chain=prerouting new-routing-mark=LANVLAN10 passthrough=no src-address=192.168.10.0/24
add action=mark-routing chain=prerouting new-routing-mark=LANVLAN20 passthrough=no src-address=192.168.20.0/24
/ip route
add check-gateway=ping distance=1 gateway=200.113.3.1 routing-table=LANVLAN10
add check-gateway=ping distance=1 gateway=190.213.73.1 routing-table=LANVLAN20











4 comentarios en “Routing Mark en RouterOS v6 y v7”
La duda que me queda es ¿qué hacer si los paquetes vienen desde el propio router? Por ejemplo, tenemos el mismo escenario: dos ISPs. Digamos que deseo que mi enrutador mikrotik tenga una conexión VPN a un servidor específico a través de ambos ISPs (o sea, que hayan dos conexiones VPN). ¿Cómo hacer esto?
Estimado,
Si sería posible siempre y cuando los dos túneles vayan a públicas diferentes se deberían crear Mark routing apuntando a los dst.address de dichas públicas para que así cada vez que hagan la petición vayan y salgan por los diferentes proveedores.
En caso de que sea a la misma pública la recomendación sería trabajar con túneles diferentes por ejemplo con PPTP Y L2TP igualmente se trabajaría con mark-routing los cuales deberían marcas los puertos y protocolos de dichos túneles así con estos Mark routing se opusiera decir que el túneles pptp va hacer visto por el proveedor 1 y el l2tp será visto pro el proveedor2.
Saludos,
Hola Kevin, gracias por su respuesta. En mi escenario necesito crear hasta 30 de estos vpn. Mi proveedor de acceso a internet me limita a 2mbps por IP y necesito las vpn centralizadas. Lo ideal en mi caso sería poder marcar la conexión en específico.
Saludos.
Hola Ariel,
Correcto eso sería lo ideal ir creando marcados de rutas para así dividir la cantidad de conexiones que vas a querer que se establezcan por cada proveedor
Salidudos,