Re: Agrégation de liens Internet

2014-04-23 Par sujet Olivier
Le 22 avril 2014 01:06, Pascal Hambourg pas...@plouf.fr.eu.org a écrit :



  Dans l'article en anglais que j'avais cité, l'auteur mentionnait
 plusieurs
  algorithmes différents pour répartir les requêtes.
  Si ma mémoire est bonne, un algorithme tenait compte de la bande
 passante.
  Je n'ai pas essayé d'en savoir plus.

 Quel article ? Le seul article que je vois cité dans ce fil vient de
 Daniel, et ne semble pas parler de ça.


Celui la (que j'avais inclus dans le massage avec le tag [RESOLU])
[1]
http://www.embeddedlinux.org.cn/linux_net/0596002556/understandlni-CHP-31-SECT-2.html

Plus précisément, le lien [2]
[2]
http://www.embeddedlinux.org.cn/linux_net/0596002556/understandlni-CHP-31-SECT-2.html#understandlni-CHP-31-SECT-2.3


Re: Agrégation de liens Internet

2014-04-21 Par sujet Olivier
Le 20 avril 2014 13:02, Pascal Hambourg pas...@plouf.fr.eu.org a écrit :

 Salut,

 Olivier a écrit :
 
  Le 14 avril 2014 10:46, daniel huhardeaux no-s...@tootai.net
  mailto:no-s...@tootai.net a écrit :
 
  Tu peux faire du bonding ou du load balancing avec iptables

 Non, le bonding ne permet pas d'agréger des liens *internet* mais
 seulement des liens *ethernet*.

  Si j'ai bien compris, la clé de la répartition est la ligne:
  |ip route add default scope global \
  nexthop via 10.10.0.1 dev eth0.10 weight 2 \
  nexthop via 10.20.0.1 dev eth0.20 weight 2 \
  nexthop via 192.168.1.1 dev eth0.30 weight 1

 La répartition par route multipath risque de ne plus être utilisable
 avec des liens internet indépendants, le cache de routage ayant été
 retiré des versions récentes du noyau Linux.

 Explications :
 Une route multipath sélectionne un chemin parmi ceux spécifiés, pour un
 couple source-destination donné,


Ah, bon ?
En testant (très très sommairement), j'avais compris qu'il ne tenait compte
que de la destination, pas de la source.

Dans l'article en anglais que j'avais cité, l'auteur mentionnait plusieurs
algorithmes différents pour répartir les requêtes.
Si ma mémoire est bonne, un algorithme tenait compte de la bande passante.
Je n'ai pas essayé d'en savoir plus.


 et le résultat est mémorisé dans le
 cache de routage. Ensuite, tous les paquets avec les mêmes adresses
 source et destination suivront la même route. Sans cache de routage,
 chaque paquet d'un flux source-destination est susceptible d'emprunter
 un chemin différent, ce qui peut ne pas fonctionner avec des liens
 internet indépendants pour les raisons suivantes :
 - si les routeur internet font du NAT, les paquets d'un même flux
 sortiront avec des adresses sources différentes, ce qui casse à coup sûr
 les connexions TCP ;
 - si les routeurs internet ne font pas de NAT mais que c'est
 l'équipement répartiteur qui le fait, alors les paquets d'un même flux
 sortiront avec la même adresse source sur des liens différents ; or les
 FAI qui suivent les bonnes pratiques bloquent les paquets dont l'adresse
 source ne correspond pas à la connexion internet.

 Reste le routage par marquage avec iptables.


Comment répartir la charge avec le marquage ?



 --
 Lisez la FAQ de la liste avant de poser une question :
 http://wiki.debian.org/fr/FrenchLists

 Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
 vers debian-user-french-requ...@lists.debian.org
 En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
 Archive: https://lists.debian.org/5353a942.4030...@plouf.fr.eu.org




Re: Agrégation de liens Internet

2014-04-21 Par sujet Pascal Hambourg
Olivier a écrit :
 Le 20 avril 2014 13:02, Pascal Hambourg pas...@plouf.fr.eu.org a écrit :
 
 La répartition par route multipath risque de ne plus être utilisable
 avec des liens internet indépendants, le cache de routage ayant été
 retiré des versions récentes du noyau Linux.

A partir de la version 3.6.

 Explications :
 Une route multipath sélectionne un chemin parmi ceux spécifiés, pour un
 couple source-destination donné,
 
 Ah, bon ?
 En testant (très très sommairement), j'avais compris qu'il ne tenait compte
 que de la destination, pas de la source.

La décision de routage, oui (hors routage avancé). Pas le cache de
routage. Ça empêcherait de faire de la répartition lorsque plusieurs
clients font des connexions vers le même serveur. Déjà que ça ne fait
pas de répartition lorsque le même client fait plusieurs connexions au
même serveur...

Démonstration :
# ip route add 172.16.0.0/16 nexthop via 192.168.0.2 nexthop via 192.168.0.3
# ip route get 172.16.0.1 from 10.0.0.2 iif eth1
172.16.0.1 from 10.0.0.2 via 192.168.0.2 dev eth0  src 10.0.0.1
# ip route get 172.16.0.1 from 10.0.0.3 iif eth1
172.16.0.1 from 10.0.0.3 via 192.168.0.3 dev eth0  src 10.0.0.1

Même destination, sources différentes - passerelle différente.

 Dans l'article en anglais que j'avais cité, l'auteur mentionnait plusieurs
 algorithmes différents pour répartir les requêtes.
 Si ma mémoire est bonne, un algorithme tenait compte de la bande passante.
 Je n'ai pas essayé d'en savoir plus.

Quel article ? Le seul article que je vois cité dans ce fil vient de
Daniel, et ne semble pas parler de ça.

 Reste le routage par marquage avec iptables.
 
 Comment répartir la charge avec le marquage ?

Grâce à la correspondance statistic d'iptables et la cible CONNMARK.
Mais cela n'a qu'une efficacité relative car d'une part on ne peut pas
anticiper quel sera la demande en bande passante d'une connexion et
surtout il n'y pas de moyen de privilégier le lien le moins chargé.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/5355a460.4070...@plouf.fr.eu.org



Re: Agrégation de liens Internet

2014-04-20 Par sujet Pascal Hambourg
Salut,

Olivier a écrit :
 
 Le 14 avril 2014 10:46, daniel huhardeaux no-s...@tootai.net
 mailto:no-s...@tootai.net a écrit :
 
 Tu peux faire du bonding ou du load balancing avec iptables

Non, le bonding ne permet pas d'agréger des liens *internet* mais
seulement des liens *ethernet*.

 Si j'ai bien compris, la clé de la répartition est la ligne:
 |ip route add default scope global \
 nexthop via 10.10.0.1 dev eth0.10 weight 2 \
 nexthop via 10.20.0.1 dev eth0.20 weight 2 \
 nexthop via 192.168.1.1 dev eth0.30 weight 1

La répartition par route multipath risque de ne plus être utilisable
avec des liens internet indépendants, le cache de routage ayant été
retiré des versions récentes du noyau Linux.

Explications :
Une route multipath sélectionne un chemin parmi ceux spécifiés, pour un
couple source-destination donné, et le résultat est mémorisé dans le
cache de routage. Ensuite, tous les paquets avec les mêmes adresses
source et destination suivront la même route. Sans cache de routage,
chaque paquet d'un flux source-destination est susceptible d'emprunter
un chemin différent, ce qui peut ne pas fonctionner avec des liens
internet indépendants pour les raisons suivantes :
- si les routeur internet font du NAT, les paquets d'un même flux
sortiront avec des adresses sources différentes, ce qui casse à coup sûr
les connexions TCP ;
- si les routeurs internet ne font pas de NAT mais que c'est
l'équipement répartiteur qui le fait, alors les paquets d'un même flux
sortiront avec la même adresse source sur des liens différents ; or les
FAI qui suivent les bonnes pratiques bloquent les paquets dont l'adresse
source ne correspond pas à la connexion internet.

Reste le routage par marquage avec iptables.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/5353a942.4030...@plouf.fr.eu.org



Re: Agrégation de liens Internet

2014-04-18 Par sujet Olivier
Le 14 avril 2014 10:46, daniel huhardeaux no-s...@tootai.net a écrit :

 Le 14/04/2014 10:30, Olivier a écrit :

 Bonjour,


 Bonjour



 J'ai un site sur lequel plusieurs (4 ou 6) liens Internet sont
 actuellement en place pour offrir de la connectivité à une centaine
 d'utilisateurs.

 Plutôt que répartir statiquement les utilisateurs par modem-routeur (20
 utilisateurs par routeur), j'envisage de mettre en place un mécanisme
 d'agrégation ou de load-balancing.

 Avez-vous déjà étudié ou mis en place ce type de service ?
 Quels moyens avez-vous utilisés ?
 Quelles suggestions et recommandations ?

 Avec mon moteur de recherche, j'ai trouvé que le mécanisme de Teaming,
 ajouté à linux 3.3 était une ré-écriture du mécanisme de bonding. Est-ce
 utilisable vers Internet quand l'ISP fournit de simples box sans mécanisme
 de routage sophistiqué (BGP, ...) ?


 Tu peux faire du bonding ou du load balancing avec iptables

 Ex: http://sygard.no/2012/06/load-balancing-multiple-isp-
 connections-using-iproute-and-iptables/


J'ai lu attentivement le lien.
Si j'ai bien compris, la clé de la répartition est la ligne:
ip route add default scope global \
nexthop via 10.10.0.1 dev eth0.10 weight 2 \
nexthop via 10.20.0.1 dev eth0.20 weight 2 \
nexthop via 192.168.1.1 dev eth0.30 weight 1

C'est intéressant.
Je viens d'essayer ça sur une machine: j'ai l'impression que toutes mes
machines sortent avec la même passerelle vers Internet (testé en lançant un
navigateur sur monip.org).

J'ai simplement utilisé une commande :
ip route replace default scope global nexthop via 192.168.64.254 dev eth0
weight 1 nexthop via 192.168.64.253 dev eth0 weight 1

où mes deux passerelles ont respectivement les adresses 192.168.64.253 et
254.

Il m'est difficile de créer beaucoup de machines mais je peux en créer une
ou deux de plus, si besoin.

Comment démontrer avec certitude que ça marche ou ça ne marche pas ?
Un conseil ?



 --
 Daniel

 --
 Lisez la FAQ de la liste avant de poser une question :
 http://wiki.debian.org/fr/FrenchLists

 Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
 vers debian-user-french-requ...@lists.debian.org
 En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
 Archive: https://lists.debian.org/534ba051.10...@tootai.net




Re: Agrégation de liens Internet [RESOLU]

2014-04-18 Par sujet Olivier
En creusant un peu, j'ai trouvé  [1] dont en particulier:

Linux provides flexibility among algorithms by allowing the administrator
to assign each next hop a weight with the weight keyword. The number of
times a next hop is selected is proportional to its weight in relation to
all the other next hops. If all the next hops are assigned the same weight,
the algorithm falls back to the so-called equal cost multipath algorithm.

Note, however, that the granularity used to distribute traffic among the
next hops is measured not in packets, but in the number of routing cache
entries. This is because once a next hop is selected, an entry is added to
the cache. Because the routing subsystem always consults the cache before
invoking any check on routing tables, subsequent packets belonging to the
same traffic flow (aggregate of traffic) will be handled straight from the
cache. As explained in Chapter
36http://www.embeddedlinux.org.cn/linux_net/0596002556/understandlni-CHP-36.html#understandlni-CHP-36,
a flow is a collection of packets that match a set of criteria. These
consist mainly of the source or destination addresses, the ingress or
egress devices, and the IP TOS field. You will see in the section Per-Flow,
Per-Connection, and Per-Packet
distributionhttp://www.embeddedlinux.org.cn/linux_net/0596002556/understandlni-CHP-31-SECT-2.html#understandlni-CHP-31-SECT-2.3
that when Multipath support for the cache is enabled, traffic can also be
distributed on a per-connection basis instead of on a per-flow basis.

From purely a throughput point of view, this granularity may be suboptimal,
because different flows may have very different bandwidth requirements, and
therefore the kernel may be unfair even when all of the next hops are
configured with the same weightand what is worse, the unfairness would not
be deterministic. So Linux provides an option that allows you to use
per-packet rather than per-flow granularity (see the section Equalizer
algorithmhttp://www.embeddedlinux.org.cn/linux_net/0596002556/understandlni-CHP-31-SECT-2.html#understandlni-CHP-31-SECT-2.3.1).
However, in most cases, given the high number of flows that usually
traverse a router, the next hops are likely to get, on average, a load that
is proportional to their weights.


Ramené à mon exemple, si j'ai bien compris ce que j'ai lu, le fait de
solliciter monip.org fait que la machine qui route vers les différentes
passerelles consulte son propre cache de routage, et indique logiquement
la même passerelle.
Pour tester, je devrai donc avoir plusieurs sites de même métal de monip.org,
ce qui logiquement devrait conduire à de nouvelles entrées dans le cache de
routage et donc probablement un choix différencié de passerelles.

En débranchant temporairement une passerelle, j'ai constaté avec plaisir le
basculement vers l'autre passerelle.

En testant avec myip.dk, monip.org et d'autres, j'ai vu changer les
adresses IP publiques.

Merci mille fois pour le coup de main !!

Il me reste encore à savoir comment conserver canoniquement  sur une
Debian, la règle ip route ... dans un fichier de config.



[1]
http://www.embeddedlinux.org.cn/linux_net/0596002556/understandlni-CHP-31-SECT-2.html


Le 18 avril 2014 17:07, Olivier oza.4...@gmail.com a écrit :




 Le 14 avril 2014 10:46, daniel huhardeaux no-s...@tootai.net a écrit :

 Le 14/04/2014 10:30, Olivier a écrit :

  Bonjour,


 Bonjour



 J'ai un site sur lequel plusieurs (4 ou 6) liens Internet sont
 actuellement en place pour offrir de la connectivité à une centaine
 d'utilisateurs.

 Plutôt que répartir statiquement les utilisateurs par modem-routeur
 (20 utilisateurs par routeur), j'envisage de mettre en place un mécanisme
 d'agrégation ou de load-balancing.

 Avez-vous déjà étudié ou mis en place ce type de service ?
 Quels moyens avez-vous utilisés ?
 Quelles suggestions et recommandations ?

 Avec mon moteur de recherche, j'ai trouvé que le mécanisme de Teaming,
 ajouté à linux 3.3 était une ré-écriture du mécanisme de bonding. Est-ce
 utilisable vers Internet quand l'ISP fournit de simples box sans mécanisme
 de routage sophistiqué (BGP, ...) ?


 Tu peux faire du bonding ou du load balancing avec iptables

 Ex: http://sygard.no/2012/06/load-balancing-multiple-isp-
 connections-using-iproute-and-iptables/


 J'ai lu attentivement le lien.
 Si j'ai bien compris, la clé de la répartition est la ligne:
 ip route add default scope global \
 nexthop via 10.10.0.1 dev eth0.10 weight 2 \
 nexthop via 10.20.0.1 dev eth0.20 weight 2 \
 nexthop via 192.168.1.1 dev eth0.30 weight 1

 C'est intéressant.
 Je viens d'essayer ça sur une machine: j'ai l'impression que toutes mes
 machines sortent avec la même passerelle vers Internet (testé en lançant
 un navigateur sur monip.org).

 J'ai simplement utilisé une commande :
 ip route replace default scope global nexthop via 192.168.64.254 dev eth0
 weight 1 nexthop via 192.168.64.253 dev eth0 weight 1

 où mes deux passerelles ont respectivement les adresses 

Agrégation de liens Internet

2014-04-14 Par sujet Olivier
Bonjour,

J'ai un site sur lequel plusieurs (4 ou 6) liens Internet sont actuellement
en place pour offrir de la connectivité à une centaine d'utilisateurs.

Plutôt que répartir statiquement les utilisateurs par modem-routeur (20
utilisateurs par routeur), j'envisage de mettre en place un mécanisme
d'agrégation ou de load-balancing.

Avez-vous déjà étudié ou mis en place ce type de service ?
Quels moyens avez-vous utilisés ?
Quelles suggestions et recommandations ?

Avec mon moteur de recherche, j'ai trouvé que le mécanisme de Teaming,
ajouté à linux 3.3 était une ré-écriture du mécanisme de bonding. Est-ce
utilisable vers Internet quand l'ISP fournit de simples box sans mécanisme
de routage sophistiqué (BGP, ...) ?

Slts


Re: Agrégation de liens Internet

2014-04-14 Par sujet daniel huhardeaux

Le 14/04/2014 10:30, Olivier a écrit :

Bonjour,


Bonjour



J'ai un site sur lequel plusieurs (4 ou 6) liens Internet sont 
actuellement en place pour offrir de la connectivité à une centaine 
d'utilisateurs.


Plutôt que répartir statiquement les utilisateurs par modem-routeur 
(20 utilisateurs par routeur), j'envisage de mettre en place un 
mécanisme d'agrégation ou de load-balancing.


Avez-vous déjà étudié ou mis en place ce type de service ?
Quels moyens avez-vous utilisés ?
Quelles suggestions et recommandations ?

Avec mon moteur de recherche, j'ai trouvé que le mécanisme de Teaming, 
ajouté à linux 3.3 était une ré-écriture du mécanisme de bonding. 
Est-ce utilisable vers Internet quand l'ISP fournit de simples box 
sans mécanisme de routage sophistiqué (BGP, ...) ?


Tu peux faire du bonding ou du load balancing avec iptables

Ex: 
http://sygard.no/2012/06/load-balancing-multiple-isp-connections-using-iproute-and-iptables/


--
Daniel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/534ba051.10...@tootai.net



Re: Agrégation de liens Internet

2014-04-14 Par sujet daniel huhardeaux

Le 14/04/2014 10:30, Olivier a écrit :

Bonjour,

J'ai un site sur lequel plusieurs (4 ou 6) liens Internet sont 
actuellement en place pour offrir de la connectivité à une centaine 
d'utilisateurs.


Plutôt que répartir statiquement les utilisateurs par modem-routeur 
(20 utilisateurs par routeur), j'envisage de mettre en place un 
mécanisme d'agrégation ou de load-balancing.


Avez-vous déjà étudié ou mis en place ce type de service ?
Quels moyens avez-vous utilisés ?
Quelles suggestions et recommandations ?

Avec mon moteur de recherche, j'ai trouvé que le mécanisme de Teaming, 
ajouté à linux 3.3 était une ré-écriture du mécanisme de bonding. 
Est-ce utilisable vers Internet quand l'ISP fournit de simples box 
sans mécanisme de routage sophistiqué (BGP, ...) ?


Oubli de ma part: je fais de la répartition par IP source et/ou service 
avec iptables + iproute2


--
Daniel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/534ba193.30...@tootai.net