Explanation of Network Bonding and its types in Linux.

The process of combing two or more network interfaces together to form a single interface is known as network bonding.

In Linux, we usually combine two ethernet interfaces to create a single bond interface.

However there can be two or more network interfaces can be connected into a single logical “bonded” interface.

a. Benefits of Bond Interface(varies as per different bonding types)
1. Performance Improvement :- Increased performance of network data transfer.
2. Redundancy : Availability of 2 interfaces.
3. Increased Bandwidth :- Two interfaces if active along, then it can provide increased bandwidth.
4. Fault Tolerance :- If one interface is unplugged or down, the other one will work.

b. Kernel Module:- “Bonding” kernel module is used to implement bonding in linux.

[root@nglinux ~]# modprobe -l | grep -i bonding
kernel/drivers/net/bonding/bonding.ko

c. Types of Network Bond Interfaces

Value Name Description
0 balance-rr Round robin policy, default mode. Transmits packets in round robin fashion among the available interfaces.
1 active-backup Active-backup policy, Only one itnerface works at a moment and the other one only works when the first fails.
2 balance-xor Here source MAC address is XOR’ed with destination MAC to provide load balancing . It selects the same slave everytime.
3 broadcast Transmits a packet to all slave interfaces and hence providing fault tolerance, however it can only be used for specific purposes.
4 802.3ad Dynamic Link Aggregation mode, creates aggregation groups which have same speed. It needs a switch which supports IEEE 802.3ad dynamic link.
5 balance-tlb Transmit load balancing, outgoing packets are distributed based on the current traffic at all interfaces and the queue length.
6 balance-alb Adaptive load balancing, it provides transmit packets load balancing and fault tolerance as well in case of switch port, cable, or adapter failure.

d. How to check bonding interfaces and configuration ?

### We can check it using bonding config in /proc
[root@nglinux ~]# cat /proc/net/bonding/bond0

### OR, grep the bond keyword in the cfg files.
[root@nglinux ~]# cat /etc/sysconfig/network-scripts/ifcfg-* | grep -i bond

Leave a Reply

Your email address will not be published.