IP Bonding on Linux - Step by Step
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.
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).alias bond0 bonding
A description of the bonding options is available here.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"
Amend the existing "ifcfg-eth0" and "ifcfg-eth1" files, adding the "MASTER" and "SLAVE" parameters. The contents of these files should look like this.
Restart the network service.#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
The bonded interface can be displayed using the# service network restart Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ] #
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.
Notice, the device names and IP addresses differ from the original "ifcfg-bond0" file.# 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"
Restart the network service for the changes to take effect.
The# service network restart Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ] #
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 begin_of_the_skype_highlighting
17381654 FREE end_of_the_skype_highlighting (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)
#
Note:- Following Steps are optional
[root@sdsidb01 etc]# cat modprobe.conf
alias eth0 bnx2
alias eth1 bnx2alias eth2 bnx2
alias eth3 bnx2
alias scsi_hostadapter cciss
alias scsi_hostadapter1 ata_piix
alias scsi_hostadapter2 qla2xxx
alias bond0 bonding # Kernel Parameters
alias bond1 bonding #Kernel Parameters
options bond0 max_bonds=2 miimon=100 mode=1
options bond1 max_bonds=2 miimon=100 mode=1
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
[root@sdsidb01 etc]#
$ modprobe bonding
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
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
No comments:
Post a Comment