Le bonding consiste à aggréger plusieurs interfaces en une seule afin d'augmenter sa bande passante lorsqu'on possède 2 connexions. Sous FreeBSD, le bonding s'effectue à l'aide du système NetGraph extrêmement modulaire. Netgraph permet des manipulations complexes au niveau réseau à l'aide de nodes héritant des particularités de leur type (hooks possibles, traitement du trafic à chaque hook, interprétation des messages de contrôle…) qui peuvent être chaînés à travers des hooks pour constituer un graphe. Pour disposer de netgraph dans FreeBSD, vérifiez que votre kernel a été compilé avec les options suivantes

options 	NETGRAPH
options 	NETGRAPH_ONE2MANY
options 	NETGRAPH_ETHER
options 	NETGRAPH_BPF
options 	NETGRAPH_IFACE

L'un de ces nodes, ng_one2many permet de créer une interface unique qui utilisera nos multiples interfaces pour envoyer et recevoir directement des trames. Ce qui va nous permettre de réunir le trafic de nos différentes connexions. Pour manipuler des nodes netgraph, nous utiliserons l'utilitaire ngctl et notamment ses commandes suivantes:

De plus, nous utiliserons certains mots-clés tirés de ng_ether:

Pour aggréger nos interfaces, nous exécutons les commandes suivantes:

# création de l'interface et connexions avec les autres
ngctl mkpeer fxp0: one2many upper one
ngctl connect fxp0: fxp0:upper lower many0
ngctl connect fxp1: fxp0:upper lower many1
ngctl connect fxp2: fxp0:upper lower many2

# permettre l'emission et la réception de trames au nom de l'interface one
# en utilisant les mots clés setpromisc (place en mode promiscuous) et
# setautosrc (utilise l'adresse de l'interface one) encore tirés de ng_ether
ngctl msg fxp1: setpromisc 1
ngctl msg fxp2: setpromisc 1
ngctl msg fxp1: setautosrc 0
ngctl msg fxp2: setautosrc 0

# activer les 3 nouvelles interfaces
ngctl msg fxp0:upper setconfig "{ xmitAlg=1 failAlg=1 enabledLinks=[ 1 1 1 ] }"

# configurer l'interface
ifconfig fxp0 192.168.0.1 netmask 255.255.255.0

L'IP est donc attribué au groupe d'interfaces.

Plus d'informations directement à la source http://www.daemonnews.org/200003/netgraph.html http://www.elischer.org/netgraph/

–eberkut

freebsd/bonding.txt · Last modified: 2010/01/12 13:29 (external edit)