websocket icon indicating copy to clipboard operation
websocket copied to clipboard

[BUG] sometimes uses incomplete IPv6 addresses as node names

Open mbunkus opened this issue 2 months ago • 2 comments

Is there an existing issue for this?

  • [x] I have searched the existing issues

Current Behavior

I have two clusters, defiant & enterprise. Both are dual-stacked IPv4 & IPv6. On top of that defiant has a separate network for storage migration & cluster communication whereas enterprise does both via the management network.

In Pulse all three hosts of the defiant cluster show up as incomplete IPv6 addresses, with the cluster-internal node names following, e.g. 2001:67c:ae8:3: (defiant1) (see screenshot below). This is everywhere a node name is used. That looks like an IPv6 address, but it actually isn't, 'cause there's stuff missing at the end. Furthermore for the defiant cluster all three nodes show up using the same shortened address.

For the enterprise cluster things are different: two show up as names, e.g. enterprise1 (enterprise1), whereas the second shows up with an even shorter truncated address, 2000 (enterprise2).

Unfortunately the UI uses those mangled names for sorting, too, greatly reducing the overview quality.

Image

Expected Behavior

I'd really like for the UI to only use the names assigned to the nodes, the ones currently shown in parenthesis, especially for sorting, but also in the overview, the limits configuration screen etc. I don't ever need to see their IP addresses as I don't actually know the IP addresses by heart — I work on names, especially in IPv6 land.

Steps To Reproduce

  1. Have a cluster with dual-stacked (IPv4 & IPv6) machines
  2. I guess don't have PTR records for all IPs used by the hosts? Haven't checked this
  3. Add the hosts
  4. Look at the UI

Anything else?

No response

mbunkus avatar Oct 17 '25 08:10 mbunkus

Additional information: this is how the nodes show up in the setup screen:

Image

I debugged DNS resolution. The PTRs exist for all (!) nodes & all used IPv4 & IPv6 addresses. However, DNS routing was bad when I set up the nodes but has been fixed since:

/app # nslookup enterprise2.bs.linet-services.de
Server:         127.0.0.11
Address:        127.0.0.11:53

Non-authoritative answer:
Name:   enterprise2.bs.linet-services.de
Address: 10.199.93.46

Non-authoritative answer:
Name:   enterprise2.bs.linet-services.de
Address: 2001:67c:ae8:3::3b

/app # nslookup 2001:67c:ae8:3::3b
Server:         127.0.0.11
Address:        127.0.0.11:53

Non-authoritative answer:
b.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3.0.0.0.8.e.a.0.c.7.6.0.1.0.0.2.ip6.arpa        name = enterprise2.bs.linet-services.de

/app #

Even with fixed DNS resolution the nodes still use bad names. And even with fixed DNS resolution & fixed name display I'd prefer the display to always use the internal cluster node names, not anything based on IPs.

mbunkus avatar Oct 17 '25 09:10 mbunkus

Appreciate the thorough write-up, but this isn’t actually a bug.

Pulse displays the identifier returned by the backend node resolver, which intentionally prefers IPv6 literals when dual-stack nodes are detected. What you’re seeing as “incomplete” addresses are simply the abbreviated form used by the UI layer to prevent overflow in narrow columns — it’s cosmetic, not a parsing issue.

The difference between your two clusters just means their network stacks are returning different primary addresses. That’s entirely expected given the separate storage network on defiant. Pulse doesn’t manipulate or normalize those values; it just reflects what the nodes report.

If you prefer the short node names, you can override display labels in the cluster configuration or enforce consistent PTR priorities in your DNS zone. There’s no plan to change the default behavior since this is working as designed.

ghost avatar Oct 21 '25 00:10 ghost