Subject: Re: load balancing ethernet
To: Chris Jones <cjones@honors.montana.edu>
From: Andrew Gillham <gillhaa@ghost.whirlpool.com>
List: current-users
Date: 07/22/1998 17:48:35
Chris Jones writes:
[snip]
> My actual question is, can we do something like this with NetBSD?  Really,
> we just want to maximize the bandwidth/dollar ratio.  ATM looks expensive,
> and 100bT may not have the bandwidth we need.  Is there a way to multiply
> your bandwidth?
> 
> Obviously, we could just assign a different IP to each ether interface,
> and use DNS load-balancing, but that solution gives a bunch of little
> pipes to each machine.  We would really like to simulate a single, big
> pipe (with low latency) to each machine.

I would recommend implementing an alias address on your loopback interfaces.
Then hooking up multiple Fast Ethernet NICs, and running OSPF.
As an example you could create two ip subnets, connecting 4 machines
to each, and 2 router ip addresses. (which may be 2 routers, each running
HSRP or equivalent)
I won't pick optimized networks, just assigning a 254 for the loopbacks, and
one for each subnet, and I'll assume 'de' devices.

Loopbacks	192.168.1.x
Subnet 1	192.168.2.x
Subnet 2	192.168.3.x
routers		192.168.x.254   <-- could be shared between 2 via HSRP

Machine 1:
	lo0 192.168.1.1 255.255.255.255
	de0 192.168.2.1 255.255.255.0
	de1 192.168.3.1 255.255.255.0

Machine 2:
	lo0 192.168.1.2 255.255.255.255
	de0 192.168.2.2 255.255.255.0
	de1 192.168.3.2 255.255.255.0

Machine 3:
	lo0 192.168.1.3 255.255.255.255
	de0 192.168.2.3 255.255.255.0
	de1 192.168.3.3 255.255.255.0

Machine 4:
	lo0 192.168.1.4 255.255.255.255
	de0 192.168.2.4 255.255.255.0
	de1 192.168.3.4 255.255.255.0

So, you can run OSPF (via gated) on all 4 machines, and the router.
This should automatically load balance between the links, when you
use the *loopback alias* to contact the machines.  This pretty much
assumes you're wanting bandwidth *between* machines in the "cluster",
not necessarily from other machines *to* the cluster.  When talking
from other machines to machines in the cluster, you will have one
of two scenarios.  The traffic will either pass through the router to
get to the cluster machines, where it will be automatically load balanced,
or be on the local subnet with a cluster machine.  In theory, I haven't
tested this, machines local to one of a cluster machines subnets could
still communicate with the loopback alias.  The initial packet would go
to the router which should (hopefully!) issue an ICMP redirect to the 
local ip address of the cluster machine.

-Andrew
-- 
-----------------------------------------------------------------
Andrew Gillham                            | This space left blank
gillham@whirlpool.com                     | inadvertently.
I speak for myself, not for my employer.  | Contact the publisher.