2008-09-24

Balanceo de carga por 2 canales

En algunas ocasiones se tiene que poseas 2 conexiones a internet independientes, con Linux puedes balancear tu salida de internet por ambos canales convirtiendolos en unos solo y dadote el mayor ancho de banda posible, además si se cae un canal el detecta que no se puede ir por ese canal. La estrutura de red que vamos a hacer es así, pero ojo que esta es inventada y tiene los gateway mal, es solo para que nos guiemos como ejemplo




Lo primero a realizar es añadir a las tablas de sistema tus dos nuevas tablas de navegación, que denominaremos Canal_0 y Canal_1, para esto editaremos el archivo de la siguiente forma

root@localhost:~# vi /etc/iproute2/rt-filter

El cual debe quedar así

#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep

5 Canal_0
10 Canal_1

Los números que coloque hay son aleatorios, solo debes tenerlos en cuenta como referencia, bueno ya con las dos tablas permitidas ahora debes configurar los parámetros para las mismas, iniciaremos con Canal_0 que es el de la tarjeta eth0, bueno debes generar las características básicas de esa red, como es identificación de la red y el gateway o pasarela de la misma esto lo haces con estos dos comandos

root@localhost:~#ip route add 190.144.155.124/30 dev eth0 src 190.144.155.127 table Canal_0
root@localhost:~# ip route add default via 190.144.155.127 dev eth0 table Canal_0

Ya con esos dos comandos tenemos la primera red configurada, ahora vamos con la segunda, que es repetir lo mismo pero pues obviamente cambiando los datos esto quedaria así

root@localhost:~#ip route add 84.52.19.233/30 dev eth1 src 84.52.19.235 table Canal_1
root@localhost:~# ip route add default via 84.52.19.235 dev eth1 table Canal_1

Ahora adiciono las reglas de enrutamiento de cada una de las tablas, esto se hace para darle a entender que cada tabla tiene su gateway o pasarela, esto se hace con estos dos comandos

root@localhost:~# ip rule add from 190.144.155.127 table Canal_0
root@localhost:~# ip rule add from 84.52.19.235 table Canal_1

Bueno ya con esto tenemos en pleno conocimiento las dos rutas, ahora si viene el balanceo de las cargas en los canales, el cual se realiza con el siguiente comando

root@localhost:~# ip route add default scope global nexthop via 84.52.19.235 dev eth1 weigth 1 nexthop via 190.144.155.127 dev eth0 weigth 1

El parámetro weight, le da el peso a cada canal si deseas mas tráfico en uno que en el otro simplemente le aumentas el numero al que desees.

Para que pruebes que esta bien, le das el siguiente comando

root@localhost:~# ip route

Te debe mostrar algo como

190.144.155.124/30 dev eth0 proto kernel scope link src 190.144.155.127
84.52.19.233/30 dev eth1 proto kernel scope link src 84.52.19.235
default
nexthop via 84.52.19.235 dev eth1 weight 1
nexthop via 190.144.155.127 dev eth0 weight 1

Listo disfrutalo