Août 30 2008
Channel Bonding sous Linux
Le « channel bonding » – ou port truncking – donne la possibilité d’appliquer une politique sur un groupe d’interfaces réseaux. On peut ensuite répartir ou load-balancer le trafic sur différents ports, ou en garder un de côté pour faire du failover.
Chargement du module
Déclarez l’interface channel bonding bond0 dans /etc/modprobe.conf
# Channel Bonding alias bond0 bonding options bond0 miimon=100 mode=1 # Vous pouvez en ajouter d'autres avec alias bond1, bond2, ...
Le mode est mis à 1, ce qui signifie en mode bascule ou failover. Un autre mode utile est le mode 0, qui distribue le trafic séquentiellement.
Interfaces
Sur Redhat/Suse, la configuration usuelle peut être utilisée. Bond0 inclut eth0 et eth1 dans ce cas précis.
– /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0 IPADDR=192.168.1.2 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no
– /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=00:1F:39:56:DF:C0 ONBOOT=yes DEVICE=eth0 MASTER=bond0 SLAVE=yes
– /etc/sysconfig/network-scripts/ifcfg-eth1
HWADDR=00:1F:39:56:DF:C1 ONBOOT=yes DEVICE=eth1 MASTER=bond0 SLAVE=yes
Les changements seront pris en compte au reboot!
Super ça marche !!! (Red Hat 5 Enterprise) Merci .
Bonjour
En effet ça marche.
Mais j’ai voulu tester le mode 4 (802.3ad) qui est censé réaliser une agrégation de liens. En l’occurence mes deux interfaces sont rattachés à un switch compatible 802.3ad, et de ce switch, je pars vers deux box (freebox à 9mb/s et une livebox à 3 mb/s).
Je m’attendais à constater un débit supérieur à 9 et je me retrouve avec un débit de 9+3/2=6mb/s
Avez-vous expérimenté cette mise en oeuvre?
Merci pour toute info sur ce sujet.
Cordialement.
Rosaire
Bonjour,
Ton sujet s’étend bien au-delà d’une agrégation de liens puisqu’il fait intervenir du routing. Comment les flux sont-ils distribués entre les 2 « box »? Par quel algorithme? Il faut qu’une session soit toujours redirigée vers la même box.
Quant au débit, je serais curieux de voir si la Livebox fournit les 9Mb théoriques. Comment est mesuré le débit?
Au final, je ne vois pas non plus pourquoi tu as besoin de 2 liens si tu as un switch!? A moins qu’il ne soit en 10M, ce qui m’étonnerait.
Bon sujet d’article mais je ne pense pas qu’il soit lié au channel bonding
J’ai mis en oeuvre ce tuto : http://linux.developpez.com/bonding/ et suivi les conseils prodigués ici : http://www.developpez.net/forums/d808637/systemes/linux/reseau/channel-bonding-switch/
La distribution des flux se fait d’après ce que j’ai compris par le protocole 802.3ad.
La livebox ne fournit que 3mb/s.
Le débit est mesuré par le téléchargement d’un gros fichier (600mb) sur un serveur de confiance.
R.
Ce tuto ne tient pas parce qu’il faut qu’une session passe toujours par la même connexion ou tu auras des problèmes. Ex: une connexion FTP ouverte sur la box1 ne sera plus identifiée sur la 2me.
De plus, la route par défaut est sur bond0; Bien et alors? Il reste toujours 2 passerelles, 1 sur chaque box. Une interface ne prend qu’une passerelle en compte. Le flux ne passe que d’un côté.
Encore une fois, le channel bonding n’est pas la solution et n’est pas fait pour cela.
Peut-être avec Netfilter si tu as du temps devant toi…
Tu sembles bien maitriser le problème et si je comprend bien, il n\’est pas possible de cumuler (agreger) le débit de deux box?
J\’ai tenté tellement de relances pour avoir des réponses à cette question en particulier sur ce site (developpez.com) pour finalement n\’avoir *jamais* de retour de personnes l\’ayant effectivement mis en oeuvre, que je finis par croire que en effet, ce n\’est pas possible…
R