bird2.15.1 - FreeBSD14
I am using FreeBSD 14 with FIBs. With bird2.14 I get routes via BGP and anything is fine. With bird2.15.1 I get routes, but the daemon doesn’t put them into the kernel routing table. Same configuration work with older version. Does something change which has an effect on it? template bgp general_bgp { debug { states, routes, interfaces }; strict bind on; enable route refresh on; graceful restart time 300; hold time 15; keepalive time 5; med metric on; password "*************"; } ipv4 table table_SLICE1 protocol direct direct_SLICE1 { interface "vtnet2"; ipv4 { table table_SLICE1; }; } protocol kernel kernel_SLICE1 { kernel table 1; scan time 10; ipv4 { table table_SLICE1; import all; export all; }; } ### br1 protocol bgp br1_SLICE1 from general_bgp { description "[SLICE1][br1] - BGP Transit Services"; local 100.64.1.185 as 64521; neighbor 100.64.1.7 as 64521; ipv4 { table table_SLICE1; import keep filtered; import all; export none; }; } ### br2 protocol bgp br2_SLICE1 from general_bgp { description "[SLICE1][br2] - BGP Transit Services"; local 100.64.1.185 as 64521; neighbor 100.64.1.8 as 64521; ipv4 { table table_SLICE1; import keep filtered; import all; export none; }; } -------------------- ~ # birdc show route table table_SLICE1 BIRD 2.14 ready. Table table_SLICE1: 0.0.0.0/0 unicast [br1_SLICE1 2024-06-10 09:02:07] * (100) [i] via 100.64.1.7 on vtnet2 unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i] via 100.64.1.8 on vtnet2 100.64.21.0/24 unicast [br1_SLICE1 2024-06-10 09:02:07] * (100) [i] via 100.64.1.7 on vtnet2 unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i] via 100.64.1.8 on vtnet2 100.64.1.0/24 unicast [direct_SLICE1 2024-06-10 09:01:05] ! (240) dev vtnet2 unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i] via 100.64.1.8 on vtnet2 unicast [br1_SLICE1 2024-06-10 09:02:07] (100) [i] via 100.64.1.7 on vtnet2 ~ # setfib 1 netstat -rn Routing tables (fib: 1) Internet: Destination Gateway Flags Netif Expire 100.64.1.0/24 link#3 U vtnet2 100.64.1.185 link#15 UHS lo0 127.0.0.1 link#15 UHS lo0 Internet6: Destination Gateway Flags Netif Expire ::/96 link#15 URS lo0 ::1 link#15 UHS lo0 ::ffff:0.0.0.0/96 link#15 URS lo0 fe80::%lo0/10 link#15 URS lo0 ff02::/16 link#15 URS lo0 Any idea? Thanks. BR Torsten
What changed recently is that the Bird 2.15 port defaults to using Netlink instead of route sockets to access the kernel routing table on FreeBSD 14.0 and later. Can you install the other flavor of the bird2 port (bird2-rtsock-2.15.1 instead of bird2-2.15.1), restart the bird2 service (not just reload the running process), and report back if that works? If that alone solves your problem you've found a regression in the new default flavor. On 10.06.24 10:13, Torsten Wilms via Bird-users wrote:
I am using FreeBSD 14 with FIBs.
With bird2.14 I get routes via BGP and anything is fine.
With bird2.15.1 I get routes, but the daemon doesn’t put them into the kernel routing table. Same configuration work with older version.
Does something change which has an effect on it?
template bgp general_bgp {
debug { states, routes, interfaces };
strict bind on;
enable route refresh on;
graceful restart time 300;
hold time 15;
keepalive time 5;
med metric on;
password "*************";
}
ipv4 table table_SLICE1
protocol direct direct_SLICE1 {
interface "vtnet2";
ipv4 {
table table_SLICE1;
};
}
protocol kernel kernel_SLICE1 {
kernel table 1;
scan time 10;
ipv4 {
table table_SLICE1;
import all;
export all;
};
}
### br1
protocol bgp br1_SLICE1 from general_bgp {
description "[SLICE1][br1] - BGP Transit Services";
local 100.64.1.185 as 64521;
neighbor 100.64.1.7 as 64521;
ipv4 {
table table_SLICE1;
import keep filtered;
import all;
export none;
};
}
### br2
protocol bgp br2_SLICE1 from general_bgp {
description "[SLICE1][br2] - BGP Transit Services";
local 100.64.1.185 as 64521;
neighbor 100.64.1.8 as 64521;
ipv4 {
table table_SLICE1;
import keep filtered;
import all;
export none;
};
}
--------------------
~ # birdc show route table table_SLICE1
BIRD 2.14 ready.
Table table_SLICE1:
0.0.0.0/0 unicast [br1_SLICE1 2024-06-10 09:02:07] * (100) [i]
via 100.64.1.7 on vtnet2
unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i]
via 100.64.1.8 on vtnet2
100.64.21.0/24 unicast [br1_SLICE1 2024-06-10 09:02:07] * (100) [i]
via 100.64.1.7 on vtnet2
unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i]
via 100.64.1.8 on vtnet2
100.64.1.0/24 unicast [direct_SLICE1 2024-06-10 09:01:05] ! (240)
dev vtnet2
unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i]
via 100.64.1.8 on vtnet2
unicast [br1_SLICE1 2024-06-10 09:02:07] (100) [i]
via 100.64.1.7 on vtnet2
~ # setfib 1 netstat -rn
Routing tables (fib: 1)
Internet:
Destination Gateway Flags Netif Expire
100.64.1.0/24 link#3 U vtnet2
100.64.1.185 link#15 UHS lo0
127.0.0.1 link#15 UHS lo0
Internet6:
Destination Gateway Flags Netif Expire
::/96 link#15 URS lo0
::1 link#15 UHS lo0
::ffff:0.0.0.0/96 link#15 URS lo0
fe80::%lo0/10 link#15 URS lo0
ff02::/16 link#15 URS lo0
Any idea?
Thanks.
BR Torsten
Thats it! Ok, but is there some configuration option to use the normal bird2.15 with the same result as bird2-rtsock? BR From: Bird-users <bird-users-bounces@network.cz> on behalf of Jan Bramkamp <crest@rlwinm.de> Date: Monday, 10. June 2024 at 13:34 To: bird-users@network.cz <bird-users@network.cz> Subject: Re: bird2.15.1 - FreeBSD14 What changed recently is that the Bird 2.15 port defaults to using Netlink instead of route sockets to access the kernel routing table on FreeBSD 14.0 and later. Can you install the other flavor of the bird2 port (bird2-rtsock-2.15.1 instead of bird2-2.15.1), restart the bird2 service (not just reload the running process), and report back if that works? If that alone solves your problem you've found a regression in the new default flavor. On 10.06.24 10:13, Torsten Wilms via Bird-users wrote: I am using FreeBSD 14 with FIBs. With bird2.14 I get routes via BGP and anything is fine. With bird2.15.1 I get routes, but the daemon doesn’t put them into the kernel routing table. Same configuration work with older version. Does something change which has an effect on it? template bgp general_bgp { debug { states, routes, interfaces }; strict bind on; enable route refresh on; graceful restart time 300; hold time 15; keepalive time 5; med metric on; password "*************"; } ipv4 table table_SLICE1 protocol direct direct_SLICE1 { interface "vtnet2"; ipv4 { table table_SLICE1; }; } protocol kernel kernel_SLICE1 { kernel table 1; scan time 10; ipv4 { table table_SLICE1; import all; export all; }; } ### br1 protocol bgp br1_SLICE1 from general_bgp { description "[SLICE1][br1] - BGP Transit Services"; local 100.64.1.185 as 64521; neighbor 100.64.1.7 as 64521; ipv4 { table table_SLICE1; import keep filtered; import all; export none; }; } ### br2 protocol bgp br2_SLICE1 from general_bgp { description "[SLICE1][br2] - BGP Transit Services"; local 100.64.1.185 as 64521; neighbor 100.64.1.8 as 64521; ipv4 { table table_SLICE1; import keep filtered; import all; export none; }; } -------------------- ~ # birdc show route table table_SLICE1 BIRD 2.14 ready. Table table_SLICE1: 0.0.0.0/0 unicast [br1_SLICE1 2024-06-10 09:02:07] * (100) [i] via 100.64.1.7 on vtnet2 unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i] via 100.64.1.8 on vtnet2 100.64.21.0/24 unicast [br1_SLICE1 2024-06-10 09:02:07] * (100) [i] via 100.64.1.7 on vtnet2 unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i] via 100.64.1.8 on vtnet2 100.64.1.0/24 unicast [direct_SLICE1 2024-06-10 09:01:05] ! (240) dev vtnet2 unicast [br2_SLICE1 2024-06-10 09:02:02] (100) [i] via 100.64.1.8 on vtnet2 unicast [br1_SLICE1 2024-06-10 09:02:07] (100) [i] via 100.64.1.7 on vtnet2 ~ # setfib 1 netstat -rn Routing tables (fib: 1) Internet: Destination Gateway Flags Netif Expire 100.64.1.0/24 link#3 U vtnet2 100.64.1.185 link#15 UHS lo0 127.0.0.1 link#15 UHS lo0 Internet6: Destination Gateway Flags Netif Expire ::/96 link#15 URS lo0 ::1 link#15 UHS lo0 ::ffff:0.0.0.0/96 link#15 URS lo0 fe80::%lo0/10 link#15 URS lo0 ff02::/16 link#15 URS lo0 Any idea? Thanks. BR Torsten
W dniu 10.06.2024 o 14:19, Torsten Wilms via Bird-users pisze:
Thats it!
Ok, but is there some configuration option to use the normal bird2.15 with the same result as bird2-rtsock?
FreeBSD port net/bird2@netlink, which is now the default flavor for FreeBSD 14.0 and later, will accept configuration inherited from net/bird2@rtsock. The opposite statement is not true, there are some configuration options allowed for Netlink flavor, which will be rejected by rtsock-driven bird2.
*From: *Bird-users <bird-users-bounces@network.cz> on behalf of Jan Bramkamp <crest@rlwinm.de> *Date: *Monday, 10. June 2024 at 13:34 *To: *bird-users@network.cz <bird-users@network.cz> *Subject: *Re: bird2.15.1 - FreeBSD14
What changed recently is that the Bird 2.15 port defaults to using Netlink instead of route sockets to access the kernel routing table on FreeBSD 14.0 and later. Can you install the other flavor of the bird2 port (bird2-rtsock-2.15.1 instead of bird2-2.15.1), restart the bird2 service (not just reload the running process), and report back if that works? If that alone solves your problem you've found a regression in the new default flavor.
On 10.06.24 10:13, Torsten Wilms via Bird-users wrote:
I am using FreeBSD 14 with FIBs.
With bird2.14 I get routes via BGP and anything is fine.
With bird2.15.1 I get routes, but the daemon doesn’t put them into the kernel routing table. Same configuration work with older version.
Does something change which has an effect on it?
The issue was fixed yesterday[1]. Please, try it if you can build kernel from the sources with this patch applied. 1. https://cgit.freebsd.org/src/commit/?id=f34aca55adef1e28cd68b2e6705a0cac03f0... -- Marek Zarychta
On Mon, Jun 10, 2024 at 1:22 AM Torsten Wilms via Bird-users < bird-users@network.cz> wrote:
Any idea?
Could it be related to this bug "broken multiple FIB support" ?: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279662 Regards, Olivier
participants (4)
-
Jan Bramkamp -
Marek Zarychta -
Olivier Cochard-Labbé -
Torsten Wilms