Ethernet Channel Bonding

Jim Christiansen christiansen_j at hotmail.com
Tue Nov 25 18:16:43 UTC 2003


Hello Everyone,

I've just joined the list and need to bite the bullet and tryout Fedora.  
I've got about 100 RedHat9 boxes being served NIS and NFS'ed home from one 
RH9 box.  The one main server also serves 30 thin-clients.

I have posted this to the K12LTSP list as well, so I know that a few of you 
may recognize this mesage- sorry for repeats.

I want to increase the network capacity on the main server by adding another 
nic to the same subnet.  I'm not a networking or Linux pro, but this short 
article may do the trick for me.

The article speaks about one nic recieving and one nic transmitting- sounds 
OK. Then it continues by stating that each nic plugs into its own hub or 
switch- OK too, if the switches can be linked.

I ask for your comments and really appreciate any help.

Thanks,

Jim
-----------------------------
Ethernet Channel Bonding


The help file on this topic can be found at

http://www.beowulf.org/software/bonding.html

Ifenslave, that is talked about in the files is already included after you 
have a kernel that supports Ethernet channel bonding.

It is important to note that completing the Ethernet channel bonding process 
relies on having the right kernel in you system. We have updated all of our 
kernels to the stable release of kernel 2.4 which can be found at

http://www.kernel.org/

or one of the mirror sites. While compiling kernels is beyond the scope of 
this article we are including a quick start reference for RedHat systems at 
these sites.

http://www2.linuxjournal.com

and
http://www.linuxdoc.org/


We should also state that you will need two switches or hubs as after you 
have successfully bonded your Ethernet cards you have one card connected to 
one switch/hub and the other connected to a different switch/hub. The reason 
being is that once bonded one Ethernet card is for sending packets and one 
Ethernet Card is used for receiving packets.

Change dir to the /usr/src/< current kernel dir >/Documentation/networks and 
check to see if you have a file called bonding.txt if you do you are set to 
configure you workstation for Ethernet channel bonding.

        cd /usr/src/linux-2.4.0/Documentation/networks




        ls bonding.txt

>>bonding.txt

If you do not have the file and are not sure if you have a kernel capable of 
Ethernet channel bonding change dir to the /usr/src/ and do a make xconfig, 
if you are in gnome or kde, or a make menuconfig if you are just in a shell.

cd /usr/src/linux-2.4.0
make xconfig or make menuconfig


Now look for a section called ?Networking Device Support? and a subsection 
called ?Bonding Driver Support? If this subsection is there your kernel 
supports Ethernet channel bonding and you can recompile your kernel with the 
option. (See appendix)

Once you have Ethernet channel bonding support compiled into your kernel you 
can complete the process with just a few easy steps.

First you need two Ethernet cards in your workstation. (more if you wish to 
bond more) You probably already have one card in your workstation which is 
configured for your network already. If needed, install a second card in 
your workstation, however do not configure it, as you will do this during 
this process.


Modify /etc/conf.modules by adding the line:

NOTE: If you are using a new version of RedHat 6.0 + you will probably be 
using /etc/modules.conf not /etc/conf.modules.

alias bond0 bonding

cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-bond0
edit ifcfg-bond0, and make it look the following:


DEVICE=bond0
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
BROADCAST=XXX.XXX.XXX.255
NETWORK=XXX.XXX.XXX.0
NETMASK=255.255.255.0
IPADDR=XXX.XXX.XXX.XXX


(put the approiate values for you network in where the XXX's are at. Also 
you may have your variables in quotes, we left ours that way and when we 
added new or changed variables we put in quotes)

Example:

Device=?bond0?

We also did not remove any lines, we just added what was needed and left the 
other lines alone.

Then, edit ifcfg-eth0/ifcfg-eth1 (and all the other slave devices), and make 
them
look like this:

DEVICE=eth0 (or eth1 or whatever device name you are using)
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none


Reboot, and the network should come up bonded together.

You can check this by issuing the command ifconfig

        ifconfig | more


bond0     Link encap:Ethernet  HWaddr 00:01:02:3E:7A:CF
inet addr:192.168.0.4  Bcast:192.168.3.255  Mask:255.255.252.0
         UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:2107 errors:0 dropped:1 overruns:0 carrier:0
         collisions:0 txqueuelen:0


eth0      Link encap:Ethernet  HWaddr 00:C0:4F:8C:69:97
inet addr:192.168.0.4  Bcast:192.168.3.255  Mask:255.255.252.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:1351609 errors:0 dropped:0 overruns:0 frame:0
         TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:100
         Interrupt:11 Base address:0xcc80


eth1      Link encap:Ethernet  HWaddr 00:01:02:3E:7A:CF
inet addr:192.168.0.4  Bcast:192.168.3.255  Mask:255.255.252.0
         UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
         RX packets:1393352 errors:0 dropped:0 overruns:1 frame:0
         TX packets:2107 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:100
         Interrupt:10 Base address:0xdc80



You are have successfully completed your Ethernet channel bonding.

_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE*  
http://join.msn.com/?page=features/virus&pgmarket=en-ca&RU=http%3a%2f%2fjoin.msn.com%2f%3fpage%3dmisc%2fspecialoffers%26pgmarket%3den-ca





More information about the fedora-list mailing list