Bonjour,
J'ai un probleme avec un script que j'ai fait issus de Nano.txt et de Lartc.
Le but est d'aggreger 3 connexions internet sur une seule passerelle pour faire du load balancing et eviter de gerer de multiples passerelles.
J'ai un kernel kernel 2.6.8 patche avec patch-2.6.8-ja1.diff du site de nano.txt
Mes 3 connexions internet :
- eth1 :
- ip : 192.168.8.75
- gw : 192.168.8.73
- eth2 :
- ip : 192.168.1.200
- gw : 192.168.1.2
- eth3 :
- ip : 192.168.2.200
- gw : 192.168.2.1
et mon eth0 est reservee au reseau local (ip : 192.168.212.235)
Mon script load balancing
IFI="eth0"
IPI="192.168.212.235"
NMI="24"
IFE2="eth1"
IPE2="196.200.8.75"
NWE2="196.200.8.0"
NME2="29"
BRD2="196.200.8.255"
GWE2="196.200.8.73"
IFE1="eth2"
IPE1="192.168.1.200"
NWE1="192.168.1.0"
NME1="24"
BRD1="192.168.1.255"
GWE1="192.168.1.2"
IFE3="eth3"
IPE3="192.168.2.200"
NWE3="192.168.2.0"
NME3="24"
BRD3="192.168.2.255"
GWE3="192.168.2.1"
# Configuration de l'interface de Loopback
ip link set lo up
ip addr add 127.0.0.1/8 brd + dev lo
# Configuration de l'interface interne
ip link set $IFI up
ip addr add $IPI/$NMI brd + dev $IFI
ip rule add prio 50 table main
ip route del default table main
# Configuration de la premiere connexion Internet
ip link set $IFE1 up
ip addr flush dev $IFE1
ip addr add $IPE1/$NME1 brd $BRD1 dev $IFE1
# Configuration de la deuxieme connexion Internet
ip link set $IFE2 up
ip addr flush dev $IFE2
ip addr add $IPE2/$NME2 brd $BRD2 dev $IFE2
# Configuration de la troisieme connexion Internet
ip link set $IFE3 up
ip addr flush dev $IFE3
ip addr add $IPE3/$NME3 brd $BRD3 dev $IFE3
ip rule add prio 222 table 222
ip route add default scope global \
nexthop via $GWE1 dev $IFE1 weight 1 \
nexthop via $GWE2 dev $IFE2 weight 4 \
nexthop via $GWE3 dev $IFE3 weight 1
ip rule add prio 201 from $NWE1/$NME1 table 201
ip route add default via $GWE1 dev $IFE1 src $IPE1 proto static table 201
ip route append prohibit default table 201 metric 1 proto static
ip rule add prio 202 from $NWE2/$NME2 table 202
ip route add default via $GWE2 dev $IFE2 src $IPE2 proto static table 202
ip route append prohibit default table 202 metric 1 proto static
ip rule add prio 203 from $NWE3/$NME3 table 203
ip route add default via $GWE3 dev $IFE3 src $IPE3 proto static table 203
ip route append prohibit default table 203 metric 1 proto static
Et mon script pour le nat :
IFI="eth0"
IPI="192.168.212.235"
NWI="192.168.212.0"
NMI="24"
IFE2="eth1"
IPE2="196.200.8.75"
NWE2="196.200.8.0"
NME2="29"
BRD2="196.200.8.255"
GWE2="196.200.8.73"
IFE1="eth2"
IPE1="192.168.1.200"
NWE1="192.168.1.0"
NME1="24"
BRD1="192.168.1.255"
GWE1="192.168.1.2"
IFE3="eth3"
IPE3="192.168.2.200"
NWE3="192.168.2.0"
NME3="24"
BRD3="192.168.2.255"
GWE3="192.168.2.1"
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $IFE1 -s $NWI/$NMI -j MASQUERADE
iptables -t nat -A POSTROUTING -o $IFE2 -s $NWI/$NMI -j MASQUERADE
iptables -t nat -A POSTROUTING -o $IFE3 -s $NWI/$NMI -j MASQUERADE
iptables -t filter -N keep_state
iptables -t filter -A keep_state -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A keep_state -j RETURN
iptables -t nat -N keep_state
iptables -t nat -A keep_state -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A keep_state -j RETURN
iptables -t nat -A PREROUTING -j keep_state
iptables -t nat -A POSTROUTING -j keep_state
iptables -t nat -A OUTPUT -j keep_state
iptables -t filter -A INPUT -j keep_state
iptables -t filter -A FORWARD -j keep_state
iptables -t filter -A OUTPUT -j keep_state
J'ai une trentaine de pc derriere cette passerelle.
Le seul site que mes gars utilises est http://www.monsite.com(...)
Mon grand probleme est que le load_balancing ne se fait pas et qu'une seule des interface (eth2) est utilisee.
Je ne sais pas si c'est un probleme de route qui est stockee ou quoi...
Quelqu'un peut m'aider?
Merci d'avance
# Scope global equalize
Posté par khalahan . Évalué à 1.
Avec un "scope global equalize", les paquets seront répartis équitablement entre toutes les interfaces, mais sans faire aucune distinction d'où ca vient, donc le site web de ton exemple pourra recevoir des paquets de plusieurs ip pour une même personne, ce qui peut poser problème dans certains cas (envoi de fichiers sur le serveur et tout envoi d'info vers le serveur web nécessitant plusieurs paquets en fait).
Doc qui explique (tout en bas) le fonctionnement 'equalize' (la seule option dispo) :
http://linux-ip.net/gl/ip-cref/node77.html(...)
Autre doc qui affiche les options pour la commande 'ip' :
http://www.linuxfr-france.org.invalid/prj/inetdoc/cours/interconnexion.foncti(...)
J'aimerais savoir ce qui marche ou pas chez toi (connexion SSH vers un site externe, etc ?) car je n'ai pas pu activer le 'nexthop' du tout à cause de problèmes (avec le ssh par ex). Si je pouvais profiter de ces 3 lignes à fond ca me ferait plaisir :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.