Load balancing across dual NICs

Posted on 2000-03-09
Last Modified: 2010-03-18
I've got an NFS server exporting a couple filesystems to approximately 120 servers. These are all on the same class C, connected to a Cicso Catalyst 5513, and spread fairly evenly across the two halves of the backplane on the Catalyst.

I've got both NICs up and running currently, with a round-robin DNS entry, but the vast majority of the traffic is still hitting eth0. I'm afraid it's due to eth0 being the default gateway.

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface *      UH    0      0        0 eth0 *      UH    0      0        0 eth1   *        U     0      0        0 eth0   *        U     0      0        0 eth1       *            U     0      0        0 lo
default         gateway         UG    0      0        0 eth0

Essentially, what I'm looking for is a way to aggregate the two 100Mbs connections.

All servers are running RH 6.0 with 2.2.14 and all current patches.
Question by:mwallis
LVL 40

Expert Comment

ID: 2602126
I believe the only way you'll load balance across both NIC's will be to split the class C into two subnets with half the clients on each. The only other way would be if you could find a software package for 6.0 that implements 802.3 trunking and NIC bonding.

The system sees both NIC's on the same network. While it will accept requests on both NIC's, I think it's sending all the return data out of the first NIC that it finds connected to that network (eth0).

Author Comment

ID: 2602276
I was afraid of that, but I'm really trying to avoid ripping the kernel to pieces to implement channel bonding a' la Beowulf style.

I've read somewhere that spoofing the MAC and assigning both cards the same ip might have the desired effect, but I havn't had the opportunity to test it.

Anyone else have any suggestions?

Expert Comment

ID: 2605195
What NICs you have?

Author Comment

ID: 2605536
eth0: 3Com 3c905B Cyclone 100baseTx at 0xe800,  00:50:da:70:04:22, IRQ 5
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
  MII transceiver found at address 24, status 7849.
  MII transceiver found at address 0, status 7849.
  Enabling bus-master transmits and whole-frame receives.
eth1: 3Com 3c905B Cyclone 100baseTx at 0xec00,  00:50:da:16:f0:a7, IRQ 10
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
  MII transceiver found at address 24, status 7849.
  MII transceiver found at address 0, status 7849.

Accepted Solution

pheur earned 150 total points
ID: 2707441
What you can do is to recompile the kernel with the following options:
- advanced router
- equal cost multipath
In this case you will have the two NICs (you may use the same IP and netmaskon both of them), the kernel will have two routes to the local network, one through each eth and comforming to the kernel documentation will choose undeterministically one of them.

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

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…

679 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