Intel® Ethernet 700 Series
Linux Performance Tuning Guide
Adapter Bonding
Linux bonding is a powerful feature that can significantly improve the network performance, redundancy, and fault tolerance in server environments. However, it is important to note that it requires compatible network hardware and proper configuration on both the server and the switch to function properly.
The bonding driver in Linux allows you to aggregate multiple physical network interfaces into a bonded interface. This bonded interface appears as a single virtual network interface to the operating system and applications.
Bonding provides several modes of operations, each with its own characteristics.
| Mode | Type |
|---|---|
| 0 | Round Robin |
| 1 | Active Backup |
| 2 | XOR |
| 3 | Broadcast |
| 4 | LACP |
| 5 | Transmit Load Balance |
| 6 | Adaptive Load Balance |
There are different methods to create a bonding in Linux. One of the most common methods is by using network configuration files (for example,
Configuration Using Network Configuration Files
The following steps create bonding throught the network configuration files.
- Select two or more NIC ports for bonding (for example, ethX and ethY)
- Open NIC Configuration Files under
/etc/sysconfig/network-scripts/ for the required NIC Interface (for example,vi ifcfg-ethX andvi ifcfg-ethY ) and append the following text:MASTER=bondN [Note: N is an integer to mention the bond number.] SLAVE=yes - Create a bond network script file using
vi /etc/sysconfig/network-scripts/ifcfg-bondN and enter the following text:DEVICE=bondN [Note: N is an integer to mention the bond number] ONBOOT=yes USERCTL=no BOOTPROTO=dhcp (or) none IPADDR=200.20.2.4 [required if BOOTPROTO=none] NETMASK=255.255.255.0 [required if BOOTPROTO=none] NETWORK=200.20.2.0 [required if BOOTPROTO=none] BROADCAST=200.20.2.255 [required if BOOTPROTO=none] BONDING_OPTS="mode=1 miimon=100" Note:Mode can be any integer from 0 to 6 based on the requirement. - Restart the network services using
service network restart orsystemctl restart NetworkManager.service