// DevOps

PCC en MikroTik: balanceo de tráfico entre dos proveedores

Publicado el 22.09.2026

Si un router tiene varias direcciones IP externas o varios canales, todo el tráfico saliente por defecto sigue saliendo por una de ellas. PCC (Per Connection Classifier) en RouterOS 7 distribuye las nuevas conexiones entre direcciones: cada conexión entera va por una dirección, y conexiones diferentes — por diferentes. Esto es útil cuando el proveedor limita el tráfico o la velocidad por cada IP por separado, y cuando se necesita cargar todas las direcciones compradas, no solo una.

Sobre la tolerancia a fallos de la salida a Internet — más detalles en el artículo «Reservación de canales de comunicación: salida a Internet».


Qué hace PCC y qué no hace

PCC es una condición en las reglas del cortafuegos. Calcula un hash a partir de los campos seleccionados del paquete (direcciones y puertos) y divide las conexiones en un número determinado de flujos. La conexión marcada conserva la marca hasta el final, por eso todos sus paquetes van por la misma dirección.

Qué aporta esto:

  • El ancho de banda total crece con múltiples conexiones. Una sola conexión (una descarga, una videollamada) no será más rápida: va por una dirección. La ganancia aparece cuando hay muchas conexiones — por ejemplo, en una oficina o en un grupo de servidores.
  • El tráfico se distribuye entre las direcciones. Si el proveedor limita el volumen o la velocidad por cada IP, la carga se reparte entre ellas y cada dirección consume su parte del límite.
  • Se usan todas las direcciones compradas, en lugar de estar inactivas.
  • PCC por sí mismo no proporciona tolerancia a fallos. Si un canal deja de funcionar, las conexiones que cayeron en su flujo se cortarán hasta que lo elimine de la balanceo. Para conmutación automática hacen falta comprobaciones de disponibilidad de pasarelas — eso es una configuración aparte.

En el ejemplo siguiente PCC distribuye las conexiones entre seis direcciones externas usando el criterio both-addresses-and-ports: el hash se calcula a partir de las direcciones y puertos del emisor y del receptor, por lo que la distribución resulta uniforme. Esta variante tiene una desventaja: distintas conexiones de un mismo usuario hacia un mismo sitio pueden salir con diferentes direcciones externas, y algunos servicios (bancos, áreas personales) comprueban que la dirección del cliente no cambie. Si esto es importante, use both-addresses — así una pareja «cliente — servidor» siempre irá por una misma dirección externa.


Configuración de PCC en MikroTik RouterOS 7.x

Antes de empezar, actualice el router a la versión actual de RouterOS 7.

1. Añadimos direcciones IP externas

Todas las direcciones se asignan a la interfaz externa. En el ejemplo es wan-bridge; sustituya por el nombre de su interfaz.

routeros
/ip address
add address=100.77.214.99/24 interface=wan-bridge network=100.77.214.0 comment="IP principal"
add address=100.77.214.97/24 interface=wan-bridge network=100.77.214.0
add address=100.77.214.109/24 interface=wan-bridge network=100.77.214.0
add address=100.77.214.110/24 interface=wan-bridge network=100.77.214.0
add address=100.77.214.111/24 interface=wan-bridge network=100.77.214.0
add address=100.77.214.112/24 interface=wan-bridge network=100.77.214.0

2. Configuramos los servidores DNS

routeros
/ip dns
set servers="8.8.8.8, 1.1.1.1"

3. Creamos tablas de enrutamiento

Para cada dirección externa — su propia tabla de enrutamiento: por ella el router enviará el tráfico marcado.

routeros
/routing table
add name=to_wan1 fib
add name=to_wan2 fib
add name=to_wan3 fib
add name=to_wan4 fib
add name=to_wan5 fib
add name=to_wan6 fib

4. Ruta por defecto en cada tabla

En cada tabla se indica la puerta de enlace del proveedor. En el ejemplo es la misma para todas las direcciones — 100.77.214.1.

routeros
/ip route
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan1
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan2
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan3
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan4
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan5
add dst-address=0.0.0.0/0 gateway=100.77.214.1 routing-table=to_wan6

5. Marcamos las conexiones con PCC (Mangle)

Etapa principal. Las reglas Mangle marcan las conexiones nuevas desde la red local, y luego según la marca de conexión asignan la marca de enrutamiento. En la entrada both-addresses-and-ports:6/X el número 6 es la cantidad de flujos (direcciones externas), X es el número de flujo de 0 a 5. No hace falta un parámetro de “stickiness” separado: la marca de la conexión se conserva hasta su finalización, por eso todos los paquetes de una conexión van por la misma dirección. Reemplace lan-bridge por el nombre de su interfaz interna.

routeros
/ip firewall mangle
# Marcamos nuevas conexiones desde la red local
add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
    new-connection-mark=wan1_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/0 \
    comment="PCC both-addr-ports WAN 1"

add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
    new-connection-mark=wan2_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/1 \
    comment="PCC both-addr-ports WAN 2"

add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
    new-connection-mark=wan3_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/2 \
    comment="PCC both-addr-ports WAN 3"

add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
    new-connection-mark=wan4_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/3 \
    comment="PCC both-addr-ports WAN 4"

add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
    new-connection-mark=wan5_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/4 \
    comment="PCC both-addr-ports WAN 5"

add chain=prerouting in-interface=lan-bridge connection-state=new action=mark-connection \
    new-connection-mark=wan6_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:6/5 \
    comment="PCC both-addr-ports WAN 6"

# Según la marca de conexión asignamos la tabla de enrutamiento
add chain=prerouting connection-mark=wan1_conn action=mark-routing \
    new-routing-mark=to_wan1 passthrough=no comment="Marca de ruta para WAN 1"

add chain=prerouting connection-mark=wan2_conn action=mark-routing \
    new-routing-mark=to_wan2 passthrough=no comment="Marca de ruta para WAN 2"

add chain=prerouting connection-mark=wan3_conn action=mark-routing \
    new-routing-mark=to_wan3 passthrough=no comment="Marca de ruta para WAN 3"

add chain=prerouting connection-mark=wan4_conn action=mark-routing \
    new-routing-mark=to_wan4 passthrough=no comment="Marca de ruta para WAN 4"

add chain=prerouting connection-mark=wan5_conn action=mark-routing \
    new-routing-mark=to_wan5 passthrough=no comment="Marca de ruta para WAN 5"

add chain=prerouting connection-mark=wan6_conn action=mark-routing \
    new-routing-mark=to_wan6 passthrough=no comment="Marca de ruta para WAN 6"

# Lo mismo para el tráfico generado por el propio router
add chain=output connection-mark=wan1_conn action=mark-routing \
    new-routing-mark=to_wan1 passthrough=no comment="Marca de ruta de salida para WAN 1"

add chain=output connection-mark=wan2_conn action=mark-routing \
    new-routing-mark=to_wan2 passthrough=no comment="Marca de ruta de salida para WAN 2"

add chain=output connection-mark=wan3_conn action=mark-routing \
    new-routing-mark=to_wan3 passthrough=no comment="Marca de ruta de salida para WAN 3"

add chain=output connection-mark=wan4_conn action=mark-routing \
    new-routing-mark=to_wan4 passthrough=no comment="Marca de ruta de salida para WAN 4"

add chain=output connection-mark=wan5_conn action=mark-routing \
    new-routing-mark=to_wan5 passthrough=no comment="Marca de ruta de salida para WAN 5"

add chain=output connection-mark=wan6_conn action=mark-routing \
    new-routing-mark=to_wan6 passthrough=no comment="Marca de ruta de salida para WAN 6"

6. Reglas del cortafuegos

Estas reglas aceptan paquetes de conexiones ya establecidas y descartan paquetes que no pertenecen a ninguna conexión conocida. Esto protege contra fallos en la enrutación asimétrica, cuando la solicitud sale por una dirección y la respuesta llega por otra.

routeros
/ip firewall filter
add chain=forward connection-state=established,related action=accept comment="Aceptar conexiones establecidas"
add chain=forward connection-state=invalid action=drop comment="Descartar conexiones inválidas"

7. NAT para cada dirección

Cada conexión marcada se traduce a su dirección externa. Sin esto, las respuestas volverían a la dirección equivocada y las conexiones no se establecerían.

routeros
/ip firewall nat
add action=src-nat chain=srcnat routing-mark=to_wan1 to-addresses=100.77.214.99 out-interface=wan-bridge comment="NAT para WAN 1"
add action=src-nat chain=srcnat routing-mark=to_wan2 to-addresses=100.77.214.97 out-interface=wan-bridge comment="NAT para WAN 2"
add action=src-nat chain=srcnat routing-mark=to_wan3 to-addresses=100.77.214.109 out-interface=wan-bridge comment="NAT para WAN 3"
add action=src-nat chain=srcnat routing-mark=to_wan4 to-addresses=100.77.214.110 out-interface=wan-bridge comment="NAT para WAN 4"
add action=src-nat chain=srcnat routing-mark=to_wan5 to-addresses=100.77.214.111 out-interface=wan-bridge comment="NAT para WAN 5"
add action=src-nat chain=srcnat routing-mark=to_wan6 to-addresses=100.77.214.112 out-interface=wan-bridge comment="NAT para WAN 6"

# Regla de reserva: las conexiones sin marca PCC salen por la dirección principal
add action=masquerade chain=srcnat out-interface=wan-bridge comment="NAT por defecto para conexiones sin marcar"

Importante: la regla masquerade debe estar al final entre las reglas NAT, para que se aplique solo al tráfico que no fue distribuido por PCC.

8. Tiempos de espera del seguimiento de conexiones

Para conexiones largas es útil aumentar los tiempos de espera:

routeros
/ip firewall connection tracking
set generic-timeout=10m tcp-established-timeout=1d tcp-fin-wait-timeout=30s tcp-close-wait-timeout=30s

Comprobación de la distribución

Las estadísticas se pueden ver en WinBox o WebFig. Para una estimación aproximada de la velocidad en la interfaz externa sirve un script sencillo:

routeros
/system script
add name="check-load-balance" source={
    :local wan1traffic [/interface get wan-bridge value-name=tx-byte]
    :put "Tráfico WAN: $wan1traffic"
    :delay 3s
    :local wan1traffic2 [/interface get wan-bridge value-name=tx-byte]
    :put "Tráfico WAN después de 3s: [($wan1traffic2 - $wan1traffic) * 8 / 3 / 1000] kbit/s"
}

El script muestra la velocidad total a través de la interfaz externa. Para ver la distribución por direcciones, abra la tabla Connections en la sección Firewall y filtre por las marcas de conexión wan1_conn…wan6_conn.


Conclusión

PCC permite usar todas las direcciones externas del router y distribuir la carga entre ellas, incluso para no superar los límites de tráfico por IP. No acelera una única conexión y no sustituye la configuración de tolerancia a fallos. Tras la configuración, compruebe la distribución en la tabla de conexiones y observe la red durante varios días antes de dar la solución por definitiva.

// Reviews

Reseñas relacionadas

ladohinpy

Configuración de Mikrotik hAP. Configuraré su router Wi‑Fi Mikrotik.

21.07.2025 · ★ 5/5

Excelente profesional, experto y persona maravillosa. En una hora nos arregló lo que llevábamos días intentando solucionar. Estoy seguro de que no será la primera vez que recurramos a su excepcional profesionalismo.

Excelente especialista, un experto con mucha experiencia y una persona maravillosa. En una hora nos arregló aquello por lo que llevábamos días rompiéndonos la cabeza! Estoy seguro de que no será la primera vez que …

Ravenor

MikroTik hAP: configuración del router. Configuraré su router MikroTik Wi‑Fi.

28.05.2025 · ★ 5/5

¡Un enfoque profesional!

¡Enfoque profesional al asunto!

ErlikZ

Configuración del router Mikrotik hAP. Configuraré su router Mikrotik Wi-Fi.

31.03.2025 · ★ 5/5

// Contact

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Respondo en un día laborable (03:00-13:00 GMT)

Или оставьте заявку здесь:

Confirme que no es un bot.

Escribir y recibir una respuesta rápida