ECMP/multipath support
Vincent Bernat
bernat at luffy.cx
Fri Oct 1 19:57:23 CEST 2010
OoO En ce début d'après-midi nuageux du vendredi 01 octobre 2010, vers
14:18, Ondrej Zajicek <santiago at crfreenet.org> disait :
> 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.
> 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.
> 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.
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.
--
Make input easy to prepare and output self-explanatory.
- The Elements of Programming Style (Kernighan & Plauger)
More information about the Bird-users
mailing list