Back to normal view: https://oracle-base.com/articles/linux/nic-channel-bonding

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

Back to the Top.

Back to normal view: https://oracle-base.com/articles/linux/nic-channel-bonding