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
|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