Since June I got an IPv6 subnet from my ISP. I'm using an Asus AC-66U router which is configured to get a native IPv6 prefix. The prefix length is 56 and the router is configured for stateless configuration. All devices in my LAN are able to obtain an IPv6 address (both link-local and a global one) using IPv6 autoconfiguration.
I have an older computer that's being set-up as a server. It's running Ubuntu 16.04.1 LTS and uses QEMU-KVM to run virtual machines. The host and all of the virtual machines are set-up to have a static IPv6 address, which seems to work on all of them.
The problem I seem to be having is that when I boot the server, I can properly ping (ping6 on MacOS) the server and the virtual machines from any LAN device with an IPv6 address. However, after approximately 3 - 5 minutes this does not longer work on my Macbook Pro, which is connection over WiFi. All other devices in my LAN seem to not be affected by this problem. The ping6 return a 100% packet loss, and I know it's not the actual IPv6 connection, as I can still ping other IPv6 devices, both LAN and remote. I can ping the Macbook Pro from one of the servers just fine and the servers are still pingable from any other device, even outside my LAN.
I did some tests and came across something very weird. When looking at "tcpdump icmp6" on both my Macbook Pro and one of the servers while trying to ping the server from my Macbook Pro, it seems to be sending a neighbor solicitation. However, the solicitation seems to never reach the server. When executing "ndp -an" on my Macbook Pro, I can see that the Linklayer Address is (incomplete), which means it did not get a reply (neighbor advertisement) from the server.
It's very annoying that the Macbook Pro is not able to connect to any of my servers after a short period of time. Note that this problem is not global for the host and the virtual machines. Each device is having this issue separately. If I boot the server I can successfully ping the host. Approximately 3 - 5 minutes later I can no longer ping the host and the neighbor discovery reports (incomplete) again. But I can still ping one of the virtual machines, which then is having the same issue after 3 - 5 minutes.
This seems to me like a MacOS problem or a incompatibility issue between Ubuntu and MacOS. I'm running out of ideas about what could actually be wrong and why the Macbook Pro is not able to send it's solicitation to the server (I think it's not even arriving). One thing I've notices is when pinging the server using it's local IPv4 address, the neighbor discovery is working, although it did never receive a solicitation on the server, temporary fixing the IPv6 connection between the two devices again. I have no idea why the neighbor is successfully discovered when pinging it's IPv4 address without even getting a solicitation on the server or even a advertisement on my Macbook Pro from the server. Another strange thing is that the issue does not seem to be happening when connecting my Macbook Pro with an ethernet cable. Could this be a WiFi issue on my router then?