[quagga-users 11010] Re: OSPF multipath on Linux

Lennart Sorensen lsorense at csclub.uwaterloo.ca
Sun Aug 9 02:20:13 IST 2009


On Sat, Aug 08, 2009 at 05:43:33PM -0400, Ryan Rawdon wrote:
> One of the quagga routers on my network has equal-cost paths to certain 
> subnets, and I'm trying to understand how this is handled by Quagga as 
> well as Linux (Ubuntu 8.04 in this case).
> 
> Quagga/ospfd show both routes installed fine.  `ip ro sh` shows both 
> routes too.  excerpt from this output:
> 
> 192.168.12.0/24  proto zebra  metric 110
>      nexthop via 10.254.254.112  dev tun106 weight 1
>      nexthop via 10.254.254.114  dev tun107 weight 1
> 192.168.11.0/24  proto zebra  metric 110
>      nexthop via 10.254.254.112  dev tun106 weight 1
>      nexthop via 10.254.254.114  dev tun107 weight 1
> 192.168.10.0/24  proto zebra  metric 110
>      nexthop via 10.254.254.112  dev tun106 weight 1
>      nexthop via 10.254.254.114  dev tun107 weight 1
> 
> I'm wondering how I can get the machine to load balance across these 
> multiple paths.  Does this output from ip(8) indicate that the kernel is 
> actually using both paths?  I see that if I wanted to manually add 
> routes for multipath, I would use the mpath keyword with ip(8), but is 
> that something that quagga can do as well?
> 
> Testing with mtr/traceroute/tracepath etc indicate that only the first 
> path to these networks is being used by the kernel (the path via 
> 10.254.254.112).
> 
> My apologies in advance if I left out something needed to answer my 
> questions

What you have there indicates that you have multipath working.
Note however that Linux does per flow multipath, not per packet.
Per packet is actually a very bad idea and shouldn't be done, although
some systems still do it.  Linux is not one of them fortunately.

In other words to see it working you need multiple streams of traffic
at the same time.  No single transfer will use more than the bandwidth
of one link, so load balancing isn't really what is happening.  It doesn't
take bandwidth use into consideration at all, so you could have 3 big
transfers on one route and three lightweight connections on the other.
The Linux routing doesn't take that into account at all with multipath
routing.

-- 
Len Sorensen


More information about the Quagga-users mailing list