Hi, Are you sure "netstat -rn" is capable of it on Linux. Try to use "ip route". On Tue, Jun 11, 2019 at 2:40 PM Arno O <odermaar@gmail.com> wrote:
Sorry, there of course are "protocol kernel" configs. as below:
# routing tables with the OS kernel. One instance per table. protocol kernel { ipv4 { # Connect protocol to IPv4 table by channel # table master4; # Default IPv4 table is master4 import all; # Import to table, default is import all export all; # Export to protocol. default is export none }; merge paths yes; metric 10; learn; # Learn alien routes from the kernel # kernel table 10; # Kernel table to synchronize with (default: main) }
Ar ---------- Forwarded message --------- Von: Arno O <odermaar@gmail.com> Date: Di., 11. Juni 2019 um 14:18 Uhr Subject: bird (2.0.4) does not install multipath route in kernel To: <bird-users@network.cz>
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@localhost ~]#
but kernel route table looks unexpectedly different: root@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@localhost ~]#
Kernel looks configured correctly (CONFIG_IP_ROUTE_MULTIPATH=y), etc.etc.
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