From: Chris Wilson <chris@netservers.co.uk>
To: lartc@vger.kernel.org
Subject: [LARTC] Load balancing, routing docs
Date: Tue, 18 Mar 2003 12:30:32 +0000 [thread overview]
Message-ID: <marc-lartc-104799071006321@msgid-missing> (raw)
Hi, fellow LARTC members,
I have some questions about Linux load balancing which I hope nobody will
mind me asking here.
We're using Linux firewalls in an application which requires load
balancing across multiple connections (e.g. ISDN PPP links, ADSL, VPNs).
I'm trying to figure out how to achieve this at the moment.
We already have a working solution using the TEQL scheduler, but it
doesn't do everything we want: you can only specify one gateway, which
makes it less useful for links over ethernet (e.g. multiple ADSL routers).
I'm also not sure how to adjust the weighting of the various devices: I
tried attaching the teql0 scheduler to a leaf class of an HTB scheduler
with a low rate, but it doesn't seem to work according to iptraf, and even
the counters on the class never get incremented.
So, I'm looking at doing this with the kernel's multipath routing option
(CONFIG_IP_ROUTE_MULTIPATH). So far I've been able to configure a route
with multiple nexthops as described in the "ip" tool documentation:
ip route add default equalize \
nexthop via 10.0.0.2 \
nexthop via 10.0.0.2 dev eth3 \
nexthop via 192.168.3.254 dev eth1 \
nexthop via 192.168.3.254 dev eth4
The reason for repeating the first nexthop is that the first route is
always marked as dead for some reason. None of the others get marked dead
for me, and I can't figure out why it's happening, but if I add a dummy
route before the real ones then it seems to work.
Anyway, it does what I think it's supposed to, which is choose one route
at random _and cache it for that destination address_. However, this is
not an ideal property of a load balancer. Ideally each packet would be
routed out through a separate connection.
So my questions to you all are:
- Is there a simple way to do this with iproute2 as it stands, or with
some other method (apart from TEQL) which I missed?
- If not, can anyone point me to an explanation of how the routing code
caches and retrieves routes, so that I can disable the route caching?
(I know this is probably not a good idea for performance)
- Is there any documentation of the kernel routing code, e.g. the path
taken by a packet through that code? (LARTC howto doesn't seem to cover
it, nor Stef's docum.org, nor Google searches).
- If this documentation isn't available, would anyone be interested in me
writing some, and would anyone mind if I send the requisite questions to
this list?
Cheers, Chris.
--
___ __ _
/ __// / ,__(_)_ | Chris Wilson -- UNIX Firewall Lead Developer |
/ (_ / ,\/ _/ /_ \ | NetServers.co.uk http://www.netservers.co.uk |
\ _//_/_/_//_/___/ | 21 Signet Court, Cambridge, UK. 01223 576516 |
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
next reply other threads:[~2003-03-18 12:30 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-18 12:30 Chris Wilson [this message]
2003-03-19 5:18 ` [LARTC] Load balancing, routing docs Martin A. Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-lartc-104799071006321@msgid-missing \
--to=chris@netservers.co.uk \
--cc=lartc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.