Tutorial - Configura un Balanceo de Carga PCC en RouterOS v6: ¿Qué hace y qué no hace?

El balanceo de carga PCC (Per Connection Classifier) es una herramienta poderosa para optimizar el uso de múltiples enlaces de internet. Es especialmente útil para WISPs con más de 50 u 80 clientes que buscan mejorar la eficiencia y confiabilidad de su red sin invertir en costosas soluciones externas.

¿Qué hace el Balanceo de Carga PCC?
El PCC divide las conexiones entrantes y salientes entre múltiples enlaces de internet de manera uniforme o según tus necesidades específicas. Esto significa:
- Optimización del uso de ancho de banda: Las conexiones se distribuyen para que ambas líneas trabajen de manera eficiente.
- Mejor respuesta en redes saturadas: Ayuda a evitar cuellos de botella en un enlace al desviar el tráfico a otros disponibles.
- Aumenta la resiliencia: Si un enlace falla, el otro puede asumir la carga, dependiendo de cómo configures las rutas de respaldo.
¿Qué no hace el Balanceo de Carga PCC?
A pesar de sus beneficios, el PCC no es una solución milagrosa. Es crucial entender sus limitaciones:
- No combina velocidades: Si tienes dos líneas de 50 Mbps, no significa que podrás descargar a 100 Mbps. Cada conexión individual estará limitada al ancho de banda de su enlace asignado.
- No mejora la latencia: La distribución de conexiones no afecta directamente la latencia, especialmente si uno de tus enlaces tiene alta latencia por naturaleza.
- No sustituye la calidad de servicio (QoS): Aunque ayuda con la distribución, necesitas configurar QoS para priorizar ciertos tipos de tráfico como videollamadas o streaming.
Implementación del PCC en MikroTik (RouterOS v6)
A continuación, compartiremos un script básico de balanceo de carga PCC para dos líneas de proveedor. Este script está diseñado para ser un punto de partida; deberás personalizarlo según las necesidades específicas de tu red.
Definir las direcciones IP de la red que serán administradas por el balanceador de carga
/ip firewall address-list
add address=172.23.1.0/24 list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add address=10.200.10.0/24 list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
Configurar el NAT (Network Address Translation) para las interfaces WAN
El masquerading permite que el tráfico saliente sea enmascarado con la IP pública de la interfaz WAN
add chain=srcnat out-interface="ether1-wan1" action=masquerade comment="PCC-Free-66-33-Rackitech"
add chain=srcnat out-interface="ether2-wan2" action=masquerade comment="PCC-Free-66-33-Rackitech"
Configurar las rutas estáticas hacia los gateways de los proveedores de Internet.
Se utiliza el check-gateway=ping para asegurarse de que el gateway esté activo antes de usarlo
La distancia indica la preferencia de ruta, donde 1 es la más preferida
/ip route
add check-gateway=ping distance=1 gateway="10.170.70.1" routing-mark="to-ether1-wan1" comment="PCC-Free-66-33-Rackitech"
add check-gateway=ping distance=1 gateway="10.180.80.1" routing-mark="to-ether2-wan2" comment="PCC-Free-66-33-Rackitech"
add check-gateway=ping distance=1 gateway="10.170.70.1" comment="PCC-Free-66-33-Rackitech"
add check-gateway=ping distance=2 gateway="10.180.80.1" comment="PCC-Free-66-33-Rackitech"
Configurar las reglas de mangle para el balanceador de carga PCC (Policy Control and Classification)
Estas reglas no deben ser modificadas ya que manejan el funcionamiento del balanceador
Aceptar todo el tráfico dentro de la red administrada para evitar balanceo.
Marcar las conexiones entrantes por cada interfaz WAN
Marcar el enrutamiento de las conexiones salientes basado en la marca de conexión
/ip firewall mangle
add action=accept chain=prerouting dst-address-list=SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add action=accept chain=postrouting dst-address-list=SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add action=accept chain=forward dst-address-list=SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add action=accept chain=input dst-address-list=SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add action=accept chain=output dst-address-list=SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add action=mark-connection chain=input in-interface="ether1-wan1" new-connection-mark="cm-ether1-wan1" passthrough=yes comment="PCC-Free-66-33-Rackitech"
add action=mark-connection chain=input in-interface="ether2-wan2" new-connection-mark="cm-ether2-wan2" passthrough=yes comment="PCC-Free-66-33-Rackitech"
add action=mark-routing chain=output connection-mark="cm-ether1-wan1" new-routing-mark="to-ether1-wan1" passthrough=yes comment="PCC-Free-66-33-Rackitech"
add action=mark-routing chain=output connection-mark="cm-ether2-wan2" new-routing-mark="to-ether2-wan2" passthrough=yes comment="PCC-Free-66-33-Rackitech"
Configurar el clasificador de conexión para distribuir el tráfico entre las interfaces WAN
En este caso, ether1-wan1 soporta más ancho de banda que ether2-wan2, por lo que se le asigna 66% del tráfico
La regla per-connection-classifier=both-addresses-and-ports:3/0 divide el tráfico en 3 partes
PUEDES MODIFICAR ESTA PARTE "per-connection-classifier=both-addresses-and-ports:3/0" Pero si modificas una línea, deberas modificar todas las demás.
add action=mark-connection chain=prerouting dst-address-type=!local new-connection-mark="cm-ether1-wan1" passthrough=yes per-connection-classifier=both-addresses-and-ports:3/0 dst-address-list=!SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add action=mark-connection chain=prerouting dst-address-type=!local new-connection-mark="cm-ether1-wan1" passthrough=yes per-connection-classifier=both-addresses-and-ports:3/1 dst-address-list=!SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add action=mark-connection chain=prerouting dst-address-type=!local new-connection-mark="cm-ether2-wan2" passthrough=yes per-connection-classifier=both-addresses-and-ports:3/2 dst-address-list=!SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
Marcar el enrutamiento de las conexiones salientes basado en la marca de conexión
add action=mark-routing chain=prerouting connection-mark="cm-ether1-wan1" new-routing-mark="to-ether1-wan1" passthrough=yes dst-address-list=!SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
add action=mark-routing chain=prerouting connection-mark="cm-ether2-wan2" new-routing-mark="to-ether2-wan2" passthrough=yes dst-address-list=!SEGMENTO-ADMINISTRADO src-address-list=SEGMENTO-ADMINISTRADO comment="PCC-Free-66-33-Rackitech"
Nota importante sobre el script
Recuerda que este script es una configuración básica. Debes personalizarlo para adaptarlo a la topología de tu red, las IPs de tus proveedores y las interfaces WAN y LAN que estás utilizando.
Te hemos puesto las instrucciones detalladas. Leelas antes de aplicar esta configuración. Una configuración incorrecta puede afectar seriamente tu red, así que asegúrate de realizar pruebas en un entorno controlado antes de implementarlo en producción.
¿Necesitas soporte técnico?
Si necesitas ayuda personalizada o soporte técnico profesional, estamos aquí para ayudarte. Escríbenos a [email protected], y con gusto trabajaremos contigo. Los servicios están sujetos a honorarios, pero garantizamos soluciones a la medida de tus necesidades.
Por un precio personalizado, implementamos Balanceo PCC automatizado + PBR + Firewall desde 4 hasta 9 líneas. Con soporte para Cliente DHCP y servicios Dedicados. Solicita una revisión gratuita antes de contratar.