lunes, 20 de diciembre de 2021

Configuración de balanceo de cargas en Mikoritk paso a paso

Configuración de un mikrotik para balancear 3 diferentes proveedores de Internet con salida a los demás puertos a través de un "virtual switch"



Esta configuración se ha realizado en un RB3001, se puede realizar en otros modelos de 10 puertos sin modificar los comandos o en caso contrario solo es ajustar los comandos a las necesidades, si se entiende el concepto puedes usar 2 o 4 WAN o las que necesites.

Antes de comenzar es importante explicar que representa cada rango de IPs, de igual manera, en el ejemplo se tendría que modificar la ip que entrega cada proveedor de acuerdo a la configuración del mikrotik, o en su defecto modificar los comandos a las WAN de los modem, yo recomiendo la primera para tener un mejor control de todo y no tener subredes que den trabajo identificar.

WAN1: 10.10.11.254 (IP del modem del ISP1)
WAN2: 10.10.12.254 (IP del modem del ISP2)
WAN3: 10.10.13.254 (IP del modem del ISP3)
LAN: 192.168.4.254 (IP del mikrotik como puerta de enlace para la red LAN, a través de un bridge del ether 4 al ether10)

ether1: 10.10.11.100/24 (Puerto 1 del mikrotik que interactúas con el ISP1)
ether2: 10.10.12.100/24 (Puerto 2 del mikrotik que interactúas con el ISP2)
ether3: 10.10.13.100/24 (Puerto 3 del mikrotik que interactúas con el ISP3)

208.67.220.220 : IP DNS que nos sirve para ver si tiene salida a internet el ISP1
208.67.222.222 : IP DNS que nos sirve para ver si tiene salida a internet el ISP2
156.154.70.1 : IP DNS que nos sirve para ver si tiene salida a internet el ISP3
(Estas ultimas sirve para hacer la redundancia y cuando una de ellas no tiene salida a internet el Mikrotik la descarta aun siga encendido el modem, a esto se le llama failover recursivo)

Ya explicado esto empezamos con la configuración

1. Lo primero que tenemos que hacer es conectarnos a nuestro Mikrotik a través de Winbox y borrar la configuración para dejarlo en blanco (es importante no dejar la configuración que trae por default ni la sugerida)

2. Después abrimos la terminal y vamos pegando comando por comando para ver que no tengamos errores, o seleccionamos todo y lo pegamos para que se ejecuten, si eres principiante te recomiendo ir pegando linea por linea para que te obliges a entender como funciona cada comando.

/interface bridge
add name=bridge-LAN
/interface bridge port
add bridge=bridge-LAN interface=ether4
add bridge=bridge-LAN interface=ether5
add bridge=bridge-LAN interface=ether6
add bridge=bridge-LAN interface=ether7
add bridge=bridge-LAN interface=ether8
add bridge=bridge-LAN interface=ether9
add bridge=bridge-LAN interface=ether10

/ip address
add address=10.10.11.100/24 network=10.10.11.0 broadcast=10.10 11.255 interface=ether1
add address=10.10.12.100/24 network=10.10.12.0 broadcast=10.10.12.255 interface=ether2
add address=10.10.13.100/24 network=10.10.13.0 broadcast=10.10.13.255 interface=ether3
add address=192.168.4.254/24 network=192.168.4.0 broadcast=192.168.4.255 interface=bridge-LAN

/ip
pool add name=DHCP ranges=192.168.4.1-192.168.4.199
dhcp-server add name=DHCP interface=bridge-LAN address-pool=DHCP lease-time=259200 bootp-lease-time=forever authoritative=yes disabled=no
dhcp-server network add address=192.168.4.0/24 gateway=192.168.4.254 dns-server=8.8.8.8,8.8.4.4

/ip firewall mangle
add chain=prerouting dst-address=10.10.11.0/24 action=accept in-interface=bridge-LAN
add chain=prerouting dst-address=10.10.12.0/24 action=accept in-interface=bridge-LAN
add chain=prerouting dst-address=10.10.13.0/24 action=accept in-interface=bridge-LAN

add chain=prerouting in-interface=ether1 connection-mark=no-mark action=mark-connection new-connection-mark=ISP1_conn
add chain=prerouting in-interface=ether2 connection-mark=no-mark action=mark-connection new-connection-mark=ISP2_conn
add chain=prerouting in-interface=ether3 connection-mark=no-mark action=mark-connection new-connection-mark=ISP3_conn

add chain=prerouting in-interface=bridge-LAN connection-mark=no-mark dst-address-type=!local per-connection-classifier=both-addresses:3/0 action=mark-connection new-connection-mark=ISP1_conn
add chain=prerouting in-interface=bridge-LAN connection-mark=no-mark dst-address-type=!local per-connection-classifier=both-addresses:3/1 action=mark-connection new-connection-mark=ISP2_conn
add chain=prerouting in-interface=bridge-LAN connection-mark=no-mark dst-address-type=!local per-connection-classifier=both-addresses:3/2 action=mark-connection new-connection-mark=ISP3_conn

add chain=prerouting connection-mark=ISP1_conn in-interface=bridge-LAN action=mark-routing new-routing-mark=to_ISP1 passthrough=no
add chain=prerouting connection-mark=ISP2_conn in-interface=bridge-LAN action=mark-routing new-routing-mark=to_ISP2 passthrough=no
add chain=prerouting connection-mark=ISP3_conn in-interface=bridge-LAN action=mark-routing new-routing-mark=to_ISP3 passthrough=no

add chain=output connection-mark=ISP1_conn action=mark-routing new-routing-mark=to_ISP1 passthrough=no
add chain=output connection-mark=ISP2_conn action=mark-routing new-routing-mark=to_ISP2 passthrough=no
add chain=output connection-mark=ISP3_conn action=mark-routing new-routing-mark=to_ISP3 passthrough=no

/ip route
add dst-address=0.0.0.0/0 gateway=208.67.220.220 distance=1 routing-mark=to_ISP1
add dst-address=0.0.0.0/0 gateway=208.67.222.222 distance=2 routing-mark=to_ISP2
add dst-address=0.0.0.0/0 gateway=156.154.70.1 distance=3 routing-mark=to_ISP3

add dst-address=0.0.0.0/0 gateway=208.67.220.220 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=208.67.222.222 distance=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=156.154.70.1 distance=3 check-gateway=ping

add dst-address=208.67.220.220 gateway=10.10.11.254 distance=1 scope=10 check-gateway=ping
add dst-address=208.67.222.222 gateway=10.10.12.254 distance=2 scope=10 check-gateway=ping
add dst-address=156.154.70.1 gateway=10.10.13.254 distance=3 scope=10 check-gateway=ping

/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade

Ya con esto nuestro mikrotik estará configurado, una vez configurado cada modem de los proveedores solo queda conectar a los puertos correspondientes y hacer pruebas, esto hace un balanceo de carga y se contempla con 3 servicios similares en ancho de banda en caso de tener un enlace por ejemplo de 100mbps y uno de 10mbps, estaré explicando en otro post como modificar los parámetros para que pase mas información en el de 100mbps (relación de 10 a 1)

Recuerda que si te gusto no olvides compartirlo para que mas personas aprendan o se les facilite dicha configuración.

No olvides darte una vuelta por los demás blogs Talves encuentres algo que te guste.

jueves, 17 de septiembre de 2020

Solucionar error 'error: kex protocol error: type 30 seq 1 [preauth]'

 En esta ocasión les traigo como solucionar el error de autenticación que nos arroja (en mi caso) por ssh a un servidor Ubuntu Server 20.04



En el programa donde nos queremos conectar nos arroja un mensaje como este 'el servidor envia un paquete inesperado received:3, expected:20' mientras que en los logs del servidor, con el comando:

systemctl status ssh

Nos arroja algo como esto  'error: kex protocol error: type 30 seq 1 [preauth]'

La solucion es editar el siguiente archivo:

/etc/ssh/sshd_config

puede ser con el comando:

nano /etc/ssh/sshd_config

y le agregamos la siguiente linea:

KexAlgorithms +diffie-hellman-group14-sha1

Una vez agregado guardamos con Ctrl + X y Y para guardar.

reiniciamos el servicio con el comando:

service ssh restart

y listo, el problema se habra resuelto, no olviden compartir.


Saludos.