Link to home
Start Free TrialLog in
Avatar of c0rrupti0n
c0rrupti0n

asked on

How to Channel Bond two Nic cards in Mandrake 9.1

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...
Avatar of td_miles
td_miles

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:

http://ontarget-systems.com:8080/LinuxDocs/iputils-20001110/README.ifenslave
http://www.tldp.org/HOWTO/openMosix-HOWTO/x829.html

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.
Avatar of c0rrupti0n

ASKER

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...

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

http://www.rpmfind.net/linux/rpm2html/search.php?query=iputils&submit=Search+...&system=mandrake&arch=

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.
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...
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
/usr/share/doc/iputils-20001110/README.ifenslave
/sbin/ifenslave

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

[root@wonderwoman /root 11:27:13] # find / -name ifenslave
/sbin/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" ;)
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
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 ?
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
Usage:
  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>]
  [[-]dynamic]
  [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 xxx.xxx.xxx.xxx broadcast xxx.xxx.xxx.xxx 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...
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.
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 255.255.255.0 broadcast 192.168.0.255 up
ifenslave bond0 eth0
ifenslave bond0 eth1



Then i got the following results:

[root@Storage sbin]# ifconfig bond0 addresss netmask 255.255.255.0 broadcast 192.168.0.255 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

192.168.0.x
255.255.255.x

ASKER CERTIFIED SOLUTION
Avatar of td_miles
td_miles

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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 (xxx.xxx.xxx.xxx) 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...