bird (2.0.4) does not install multipath route in kernel
Kenth Eriksson
Kenth.Eriksson at infinera.com
Tue Jun 11 14:36:44 CEST 2019
On Tue, 2019-06-11 at 14:18 +0200, Arno O wrote:
> CAUTION: This email originated from outside of the organization. Do
> not click links or open attachments unless you recognize the sender
> and know the content is safe.
>
> This topic was already discussed around March 1st 2019, without
> having received a clear outcome.
>
> Now, dealing with ECMP with OSPF in Bird 2.04 on Fedora30, I run in
> same problems:
>
> -> multiple next hops to same destination (50.50.50.0/24) are in the
> route table of bird:
> bird> sho route
> Table master4:
> 10.10.10.0/24 unicast [OIPv46 13:39:16.979] I (150/10)
> [10.10.10.1]
> dev enp0s3
> 192.168.122.0/24 unicast [OIPv46 13:46:18.979] E2 (150/10/10000)
> [10.10.10.3]
> via 10.10.10.3 on enp0s3
> 50.50.50.0/24 unicast [OIPv46 13:46:18.979] E2 (150/10/100)
> [10.10.10.3]
> via 10.10.10.2 on enp0s3 weight 11
> via 10.10.10.3 on enp0s3 weight 11
> bird>
> [root at localhost ~]#
>
> but kernel route table looks unexpectedly different:
> root at localhost ~]# netstat -rn
> Kernel IP routing table
> Destination Gateway Genmask Flags MSS Window
> irtt Iface
> 10.10.10.0 0.0.0.0 255.255.255.0 U 0 0
> 0 enp0s3
> 50.50.50.0 10.10.10.2 255.255.255.0 UG 0 0
> 0 enp0s3
> 192.168.122.0 10.10.10.3 255.255.255.0 UG 0 0
> 0 enp0s3
> [root at localhost ~]#
>
Do you see them if you do 'ip route'? I think iproute2 is better at
displaying multipath routes.
> Kernel looks configured correctly (CONFIG_IP_ROUTE_MULTIPATH=y),
> etc.etc.
>
If the kernel is mis-configured, I believe you get an error trace in
the bird log. Something along the following lines;
<WARN> Netlink: Invalid argument
I tested it on 2.0.4 and kernel 4.14.92+ and that seems to work.
>
> Bird config on ECMPed bird router:
> protocol ospf OIPv46 {
> tick 2;
> rfc1583compat yes;
> ecmp yes limit 8;
> merge external yes;
> ipv4 {
> import all;
> export all;
> };
> area 0 {
> interface "enp0*" {
> # type broadcast; # Detected by default
> cost 10; # Interface metric
> ecmp weight 11;
>
> What is missing either in the bird-config or the kernel part?
>
> Thx
>
> BR
> Ar
>
More information about the Bird-users
mailing list