Working Matter device link local doesn't ping. Bad interface metric?

Set up my first Matter devices today - Wiz downlights I picked up from Bunnings.

I had a hell of a time trying to get them to work with Matter, I’m not sure if it was the solution but I had to enable DHCPv6 on my router before they’d complete the pairing process. I was looking around at all the options once they were connected just to see what Matter offered, and I ran a ping on the globes. The ping result showed connectivity on the IPv4 address, the IPV6 GUA from the DHCPv6 server, however the link local address failed.

Naturally I did some testing, I can ping the link-local address from my laptop, the HA SSH terminal, unraid etc, however cannot ping it from the Matter container’s terminal.

Home assistant has a link-local address which I can also ping from my laptop.

I am running HA on an Unraid VM if that helps.

It is currently working normally and I generally follow “if it ain’t broke don’t fix it”, however as I’ve read DHCPv6 isn’t required and Matter is based purely on IPv6, it makes me think that the link-local address should respond and that I should try and resolve this to prevent further problems.

Any ideas?

So, update – Yes, this is potentially bad. I had some issues with the GUA addresses not responding (probably my router).

I’ve done some more digging, and found the reason it cannot ping.
To recap: I can ping the Link-Local address from my laptop, home assistant terminal, and the unraid terminal, but the ping fails per the screenshot above.

If I load up bash in the matter container, I cannot ping the address either, unless I specify %enp1s0 at the end. Looking at the routing table, the host adaptor has the highest metric out of all the fe80 addresses listed for other veth interfaces.
I cannot seem to adjust the routing table as it says permission denied, however I suspect that is the root cause for my problems.

Is this an error with the container? Or something I need to rectify?

Appreciate any help

Link-Locals are scoped only to a link (LAN or VLAN). If you have say two LANs/VLANs, then the same link-local addresses (theoretically) can exist on both. When you do a ping, the IP stack doesn’t know which interface to pick from, so the user (at least on linux) has has to specify the interface (enp1s0) to ping across. Also, in general, one doesn’t really setup routes to link locals. Does this help?

Thanks @wmaker
I don’t have multiple LANs, but the container has multiple virtual ethernet devices all with their own link local address.
My understanding is that if you dont specify the interface with the ping command it will use the one with the lowest metric.
In the case of the Matter container, this isn’t ens1p0.

However, last night I enabled the beta option for Python Matter Server and now it can ping the link-local addresses of the bulbs, so I’m assuming it may have been an issue with the previous version (either not having the correct metric or not specifying the interface to ping in the code).

So for now, case closed