GCP、Linux VM インスタンスの基本的な IPv6 設定

GCP、Linux VM インスタンスの基本的な IPv6 設定

Google Cloud Platform で、ipv6.google.com に正常に ping できるシンプルな VM をセットアップしようとしています。IPv6 サポートに関する以下の GCP ドキュメントを使用しています:

[注記: 使用されたコマンド全体を提供するために編集/更新されました]

ここに、シンプルで繰り返し可能な概念実証を示します。

  1. プロジェクト内でVPCネットワークを作成する
$ gcloud config set project my-test-project

$ gcloud compute networks create targetnet \
   --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional
  1. IPv6 をサポートするサブネットを作成する
$ gcloud compute networks subnets create targetnet-1 \
   --network=targetnet --range=10.9.9.0/24 \
   --stack-type=IPV4_IPV6 --ipv6-access-type=EXTERNAL \
   --region=us-west2
  1. IPv6をサポートするインスタンスを作成する
$ gcloud compute instances create test-1 \
   --stack-type=IPV4_IPV6 --ipv6-network-tier=PREMIUM \
   --subnet=targetnet-1 --zone=us-west2-a \
   --image-family=debian-10 --image-project=debian-cloud \
   --machine-type=e2-micro 
  1. インスタンスへのSSHアクセスを許可するファイアウォールルールを追加する
$ gcloud compute firewall-rules create target-ssh-home \
   --network targetnet --allow tcp:22 --source-ranges <my IPv4 addr>
  1. インスタンスに SSH で接続し、ネットワーク アドレスとルートを確認します。
$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 state UP qlen 1000
    inet6 2600:1900:xxxx:xxxx:0:1::/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::4001:aff:fe04:2d2/64 scope link 
       valid_lft forever preferred_lft forever

$ ip -6 route
::1 dev lo proto kernel metric 256 pref medium
2600:1900:xxxx:xxxx:0:1:: dev ens4 proto kernel metric 256 pref medium
fe80::/64 dev ens4 proto kernel metric 256 pref medium
default via fe80::4001:aff:fe04:201 dev ens4 proto ra metric 1024 expires 85sec pref medium
  1. 外部 IPv6 リソースへの ping を試みます:
$ ping6 ipv6.google.com
PING ipv6.google.com(lax31s01-in-x0e.1e100.net (2607:f8b0:4007:80e::200e)) 56 data bytes
From fe80::4001:ff:fe00:0%ens4 (fe80::4001:ff:fe00:0%ens4): icmp_seq=1 Destination unreachable: No route

ドキュメントによると、ファイアウォールのデフォルトでは ICMP の送信が許可されるはずです。それでも、さまざまな形式で ICMP (およびすべての) サービスを許可するファイアウォール ルールを追加して、それが役立つかどうかを確認してみました。結果は変わりませんでした。また、GCP がネットワークのデフォルトの IPv6 ルートを追加したことも確認しました。(::/0)。

ドキュメントによると、GCP は /64 を提供し、NIC にはその範囲の最初のアドレスを割り当てる必要があります。ここにはそれが見当たりません。これを取得するには、ホストで何かを行う必要がありますか? または、GCP で必要なのに私が見逃している何かがありますか?

答え1

外部 IPv6 アドレス経由で VPC から Google API およびサービスに接続することは、現在サポートされていません。IPv6 経由で Cloud VM から「ipv6.google.com」に ping しようとすると、宛先に到達できない ICMP 応答が返されることがよくあります。
おっしゃった手順で設定を再現しましたが、ipv6.google.com に ping しようとしたときに同じ「宛先に到達できません: ルートがありません」というエラーが表示されました。ただし、「wikipedia.org」などの他の IPv6 サイトには問題なく ping できました。

ここに画像の説明を入力してください

さらに、IPv6ネットワークでVMを最大限に活用するには、GCPを組み込むことをお勧めします。IPv6 対応の負荷分散

関連情報