OoO En ce début d'après-midi nuageux du vendredi 01 octobre 2010, vers 14:18, Ondrej Zajicek <santi...@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)