I'm having trouble to get my router to discover my macOS laptop's IPv6 address. The problem seems to be in the neighbour discovery. Tapping the traffic with tcpdump, that the routers sends neighbor solicitation messages like these:
02:28:50.006540 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fd26:e9f1:e833::1 > ff02::1:ff65:88f8: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has 2404:7a80:9621:7100:404:978a:5765:88f8 source link-address option (1), length 8 (1): 18:a6:f7:8d:c0:d3
fd26:e9f1:e833::1 is an ULA associated with the
ff02::1:ff65:88f8 is the multicast address and
2404:7a80:9621:7100:404:978a:5765:88f8 is the global IPv6 address of the macOS laptop. The prefix is correct, and the address should be okay.
However, macOS doesn't answer to these messages at all, so the router doesn't find it. Doing
ip -6 neigh on the router shows that it knows about the GUA
2404:7a80:9621:7100:404:978a:5765:88f8, but it doesn't know the associated MAC address, and shows only a failed probe count.
I happend to find this bug / problem report about macOS ignoring neighbor solicitations with GUA as a source address: https://discussions.apple.com/thread/8620806 This made me think that the same might apply to messages with ULA as a source address.
So, I'd like to try out: maybe my IPv6 connectivity problem will get fixed if my router sent messages with link-local address instead of ULA or GUA. Is there any way to make it do so?