本文說明如何設定及測試內部直通式網路負載平衡器,以支援僅限內部 IPv6 的流量。在這個範例設定中,您會在僅限內部 IPv6 的後端虛擬機器 (VM) 執行個體上安裝 Apache 網路伺服器,以便在收到透過負載平衡器虛擬 IP (VIP) 傳送的流量時,提供相應內容。
如下方架構圖所示,負載平衡器的後端 VM 設定了僅限內部 IPv6 的位址。就這個範例設定而言,這些後端 VM 需要下載 Apache 來安裝網頁伺服器,因此必須存取公開網際網路。不過,由於這些後端 VM 沒有外部 IP 位址,因此無法直接連上網際網路。
如要啟用網際網路存取權,這個範例會使用設定外部 IPv6 位址的獨立 VM 執行個體,做為 NAT 閘道。這部 VM 會在 Linux 核心層級執行位址轉譯。具體來說,NAT 表格中的 POSTROUTING
鏈結會用於偽裝傳出封包的來源位址,並將每個後端 VM 的內部 IPv6 位址,替換為指定網路介面上 NAT 閘道 VM 的外部 IPv6 位址。
以下資訊將逐步說明如何設定不同元件,以建立內部直通式網路負載平衡器,並搭配僅限內部 IPv6 的後端。
權限
如要按照本指南操作,您必須在專案中建立執行個體和修改網路,您必須是專案擁有者或編輯者,或是必須具有以下所有 Compute Engine 身分與存取權管理角色:
工作 | 必要角色 |
---|---|
建立網路、子網路和負載平衡器元件 | Compute 網路管理員 ( roles/compute.networkAdmin )
|
新增與移除防火牆規則 | Compute 安全管理員 ( roles/compute.securityAdmin )
|
建立執行個體 | Compute 執行個體管理員 ( roles/compute.instanceAdmin )
|
詳情請參閱下列指南:
設定網路和僅支援 IPv6 的子網路,並使用內部 IPv6 位址
本頁所述的內部直通式網路負載平衡器範例,是在名為 lb-network-ipv6-only
的自訂模式虛擬私有雲網路中建立。
如要設定具有內部 IPv6 範圍的子網路,請啟用虛擬私有雲網路 ULA 內部 IPv6 範圍。內部 IPv6 子網路範圍會從這個範圍分配。
主控台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
按一下「建立虛擬私有雲網路」。
在「Name」(名稱) 中輸入
lb-network-ipv6-only
。如要在這個網路的子網路上設定內部 IPv6 位址範圍,請完成下列步驟:
- 在「私人 IPv6 位址設定」部分,選取「為這個虛擬私有雲網路設定 ULA 內部 IPv6 範圍」。
- 在「分配內部 IPv6 範圍」部分,選取「自動」或「手動」。如果選取「手動」,請在
fd20::/20
範圍內輸入/48
範圍。如果該範圍已在使用中,系統會提示您提供其他範圍。
在「子網路建立模式」部分,選取「自訂」。
在「New subnet」(新子網路) 部分,指定子網路的以下設定參數:
- Name (名稱):
lb-subnet-ipv6-only
- Region (區域):
us-west1
- IP stack type (IP 堆疊類型):IPv6 (單一堆疊)
- IPv6 存取權類型:內部
- Name (名稱):
按一下 [完成]。
點選「建立」。
gcloud
如要建立新的自訂模式虛擬私有雲網路,請執行
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 執行個體。
主控台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
如要查看「虛擬私有雲網路詳細資料」頁面,請點選您建立的虛擬私有雲網路名稱。
在「子網路」分頁中,按一下「新增子網路」
。 在顯示的面板中,指定子網路的下列設定參數:- Name (名稱):
lb-subnet-ipv6-only-external
- Region (區域):
us-west1
- IP stack type (IP 堆疊類型):IPv6 (單一堆疊)
- IPv6 存取權類型:外部
- Name (名稱):
按一下「新增」。
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
在虛擬私有雲網路中設定防火牆規則
這個範例使用以下防火牆規則:
fw-allow-lb-access-ipv6-only
:輸入規則,適用於虛擬私有雲網路中的所有目標,允許來自所有 IPv6 來源的流量。fw-allow-ssh
:輸入規則,允許在 TCP 通訊埠22
上有來自任何位址的連入 SSH 連線。您可以為這項規則選擇較嚴格的來源 IP 範圍;例如,您可以僅指定要從其中啟動 SSH 工作階段之系統的 IP 範圍。本範例使用目標標記allow-ssh
來識別應該適用此規則的 VM。fw-allow-health-check-ipv6-only
:輸入規則,適用於要進行負載平衡的執行個體,可允許來自 Google Cloud 健康狀態檢查系統 (2600:2d00:1:b029::/64
) 的流量。這個範例會使用目標標記allow-health-check-ipv6
來辨識應套用此規則的執行個體。
如果沒有這些防火牆規則,預設拒絕輸入規則將會封鎖傳入至後端執行個體的流量。
主控台
在 Google Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。
如要允許 IPv6 子網路流量,請再次按一下「建立防火牆規則」,然後輸入下列資訊:
- Name (名稱):
fw-allow-lb-access-ipv6-only
- Network (網路):
lb-network-ipv6-only
- Priority (優先順序):
1000
- Direction of traffic (流量方向):「Ingress」(輸入)
- 「Action on match」(相符時執行的動作):允許
- 「Targets」(目標):All instances in the network。
- Source filter (來源篩選器):「IPv6 ranges」(IPv6 範圍)
- 來源 IPv6 範圍:
::/0
- 「Protocols and ports」(通訊協定和通訊埠):全部允許
- Name (名稱):
點選「建立」。
如要允許連入 SSH 連線,請再次按一下「建立防火牆規則」,然後輸入下列資訊:
- Name (名稱):
fw-allow-ssh
- Network (網路):
lb-network-ipv6-only
- Priority (優先順序):
1000
- Direction of traffic (流量方向):「Ingress」(輸入)
- 「Action on match」(相符時執行的動作):允許
- 目標:指定的目標標記
- 「Target tags」(目標標記):
allow-ssh
- Source filter (來源篩選器):「IPv6 ranges」(IPv6 範圍)
- 來源 IPv6 範圍:
::/0
- 「通訊協定和通訊埠」:選取「指定的通訊協定和通訊埠」,勾選「TCP」核取方塊,然後在「通訊埠」中輸入
22
。
- Name (名稱):
點選「建立」。
如要允許 Google Cloud IPv6 健康狀態檢查,請再次按一下「建立防火牆規則」,然後輸入下列資訊:
- Name (名稱):
fw-allow-health-check-ipv6-only
- Network (網路):
lb-network-ipv6-only
- Priority (優先順序):
1000
- Direction of traffic (流量方向):「Ingress」(輸入)
- 「Action on match」(相符時執行的動作):允許
- 目標:指定的目標標記
- 「Target tags」(目標標記):
allow-health-check-ipv6
- Source filter (來源篩選器):「IPv6 ranges」(IPv6 範圍)
- 來源 IPv6 範圍:
2600:2d00:1:b029::/64
- 「Protocols and ports」(通訊協定和通訊埠):全部允許
- Name (名稱):
點選「建立」。
gcloud
建立
fw-allow-lb-access-ipv6-only
防火牆規則,允許所有傳入 IPv6 流量傳送到虛擬私有雲網路中的所有 VM 執行個體: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
建立
fw-allow-ssh
防火牆規則,允許與具有allow-ssh
網路標記的 VM 建立 SSH 連線。若省略source-ranges
,Google 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
建立
fw-allow-health-check-ipv6
規則,允許Google Cloud 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 指令碼建立 NAT 閘道,在 Linux 核心層級修改 IPv6 封包。
Bash 指令碼會修改 POSTROUTING
鏈結中所有傳出 IPv6 封包的來源位址,並替換為 VM 介面的外部 IPv6 位址。
Bash 指令碼會修改 iptables
中的 POSTROUTING
鏈結,以偽裝所有傳出封包的來源 IPv6 位址,並將其替換為 VM 網路介面的外部 IPv6 位址。
您也需要為這個執行個體啟用 IP 轉送功能。
如要建立做為 NAT 閘道的 VM 執行個體,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
點選「建立執行個體」。
在「Name」(名稱) 中輸入
nat-gateway-instance
。在「區域」部分,選取
us-west1
,在「可用區」部分,選取us-west1-a
。在「Boot disk」(開機磁碟) 專區中,確認已為開機磁碟選項選取「Debian GNU/Linux 12 (bookworm)」。如有需要,請按一下「變更」變更圖片。
按一下「網路」並設定下列欄位:
- 在「網路標記」部分輸入
allow-ssh
。 - 勾選「IP 轉送」的「啟用」核取方塊。
- 在「網路介面」部分,選取下列項目:
- Network (網路):
lb-network-ipv6-only
- Subnet (子網路):
lb-subnet-ipv6-only-external
- IP stack type (IP 堆疊類型):IPv6 (單一堆疊)
- 外部 IPv6 位址:自動分配
- Network (網路):
- 在「網路標記」部分輸入
按一下「進階」,並在「開機指令碼」欄位中輸入下列指令碼:
#!/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
在虛擬私有雲網路中建立新的靜態路徑
在本範例中,系統會建立自訂路徑,將標記為 nat-gw-tag
的 VM 的所有 IPv6 網際網路繫結流量 (::/0
) 導向 nat-gateway-instance
VM 執行個體,該執行個體會做為 NAT 閘道。
如要建立路線,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Routes」(路徑) 頁面。
按一下「路徑管理」分頁標籤。
按一下 [Create route] (建立路徑)。
指定路徑的名稱和說明。
在「Network」(網路) 清單中,選取虛擬私有雲網路
lb-network-ipv6-only
。在「IP 版本」清單中,選取「IPv6」。
指定目的地 IPv6 範圍。IPv6 最廣的可能目的地為
::/0
。如要讓路徑僅適用於選取具有相符網路標記的執行個體,請在「Instance tags」(執行個體標記) 欄位中指定。保留空白欄位會使路徑適用於網路中的所有執行個體。在本例中,請輸入
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 和執行個體群組
本範例使用兩個「非代管」執行個體群組,每個群組都包含兩個後端 VM。如要示範內部直通式網路負載平衡器的區域性質,這兩個執行個體群組必須放在不同的可用區,也就是 us-west1-a
和 us-west1-c
。
- 執行個體群組
ig-a
包含以下兩個 VM:vm-a1
vm-a2
- 執行個體群組
ig-c
包含以下兩個 VM:vm-c1
vm-c2
傳輸至以上四個後端 VM 的流量都已達到負載平衡。
在本範例中,先前步驟中建立的靜態路徑會使用網路標記 nat-gw-tag
,將範圍限定為特定 VM 執行個體。
主控台
建立後端 VM
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
使用下列名稱和區域組合,針對每個 VM 重複執行這些步驟。
- 名稱:
vm-a1
,區域:us-west1-a
- 名稱:
vm-a2
,區域:us-west1-a
- 名稱:
vm-c1
,區域:us-west1-c
- 名稱:
vm-c2
,區域:us-west1-c
- 名稱:
點選「建立執行個體」。
按照步驟 2 指定的名稱設定「Name」(名稱)。
在「Region」(區域) 中選取
us-west1
,然後按照步驟 2 指定的區域選擇「Zone」(區域)。在「Boot disk」(開機磁碟) 專區中,確認已為開機磁碟選項選取「Debian GNU/Linux 12 (bookworm)」。如有需要,請按一下「變更」變更圖片。
點選「進階選項」。
按一下「網路」並設定下列欄位:
- 在「網路標記」部分,輸入
allow-ssh
、allow-health-check-ipv6
和nat-gw-tag
。 - 在「網路介面」部分,選取下列項目:
- Network (網路):
lb-network-ipv6-only
- Subnet (子網路):
lb-subnet-ipv6-only-internal
- IP stack type (IP 堆疊類型):IPv6 (單一堆疊)
- 主要內部 IPv6 位址:臨時 (自動)
- Network (網路):
- 在「網路標記」部分,輸入
按一下「進階」,然後在「開機指令碼」欄位中輸入下列指令碼。四個 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
點選「建立」。
建立執行個體群組
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
使用下列組合,重複以下的步驟來建立兩個非代管執行個體群組,每個非代管執行個體群組各包含兩個 VM。
- 執行個體群組名稱:
ig-a
,區域:us-west1-a
,VM:vm-a1
和vm-a2
- 執行個體群組名稱:
ig-c
,區域:us-west1-c
,VM:vm-c1
和vm-c2
- 執行個體群組名稱:
點選「建立執行個體群組」。
按一下「新增非代管執行個體群組」。
按照步驟 2 指定的名稱設定「Name」(名稱)。
在「Location」(位置) 區段,為「Region」(區域) 選取
us-west1
,然後按照步驟 2 指定的區域選擇「Zone」(區域)。在「Network」(網路) 中選取
lb-network-ipv6-only
。在「Subnetwork」(子網路) 中,選取
lb-subnet-ipv6-only-internal
。在「VM instances」(VM 執行個體) 區段中,按照步驟 2 指定的 VM 新增 VM。
點選「建立」。
gcloud
如要建立四個 VM,請使用下列四個
[VM-NAME]
和[ZONE]
組合,執行gcloud compute instances create
指令四次。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'
在每個區域中建立兩個非代管執行個體群組:
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
設定負載平衡器元件
下列步驟會設定內部直通式網路負載平衡器的不同元件,先從健康狀態檢查和後端服務著手,然後再設定前端。
主控台
開始設定
前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。
- 點選「建立負載平衡器」。
- 在「負載平衡器類型」部分,選取「網路負載平衡器 (TCP/UDP/SSL)」,然後點選「下一步」。
- 在「直通或使用 Proxy」部分,選取「直通式負載平衡器」,然後點選「下一步」。
- 按一下 [設定]。
基本設定
在「建立內部直通式網路負載平衡器」頁面中,輸入下列資訊:
- 負載平衡器名稱:
ilb-ipv6-only
- 區域:
us-west1
- 網路:
lb-network-ipv6-only
後端設定
- 按一下「後端設定」。
- 在「Backends」(後端) 的「New Backend」(新增後端) 區段中,選取「IP stack type」(IP 堆疊類型) 做為「IPv6 (single-stack)」(IPv6 (單一堆疊))。
- 在「Instance group」(執行個體群組) 中,選取
ig-a
執行個體群組,然後按一下「Done」(完成)。 - 按一下「新增後端」,然後重複執行步驟來新增
ig-c
。 - 在「健康狀態檢查」清單中,選取「建立健康狀態檢查」,輸入下列資訊,然後按一下「儲存」:
- 名稱:
hc-http-80
。 - 範圍:區域性。
- 「Protocol」(通訊協定):
HTTP
。 - Port:
80
。 - Proxy protocol (Proxy 通訊協定):
NONE
。 - Request path (要求路徑):
/
。
- 名稱:
- 確認「後端設定」旁顯示藍色勾號。
前端設定
- 按一下 [Frontend configuration] (前端設定)。在「New Frontend IP and port」(新增的前端 IP 和通訊埠) 區段中,執行下列操作:
- 在「Name」(名稱) 中輸入
fr-ilb-ipv6-only
。 - 如要處理 IPv6 流量,請按照下列步驟操作:
- 在「IP 版本」部分,選取「IPv6」。您將在下一節中建立的 IPv6 TCP 伺服器,會繫結至轉送規則的 VIP。
- 在「Subnetwork」(子網路) 中,選取
lb-subnet-ipv6-only-internal
。 轉送規則中的 IPv6 位址範圍一律為臨時位址。 - 在「Ports」(通訊埠) 中選取「Multiple」(多個),然後在「Port number」(通訊埠編號) 欄位中輸入
80
。 - 按一下 [完成]。
- 繼續操作之前,請先驗證「Frontend configuration」(前端設定) 旁是否有藍色勾號。
- 在「Name」(名稱) 中輸入
檢閱設定
- 按一下 [Review and finalize] (檢查並完成)。檢查所有設定。
- 如果設定正確無誤,請按一下 [Create] (建立)。建立內部直通式網路負載平衡器需要幾分鐘的時間。
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
將兩個執行個體群組新增至後端服務:
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 (vm-client
)。
主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
點選「建立執行個體」。
在「Name」(名稱) 中輸入
vm-client
。在「區域」部分,選取「
us-west1
」。在「可用區」部分,選取「
us-west1-a
」。點選「進階選項」。
按一下「網路」並設定下列欄位:
- 在「網路標記」部分輸入
allow-ssh
。 - 在「網路介面」部分,選取下列項目:
- 網路:
lb-network-ipv6-only
- 「Subnet」(子網路):
lb-subnet-ipv6-only-internal
- IP stack type (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 進行聯絡。預期的行為是要在四個後端 VM 之間分配流量。
使用 SSH 連線至用戶端 VM 執行個體。
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