How to configure NIC Teaming in Linux


Linux allows binding multiple network interfaces into a single channel/NIC using special kernel module called bonding. The Linux bonding driver provides a method for aggregating multiple network interfaces into a single logical “bonded” interface.

 Step #1: Create a bond0 configuration file

Red Hat Linux stores network configuration in /etc/sysconfig/network-scripts/ directory. First, create a bond0 config file:

# vi /etc/sysconfig/network-scripts/ifcfg-bond0

Append following lines to it:

DEVICE=bond0
IPADDR=192.168.1.20
NETWORK=192.168.1.0
NETMASK=255.255.255.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes

Replace above IP address with your actual IP address. Save file and exit to shell prompt.

 Step #2: Modify eth0 and eth1 config files:

Open both configuration using vi text editor and make sure file read as follows for eth0 interface

 # vi /etc/sysconfig/network-scripts/ifcfg-eth0

Modify/append directive as follows:

DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

 Open eth1 configuration file using vi text editor:

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

Make sure file read as follows for eth1 interface:

DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

Save file and exit to shell prompt.

Step # 3: Load bond driver/module

 Make sure bonding module is loaded when the channel-bonding interface (bond0) is brought up. You need to modify kernel modules configuration file:

# vi /etc/modprobe.conf

Append following two lines:

alias bond0 bonding
options bond0 mode=balance-alb miimon=100

Save file and exit to shell prompt.

 Step # 4: Test configuration

First, load the bonding module:

# modprobe bonding

 Restart networking service in order to bring up bond0 interface:

# service network restart

 Verify everything is working:

# less /proc/net/bonding/bond0

Output:

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 0

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth0

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0c:29:c6:be:59

 Slave Interface: eth1

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0c:29:c6:be:63

About Manish Jha

Manish is currently working as Staff Solutions Engineer at VMware. I have 12 years of experience in handling Datacenter & Cloud technologies including VMware vSphere, VMware Cloud Director, VMware NSX,vSphere Replication & VMware HCX. For my contribution towards community, I have been felicitated with following awards: vExpert: 2014-2023 vExpert NSX: 2012-2020, vExpert Cloud: 2017-2021 vExpert HCX: 2018-2022 vExpert Pro: 2020-23 I blog at www.vstellar.com If you find any post informational to you please press like and share it across social media and leave your comments if you want to discuss further on any post.
This entry was posted in Linux/CentOS. Bookmark the permalink.

1 Response to How to configure NIC Teaming in Linux

  1. Hi! This is excellent, thank you, but I am using ubuntu12.04 in vmware for bonding, its work fine, but the problem is that i am able to ping from another vmware os to bond0 if eth0 is up, or both up, but i can not ping to bond0 while eth0 is down and eth1 us up. Can you please help me? Thank you.

    Like

Leave a comment