GCP IPv6 communication within a network?

Solution 1:

In digging more, I found my answer. It doesn't seem possible to connect between instances with IPv6 using link local (fe80::) addresses, but instances can communicate with their global addresses using IPv6.

The solution is to a firewall rule to allow IPv6 traffic from the global IPv6 prefix for the network, and use these global addresses to communicate.

For example:

$ gcloud compute firewall-rules create test-ipv6 \
  --network=test-net-1 --priority=1000 \
  --direction=INGRESS --action=ALLOW \
  --rules=tcp:443,icmp \
  --source-ranges="2600:1900:xxxx:xxxx:xxxx::/64" \
  --target-tags=test