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. Dans de nombreux endroit, y compris, mais certainement pas limitée à l'Inde, unique ADSL / Câble connexions peuvent être peu fiables et mai également pas fourni suffisamment de bande passante pour vos besoins. One way to increase reliability and bandwidth of your internet connection is to distribute the load (load balancing) using multiple connections. Une façon d'accroître la fiabilité et de la bande passante de votre connexion Internet est de distribuer la charge (load balancing) en utilisant des connexions multiples. It is also imperative to have transparent fail-over so routes are automatically adjusted depending on the availability of the connections. Il est également impératif d'avoir la transparence de basculement afin itinéraires sont automatiquement ajustées en fonction de la disponibilité des connexions. 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). Avec l'équilibrage de charge et de basculement, vous pouvez avoir une connexion plus de deux ou plusieurs connexions à large bande peu fiables (comme BSNL Tata Indicom ou en Inde). I present you with the simplest solution to a complex problem with live examples. Je vous présenter la solution la plus simple à un problème complexe avec des exemples.

Note: Load balancing doesn’t increase connection speed for a single connection. Note: L'équilibrage de charge ne pas augmenter la vitesse de connexion pour une connexion unique. Its benefits are realized over multiple connections like in an office environment. Ses avantages sont réalisés au cours des connexions multiples comme dans un environnement de bureau. The benefits of fail-over are however realized even in a single user environment. Les avantages de fail-over sont toutefois rendu compte, même dans un environnement mono-utilisateur.

The load balancing mechanism, to be discussed with example below, in Linux caches routes and doesn’t provide transparent fail-over support. Le mécanisme d'équilibrage de charge, à discuter avec l'exemple ci-dessous, sous Linux caches d'itinéraires et ne prévoit pas transparente du basculement. There are two solutions to incorporate transparent fail over - 1. Il existe deux solutions pour ne pas intégrer plus de transparence - 1. compiling and using a custom Linux kernel with la compilation et l'utilisation d'un noyau Linux personnalisé avec Julian Anastasov’s kernel patches Julian Anastasov correctifs du noyau for dead gateway detection or 2. morts pour la détection ou la passerelle 2. user space script to monitor connections and dynamically change routing information. l'espace utilisateur script pour surveiller les connexions et modifier dynamiquement des informations de routage.

Julian Anastasov’s patches have two problems: Julian Anastasov de patches ont deux problèmes:
1. They work Ils travaillent only when the first hop gateway is down qu'au moment où le premier porte-hop est en baisse . In many cases, including ours, the first hop gateway is the adsl modem cum router which is always up. Dans de nombreux cas, y compris la nôtre, la première passerelle hop est le modem ADSL routeur cum qui est toujours en place. So we need a more robust solution for our purposes. Il nous faut donc une solution plus robuste pour nos besoins.

2. You have to compile a custom kernel with patches. Vous devez compiler un noyau personnalisé avec des taches. This is somewhat complex procedure with reasonable chances of screwing up something. C'est un peu complexe avec des chances raisonnables de vissage quelque chose. It also forces you to re-patch the kernel every time you decide to update your kernel. Il vous force aussi à re-modifier le noyau à chaque fois que vous décidez de mettre à jour votre noyau. Overall I wouldn’t recommend anyone going for kernel patching route unless that is the only option. L'ensemble, je ne vais recommander quiconque pour patcher le noyau à moins que cette route est la seule option. Also in that case you should look for a rpm based solution (like Aussi, dans ce cas, vous devriez chercher une solution basée sur le tr / min (comme livna rpm for nVidia drivers livna tr / min pour les pilotes nVidia ) which does it automatically for you. ) Qui-t-il automatiquement pour vous.

A better solution is to use a userspace program which monitors your connection and updates routes as necessary. Une meilleure solution est d'utiliser un programme utilisateur qui surveille votre connexion routes et des mises à jour si nécessaire. I will provide a script which we use to constantly monitor our connections. Je vais donner un script que nous utilisons pour surveiller constamment nos liens. It provides transparent fail over support with two ADSL connections. Il prévoit transparente ne pas soutenir avec plus de deux connexions ADSL. It is fully configurable and can be used for any standard dual ADSL / Cable connections to provide transparent fail over support. Il est entièrement configurable et peut être utilisé pour toute norme double ADSL / Câble connexions transparentes à ne pas fournir plus de soutien. It can also be easily modified to use for more than two connections. Il peut également être facilement modifié pour utiliser plus de deux connexions. You can also use it to log uptime / downtime of your connections Vous pouvez également l'utiliser pour vous connecter temps de bon fonctionnement / d'arrêt de vos connexions like we did comme nous l'avons fait .

Let’s first discuss load balancing with two ADSL / Cable connections and then we will see how to provide transparent fail-over support. D'abord discuter de l'équilibrage de charge avec deux ADSL / Câble connexions et ensuite nous verrons comment Transparence de basculement. The ideas and script provided here can be easily used for more than two connections with minor modifications. Les idées et ce script est fourni ici peut être facilement utilisé pendant plus de deux connexions avec des modifications mineures.

Requirements for Load Balancing multiple ADSL / Cable Connections Exigences pour l'équilibrage des charges multiples ADSL / Câble Connexions

1. Obviously you need to have multiple (A)DSL or Cable connections in the first place. De toute évidence, vous devez avoir multiples (A) DSL ou câble connexions en premier lieu. Login as root for this job. Ouverture de session en tant que root pour cet emploi.

2. Find out the LAN / internal IP address of the modems. Renseignez-vous sur les LAN / adresse IP interne du modem. They may be same like 1921.168.1.1. Ils mai être même comme 1921.168.1.1.
Check if the internal / LAN IP address of both (or multiple) modems are same. Vérifiez si l'interne / LAN adresse IP des deux (ou plusieurs) des modems sont les mêmes. 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 utilisant le web / telnet interface du modem à configurer l'un des modems d'avoir une autre adresse IP interne de préférence dans les différents réseaux, comme 192.168.0.1 ou 192.168.2.1 etc Si vous utilisez plusieurs modems, vous devez configurer chacun des qu'ils aient sous-réseaux différents. 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. Ceci est important parce que maintenant vous pouvez facilement accéder aux différents modems de leur interface web et vous n'avez pas nécessaire de se préoccuper de la connexion à un modem par le biais d'une interface particulière. It is also important because now you can easily configure the interfaces to be associated with different netmasks / sub-network. Il est également important parce que maintenant vous pouvez facilement configurer les interfaces d'être associé à différents netmasks / sous-réseau.

3. Connect each modem to the computer using a different interface (eth0, eth1 etc.). Connectez chaque modem à l'ordinateur en utilisant une interface différente (eth0, eth1, etc.) You may be able to use the same interface but this guide doesn’t cover that. Vous mai être en mesure d'utiliser la même interface, mais ce guide ne couvre pas. In short you will make your life complicated using the same interface or even different virtual interface. En bref, vous vous rendre la vie compliquée en utilisant la même interface, ou même différentes interface virtuelle. My recommendation is that you should use one interface per modem. Ma recommandation est que vous devez utiliser une interface par modem. Don’t scrimp on cheap ethernet adapters. Ne pas scrimp bon marché des cartes réseau. This has the added benefit of redundancy should one adapter go bad down the road. Cela a l'avantage supplémentaire de redondance devrait aller un adaptateur sur la mauvaise route.

4. Configure the IP address of each interface to be in the same sub-network as the modem. Configurer l'adresse IP de chaque interface à être dans le même sous-réseau que le modem. For example my modems have IP addresses of 192.168.0.1 and 192.168.1.1. Par exemple mon modem ont des adresses IP 192.168.0.1 et 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). Les adresses et netmasks des interfaces sont: 192.168.0.10 (masque de réseau: 255.255.255.0) et 192.168.1.10 (masque de réseau: 255.255.255.0).

5. Find out the following information before you proceed with the rest of the guide: Trouver les informations suivantes avant de procéder avec le reste du guide:

  1. IP address of external interfaces (interfaces connected to your modems). Adresse IP d'interfaces externes (interfaces connecté à votre modem). This is not the gateway address. Ce n'est pas l'adresse de la passerelle.
  2. Gateway IP address of each broadband connections. L'adresse IP de la passerelle de chaque connexions à haut débit. 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. C'est la première passerelle hop, pourrait être votre modem DSL adresse IP si elle a été configuré en tant que passerelle suite à la recommandation de livre ci-dessous.
  3. Name, IP address & netmask of external interfaces like eth1, eth2 etc. My external interfaces are eth1 & eth2. Nom, adresse IP et le masque de réseau d'interfaces externes tels que eth1, etc eth2 Mon interfaces externes sont eth1 et eth2.
  4. Relative weights you want to assign to each connection. Poids relatif que vous souhaitez attribuer à chaque connexion. My Tata connection is 4 times faster than BSNL connection. Tata Ma connexion est 4 fois plus rapide que BSNL connexion. So I assign the weight of 4 to Tata and 1 to BSNL. J'ai donc attribuer le poids de 4 à Tata et 1 à BSNL. You must use low positive integer values for weights. Vous devez utiliser faible des valeurs positives pour les poids. For same connection speeds weights of 1 & 1 are appropriate. Pour les vitesses de connexion même poids de 1 & 1 sont appropriées. The weights determine how the load is balanced across multiple connections. Le poids de déterminer comment la charge est équilibrée à travers de multiples connexions. In my case Tata is 4 times as likely to be used as route for a particular site in comparison with BSNL. Dans mon cas Tata est 4 fois plus susceptibles d'être utilisés comme itinéraire pour un site particulier en comparaison avec BSNL.

Note: Refer to Note: Reportez-vous à Netmask guide Masque réseau guide for details on netmasks. pour plus de détails sur netmasks.

Optional step Etape optionnelle
Check the Cochez la tips on configuring (A)DSL modems conseils sur la configuration (A) DSL modems . They are not required for using this guide. Ils ne sont pas requis pour utiliser ce guide. However they are beneficial in maximizing your benefits. Toutefois, ils sont bénéfiques en maximisant vos avantages.

How to setup default load balancing for multiple ADSL / Cable connections Comment configurer l'équilibrage de charge par défaut pour plusieurs ADSL / Câble connexions

Unlike other guides on this topic I will use a real example - the configuration on our internal network. Contrairement à d'autres guides sur ce sujet que je vais utiliser un exemple réel - la configuration de notre réseau interne. So to begin with here are the basic data for my network: Donc, pour commencer, voici les données de base pour mon réseau:

#IP address of external interfaces. # Adresse IP des interfaces externes. This is not the gateway address. Ce n'est pas l'adresse de la passerelle.
IP1=192.168.1.10 IP1 = 192.168.1.10
IP2=192.168.0.10 IP2 = 192.168.0.10

#Gateway IP addresses. # Adresses IP de la passerelle. This is the first (hop) gateway, could be your router IP C'est la première (hop) passerelle, pourrait être votre routeur IP
#address if it has been configured as the gateway # adresse si elle a été configuré en tant que passerelle
GW1=192.168.1.1 GW1 = 192.168.1.1
GW2=192.168.0.1 GW2 = 192.168.0.1

# Relative weights of routes. # Poids relatif des routes. Keep this to a low integer value. Gardez ceci à un faible valeur. I am using 4 J'utilise 4
# for TATA connection because it is 4 times faster # Pour TATA égard, car il est 4 fois plus rapide
W1=1 W1 = 1
W2=4 W2 = 4

# Broadband providers name; use your own names here. # Nom de fournisseurs de services à large bande; utiliser votre propre nom ici.
NAME1=bsnl NOM1 = BSNL
NAME2=tata NOM2 = Tata

You must change the example below to use your own IP addresses and other details. Vous devez modifier l'exemple ci-dessous pour utiliser vos propres adresses IP et d'autres détails. Even with that inconvenience a real example is much easier to understand than examples with complex notations. Même avec un inconvénient que exemple réel est beaucoup plus facile de comprendre que des exemples avec les notations complexes. The example given below is copy-pasted from our intranet configuration. L'exemple donné ci-dessous est la copie collée de notre intranet de configuration. It works perfectly as advertised. Il fonctionne parfaitement comme annoncé.

Note: In this step fail-over is not addressed. Note: Dans cette étape de basculement n'est pas abordée. It is provided later with a script which runs on startup. Il est prévu plus tard avec un script qui s'exécute au démarrage.

First you need to create two (or more) routes in the routing table ( /etc/iproute2/rt_tables ). Vous devez d'abord créer deux (ou plus) itinéraires dans la table de routage (/ etc/iproute2/rt_tables). Open the file and make changes similar to what is show below. Ouvrez le fichier et apporter des modifications similaires à ce qui est ci-dessous. I added the following for my two connections: J'ai ajouté ce qui suit pour mes deux connexions:

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: Pour ajouter un défaut d'équilibrage de charge pour notre itinéraire du trafic sortant en utilisant notre double connexions Internet (connexions à haut débit ADSL de BSNL et Tata Indicom) Voici le sens que je inclus dans rc.local:

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 tableau bsnl
ip route add default via 192.168.1.1 table bsnl ip route add default via 192.168.1.1 table 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 tableau tata
ip route add default via 192.168.0.1 table tata ip route add default via 192.168.0.1 table tata
ip rule add from 192.168.1.10 table bsnl ajouter règle ip 192.168.1.10 tableau de bsnl
ip rule add from 192.168.0.10 table tata ajouter règle ip 192.168.0.10 tableau 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 portée mondiale nexthop via 192.168.1.1 dev eth1 poids 1 nexthop via 192.168.0.1 dev eth2 poids 4

Adding them to rc.local ensures that they are execute automatically on startup. Les ajouter à rc.local assure qu'ils sont exécuter automatiquement au démarrage. You can also run them manually from the command line. Vous pouvez également exécuter manuellement depuis la ligne de commande.

This completes the load balancing part. Cela complète la partie l'équilibrage de charge. 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. Voyons maintenant comment nous pouvons atteindre en cas de panne sur les routes de sorte sont automatiquement changé quand une ou plusieurs connexions sont en baisse, puis de nouveau changé quand une ou plusieurs connexions plus revenir de nouveau. To do this magic I used a script. Pour ce faire, j'ai utilisé la magie d'un script.

How to setup fail-over over multiple load balanced ADSL / Cable connections Comment mettre en place de basculement sur plusieurs équilibrage de charge ADSL / Câble connexions

Please follow the steps below and preferably in the same order: S’il vous plaît suivre les étapes ci-dessous et de préférence dans le même ordre:

  1. First Premier download the script télécharger le script which checks for and provides qui vérifie et fournit fail-over over dual ADSL / Cable internet connections fail-over double sur ADSL / Câble connexions Internet and save it to /usr/sbin directory (or any other directory which is mounted available while loading the OS). et enregistrez-le dans / usr / sbin répertoire (ou tout autre répertoire qui est monté disponibles lors du chargement de l'OS).
  2. Change the file permissions to 755: Changer les permissions de fichier à 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: Ouvrez le fichier (comme root) dans un éditeur tel que gedit ou vi et modifier les paramètres suivants pour votre environnement:

    #IP Address or domain name to ping. # Adresse IP ou nom de domaine de ping. The script relies on the domain being pingable and always available Le scénario s'appuie sur le domaine pingable et être toujours disponible
    TESTIP=www.yahoo.com TESTIP = www.yahoo.com

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

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

    #IP address of external interfaces. # Adresse IP des interfaces externes. This is not the gateway address. Ce n'est pas l'adresse de la passerelle.
    IP1=192.168.1.10 IP1 = 192.168.1.10
    IP2=192.168.0.10 IP2 = 192.168.0.10

    #Gateway IP addresses. # Adresses IP de la passerelle. This is the first (hop) gateway, could be your router IP C'est la première (hop) passerelle, pourrait être votre routeur IP
    #address if it has been configured as the gateway # adresse si elle a été configuré en tant que passerelle
    GW1=192.168.1.1 GW1 = 192.168.1.1
    GW2=192.168.0.1 GW2 = 192.168.0.1

    # Relative weights of routes. # Poids relatif des routes. Keep this to a low integer value. Gardez ceci à un faible valeur. I am using 4 J'utilise 4
    # for TATA connection because it is 4 times faster # Pour TATA égard, car il est 4 fois plus rapide
    W1=1 W1 = 1
    W2=4 W2 = 4

    # Broadband providers name; use your own names here. # Nom de fournisseurs de services à large bande; utiliser votre propre nom ici.
    NAME1=BSNL NOM1 = BSNL
    NAME2=TATA NOM2 = TATA

    #No of repeats of success or failure before changing status of connection # Pas de répétitions de réussite ou d'échec avant de changer le statut de connexion
    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. Note: Quatre succès consécutifs indique que la passerelle est en place et un (consécutives) l'échec indique que la passerelle a baissé pour mon environnement. You may want to modify it to better match your environment. Vous voulez mai à la modifier pour mieux correspondre à votre environnement.

  4. Add the following line to the end of /etc/rc.local file: Ajouter la ligne suivante à la fin du fichier / etc / rc.local:
    nohup /usr/sbin/gwping & nohup / usr / sbin / gwping &

In the end my /etc/rc.local file has the following lines added in total: En fin de mon fichier / etc / rc.local est la suivante: les lignes ajoutées au 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 tableau bsnl
ip route add default via 192.168.1.1 table bsnl ip route add default via 192.168.1.1 table 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 tableau tata
ip route add default via 192.168.0.1 table tata ip route add default via 192.168.0.1 table tata
ip rule add from 192.168.1.10 table bsnl ajouter règle ip 192.168.1.10 tableau de bsnl
ip rule add from 192.168.0.10 table tata ajouter règle ip 192.168.0.10 tableau 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 portée mondiale nexthop via 192.168.1.1 dev eth1 poids 1 nexthop via 192.168.0.1 dev eth2 poids 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 lecteur avisé mai noter que la configuration par défaut avec double équilibrage de charge de routage (7ème ligne) n'est vraiment pas nécessaire que le script est configuré à la force de routage basé sur l'état actuel la première fois. 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?). Toutefois, il est là pour assurer le bon acheminement avant le script force le routage pour la première fois qui est d'environ 40 secondes dans ma configuration (pouvez-vous dire pourquoi il faut 40 seconde pour la première fois?).

Concluding thoughts Conclusion
In the process of finding and coding the simple solution above, I read several documents on routing including the famous Dans le processus de recherche et de codification des marchandises de la simple solution ci-dessus, j'ai lu plusieurs documents sur le routage, y compris le célèbre 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. (dont beaucoup de commandes ne fonctionne pas comme décrit sur ma Fedora Core System) et nano.txt parmi plusieurs autres. 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. Je crois que je viens de décrire le plus simple solution possible pour l'équilibrage de charge et de basculement transparent de deux ou plusieurs DSL / Câble connexions d'un ou plusieurs fournisseurs de liaison de canaux n'est pas prévue en amont (nécessite la coopération d'un ou de plusieurs fournisseurs DSL), qui est le plus scénario. I would welcome suggestions and improvements to this document. Je suis favorable à des suggestions et des améliorations à ce document.

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 solution a été bien mise à l'épreuve dans plusieurs réel et artificiel charge et fonctionne extrêmement bien avec les utilisateurs jamais réaliser lorsque la connexion est tombé ou a été une nouvelle fois.

Networking is a complex thing and it is conceivable that you may run into issues not covered here. La mise en réseau est une chose complexe et il est concevable que vous exécutez en mai questions qui ne sont pas couverts ici. Feel free to post your problems and solutions here. N'hésitez pas à poster vos problèmes et des solutions ici. However, while I would like to, I will not be able to debug and solve individual problems due to time constraints. Toutefois, alors que je voudrais, je ne serai pas en mesure de déboguer et de résoudre des problèmes individuels, faute de temps.

I may however be able to offer useful suggestions to your unique problems. Je mai toutefois être en mesure d'offrir des suggestions utiles à vos problèmes uniques. It may however be noted that I respond well to Il mai cependant de noter que je réagissent bien à Café Estima Blend™ by Starbuck Café Mélange ™ Estima par Starbuck s and move much quicker on my todo list. s et déplacez beaucoup plus vite sur ma liste TODO. It is also great as a Il est également un très bon token of appreciation for my hard work témoignage de reconnaissance pour mon travail acharné . The “velvety smooth and balanced with a roasty-sweet flavor this blend of coffees is a product of the relationships formed between” us. Le «velouté développement harmonieux et équilibré roasty avec une saveur douce-ce mélange de café est un produit des relations entre formé".

In a followup article I discussed how to Dans un suivi de nom form; Réponse article, j'ai discuté comment configure single / dual / multiple ADSL / cable connections, firewall, gateway / NAT With Shorewall Firewall configurer simple / double / multiple ADSL / câble, de pare-feu, passerelle / NAT Firewall Avec Shorewall .