Salut la dedans!
Pour le boulot, je suis en train de mettre au point un routeur/firewall linux qui fera office de load balancer.
Elle répartira les nouvelles connexion sortantes entre les deux lignes adsl.
Pour le moment, comme je suis en phase "experimentale", je fais tout sous vmware... J'emule les deux lignes adsl par deux machines linux en mode NAT
Pour répartir les connexion, je marque les paquets provenant de nouvelles connexions sortantes, dans la phase de prerouting en me servant du module de iptables statistic, mode random, probability 0.5
En gros, les paquets de nouvelles connexions sortantes sont tous marqués "1" puis il ya 50% de chances qu'ils soient marqués "2"
Puis j'ajoute une regle de routage, les paquets marqués 1 vont passé par la passerelle NAT1, les paquets marqués 2 vont passé par la passerelle NAT2
Un petit schema du réseau ne ferait pas de tort :
R1 - IPTABLES : la machine qui va faire le load balancing
NAT : les deux machines qui "émulent" mes deux lignes ADSL ...
Le reste ca devrait aller
Alors, la liste de commandes effectuées (les machines sont des slackware) :
Sur la machine R1 IPTABLES
Ajout de tables ADSL1 et ADSL2 dans /etc/iproute2/rt_tables
ip route add default via 172.16.1.2 table ADSL1
ip route add default via 172.16.1.3 table ADSL2
ip rule add fwmark 1 table ADSL1
ip rule add fwmark 2 table ADSL2
=> désormais le routeur utiliseras la table ADSL1 (passerelle 172.16.1.2) pour router les paquets marqués 1, et la table ADSL2 (passerelle 172.16.1.3) pour les paquets marqués 2
iptables -t mangle -A PREROUTING -m state --state new -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -m state --state new -m statistic --mode random --probability 0.5 -j MARK --set-mark 2
=> les paquets arrivant sur la machine pour etre routés, et dont l'etat est NEW ( nouvelle connexion ) seront marqués 1, et 50% de chances qu'ils soient marqués 2
Sur les machines NAT :
on configure le nat, simplement :
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 172.16.1.2
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
et on ajoute une route statique pour 10.10.10.0/24, et une passerelle par défaut
ip route add 10.10.10.0/24 via 172.16.1.1
ip route add default via 192.168.1.1
Voila, en théorie ca devrait marcher du tonnerre, mais c'est pas le cas ...
En jettant un coup d'oeil avec wireshark, qui analyse tout ce qui ressort de ma machine physisque ( et donc situé sur Real LAN, juste avant le routeur adsl réel ) :
En tapant une adresse dans le browser de la machine 10.10.10.5 :
- Les requetes DNS passent bien dans les deux sens( parce que c'est de l'UDP ? )
- Le paquet TCP SYN sur le port 80 du site web que je cherche a atteindre passe aussi
- Le paquet TCP SYN ACK arrive sur ma machine physique, mais il n'ira pas plus loin, car le site web m'en renvoi plusieurs avec le meme numéro...
Ce que j'en conclus : pas moyen d'etablir de connexion TCP, car les ACK n'arrivent pas a remonter a la machine demandeuse ...
Avez vous une idée ? ![:D :D](https://forum-images.hardware.fr/icones/biggrin.gif)
Message édité par wes barfog le 20-06-2008 à 15:18:25