How to Channel Bond two Nic cards in Mandrake 9.1

Posted on 2003-11-12
Last Modified: 2007-12-19
Im not all that savy with linux just yet... I'd  like to bond my two network cards. Is this possible with mandrake 9.1 and if so then how?

I have two 3com Server Nic cards installed. I plan to bond them and configure my 3com superstack 3300 to use port trunking capablities.

I rely souly on KDE 3.1.  So please explain it in the best possible GUI terms...

Your time is greatly appreciated...
Question by:c0rrupti0n
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 6
LVL 13

Expert Comment

ID: 9737788
I don't think there is a GUI option for doing this. I've never done it before, but a quick scout around, gives me the following links:

your first step would be to determine if you even have support for ifenslave. To do this, open a terminal window and type "ifenslave --help", you should get something like this:

# ifenslave --help
Usage: ifenslave [-afrvV] <master-interface> <slave-interface> [metric <N>]

Once you have that, I would suggest try setting it up as suggested in the first link above. This will involve hand editing the network config files.

Author Comment

ID: 9746014
I found that ifenslave isnt installed on my OS...
Command doesnt exsist...

I follow the links given and find thing regarding whether or not its possible to install ifenslave under mandrake 9.1. Or if its even supported for mandrake... I find allot of support for Redhat.

Not to mention ive searched everywhere! for the program ifenslave and have some up with nothing :/

Can i get a detailed description of what needs to be done or if its even possible.

Thanks so much for your swift response...

LVL 13

Expert Comment

ID: 9752471
It looks like the ifenslave command is provided by the iputils package. You can get it from here:

First check to see if you have the iputils package installed. Sorry, I am not familiar with Mandrake, only RedHat but will try to help as best I can.
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 9774509
Hello again,

Thanks so much for the help... OK,

I installed the package and am now lost... I follow the readme @ inux/Documentation/network/ directory and no luck. iputils are installed properly but i cant seem to find the location it install it self... I know i sound like a complete idiot. But please bare with me... After finding the folder im going to need a lil assistance on compiling the kernal or whatever its called...

Thank you...
LVL 13

Expert Comment

ID: 9775662
Not sure if Mandrake has the "locate" command. If it does, use this to find where the files are installed:

[root@wonderwoman /root 11:28:04] # locate ifenslave

If locate doesn't work, use the "find" command:

[root@wonderwoman /root 11:27:13] # find / -name ifenslave

The syntax for the find command is:
"/" specifies to start searching from the root directory (will search entire file system)
"-name" specifies to search for filename
"ifenslave" is the filename to match.

Something else you may notice, locate gives any file/path that matches the string you ask it to locate. Find only gives exact matches. Locate is also faster as it actually searches a DB that is updated daily. The find command actually physically looks in each directory for files.

Once you have found the loaction of ifenslave, try running it to see what happens, hopefully you should get some output from it.

Can I ask if there is any real use for bonding the two NIC's together. I don't mind doing it just for the point of doing it, I'm just curious.

(and yes, the hostname of my linux box IS "wonderwoman" ;)

Author Comment

ID: 9815546
I managed to find the executable with the locate command... Now I'm going to need assistance in compiling the kernal.. or rebuilding it.. I am lost when it comes to doing this...
Is it necessary? Can I skip this step?

According to the Readme file. The following is suposidly needed:

Build the new kernel/modules.

Get update ifenslave.c (included in tar file.) (location to be determined.)

install ifenslave.c; do:
      gcc -O2 -o ifenslave ifenslave.c
      cp ifenslave /sbin/ifenslave

Modify /etc/conf.modules by adding the line:
      alias bond0 bonding
LVL 13

Expert Comment

ID: 9815598
if you have found the executable, try running it with the "--help" option after it. Specify the full path to the executable, not just the actual executable name (ie. "/some/path/to/ifenslave" NOT "ifenslave")

You only need to rebuild the kernel if it doesn't have the appropriate options selected when it was compiled. Hopefully when you run the "ifenslave --help" command it might give some output to indicate whether or not this is so.

Where is the ifenslave installed to ?

Author Comment

ID: 9822566
Im almost there i can sence it... heh

This is my output for ifconfig... I suposidly need to configure this first before anything else...
[workgroup@Storage sbin]$ ifconfig --help
  ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]
  [add <address>[/<prefixlen>]]
  [del <address>[/<prefixlen>]]
  [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]
  [netmask <address>]  [dstaddr <address>]  [tunnel <address>]
  [outfill <NN>] [keepalive <NN>]
  [hw <HW> <address>]  [metric <NN>]  [mtu <NN>]
  [[-]trailers]  [[-]arp]  [[-]allmulti]
  [multicast]  [[-]promisc]
  [mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]
  [txqueuelen <NN>]
  [up|down] ...

  <HW>=Hardware Type.
  List of possible hardware types:
    loop (Local Loopback) slip (Serial Line IP) cslip (VJ Serial Line IP)
    slip6 (6-bit Serial Line IP) cslip6 (VJ 6-bit Serial Line IP) adaptive (Adaptive Serial Line IP)
    strip (Metricom Starmode IP) ash (Ash) ether (Ethernet)
    tr (16/4 Mbps Token Ring) tr (16/4 Mbps Token Ring (New)) ax25 (AMPR AX.25)
    netrom (AMPR NET/ROM) rose (AMPR ROSE) tunnel (IPIP Tunnel)
    ppp (Point-to-Point Protocol) hdlc ((Cisco)-HDLC) lapb (LAPB)
    arcnet (ARCnet) dlci (Frame Relay DLCI) frad (Frame Relay Access Device)
    sit (IPv6-in-IPv4) fddi (Fiber Distributed Data Interface) hippi (HIPPI)
    irda (IrLAP) ec (Econet) x25 (generic X.25)
  <AF>=Address family. Default: inet
  List of possible address families:
    unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6)
    ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE)
    ipx (Novell IPX) ddp (Appletalk DDP) ec (Econet)
    ash (Ash) x25 (CCITT X.25)

The read mean file says:
For other distributions, you need to do something like:

/sbin/ifconfig bond0 addresss netmask broadcast up
/sbin/ifenslave bond0 eth0
/sbin/ifenslave bond0 eth1

But i tried this in several different ways and all i get are syntax errors...

Thanks again for the swift reply...
LVL 13

Expert Comment

ID: 9822855
Have you done this:

Modify /etc/conf.modules by adding the line:
     alias bond0 bonding

You need to do this, as this essentially creates the bond0 device using the "bonding" module. Once you have done this, reboot and it should autoprobe for the stuff defined in conf.modules. If everything works, you should see a line during the boot sequence to say that the module "bonding" was successfully loaded. If it doesn't work, you will most likely get an error. Alternatively, if you don't want to reboot, you can try it manually by running the command "insmod" to insert the module (after modifying conf.modules) and then use the command "lsmod" to view the installed modules. You may need to specify a parameter to insmod (eg. "insmod bonding") to tell it what module to install, I can't remember and I'm not at a terminal at the moment to check.

Once you have done that, you can use the ifconfig command to give bond0 an ip address and mask. Once you have done this, you then add the eth0 & eth1 to bond0 using ifenslave.

Essentially "bond0" is a virtual network adapter and eth0 & eth1 are the phyical adapters enslaved to the bond0 card.

Author Comment

ID: 9864676
I modified /etc/conf.modules and at boot up it said something about "loopback something something" OK.
So i assume this started just fine... Now my problem is the follow steps...  I ran the following...

ifconfig bond0 addresss netmask broadcast up
ifenslave bond0 eth0
ifenslave bond0 eth1

Then i got the following results:

[root@Storage sbin]# ifconfig bond0 addresss netmask broadcast up
addresss: Unknown host
ifconfig: `--help' gives usage information.
[root@Storage sbin]# ifenslave bond0 eth0
master has no hw address assigned; getting one from slave!
Something broke getting the master's IP address: Cannot assign requested address.
Something broke getting the master's destination address: Cannot assign requested address.
Something broke getting the master's broadcast address: Cannot assign requested address.
Something broke getting the master's netmask: Cannot assign requested address.
The interface eth0 is up, shutting it down it to enslave it.
Something broke setting the slave's address: Invalid argument.
Error setting the slave with SIOCSIFDSTADDR: Invalid argument.
Something broke setting the slave broadcast address: Invalid argument.
Something broke setting the slave netmask: Invalid argument.
SIOCBONDENSLAVE: 22 (Invalid argument).

Im not sure if I wrote the correct ip for the netmask or even the broadcast... My my network addresses are


LVL 13

Accepted Solution

td_miles earned 25 total points
ID: 9864803
you are supposed to actually put in your IP address where it says "address" EG. the line you type should be:

ifconfig bond0 netmask broadcast up

other than that, you got all the other parameters correct, the subnet mask is right and the broadcast is correct as well.

Author Comment

ID: 9864948
Please pardon my incompotents... Its just when reading from a readme file one would believe that they keep some sort of uniform when giving a how-to explanation. It didnt make sence to me for them to mention the word address and later in the command express the netmask and broadcast with ( paramaters. Not to mention how the word address was spelt as"addresss". But hey thats just me...

I will give it a try when i get to the office.. Thanks again man...

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
FTP File Transfer Failure 13 188
dns master and slave in linux 2 75
Virtual Firewall to Filter DHCP Traffic? 23 87
What are recommended OS for exim mail server? 10 121
I have seen several blogs and forum entries elsewhere state that because NTFS volumes do not support linux ownership or permissions, they cannot be used for anonymous ftp upload through the vsftpd program.   IT can be done and here's how to get i…
Note: for this to work properly you need to use a Cross-Over network cable. 1. Connect both servers S1 and S2 on the second network slots respectively. Note that you can use the 1st slots but usually these would be occupied by the Service Provide…

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question