Enviar Respuesta  Enviar Tema 
[howto] Balanceo de Carga (1 LAN x WAN)
Autor Mensaje
Whiskola
Flaming Cliff´s
****
Colaborador

Mensajes: 642
Grupo: Colaborador
Registro en: May 2005
Estado: Ausente
Reputación: 8
Mensaje: #1
[howto] Balanceo de Carga (1 LAN x WAN)

Linux 2.6.x Balanceo de Carga COMO

Alejandro Espeche aespeche@yahoo.com.ar
BlueSkies id de http://www.linux.org.ar

-------------------------------------------------------------------------------
Este documento describe como unir varias conexiones a internet en una sola LAN.
-------------------------------------------------------------------------------

1. Introducción

Antes que nada quiero decir que me decidí a escribir esto (soy bastante vago para documentar) ya que este tema me rompió la cabeza por bastante tiempo. Me leí todo (bueno, casi todo) lo que encontré en la red, y nada, nada pareció funcionar, de todas maneras, les recomiendo que lean todo lo que puedan al respecto.

Lo siguiente es aclarar que no me hago responsable de nada absolutamente. Pero si alguien encuentra un mejor modo de hacer esto espero leer su COMO pronto.

2. Razones para usar el balanceo de carga

Tengo una LAN que demanda cada vez más. Asi que compramos más ADSL (cuando las telcos se decidan a bajar las lineas digitales, esto sera historia). Al principio marcaba los paquetes y los direccionaba a una u otra salida, como algunos salian con proxy (squid) y otros no, esto era suficiente. Y era dificil predecir cuales o cuantos servicios usar por ADSL.

Decidí que era momento de balancear cargas, lei la documentación al respecto, fracasé varias veces, pero hoy todo funciona perfecto. (al menos eso supongo)

3. Descripción del equipo

Server, linux 2.6.x (funciona tambien en 2.4.x)
Distro, Fedora Core 3 (si recompilan el kernel esta distro es sumamente estable)
NIC, varias (5) todas correctamente configuradas
ADSL, varios (4), marca Tainet.

4. Configurando la red

A los ADSL los deje haciendo NAT y discando solos, ya que con PPPoE tuve algunos incovenientes. La más facil era esta.

Me quedó la red de la siguiente forma:

eth0 LAN 192.168.100.254/24
eth1 10.0.1.1/24 GW WAN0 10.0.1.254/24
eth2 10.0.2.1/24 GW WAN1 10.0.2.254/24
eth3 10.0.3.1/24 GW WAN2 10.0.3.254/24
eth4 10.0.4.1/24 GW WAN3 10.0.4.254/24

Espero que se entienda esto, si alguien lo quiere traducir a cristiano, mejor.

Para que esto funcione tenemos que usar iproute2, de nuevo aclaro que hay miles de páginas al respecto, asi que no sean tímidos, pueden leerlas de internet.

5. Armando el script
(se puede cortar y pegar, pero no va a funcionar a menos que tengas la misma configuracion mia 1-razz)



#!/bin/sh

# Limpio la cache
# FC3 tiene configurado limpiar las tablas cada 5 minutos, se puede cambiar este tiempo.
ip route flush cache

# Reinicio lo
ip addr flush lo
ip link set lo down
ip addr add 127.0.0.1/8 dev lo
ip link set lo up

# Reinicio eth0, LAN, lo mismo esto para cada placa de red
ip addr flush eth0
ip link set eth0 down
ip addr add 192.168.100.254/24 dev eth0
ip link set eth0 up

# ... aqui van las otras placas exactamente =

# Reinicio eth4
ip addr flush eth4
ip link set eth4 down
ip addr add 10.0.4.1/24 dev eth4
ip link set eth4 up

# Limpio las tablas de ruteo
ip route flush default
ip route flush table 1
# ... aqui se vacian las otras tablas exactamente =
ip route flush table 4

# Creo las tablas de ruteo

ip route add 192.168.100.0/24 dev eth0 src 192.168.100.254
ip route add 10.0.1.0/24 dev eth1 src 10.0.1.1
# ... aqui van las otras tablas exactamente =
ip route add 10.0.0.0/24 dev eth4 src 10.0.4.1

# Este script me lo hice porque tenia fiaca de copiar cada tabla main en la respectiva tabla del 1 al 4, se puede mejorar, asi que toda suya

ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 1 $ROUTE ; done
# ... aqui van las otras copias de tablas exactamente =
ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 4 $ROUTE ; done

ip route add table 1 default via 10.0.1.254
# ... aqui van los otros GW exactamente =
ip route add table 4 default via 10.0.4.254

# configuro las reglas de ruteo
ip rule add from 10.0.1.1 table 1
# ... lo mismo que antes 1-razz
ip rule add from 10.0.4.1 table 4

# balanceo de carga
ip route add default equalize nexthop via 10.0.1.254 dev eth1 weight 1 \\
nexthop via 10.0.0.3 dev eth2 weight 1 \\
# bueno aqui paras si tenes solo dos ADSL le sacas el \\ of course, sino agrega tantos
# nexthop como sean necesarios, una nota importante es el weight, yo les puse uno a todos
# porque todos mis ADSL son de 512, si tenes conexiones más veloces modificas este numero
# aqui dice que saldra una conexion por cada adsl, si pusiera 2 en alguno de ellos
# pasaran dos antes de seguir al siguiente ADSL
nexthop via 10.0.4.254 dev eth4 weight 1

#END

Bueno, ahi se termino todo, podes tener la red funcionando y correr esto, ya que bajo toda configuración anterior. Si queres ver si esto funciona pones lo siguiente:

ip route show, si te muestra algo como esto:

default equalize
nexthop via 10.0.1.254 dev eth1 weight 1
...
nexthop via 10.0.4.254 dev eth4 weight 1

Quiere decir que lo lograste, y podés mandar alguna donación para que yo pueda terminar mi primaria.

Usa iptraf para ver el trafico y ip route show cache para ver que sale por cada conexión.

6. Los últimos toques

Dije que algunos salen con proxy y otros sin, asi que agregue este par de líneas a mi firewall:

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 10.0.1.1
...
iptables -t nat -A POSTROUTING -o eth4 -j SNAT --to-source 10.0.4.1

Debería conectarse todo bien, deberían pasar los ping desde cualquier terminal a internet sin ningún problema, tendría que funcionar servicios vitales como el msn hotmail y yahoo.

Si algo esta mal o no funciona, me mandan un mail. Pero siempre teniendo en cuenta el punto 1 de este documento

Bueno, termine todo esto limitando el ancho de banda sobre todo a los P2P, usando CBQ.

Muchas gracias

Alex


Administrador preguntaslinux.org
Moderador linux.org.ar
06-21-2005 03:43 PM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
BlueSkies
Usuario PL


Mensajes: 17
Grupo: Registrado
Registro en: May 2005
Estado: Sin Conexión
Reputación: 1
Mensaje: #2
RE: Balanceo de Carga (1 LAN x WAN)

Ja,

el tipo que escribio esto es amigo mio...

Alex


AlexXx

No hay mejor firewall que cortar el rx de tu cable de red.
06-21-2005 09:35 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
miki_23
Usuario PL


Mensajes: 1
Grupo: Registrado
Registro en: Oct 2007
Estado: Sin Conexión
Reputación: 0
Mensaje: #3
RE: [howto] Balanceo de Carga (1 LAN x WAN)

hola, por favor me podrías decir en donde se incluiría ese script? en que ruta? o como haces para que eso se ejecute? con el cron? Tengo fedora core 6, muchas gracias de antemano por tu ayuda!!!.

10-21-2007 10:22 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
p_eter
Chaos Manager
*******
Administrador

Mensajes: 4,041
Grupo: Administrador
Registro en: Jun 2005
Estado: En Línea
Reputación: 11
Mensaje: #4
RE: [howto] Balanceo de Carga (1 LAN x WAN)

Hola miki_23, BlueSkies dice que lo ha escrito en forma de shell script para evitarse el ingreso (tipeo) repetitivo. A la vez ya que supuso un trabajo un investigación, esto le otorga forma de documentación y facilita el control de lo ensayado.
No es un script universal ni para ser lanzado de forma automática.
Dice que debes adecuarlo a tu topología de red. Lo que presupone ciertos conocimientos, por eso sugiere leer todo la documentación que esté a tu alcance sobre el tema.
De seguro sabrás valorar el aporte de BlueSkies, y colaborar a enriquecerlo.


Este mensaje fue modificado por última vez en: 10-22-2007 01:33 PM por p_eter.

10-22-2007 01:24 PM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
Cachaca
Usuario PL


Mensajes: 1
Grupo: Registrado
Registro en: Jun 2008
Estado: Sin Conexión
Reputación: 0
Mensaje: #5
RE: [howto] Balanceo de Carga (1 LAN x WAN)

Whiskola: Muy muy buena la explicación, sobre Balanceo de Cargas, ... es totalmente clara y practica. Solo dos dudas: 1- En caso de caída de un ADSL que pasa con las conexiones .. 2 - Como utilizarías el weight con aproximadamente 200 usuarios LAN y conexiones de 2M ADSL ? Desde ya muchas gracias !!!

06-26-2008 04:25 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
Enviar Respuesta  Enviar Tema 

Posibles Temas Similares...
Tema: Autor Respuestas: Vistas: Ultimo Mensaje
  [howto] Instalar driver Conexant HDAudio Soft Data Fax Modem con SmartCP p_eter 0 45 Ayer 04:40 PM
Ultimo Mensaje: p_eter
  [howto] Metin2 Bajo Linux Abejo 0 107 06-28-2008 01:46 PM
Ultimo Mensaje: Abejo
  [howto] Instalar Screenlets p_eter 3 112 06-17-2008 12:34 PM
Ultimo Mensaje: p_eter
  [howto] Instalar impresora Epson Stylus 777 en Gentoo franchox 2 1,438 06-10-2008 11:12 PM
Ultimo Mensaje: p_eter

Ver la Versión para Impresión
Mandar este Tema a algún Amigo
Subscríbete a este Tema | Agrega este Tema a Tus Favoritos

Salto de Foro: