Centos 5 con 2 provedores Internet

Forums: 

Hola Amigos
En este momento tengo un proveedor de internet directamente a mi servidor linux y de ahi reparto internet, tengo smpt, ftp y http, lo que quisiera hacer es contratar otro proveedor con otro enlace de internet de 1 mb, porque al que tengo le digo que me de 2 y me quiere subir casi 10 veces màs el enlace, o me propone darme otro de 1 mb, pero lo que quiero hacer es lo siguiente, a mi servidor linux conectar los dos enlaces cada uno con u respectiva tarjeta y la tercera tarjeta para la LAN, y cuando los usuarios quieran navegar, todas las peticiones para internet mandarlo por un enlace y lo que es correo, ftp y http manejarlo por el otro enlace.
Gracias por su ayuda :)

De la pagina de features del

Imagen de chopeta

De la pagina de features del sitio de pfSense:

Firewall
* Highly flexible policy routing possible by selecting gateway on a per-rule basis (for load balancing, failover, multiple WAN, etc.)

Outbound Load Balancing
* Outbound load balancing is used with multiple WAN connections to provide load balancing and failover capabilities. Traffic is directed to the desired gateway or load balancing pool on a per-firewall rule basis.

No menciona ninguna limitacion conocida :)

Y viendo ese screenshot parece ser viable:
http://www.pfsense.org/screenshots/images/firewall_rules_edit.jpg

Habria que probar, yo creo que valdria la pena.

PLS,
chopeta

"Toda la unanimidad es tonta." -Nelson Rodrigues

realmente el failover que se

Imagen de Ascii

realmente el failover que se puede usar con esta solucion es simplemente hacer NAP con el IP de la otra interface. El ISP no te va a enrutar los IP que usas en un enlace por el de failover en caso de fallas.

Si lo que quieres hacer es un balance de ancho de banda real, entonces necesitas comprar un bloque de IP y un sistema autónomo.

Yo termine todo este tramite hace como 1 mes en Lacnic.

de software estoy usando Quagga para hacer todo el balanceo de mi trafico usando BGP.
http://www.quagga.net

Para todos los linuxeros que

Imagen de nino1511

Para todos los linuxeros que tienen este problema de tener mas de un ISP, aqui les va la solución, cansado de buscar encontre un como de Alex.

Yo solo agrego lo siguiente:
Los que estamos acostumbrados a usar /etc/sysconfig/network-script/ y luego los archivos de las interfaces deben de colocar en ONBOOT=no para que no levanten cuando se reinicia la maquina, ya que todo se hara con iproute2, lo de abajo creen un script y llamenlo de su firewall principal y listo mucha suerte.

Saludos

Balanceo de Carga (1 LAN x WAN)
Linux 2.6.x Balanceo de Carga COMO

Alejandro Espeche aespeche@yahoo.com.ar
BlueSkies id de http://www.linux.org.ar

-------------------------------------------------------------------------------
Este documento describe como unir varias conexiones a internet en una sola LAN.
-------------------------------------------------------------------------------

1. Introducción

Antes que nada quiero decir que me decidí a escribir esto (soy bastante vago para documentar) ya que este tema me rompió la cabeza por bastante tiempo. Me leí todo (bueno, casi todo) lo que encontré en la red, y nada, nada pareció funcionar, de todas maneras, les recomiendo que lean todo lo que puedan al respecto.

Lo siguiente es aclarar que no me hago responsable de nada absolutamente. Pero si alguien encuentra un mejor modo de hacer esto espero leer su COMO pronto.

2. Razones para usar el balanceo de carga

Tengo una LAN que demanda cada vez más. Asi que compramos más ADSL (cuando las telcos se decidan a bajar las lineas digitales, esto sera historia). Al principio marcaba los paquetes y los direccionaba a una u otra salida, como algunos salian con proxy (squid) y otros no, esto era suficiente. Y era dificil predecir cuales o cuantos servicios usar por ADSL.

Decidí que era momento de balancear cargas, lei la documentación al respecto, fracasé varias veces, pero hoy todo funciona perfecto. (al menos eso supongo)

3. Descripción del equipo

Server, linux 2.6.x (funciona tambien en 2.4.x)
Distro, Fedora Core 3 (si recompilan el kernel esta distro es sumamente estable)
NIC, varias (5) todas correctamente configuradas
ADSL, varios (4), marca Tainet.

4. Configurando la red

A los ADSL los deje haciendo NAT y discando solos, ya que con PPPoE tuve algunos incovenientes. La más facil era esta.

Me quedó la red de la siguiente forma:

eth0 LAN 192.168.100.254/24
eth1 10.0.1.1/24(ESTA ES LA IP DE LA TARJETA ETH1) GW WAN0 10.0.1.254/24
eth2 10.0.2.1/24 (ESTA ES LA IP DE LA TARJETA ETH2) GW WAN1 10.0.2.254/24
eth3 10.0.3.1/24 (ESTA ES LA IP DE LA TARJETA ETH3) GW WAN2 10.0.3.254/24
eth4 10.0.4.1/24 (ESTA ES LA IP DE LA TARJETA ETH4) GW WAN3 10.0.4.254/24

Espero que se entienda esto, si alguien lo quiere traducir a cristiano, mejor.

Para que esto funcione tenemos que usar iproute2, de nuevo aclaro que hay miles de páginas al respecto, asi que no sean tímidos, pueden leerlas de internet.

5. Armando el script
(se puede cortar y pegar, pero no va a funcionar a menos que tengas la misma configuracion mia )

#!/bin/sh

# Limpio la cache
# FC3 tiene configurado limpiar las tablas cada 5 minutos, se puede cambiar este tiempo.
ip route flush cache

# Reinicio lo
ip addr flush lo
ip link set lo down
ip addr add 127.0.0.1/8 dev lo
ip link set lo up

# Reinicio eth0, LAN, lo mismo esto para cada placa de red
ip addr flush eth0
ip link set eth0 down
ip addr add 192.168.100.254/24 dev eth0
ip link set eth0 up

# ... aqui van las otras placas exactamente =

# Reinicio eth4
ip addr flush eth4
ip link set eth4 down
ip addr add 10.0.4.1/24 dev eth4
ip link set eth4 up

# Limpio las tablas de ruteo
ip route flush default
ip route flush table 1
# ... aqui se vacian las otras tablas exactamente =
ip route flush table 4

# Creo las tablas de ruteo

ip route add 192.168.100.0/24 dev eth0 src 192.168.100.254
ip route add 10.0.1.0/24 dev eth1 src 10.0.1.1
# ... aqui van las otras tablas exactamente =
ip route add 10.0.0.0/24 dev eth4 src 10.0.4.1

# Este script me lo hice porque tenia fiaca de copiar cada tabla main en la respectiva tabla del 1 al 4, se puede mejorar, asi que toda suya

ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 1 $ROUTE ; done
# ... aqui van las otras copias de tablas exactamente =
ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 4 $ROUTE ; done

ip route add table 1 default via 10.0.1.254
# ... aqui van los otros GW exactamente =
ip route add table 4 default via 10.0.4.254

# configuro las reglas de ruteo
ip rule add from 10.0.1.1 table 1
# ... lo mismo que antes
ip rule add from 10.0.4.1 table 4

# balanceo de carga
ip route add default equalize nexthop via 10.0.1.254 dev eth1 weight 1 \\
nexthop via 10.0.0.3 dev eth2 weight 1 \\
# bueno aqui paras si tenes solo dos ADSL le sacas el \\ of course, sino agrega tantos
# nexthop como sean necesarios, una nota importante es el weight, yo les puse uno a todos
# porque todos mis ADSL son de 512, si tenes conexiones más veloces modificas este numero
# aqui dice que saldra una conexion por cada adsl, si pusiera 2 en alguno de ellos
# pasaran dos antes de seguir al siguiente ADSL
nexthop via 10.0.4.254 dev eth4 weight 1

#END

Bueno, ahi se termino todo, podes tener la red funcionando y correr esto, ya que bajo toda configuración anterior. Si queres ver si esto funciona pones lo siguiente:

ip route show, si te muestra algo como esto:

default equalize
nexthop via 10.0.1.254 dev eth1 weight 1
...
nexthop via 10.0.4.254 dev eth4 weight 1

Quiere decir que lo lograste, y podés mandar alguna donación para que yo pueda terminar mi primaria.

Usa iptraf para ver el trafico y ip route show cache para ver que sale por cada conexión.

6. Los últimos toques

Dije que algunos salen con proxy y otros sin, asi que agregue este par de líneas a mi firewall:

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 10.0.1.1
...
iptables -t nat -A POSTROUTING -o eth4 -j SNAT --to-source 10.0.4.1

Debería conectarse todo bien, deberían pasar los ping desde cualquier terminal a internet sin ningún problema, tendría que funcionar servicios vitales como el msn hotmail y yahoo.

Si algo esta mal o no funciona, me mandan un mail. Pero siempre teniendo en cuenta el punto 1 de este documento

Bueno, termine todo esto limitando el ancho de banda sobre todo a los P2P, usando CBQ.

Muchas gracias

Alex

Vamos Ecuador, si se puede

Páginas