In many location, including but definitely not limited to India, single ADSL / Cable connections can be unreliable and also may not provide sufficient bandwidth for your purposes. En muchos ubicación, incluyendo pero no limitado a la India, único ADSL / Cable conexiones pueden ser poco fiables y que también puede no proporcionar suficiente ancho de banda para sus propósitos. One way to increase reliability and bandwidth of your internet connection is to distribute the load (load balancing) using multiple connections. Una manera de reforzar la fiabilidad y el ancho de banda de tu conexión a Internet para distribuir la carga (balanceo de carga) a través de múltiples conexiones. It is also imperative to have transparent fail-over so routes are automatically adjusted depending on the availability of the connections. También es imprescindible contar con transparente a prueba de fallas para que las rutas más se ajusta automáticamente dependiendo de la disponibilidad de las conexiones. With load balancing and fail-over you can have reliable connectivity over two or more unreliable broadband connections (like BSNL or Tata Indicom in India). Con balanceo de carga y no más-que pueden tener conectividad fiable de más de dos o más conexiones de banda ancha poco fiables (como BSNL o Tata Indicom de la India). I present you with the simplest solution to a complex problem with live examples. Presento a usted la solución más simple para un problema complejo con ejemplos vivos.

Note: Load balancing doesn’t increase connection speed for a single connection. Nota: La carga de equilibrio no aumenta la velocidad de conexión para una misma conexión. Its benefits are realized over multiple connections like in an office environment. Sus beneficios se realizan a través de múltiples conexiones como en un entorno de oficina. The benefits of fail-over are however realized even in a single user environment. Los beneficios de no-son, sin embargo, más de realidad incluso en un solo entorno de usuario.

The load balancing mechanism, to be discussed with example below, in Linux caches routes and doesn’t provide transparent fail-over support. El mecanismo de equilibrio de carga, para ser discutido con el ejemplo de abajo, en escondites de las rutas de Linux y no ofrece transparencia a prueba de fallas más apoyo. There are two solutions to incorporate transparent fail over - 1. Hay dos soluciones para incorporar no más transparente - 1. compiling and using a custom Linux kernel with compilar y usar un kernel personalizado de Linux con Julian Anastasov’s kernel patches Julian Anastasov el núcleo de parches for dead gateway detection or 2. muertos para la detección de puerta de enlace o 2. user space script to monitor connections and dynamically change routing information. el espacio de usuario script para las conexiones del monitor y cambiar dinámicamente información de enrutamiento.

Julian Anastasov’s patches have two problems: Julian Anastasov de parches tienen dos problemas:
1. They work Trabajan only when the first hop gateway is down sólo cuando el primer salto es puerta de entrada hacia abajo . In many cases, including ours, the first hop gateway is the adsl modem cum router which is always up. En muchos casos, incluida la nuestra, el primer salto es la puerta de enlace adsl modem router cum que siempre está arriba. So we need a more robust solution for our purposes. Por lo tanto, necesitamos una solución más robusta para nuestros propósitos.

2. You have to compile a custom kernel with patches. Tienes que compilar un kernel personalizado con parches. This is somewhat complex procedure with reasonable chances of screwing up something. Esto es algo complejo procedimiento con posibilidades razonables de atornillar algo. It also forces you to re-patch the kernel every time you decide to update your kernel. También te obliga a volver a los parches del kernel cada vez que usted decide actualizar su núcleo. Overall I wouldn’t recommend anyone going for kernel patching route unless that is the only option. En general yo no recomiendo a nadie va parches para el núcleo a menos que la ruta es la única opción. Also in that case you should look for a rpm based solution (like También en ese caso, debería buscar una solución basada en rpm (como livna rpm for nVidia drivers livna rpm nVidia para los conductores ) which does it automatically for you. ) Que lo hace automáticamente para usted.

A better solution is to use a userspace program which monitors your connection and updates routes as necessary. Una solución mejor es usar un programa de usuario que vigila tu conexión y actualizaciones de rutas que sea necesario. I will provide a script which we use to constantly monitor our connections. Voy a ofrecer un script que usamos a un seguimiento constante de nuestras conexiones. It provides transparent fail over support with two ADSL connections. Proporciona transparencia no más de apoyo con dos conexiones ADSL. It is fully configurable and can be used for any standard dual ADSL / Cable connections to provide transparent fail over support. Es totalmente configurable y se puede utilizar para cualquier estándar doble ADSL / Cable para proporcionar conexiones transparentes no más de apoyo. It can also be easily modified to use for more than two connections. También se puede modificar fácilmente para usar durante más de dos conexiones. You can also use it to log uptime / downtime of your connections También se puede utilizar para registrar el tiempo de actividad / tiempo de inactividad de sus conexiones like we did al igual que lo hicimos .

Let’s first discuss load balancing with two ADSL / Cable connections and then we will see how to provide transparent fail-over support. Vamos a discutir primero balanceo de carga con dos ADSL / Cable conexiones y luego veremos cómo proporcionar transparente a prueba de fallas más apoyo. The ideas and script provided here can be easily used for more than two connections with minor modifications. Las ideas y la escritura que aquí puede ser usado fácilmente por más de dos conexiones con ligeras modificaciones.

Requirements for Load Balancing multiple ADSL / Cable Connections Requisitos para la carga de múltiples ADSL / Cable Conexiones

1. Obviously you need to have multiple (A)DSL or Cable connections in the first place. Es evidente que es necesario que usted tenga múltiples (A) DSL o conexión por cable en primer lugar. Login as root for this job. Accediendo al sistema como root para este trabajo.

2. Find out the LAN / internal IP address of the modems. Descubrir la LAN / dirección IP interna de los módems. They may be same like 1921.168.1.1. Pueden ser mismo como 1921.168.1.1.
Check if the internal / LAN IP address of both (or multiple) modems are same. Compruebe si el interno / LAN dirección IP de los dos (o varias) modems son iguales. In that use the web / telnet interface of the modems to configure one of the modems to have a different internal IP address preferably in different networks like 192.168.0.1 or 192.168.2.1 etc. If you are using multiple modems then you should configure each of them to have different subnets. En que utilizan el web / interfaz telnet de los módems para configurar uno de los módems de tener una diferente dirección IP interna de preferencia en diferentes redes como 192.168.0.1 o 192.168.2.1 etc Si está utilizando múltiples módems, entonces debería configurar cada una de que tengan diferentes subredes. This is important because now you can easily access the different modems from their web interface and you don’t have to bother connecting to a modem through a particular interface. Esto es importante porque ahora usted pueda tener acceso fácilmente a los diferentes módems de su interfaz web y no tienes que molestar a la conexión de un módem a través de una interfaz particular. It is also important because now you can easily configure the interfaces to be associated with different netmasks / sub-network. También es importante porque ahora se puede configurar fácilmente las interfaces de estar asociados con diferentes netmasks / sub-red.

3. Connect each modem to the computer using a different interface (eth0, eth1 etc.). Conecte cada módem para el ordenador utilizando un interfaz (eth0, eth1, etc.) You may be able to use the same interface but this guide doesn’t cover that. Es posible que pueda utilizar la misma interfaz pero esta guía no cubre eso. In short you will make your life complicated using the same interface or even different virtual interface. En pocas palabras le hacen la vida complicada utilizando la misma interfaz o incluso diferentes interfaz virtual. My recommendation is that you should use one interface per modem. Mi recomendación es que debe usar una interfaz por módem. Don’t scrimp on cheap ethernet adapters. No scrimp barato en los adaptadores de ethernet. This has the added benefit of redundancy should one adapter go bad down the road. Esto tiene la ventaja adicional de redundancia en caso de que una mala adaptador de ir por el camino.

4. Configure the IP address of each interface to be in the same sub-network as the modem. Configure la dirección IP de cada interfaz para estar en la misma sub-red como el módem. For example my modems have IP addresses of 192.168.0.1 and 192.168.1.1. Por ejemplo, mi módems tienen direcciones IP de 192.168.0.1 y 192.168.1.1. The corresponding addresses & netmasks of the interfaces are: 192.168.0.10 (netmask: 255.255.255.0) and 192.168.1.10 (netmask: 255.255.255.0). Las correspondientes direcciones y netmasks de las interfaces son: 192.168.0.10 (máscara de red: 255.255.255.0) y 192.168.1.10 (máscara de red: 255.255.255.0).

5. Find out the following information before you proceed with the rest of the guide: Averigüe la siguiente información antes de continuar con el resto de la guía:

  1. IP address of external interfaces (interfaces connected to your modems). Dirección IP de interfaces externas (interfaces conectado a su módem). This is not the gateway address. Esta no es la dirección Gateway.
  2. Gateway IP address of each broadband connections. Gateway dirección IP de cada uno de conexiones de banda ancha. This is the first hop gateway, could be your DSL modem IP address if it has been configured as the gateway following the tip below. Esta es la primera pasarela hop, podría ser su módem DSL dirección IP si se ha configurado como la puerta de entrada a partir de la punta inferior.
  3. Name, IP address & netmask of external interfaces like eth1, eth2 etc. My external interfaces are eth1 & eth2. Nombre, dirección IP y máscara de red de interfaces externas como eth1, eth2 etc Mi interfaces externas son eth1 y eth2.
  4. Relative weights you want to assign to each connection. Peso relativo que desea asignar a cada conexión. My Tata connection is 4 times faster than BSNL connection. Mi Tata conexión es 4 veces más rápido que BSNL conexión. So I assign the weight of 4 to Tata and 1 to BSNL. Por lo tanto, asignar el peso de 4 a Tata y de 1 a BSNL. You must use low positive integer values for weights. Usted debe utilizar bajo valores enteros positivos de pesos. For same connection speeds weights of 1 & 1 are appropriate. Por mismas velocidades de conexión de 1 peso y 1 son las adecuadas. The weights determine how the load is balanced across multiple connections. Las ponderaciones determinar la forma en que la carga es equilibrada a través de múltiples conexiones. In my case Tata is 4 times as likely to be used as route for a particular site in comparison with BSNL. En mi caso Tata es de 4 veces más probabilidades de ser utilizado como ruta para un sitio particular en comparación con BSNL.

Note: Refer to Nota: Consulte al Netmask guide Guía de la máscara de red for details on netmasks. para más detalles sobre netmasks.

Optional step Opcional paso
Check the Compruebe el tips on configuring (A)DSL modems consejos acerca de la configuración (A) DSL módems . They are not required for using this guide. No son necesarios para el uso de esta guía. However they are beneficial in maximizing your benefits. Sin embargo, son beneficiosos en maximizar sus beneficios.

How to setup default load balancing for multiple ADSL / Cable connections ¿Cómo configurar balanceo de carga por defecto para múltiples ADSL / Cable conexiones

Unlike other guides on this topic I will use a real example - the configuration on our internal network. A diferencia de otras guías sobre este tema voy a utilizar un ejemplo real - la configuración de nuestra red interna. So to begin with here are the basic data for my network: Por lo tanto, para empezar aquí están los datos básicos de mi red:

#IP address of external interfaces. # Dirección IP de interfaces externas. This is not the gateway address. Esta no es la dirección Gateway.
IP1=192.168.1.10 IP1 = 192.168.1.10
IP2=192.168.0.10 IP2 = 192.168.0.10

#Gateway IP addresses. # Gateway direcciones IP. This is the first (hop) gateway, could be your router IP Esta es la primera (hop) gateway, podría ser tu router IP
#address if it has been configured as the gateway # dirección si se ha configurado como la puerta de entrada
GW1=192.168.1.1 GW1 = 192.168.1.1
GW2=192.168.0.1 GW2 = 192.168.0.1

# Relative weights of routes. # Pesos relativos de las rutas. Keep this to a low integer value. Mantener a un bajo valor. I am using 4 Estoy utilizando 4
# for TATA connection because it is 4 times faster # Para TATA relación porque es 4 veces más rápido
W1=1 W1 = 1
W2=4 W2 = 4

# Broadband providers name; use your own names here. # Nombre de los proveedores de banda ancha; usar su propio nombre aquí.
NAME1=bsnl NAME1 = BSNL
NAME2=tata NAME2 = Tata

You must change the example below to use your own IP addresses and other details. Usted debe cambiar el siguiente ejemplo para utilizar su propia dirección IP y otros detalles. Even with that inconvenience a real example is much easier to understand than examples with complex notations. Aun con los inconvenientes que un ejemplo real es mucho más fácil de entender con ejemplos más complejos notaciones. The example given below is copy-pasted from our intranet configuration. El ejemplo a continuación es copiar-pegar de la intranet de configuración. It works perfectly as advertised. Funciona perfectamente como publicidad.

Note: In this step fail-over is not addressed. Nota: A este paso no más-no se aborda. It is provided later with a script which runs on startup. Es siempre más tarde con un script que se ejecuta en el arranque.

First you need to create two (or more) routes in the routing table ( /etc/iproute2/rt_tables ). Lo primero que necesita es crear dos (o más) en las rutas de la tabla de enrutamiento (/ etc/iproute2/rt_tables). Open the file and make changes similar to what is show below. Abra el archivo y hacer cambios similares a lo que se muestran a continuación. I added the following for my two connections: He añadido los siguientes para mis dos conexiones:

1 bsnl 1 BSNL
2 tata 2 Tata

To add a default load balancing route for our outgoing traffic using our dual internet connections (ADSL broadband connections from BSNL & Tata Indicom) here are the lines I included in rc.local file: Para añadir un balanceo de carga por defecto la ruta de nuestro tráfico saliente usando nuestro doble conexión a internet (ADSL conexiones de banda ancha de BSNL y Tata Indicom) aquí son las líneas incluidas en el I rc.local disposición:

ip route add 192.168.1.0/24 dev eth1 src 192.168.1.10 table bsnl ip route add 192.168.1.0/24 dev eth1 src 192.168.1.10 mesa BSNL
ip route add default via 192.168.1.1 table bsnl ip route add default via 192.168.1.1 mesa BSNL
ip route add 192.168.0.0/24 dev eth2 src 192.168.0.10 table tata ip route add 192.168.0.0/24 dev eth2 src 192.168.0.10 mesa Tata
ip route add default via 192.168.0.1 table tata ip route add default via 192.168.0.1 mesa Tata
ip rule add from 192.168.1.10 table bsnl ip regla añadir el cuadro de 192.168.1.10 BSNL
ip rule add from 192.168.0.10 table tata ip regla añadir 192.168.0.10 cuadro de Tata
ip route add default scope global nexthop via 192.168.1.1 dev eth1 weight 1 nexthop via 192.168.0.1 dev eth2 weight 4 ip route add default nexthop alcance mundial a través de 192.168.1.1 dev eth1 peso 1 nexthop via 192.168.0.1 dev eth2 peso 4

Adding them to rc.local ensures that they are execute automatically on startup. Añadir a rc.local asegura que se ejecutan automáticamente al iniciar. You can also run them manually from the command line. También puede ejecutar manualmente desde la línea de comandos.

This completes the load balancing part. De esta forma finaliza el balanceo de carga. Let’s now see how we can achieve fail-over so the routes are automatically changed when one or more connections are down and then changed again when one or more more connections come back up again. Vamos a ver ahora cómo podemos lograr más de no-para que las rutas se cambian automáticamente cuando una o más conexiones están abajo y luego volvió a cambiar cuando una o más conexiones más volver de nuevo. To do this magic I used a script. Para ello he utilizado la magia de un script.

How to setup fail-over over multiple load balanced ADSL / Cable connections ¿Cómo configurar a prueba de fallas múltiples en más de balanceo de carga ADSL / Cable conexiones

Please follow the steps below and preferably in the same order: Por favor, siga los pasos que aparecen a continuación y, de preferencia en el mismo orden:

  1. First Primero download the script descargar el script which checks for and provides para que los controles y proporciona fail-over over dual ADSL / Cable internet connections - no más de largo de doble ADSL / Cable de conexión a internet and save it to /usr/sbin directory (or any other directory which is mounted available while loading the OS). y guardarlo en / usr / sbin directorio (o cualquier otro directorio que se monta, mientras que la carga del sistema operativo).
  2. Change the file permissions to 755: Cambie el archivo de los permisos a 755:
    chmod 755 /usr/sbin/gwping chmod 755 / usr / sbin / gwping
  3. Open the file (as root) in an editor like vi or gedit and edit the following parameters for your environment: Abra el archivo (como root) en un editor como vi o gedit y editar los parámetros siguientes para su entorno:

    #IP Address or domain name to ping. # Dirección IP o nombre de dominio a ping. The script relies on the domain being pingable and always available El guión se basa en el dominio que se pingable y siempre disponible
    TESTIP=www.yahoo.com TESTIP = www.yahoo.com

    #Ping timeout in seconds # Ping timeout en segundos
    TIMEOUT=2 Timeout = 2

    # External interfaces # Interfaces externas
    EXTIF1=eth1 EXTIF1 = eth1
    EXTIF2=eth2 EXTIF2 = eth2

    #IP address of external interfaces. # Dirección IP de interfaces externas. This is not the gateway address. Esta no es la dirección Gateway.
    IP1=192.168.1.10 IP1 = 192.168.1.10
    IP2=192.168.0.10 IP2 = 192.168.0.10

    #Gateway IP addresses. # Gateway direcciones IP. This is the first (hop) gateway, could be your router IP Esta es la primera (hop) gateway, podría ser tu router IP
    #address if it has been configured as the gateway # dirección si se ha configurado como la puerta de entrada
    GW1=192.168.1.1 GW1 = 192.168.1.1
    GW2=192.168.0.1 GW2 = 192.168.0.1

    # Relative weights of routes. # Pesos relativos de las rutas. Keep this to a low integer value. Mantener a un bajo valor. I am using 4 Estoy utilizando 4
    # for TATA connection because it is 4 times faster # Para TATA relación porque es 4 veces más rápido
    W1=1 W1 = 1
    W2=4 W2 = 4

    # Broadband providers name; use your own names here. # Nombre de los proveedores de banda ancha; usar su propio nombre aquí.
    NAME1=BSNL NAME1 = BSNL
    NAME2=TATA NAME2 = TATA

    #No of repeats of success or failure before changing status of connection # N º de repeticiones del éxito o el fracaso antes de cambiar el estado de conexión
    SUCCESSREPEATCOUNT=4 SUCCESSREPEATCOUNT = 4
    FAILUREREPEATCOUNT=1 FAILUREREPEATCOUNT = 1

    Note: Four consecutive success indicates that the gateway is up and one (consecutive) failure indicates that the gateway went down for my environment. Nota: Cuatro consecutivas éxito indica que la puerta de entrada está en marcha y uno (consecutivos) indica que falta la puerta de entrada bajó de mi entorno. You may want to modify it to better match your environment. Si lo desea, puede modificarlo para adaptarse mejor a su entorno.

  4. Add the following line to the end of /etc/rc.local file: Añadir la siguiente línea al final de / etc / rc.local disposición:
    nohup /usr/sbin/gwping & nohup / usr / sbin / gwping &

In the end my /etc/rc.local file has the following lines added in total: Al fin y al cabo mi / etc / rc.local archivo tiene las siguientes líneas añadido en total:

ip route add 192.168.1.0/24 dev eth1 src 192.168.1.10 table bsnl ip route add 192.168.1.0/24 dev eth1 src 192.168.1.10 mesa BSNL
ip route add default via 192.168.1.1 table bsnl ip route add default via 192.168.1.1 mesa BSNL
ip route add 192.168.0.0/24 dev eth2 src 192.168.0.10 table tata ip route add 192.168.0.0/24 dev eth2 src 192.168.0.10 mesa Tata
ip route add default via 192.168.0.1 table tata ip route add default via 192.168.0.1 mesa Tata
ip rule add from 192.168.1.10 table bsnl ip regla añadir el cuadro de 192.168.1.10 BSNL
ip rule add from 192.168.0.10 table tata ip regla añadir 192.168.0.10 cuadro de Tata
ip route add default scope global nexthop via 192.168.1.1 dev eth1 weight 1 nexthop via 192.168.0.1 dev eth2 weight 4 ip route add default nexthop alcance mundial a través de 192.168.1.1 dev eth1 peso 1 nexthop via 192.168.0.1 dev eth2 peso 4
nohup /usr/sbin/gwping & nohup / usr / sbin / gwping &

An astute reader may note that the default setup with dual load balanced routing (7th line) is really not required as the script is configured to force routing based on the current status the very first time. Un sagaz lector puede observar que la configuración por defecto con doble balanceo de carga de enrutamiento (7 ª línea) no es realmente necesario que el script se ha configurado a fuerza de enrutamiento basado en la situación actual la primera vez. However it is there to ensure proper routing before the script forces the routing for the first time which is about 40 seconds in my setup (can you tell why it takes 40 second for the first time?). Sin embargo, está ahí para velar por la correcta de enrutamiento antes de la secuencia de comandos de las fuerzas de la ruta por primera vez que está a unos 40 segundos en mi configuración (¿puede decirnos por qué se tarda 40 segundos por primera vez?).

Concluding thoughts Reflexiones finales
In the process of finding and coding the simple solution above, I read several documents on routing including the famous En el proceso de codificación y la búsqueda de la solución sencilla anteriormente, he leído en varios documentos de enrutamiento entre ellos el famoso lartc how-to lartc how-to (many of whose commands didn’t work as described on my Fedora Core system) & nano.txt among several others. (muchos de cuyos comandos no funcionó como se describe en mi sistema Fedora Core) y nano.txt entre varios otros. I think I have described the simplest possible solution for load balancing and transparent failover of two or more DSL / Cable connections from one or more providers where channel bonding is not provided upstream (requires cooperation from one or more DSL providers); which is the most common scenario. Creo que he descrito la solución más simple posible para balanceo de carga y failover transparente de dos o más DSL / Cable de conexión de uno o varios proveedores de unión de canales donde no está prevista aguas arriba (se requiere la cooperación de uno o más proveedores de DSL), que es el más escenario común. I would welcome suggestions and improvements to this document. Me gustaría sugerencias y mejoras al presente documento.

The solution has been well tested in multiple real and artificial load condition and works extremely well with users never realizing when a connection went down or came back up again. La solución se ha probado muy bien en varios reales y artificiales condición de carga y funciona muy bien con los usuarios nunca la realización de una conexión cuando bajó o regresaron de nuevo.

Networking is a complex thing and it is conceivable that you may run into issues not covered here. Redes es una cosa compleja y es concebible que pueda correr en cuestiones que no lo trataremos aquí. Feel free to post your problems and solutions here. Siéntase libre para enviar sus problemas y soluciones. However, while I would like to, I will not be able to debug and solve individual problems due to time constraints. Sin embargo, aunque quisiera, no voy a ser capaz de depurar y solucionar los distintos problemas debido a las limitaciones de tiempo.

I may however be able to offer useful suggestions to your unique problems. Se me permite, sin embargo, ser capaz de ofrecer sugerencias útiles a sus problemas singulares. It may however be noted that I respond well to Puede ser, sin embargo, señaló que responden bien a Café Estima Blend™ by Starbuck Café estima Blend ™ de Starbuck s and move much quicker on my todo list. s y se mueven mucho más rápido a todo mi lista. It is also great as a Es también como un gran token of appreciation for my hard work muestra de agradecimiento por mi trabajo duro . The “velvety smooth and balanced with a roasty-sweet flavor this blend of coffees is a product of the relationships formed between” us. El "suave y aterciopelado con un equilibrado roasty dulce sabor de esta mezcla de café es un producto de las relaciones formadas entre" nosotros.

In a followup article I discussed how to En un seguimiento de forma adjetivo artículo me referí a la forma de configure single / dual / multiple ADSL / cable connections, firewall, gateway / NAT With Shorewall Firewall configurar uno o doble o múltiple ADSL / cable de conexión, firewall, gateway / NAT Con Shorewall Firewall .