Dear BIRD users, we're releasing a new version 2.15. As usually, I am just a messenger, all credits go to my colleagues: Version 2.15 o BGP: Send hold timer o BGP: New options to specify required BGP capabilities o BFD: Improvements to 'show bfd sessions' command o RPKI: New 'local address' configuration option o Linux: Support for more route attributes, including TCP congestion control algorithm o Support for UDP logging o Static routes can have both nexthop and interface specified o Completion of command options in BIRD client o Many bugfixes and improvements Happy routing! Ondrej
Hoi, Thanks for the release! I was wondering about this one: o Static routes can have both nexthop and interface specified Could I not have already been able to set 'route 192.0.2.1/32 via 100.64.0.1%eth0 onlink' ? If this is different, can you share a canonical syntax ? By the way, the following yields a crash upon startup of Bird 2.14 (perhaps in 2.15 also, I will check): protocol static s1 { ipv4 { export all; }; route 192.0.2.1/32 via 192.168.10.2%e0 *onlink bfd*; } root@vpp0-3:~# bird -p root@vpp0-3:~# birdc configure BIRD 2.14 ready. Connection closed by server root@vpp0-3:~# journalctl -u bird-dataplane --since 22:00 | grep killed Mar 10 22:10:34 vpp0-3 systemd[1]: bird-dataplane.service: Main process exited, code=killed, status=11/SEGV Mar 10 22:10:35 vpp0-3 systemd[1]: bird-dataplane.service: Main process exited, code=killed, status=11/SEGV Mar 10 22:10:35 vpp0-3 systemd[1]: bird-dataplane.service: Main process exited, code=killed, status=11/SEGV Mar 10 22:10:35 vpp0-3 systemd[1]: bird-dataplane.service: Main process exited, code=killed, status=11/SEGV Perhaps enabling BFD on such a static route is ill advised. On Sun, Mar 10, 2024 at 10:06 PM Ondrej Filip <feela@network.cz> wrote:
Dear BIRD users, we're releasing a new version 2.15. As usually, I am just a messenger, all credits go to my colleagues:
Version 2.15 o BGP: Send hold timer o BGP: New options to specify required BGP capabilities o BFD: Improvements to 'show bfd sessions' command o RPKI: New 'local address' configuration option o Linux: Support for more route attributes, including TCP congestion control algorithm o Support for UDP logging o Static routes can have both nexthop and interface specified o Completion of command options in BIRD client o Many bugfixes and improvements
Happy routing!
Ondrej
-- Pim van Pelt <pim@ipng.nl> PBVP1-RIPE - http://www.ipng.nl/
On Sun, Mar 10, 2024 at 10:13:56PM +0100, Pim van Pelt via Bird-users wrote:
Hoi,
Thanks for the release! I was wondering about this one: o Static routes can have both nexthop and interface specified Could I not have already been able to set 'route 192.0.2.1/32 via 100.64.0.1%eth0 onlink' ? If this is different, can you share a canonical syntax ?
Hi Yes, it is something that could already be done using the IPv6-scope syntax, but that was both a hack (outside IPv6 link-local) and was limited in allowed characters in interface name. Now you can use: route 192.0.2.1/32 via 100.64.0.1 dev "eth0" onlink; https://bird.network.cz/?get_doc&v=20&f=bird-6.html#static-route-dev For details, see this thread: http://trubka.network.cz/pipermail/bird-users/2024-February/017411.html
By the way, the following yields a crash upon startup of Bird 2.14 (perhaps in 2.15 also, I will check):
protocol static s1 { ipv4 { export all; }; route 192.0.2.1/32 via 192.168.10.2%e0 *onlink bfd*; }
Will check that -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) "To err is human -- to blame it on a computer is even more so."
Hello, After upgrading to 2.15, OSPFv3 is broken. Previously working on 2.14. No configuration changes. This capture taken from router with Bird 2.15 installed. -------------------------------- OSPF route from router with Bird 2.15. it has ! sign. birdc show route all 2a05:abcd:abcd:abcd::/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::/128 unicast [ospfv3v6 2024-03-11 10:05:40] ! I (150/10) [1.1.1.1] dev wg6 dev wg7 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 1.1.1.1 ----------------------------------------------------- OSPF route from router with Bird 2.14, working as expected, with * sign. birdc show route all 2a05:abcd:abcd:abcd::3/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::3/128 unicast [ospfv3v6 2024-03-11 08:23:55] * I (150/10) [192.168.99.141] dev wg2 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 192.168.99.141 Any idea, what's going on? Thanks. On 11/03/2024 03:59:46, Ondrej Filip <feela@network.cz> wrote: Dear BIRD users, we're releasing a new version 2.15. As usually, I am just a messenger, all credits go to my colleagues: Version 2.15 o BGP: Send hold timer o BGP: New options to specify required BGP capabilities o BFD: Improvements to 'show bfd sessions' command o RPKI: New 'local address' configuration option o Linux: Support for more route attributes, including TCP congestion control algorithm o Support for UDP logging o Static routes can have both nexthop and interface specified o Completion of command options in BIRD client o Many bugfixes and improvements Happy routing! Ondrej [21c4a73b-589f-437f-9a45-60179810fa9a]
Hello Ilham, You can disable ECMP with `ecmp off;` in the protocol `ospfv3v6` as a workaround (if you don’t need ECMP). Since 31aa62ae6d2e111e87c08b4b27a16ead968f0689, OSPFv3 will use direct route for pointopoint interfaces. Unfortunately, kernel doesn’t support multipath with a device only route, so there is a ! on the route. BIRD v2.15 ready. bird> show route Table master4: 192.88.99.0/24 unicast [ospf2 14:55:01.553] * I (150/20) [1.9.1.9] dev wg-main dev wg-main2 Table master6: 2001:db8:272::/48 unicast [ospf1 14:55:01.553] ! I (150/20) [1.9.1.9] dev wg-main dev wg-main2 I am drafting a patch to fix it. Regards, Soha ---------------------------------------------- From: Bird-users <bird-users-bounces@network.cz> On Behalf Of Ilham Maulana Sent: Monday, March 11, 2024 12:27 PM To: Ondrej Filip <feela@network.cz>; Ondrej Zajicek via Bird-users <bird-users@network.cz> Subject: Re: BIRD 2.15 Hello, After upgrading to 2.15, OSPFv3 is broken. Previously working on 2.14. No configuration changes. This capture taken from router with Bird 2.15 installed. -------------------------------- OSPF route from router with Bird 2.15. it has ! sign. birdc show route all 2a05:abcd:abcd:abcd::/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::/128 unicast [ospfv3v6 2024-03-11 10:05:40] ! I (150/10) [1.1.1.1] dev wg6 dev wg7 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 1.1.1.1 ----------------------------------------------------- OSPF route from router with Bird 2.14, working as expected, with * sign. birdc show route all 2a05:abcd:abcd:abcd::3/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::3/128 unicast [ospfv3v6 2024-03-11 08:23:55] * I (150/10) [192.168.99.141] dev wg2 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 192.168.99.141 Any idea, what's going on?
Hello Soha, Thank you. It works with 'ecmp off'. One more thing I notice in Bird 2.15, is this warning message. --- Kernel dropped some netlink messages, will resync on next scan. ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 1.2.3.4) ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 5.6.7.8) ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 9.1.2.3) -- Here's the simple topology. Router A - Router B - Router C. Router B got LSA information from from A and C, and install it in B' routing table.. and( I guess) forward it to its adjacent neighbor. Router C does not install the LSA Information of Router A in OSPF Database and vice versa. Thanks. On 11/03/2024 14:19:57, Soha Jin <soha@jin.sh> wrote: Hello Ilham, You can disable ECMP with `ecmp off;` in the protocol `ospfv3v6` as a workaround (if you don’t need ECMP). Since 31aa62ae6d2e111e87c08b4b27a16ead968f0689, OSPFv3 will use direct route for pointopoint interfaces. Unfortunately, kernel doesn’t support multipath with a device only route, so there is a ! on the route. BIRD v2.15 ready. bird> show route Table master4: 192.88.99.0/24 unicast [ospf2 14:55:01.553] * I (150/20) [1.9.1.9] dev wg-main dev wg-main2 Table master6: 2001:db8:272::/48 unicast [ospf1 14:55:01.553] ! I (150/20) [1.9.1.9] dev wg-main dev wg-main2 I am drafting a patch to fix it. Regards, Soha ---------------------------------------------- From: Bird-users On Behalf Of Ilham Maulana Sent: Monday, March 11, 2024 12:27 PM To: Ondrej Filip ; Ondrej Zajicek via Bird-users Subject: Re: BIRD 2.15 Hello, After upgrading to 2.15, OSPFv3 is broken. Previously working on 2.14. No configuration changes. This capture taken from router with Bird 2.15 installed. -------------------------------- OSPF route from router with Bird 2.15. it has ! sign. birdc show route all 2a05:abcd:abcd:abcd::/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::/128 unicast [ospfv3v6 2024-03-11 10:05:40] ! I (150/10) [1.1.1.1] dev wg6 dev wg7 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 1.1.1.1 ----------------------------------------------------- OSPF route from router with Bird 2.14, working as expected, with * sign. birdc show route all 2a05:abcd:abcd:abcd::3/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::3/128 unicast [ospfv3v6 2024-03-11 08:23:55] * I (150/10) [192.168.99.141] dev wg2 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 192.168.99.141 Any idea, what's going on? [e905e712-5927-4e57-bd61-6d2a5f7530f8]
Hello Ilham, Looks like this is not a same bug. There should be a missing condition in next-hop resolving. Which router produces these warning? How it connects to 1.2.3.4/5.6.7.8/9.1.2.3, by WireGuard? What are interface types of those connections? (`show ospf interface ospfv3v6` will tell) Regards, Soha From: Ilham Maulana <ilhamsupernatural@gmail.com> Sent: Monday, March 11, 2024 5:02 PM To: Soha Jin <soha@jin.sh> Cc: Soha Jin via Bird-users <bird-users@network.cz> Subject: RE: BIRD 2.15 � Hello Soha, � Thank you. It works with 'ecmp off'. � One more thing I notice in Bird 2.15, is this warning message. --- Kernel dropped some netlink messages, will resync on next scan. ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 1.2.3.4) ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 5.6.7.8) ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 9.1.2.3) -- Here's the simple topology. � Router A - Router B - Router C. � Router B got LSA information from from A and C, and install it in B' routing table.. and( I guess) forward it to its adjacent neighbor. � Router C does not install the LSA Information of Router A in OSPF Database and vice versa. � Thanks. On 11/03/2024 14:19:57, Soha Jin <soha@jin.sh> wrote: Hello Ilham, You can disable ECMP with `ecmp off;` in the protocol `ospfv3v6` as a workaround (if you don’t need ECMP). Since 31aa62ae6d2e111e87c08b4b27a16ead968f0689, OSPFv3 will use direct route for pointopoint interfaces. Unfortunately, kernel doesn’t support multipath with a device only route, so there is a ! on the route. BIRD v2.15 ready. bird> show route Table master4: 192.88.99.0/24 unicast [ospf2 14:55:01.553] * I (150/20) [1.9.1.9] dev wg-main dev wg-main2 Table master6: 2001:db8:272::/48 unicast [ospf1 14:55:01.553] ! I (150/20) [1.9.1.9] dev wg-main dev wg-main2 I am drafting a patch to fix it. Regards, Soha ---------------------------------------------- From: Bird-users On Behalf Of Ilham Maulana Sent: Monday, March 11, 2024 12:27 PM To: Ondrej Filip ; Ondrej Zajicek via Bird-users Subject: Re: BIRD 2.15 Hello, After upgrading to 2.15, OSPFv3 is broken. Previously working on 2.14. No configuration changes. This capture taken from router with Bird 2.15 installed. -------------------------------- OSPF route from router with Bird 2.15. it has ! sign. birdc show route all 2a05:abcd:abcd:abcd::/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::/128 unicast [ospfv3v6 2024-03-11 10:05:40] ! I (150/10) [1.1.1.1] dev wg6 dev wg7 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 1.1.1.1 ----------------------------------------------------- OSPF route from router with Bird 2.14, working as expected, with * sign. birdc show route all 2a05:abcd:abcd:abcd::3/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::3/128 unicast [ospfv3v6 2024-03-11 08:23:55] * I (150/10) [192.168.99.141] dev wg2 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 192.168.99.141 Any idea, what's going on?
Hello Soha, Which router produces these warning? In my example topology below, Its Router A and Router C. Yes, it all connect using Wireguard. OSPF neighbor is good. Interface type is ptp. Thanks. On 11/03/2024 16:23:19, Soha Jin <soha@jin.sh> wrote: Hello Ilham, Looks like this is not a same bug. There should be a missing condition in next-hop resolving. Which router produces these warning? How it connects to 1.2.3.4/5.6.7.8/9.1.2.3, by WireGuard? What are interface types of those connections? (`show ospf interface ospfv3v6` will tell) Regards, Soha From: Ilham Maulana <ilhamsupernatural@gmail.com> Sent: Monday, March 11, 2024 5:02 PM To: Soha Jin <soha@jin.sh> Cc: Soha Jin via Bird-users <bird-users@network.cz> Subject: RE: BIRD 2.15 Hello Soha, Thank you. It works with 'ecmp off'. One more thing I notice in Bird 2.15, is this warning message. --- Kernel dropped some netlink messages, will resync on next scan. ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 1.2.3.4) ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 5.6.7.8) ospfv3v6: Unexpected case in next hop calculation ospfv3v6: Cannot find next hop for LSA (Type: 2001, Id: 0.0.0.0, Rt: 9.1.2.3) -- Here's the simple topology. Router A - Router B - Router C. Router B got LSA information from from A and C, and install it in B' routing table.. and( I guess) forward it to its adjacent neighbor. Router C does not install the LSA Information of Router A in OSPF Database and vice versa. Thanks. On 11/03/2024 14:19:57, Soha Jin <soha@jin.sh> wrote: Hello Ilham, You can disable ECMP with `ecmp off;` in the protocol `ospfv3v6` as a workaround (if you don’t need ECMP). Since 31aa62ae6d2e111e87c08b4b27a16ead968f0689, OSPFv3 will use direct route for pointopoint interfaces. Unfortunately, kernel doesn’t support multipath with a device only route, so there is a ! on the route. BIRD v2.15 ready. bird> show route Table master4: 192.88.99.0/24 unicast [ospf2 14:55:01.553] * I (150/20) [1.9.1.9] dev wg-main dev wg-main2 Table master6: 2001:db8:272::/48 unicast [ospf1 14:55:01.553] ! I (150/20) [1.9.1.9] dev wg-main dev wg-main2 I am drafting a patch to fix it. Regards, Soha ---------------------------------------------- From: Bird-users On Behalf Of Ilham Maulana Sent: Monday, March 11, 2024 12:27 PM To: Ondrej Filip ; Ondrej Zajicek via Bird-users Subject: Re: BIRD 2.15 Hello, After upgrading to 2.15, OSPFv3 is broken. Previously working on 2.14. No configuration changes. This capture taken from router with Bird 2.15 installed. -------------------------------- OSPF route from router with Bird 2.15. it has ! sign. birdc show route all 2a05:abcd:abcd:abcd::/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::/128 unicast [ospfv3v6 2024-03-11 10:05:40] ! I (150/10) [1.1.1.1] dev wg6 dev wg7 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 1.1.1.1 ----------------------------------------------------- OSPF route from router with Bird 2.14, working as expected, with * sign. birdc show route all 2a05:abcd:abcd:abcd::3/128 BIRD 2.15 ready. Table master6: 2a05:abcd:abcd:abcd::3/128 unicast [ospfv3v6 2024-03-11 08:23:55] * I (150/10) [192.168.99.141] dev wg2 Type: OSPF univ OSPF.metric1: 10 OSPF.router_id: 192.168.99.141 Any idea, what's going on? [Image removed by sender. db9d2b2e-8584-49c3-9a35-0f4b93fea0bb] [a8f53a11-6d8d-4899-8c7c-1a130a0cb03c]
Hi, Looks like our build from sources with reconfiguration failed on static routes config definitions. When configuring with ./configure --with-protocols="bgp static bmp pipe rpki" - static without bfd, DEV keyword in proto/static/config.Y isn't recognized: $ make -j9 MKDIR -p obj/client obj/conf obj/doc obj/filter obj/lib obj/nest obj/test obj/proto/bgp obj/proto/static obj/proto/bmp obj/proto/pipe obj/proto/rpki obj/sysdep/linux obj/sysdep/unix obj/doc GEN obj/sysdep/paths.h m4 -s -P conf/gen_parser.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y nest/mpls.Y proto/bgp/config.Y proto/static/config.Y proto/bmp/config.Y proto/pipe/config.Y proto/rpki/config.Y sysdep/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/cf-parse.y m4 -s -P conf/gen_keywords.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y nest/mpls.Y proto/bgp/config.Y proto/static/config.Y proto/bmp/config.Y proto/pipe/config.Y proto/rpki/config.Y sysdep/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/keywords.h m4 -s -P conf/gen_commands.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y nest/mpls.Y proto/bgp/config.Y proto/static/config.Y proto/bmp/config.Y proto/pipe/config.Y proto/rpki/config.Y sysdep/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/commands.h m4 -s -DTARGET=I -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-interpret.c m4 -s -DTARGET=H -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.h flex -f -s -B -8 -Pcf_ -oobj/conf/cf-lex.c conf/cf-lex.l GEN obj/nest/proto-build.c m4 -s -DTARGET=C -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.c bison -Dparse.lac=full -Dparse.error=verbose -dv -pcf_ -b obj/conf/cf-parse obj/conf/cf-parse.y proto/static/config.Y:90.18-20: error: symbol ‘DEV’ is used, but is not defined as a token and has no rules; did you mean ‘DEVICE’? 90 | | stat_nexthop DEV TEXT { | ^~~ | DEVICE make: *** [conf/Makefile:23: obj/conf/cf-parse.tab.c] Error 1 make: *** Waiting for unfinished jobs.... Proposed change: diff --git a/proto/static/config.Y b/proto/static/config.Y index e746b63c..7b282898 100644 --- a/proto/static/config.Y +++ b/proto/static/config.Y @@ -45,7 +45,7 @@ static_route_finish(void) CF_DECLS -CF_KEYWORDS(STATIC, ROUTE, VIA, DROP, REJECT, PROHIBIT, PREFERENCE, CHECK, LINK) +CF_KEYWORDS(STATIC, ROUTE, VIA, DROP, REJECT, PROHIBIT, PREFERENCE, CHECK, LINK, DEV) CF_KEYWORDS(ONLINK, WEIGHT, RECURSIVE, IGP, TABLE, BLACKHOLE, UNREACHABLE, BFD, MPLS) -- Thanks, Michał Zagórski -----Original Message----- From: Bird-users <bird-users-bounces@network.cz> On Behalf Of Ondrej Filip Sent: Sunday, March 10, 2024 9:55 PM To: bird <bird-users@network.cz> Subject: BIRD 2.15 Dear BIRD users, we're releasing a new version 2.15. As usually, I am just a messenger, all credits go to my colleagues: Version 2.15 o BGP: Send hold timer o BGP: New options to specify required BGP capabilities o BFD: Improvements to 'show bfd sessions' command o RPKI: New 'local address' configuration option o Linux: Support for more route attributes, including TCP congestion control algorithm o Support for UDP logging o Static routes can have both nexthop and interface specified o Completion of command options in BIRD client o Many bugfixes and improvements Happy routing! Ondrej
On Mon, Mar 11, 2024 at 11:30:12AM +0000, Zagorski, Michal via Bird-users wrote:
Hi, Looks like our build from sources with reconfiguration failed on static routes config definitions. When configuring with ./configure --with-protocols="bgp static bmp pipe rpki" - static without bfd, DEV keyword in proto/static/config.Y isn't recognized: $ make -j9
Thanks, merged. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) "To err is human -- to blame it on a computer is even more so."
participants (6)
-
Ilham Maulana -
Ondrej Filip -
Ondrej Zajicek -
Pim van Pelt -
Soha Jin -
Zagorski, Michal