Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[RESEAU] répartition charge 2 adsl (resolu/contourné)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
dapsaille
Advocate
Advocate


Joined: 02 Aug 2004
Posts: 2366
Location: Paris

PostPosted: Thu Oct 28, 2010 4:32 pm    Post subject: [RESEAU] répartition charge 2 adsl (resolu/contourné) Reply with quote

Bonjour à tous.

Voila j'ai monté POUR TEST (avant qu'on me déboite la tronche) un petit serveur debian brut de base de pomme avant de valider et de passer sous gentoo ..
ouaips le P2 il aime pas trop les compilos ^^

Bref, j'ai 3 interfaces :

eth2 = lan 192.168.1.1
eth0 = wan free ip fixe en mode modem
eth1 = idem

Je souhaite faire une répartition de charge entre mes 2 connections adsl chez free


J'ai honteusement effectué un superbe copier/coller légèrement adapté de ce que j'ai pu glaner par çi par la mais bon cela ne semble pas fonctionner (tu m'étonnes Simone ...)

Code:

#!/bin/bash

echo 1 >| /proc/sys/net/ipv4/ip_forward
echo 0 >| /proc/sys/net/ipv4/conf/all/rp_filter

# flush all iptables entries
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT

# initialise chains that will do the work and log the packets
iptables -t mangle -N CONNMARK1
iptables -t mangle -A CONNMARK1 -j MARK --set-mark 1
iptables -t mangle -A CONNMARK1 -j CONNMARK --save-mark
iptables -t mangle -A CONNMARK1 -j LOG --log-prefix 'iptables-mark1: ' --log-level info

iptables -t mangle -N CONNMARK2
iptables -t mangle -A CONNMARK2 -j MARK --set-mark 2
iptables -t mangle -A CONNMARK2 -j CONNMARK --save-mark
iptables -t mangle -A CONNMARK2 -j LOG --log-prefix 'iptables-mark2: ' --log-level info

iptables -t mangle -N RESTOREMARK
iptables -t mangle -A RESTOREMARK -j CONNMARK --restore-mark
iptables -t mangle -A RESTOREMARK -j LOG --log-prefix 'restore-mark: ' --log-level info

iptables -t nat -N SNAT1
iptables -t nat -A SNAT1 -j LOG --log-prefix 'snat-to-ipfree1: ' --log-level info
iptables -t nat -A SNAT1 -j SNAT --to-source ipfree1
iptables -t nat -N SNAT2
iptables -t nat -A SNAT2 -j LOG --log-prefix 'snat-to-ipfree2: ' --log-level info
iptables -t nat -A SNAT2 -j SNAT --to-source ipfree2

# restore the fwmark on packets that belong to an existing connection
iptables -t mangle -A PREROUTING -i eth2 -p tcp \
         -m state --state ESTABLISHED,RELATED -j RESTOREMARK

# if the mark is zero it means the packet does not belong to an existing connection
iptables -t mangle -A PREROUTING -p tcp -m state --state NEW \
         -m statistic --mode nth --every 2 --packet 0 -j CONNMARK1
iptables -t mangle -A PREROUTING -p tcp -m state --state NEW \
         -m statistic --mode nth --every 2 --packet 1 -j CONNMARK2

iptables -t nat -A POSTROUTING -o eth0 -j SNAT1
iptables -t nat -A POSTROUTING -o eth1 -j SNAT2

if ! cat /etc/iproute2/rt_tables | grep -q '^251'
then
        echo '251     rt_link1' >> /etc/iproute2/rt_tables
fi
if ! cat /etc/iproute2/rt_tables | grep -q '^252'
then
        echo '252     rt_link2' >> /etc/iproute2/rt_tables
fi

ip route flush table rt_link1 2>/dev/null
ip route add table rt_link1 default dev eth0
ip route flush table rt_link2 2>/dev/null
ip route add table rt_link2 default dev eth1

ip rule del from all fwmark 0x1 lookup rt_link1 2>/dev/null
ip rule del from all fwmark 0x2 lookup rt_link2 2>/dev/null
ip rule del from all fwmark 0x2 2>/dev/null
ip rule del from all fwmark 0x1 2>/dev/null
ip rule add fwmark 1 table rt_link1
ip rule add fwmark 2 table rt_link2

ip route flush cache


Pour résumer (reboot routeur entre chaques tests) :

dhclient eth0 et lance le script = routeur OK (navigation et tout le bastringue), clients KO (pas de navigation mais ping/traceroute/dns ok)
dhclient eth1 et lance le script = routeur OK (""), clients KO ("")
dhclient eth0 eth1 et lance le script = routeur OK (""), clients KO ("")

script lancé (avec bien sur 2 messages RTNETLINK answers: Network is down) et dhclient eth0 = routeur OK et clients OK
idem si je lance eth1 ou les 2 en même temps ...


Any idea ?


Last edited by dapsaille on Sat Oct 30, 2010 10:40 am; edited 2 times in total
Back to top
View user's profile Send private message
dapsaille
Advocate
Advocate


Joined: 02 Aug 2004
Posts: 2366
Location: Paris

PostPosted: Thu Oct 28, 2010 7:35 pm    Post subject: Reply with quote

résolu = pfsense
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Sat Oct 30, 2010 7:04 am    Post subject: Reply with quote

Bon, c'est pas vraiment "résolu", mais plutôt contourné! Bref, du coup je me permets deux trois commentaires:

  • Tu fais, semble t'il, un RESTOREMARK avant de faire CONNMARK1 ou 2, du coup tu ne 'restore's rien du tout
  • pourquoi tu te restreins à tcp? J'ignore si ce qui suit en est la cause, mais sache que l'état (state) d'un paquet (ESTABLISHED,NEW ou RELATED) n'est pas du tout lié au handshake tcp, au sens iptables/netfilter la notion de connexion établie par exemple, existe également pour UDP qui pourtant est un protocole non-connecté!
  • Et enfin, tes liens free, ce sont des liens PPPoE? ou un truc du genre? j'demande car les routes par défaut que tu ajoutes dans tes tables rt-link1 et 2 ne sont pas très jolies dans le cas contraire! il faut au moins un NEXT HOP (ip r a default via a.b.c.d t rt-link1) il me semble!
  • Lorsque tu ajoutes des règles iproutes, il faut absoluement que tu ajoutes une priorité, sinon, à un moment donné, tu vas te prendre la tête car ça ne fonctionne pas comme tu le crois, simplement parce-que tes règles ne sont pas dans l'ordre que tu croyais/voulais (attention la priorité/préférence est supposée être unique, malheureusement ip accepte quand même deux (ou plus)priorités égales pour des règles différentes (bouh!)
  • Maintenant que j'y pense, si tu ne te restreins pas à tcp pour faire le 'load-balancing', tu peux avoir des résultats assez funky, notamment pour un traceroute! ;) (donc, ne prends pas mal mes remarques hein! Elles peuvent toujours servir à d'autres, toussa toussa...)

_________________
The End of the Internet!
Back to top
View user's profile Send private message
dapsaille
Advocate
Advocate


Joined: 02 Aug 2004
Posts: 2366
Location: Paris

PostPosted: Sat Oct 30, 2010 10:39 am    Post subject: Reply with quote

Houlaaa loin de moi l'idée de prendre mal de l'aide, bien au contraire :D


J'ai juste préféré pour le moment poser un pfsense "plug and play" et brainless car peu de temps à accorder à cet outil pour le moment.

Rapport au script en lui-même c'est un copier coller sans comprendre les 3 quarts de ce qu'il y a dedans je l'avoue.

Les liens free ne sont pas pppoe mais de type bridge dhcp ou routeur dhcp donc il est en effet probable que les tables ne soient pas adaptées.

Je met sous le coude toutes tes remarques et les transposerai probablement sur un autre serveur de test une fois un peu plus de temps de dispo :wink:
Back to top
View user's profile Send private message
JujuBickoille
n00b
n00b


Joined: 20 Apr 2010
Posts: 13

PostPosted: Thu Jan 06, 2011 10:17 pm    Post subject: Reply with quote

Salut,

J'ai tenté de faire un multiwan de la façon que tu essaie... et franchement, j'ai trouvé le résultat moyen ( notament, des decos sur certains jeux du frangin....

Je te conseil le patch de Julian Anastasov que tu trouvera ici : http://www.ssi.bg/~ja/

Question iptables, tu n'a plus rien à faire ( enfin, dans mon cas j'ai de la QoS )... et c'est parti !

Chez moi ca tourne avec son patch depuis une 15aine de jour, pour le moment ça marche bien. Je compte d'ici quelques temps faire un petit tuto avec amour de mon bousin.
Back to top
View user's profile Send private message
JujuBickoille
n00b
n00b


Joined: 20 Apr 2010
Posts: 13

PostPosted: Thu Jan 06, 2011 10:18 pm    Post subject: Reply with quote

Salut,

J'ai tenté de faire un multiwan de la façon que tu essaie... et franchement, j'ai trouvé le résultat moyen ( notament, des decos sur certains jeux du frangin....

Je te conseil le patch de Julian Anastasov que tu trouvera ici : http://www.ssi.bg/~ja/

Question iptables, tu n'a plus rien à faire ( enfin, dans mon cas j'ai de la QoS )... et c'est parti !

Chez moi ca tourne avec son patch depuis une 15aine de jour, pour le moment ça marche bien. Je compte d'ici quelques temps faire un petit tuto avec amour de mon bousin.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum