Tengo un problema para balancear la carga entre dos routers.
Después de leer y probar varias cosas solo he conseguido dejar sin Internet a los usuarios de la red.
Me toca administrar la red de un instituto y han contratado otro adsl nuevo, a demás del que ya tenían de antes.
Tengo un un servidor proxy con ubuntu que da servicio a unos 120 pc mas o menos, la única pega es que tiene dos interfaces de red y no puedo poner mas. es una restricción que no puedo modificar.
De momento tengo un interfaz hacia la red de alumnos 10.10.10.0/24 y otro hacia la red del router 192.168.0.11 y que se conecta a un switch y de ahí a los dos routers con ip
192.168.0.100 y 192.168.0.101
|- 10.10.10.2 : eth2 -> hacia la red de alumnos
servidor proxy|
|-192.168.0.11:eth1 ->| s |
| w |->router1 192.168.0.100
| i |
| t |
| c |->router2 192.168.0.101
| h |
He probado un script como el que voy a poner abajo. pero se ve claramente que es para dos tarjetas de red en el servidor.
Lo que hace es establecer rutas mediante el comando ip en función de la tarjeta de salida y el peso que se le quiera dar pero yo solo puedo tener una tarjeta hacia los routers y ahi esta mi problema gordo. que no se por donde tirar.
Código:
#!/bin/sh
# Se definen las nuevas variables variables para el balance de carga
EXTERNALIF1IP="192.168.0.11"
EXTERNALIF1NET="192.168.0.0/24"
EXTERNALIF1GW="192.168.0.100"
EXTERNALIF1WEIGHT="1"
EXTERNALIF2IP="192.168.0.11"
EXTERNALIF2NET="192.168.0.0/24"
EXTERNALIF2GW="192.168.0.101"
EXTERNALIF2WEIGHT="2"
# Nombres para las tablas de ruteo iproute2
T1=router1
T2=router2
# Crear tablas de ruteo para las conexiones adsl
if [ `cat /etc/iproute2/rt_tables |grep 200 | wc -l` -eq 0 ]; then
echo 200 $T1 >> /etc/iproute2/rt_tables
fi
if [ `cat /etc/iproute2/rt_tables |grep 201 | wc -l` -eq 0 ]; then
echo 201 $T2 >> /etc/iproute2/rt_tables
fi
ip route flush 200
ip route flush 201
# Eliminar los gateways asignados por el sistema
## (si las direcciones se asignan por dhcp)
route del default gw $EXTERNALIF1GW
route del default gw $EXTERNALIF2GW
# Definiciones de enrutamiento
ip route add $EXTERNALIF1NET src $EXTERNALIF1IP table $T1
ip route add default via $EXTERNALIF1GW table $T1
ip route add $EXTERNALIF2NET src $EXTERNALIF2IP table $T2
ip route add default via $EXTERNALIF2GW table $T2
# Rutas principales
ip route add $EXTERNALIF1NET src $EXTERNALIF1IP
ip route add $EXTERNALIF2NET src $EXTERNALIF2IP
# Reglas
ip rule add from $EXTERNALIF1IP table $T1
ip rule add from $EXTERNALIF2IP table $T2
# Definicion del balance de carga
ip route add default scope global nexthop via $EXTERNALIF1GW weight $EXTERNALIF1WEIGHT \
nexthop via $EXTERNALIF2GW weight $EXTERNALIF2WEIGHT
ip route flush cache
exit 0
Un saludo
PD ya me leí todo lo que venía en el foro sobre balanceo de carga y no he visto nada que me pudiese ayudar por eso os pido ayuda con el tema.