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'