このドキュメントでは、内部 IPv6 のみのトラフィックをサポートする内部パススルー ネットワーク ロードバランサを構成してテストする方法について説明します。この構成例では、内部 IPv6 専用バックエンド仮想マシン(VM)インスタンスに Apache ウェブサーバーをインストールして、ロードバランサの仮想 IP(VIP)を介して受信したトラフィックに応答してコンテンツを配信します。
次のアーキテクチャ図に示すように、ロードバランサのバックエンド VM は内部 IPv6 専用アドレスで構成されています。この構成例では、これらのバックエンド VM はウェブサーバーをインストールするために Apache をダウンロードする必要があります。これには、公共のインターネットへのアクセスが必要です。ただし、これらのバックエンド VM には外部 IP アドレスがないため、インターネットに直接アクセスできません。
インターネット アクセスを有効にするため、この例では、NAT ゲートウェイとして機能する外部 IPv6 アドレスを使用して構成された別の VM インスタンスを使用します。この VM は、Linux カーネルレベルでアドレス変換を実行します。具体的には、NAT テーブルの POSTROUTING
チェーンを使用して、送信パケットの送信元アドレスをマスカレードします。つまり、各バックエンド VM の内部 IPv6 アドレスを、指定されたネットワーク インターフェース上の NAT ゲートウェイ VM の外部 IPv6 アドレスに置き換えます。
以降では、内部 IPv6 専用バックエンドを使用して内部パススルー ネットワーク ロードバランサを設定するために使用されるさまざまなコンポーネントの構成について説明します。
権限
このガイドを使用する前に、インスタンスを作成し、プロジェクト内のネットワークを変更しておく必要があります。そのため、プロジェクトのオーナーまたは編集者であるか、次の Compute Engine IAM ロールがすべて割り当てられている必要があります。
タスク | 必要なロール |
---|---|
ネットワーク、サブネット、ロードバランサ コンポーネントの作成 | Compute ネットワーク管理者 ( roles/compute.networkAdmin ) |
ファイアウォール ルールの追加と削除 | Compute セキュリティ管理者 ( roles/compute.securityAdmin ) |
インスタンスを作成する | Compute インスタンス管理者 ( roles/compute.instanceAdmin ) |
詳細については、次のガイドをご覧ください。
内部 IPv6 アドレスを使用してネットワークと IPv6 のみのサブネットを構成する
このページで説明されているサンプルの内部パススルー ネットワーク ロードバランサは、lb-network-ipv6-only
という名前のカスタムモード VPC ネットワークで作成されています。
内部 IPv6 範囲を持つサブネットを構成するには、VPC ネットワーク ULA の内部 IPv6 範囲を有効にします。内部 IPv6 サブネット範囲は、この範囲から割り振られます。
コンソール
Trusted Cloud コンソールで、[VPC ネットワーク] ページに移動します。
[VPC ネットワークを作成] をクリックします。
[名前] に「
lb-network-ipv6-only
」と入力します。このネットワークのサブネットで内部 IPv6 アドレス範囲を構成する場合は、次の手順を行います。
- [プライベート IPv6 アドレスを設定] で、[Configure a ULA internal IPv6 range for this VPC Network] を選択します。
- [内部 IPv6 範囲の割り当て] で、[自動] または [手動] を選択します。
[手動] を選択した場合は、
fd20::/20
の範囲内の/48
の範囲を入力します。範囲が使用されている場合は、別の範囲を指定するように求めるプロンプトが表示されます。
[サブネット作成モード] で [カスタム] を選択します。
[新しいサブネット] セクションで、サブネットに次の構成パラメータを指定します。
- 名前:
lb-subnet-ipv6-only
- リージョン:
us-west1
- IP スタックタイプ: IPv6(シングルスタック)
- IPv6 アクセスタイプ: 内部
- 名前:
[完了] をクリックします。
[作成] をクリックします。
gcloud
新しいカスタムモードの VPC ネットワークを作成するには、
gcloud compute networks create
コマンドを実行します。このネットワークのサブネットで内部 IPv6 範囲を構成するには、
--enable-ula-internal-ipv6
フラグを使用します。gcloud compute networks create lb-network-ipv6-only \ --subnet-mode=custom \ --enable-ula-internal-ipv6 \ --bgp-routing-mode=regional
ipv6-access-type
をINTERNAL
に設定してサブネットを構成します。これは、このサブネット内の VM に内部 IPv6 アドレスのみを設定できることを示します。この例では、サブネットの名前はlb-subnet-ipv6-only-internal
です。サブネットを作成するには、
gcloud compute networks subnets create
コマンドを実行します。gcloud compute networks subnets create lb-subnet-ipv6-only-internal \ --network=lb-network-ipv6-only \ --region=us-west1 \ --stack-type=IPV6_ONLY \ --ipv6-access-type=INTERNAL
外部 IPv6 アドレスを使用して IPv6 のみのサブネットを構成する
外部 IPv6 アドレスを持つ IPv6 のみのサブネットは、NAT ゲートウェイとして機能する VM インスタンスの作成に使用されます。
コンソール
Trusted Cloud コンソールで、[VPC ネットワーク] ページに移動します。
[VPC ネットワークの詳細] ページを表示するには、作成した VPC ネットワークの名前をクリックします。
[サブネット] タブで [
サブネットを追加] をクリックします。表示されたパネルで、サブネットに次の構成パラメータを指定します。- 名前:
lb-subnet-ipv6-only-external
- リージョン:
us-west1
- IP スタックタイプ: IPv6(シングルスタック)
- IPv6 アクセスタイプ: 外部
- 名前:
[追加] をクリックします。
gcloud
ipv6-access-type
を EXTERNAL
に設定してサブネットを構成します。これは、このサブネット内の VM に外部 IPv6 アドレスを設定できることを示します。この例では、サブネットの名前は lb-subnet-ipv6-only-external
です。
サブネットを作成するには、gcloud compute networks subnets create
コマンドを実行します。
gcloud compute networks subnets create lb-subnet-ipv6-only-external \ --network=lb-network-ipv6-only \ --region=us-west1 \ --stack-type=IPV6_ONLY \ --ipv6-access-type=EXTERNAL
VPC ネットワークにファイアウォール ルールを構成する
この例では、次のファイアウォール ルールを使用します。
fw-allow-lb-access-ipv6-only
: VPC ネットワーク内のすべてのターゲットに適用される上り(内向き)ルールで、すべての IPv6 ソースからのトラフィックを許可します。fw-allow-ssh
: 任意のアドレスから TCP ポート22
への SSH 受信接続を許可する上り(内向き)ルール。このルールには、送信元の IP 範囲をより限定的に指定できます。たとえば、SSH セッションを開始するシステムの IP 範囲を指定できます。この例では、ターゲットタグallow-ssh
を使用して、適用する VM を識別させています。fw-allow-health-check-ipv6-only
: ロードバランスされているインスタンスに適用される上り(内向き)ルール。 Trusted Cloud ヘルスチェック システム(2600:2d00:1:b029::/64
)からのトラフィックを許可します。この例では、ターゲットタグallow-health-check-ipv6
を使用して、適用するインスタンスが識別されます。
これらのファイアウォール ルールがない場合は、デフォルトの上り(内向き)拒否ルールによってバックエンド インスタンスへの受信トラフィックがブロックされます。
コンソール
Trusted Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。
IPv6 サブネット トラフィックを許可するには、もう一度 [ファイアウォール ルールを作成] をクリックして、次の情報を入力します。
- 名前:
fw-allow-lb-access-ipv6-only
- ネットワーク:
lb-network-ipv6-only
- 優先度:
1000
- トラフィックの方向: 上り(内向き)
- 一致したときのアクション: 許可
- [ターゲット]: ネットワーク上のすべてのインスタンス
- ソースフィルタ: IPv6 範囲
- 送信元 IPv6 範囲:
::/0
- プロトコルとポート: すべて許可
- 名前:
[作成] をクリックします。
受信 SSH 接続を許可するには、[ファイアウォール ルールを作成] をもう一度クリックして、次の情報を入力します。
- 名前:
fw-allow-ssh
- ネットワーク:
lb-network-ipv6-only
- 優先度:
1000
- トラフィックの方向: 上り(内向き)
- 一致したときのアクション: 許可
- ターゲット: 指定されたターゲットタグ
- ターゲットタグ:
allow-ssh
- ソースフィルタ: IPv6 範囲
- 送信元 IPv6 範囲:
::/0
- プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「
22
」と入力します。
- 名前:
[作成] をクリックします。
Trusted Cloud IPv6 ヘルスチェックを許可するには、[ファイアウォール ルールを作成] をもう一度クリックして、次の情報を入力します。
- 名前:
fw-allow-health-check-ipv6-only
- ネットワーク:
lb-network-ipv6-only
- 優先度:
1000
- トラフィックの方向: 上り(内向き)
- 一致したときのアクション: 許可
- ターゲット: 指定されたターゲットタグ
- ターゲットタグ:
allow-health-check-ipv6
- ソースフィルタ: IPv6 範囲
- 送信元 IPv6 範囲:
2600:2d00:1:b029::/64
- プロトコルとポート: すべて許可
- 名前:
[作成] をクリックします。
gcloud
VPC ネットワーク内のすべての VM インスタンスへのすべての上り(内向き)IPv6 トラフィックを許可する
fw-allow-lb-access-ipv6-only
ファイアウォール ルールを作成します。gcloud compute firewall-rules create fw-allow-lb-access-ipv6-only \ --network=lb-network-ipv6-only \ --action=allow \ --direction=ingress \ --source-ranges=::/0 \ --rules=all
ネットワーク タグ
allow-ssh
を使用して、VM との SSH 接続を許可するfw-allow-ssh
ファイアウォール ルールを作成します。source-ranges
を省略すると、Trusted Cloud は任意の送信元としてルールを解釈します。gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network-ipv6-only \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --source-ranges=::/0 \ --rules=tcp:22
Trusted Cloud IPv6 ヘルスチェックを許可する
fw-allow-health-check-ipv6
ルールを作成します。gcloud compute firewall-rules create fw-allow-health-check-ipv6-only \ --network=lb-network-ipv6-only \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64 \ --rules=tcp,udp
NAT ゲートウェイとして機能する VM インスタンスを作成する
この例では、Bash スクリプトを使用して、Linux カーネルレベルで IPv6 パケットの変更に使用される NAT ゲートウェイを作成します。
この Bash スクリプトは、POSTROUTING
チェーン内のすべての送信 IPv6 パケットの送信元アドレスを変更し、VM インターフェースの外部 IPv6 アドレスに置き換えます。
この Bash スクリプトは、iptables
の POSTROUTING
チェーンを変更して、すべての送信パケットの送信元 IPv6 アドレスをマスカレードし、VM のネットワーク インターフェースの外部 IPv6 アドレスに置き換えます。
また、このインスタンスの IP 転送を有効にする必要もあります。
NAT ゲートウェイとして機能する VM インスタンスを作成する手順は次のとおりです。
コンソール
Trusted Cloud コンソールで、[VM インスタンス] ページに移動します。
[インスタンスを作成] をクリックします。
[名前] に「
nat-gateway-instance
」と入力します。[リージョン] で
us-west1
を選択し、[ゾーン] でus-west1-a
を選択します。[ブートディスク] セクションで、ブートディスク オプションとして Debian GNU/Linux 12 (bookworm) が選択されていることを確認します。必要に応じて、[変更] をクリックしてイメージを変更します。
[ネットワーキング] をクリックして次のフィールドを構成します。
- [ネットワーク タグ] に「
allow-ssh
」と入力します。 - [IP 転送] で、[有効にする] チェックボックスをオンにします。
- [ネットワーク インターフェース] で、次のように選択します。
- ネットワーク:
lb-network-ipv6-only
- サブネット:
lb-subnet-ipv6-only-external
- IP スタックタイプ: IPv6(シングルスタック)
- 外部 IPv6 アドレス: 自動割り振り
- ネットワーク:
- [ネットワーク タグ] に「
[詳細設定] をクリックし、[起動スクリプト] フィールドに次のスクリプトを入力します。
#!/bin/bash set -e echo "Starting GCE startup script..." # --- IPv6 NAT table configuration --- echo "Modifying the source IPv6 address using the NAT table" # Enable IPv6 forwarding sysctl -w net.ipv6.conf.all.forwarding=1 # Determine the primary network interface (assuming it's the last one listed) IFACE=$(ip -brief link | tail -1 | awk '{print $1}') echo "Using interface: $IFACE for IPv6 NAT" # Flush existing IPv6 NAT rules ip6tables -F -t nat ip6tables -X -t nat # Masquerade all outgoing IPv6 traffic on the determined interface ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE echo "IPv6 masquerading configured successfully." echo "GCE startup script finished."
[作成] をクリックします。
gcloud
起動スクリプトを作成します。
nano startup.sh
次のスクリプトを追加してファイルを保存します。
#!/bin/bash set -e echo "Starting GCE startup script..." # --- IPv6 NAT table configuration --- echo "Modifying the source IPv6 address using the NAT table" # Enable IPv6 forwarding sysctl -w net.ipv6.conf.all.forwarding=1 # Determine the primary network interface (assuming it's the last one listed) IFACE=$(ip -brief link | tail -1 | awk '{print $1}') echo "Using interface: $IFACE for IPv6 NAT" # Flush existing IPv6 NAT rules ip6tables -F -t nat ip6tables -X -t nat # Masquerade all outgoing IPv6 traffic on the determined interface ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE echo "IPv6 masquerading configured successfully." echo "GCE startup script finished."
VM インスタンスを作成し、メタデータ ファイルを VM インスタンスに追加します。この VM をルートのネクストホップとして使用するには、
--can-ip-forward
フラグを使用してこのインスタンスの IP 転送を有効にします。gcloud compute instances create nat-gateway-instance \ --zone=us-west1-a \ --tags=allow-ssh \ --image-family=debian-12 \ --image-project=debian-cloud \ --subnet=lb-subnet-ipv6-only-external \ --stack-type=IPV6_ONLY \ --can-ip-forward \ --metadata-from-file=startup-script=startup.sh
VPC ネットワークに新しい静的ルートを作成する
この例では、nat-gw-tag
タグが付けられた VM からのすべての IPv6 インターネット宛てトラフィック(::/0
)を NAT ゲートウェイとして機能する nat-gateway-instance
VM インスタンスに転送するカスタムルートが作成されます。
ルートを作成する手順は次のとおりです。
コンソール
Trusted Cloud コンソールで、[ルートページ] に移動します。
[ルート管理] タブをクリックします。
[ルートを作成] をクリックします。
ルートの名前と説明を指定します。
[ネットワーク] リストで、VPC ネットワーク
lb-network-ipv6-only
を選択します。[IP バージョン] リストで、[IPv6] を選択します。
宛先 IPv6 範囲を指定します。IPv6 の場合、想定される最も広範囲な宛先は
::/0
です。一致するネットワーク タグを持つ、一部のインスタンスにのみルートが適用されるようにするには、[インスタンス タグ] フィールドでそれらを指定します。ネットワーク上のすべてのインスタンスにルートが適用されるようにするには、このフィールドを空白のままにします。この例では、「
nat-gw-tag
」と入力します。[ネクストホップ] で、[インスタンスを指定する] を選択します。
NAT ゲートウェイとして機能するように作成したインスタンスの名前を選択します。この例では、
nat-gateway-instance
を選択します。[作成] をクリックします。
gcloud
gcloud compute routes create
コマンドを使用して、新しいルートを作成します。パケットは、ルートの --next-hop-instance
で指定された nat-gateway-instance
VM インスタンスに転送されます。
gcloud compute routes create route-1 \ --network=lb-network-ipv6-only \ --priority=1000 \ --tags=nat-gw-tag \ --destination-range=::/0 \ --next-hop-instance=nat-gateway-instance \ --next-hop-instance-zone=us-west1-a
バックエンド VM とインスタンス グループを作成する
この例では、2 つのバックエンド VM を持つ 2 つの非マネージド インスタンスを使用しています。内部パススルー ネットワーク ロードバランサのリージョン特性を示すために、2 つのインスタンス グループが別々のゾーン(us-west1-a
と us-west1-c
)に配置されています。
- インスタンス グループ
ig-a
には、次の 2 つの VM が含まれています。vm-a1
vm-a2
- インスタンス グループ
ig-c
には、次の 2 つの VM が含まれています。vm-c1
vm-c2
4 つのバックエンド VM へのトラフィックがすべてロードバランスされます。
この例では、前の手順で作成した静的ルートは、ネットワーク タグ nat-gw-tag
を使用して特定の VM インスタンスにスコープ設定されています。
コンソール
バックエンド VM を作成する
Trusted Cloud コンソールで、[VM インスタンス] ページに移動します。
次の名前とゾーンの組み合わせを使用して、VM ごとにこれらの手順を繰り返します。
- 名前:
vm-a1
、ゾーン:us-west1-a
- 名前:
vm-a2
、ゾーン:us-west1-a
- 名前:
vm-c1
、ゾーン:us-west1-c
- 名前:
vm-c2
、ゾーン:us-west1-c
- 名前:
[インスタンスを作成] をクリックします。
ステップ 2 に示したように [名前] を設定します。
[リージョン] に
us-west1
を選択して、ステップ 2 に示したゾーンを選択します。[ブートディスク] セクションで、ブートディスク オプションとして Debian GNU/Linux 12 (bookworm) が選択されていることを確認します。必要に応じて、[変更] をクリックしてイメージを変更します。
[詳細オプション] をクリックします。
[ネットワーキング] をクリックして次のフィールドを構成します。
- [ネットワーク タグ] に「
allow-ssh
」、「allow-health-check-ipv6
、「nat-gw-tag
」を入力します。 - [ネットワーク インターフェース] で、次のように選択します。
- ネットワーク:
lb-network-ipv6-only
- サブネット:
lb-subnet-ipv6-only-internal
- IP スタックタイプ: IPv6(シングルスタック)
- プライマリ内部 IPv6 アドレス: エフェメラル(自動)
- ネットワーク:
- [ネットワーク タグ] に「
[詳細設定] をクリックし、[起動スクリプト] フィールドに次のスクリプトを入力します。スクリプトの内容は 4 つの VM ですべて同じです。
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
[作成] をクリックします。
インスタンス·グループを作成する
Trusted Cloud コンソールで、[インスタンス グループ] ページに移動します。
次の手順を繰り返し、それぞれ 2 つの VM を持つ 2 つの非マネージド インスタンス グループを作成します。以下の組み合わせを使用します。
- インスタンス グループ名:
ig-a
、ゾーン:us-west1-a
、VM:vm-a1
、vm-a2
- インスタンス グループ名:
ig-c
、ゾーン:us-west1-c
、VM:vm-c1
、vm-c2
- インスタンス グループ名:
[インスタンス グループの作成] をクリックします。
[新しい非マネージド インスタンス グループ] をクリックします。
ステップ 2 に示したように [名前] を設定します。
[ロケーション] セクションで、[リージョン] に
us-west1
を選択し、ステップ 2 で示したように [ゾーン] を選択します。[ネットワーク] で
lb-network-ipv6-only
を選択します。[サブネットワーク] で、[
lb-subnet-ipv6-only-internal
] を選択します。[VM インスタンス] セクションに、ステップ 2 で示した VM を追加します。
[作成] をクリックします。
gcloud
4 つの VM を作成するには、
[VM-NAME]
と[ZONE]
に次の 4 つの組み合わせを使用して、gcloud compute instances create
コマンドを 4 回実行します。VM-NAME
:vm-a1
、ZONE
:us-west1-a
VM-NAME
:vm-a2
、ZONE
:us-west1-a
VM-NAME
:vm-c1
、ZONE
:us-west1-c
VM-NAME
:vm-c2
、ZONE
:us-west1-c
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check-ipv6,nat-gw-tag \ --subnet=lb-subnet-ipv6-only-internal \ --stack-type=IPV6_ONLY \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
各ゾーンに次の 2 つの非マネージド インスタンス グループを作成します。
gcloud compute instance-groups unmanaged create ig-a \ --zone=us-west1-a gcloud compute instance-groups unmanaged create ig-c \ --zone=us-west1-c
適切なインスタンス グループに VM を追加します。
gcloud compute instance-groups unmanaged add-instances ig-a \ --zone=us-west1-a \ --instances=vm-a1,vm-a2 gcloud compute instance-groups unmanaged add-instances ig-c \ --zone=us-west1-c \ --instances=vm-c1,vm-c2
ロードバランサ コンポーネントを構成する
次の手順では、ヘルスチェックとバックエンド サービスから開始して、内部パススルー ネットワーク ロードバランサのさまざまなコンポーネントを構成し、次にフロントエンドを構成します。
コンソール
構成を開始する
Trusted Cloud コンソールで、[ロード バランシング] ページに移動します。
- [ロードバランサを作成] をクリックします。
- [ロードバランサの種類] で [ネットワーク ロードバランサ(TCP / UDP / SSL)] を選択し、[次へ] をクリックします。
- [プロキシまたはパススルー] で [パススルー ロードバランサ] を選択し、[次へ] をクリックします。
- [構成] をクリックします。
基本構成
[Create internal passthrough Network Load Balancer] ページで、次の情報を入力します。
- ロードバランサの名前:
ilb-ipv6-only
- リージョン:
us-west1
- ネットワーク:
lb-network-ipv6-only
バックエンドの構成
- [バックエンドの構成] をクリックします。
- [バックエンド] の [新しいバックエンド] セクションで、[IP スタックタイプ] に [IPv6(シングルスタック)] を選択します。
- [インスタンス グループ] で、
ig-a
インスタンス グループを選択し、[完了] をクリックします。 - [バックエンドを追加] をクリックし、この手順を繰り返して
ig-c
を追加します。 - [ヘルスチェック] リストから [ヘルスチェックを作成] を選択し、次の情報を入力して [保存] をクリックします。
- 名前:
hc-http-80
- 範囲: リージョン
- プロトコル:
HTTP
- ポート:
80
. - プロキシのプロトコル:
NONE
- リクエストパス:
/
- 名前:
- [バックエンドの構成] の横に青いチェックマークが表示されていることを確認します。
フロントエンドの構成
- [フロントエンドの構成] をクリックします。[新しいフロントエンドの IP とポート] セクションで、次の操作を行います。
- [名前] に「
fr-ilb-ipv6-only
」と入力します。 - IPv6 トラフィックを処理する手順は次のとおりです。
- [IP バージョン] で [IPv6] を選択します。次のセクションで作成する IPv6 TCP サーバーは、転送ルールの VIP にバインドされます。
- [サブネットワーク] で、[
lb-subnet-ipv6-only-internal
] を選択します。転送ルールの IPv6 アドレス範囲は常にエフェメラルです。 - [ポート] で [複数] を選択し、[ポート番号] フィールドに
80
を入力します。 - [完了] をクリックします。
- 続行する前に、[フロントエンドの構成] の隣に青いチェックマークがあることを確認します。
- [名前] に「
構成を確認する
- [確認と完了] をクリックします。すべての設定を確認します。
- 設定が正しい場合は、[作成] をクリックします。内部パススルー ネットワーク ロードバランサが作成されるまでに数分かかります。
gcloud
新しいリージョン HTTP ヘルスチェックを作成して、ポート 80 で VM との HTTP 接続をテストします。
gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
バックエンド サービスを作成します。
gcloud compute backend-services create ilb-ipv6-only \ --load-balancing-scheme=INTERNAL \ --protocol=tcp \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
バックエンド サービスに、2 つのインスタンス グループを追加します。
gcloud compute backend-services add-backend ilb-ipv6-only \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
gcloud compute backend-services add-backend ilb-ipv6-only \ --region=us-west1 \ --instance-group=ig-c \ --instance-group-zone=us-west1-c
エフェメラル IPv6 アドレスを使用して IPv6 転送ルールを作成します。
gcloud compute forwarding-rules create fr-ilb-ipv6-only \ --region=us-west1 \ --load-balancing-scheme=INTERNAL \ --subnet=lb-subnet-ipv6-only-internal \ --ip-protocol=TCP \ --ports=80 \ --backend-service=ilb-ipv6-only \ --backend-service-region=us-west1 \ --ip-version=IPV6
ロードバランサをテストする
ロードバランサをテストするには、ロードバランサと同じリージョンにクライアント VM を作成し、クライアントからロードバランサにトラフィックを送信します。
クライアント VM を作成する
この例では、クライアント VM(vm-client
)を、バックエンド(サーバー)VM と同じリージョンに作成します。
コンソール
Trusted Cloud コンソールで、[VM インスタンス] ページに移動します。
[インスタンスを作成] をクリックします。
[名前] に「
vm-client
」と入力します。[リージョン] で
us-west1
を選択します。[ゾーン] で
us-west1-a
を選択します。[詳細オプション] をクリックします。
[ネットワーキング] をクリックして次のフィールドを構成します。
- [ネットワーク タグ] に「
allow-ssh
」と入力します。 - [ネットワーク インターフェース] で、次のように選択します。
- ネットワーク:
lb-network-ipv6-only
- サブネット:
lb-subnet-ipv6-only-internal
- IP スタックタイプ: IPv6(シングルスタック)
- ネットワーク:
- [完了] をクリックします。
- [ネットワーク タグ] に「
[作成] をクリックします。
gcloud
クライアント VM はロードバランサと同じリージョン内の任意のゾーンに配置できます。この例では、クライアントは us-west1-a
ゾーンにあり、バックエンド VM と同じサブネットを使用しています。
gcloud compute instances create vm-client \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --stack-type=IPV6_ONLY \ --tags=allow-ssh \ --subnet=lb-subnet-ipv6-only-internal
接続をテストする
このテストでは、ロードバランサのバックエンド VM からではなく、個別のクライアント VM からロードバランサに接続します。想定される動作は、トラフィックは 4 つのバックエンド VM に分散されることです。
SSH を使用してクライアント インスタンスに接続します。
gcloud compute ssh vm-client --zone=us-west1-a
IPv6 転送ルール
fr-ilb-ipv6-only
の説明を取得します。説明のIPV6_ADDRESS
をメモします。gcloud compute forwarding-rules describe fr-ilb-ipv6-only \ --region=us-west1
IPv6 接続のクライアントから、次のコマンドを実行します。
curl http://IPV6_ADDRESS:80
たとえば、割り当てられた IPv6 アドレスが
[fd20:307:120c:2000:0:1:0:0/96]:80
の場合、コマンドは次のようになります。curl http://[fd20:307:120c:2000:0:1:0:0]:80
レスポンスは次のようになります。
Page returned from: vm-a2
次のステップ
- 内部 IPv6 のみのサブネットと、バックエンド VM にインストールされた IPv6 TCP サーバーを使用するバックエンドを使用して、内部パススルー ネットワーク ロードバランサを構成する設定を確認します。