Forum Linux.debian/ubuntu Routage de 3 connexions Internet sur la meme passerelle

Posté par  (site web personnel) .
Étiquettes : aucune
0
22
juin
2005
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  . Évalué à 1.

    la ligne "ip route add default scope global" défini que par défaut, les paquets passent par le même chemin, en fonction de l'ip destination je suppose (d'après mes tests sur ma propre config avec 3 lignes adsl).

    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.