Configure bonding for IEEE 802.3ad (Link aggregation)
For details about bonding in general, see the Linux Ethernet Bonding Driver HOWTO
This article is the counterpart of port-channel.
Debian
/etc/network/interfaces
auto bond0 iface bond0 inet static address 192.168.0.10 netmask 255.255.255.0 slaves eth0 eth2 bond_miimon 100 bond_mode 802.3ad bond_lacp_rate fast allow-bond0 eth0 iface eth0 inet manual allow-bond0 eth2 iface eth2 inet manual
RedHat (CentOS, Scientific Linux, Fedora, ...)
For users of a ixgbe (Intel) nic: Careful with kernel releases between 2.6.194-8.1.el5 and 2.6.18-229.el5, you might run into RHEL bug #619070
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0 IPADDR=192.168.2.12 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no BONDING_OPTS="miimon=100 mode=802.3ad lacp_rate=fast"
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=xx:xx:xx:xx:xx:xx MASTER=bond0 SLAVE=yes USERCTL=no
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=none ONBOOT=yes HWADDR=xx:xx:xx:xx:xx:xx MASTER=bond0 SLAVE=yes USERCTL=no
OpenSUSE
Presumably the same issue with the kernel as for RedHat. I haven't got it to work with 2.6.27.7-9-default (openSUSE 11.1).
/etc/sysconfig/network/ifcfg-bond0
STARTMODE='auto' BOOTPROTO='static' BONDING_MASTER=yes BONDING_SLAVE_1='eth0' BONDING_SLAVE_2='eth1' BONDING_MODULE_OPTS='mode=802.3ad miimon=100 lacp_rate=fast' IPADDR='192.168.0.10/24' NETWORK='192.168.0.0' USERCONTROL='no'
/etc/sysconfig/network/ifcfg-eth0
STARTMODE='off' BOOTPROTO='none' USERCONTROL='no'
/etc/sysconfig/network/ifcfg-eth1
STARTMODE='off' BOOTPROTO='none' USERCONTROL='no'