The right address to multicast to all nodes on a link is ff02::1%<interface>
. You probably forgot the interface ID, which is required for link-scoped addresses.
For example:
# ping6 ff02::1%br0
PING ff02::1%br0(ff02::1) 56 data bytes
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=1 ttl=64 time=0.455 ms (DUP!)
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=1 ttl=64 time=0.650 ms (DUP!)
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=2 ttl=64 time=0.203 ms (DUP!)
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=2 ttl=64 time=0.241 ms (DUP!)
64 bytes from fe80::6e62:6dff:fed1:dfad: icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from fe80::5054:ff:fe90:de19: icmp_seq=3 ttl=64 time=0.237 ms (DUP!)
64 bytes from fe80::5054:ff:fede:b69c: icmp_seq=3 ttl=64 time=0.254 ms (DUP!)
^C
--- ff02::1%br0 ping statistics ---
3 packets transmitted, 3 received, +6 duplicates, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.046/0.244/0.650/0.189 ms
Addresses in ff01::/16
are for interface-local multicast, which is only really useful to multicast to the local host.
References: RFC 4291
I had the same niggling issue -- ipv4 and ipv6 both work, but if I try to ping (or browse etc.) any name with an IPv4 A record, Windows would always prefer that over the v6 (AAAA) address. There is logic inside the network stack that sorts the addresses from a DNS query to choose which to prefer. In my case, it was preferring the v4 addresses because my Wifi interface supports wake-on-LAN aka always-on-always-connected (AOAC), but apparently only for IPv4.
There's an ETW trace point you can enable to find out exactly what is happening when it sorts the addresses; here's an example of how to do that using the built-in netsh tool. I'm using www.google.com as an example, but any host with both A and AAAA records should work.
netsh trace start provider=Microsoft-Windows-TCPIP level=5 keywords=ut:TcpipRoute
ping -n 1 www.google.com
netsh trace stop
netsh trace convert %TEMP%\NetTraces\NetTrace.etl
Now, look in the nettrace.txt
file that it wrote, and hopefully you'll find a clue. In my case, it was:
[Microsoft-Windows-TCPIP]IP: Address pair (::ffff:192.168.1.100, ::ffff:74.125.28.99) is preferred over (2601:XXX:XXX:XXX:XXX:XXX:XXX:XXX, 2607:f8b0:400e:c04::67) by SortOptions: 0, Reason: Prefer Aoac Interface (Rule D 1.1).
(where XXX is my public IPv6 address that I've redacted).
I don't know if there is any way to override this specific rule (now I know why it's making that choice, I'm comfortable enough leaving it as-is).
Best Answer
You can edit each network adapter and uncheck the IP6 binding; in your case edit the Hyper-V Virtual adapter. You may need to reboot for it to take effect. You should no longer have an IP6 address assigned to the adapter. Note you technically have a build Micorosft can say they will not support, but if that is the case, you can re-enable it for the support call. Good luck!