我有一个 VPC 设置,其中有多个主机需要通过 IPv6 服务进行通信。每个实例都配置了 IPv6,可以使用 IPv6 成功 ping 并连接到外部主机。我创建了一条防火墙规则,使它们能够相互通信(主机标记为“测试”):
$ gcloud compute firewall-rules create target-all-ipv6 \
--network=test-net-1 --priority=1000 \
--direction=INGRESS --action=ALLOW \
--rules=all \
--source-ranges="fe80::/10" \
--target-tags=test
但是,通过此设置,我无法使用本地 f80 地址在这些实例之间 ping 或建立任何 IPv6 连接。
同一网络上的两个 GCP 实例是否可以通过 IPv6 进行通信?
答案1
经过进一步挖掘,我找到了答案。似乎无法使用链路本地 (fe80::) 地址在 IPv6 实例之间建立连接,但实例可以使用 IPv6 与其全局地址进行通信。
解决方案是制定防火墙规则以允许来自网络的全局 IPv6 前缀的 IPv6 流量,并使用这些全局地址进行通信。
例如:
$ 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