DNS64 と NAT64 を使用して IPv6 専用サブネットとインスタンスを構成する
このページでは、IPv6 のみのサブネットとインスタンスを作成し、DNS64 と NAT64 を構成して、IPv6 のみのインスタンスから IPv4 宛先にアクセスできるようにする方法について説明します。
Google Cloudの IPv6 から IPv4 への接続の概要については、6to4 接続の DNS64 と NAT64 をご覧ください。
始める前に
このページの手順では、IPv6 アドレス範囲を持つサブネットを作成できるように、カスタムモードの Virtual Private Cloud(VPC)ネットワークが必要です。詳細については、IPv6 専用サブネットを持つカスタムモードの VPC ネットワークを作成するをご覧ください。
内部 IPv6 アドレスを持つサブネットをサポートする VPC ネットワークを作成する場合は、ネットワークの作成時に ULA 内部 IPv6 範囲を構成する必要があります。既存のネットワークがある場合は、ネットワークに内部 IPv6 範囲を割り当てることができます。
IPv6 専用のサブネットとインスタンスを作成する
このセクションでは、IPv6 専用のサブネットとインスタンスを作成する方法について説明します。IPv6 専用のサブネットとインスタンスがすでにある場合は、DNS64 と NAT64 を構成するに進みます。
IPv6 専用サブネットを作成する
外部または内部 IPv6 アドレスを有効にして、IPv6 のみのサブネットを作成できます。
IPv6 専用のサブネットを作成する手順は次のとおりです。
コンソール
Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
[VPC ネットワークの詳細] ページを表示するには、VPC ネットワークの名前をクリックします。
[サブネット] タブで、
[サブネットを追加] をクリックします。表示されるパネルで、次の手順を実施します。- 名前を入力します。
- リージョンを選択します。
- [IP スタックタイプ] で [IPv6(シングルスタック)] を選択します。
IPv6 アクセスタイプ(内部または外部)を選択します。
アクセスタイプを [内部] に設定する必要があるが、[内部] オプションを使用できない場合は、ネットワークで内部 IPv6 範囲が割り当てられていることを確認してください。
[追加] をクリックします。
gcloud
gcloud compute networks subnets create
コマンドを使用します。
gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --stack-type=IPV6_ONLY \ --ipv6-access-type=IPv6_ACCESS_TYPE \ --region=REGION
次のように置き換えます。
SUBNET
: 新しいサブネットの名前。NETWORK
: 新しいサブネットを含む VPC ネットワークの名前。IPv6_ACCESS_TYPE
: IPv6 アクセスタイプ。アクセス タイプはEXTERNAL
またはINTERNAL
です。REGION
: 新しいサブネットを作成するリージョン。 Google Cloud
API
subnetworks.insert
メソッドに POST
リクエストを送信します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "network": "NETWORK_URL", "name": "SUBNET" "stackType": IPV6_ONLY, "ipv6AccessType": IPv6_ACCESS_TYPE }
次のように置き換えます。
PROJECT_ID
: 変更する VPC ネットワークを含むプロジェクトの ID。REGION
: サブネットが追加されるリージョンの名前。 Google CloudNETWORK_URL
: サブネットを追加する VPC ネットワークの URL。SUBNET
: サブネットの名前。IPv6_ACCESS_TYPE
: IPv6 アクセスタイプ。アクセス タイプはEXTERNAL
またはINTERNAL
です。
IPv6 専用インスタンスを作成する
コンソール
[インスタンスの作成] ページに移動します。
インスタンスの名前を入力します。
IPv6 範囲が構成されたサブネットを含むリージョンを選択します。
省略可: このインスタンスのゾーンを変更します。[任意] を選択すると、マシンタイプと可用性に基づいてゾーンが自動的に選択されます。
[詳細オプション] セクションを開きます。
[ネットワーキング] を開いて、次の操作を行います。
[ネットワーク インターフェース] セクションで、ネットワーク インターフェース名をクリックして、ネットワーク インターフェースの設定を編集します。
[ネットワーク] と [サブネットワーク] で、使用するネットワークとサブネットワークを選択します。
IPv6 専用サブネットを選択します。サブネットの IPv6 アクセスタイプによって、インスタンスが内部 IPv6 アドレスを受け取るのか、外部 IPv6 アドレスを受け取るのかが決まります。
[IP スタックタイプ] で [IPv6(シングルスタック)] を選択します。
インターフェースの IPv6 アドレスについては、接続されたサブネットのアクセスタイプに応じて、次の操作を行います。
- [プライマリ内部 IPv6 アドレス] で次のいずれかを選択します。
- 自動割り当て: 新しいエフェメラル内部 IPv6 アドレスを自動的に割り当てます。
- リストから予約された静的内部 IPv6 アドレス。
- 静的内部 IPv6 アドレスを予約: 新しい静的内部 IPv6 アドレスを予約して割り当てます。
- [外部 IPv6 アドレス] で次のいずれかを選択します。
- 自動割り当て: 新しいエフェメラル外部 IPv6 アドレスを自動的に割り当てます。
- リストから予約された静的外部 IPv6 アドレス。
- 静的外部 IPv6 アドレスを予約: 新しい静的外部 IPv6 アドレスを予約して割り当てます。
- [プライマリ内部 IPv6 アドレス] で次のいずれかを選択します。
ネットワーク インターフェースの変更を終了するには、[完了] をクリックします。
インスタンス作成処理を続けます。
[作成] をクリックします。
gcloud
gcloud compute instances create
コマンドを使用してインスタンスを作成します。
gcloud compute instances create INSTANCE_NAME \ --zone ZONE \ --network-interface=network=NETWORK,subnet=SUBNET,stack-type=IPV6_ONLY
次のように置き換えます。
INSTANCE_NAME
: インスタンスの名前。ZONE
: インスタンスを作成するゾーン(europe-west1-b
など)。インスタンスのリージョンはこのゾーンから推測されます。NETWORK
: インスタンスを作成するネットワークの名前。SUBNET
: インスタンスを作成するサブネットの名前。
API
instances.insert
メソッドを使用してインスタンスを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "NAME", "disks": [ { "initializeParams": { "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET", "stackType": "IPV6_ONLY" } ] }
次のように置き換えます。
PROJECT_ID
: インスタンスが含まれているプロジェクトの ID。ZONE
: インスタンスを含むゾーン。MACHINE_TYPE_ZONE
: 新しいインスタンスに使用するマシンタイプを含むゾーン。MACHINE_TYPE
: 新しいインスタンスのマシンタイプ(事前定義またはカスタム)。例:c3-standard-4
。NAME
: インスタンスの名前。IMAGE_PROJECT
: 省略可。イメージを含むイメージ プロジェクト。IMAGE
: 省略可。次のいずれかを指定します。- OS イメージの特定のバージョン。例:
debian-12-bookworm-v20241009
。 - イメージ ファミリー。
family/IMAGE_FAMILY
の形式にする必要があります。これにより、非推奨ではない最新の OS イメージからインスタンスが作成されます。たとえば、family/debian-12
を指定すると、Compute Engine は Debian 12 イメージ ファミリーの OS イメージの最新バージョンを使用してインスタンスを作成します。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。
- OS イメージの特定のバージョン。例:
REGION
: インスタンスが含まれるリージョン。SUBNET
: ネットワーク インターフェースが配置されているサブネット。
DNS64 と NAT64 を構成する
このセクションでは、DNS64 と NAT64 の両方を構成する方法について説明します。これにより、IPv6 専用インスタンスから IPv4 宛先にアクセスできます。
DNS64 サーバー ポリシーを作成する
Cloud DNS が各 IPv4 宛先に合成 IPv6 アドレスを提供するように、DNS64 サーバー ポリシーを作成して構成します。
DNS64 サーバー ポリシーの作成と管理の詳細については、DNS64 を構成するをご覧ください。
DNS64 サーバー ポリシーを作成するには、次の操作を行います。
コンソール
Google Cloud Console で、[Cloud DNS] ページに移動します。
[DNS サーバー ポリシー] タブで、[ポリシーを作成] をクリックします。
[名前] フィールドに、ポリシーの名前を入力します。
省略可: [説明] フィールドにポリシーの説明を入力します。
[DNS64] で [オン] を選択して DNS64 を有効にします。
[ネットワーク] フィールドで、ポリシーを作成する VPC ネットワークを選択します。IPv6 専用のサブネットとインスタンスを含むネットワークを選択します。
gcloud
DNS64 サーバー ポリシーを作成するには、gcloud dns policies
create
コマンドを実行します。
gcloud beta dns policies create NAME \ --description=DESCRIPTION \ --networks=VPC_NETWORK_LIST \ --enable-dns64-all-queries
次のように置き換えます。
NAME
: ポリシーの名前。DESCRIPTION
: ポリシーの説明。VPC_NETWORK_LIST
: DNS サーバー ポリシーがバインドする VPC ネットワークのカンマ区切りのリスト。IPv6 専用のサブネットとインスタンスを含むネットワークを指定します。
API
DNS64 サーバー ポリシーを作成するには、policies.create
メソッドを使用します。
POST https://dns.googleapis.com/dns/beta/projects/PROJECT_ID/policies { "kind": "dns#policy", "networks": [ { "kind": "dns#policyNetwork", "networkUrl": "NETWORK_URL" } ], "dns64Config": { "scope": { allQueries: true, } } }
以下を置き換えます。
PROJECT_ID
: プロジェクト ID。NETWORK_URL
: DNS サーバー ポリシーがバインドする必要がある VPC ネットワークの完全修飾 URL。形式はhttps://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
です。IPv6 専用のサブネットとインスタンスを含むネットワークを指定します。
Cloud NAT ゲートウェイを作成して NAT64 を有効にする
IPv6 のみのサブネットとインスタンスを含む VPC ネットワークとリージョンに Cloud NAT ゲートウェイを作成して、パブリック NAT を構成します。
Cloud NAT ゲートウェイの作成と管理の詳細については、Public NAT でネットワーク アドレス変換を設定、管理するをご覧ください。
NAT64 用の Cloud NAT ゲートウェイを作成するには、次の操作を行います。
コンソール
Google Cloud コンソールで、[Cloud NAT] ページに移動します。
[開始] または
[Cloud NAT ゲートウェイを作成] をクリックします。[ゲートウェイ名] フィールドに、ゲートウェイの名前を入力します。
[NAT タイプ] で、[パブリック] を選択します。
[Cloud Router の選択] セクションで、次の構成を行います。
- [ネットワーク] フィールドで、ゲートウェイを作成する VPC ネットワークを選択します。
- [リージョン] フィールドで、ゲートウェイのリージョンを設定します。
- [Cloud Router] フィールドで、リージョンの Cloud Router を選択または作成します。
[Cloud NAT マッピング] セクションの [送信元エンドポイントのタイプ] で、[VM インスタンス、GKE ノード、サーバーレス] オプションが選択されていることを確認します。
[送信元 IP バージョン] フィールドで [IPv6 サブネット範囲] を選択し、Cloud NAT を使用する送信元 IPv6 サブネット範囲を構成します。
- リージョン内のすべてのサブネットの内部 IP 範囲と外部 IP 範囲に Cloud NAT を使用するには、[すべてのサブネット] を選択します。
- Cloud NAT を使用できるサブネットを制限するには、[カスタム] を選択し、次の操作を行います。
- [サブネット] セクションで、サブネットを選択します。
- 省略可: サブネットをさらに指定する場合は、[サブネットを追加] をクリックして別のサブネットを追加します。
Cloud NAT ゲートウェイの追加オプションを構成します。詳細については、Cloud NAT のドキュメントの Cloud NAT ゲートウェイを作成するをご覧ください。
[作成] をクリックします。
gcloud
このセクションでは、すべての構成オプションをデフォルト値に設定して Cloud NAT ゲートウェイを作成する方法について説明します。ゲートウェイ構成のカスタマイズの詳細については、Cloud NAT ゲートウェイの構成設定をカスタマイズするをご覧ください。
Cloud NAT ゲートウェイを作成するには、gcloud compute routers nats create
コマンドを使用します。
Cloud NAT ゲートウェイを使用するリージョンに Cloud Router を作成します。Cloud NAT ゲートウェイを作成するには、この Cloud Router が必要です。
IPv6 送信元サブネット範囲に Cloud NAT を構成します(プレビュー版)。
次の構成では、リージョン内のすべての IPv6 サブネット範囲(IPv6 のみのサブネットとデュアルスタック サブネットの両方)で NAT が有効になります。または、
--nat64-custom-v6-subnet-ip-ranges
フラグを使用して特定のサブネットの NAT を構成することもできます。gcloud beta compute routers nats create NAT_CONFIG \ --router=NAT_ROUTER \ --region=REGION \ --auto-allocate-nat-external-ips \ --nat64-all-v6-subnet-ip-ranges
次のように置き換えます。
NAT_CONFIG
: NAT 構成の名前。NAT_ROUTER
: 前の手順で作成した Cloud Router の名前。REGION
: Cloud NAT ゲートウェイを使用するリージョン。
API
API を使用して Cloud Router と Cloud NAT ゲートウェイを作成するには、routers.insert
メソッドを使用して nats[]
フィールドを設定します。
このセクションでは、すべての構成オプションをデフォルト値に設定して Cloud NAT ゲートウェイを作成する方法について説明します。ゲートウェイ構成のカスタマイズの詳細については、Cloud NAT ゲートウェイを作成するをご覧ください。
Cloud Router の作成の詳細については、VPC ネットワークをピア ネットワークに接続する Cloud Router を作成するをご覧ください。
次の構成では、リージョン内のすべての IPv6 サブネット範囲で NAT が有効になります。または、sourceSubnetworkIpRangesToNat64
を LIST_OF_IPV6_SUBNETWORKS
に設定し、nats[].nat64Subnetworks[]
フィールドにサブネットを指定して、特定のサブネットの NAT を構成することもできます。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers { "name": "ROUTER_NAME", "network": "NETWORK", "bgp": { "asn": "ASN_NUMBER" }, "nats": [ { "name": NAT_CONFIG, "sourceSubnetworkIpRangesToNat64": ALL_IPV6_SUBNETWORKS, "natIpAllocateOption": AUTO_ONLY } ] }
次のように置き換えます。
PROJECT_ID
: VPC ネットワークを含むプロジェクトの ID。REGION
: Cloud Router と Cloud NAT ゲートウェイを配置するリージョン。ROUTER_NAME
: Cloud Router の名前。この名前は Google Cloud コンソールに表示され、Google Cloud CLI で Cloud Router を参照するために使用されます。NETWORK
: Cloud Router と Cloud NAT ゲートウェイを作成する VPC ネットワーク。ASN_NUMBER
: 構成している Cloud Router のプライベート ASN(64512
-65534
、4200000000
-4294967294
)。この ASN は、同じリージョンとネットワークでまだピア ASN として使用していない任意のプライベート ASN を指定できます(例:65001
)。Cloud Router ではプライベート ASN を使用する必要がありますが、オンプレミス ASN はパブリックまたはプライベートにできます。NAT_CONFIG
: NAT 構成の名前。
次のステップ
- VPC ネットワークとサブネットの管理については、VPC ネットワークの作成と管理をご覧ください。
- IPv6 専用インスタンスの詳細については、インスタンスとインスタンス テンプレートの IPv6 アドレスを構成するをご覧ください。
- DNS64 サーバー ポリシーの作成と管理の詳細については、DNS64 を構成するをご覧ください。
- Cloud NAT ゲートウェイの作成と管理の詳細については、Public NAT でネットワーク アドレス変換を設定、管理するをご覧ください。