Linux Network bonding – setup
Linux network Bonding is a creation of a single bonded interface by combining 2 or more Ethernet interfaces. This helps in high availability of your network interface and offers performance improvements on your data traffic flow. Bonding is also referred as nic trunking or teaming.
Bonding allows you to aggregate multiple ports into a single group, effectively combining the bandwidth into a single connection. Bonding also allows you to create multi-gigabit pipes to transport traffic through the highest traffic areas of your network. For example, you can aggregate three megabits ports into a three-megabits trunk port. That is equivalent with having one interface with three megabytes speed
Steps for bonding in Oracle Enterprise Linux and Redhat Enterprise Linux are as follows..
Step 1.
Create the file ifcfg-bond0 with the IP address, netmask and gateway. Shown below is my test bonding config file.
# cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 IPADDR=192.168.1.12 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 USERCTL=no BOOTPROTO=none ONBOOT=yes
Step 2.
Modify eth0, eth1 and eth2 configuration as shown below. Comment out, or remove the ip address, netmask, gateway and hardware address from each one of these files, since settings should only come from the ifcfg-bond0 file above. Make sure you add the MASTER and SLAVE configuration in these files.
Modify eth0, eth1 and eth2 configuration as shown below. Comment out, or remove the ip address, netmask, gateway and hardware address from each one of these files, since settings should only come from the ifcfg-bond0 file above. Make sure you add the MASTER and SLAVE configuration in these files.
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes # Settings for Bond MASTER=bond0 SLAVE=yes
# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none ONBOOT=yes USERCTL=no # Settings for bonding MASTER=bond0 SLAVE=yes
# cat /etc/sysconfig/network-scripts/ifcfg-eth2 DEVICE=eth2 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
Step 3.
Set the parameters for bond0 bonding kernel module. Select the network bonding mode based on you need. The modes are
Set the parameters for bond0 bonding kernel module. Select the network bonding mode based on you need. The modes are
- mode=0 (Balance Round Robin)
- mode=1 (Active backup)
- mode=2 (Balance XOR)
- mode=3 (Broadcast)
- mode=4 (802.3ad)
- mode=5 (Balance TLB)
- mode=6 (Balance ALB)
Add the following lines to /etc/modprobe.conf
# bonding commands alias bond0 bonding options bond0 mode=1 miimon=100
Step 4.
Load the bond driver module from the command prompt.
# modprobe bonding
Step 5.
Restart the network, or restart the computer.
# service network restart # Or restart computer
When the machine boots up check the proc settings.
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver Bonding Mode: adaptive load balancing Primary Slave: None Currently Active Slave: eth2 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth2 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:13:72:80: 62:f0
Look at ifconfig -a and check that your bond0 interface is active. You are done!.
To verify whether the failover bonding works..
- Do an ifdown eth0 and check /proc/net/bonding/bond0 and check the “Current Active slave”.
- Do a continuous ping to the bond0 ipaddress from a different machine and do a ifdown the active interface. The ping should not break.
No comments:
Post a Comment