Balanceo + Failover

MUY FACIL !!! BALANCEO + FAILOVER 3 WAN MIKROTIK V7

Que es Balanceo de carga?

Es un proceso a través del cual el tráfico saliente es distribuido por múltiples enlaces.

Consideraciones:

  • Cuando se emplea algún mecanismo de balanceo, lo que realmente se balancea son el número total de conexiones entre la cantidad de enlaces disponibles.
  • No se balancea el consumo de tráfico ni se “suma” literalmente.

Documentación Oficial:

https://help.mikrotik.com/docs/display/ROS/Load+Balancing

Que es Failover?

En Failover con Mikrotik, también conocido como conmutación por error de enlace, es una función que permite que su router Mikrotik cambie automáticamente a una conexión de internet de respaldo si la conexión principal falla.

Material Necesario para este laboratorio:

  • Tener Instalado el Simulador de redes EVE-NG.
  • Software Winbox de Mikrotik en su versión mas reciente.
  • Imagen Mikrotik CHR (Cloud Hosted Router)

Vamos a por ello …

Lo que pretendemos conseguir es unir ambos procedimientos, es decir, que se reparta la carga por los 3 enlaces de salida y que ademas si alguno de estos falla, el trafico salga por las otras WAN disponibles.

En este laboratorio, vamos a utilizar la siguiente estructura de red:

Este tipo de Balanceo es equitativo, es decir el mismo caudal en cada WAN.

Tenemos 3 operadores y nuestro Router.

En el router del Operador simplemente vamos a configurar 3 direccionamientos internos distintos.

  • ISP_1: 192.168.1.0/24
  • ISP_2: 192.168.2.0/24
  • ISP_3: 192.168.3.0/24

Configurando nuestro equipo:

Lo primero que vamos a hacer es asegurarnos que cada ISP nos da la IP correspondiente y tenemos acceso a internet por todas las WAN.

Habilitamos el DHCP en las 3 interfaces WAN y nos cercioramos que tenemos IP.

Lo siguiente sera revisar que todos tienen salida a internet, para esto simplemente dejamos habilitada sola una interface DHCP y lanzamos un ping. Repetimos este paso con las 3 interfaces.

Este paso, no es necesario, se puede dejar el DHCP deshabilitado.

Creamos las IPs correspondientes a cada interface WAN y deshabilitamos el DHCP.

Ahora vamos a crear la RED LAN:

  1. Añadimos el comentario en las interfaces.
  2. Creamos el direccionamiento IP interno.
  3. Creamos el DHCP_Setup.
  4. Renombramos el Pool del DHCP que nos ha creado.

Nos cercioramos que todos nuestros PC cogen IP, lo podemos revisar en el leases del DHCP.

Crearemos el NAT para las 3 interfaces y la red lan, un masquerade. Lo haremos con una lista para simplificar las reglas NAT.

  1. Nos vamos al menu Interfaces/Interface List y le damos al +
  2. Creraremos el Interface List WAN
  3. Añadiremos las interfaces ether1, ether2 y ether3 a la lista WAN que acabamos de crear.
  4. Nos vamos al menu IP/Firewall/NAT y creamos la regla con src-nat, src-address, Out-Interface, acction=masquerade

/interface list
add name=WAN
/interface list member
add interface=ether1 list=WAN
add interface=ether2 list=WAN
add interface=ether3 list=WAN
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN src-address=10.100.1.0/24

Ahora, es cuando vamos a crear la MAGIA …

  1. Vamos al menu Routing
  2. Vamos a la opcion Tables
  3. Creamos una nueva tabla con el +
  4. Le ponemos el nombre y marcamos la casilla FIB
  • vamos a crear 2 tablas nuevas, una para el ISP_02 y otra para el ISP_03, el ISP_01 va a usar la tabla main

Vamos a crear 3 reglas, la primera va a ser un action=accept y las otras dos routing mark al ISP correspondiente, tambien hay que configurar en la pestaña advanced el Peer Connection Classifier. Os dejo el pedazo de codigo para copiar y pegar.

/ip firewall mangle
add action=accept chain=prerouting per-connection-classifier=src-address:3/0 src-address=10.100.1.0/24
add action=mark-routing chain=prerouting new-routing-mark=ISP_02 passthrough=no per-connection-classifier=src-address:3/1 src-address=10.100.1.0/24
add action=mark-routing chain=prerouting new-routing-mark=ISP_03 passthrough=no per-connection-classifier=src-address:3/2 src-address=10.100.1.0/24

Crearemos las 3 rutas que van a comprobar si la wan tiene salida a internet. Con el scope a 10. Basicamente le vamos a decir que esta ruta la tiene directamente conectada.

/ip route
add comment=CHECK_DNS_WAN_1 disabled=no distance=1 dst-address=1.1.1.1/32 gateway=192.168.1.1 routing-table=main scope=10 suppress-hw-offload=no target-scope=10
add comment=CHECK_DNS_WAN_2 disabled=no distance=1 dst-address=9.9.9.9/32 gateway=192.168.2.1 routing-table=main scope=10 suppress-hw-offload=no target-scope=10
add comment=CHECK_DNS_WAN_3 disabled=no distance=1 dst-address=1.0.0.1/32 gateway=192.168.3.1 routing-table=main scope=10 suppress-hw-offload=no target-scope=10

Referencia: https://wiki.mikrotik.com/wiki/Manual:IP/Route

Ahora, crearemos nuestras rutas recursivas con los GW que hemos configurado anteriormente, le pondremos el target scope a 11 y el routing table que corresponda.

/ip route
add comment=RUTA_PRINCIPAL_WAN_1 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add comment=RUTA_PRINCIPAL_WAN_2 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=9.9.9.9 routing-table=ISP_02 scope=30 suppress-hw-offload=no target-scope=11
add comment=RUTA_PRINCIPAL_WAN_3 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.0.0.1 routing-table=ISP_03 scope=30 suppress-hw-offload=no target-scope=11

En este punto, ya tenemos creado el Balanceo de carga, cada Source Address va a salir por una WAN.

Vamos a crear el Failover para las 3 WAN de manera que si cae alguna de ellas, rediriga el trafico por las que estan disponibles.

En total tendremos 9 rutas, 3 principales y 2 backup de cada una de ellas.

Lo vamos a configurar con el parametro check ping y con distancias superiores ¡cuidado con el routing table! os dejo el export…

/ip route
add check-gateway=ping comment=RUTA_PRINCIPAL_WAN_1 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_PRINCIPAL_WAN_2 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=9.9.9.9 routing-table=ISP_02 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_PRINCIPAL_WAN_3 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.0.0.1 routing-table=ISP_03 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_1_POR_WAN_2 disabled=no distance=2 dst-address=0.0.0.0/0 gateway=9.9.9.9 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_1_POR_WAN_3 disabled=no distance=3 dst-address=0.0.0.0/0 gateway=1.0.0.1 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_2_POR_WAN_1 disabled=no distance=2 dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=ISP_02 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_2_POR_WAN_3 disabled=no distance=3 dst-address=0.0.0.0/0 gateway=1.0.0.1 routing-table=ISP_02 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_3_POR_WAN_1 disabled=no distance=2 dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=ISP_03 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_3_POR_WAN_2 disabled=no distance=3 dst-address=0.0.0.0/0 gateway=9.9.9.9 routing-table=ISP_03 scope=30 suppress-hw-offload=no target-scope=11

Y ya quedaria configurado el Balanceo + Failover.

Os dejo la configuracion completa …

/interface ethernet
set [ find default-name=ether1 ] comment=WAN_1
set [ find default-name=ether2 ] comment=WAN_2
set [ find default-name=ether3 ] comment=WAN_3
set [ find default-name=ether4 ] comment=RED_LAN
/interface list
add name=WAN
/ip pool
add name=POOL_DHCP_LAN ranges=10.100.1.2-10.100.1.254
/ip dhcp-server
add address-pool=POOL_DHCP_LAN interface=ether4 name=DHCP_LAN
/port
set 0 name=serial0
/routing table
add disabled=no fib name=ISP_02
add disabled=no fib name=ISP_03
/interface list member
add interface=ether1 list=WAN
add interface=ether2 list=WAN
add interface=ether3 list=WAN
/ip address
add address=192.168.1.2/24 comment=IP_ISP_01 interface=ether1 network=192.168.1.0
add address=192.168.2.2/24 comment=IP_ISP_02 interface=ether2 network=192.168.2.0
add address=192.168.3.2/24 comment=IP_ISP_03 interface=ether3 network=192.168.3.0
add address=10.100.1.1/24 comment=RED_LAN interface=ether4 network=10.100.1.0
/ip dhcp-client
add disabled=yes interface=ether1
add default-route-distance=2 disabled=yes interface=ether2
add disabled=yes interface=ether3
/ip dhcp-server network
add address=10.100.1.0/24 dns-server=8.8.8.8 gateway=10.100.1.1
/ip firewall mangle
add action=accept chain=prerouting per-connection-classifier=src-address:3/0 src-address=10.100.1.0/24
add action=mark-routing chain=prerouting new-routing-mark=ISP_02 passthrough=no per-connection-classifier=src-address:3/1 src-address=10.100.1.0/24
add action=mark-routing chain=prerouting new-routing-mark=ISP_03 passthrough=no per-connection-classifier=src-address:3/2 src-address=10.100.1.0/24
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN src-address=10.100.1.0/24
/ip route
add comment=CHECK_DNS_WAN_1 disabled=no distance=1 dst-address=1.1.1.1/32 gateway=192.168.1.1 routing-table=main scope=10 suppress-hw-offload=no target-scope=10
add comment=CHECK_DNS_WAN_2 disabled=no distance=1 dst-address=9.9.9.9/32 gateway=192.168.2.1 routing-table=main scope=10 suppress-hw-offload=no target-scope=10
add comment=CHECK_DNS_WAN_3 disabled=no distance=1 dst-address=1.0.0.1/32 gateway=192.168.3.1 routing-table=main scope=10 suppress-hw-offload=no target-scope=10
add check-gateway=ping comment=RUTA_PRINCIPAL_WAN_1 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_PRINCIPAL_WAN_2 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=9.9.9.9 routing-table=ISP_02 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_PRINCIPAL_WAN_3 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.0.0.1 routing-table=ISP_03 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_1_POR_WAN_2 disabled=no distance=2 dst-address=0.0.0.0/0 gateway=9.9.9.9 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_1_POR_WAN_3 disabled=no distance=3 dst-address=0.0.0.0/0 gateway=1.0.0.1 routing-table=main scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_2_POR_WAN_1 disabled=no distance=2 dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=ISP_02 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_2_POR_WAN_3 disabled=no distance=3 dst-address=0.0.0.0/0 gateway=1.0.0.1 routing-table=ISP_02 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_3_POR_WAN_1 disabled=no distance=2 dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=ISP_03 scope=30 suppress-hw-offload=no target-scope=11
add check-gateway=ping comment=RUTA_BACKUP_WAN_3_POR_WAN_2 disabled=no distance=3 dst-address=0.0.0.0/0 gateway=9.9.9.9 routing-table=ISP_03 scope=30 suppress-hw-offload=no target-scope=11

Y el video del canal …


Publicado

en

por

Etiquetas:

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies