インスタンスとインスタンス テンプレートでの IPv6 の構成

接続先のサブネットで外部 IPv6 アドレスが有効になっている場合は、仮想マシン インスタンス(VM)で外部 IPv6 アドレスを構成できます。サブネットでの外部 IPv6 アドレスの有効化は一部のリージョンでサポートされています。

IPv6 サポートの詳細については、IPv6 アドレスをご覧ください。

仕様

  • IPv6 アドレスは、VM のプライマリ ネットワーク インターフェース(nic0)でのみサポートされます。

  • IPv6 アドレス範囲を構成している場合でも、VM のプライマリ ネットワーク インターフェースには常に内部 IPv4 アドレスを設定する必要があります。この構成はデュアル スタックとも呼ばれます。

  • VM は IPv4 経由でのみメタデータ サーバーに接続できます(IP アドレス 169.254.169.254 を使用します)。

制限事項

現在、Google API とサービスへの接続に外部 IPv6 アドレスを使用できません。こうした接続を行うと、destination unreachable ICMP レスポンスが返されます。ほとんどのアプリケーションは透過的に IPv4 にフォールバックします。

VM に外部 IPv4 アドレスがない場合は、限定公開の Google アクセスを使用して Google API とサービスにアクセスできます。VM に外部 IPv4 アドレスがある場合は、外部 IP アドレスを持つ VM から Google API にアクセスできます。VM に外部 IPv4 アドレスがあるかどうかにかかわらず、Private Service Connect を使用できます。

IPv6 アドレスの割り当て

VM には、DHCPv6 を使用して外部 IPv6 アドレスが割り当てられます。メタデータ サーバーは VM の DHCPv6 リクエストに応答し、それに応じて、割り当てられた /96 IP 範囲から最初の IP アドレスを送信します。アプリケーションは、/96 の範囲内にある任意の IP アドレスを使用して、インターネットや他の VM に接続できます。

メタデータ サーバーは、ルート アドバタイズを使用してデフォルト ルートを VM に公開します。これにより、VM はすべての IPv6 トラフィックにこのデフォルト ルートを使用できます。

Linux VM では、AnyIP を使用してアプリケーションがこの範囲内の IP アドレスにバインドされるようにします。

Windows では、ネットワーク インターフェースへの単一の IP アドレス(/128 IP 範囲)の割り振りがサポートされています。Windows のネットワーク インターフェースに /96 IP 範囲全体を割り当てることはできません。ただし、その /96 IP 範囲内にある複数の単一 IPv6 アドレスを同じインターフェースに割り当てることができます。

VM のプライマリ インターフェースには、IPv4 アドレスと IPv6 アドレスの両方が表示されます。VM は fe80::/10 範囲から割り振られたリンクのローカル IP アドレスを参照できますが、近隣探索にのみ使用されます。

MTU は IPv4 と同じです。

VM を作成して IPv6 を有効にする

外部 IPv6 アドレスを持つ VM を作成するには、接続しているサブネットで外部 IPv6 アドレスが有効になっている必要があります。

gcloud

gcloud compute instances create INSTANCE_NAME \
  --ipv6-network-tier=PREMIUM \
  --subnet=SUBNET_NAME \
  --stack-type=IPV4_IPV6 \
  --zone=ZONE

次のように置き換えます。

  • INSTANCE_NAME: インスタンスの名前。
  • SUBNET_NAME: インスタンスの接続先のサブネット。サブネットで IPv6 を有効にする必要があります。
  • ZONE: インスタンスをデプロイするゾーン。

既存の VM で IPv6 を有効にする

VM が接続されているサブネットで外部 IPv6 アドレスが有効になっている場合にのみ、VM で外部 IPv6 アドレスを構成できます。

gcloud

gcloud compute instances network-interfaces update INSTANCE_NAME \
  --ipv6-network-tier=PREMIUM \
  --stack-type=IPV4_IPV6 \
  --zone=ZONE

次のように置き換えます。

  • INSTANCE_NAME: インスタンスの名前。
  • ZONE: インスタンスをデプロイするゾーン。

VM で IPv6 を無効にする

gcloud

gcloud compute instances network-interfaces update INSTANCE_NAME \
  --stack-type=IPV4_ONLY

次のように置き換えます。

  • INSTANCE_NAME: インスタンスの名前。

IPv6 アドレスを持つインスタンス テンプレートを作成する

テンプレートで作成した VM に、外部 IPv6 アドレスを構成するインスタンス テンプレートを作成できます。インスタンス テンプレートの作成の詳細については、インスタンス テンプレートの作成をご覧ください。

gcloud

gcloud compute instance-templates create TEMPLATE_NAME \
  --ipv6-network-tier=PREMIUM \
  --stack-type=IPV4_IPV6

次のように置き換えます。

  • TEMPLATE_NAME: テンプレートの名前。

IPv6 アドレスを使用して VM にアクセスする

暗黙の IPv6 拒否上り(内向き)ファイアウォール ルールは、IPv6 アドレスへの受信接続をブロックすることでインスタンスを保護します。IPv6 アドレスを使用して VM にアクセスするには、受信アクセスを許可する優先度の高いルールが必要です。ファイアウォール ルールの詳細については、VPC ファイアウォールの概要階層型ファイアウォール ポリシーの概要をご覧ください。