[Load balancing] recherche de package opensource

Bien le bonjour,

Je suis à la recherche d’un package permettant de faire du load balancing (actif/actif et non actif/passif),
Je suis sur une Debian lenny 504 I386 noyau 2.6.26.

j’ai testé quelque package qui semblait pouvoir fonctionner en actif actif comme Keepalive ou encore Heartbeat,
Au final je n’ai pas d’équilibrage de charge, juste du fail-over.
Je ne pense pas les avoir mal configuré ou mettre mal documenté,
Mais si quelqu’un à une théorie sur le sujet je lui serai redevable !

Cordialement.

Pour du vrai load balancing, je ne connais que deux techniques : le bon vieux round robin DNS (avec toutes les limitations qui vont avec) ou bien faire transiter l’ensemble du trafic par un routeur commun qui va se charger de tout distribuer correctement.
Je suppose que tu es dans le deuxième cas, donc avec au moins 3 serveurs à disposition ?

J’étais tombé sur un logiciel qui fait ça il n’y a pas longtemps, faut que je cherche…

Edit : voici… linuxvirtualserver.org/

Suivant le réseau auquel tes serveurs sont raccordés, tu pourras utiliser une des 3 méthodes NAT / IPTunneling / Direct Routing, ça dépendra beaucoup de ce que tu as le droit de faire. Si c’est pour un LAN, le Direct Routing est le plus performant. Pour le reste, faut voir en fonction de ce que ton fournisseur te laisse faire.

Quelques infos complémentaire,

En fait j’ai 2 liaison internet, et je veux équilibrer la charge sur ces liens via 2 machines sur lesquels j’ai monté Debian,
Évidemment au moindre cout.

Ah oui, c’est effectivement mieux avec une explication précise. :slightly_smiling:
Pour mémoire, heartbeat est plutôt utilisé pour du fail over de serveurs, je ne savais même pas qu’on pouvait l’utiliser pour les connexions réseau.

Si j’ai bien saisi, ce que tu cherches à faire c’est du « bête » routage : ssi.bg/~ja/nano.txt
Enfin quand je dis « bête » ça veut pas non plus dire « simple »… :laughing:

Et tu n’as besoin, en théorie, que d’une seule machine qui te servira de passerelle. Avec deux machines ça devient tout de suite beaucoup plus compliqué…

et bien si tu veux faire du load balancing, j’ai triché un peux pour moi par ce que FT ne veux pas en faire, c’est pas tout a fait du vrais load balancing, mais si c’est juste pour du traffic UDP style HTTP, ca marche tres bien.

il nte faut juste un iptable bien réglé, et un ip route 2 installé et paramétré.

ROUTEUR1-----|–ip1 PASERELLE LB --ip3 | LAN
ROUTEUR2-----|–ip2

il faut creer une table supplementaire par interface vers routeur et les liens associé vers les autres tables.

/etc/iproute2/rt_tables

...
# LOCAL
# 1 inr.ruhep
201 UPL1
200 UPL2

/etc/network/interfaces

# The loopback network interface
iface lo inet loopback

# The primary network interface LAN
iface eth0 inet static
        address x.x.x.x
        netmask 255.x.x.x
        broadcast x.x.x.x
        network x.x.x.x
        pre-up echo 1 > /proc/sys/net/ipv4/ip_forward

#UPL1
iface eth1 inet static
        address 10.0.1.2
        netmask 255.255.255.248
        broadcast 10.0.1.7
        network 10.0.1.0
        # LOAD BALANCING ================================================
        post-up ip route add 10.0.1.0/29 dev eth1 src 10.0.1.2 table UPL1
        post-up ip route add default via 10.0.1.1 table UPL1
        post-up ip rule add from 10.0.1.2 table UPL1
        post-down ip rule del from 10.0.1.2 table UPL1

#UPL2
iface eth2 inet static
        address 10.0.0.2
        netmask 255.255.255.252
        broadcast 10.0.0.3
        network 10.0.0.0
        # LOAD BALANCING ================================================
        post-up ip route add 10.0.0.0/30 dev eth2 src 10.0.0.2 table UPL2
        post-up ip route add default via 10.0.0.1 table UPL2
        post-up ip rule add from 10.0.0.2 table UPL2
        post-up ip route add default scope global nexthop via 10.0.1.1 dev eth1$
        post-down ip rule del from 10.0.0.2 table UPL2

        post-up ip route add 192.168.1.0/24 dev eth0 table UPL1
        post-up ip route add 192.168.1.0/24 dev eth0 table UPL2
        post-up ip route add 10.0.0.0/30 dev eth2 table UPL1
        post-up ip route add 10.0.1.0/29 dev eth1 table UPL2
        ##post-up ip route add 127.0.0.0/8 dev lo table UPL1
        ##post-up ip route add 127.0.0.0/8 dev lo table UPL2

        # RULES POUR LE ROUTAGE SPECIFIQUE
        post-up ip rule add fwmark 1 table UPL1
        post-up ip rule add fwmark 2 table UPL2
        post-down ip rule del fwmark 1 table UPL1
        post-down ip rule del fwmark 2 table UPL2

ca donne ca apres un redemarrage:

# /etc/network>ip route
10.0.0.0/30 dev eth2  proto kernel  scope link  src 10.0.0.2
10.0.1.0/29 dev eth1  proto kernel  scope link  src 10.0.1.2
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.4
default
        nexthop via 10.0.1.1  dev eth1 weight 1
        nexthop via 10.0.0.1  dev eth2 weight 1
# /etc/network>ip rule
0:      from all lookup 255
32762:  from all fwmark 0x2 lookup UPL2
32763:  from all fwmark 0x1 lookup UPL1
32764:  from 10.0.0.2 lookup UPL2
32765:  from 10.0.1.2 lookup UPL1
32766:  from all lookup main
32767:  from all lookup default

mais attention, toutes les sorties avec une même connexion ne partent pas forcement pâr le même tuyau. alors il te faut rajouter des marqueurs pour suivre les connexions. avec le module mark d’iptable. sinon tes connexions subissent des pertes de paquets. Pas la peine de te faire un dessin.

le vrais load B n e peut se faire qu’avec deux noeuds qui discutent de la même manière et paramétrer pour le faire.

si tu veux par contre faire du trunking avec un switch… bha te faut un switch compatible LACP…et administrable… si t’as 1200 euros va y…perso j’ai aggrégé 4port Gigabit pour un serveur de fichier windobe… 4Go de bande passante entre le switch et le serveur… le client dépote a fond…