The below diagram will explain how the bonding is happening .
Operating system used: Redhat Linux 6.3
NIC Details:
[root@mylinz2 network-scripts]# ifconfig -a |grep eth eth2 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA eth4 Link encap:Ethernet HWaddr 00:0C:29:79:17:04 eth3 Link encap:Ethernet HWaddr 00:0C:29:79:17:F0 [root@mylinz2 network-scripts]#
Goal:
Configure bonding between eth2 and eth4 with name of bond0.
Add the below line in /etc/modprobe.conf to load the bonding module in to kernel.
alias bond0 bonding
In redhat 6.3 , you need to create new file called “bonding.conf” under /etc/modprobe.d/ with below mentioned line.
# cat /etc/modprobe.d/bonding.conf alias bond0 bonding
Now time to create a bonding interface configuration file in /etc/sysconfig/network-scripts/ directory like the below one.
[root@mylinz2 network-scripts]# pwd /etc/sysconfig/network-scripts [root@mylinz2 network-scripts]# cat ifcfg-bond0 #This is congiguration file for bond0.Used NIC's eth2 & eth4 DEVICE=bond0 IPADDR=192.168.10.25 NETMASK=255.255.255.0 USRCTL=no ONBOOT=yes BOOTPRO=none BONDING_OPTS="mode=0 miimon=100" [root@mylinz2 network-scripts]#
[root@mylinz2 network-scripts]# cat ifcfg-eth2 DEVICE=eth2 HWADDR=00:0C:29:79:17:FA BOOTPRO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no
[root@mylinz2 network-scripts]# cat ifcfg-eth4 DEVICE=eth4 HWADDR=00:0C:29:79:17:04 BOOTPRO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no
[root@mylinz2 ~]# service network restart Shutting down interface eth2: Device state: 3 (disconnected) [ OK ] Shutting down interface eth4: Device state: 3 (disconnected) [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: Active connection state: activated Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/15 [ OK ] Bringing up interface eth3: Active connection state: activated Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/16 [ OK ] [root@mylinz2 ~]#
[root@mylinz2 Desktop]# ifconfig -a bond0 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA inet addr:192.168.10.25 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe79:17fa/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:22 errors:0 dropped:0 overruns:0 frame:0 TX packets:27 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3843 (3.7 KiB) TX bytes:4169 (4.0 KiB) eth2 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:15 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2031 (1.9 KiB) TX bytes:2064 (2.0 KiB) eth4 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1812 (1.7 KiB) TX bytes:2105 (2.0 KiB)
[root@mylinz2 Desktop]# ifconfig -a bond0 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA inet addr:192.168.10.25 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe79:17fa/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:22 errors:0 dropped:0 overruns:0 frame:0 TX packets:27 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3843 (3.7 KiB) TX bytes:4169 (4.0 KiB) eth2 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:15 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2031 (1.9 KiB) TX bytes:2064 (2.0 KiB) eth4 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA UP BROADCAST SLAVE MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1812 (1.7 KiB) TX bytes:2105 (2.0 KiB)
Now i have connected LAN cable back to eth4 and pulling out from eth2.
[root@mylinz2 Desktop]# ifconfig -a bond0 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA inet addr:192.168.10.25 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe79:17fa/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:22 errors:0 dropped:0 overruns:0 frame:0 TX packets:27 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3843 (3.7 KiB) TX bytes:4169 (4.0 KiB) eth2 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA UP BROADCAST SLAVE MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:15 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2031 (1.9 KiB) TX bytes:2064 (2.0 KiB) eth4 Link encap:Ethernet HWaddr 00:0C:29:79:17:FA UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1812 (1.7 KiB) TX bytes:2105 (2.0 KiB)
Still “bond0” interface running with UP & RUNNING flag.So you have successfully configured bonding on Redhat Linux 6.
To see complete bonding info,use below command.
[root@mylinz2 Desktop]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth2 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:79:17:fa Slave queue ID: 0 Slave Interface: eth4 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:79:17:04 Slave queue ID: 0 [root@mylinz2 Desktop]#
To verify the current bonding mode,use below command.
[root@mylinz2 Desktop]# cat /sys/class/net/bond0/bonding/mode balance-rr 0
You can modify the bonding mode by editing “mode” in the ifcfg-bond0 configuration file.
[root@mylinz2 Desktop]# cat /etc/sysconfig/network-scripts/ifcfg-bond0 |grep -i mode BONDING_OPTS="mode=0 miimon=100"
table.tableizer-table { border: 1px solid #CCC; font-family: ; font-size: 12px; } .tableizer-table td { padding: 4px; margin: 3px; border: 1px solid #ccc; } .tableizer-table th { background-color: #104E8B; color: #FFF; font-weight: bold; }
Policy Details | ||
---|---|---|
Ploicy Name | Code | Description |
balance-rr | 0 | Round-Robin policy for fault tolerance |
active-backup | 1 | Active-Backup policy for fault tolerance |
balance-xor | 2 | Exclusive-OR policy for fault tolerance |
broadcast | 3 | All transmissions are sent on all slave interfaces. |
802.3ad | 4 | Dynamic link aggregation policy |
balance-tlb | 5 | Transmit Load Balancing policy for fault tolerance |
balance-alb | 6 | Active Load Balancing policy for fault tolerance |
To list the currently configured bonds,
[root@mylinz2 Desktop]# cat /sys/class/net/bonding_masters bond0
Check out ,
Redhat Enterprise Linux 7 Tutorials
Thank you for reading this article.Please leave a comment if you have any doubt. I will get back you to you.
naresh says
nice document. Expect more like this.
Joseph says
Thanks for the sharing. I’m wondering what the situation is when create bond in RHEL7? Is it the same as in RHEL6? Thanks.
laxma reddy says
Hi ,
Can you please post how to do bonding with 4 interfaces?
Thanks
Dheeraj sakpal says
Very easy and simple doc to understand concept of bonding in redhat. Thanks a Ton.
Pengleng says
How to remove the bonding Interface after add?
Sandy says
ifenslave -d bond0 eth0
shiva says
Why all NIC MAC addresses are showing same after bonding?
Khairul says
Hi
Need help, i am using rhel 6.5 and manage do all figure given and all works fine but my network connection icon come with red “x”. Its normal after do this setting? Please advise
Thank you
imran haider says
good understanding, But what about multiple bonding example.