BIRD and ECMP on Linux seems flaky

Arno Töll arno.toell+bird at profitbricks.com
Tue Jan 12 17:04:35 CET 2016


Hi,

On Tue, Jan 12, 2016 at 12:09 AM, Wilco Baan Hofman <wilco at baanhofman.nl> wrote:
> In this case, the API is not symmetrical. You can set routes via the
> multipath structures, but the Linux kernel splits this up into separate
> routes internally, because with IPv6 you can now have multiple routes to
> the same destination that are not linked together (why? Maybe to
> remove/add one of the nexthops independently or something).

You are right. If I do

ip -6 route add fd57::1/128 nexthop via fc57::1 nexthop via fc57::2

I get:

root at ps:~# ip -6 route show
..
fd57::1 via fc57::2 dev eth0  metric 1024
fd57::1 via fc57::1 dev eth0  metric 1024

With IPv4 I get:

root at ps:~# ip route add 192.168.0.1/32 nexthop via 10.10.216.1 nexthop
via 10.10.216.2
root at ps:~# ip route show
...
192.168.0.1
        nexthop via 10.10.216.1  dev eth0 weight 1
        nexthop via 10.10.216.2  dev eth0 weight 1

This sucks. I suppose this is merely a Linux "feature", than a bug in
bird. Also, as I take it, there is no way around this in bird? That
means ECMP with bird on IPv6 is basically useless currently.

--
Arno Töll
GnuPG Key-ID: 0x9D80F36D



More information about the Bird-users mailing list