El día 8 de mayo de 2009 11:45, Francisco Santos
<fsantos@rocagdl.com.mx> escribió:
hola amigo tengo un poco de experiencia en este campo y creo que estas
metiendo las 4 (sin ofender)
en tu script tienes esto
echo 200 T1 >> /etc/iproute2/rt_tables
echo 200 T2 >> /etc/iproute2/rt_tables
para empezar con esto cada vez que ejecutes el script te creara unas lineas
nuevas en /etc/iproute2/rt_tables
--por lo que solo devez de crearlos la primera vez y quitarlo de tu scrip
otro error que encontre en tu script es que le pones el mismo numero a las
tablas (200)
--devez de poner numeros diferntes ya que tengo entendido que cuando cargas
las tablas el kernel liga tanto el nombre (T1) como el numero (200) por lo
ke tener el mismo numero podria ocacionarte problemas
IF0="eth0" # Interface conectada a la LAN
IF1="eth1" # Interface conectada a ADSL1 Lenta
IF2="eth2" # Interface conectada a ADSL2 Rápida
IP0="192.168.1.1" # Ip de la LAN
IP1="10.1.0.1" # ip para IF1
IP2="10.1.1.1" # ip para IF2
P0_NET="192.168.1.0/24" # Red de la IP1
P1_NET="10.1.0.0/24" # Red de la IP2
P2_NET="10.1.1.0/24"
P1="10.1.0.1" # Gateway para ADSL1
P2="10.1.1.1" # Gateway para ADSL2
en la parte de arriba de nuevo metes las 4 ..
IP1=Aqui tienes que poner la ip asignada a tu interfaz IF1 podria ser
(10.1.0.2) o cualquier ip que este en el rango para tomar internet de tu
provedor1 (NO ENTIENDO POR QUE PONES LA IP DE TU GATEWAY)
IP2= Lo mismo de arriba pero para IF2 10.1.1.2
por ahora esos son los errores que detecte a simple vista (no revise el
script completo) puedes corregirlos e intentar de nuevo a ver ke nuevo error
te tira
pd. el manual de larct funciona yo tengo un server con balanceo con ese
script
si tienes alguna duda te dejo mi msn donde regularmente estoy en linea
fjsl_@hotmail.com
suerte y salu2....
Hola, lo de agregar las tablas lo hacía solo una vez, al correr de nuevo el
script lo comentaba, pero buee así va quedando el script:
IF0="eth0" # Interface conectada a la LAN
IF1="eth1" # Interface conectada a ADSL1 Lenta
IF2="eth2" # Interface conectada a ADSL2 Rápida
IP0="192.168.1.50"
IP1="10.1.0.2"
IP2="10.1.1.2"
P0_NET="192.168.1.0/24"
P1_NET="10.1.0.0/24"
P2_NET="10.1.1.0/24"
P1="10.1.0.1" # Gateway para ADSL1
P2="10.1.1.1" # Gateway para ADSL2
# Creo las tablas de rutas para las dos interfaces uplink
echo "Creo las rutas para cada tabla"
ip route add ${P1_NET} dev ${IF1} src ${IP1} table T1
ip route add default via ${P1} table T1
ip route add ${P2_NET} dev ${IF2} src ${IP2} table T2
ip route add default via ${P2} table T2
# Aseguro que cada red enviará sus solicitudes a la ip correcta
echo "Aseguro la ruta para cada interface e ip"
ip route add ${P1_NET} dev ${IF1} src ${IP1}
ip route add ${P2_NET} dev ${IF2} src ${IP2}
# Selecciono una ruta por defect
echo "Selecciono ruta por defecto"
ip route add default via ${P1} # Esto lo he comentado también
# Creo dos reglas para que cada ip se fije a su tabla de rutas
echo "Creo reglas para cada tabla"
ip rule add from ${IP1} table T1
ip rule add from ${IP2} table T2
# Hago el balanceo 1 a 1
echo "Hago el balanceo"
ip route add default scope global nexthop via ${P1} dev ${IF1} weight 2 \
nexthop via ${P2} dev ${IF2} weight 1
echo "Refresco las rutas"
ip route flush cache
Listo, teniendo esto todavía no hay balanceo pero ya hay algo
distinto, incluso le puse mas carga a la interface lenta para ver que
sucedía, por ahora parece que el linux siempre va a usar ADSL2 que
es la mas rápida y está conectada a eth2.
edoras:~# ./doble-ruta
Limpiando Reglas Anteriores...
Creo las rutas para cada tabla
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
Aseguro la ruta para cada interface e ip
RTNETLINK answers: File exists
RTNETLINK answers: File exists
Selecciono ruta por defecto
RTNETLINK answers: File exists
Creo reglas para cada tabla
Hago el balanceo
RTNETLINK answers: File exists
Refresco las rutas
edoras:~# ip route list table main
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.50
10.1.0.0/24 dev eth1 proto kernel scope link src 10.1.0.2
10.1.1.0/24 dev eth2 proto kernel scope link src 10.1.1.2
default via 10.1.1.1 dev eth2
default via 10.1.0.1 dev eth1
edoras:~# ip route list table T1
10.1.0.0/24 dev eth1 scope link src 10.1.0.2
default via 10.1.0.1 dev eth1
edoras:~# ip route list table T2
10.1.1.0/24 dev eth2 scope link src 10.1.1.2
default via 10.1.1.1 dev eth2
No se si halla que especificar algo mas, como que no use
la tabla main sino la T1 y T2, no se.