NIC Channel Bonding in RHEL 5 & 6 (CentOS & Oracle Linux)
NIC channel bonding allows multiple network cards to act as one, allowing increased bandwidth and redundancy.
Let's assume we have two network interfaces ("eth0" and "eth1") and we want to bond them so they look like a single interface ("bond0").
Add the following line to the "/etc/modprobe.conf" file.
alias bond0 bonding
The files defining the regular and bonded interfaces are located in the "/etc/sysconfig/network-scripts" directory. Create a new file called "ifcfg-bond0" for the bonded interface with the following contents (adjust the network parameters as applicable).
DEVICE=bond0 BOOTPROTO=none ONBOOT=yes NETWORK=192.168.0.0 NETMASK=255.255.255.0 IPADDR=192.168.0.171 USERCTL=no BONDING_OPTS="mode=1 miimon=100"
A description of the bonding options is available here.
Amend the existing "ifcfg-eth0" and "ifcfg-eth1" files, adding the "MASTER" and "SLAVE" parameters. The contents of these files should look like this.
#eth0 DEVICE=eth0 MASTER=bond0 SLAVE=yes USERCTL=no BOOTPROTO=none ONBOOT=yes #eth1 DEVICE=eth1 MASTER=bond0 SLAVE=yes USERCTL=no BOOTPROTO=none ONBOOT=yes
Restart the network service.
# service network restart Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ] #
The bonded interface can be displayed using the ifconfig command, which shows "bond0" running as the master and both "eth0" and "eth1" running as slaves.
# ifconfig
bond0 Link encap:Ethernet HWaddr 00:0C:29:0A:7D:5D
inet addr:192.168.0.171 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe0a:7d5d/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:69 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:964 (964.0 b) TX bytes:16956 (16.5 KiB)
eth0 Link encap:Ethernet HWaddr 00:0C:29:0A:7D:5D
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:152 (152.0 b) TX bytes:16860 (16.4 KiB)
Interrupt:59 Base address:0x2024
eth1 Link encap:Ethernet HWaddr 00:0C:29:0A:7D:5D
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:13 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:812 (812.0 b) TX bytes:96 (96.0 b)
Interrupt:67 Base address:0x20a4
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1843 errors:0 dropped:0 overruns:0 frame:0
TX packets:1843 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2757348 (2.6 MiB) TX bytes:2757348 (2.6 MiB)
#
Once the bond is configured it acts like any other Ethernet device. For example, you can configure alias interfaces to handle multiple IP addresses, as shown below.
Create the "ifcfg-bond0:1" and "ifcfg-bond0:2" files in the "/etc/sysconfig/network-scripts" directory with the following contents.
# ifcfg-bond0:1 file contents DEVICE=bond0:1 BOOTPROTO=none ONBOOT=yes NETWORK=192.168.0.0 NETMASK=255.255.255.0 IPADDR=192.168.0.172 USERCTL=no BONDING_OPTS="mode=1 miimon=100" # ifcfg-bond0:2 file contents DEVICE=bond0:2 BOOTPROTO=none ONBOOT=yes NETWORK=192.168.0.0 NETMASK=255.255.255.0 IPADDR=192.168.0.173 USERCTL=no BONDING_OPTS="mode=1 miimon=100"
Notice, the device names and IP addresses differ from the original "ifcfg-bond0" file.
Restart the network service for the changes to take effect.
# service network restart Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ] #
The ifconfig command shows the three IP addresses being handled by the bond.
[root@wls11g-1 network-scripts]# ifconfig
bond0 Link encap:Ethernet HWaddr 08:00:27:FC:F5:B7
inet addr:192.168.0.171 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:14635 errors:0 dropped:306 overruns:0 frame:0
TX packets:7310 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17571270 (16.7 MiB) TX bytes:554475 (541.4 KiB)
bond0:1 Link encap:Ethernet HWaddr 08:00:27:FC:F5:B7
inet addr:192.168.0.172 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
bond0:2 Link encap:Ethernet HWaddr 08:00:27:FC:F5:B7
inet addr:192.168.0.173 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
eth0 Link encap:Ethernet HWaddr 08:00:27:FC:F5:B7
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1835 errors:0 dropped:0 overruns:0 frame:0
TX packets:961 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:189616 (185.1 KiB) TX bytes:129841 (126.7 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:FC:F5:B7
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:12800 errors:0 dropped:306 overruns:0 frame:0
TX packets:6349 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17381654 (16.5 MiB) TX bytes:424634 (414.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1541 errors:0 dropped:0 overruns:0 frame:0
TX packets:1541 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3612733 (3.4 MiB) TX bytes:3612733 (3.4 MiB)
#
For more information see:
Hope this helps. Regards Tim...
![]() |

