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

Comentarios

  1. holaaaa niiñO emOxO

    iiO akii fiirmadOte thu liindO blOg

    aunke debO kOnfezar

    ke zta thOdaviia nO la leO :(

    perO la vOe a leer

    the lO prOmetO :D



    DiiegO eres una persOna

    zoOper zpeziial

    y soOper keriida para mii

    Ojala sii te kOnOziiera :(


    weenOp kuiidate muzhO


    aiiOzzzzzzzzzzzzzzz



    pd: the kiierO muzhO

    ResponderBorrar
  2. Hola
    Estoy usando ubuntu para hacer el test del balanceo, sigo paso a paso el tuto, sin embargo cuando desconecto un canal el otro no entra a funcionar automaticamente. Que puedo revisar?

    Saludos!

    ResponderBorrar
  3. Hola Javier, Este es un sistema de balanceo no de failover, para que te funcionara lo que desees deberías sensar la carga en los canales cuando el sistema se quede sin algún canal cambiar los pesos de la ruta por defecto para que todo el tráfico se use el canal que esta activo.

    Espero que sea clara la explicación, ya que este te sirve como balanceo pero no como failover que e lo que tu estas probando

    ResponderBorrar

Publicar un comentario