![GCP ネットワーク内での IPv6 通信?](https://rvso.com/image/768921/GCP%20%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%86%85%E3%81%A7%E3%81%AE%20IPv6%20%E9%80%9A%E4%BF%A1%3F.png)
IPv6 サービス経由で通信する必要がある複数のホストを含む VPC をセットアップしています。これらの各インスタンスは 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 接続を確立したりすることはできません。
同じネットワーク上の 2 つの 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