IPv6 prefix is not stored to kernel when multipath is enabled in 1.6.8
Hi guys, I have multipath enabled on bird6 running in old 1.6.8. I discovered that the IPv6 prefix failed to be installed properly in the kernel with more than 1 path and when multipath is enabled. syslog message:
Feb 9 23:54:31 x40-n bird6: kernel1 < replaced fcdf::/16 multipath Feb 9 23:54:53 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:55:53 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:56:53 x40-n bird6: kernel1: fcdf::/16: reinstalling
The IPv6 prefix is installed properly if I remove multipath in bird6:
# merge paths on;
But then it means the path won't be shared with the rest of the path. syslog message:
Feb 9 23:57:15 x40-n bird6: kernel1 < added fcdf::/16 dev wg2 Feb 9 23:57:15 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:58:15 x40-n bird6: kernel1: fcdf::/16: seen Feb 9 23:59:16 x40-n bird6: kernel1: fcdf::/16: seen
Do you guys encounter this issue or is there any other configuration needed? The multipath works well in IPv4/bird. Thanks, Jimmy
uuuhhh... 1.6? This version has not been receiving updates for quite some time. Definitely more than 5 years ago. And even before that, for a few years version 1.6 was only receiving fixes. I suggest you consider migrating to the current version of Bird2, which if I'm not mistaken is 2.16.1 Em qui., 13 de fev. de 2025 às 00:08, Jimmy Lim <jhalim10@gmail.com> escreveu:
Hi guys,
I have multipath enabled on bird6 running in old 1.6.8. I discovered that the IPv6 prefix failed to be installed properly in the kernel with more than 1 path and when multipath is enabled.
syslog message:
Feb 9 23:54:31 x40-n bird6: kernel1 < replaced fcdf::/16 multipath Feb 9 23:54:53 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:55:53 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:56:53 x40-n bird6: kernel1: fcdf::/16: reinstalling
The IPv6 prefix is installed properly if I remove multipath in bird6:
# merge paths on;
But then it means the path won't be shared with the rest of the path.
syslog message:
Feb 9 23:57:15 x40-n bird6: kernel1 < added fcdf::/16 dev wg2 Feb 9 23:57:15 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:58:15 x40-n bird6: kernel1: fcdf::/16: seen Feb 9 23:59:16 x40-n bird6: kernel1: fcdf::/16: seen
Do you guys encounter this issue or is there any other configuration needed? The multipath works well in IPv4/bird.
Thanks, Jimmy
-- Douglas Fernando Fischer Engº de Controle e Automação
And I think there will be no more updates: https://bird.network.cz/?o_news 25.4.2023 BIRD 1 end of life will happen at the end of 2023. Please finish you upgrade to BIRD 2 ASAP! On Thu, Feb 13, 2025 at 5:01 PM Douglas Fischer <fischerdouglas@gmail.com> wrote:
uuuhhh... 1.6?
This version has not been receiving updates for quite some time. Definitely more than 5 years ago. And even before that, for a few years version 1.6 was only receiving fixes.
I suggest you consider migrating to the current version of Bird2, which if I'm not mistaken is 2.16.1
Em qui., 13 de fev. de 2025 às 00:08, Jimmy Lim <jhalim10@gmail.com> escreveu:
Hi guys,
I have multipath enabled on bird6 running in old 1.6.8. I discovered that the IPv6 prefix failed to be installed properly in the kernel with more than 1 path and when multipath is enabled.
syslog message:
Feb 9 23:54:31 x40-n bird6: kernel1 < replaced fcdf::/16 multipath Feb 9 23:54:53 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:55:53 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:56:53 x40-n bird6: kernel1: fcdf::/16: reinstalling
The IPv6 prefix is installed properly if I remove multipath in bird6:
# merge paths on;
But then it means the path won't be shared with the rest of the path.
syslog message:
Feb 9 23:57:15 x40-n bird6: kernel1 < added fcdf::/16 dev wg2 Feb 9 23:57:15 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:58:15 x40-n bird6: kernel1: fcdf::/16: seen Feb 9 23:59:16 x40-n bird6: kernel1: fcdf::/16: seen
Do you guys encounter this issue or is there any other configuration needed? The multipath works well in IPv4/bird.
Thanks, Jimmy
-- Douglas Fernando Fischer Engº de Controle e Automação
I thought the issue might be related to configuration instead of bird version 😕 Let me try to use another box that run bird 2 for testing as well. Cheers guys, Jimmy On Fri, Feb 14, 2025, 12:36 AM Alexander Zubkov <green@qrator.net> wrote:
And I think there will be no more updates:
https://bird.network.cz/?o_news 25.4.2023 BIRD 1 end of life will happen at the end of 2023. Please finish you upgrade to BIRD 2 ASAP!
On Thu, Feb 13, 2025 at 5:01 PM Douglas Fischer <fischerdouglas@gmail.com> wrote:
uuuhhh... 1.6?
This version has not been receiving updates for quite some time. Definitely more than 5 years ago. And even before that, for a few years version 1.6 was only receiving fixes.
I suggest you consider migrating to the current version of Bird2, which if I'm not mistaken is 2.16.1
Em qui., 13 de fev. de 2025 às 00:08, Jimmy Lim <jhalim10@gmail.com> escreveu:
Hi guys,
I have multipath enabled on bird6 running in old 1.6.8. I discovered that the IPv6 prefix failed to be installed properly in the kernel with more than 1 path and when multipath is enabled.
syslog message:
Feb 9 23:54:31 x40-n bird6: kernel1 < replaced fcdf::/16 multipath Feb 9 23:54:53 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:55:53 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:56:53 x40-n bird6: kernel1: fcdf::/16: reinstalling
The IPv6 prefix is installed properly if I remove multipath in bird6:
# merge paths on;
But then it means the path won't be shared with the rest of the path.
syslog message:
Feb 9 23:57:15 x40-n bird6: kernel1 < added fcdf::/16 dev wg2 Feb 9 23:57:15 x40-n bird6: kernel1: fcdf::/16: reinstalling Feb 9 23:58:15 x40-n bird6: kernel1: fcdf::/16: seen Feb 9 23:59:16 x40-n bird6: kernel1: fcdf::/16: seen
Do you guys encounter this issue or is there any other configuration needed? The multipath works well in IPv4/bird.
Thanks, Jimmy
-- Douglas Fernando Fischer Engº de Controle e Automação
On Fri, Feb 14, 2025 at 05:52:18PM +0800, Jimmy Lim wrote:
I thought the issue might be related to configuration instead of bird version 😕
There is quite some code difference between BIRD 1 and 2, and I do remember that the IPv6 multipath implementation was unstable for some time in the Netlink API. And that is the reason why we stopped supporting BIRD 1. We ourselves can't keep track about everything here and there, and even though Santiago has superhuman powers and remembers which part worked how even in 1.3.0 … no, please. We actually do not know how much we have fixed in BIRD 2 and ignored in BIRD 1. There is a lot of development passed by.
Let me try to use another box that run bird 2 for testing as well.
Seriously. Do. Upgrade. Now. We announced the EOL for a reason. Tell your manager that BIRD 1 is EOL. It is not OK to run it in production now. You won't even get packages for new distros for BIRD 1. Thank you for your understanding Maria -- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
Hi Maria, Thanks for your update. I have just run the test in another box running BIRD 2.0.12. I encountered the same issue. The IPv6 prefix is not installed in the kernel if there is more than 1 equal path available. This is what I see in the log:
Feb 17 19:01:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:02:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:03:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:04:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:05:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:06:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:07:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:08:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:09:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing
Do you have the sample working configuration for multipath? Basically I have just configured inside protocol kernel. Thanks.
merge paths on;
Thanks, Jimmy On Fri, Feb 14, 2025 at 6:40 PM Maria Matejka <maria.matejka@nic.cz> wrote:
On Fri, Feb 14, 2025 at 05:52:18PM +0800, Jimmy Lim wrote:
I thought the issue might be related to configuration instead of bird version 😕
There is quite some code difference between BIRD 1 and 2, and I do remember that the IPv6 multipath implementation was unstable for some time in the Netlink API.
And that is the reason why we stopped supporting BIRD 1. We ourselves can’t keep track about everything here and there, and even though Santiago has superhuman powers and remembers which part worked how even in 1.3.0 … no, please. We actually do not know how much we have fixed in BIRD 2 and ignored in BIRD 1. There is a lot of development passed by.
Let me try to use another box that run bird 2 for testing as well.
Seriously. Do. Upgrade. Now. We announced the EOL for a reason. Tell your manager that BIRD 1 is EOL. It is not OK to run it in production now. You won’t even get packages for new distros for BIRD 1.
Thank you for your understanding Maria
– Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
Hello Jimmy, what is your kernel version? (notable critical points are 4.11 and 5.10) How do the routes look like? (they may just be unmergeable) Maria On 18 February 2025 04:28:19 CET, Jimmy Lim <jhalim10@gmail.com> wrote:
Hi Maria,
Thanks for your update. I have just run the test in another box running BIRD 2.0.12. I encountered the same issue. The IPv6 prefix is not installed in the kernel if there is more than 1 equal path available. This is what I see in the log:
Feb 17 19:01:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:02:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:03:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:04:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:05:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:06:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:07:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:08:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:09:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing
Do you have the sample working configuration for multipath? Basically I have just configured inside protocol kernel. Thanks.
merge paths on;
Thanks, Jimmy
On Fri, Feb 14, 2025 at 6:40 PM Maria Matejka <maria.matejka@nic.cz> wrote:
On Fri, Feb 14, 2025 at 05:52:18PM +0800, Jimmy Lim wrote:
I thought the issue might be related to configuration instead of bird version 😕
There is quite some code difference between BIRD 1 and 2, and I do remember that the IPv6 multipath implementation was unstable for some time in the Netlink API.
And that is the reason why we stopped supporting BIRD 1. We ourselves can’t keep track about everything here and there, and even though Santiago has superhuman powers and remembers which part worked how even in 1.3.0 … no, please. We actually do not know how much we have fixed in BIRD 2 and ignored in BIRD 1. There is a lot of development passed by.
Let me try to use another box that run bird 2 for testing as well.
Seriously. Do. Upgrade. Now. We announced the EOL for a reason. Tell your manager that BIRD 1 is EOL. It is not OK to run it in production now. You won’t even get packages for new distros for BIRD 1.
Thank you for your understanding Maria
– Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
-- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
Hi Maria, It looks like it doesn't like the configuration of directing IPv6 prefix that we receive from gw (we have 3 sessions) to ifname. The multipath is working fine for IPv6 after I removed that configuration, and it works for both bird v1 and v2: fdaa::/16 proto bird src fdaa:dc60:20:1::a3e:a00b metric 1024
nexthop via fdaa:dc00:20::644d:3b01 dev wg1 weight 1 nexthop via fdaa:dc00:20::644d:3c01 dev wg2 weight 1 nexthop via fdaa:dc00:20:a000::101 dev wg3 weight 1
Thanks guys for taking a look into my case. Cheers, Jimmy On Tue, Feb 18, 2025 at 2:46 PM Maria Matejka <maria.matejka@nic.cz> wrote:
Hello Jimmy,
what is your kernel version? (notable critical points are 4.11 and 5.10) How do the routes look like? (they may just be unmergeable)
Maria
On 18 February 2025 04:28:19 CET, Jimmy Lim <jhalim10@gmail.com> wrote:
Hi Maria,
Thanks for your update. I have just run the test in another box running BIRD 2.0.12. I encountered the same issue. The IPv6 prefix is not installed in the kernel if there is more than 1 equal path available. This is what I see in the log:
Feb 17 19:01:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:02:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:03:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:04:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:05:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:06:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:07:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:08:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing Feb 17 19:09:05 n002-002 bird[174542]: kernel2: fdaa::/16: installing
Do you have the sample working configuration for multipath? Basically I have just configured inside protocol kernel. Thanks.
merge paths on;
Thanks, Jimmy
On Fri, Feb 14, 2025 at 6:40 PM Maria Matejka <maria.matejka@nic.cz> wrote:
On Fri, Feb 14, 2025 at 05:52:18PM +0800, Jimmy Lim wrote:
I thought the issue might be related to configuration instead of bird version 😕
There is quite some code difference between BIRD 1 and 2, and I do remember that the IPv6 multipath implementation was unstable for some time in the Netlink API.
And that is the reason why we stopped supporting BIRD 1. We ourselves can’t keep track about everything here and there, and even though Santiago has superhuman powers and remembers which part worked how even in 1.3.0 … no, please. We actually do not know how much we have fixed in BIRD 2 and ignored in BIRD 1. There is a lot of development passed by.
Let me try to use another box that run bird 2 for testing as well.
Seriously. Do. Upgrade. Now. We announced the EOL for a reason. Tell your manager that BIRD 1 is EOL. It is not OK to run it in production now. You won’t even get packages for new distros for BIRD 1.
Thank you for your understanding Maria
– Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
-- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
On Wed, Feb 19, 2025 at 10:39:53AM +0800, Jimmy Lim wrote:
Hi Maria,
It looks like it doesn't like the configuration of directing IPv6 prefix that we receive from gw (we have 3 sessions) to ifname. The multipath is working fine for IPv6 after I removed that configuration, and it works for both bird v1 and v2:
Hi Yeah, there was some kernel issue rekated to IPv6 multipath direct routes. We have some workaround in the code for this case, but likely only for the recent versions of BIRD. -- 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."
Hi, I think multipath over device routes for ipv6 requires using new nexthop objects. Here is an example: # ip link add name a type dummy # ip link add name b type dummy # ip link set dev a up # ip link set dev b up # ip -6 route add fc00:0::/32 dev a # ip -6 route add fc00:1::/32 dev b # ip -6 route add fc00:2::/32 nexthop dev a Error: Device only routes can not be added for IPv6 using the multipath API. # ip -6 route add fc00:3::/32 nexthop dev a nexthop dev b Error: Device only routes can not be added for IPv6 using the multipath API. # ip -6 nexthop add id 100 dev a # ip -6 nexthop add id 101 dev b # ip nexthop add id 102 group 100/101 # ip -6 route add fc00:4::/32 nhid 102 # ip -6 route list fc00::/32 dev a metric 1024 pref medium fc00:1::/32 dev b metric 1024 pref medium fc00:4::/32 nhid 102 metric 1024 pref medium nexthop dev a weight 1 nexthop dev b weight 1 fe80::/64 dev a proto kernel metric 256 pref medium fe80::/64 dev b proto kernel metric 256 pref medium # sysctl -w net.ipv4.nexthop_compat_mode=0 net.ipv4.nexthop_compat_mode = 0 # ip -6 route list fc00::/32 dev a metric 1024 pref medium fc00:1::/32 dev b metric 1024 pref medium fc00:4::/32 nhid 102 metric 1024 pref medium fe80::/64 dev a proto kernel metric 256 pref medium fe80::/64 dev b proto kernel metric 256 pref medium # ip nexthop list id 100 dev a scope link id 101 dev b scope link id 102 group 100/101 On Wed, Feb 19, 2025 at 2:20 PM Ondrej Zajicek <santiago@crfreenet.org> wrote:
On Wed, Feb 19, 2025 at 10:39:53AM +0800, Jimmy Lim wrote:
Hi Maria,
It looks like it doesn't like the configuration of directing IPv6 prefix that we receive from gw (we have 3 sessions) to ifname. The multipath is working fine for IPv6 after I removed that configuration, and it works for both bird v1 and v2:
Hi
Yeah, there was some kernel issue rekated to IPv6 multipath direct routes. We have some workaround in the code for this case, but likely only for the recent versions of BIRD.
-- 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."
On Wed, Feb 19, 2025 at 02:39:30PM +0100, Alexander Zubkov wrote:
Hi,
I think multipath over device routes for ipv6 requires using new nexthop objects. Here is an example:
Thanks for the info, that is interesting. -- 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 (5)
-
Alexander Zubkov -
Douglas Fischer -
Jimmy Lim -
Maria Matejka -
Ondrej Zajicek