Debian Admin - Your way to Debian World

September 24, 2006

Linux Ethernet Bonding Configuration

by @ 9:26 am. Filed under Network

If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!

Ethernet bonding refers to aggregating multiple ethernet channels together to form a single channel. This is primarily used for redundancy in ethernet paths or for load balancing. This page refers in particular to performing ethernet bonding under linux, and so does not limit itself to discussion of 802.3ad Trunk Aggregation.

Ethernet Bonding Types

The linux kernel bonding module supports a number of bonding types.

Round Robin

Packets are transmitted in a round robin fashion over the available slave interfaces. Provides both load balancing and fault tolerance

Active Backup

One slave interface is active at any time. If one interface fails, another interface takes over the MAC address and becomes the active interface. Provides fault tolerance only. Doesn’t require special switch support

Balance XOR

Tranmissions are balanced across the slave interfaces based on ((source MAC) XOR (dest MAC)) modula slave count. The same slave is selected for each destination MAC. Provides load balancing and fault tolerance.

Broadcast

Transmits everything on all slave interfaces. Provides fault tolerance.

802.3ad

This is classic IEEE 802.3ad Dynamic link aggregation. This requires 802.3ad support in the switch and driver support for retrieving the speed and duplex of each slave.

Balance TLB

Adaptive Transmit Load Balancing. Incoming traffic is received on the active slave only, outgoing traffic is distributed according to the current load on each slave. Doesn’t require special switch support

Balance ALB

Adaptive Load Balancing - provides both transmit load balancing (TLB) and receive load balancing for IPv4 via ARP negotiation. Doesn’t require special switch support, but does require the ability to change the MAC address of a device while it is open

Setup Bonding Ethernet on Debian and ubuntu with a 2.4 kernel

To use Bonding Ethernet for High-Availability (fail-over) on Debian (Woody, Sarge,etch or Sid with a 2.4.x kernel) and ubuntu you need to:

install package ifenslave-2.4.To install this package follow this command

#apt-get install ifenslave-2.4

make sure the real NICs kernel modules are loaded automatically

edit /etc/network/interfaces to look like this:

iface bond0 inet static
address 10.31.1.5
netmask 255.255.255.0
network 10.31.1.0
gateway 10.31.1.254
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 eth1

comment or borrow the lines referring to your real NICs in the same file

add the following lines to your /etc/modutils/arch/i386:

alias bond0 bonding

options bonding mode=1 miimon=100 downdelay=200 updelay=200

Now run the following command for update

#update-modules

Setup Bonding Ethernet on Debian and ubuntu with a 2.6 kernel

To use Bonding Ethernet for High-Availability (fail-over) on Debian (Woody, Sarge,etch or Sid with a 2.4.x kernel) and ubuntu you need to:

install package ifenslave-2.6.To install this package follow this command

#apt-get install ifenslave-2.6

make sure the real NICs kernel modules are loaded automatically

edit /etc/network/interfaces to look like this:

iface bond0 inet static
address 10.31.1.5
netmask 255.255.255.0
network 10.31.1.0
gateway 10.31.1.254
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 eth1

comment or borrow the lines referring to your real NICs in the same file

add the following lines to your /etc/modprobe.d/arch/i386:

alias bond0 bonding

options bonding mode=1 miimon=100 downdelay=200 updelay=200

Tags: , , , , ,

You may also be interested in...

3 Responses to “Linux Ethernet Bonding Configuration”

  1. Antoniu-George SAVU Says:

    This howto is incomplete. What if I have 4 NICs and I want to create two separate bonding devices with two slaves each ?

    As far as I have tried, I manage to get the bond0 interface up but I can not get bond1 up using /etc/network/interfaces.

  2. legmig Says:

    And I have need for an active failover bond consisting of two load balanced bonds. I fear bonding only supports enslaving of “real” eth interfaces, though. Has anobody tried that?

  3. Jacques Says:

    Can you provide an example of /etc/network/interfaces with two IP addresses on the same bonding interface ?
    Thanks

Leave a Reply

Subscribe RSS Feed

subscribe to the Debian Admin RSS feed

Internal links:

Sponsors:



Categories:

Support Debian Admin

Amount $:
Website(Optional):

Sponsors:

Archives:

Related Links:


Favourite Sites:

Wordpress Collection
Windows Reference
Ubuntu Geek
DebianHelp
All About Debian Tutorials
Power Electrical
Check Your IP Here
Debian,Ubuntu News
DebCentral
Tuxmachines
Capnkirby
Libervis
Nuxifield
Linux Horizon
Linux Appfinder
Debuntu
GNU/Linux For Everyone
Free Penguin
DebianAdmin is not related to the Debian Project.
This site is copyright © 2006,2007 Debian Admin
All Trademarks are the property of their respective owners.
The contents of this website may not be mirrored or archived without the express written permission of DebianAdmin Site Owner.

DISCLAIMER: All the information, troubleshooting methods, utilities offered in this website is provided AS-IS, without any warranties. Though I strive for perfection, and always test the validity and effectiveness of the troubleshooting content in various systems, I assume no responsibility for your use of these Fixes, Utilities and other troubleshooting advice. The author will not be liable for any special, incidental, consequential or indirect damages due to loss of data or any other reason. All use is completely at your own risk. Changes to the existing content and new additions are made to this website periodically, without notification.
Rodney's Kontera DynamiContext Plugin plugged in.