Hi. I''ve trying to balance outgoing traffic by using multipath routes, but I can''t get it to work. Only one of the routes are used. I''m adding the route like this: ip route add table 101 default \ nexthop via X.X.X.X nexthop via Y.Y.Y.Y It shows up the routing table like this: default nexthop via X.X.X.X dev vlan110 weight 1 nexthop via Y.Y.Y.Y dev vlan120 weight 1 So it looks quite good. However, all traffic is routed via Y.Y.Y.Y, no matter what I do. I can increase the weight of X.X.X.X, load and unload the various multipath kernel modules (_rr, _random, _wrandom, and _drr), flush the cache routing table, delete and re-add the route, but still traffic is only sent to X.X.X.X If I reverse the order of the nexthops on the command line, that is: ip route add table 101 default \ nexthop via Y.Y.Y.Y nexthop via X.X.X.X ...the behaviour is exactly the same, only now the traffic is sent only to X.X.X.X. The ordering of the nexthops on the command line is the only thing that appears to make a difference to me. I send traffic from a relatively busy network into table 101 (using "ip rule add from z.z.z.z/zz table 101 prio 20000"), so there''s constantly traffic there, and many simultaneous flows. I tried using "equalize" too, though, but it had no effect either. How is this actually supposed to work, and what am I missing? I''m grateful for any suggestions. I''m seeing this behaviour both on 2.6.12 and 2.6.15. Thanks -- Tore Anderson
On Wednesday 28 February 2007 07:53, Tore Anderson wrote:> Hi. I''ve trying to balance outgoing traffic by using multipath > routes, but I can''t get it to work. Only one of the routes are used. > > I''m adding the route like this: > > ip route add table 101 default \ > nexthop via X.X.X.X nexthop via Y.Y.Y.Y > > It shows up the routing table like this: > > default > nexthop via X.X.X.X dev vlan110 weight 1 > nexthop via Y.Y.Y.Y dev vlan120 weight 1 > > So it looks quite good. However, all traffic is routed via Y.Y.Y.Y, > no matter what I do. I can increase the weight of X.X.X.X, load and > unload the various multipath kernel modules (_rr, _random, _wrandom, > and _drr), flush the cache routing table, delete and re-add the route, > but still traffic is only sent to X.X.X.X > > If I reverse the order of the nexthops on the command line, that is: > > ip route add table 101 default \ > nexthop via Y.Y.Y.Y nexthop via X.X.X.X > > ...the behaviour is exactly the same, only now the traffic is > sent only to X.X.X.X. The ordering of the nexthops on the command line > is the only thing that appears to make a difference to me. > > I send traffic from a relatively busy network into table 101 (using > "ip rule add from z.z.z.z/zz table 101 prio 20000"), so there''s > constantly traffic there, and many simultaneous flows. I tried using > "equalize" too, though, but it had no effect either. > > How is this actually supposed to work, and what am I missing? I''m > grateful for any suggestions. I''m seeing this behaviour both on 2.6.12 > and 2.6.15.FAQ sor far by now (this must be somewere...) (copy & paste of a previous e-mail of mine) Try a kernel without CONFIG_IP_ROUTE_MULTIPATH_CACHED there are several threads on this topic in the archive, one as reference: http://archives.free.net.ph/message/20060618.150532.8a6cc07f.en.html If it solves the problem, maybe is time to contact the author of Multipath Cached and send some report. -- Luciano
* Luciano Ruete> Try a kernel without CONFIG_IP_ROUTE_MULTIPATH_CACHEDI did and it worked. Thanks. I primarily wanted caching but oh well...> there are several threads on this topic in the archive, one as > reference: > http://archives.free.net.ph/message/20060618.150532.8a6cc07f.en.htmlLooked but didn''t find it of course... :-/> If it solves the problem, maybe is time to contact the author of > Multipath Cached and send some report.I ended up asking on the netdev list, and got a reply there that cached ECMP is simply broken for forwarded packets. I submitted a patch to document it in the configuration screen, no idea if it will get merged though. -- Tore Anderson