[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [debian] balanceo internet



El 02/07/2014 5:31, gustavo c escribió:
En mi trabajo voy a tener dos proveedores de internet y quiero hacer
balanceo de carga. Tener un servidor con dos tarjetas de red para los
Proveedores de internet y una para la red lan.
Alguna recomendación, dificultad que voy a tener?
Me conviene usar algo que está preparado como zeroshell?
Yo deseo usar Debian

gracias



Reenvío a la lista un mensaje que me llega por privado:



-------- Mensaje original --------
Asunto: 	Re: [debian] balanceo internet
Fecha: 	Wed, 2 Jul 2014 14:39:37 -0500
De: 	Abraham Rico Moreno <>
Para: 	Francesc Guitart <>



#!/bin/bash
# The tests are now performed based on DNS resolve
# Update by Abraham Rico =)
source /tmp/initialconfig
PATH=/bin:/sbin:/usr/bin:/usr/sbin
# LINK1 = Enlace1, LINK2 = Enlace2, LINK 3 = Enlace3
IF1IP=IPEnlace1
IF1GW=Gatewayenlace1
IF2IP=IPEnlace2
IF2GW=Gatewayenlace2
IF3IP=IPEnlace3
IF3GW=Gatewayenlace2
IP=$(which ip)
dig @8.8.8.8 -b $IF1IP google.com <http://google.com> +time=1 1>
/dev/null 2>&1
if [ $? -eq 0 ]; then
    LINK1=1
else
    LINK1=0
fi
dig @8.8.8.8 -b $IF2IP google.com <http://google.com> +time=1 1>
/dev/null 2>&1
if [ $? -eq 0 ]; then
    LINK2=1
else
    LINK2=0
fi
dig @8.8.8.8 -b $IF3IP google.com <http://google.com> +time=1 1>
/dev/null 2>&1
if [ $? -eq 0 ]; then
    LINK3=1
else
    LINK3=0
fi

# LINK1 = Enlace1, LINK2 = Enlace2
if [ "$LINK1" == "$LINK1WAS" ] && [ "$LINK2" == "$LINK2WAS" ] && [
"$LINK3" == "$LINK3WAS" ]; then
    exit 0
fi

# LINK1 = Enlace1, LINK2 = Enlace2, LINK3 = Enlace3
if [ "${LINK1}" == "1" ] && [ "$LINK2" == "1" ] && [ "$LINK3" == "1" ]; then
    $IP route del default ; $IP route add default scope global nexthop
via $IF1GW dev eth0 weight 1 nexthop via $IF2GW dev eth2 weight 2
nexthop via $IF3GW dev eth4 weight 4
    echo "Los tres $(date +%F_%r)"  >> /root/internet-failover-historydos
    echo "LINK1WAS=1" > /tmp/initialconfig
    echo "LINK2WAS=1" >> /tmp/initialconfig
    echo "LINK3WAS=1" >> /tmp/initialconfig
    /sbin/ip route flush cache
    exit 0
fi

# LINK1 = Enlace1, LINK2 = Enlace2, LINK3 = Enlace3
if [ "${LINK1}" == "1" ] && [ "$LINK2" == "1" ] && [ "$LINK3" == "0" ]; then
    $IP route del default ; $IP route add default scope global nexthop
via $IF2GW dev eth2 weight 2 nexthop via $IF1GW dev eth0 weight 1
    echo "Fallo Enlace3, saliendo por Enlace1 y Enlace2 el $(date
+%F_%r)"  >> /root/internet-failover-historydos
    echo "LINK1WAS=1" > /tmp/initialconfig
    echo "LINK2WAS=1" >> /tmp/initialconfig
    echo "LINK3WAS=0" >> /tmp/initialconfig
    /sbin/ip route flush cache
    exit 0
fi

# LINK1 = Enlace1, LINK2 = Enlace2, LINK3 = Enlace3
if [ "${LINK1}" == "1" ] && [ "$LINK2" == "0" ] && [ "$LINK3" == "1" ]; then
    $IP route del default ; $IP route add default scope global nexthop
via $IF1GW dev eth0 weight 1 nexthop via $IF3GW dev eth4 weight 4
    echo "Fallo Enlace2, saliendo por Enlace1 y Enlace3 el $(date
+%F_%r)"  >> /root/internet-failover-historydos
    echo "LINK1WAS=1" > /tmp/initialconfig
    echo "LINK2WAS=0" >> /tmp/initialconfig
    echo "LINK3WAS=1" >> /tmp/initialconfig
    /sbin/ip route flush cache
    exit 0
fi

# LINK1 = Enlace1, LINK2 = Enlace2, LINK3 = Enlace3
if [ "${LINK1}" == "1" ] && [ "$LINK2" == "0" ] && [ "$LINK3" == "0" ]; then
    $IP route del default ; $IP route add default via $IF1GW
    echo "Fallo Enlace2 y Enlace3, saliendo por Enlace1 el $(date
+%F_%r)"  >> /root/internet-failover-historydos
    echo "LINK1WAS=1" > /tmp/initialconfig
    echo "LINK2WAS=0" >> /tmp/initialconfig
    echo "LINK3WAS=0" >> /tmp/initialconfig
    /sbin/ip route flush cache
    exit 0
fi

# LINK1 = Enlace1, LINK2 = Enlace2, LINK3 = Enlace3
if [ "${LINK1}" == "0" ] && [ "$LINK2" == "1" ] && [ "$LINK3" == "1" ]; then
    $IP route del default ; $IP route add default scope global nexthop
via $IF2GW dev eth2 weight 2 nexthop via $IF3GW dev eth4 weight 4
    echo "Fallo Enlace1, saliendo por Enlace2 y Enlace3 el $(date
+%F_%r)"  >> /root/internet-failover-historydos
    echo "LINK1WAS=0" >  /tmp/initialconfig
    echo "LINK2WAS=1" >> /tmp/initialconfig
    echo "LINK3WAS=1" >> /tmp/initialconfig
    /sbin/ip route flush cache
    exit 0
fi

# LINK1 = Enlace1, LINK2 = Enlace2, LINK3 = Enlace3
if [ "${LINK1}" == "0" ] && [ "$LINK2" == "1" ] && [ "$LINK3" == "0" ]; then
    $IP route del default ; $IP route add default via $IF2GW
    echo "Fallo Enlace1 y Enlace3 saliendo por Enlace2 el $(date
+%F_%r)"  >> /root/internet-failover-historydos
    echo "LINK1WAS=0" >  /tmp/initialconfig
    echo "LINK2WAS=1" >> /tmp/initialconfig
    echo "LINK3WAS=0" >> /tmp/initialconfig
    /sbin/ip route flush cache
    exit 0
fi

# LINK1 = Enlace1, LINK2 = Enlace2, LINK3 = Enlace3
if [ "${LINK1}" == "0" ] && [ "$LINK2" == "0" ] && [ "$LINK3" == "1" ]; then
    $IP route del default ; $IP route add default via $IF3GW
    echo "Fallo Enlace1 y Enlace2  saliendo por Enlace3 el $(date
+%F_%r)"  >> /root/internet-failover-historydos
    echo "LINK1WAS=0" >  /tmp/initialconfig
    echo "LINK2WAS=0" >> /tmp/initialconfig
    echo "LINK3WAS=1" >> /tmp/initialconfig
    /sbin/ip route flush cache
    exit 0
fi

# LINK1 = Enlace1, LINK2 = Enlace2, LINK3 = Enlace3
if [ "${LINK1}" == "0" ] && [ "$LINK2" == "0" ] && [ "$LINK3" == "0" ]; then
    echo "Sin Internet en los tres $(date +%F_%r)" >>
/root/internet-failover-historydos
    echo "LINK1WAS=0" >  /tmp/initialconfig
    echo "LINK2WAS=0" >> /tmp/initialconfig
    echo "LINK3WAS=0" >> /tmp/initialconfig
    exit 0
fi

Aquí te dejo uno que hice para tres salidas a internet, si quieres uno
de dos solo adaptalo , si necesitas ayuda enviame un correo
abricolabs[at]gmail.com <http://gmail.com>

Saludos



--
Francesc Guitart


Reply to: