ECMP/multipath support

Andrew Lemin andrew.lemin at
Thu Nov 11 11:38:55 CET 2010

Hi all,

I think all parties on the mailing list came to the conclusion that multipath support would be best implemented in the individual routing protocols instead of just in the kernel protocol.

What does the BIRD dev team think? Is there anything more I can do to help with adding this functionality.

We desperately need ECMP support in the RIP protocol. Thanks everyone :)
Regards, Andy.

-----Original Message-----
From: Andrew Lemin
Sent: 04 October 2010 16:55
To: 'Vincent Bernat'; Ondrej Zajicek
Cc: bird-users at
Subject: RE: ECMP/multipath support


>> I see two possibilities how to implement ECMP in BIRD:

>> 1) adding special route type for a multipath route with multiple
>> gw addresses. This wouldn't be hard, it is consistent with a way
>> how Linux kernel handles multipath and works well with OSPF, but
>> it will not allow to 'merge' routes from different protocols
>> (a multipath route would have to be originated by one protocol).

>I don't  see this  as a limitation.  To the  best of my  knowledge, each
>protocol having a different administrative distance, this is also how it
>works with  other routing solutions. A  route from BGP and  a route from
>OSPF cannot be combined into a single ECMP route.

I agree. I didn't want to get into the conversation because I know you guys are fully aware of all this.
As you say, it is not really appropriate for routes provided by different routing protocols to have the same weight. It could be suggested that each protocol implementation could have a weight associated with it that is a function of the protocols administrative distance etc.

>> 2) allow BIRD kernel protocol to scan all equal-best routes to
>> one destination and 'merge' these to a multipath route for kernel.
>> This would be harder to implement, esp. because BIRD would not
>> allow more routes to the same destination from one protocol in
>> one routing table. But it is probably more natural way for a user.

>I don't know any use case for this.

As long as multipath is implemented in the RIP protocol too, then go for the first method as it is the proper place for it. We NEED ECMP in RIP though. Please.. :)
The point I was trying to make is by adding the functionality to the kernel protocol you only have to update one segment of code instead of having to update all the protocols.
The vast majority of SMB firewalls and VPN concentrators etc only support RIP, hence our position..

>> What protocols are you thinking about with regard to ECMP?
>> ECMP in OSPF would work OK, ECMP in BGP probably would not work either,
>> i am not sure about RIP.

>We use ECMP with OSPF here.  Unlike Andrew, both routes are strictly the
>same. We use this as  layer 3 redundancy and aggregation. Aggregation is
>pretty  important too. With  two routers,  aggregation allows  to handle
>temporary bursts  of traffic. You  cannot rely on aggregation  to handle
>permanently more traffic because if one of them fails, you cannot handle
>your  original traffic.  There is  also the  use case  of three  or more
>routers. You can allow one to fail  but you still need the traffic to be
>load balanced on the two remaining ones.

Agree :)

>I have some knowledge on how ECMP routes work with netlink interface and
>can offer to  try to implement this in  BIRD if we agree on  what is the
>best  place to  implement this.  However, I  have no  knowledge  on BIRD
>internals and on how ECMP work with OS other than Linux.

I am also happy to offer whatever I can to add multipath to BIRD.
Thanks for all your thoughts and time.
Cheers, Andy.

Monitor Computer Systems Limited
Company Registration Number: NI 17805
Registered Office: 3 Pine Crest, Holywood, North Down, Northern Ireland BT18 9ED

More information about the Bird-users mailing list