0
Failover/Load Balancing CentOS

Open 6 Respuestas 35 Views
Ando necesitando darle a un colegio la capacidad de salir por una segunda conexion cuando la primera se caiga, y quizás más adelante, balancear la carga. Tengo un CentOS haciendo de Proxy y me encontré con esto:

https://www.unixmen.com/linux-basics-create-network-bonding-on-centos-76-5/

Parece bastante simple de hacer, pero buscando un poco por acá encontré que varios recomiendan laburar con iptables e iproute2 (los cuales, para mi a esta altura, son un poco similares a la magia negra porque no capto una).

Ustedes que tienen más experiencia: voy por el bonding o tengo que si o si usar iptables?

Gracias!

6 Respuestas

1
Buenas, bonding no te sirve porque seria para usar las 2 placas para la misma ip. Necesitas tener las 2 placas activas y trabajar en la capa de routing marcando paquetes.

Fijate https://sysarmy.com.ar/help/?qa=17/5-redes-adsl-balanceadas , http://serverfault.com/questions/93678/load-balancing-nat-ing-multiple-isp-connections-on-linux
respondido por edux (12,550 puntos) Ago 17, 2016
1Comentarios
comentado por GuilleX (530 puntos) Ago 17, 2016
Gracias! Voy a escarbar más entonces
0
Para hacer bonding creo que es necesario un trabajo del lado del proveedor de internet que te permita sumar las placas, en caso contrario lo que vas a tener en solo balanceo, me explico:

 

Bonding: suma de internet, si tengo 2 conexiones de 3mb si hago bonding puedo hacer 1 descarga de 6mb. Digo 1 porque uno podría usar multiples conexiones, pero la idea es que sea asimilado como un único enlace.

Balanceo: las mismas 2 conexiones no se suman, pero permiten tener descargas por un total de la suma de las dos. Puedo bajar 2 archivos al mismo tiempo, pero nunca alguno de los dos va a descargar a 6mb (no vale usar aceleradores de descargas que parten la descarga en mini descargas). En este caso un torrent por ejemplo tambien llega a 6mb

Lo que vos queres es yo alguna vez lo hice con Shorewall [1], desde ahí se puede usar un script que se llama LSM [2] que te permite chequear las conexiones todo el tiempo y actuar rapidamente ante una caida de una de las lineas. Por lo menos podes mirar LSM para entender que hace para actuar.

Si te tengo que decir que si queres empezar de 0 vas a reinventar la rueda, te juro que es un quilombo poder tirar todas las lineas de iproute2 e iptables para que todo funcione como vos queres, normalmente algo te queda afuera y la conectividad se va al carajo.

Actualmente para resolver esto vengo utilizando OpenWRT[3] que con poca plata (un tp-link gama media) te permite usando el addon mwan3 en pocos pasos y via web todo lo que vos queres hacer. Para mí tiene pros y contras:

Pros:

* Bajo consumo de energia

* Facil de reemplazar en caso de rotura (se rompe el router levantas un backup y pones otro. Se rompe la fuente se reemplaza).

* Instalacion en 10 minutos

* Inicia en pocos segundos

 

Contras:

* no soporta squid

* poco CPU para poder hacer cosas potentes, por ejemplo aplicar QoS (se lo banca pero se manca cuando empezas a forzarlo).

 

Bueno, quizás podría escribir más, pero seguro ya te aburrí.

 

Saludos!

 

[1] http://shorewall.net/MultiISP.html

[2] http://lsm.foobar.fi/

[3] https://openwrt.org/
respondido por Gamba47 (4,080 puntos) Ago 17, 2016
2Comentarios
comentado por GuilleX (530 puntos) Ago 17, 2016
El tema del OpenWrt es que lo voy a poner por arriba del proxy y el balanceo de carga por fuera del equipo no va a funcionar (por el NATeo)

Failover sin embargo si...
comentado por Gamba47 (4,080 puntos) Ago 17, 2016
Y si tu proxy es transparente podrías redireccionar por iptables todo ahí.
Si tu proxy no es transparente es porque en las PCs hay una configuración que las hace pasar por intermedio del mismo.

En ambos casos podrías armar una red para que todo el tráfico pase por el Centos y que desde ahí tengas un equipo que se encargue del balanceo, failover, etc. Obviamente las opciones son dos:
* Centos en modo bridge y que pase todo transparente menos la parte del proxy.
* Centos que haga tambien NAT, tendrías 2 nat, pero si es tu red no es algo que te complique (podes hacer un DMZ al Centos y listo).

Otra opción que alguna vez use es en el Centos tener 2 IPs (de la red del router/equipo que elijas) y que le des la opción de además del Fail2over poder seleccionar que tráfico sale por donde, por ejemplo, podrías hacer que youtube, facebook, etc salgan por una conexión de backup donde mandarías el trafico bulk y por la conexión principal sacas todo el tráfico importante (siempre hablamos de navegación).

Las opciones son varias, ya te nombraron pfsense, que realmente anda muy bien pero a mi gusto no deja de ser un problema tener un equipo más prendido (fui MiniISP en algún momento y lo que más sufría era cuando en el server fallaba el disco o se jodía el mother por un rayo, eso era la muerte, empezar a levantar servicios de nuevo, dhcp, todo, obviamente era un tonto que siempre estaba en bolas y sin un backup decente).

Creo que lo mejor es que vos definas hasta donde queres llegar con el aprendizaje, con que tiempos contas y tambien la dimensión de la red.

Yo hoy con un OpenWRT 1043nd + un A4 con 2gb de ram tengo el balanceo por un lado y el proxy por otro. Más o menos unos 110 usuarios, simultaneos puedo tener 40/45 no más que eso.

Saludos!
gamba47
1
Yo te recomiendo que si no tenes idea uses pfsense. Bonding no es lo que necesitas, se usa para que varias ethernet respondan como si fuera una y necesita configuracion del lado del switch. Iptables/iproute2 funcionan pero vas a tener un buen tiempo de aprendizaje y seguramente agujeros de seguridad mas mucho soporte hasta que lo entiendas bien.

Con pfsense podes conectar a varias conexiones de internet y balancear carga, hacer failover, usar proxy, captive portal, dhcp, radius, etc...etc... y todo desde una interfaz web.

Saludos
respondido por luigibalzani (10,570 puntos) Ago 17, 2016
1Comentarios
comentado por GuilleX (530 puntos) Ago 17, 2016
Era la alternativa, al menos con el failover, pero como comenté arriba, al estar por fuera del proxy no va a funcionar el balanceo
0
otra opción es usar un router que maneje varias conexiones de internet
respondido por anónimo Ago 17, 2016
0
Una opción es usar LSM y Shorewall. con LSM administras las caidas y con shorewall podes administrar de forma mucho más sencilla iptables. (obviamente tenes que leer documentación de shorewall)
respondido por Epsilon Ago 22, 2016
0
Hola, si aún no consigues la solución, puedo recomendarte ClearOS (basado en centos)
Es fácil de usar y puedes hacer tanto balanceo de cargas como failover (independiente de si usas proxy o no)
Cualquier duda o consulta estoy a tus órdenes.
respondido por PabloIT01 Sep 12, 2016
1Comentarios
preguntado por anónimo Abr 13, 2018 mwan3 en tp-link
...