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:
- Añadimos el comentario en las interfaces.
- Creamos el direccionamiento IP interno.
- Creamos el DHCP_Setup.
- 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.
- Nos vamos al menu Interfaces/Interface List y le damos al +
- Creraremos el Interface List WAN
- Añadiremos las interfaces ether1, ether2 y ether3 a la lista WAN que acabamos de crear.
- 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 …
- Vamos al menu Routing
- Vamos a la opcion Tables
- Creamos una nueva tabla con el +
- 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 …