On 9/21/25 11:58, Guido Falsi wrote:
On 9/21/25 00:17, Herbert J. Skuhra wrote:
On Sat, 20 Sep 2025 14:31:52 +0200, Guido Falsi wrote:

The branch main has been updated by madpilot:

URL: https://cgit.FreeBSD.org/src/commit/? id=31ec8b6407fdd5a87d70265762457c67ce618283

commit 31ec8b6407fdd5a87d70265762457c67ce618283
Author:     Guido Falsi <[email protected]>
AuthorDate: 2025-09-20 12:26:41 +0000
Commit:     Guido Falsi <[email protected]>
CommitDate: 2025-09-20 12:31:44 +0000

     sys/netinet6: Implement RFC 7217
     Implement RFC 7217 (A Method for Generating Semantically Opaque
     Interface Identifiers with IPv6 Stateless Address Autoconfiguration
     (SLAAC)) in our IPv6 stack.
     A new ifconfig `stableaddr` flag is added to enable the feature on
     interfaces, which defaults to on or off for new interfaces based
     on the sysctl `net.inet6.ip6.use_stableaddr` (off by default, so
     this commit causes no change in behavior with default settings).
     The algorithm follows the RFC in its logic, using SHA256-HMAC as
     the algorithm to derive addresses so as to provide code that can
     be leveraged by future implentations of RFC 8981, leveraging the
     `hostuuid` as the secret.
     The source of the hostidentifier can be configured using the sysctl
     `net.inet6.ip6.stableaddr_netifsource`, while the number of retries
     generating a new address in case of collision can be configured
     using the `net.inet6.ip6.stableaddr_maxretries` sysctl (default 3).
     Documentation about all these flags is added to the ifconfig(8) man
     page.
     Reviewed by:            cognet, glebius, hrs
     Tested by:              [email protected]
     Approved by:            cognet, glebius
     Relnotes:               yes
     Differential Revision:  https://reviews.freebsd.org/D49681
---
  sbin/ifconfig/af_inet6.c    |   2 +
  sbin/ifconfig/af_nd6.c      |   1 +
  sbin/ifconfig/ifconfig.8    |  30 +++++
  sys/netinet6/in6.h          |   3 +
  sys/netinet6/in6_ifattach.c | 275 +++++++++++++++++++++++++++++++++ ++++-------
  sys/netinet6/in6_ifattach.h |   2 +
  sys/netinet6/in6_proto.c    |  10 ++
  sys/netinet6/ip6_input.c    |   1 +
  sys/netinet6/ip6_var.h      |  12 ++
  sys/netinet6/nd6.c          |   9 ++
  sys/netinet6/nd6.h          |   2 +
  sys/netinet6/nd6_nbr.c      |  35 +++++-
  sys/netinet6/nd6_rtr.c      | 128 +++++++++++++--------
  usr.sbin/ndp/ndp.c          |   7 ++
  14 files changed, 423 insertions(+), 94 deletions(-)

This commit breaks security/netbird:

Management: Disconnected, reason: create wg interface: error creating tun device: unable to get nd6 flags for tun0: invalid argument Signal: Disconnected, reason: create wg interface: error creating tun device: unable to get nd6 flags for tun0: invalid argument


Thanks for reporting this,

I'm going to take a look shortly, although I'm not sure why, since the functionality is disabled by default.



Hi again,

I'm going to try to reproduce this, but in the while, looking at the source code, the error comes from the wireguard-go package that is being used by netbird (we also have that in a port of its own BTW).

The code there is manipulating the interface flags at a low level, but my commit modified that structure. There is some chance that simply forcing a rebuild and reinstall of the package will "fix" it.

Have you tried that?

If you already have, I'll go on and reproduce locally, if I can.

--
Guido Falsi <[email protected]>




Reply via email to