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...
Back to normal view: https://oracle-base.com/articles/linux/nic-channel-bonding