(oops... and to the list too)
What you need to undestand about Equal Cost Multi-Path, is that its a
per-flow load-balancing.
Not per-packet, which I think is what you're expecting to see.
A flow is defined by the Src IP, Src Port, Dst IP and Dst Port.
So, in theory, if you changed one of these, it should re-balance.
If you have enough diverse flows, they should even out the balance over your
links... if that makes sense.
Hope this helps.
Regards,
Kieran.
On Mon, Sep 1, 2008 at 1:21 PM, Ronan Mullally <ronan at iol.ie> wrote:
> A back to school question for everybody ;-)
>> I've got a scenario as shown below:
>> +-----------+ +-----------+
> | linux src |=========== Internet -------| linux dst |
> +-----------+ +-----------+
>> There are two (or more) paths from the src box to the Internet. It is
> sending traffic to the dst box, and wants to balance UDP traffic across
> these multiple links. Traffic in the other direction is not an issue.
>> Sane options like Multilink PPP are not avaialble. Less sane options like
> running IPSEC/VPN tunnels are not available. The option I'm left with is
> to load balance outbound traffic across the links. The insane twist is
> that these packets will need to be source NATed on egress, but let's
> ignore that for the moment.
>> I'm trying to use the equalize flag to the ip route command. I can set up
> a multipath route okay:
>> # ip route add 172.16.0.0/24 equalize nexthop dev dummy1 nexthop dev
> dummy2
>> # ip route show
> 172.16.0.0/24 equalize
> nexthop dev dummy1 weight 1
> nexthop dev dummy2 weight 1
>> And would expect to see a ping to a host in the above range to send
> packets via each link in turn. It doesn't. It sends all traffic via the
> first path, so the routing decision is getting cached rather than
> re-calculated per packet.
>> The man page for 'ip' indicates that the kernel needs to be patched to
> support equalisation. I was hoping that CONFIG_IP_ROUTE_MULTIPATH would
> be sufficient, but it's not. I've found the patch I think the man page
> refers to at http://trash.net/~kaber/equalize/equalize_2.4.18.patch<http://trash.net/%7Ekaber/equalize/equalize_2.4.18.patch>but
> it doesn't apply cleanly against a recent 2.6 kernel.
>> Am I missing something obvious, or can anybody think of a more elegant
> solution? The only other alternative I can think of (apart from trying
> to re-write the patch for 2.6) is the eql driver in the kernel, but that
> looks well and truly dead (circa 1995) and I don't think it'll work in a
> reverse-path-filtering environment.
>>> -Ronan
>> --
> Irish Linux Users' Group mailing list
> About this list : http://mail.linux.ie/mailman/listinfo/ilug> Who we are : http://www.linux.ie/> Where we are : http://www.linux.ie/map/>
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!