Network bonding is a technique that ‘bind’ multiple network interfaces into a single channel/NIC in order to increase redundancy or throughput.
Depending the operating system other term are used like :
- OpenBSD: network trunking
- Cisco: Etherchannel
- HP-UX: Auto-port
- AIX: Link-aggregation
Don’t be fooled by marketing term, in the end the concept is always to aggregate multiple interfaces into a single virtual one.
If you want to increase redundancy your ideal setup should be aggregating two interfaces using two different network cards connected to two separate switches. The bonding will be in active / passive mode, only using one port a time. This setup not only ensures high availability operation, but more importantly, allows for maintenance of network switches without service interruption.
Here’s how to make the bonding on Debian Lenny :
- install ifenslave
- kernel module ‘bonding’ loaded
Modify network setting
lenny:~# vi /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto bond0 iface bond0 inet static slaves eth0 eth1 bond_mode active-backup bond_miimon 100 bond_downdelay 200 bond_updelay 200 address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx network xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx lenny:~# /etc/init.d/networking restart
slaves command specify which interfaces to aggregate, and
bond_mod how. Here we use
active-backup but if you setup bonding in order to increase throughput check the
balance_rr mode instead.
Further Reading and sources