Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2766 connectés 

  FORUM HardWare.fr
  Réseaux grand public / SoHo
  Réseaux

  IPTABLES comme load balancer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

IPTABLES comme load balancer

n°365024
wes barfog
Posté le 20-06-2008 à 15:17:48  profilanswer
 

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 :
 
http://www.black-templars.net/loadbalancing.JPG
 
R1 - IPTABLES : la machine qui va faire le load balancing :D
NAT : les deux machines qui "émulent" mes deux lignes ADSL ...  
Le reste ca devrait aller :p
 
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


Message édité par wes barfog le 20-06-2008 à 15:18:25
mood
Publicité
Posté le 20-06-2008 à 15:17:48  profilanswer
 

n°365130
wes barfog
Posté le 21-06-2008 à 15:23:56  profilanswer
 

Mauvaise section ?
 
Mauvais forum peut etre ? :D

n°365190
wes barfog
Posté le 22-06-2008 à 00:01:21  profilanswer
 

Un forum a me conseiller pour ce genre de question ? :x
 
Jsais bien que tlm s'en fou, mais vla une capture avec wireshark, réalisé sur l'interface de la machine physique
 
http://www.black-templars.net/winpcap.JPG
On vois bien la requete dns qui passe, et le retour arrive bien a la machine client, car celle ci essaye de se connecter au site web apres
Par contre , le site web repond d'un ACK, mais ca va pas plus loin, le ACK remonte pas :D
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Réseaux grand public / SoHo
  Réseaux

  IPTABLES comme load balancer

 

Sujets relatifs
mise en place load balancingIptables redirection de port
DDwrt et Iptablesprobleme ssh avec load balancer
load balancingLoad balancing et statistiques de connexions
Configurer un firewall iptables pour le multiposte de Free 
Plus de sujets relatifs à : IPTABLES comme load balancer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR