Re: equalize / ecmp not working as expected in 2.6 vs 2.4

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi Andrew,

I would use a combination with iptables. You should mark the packets, for example using average or n-th, and then use ip rules to send half of the packets vía one router and the rest to the other router according to the marks you set with iptables.
Just a question ¿ dont you have problems with your source IP and the returning responses when you are sending packets from one connection over multiple routers ? ¿ do you have something like an AS ?


Best regards,
Eric Janz



Andrew Lyon <andrew.lyon@xxxxxxxxxx>
Enviado por: lartc-bounces@xxxxxxxxxxxxxxx

10/04/2007 14:36

Para
"'lartc@xxxxxxxxxxxxxxx'" <lartc@xxxxxxxxxxxxxxx>
cc
Asunto
equalize / ecmp not working as expected in 2.6 vs 2.4





Hi,

With kernel 2.4 I was able to use equalize to send our outgoing packets to
two different routers (our isp supports this setup), like this:

ip route add default src ip.a.dd.rr  equalize nexthop via <router1> weight 1
nexthop via <router2> weight 1

The two routes were used equally on a per packet basis, not per flow or per
cached route, but per packet, each line has 800k upload and with that route
we could upload to a single remote host at 1.6mbit.

We replaced the server with a newer one and changed to 2.6 (2.6.20) kernel,
I found that equalize no longer works as expected, it does choose a router
at random but once a single packet has been sent to a remote host the same
route/router is used for all packets going to that remote host. Once the
cached route expires a random route is chosen again, but that is not what we
want.

I had made no changes to the ip route commands, but then I realised that
kernel 2.6.20 has options for multipath (IP: equal cost multipath with
caching support), I enabled that and now our kernel options are:

CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_MULTIPATH_CACHED=y
CONFIG_IP_ROUTE_MULTIPATH_RR=m
CONFIG_IP_ROUTE_MULTIPATH_RANDOM=m
CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=m
CONFIG_IP_ROUTE_MULTIPATH_DRR=m

But even with these options, and default route set as follows:

ip route add default src ip.a.dd.rr mpath rr nexthop via <router1> weight 1
nexthop via <router2> weight 1

The result is the same, a single upload to a remote host only uses 800k
bandwidth on one of the lines, it does not send packets to both lines,
although two uploads to two different hosts will usually make use of both
lines.

It seems to me that the multipath with caching support is broken in 2.6.20?

The exact kernel we use is 2.6.20.4, with that kernel how would you specify
a remote route such that packets going to a remote host are sent 50/50 ratio
to two different routers?

Thanks
Andy

JOSEDV001TAG
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

--

ADVERTENCIA LEGAL
El contenido de este correo es confidencial y dirigido unicamente a su destinatario. Para acceder a su clausula de privacidad consulte http://www.barceloviajes.com/privacy

LEGAL ADVISORY
This message is confidential and intended only for the person or entity to which it is addressed. In order to read its privacy policy consult it at http://www.barceloviajes.com/privacy

_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux