Google Cloud ネットワークを IPv4 から IPv6(デュアルスタック)に移行する
Google Cloud Japan Team
※この投稿は米国時間 2023 年 5 月 19 日に、Google Cloud blog に投稿されたものの抄訳です。
前回のブログ記事では、Google Cloud での IPv6 ネットワークの計画方法についてご紹介しました。このブログでは、既存の Google Cloud ネットワークを IPv6 に移行する方法について説明します。今回は、(インターネットへの)外部アクセスに使用されている既存の Compute Engine VM インスタンスを IPv4 から IPv6(デュアル スタック)に移行することに範囲を限定して説明します。
大まかに、移行は次の手順から構成されます。
1. 前提条件:
- 既存の VPC ネットワークをカスタムモードに変換する(現在自動モードの VPC ネットワークである場合)
- IPv6 の使用を制約する組織のポリシーがないことを確認する
2. VPC ネットワークのサブネットをデュアルスタックに更新する
3. Compute Engine VM インスタンスをデュアルスタックに更新する
4. IPv6 アドレス範囲を許可または拒否するファイアウォール ルールを作成する
では、それぞれのステップを詳しく見ていきましょう。
1. 前提条件
既存の VPC ネットワークをカスタムモードに変換する
VPC ネットワークのサブネット モードを以下の方法で確認します。
ネットワークのサブネット モードが自動モードの場合、VPC ネットワークをカスタムモードに変換します。カスタムモードに更新した後、サブネット モードを自動モードに戻すことはできませんのでご注意ください。
VPC のサブネット モードの変換について詳しくは、こちらのリンクをご確認ください。
注: デュアルスタック サブネットを使用した VPC ネットワークを構成できるのは、サブネット モードがカスタムに設定されている場合だけです。IPv6 アドレス指定は、サブネット モードが自動に設定されている場合は使用できません。
IPv6 の使用を制約する組織のポリシーがないことを確認する
デフォルトでは、組織のポリシーの制約である constraints/compute.disableAllIpv6
と constraints/compute.disableVpcExternalIpv6
の両方が「False」に設定されています。これらの制約が「True」に設定されている場合、外部 IPv6 の使用はできません。
上述の制約のいずれかが「True」に設定されている場合、これらの制約を次のようにして無効化できます。
2. VPC ネットワークのサブネットをデュアルスタックに更新する
各 VPC ネットワークは、サブネットと呼ばれる 1 つ以上の IP アドレス範囲で構成されています。サブネットはリージョン リソースであり、IP アドレス範囲が関連付けられています。デュアルスタック サブネットには、IPv4 と IPv6 の両方のアドレス範囲が関連付けられています。
サブネットをデュアルスタックに移行して外部アクセスに使用するには、外部 IPv6 アドレス範囲にグローバル ユニキャスト アドレス(GUA)を使用します。外部 IPv6 アドレスは、VPC ネットワーク内の VM 間通信にも、インターネットへのアクセスにも使用できます。IPv6 サブネット範囲には、/64 の範囲が自動的に割り当てられます。
既存のサブネットを変更して外部アクセス用の IPv6 範囲をサポートするには、次を実行します。
3. Compute Engine VM インスタンスをデュアルスタックに更新する
次のステップでは、Compute Engine VM インスタンスをデュアルスタックに更新します。スタックタイプをデュアルスタックに変更する場合、VM がデュアルスタックのサブネットに接続されている必要があります。VM のサブネットを変更する必要がある場合、まず VM を停止してからサブネットを変更する必要があります。サブネットが更新されたら、VM の IP スタックタイプを変更できます。
スタックタイプをデュアルスタックに更新すると、VM に IPv6 /96 アドレス範囲が割り振られます。
デフォルトでは、Google Cloud は DHCPv6 を使用して最初の /128 アドレス(例: 2600:1900:4000:4180::/128)を VM インターフェースに割り当て、この最初の /128 用の自動 DNS AAAA レコードを作成します。/96 アドレスの割り振りを各 VM で利用する方法について詳しくは、前回の IPv6 に関するブログをご覧ください。
4. IPv6 アドレス範囲のファイアウォール ルールを作成する
IPv6 を有効にすると、VPC ネットワークに対して次の 2 つの暗黙のルールが自動的に作成されます。
暗黙の IPv6 が宛先 ::/0 に対する下り(外向き)ルールを許可することでインターネットに対する外向きトラフィックを許可する
暗黙の IPv6 が送信元 ::/0 に対する上り(内向き)ルールを拒否することで、VPC ネットワーク内のすべての VM インスタンスへの内向きトラフィックを拒否して受信接続をブロックする
また、カスタム ファイアウォール ルールを作成して、VPC ネットワーク内で特定のトラフィックを許可または拒否することもできます。次に例を示します。
同じ VPC ネットワーク内における他の VM インスタンスから VM インスタンスへの受信接続を許可するには、次のコマンドを使用します。
上の例では、IPv6 アドレス範囲 2600:1900:4000:4180::/64 が、VPC 内の IPv6 サブネットを表しています。
こちらは、VM インスタンスへの HTTP または HTTPS の受信接続を許可する方法です。
または、SSH、RDP、ping などのツールで VM インスタンスに接続することもできます。
IPv6 への移行は、難しく感じられるかもしれません。このブログでは、簡単な手順で Google Cloud のワークロードを IPv6 に移行し、インターネットへの接続を確立できることを実証しました。Google Cloud で IPv6 の利用を開始する方法について詳しくは、ドキュメントをご覧ください。
- ソフトウェア エンジニア Shaoxiong Zhang