La idea de balancear la carga manualmente es poder definir más de un gateway para distintos destinos, especificados por nosotros mismos. De esta manera, podremos tener dos o más salidas a internet y definir salidas hacia distintos rangos de direcciones ip.

Esto sirve de gran utilidad cuando nos conectamos a una red wifi que -por casualidad- llega hasta nuestro lugar de trabajo o nuestras casas e inocentemente queremos usarla. Por ejemplo, si tenemos un lugar de descargas, podemos dejar una máquina con una ruta estática que haga que cuando conecte a una IP x.x.x.x su salida a internet sea por el gateway predefinido por nosotros.
Para esto vamos a usar el comando route.
En este ejemplo, usaremos los destinos mi blog (este sitio), Google y Yahoo, para definir distintas salidas.
El primer paso consiste en identificar la dirección IP a la que queremos definir un gateway por defecto estático, batsa con que hagamos un ping al dominio de destino.
[zerial@daila ~]$ ping -c1 google.cl
PING google.cl (216.239.59.104) 56(84) bytes of data.
64 bytes from gv-in-f104.google.com (216.239.59.104): icmp_seq=1 ttl=243 time=258 ms
[zerial@daila ~]$ ping -c1 yahoo.es
PING yahoo.es (217.146.186.221) 56(84) bytes of data.
64 bytes from rc1.vip.ird.yahoo.com (217.146.186.221): icmp_seq=1 ttl=53 time=251 ms
[zerial@daila ~]$ ping -c1 blog.zerial.org
PING blog.zerial.org (72.14.186.179) 56(84) bytes of data.
64 bytes from blog.zerial.org (72.14.186.179): icmp_seq=1 ttl=55 time=189 ms
Ya tenemos identificadas las tres direcciones IP de destino:
blog.zerial.org -> 72.14.186.179
google.cl -> 216.239.59.104
yahoo.es -> 217.146.186.221
En nuestra red local tenemos 3 gateways disponibles, por ejemplo los con la direccion ip 192.168.0.1, 192.168.0.2 y 192.168.0.3.
Haremos que para llegar a blog.zerial.org usemos el gateway 1, a google.cl el gateway 2 y a yahoo.es el gateway 3.
Ejecutamos las siguientes reglas:
[root@daila ~]# route add -host 72.14.186.179 gw 192.168.0.1
[root@daila ~]# route add -host 216.239.59.104 gw 192.168.0.2
[root@daila ~]# route add -host 217.146.186.221 gw 192.168.0.3
Podemos comprobarlo haciendo una traza (traceroute) a los distintos destinos, veremos que el primer salto es nuestro nuevo gateway.
[root@daila ~]# traceroute blog.zerial.org
traceroute to blog.zerial.org (72.14.186.179), 30 hops max, 40 byte packets
1 192.168.0.1 (192.168.0.1) 1.582 ms 2.249 ms 3.687 m
[root@daila ~]# traceroute blog.zerial.org
traceroute to google.cl (216.239.59.104), 30 hops max, 40 byte packets
1 192.168.0.2 (192.168.0.2) 2.582 ms 2.256 ms 3.187 m
[root@daila ~]# traceroute yahoo.es
traceroute to yahoo.es (217.146.186.221), 30 hops max, 40 byte packets
1 192.168.0.3 (192.168.0.3) 1.555 ms 1.249 ms 3.688 m
Tambien podemos definir distintos gateways para distintos rangos de direcciones IP, para esto debemos cambiar el parametro -host < host> por -net < NET>.
Por ejemplo, ejecutamos el comando whois sobre la ip de zerial.org
[zerial@daila ~]$ whois 72.14.186.179
[...]
NetRange: 72.14.176.0 - 72.14.191.255
CIDR: 72.14.176.0/20
[...]
Nos interesa lo que dice NetRange y CIDR, entonces ejecutamos:
[root@daila ~]# route add -net 72.14.176.0 gw 192.168.0.2
De esta forma, todas las salidas a las direcciones ip que incluye la red 72.14.176.0 serán despachadas por el gateway 192.168.0.2.
editado Haldrik escribió en su blog algo similar, que nos puede servir para balancear la carga entre dos lineas adsl. Recomiendo leerlo.





3 respuestas hasta ahora ↓
1
Ivan Alexis
// May 18, 2009 a las 3:02 am
Y si por esas casualidades de la vida obtenemos asi sin querer un wifi de vtr utlizando un router vtr, cada conexion significa una ip diferente, cool xd.
2
Sebastian
// Ago 3, 2009 a las 12:03 am
Hola. La verdad no entiendo el sentido de esto. En un primer momento pense que el post se referia balance de carga. Salu2.-
3
Zerial
// Ago 3, 2009 a las 12:12 am
@Sebastian: Por eso hago referencia al termino “manual”, no es algo automatico, es un balanceo manual. Tener mas de una salida a internet (mas de 1 adsl) y poder definir porque gateway salir hacia cada red o host.
Toda esta idea nacio por una conversacon con Haldrik en irc, el por su lado escribio esto:
http://gnu-haldrik.blogspot.com/2009/05/balanceo-de-carga-con-dos-adsl-y-lenny.html
saludos
Deja un Comentario