Matter device IPv6 prefix mismatch to Border Router IPv6 prefix

I currently have a Matter network that is functioning, though after digging into some changes I wanted to make I don’t know how my Matter network is working.

Home Assistant and all of my IOT devices are on the same IOT VLAN. When I want to add a new Matter device, I just switch my phone over to the IOT VLAN temporarily to add the device then switch back to my standard “LAN” VLAN.

I was investigating mDNS Repeater on my Mikrotik router with the idea I could avoid switching the network on my phone.

My LAN VLAN has an IPv6 network provided by my ISP. The rest do not. (AT&T only hands out a /64).

Long story short while trying to figure out why Home Assistant (on bare Raspberry Pi) wasn’t routing traffic to the IPv6 prefix listed in the Thead diagnostic file (fdb3:6ccd...) that was being directed to it I discovered that all of the actual devices (only 2 so far) are in the prefix fdc9:3a9a.... And sure enough when attempt to ping these devices via the “Ping device” feature in the HAOS interface it fails to ping the fdc9 prefix but successfully pings the link local and IPv4 unicast address.

I suppose these could be working over IPv4 (they seem to be hybrid) or the link local IPv6 address. But where on earth is the fdc9 prefix coming from? Furthermore the wpan0 interface in HAOS doesn’t even have a fdc9 prefix assigned. It’s fdb3 as reflected in the Thread diagnostic file.

I do not have any other border routers though a couple of months ago I did delete the first Thread network I created and created a new one. The original network is no longer visible in the interface and the new is and has been working successfully.

I have rejoined my devices to the current network which have been functioning.

The Thread network uses a few IPv6 networks (i.e. prefixes) that are for use just within the radio mesh, and it uses one IPv6 network prefix that it advertises as a route to so that systems outside Thread network that can be reach a Thread device.

Thread requires that the LAN side of the TBR have an IPv6 network/prefix that allows for routing to/from the LAN side of the TBR from/to the mesh side. This prefix may (or may not be) assigned by the TBR.

When the OTBR is an AddOn with Home Assistant, all of these various prefixes are known by the Linux kernel because it knows about wpan0 which has all of these Thread prefixes and it knows about the Ethernet interface prefixes too. So in all, HA knows about lots of IPv6 prefixes.

From what I can tell (at least in my case), this prefix is one of those prefixes that is only for use within the Thread mesh.

You didn’t mention where in HA you found this, but I find it is best to use the device page (the Matter device page), to find the device’s IPv6 address, as that should be the address that is reachable by the Matter Server from the LAN side of the TBR to get to that device.

I’m not sure what feature you mean here… The “Ping Device” feature is usually on the Device page for that device, but sounds like you mean somewhere else.

Maybe… if you have ssh access to HA do: ip -6 route