将代理网络负载均衡器转换为 IPv6

本文档介绍了如何将代理网络负载平衡器资源和后端从仅 IPv4(单栈)转换为 IPv4 和 IPv6(双栈)。使用 IPv6 的主要优势是可以向负载均衡器分配大得多的 IP 地址池。您可以配置负载均衡器,以根据您的偏好设置终结入站 IPv6 流量,并通过 IPv4 或 IPv6 连接将此流量发送到后端。如需了解详情,请参阅用于应用负载平衡器和代理网络负载平衡器的 IPv6

在本文档中,仅 IPv4(单栈)是指仅使用 IPv4 地址的资源,而 IPv4 和 IPv6(双栈)是指同时使用 IPv4 和 IPv6 地址的资源。

本文档中的说明同时适用于 TCP 代理和 SSL 代理网络负载平衡器。

准备工作

在开始转换流程之前,请注意以下条件:

  • 您必须使用以下某种类型的代理网络负载平衡器:

    • 全局外部代理网络负载均衡器
    • 区域级外部代理网络负载均衡器
    • 跨区域内部代理网络负载均衡器
    • 区域级内部代理网络负载均衡器

    传统代理网络负载平衡器不支持双栈后端或子网。如需详细了解 IPv6 支持,请参阅用于应用负载平衡器和代理网络负载平衡器的 IPv6

  • 您的负载均衡器使用的是具有 GCE_VM_IP_PORT 端点的虚拟机实例组后端或可用区级网络端点组 (NEG)。其他后端类型不支持双栈。

此外,转换流程因负载均衡器的类型而异。

  • 对于全球外部代理网络负载平衡器,您需要将后端转换为双栈,创建可处理传入 IPv6 流量的 IPv6 转发规则。

  • 对于跨区域内部代理网络负载平衡器、区域级外部代理网络负载平衡器和区域级内部代理网络负载平衡器,您只需将后端转换为双栈。这些负载平衡器不支持 IPv6 转发规则。

如需了解如何设置全球外部代理网络负载平衡器,请参阅以下文档:

确定要转换的资源

记下与负载均衡器关联的资源的名称。您稍后需要提供这些名称。

  1. 如需列出所有子网,请使用 gcloud compute networks subnets list 命令

    gcloud compute networks subnets list
    

    记下具有要转换为双栈的仅 IPv4 栈的子网的名称。之后,此地址称为 SUBNET。之后,VPC 网络称为 NETWORK

  2. 如需列出所有后端服务,请使用 gcloud compute backend-services list 命令

    gcloud compute backend-services list
    

    记下要转换为双栈的后端服务的名称。之后,此名称称为 BACKEND_SERVICE

  3. 如果您已有负载均衡器,则如需查看后端的 IP 栈类型,请使用 gcloud compute instances list 命令

    gcloud compute instances list \
        --format= \
        "table(
        name,
        zone.basename(),
        networkInterfaces[].stackType.notnull().list(),
        networkInterfaces[].ipv6AccessConfigs[0].externalIpv6.notnull().list():label=EXTERNAL_IPV6,
        networkInterfaces[].ipv6Address.notnull().list():label=INTERNAL_IPV6)"
    
  4. 如需列出所有虚拟机实例和实例模板,请使用 gcloud compute instances list 命令gcloud compute instance-templates list 命令

    gcloud compute instances list
    
    gcloud compute instance-templates list
    

    记下要转换为双栈的实例和实例模板的名称。之后,此名称称为 VM_INSTANCEINSTANCE_TEMPLATES

  5. 如需列出所有实例组,请使用 gcloud compute instance-groups list 命令

    gcloud compute instance-groups list
    

    记下要转换为双栈的网络端点组的名称。之后,此名称称为 INSTANCE_GROUP

  6. 如需列出所有可用区级 NEG,请使用 gcloud compute network-endpoint-groups list 命令

    gcloud compute network-endpoint-groups list
    

    记下要转换为双栈的网络端点组的名称。之后,此名称称为 ZONAL_NEG

  7. 如需列出所有目标 SSL 代理,请使用 gcloud compute target-ssl-proxies list 命令

    gcloud compute target-ssl-proxies list
    

    记下与负载均衡器关联的目标代理的名称。之后,此名称称为 TARGET_PROXY

  8. 如需列出所有目标 TCP 代理,请使用 gcloud compute target-tcp-proxies list 命令

    gcloud compute target-tcp-proxies list
    

    记下与负载均衡器关联的目标代理的名称。之后,此名称称为 TARGET_PROXY

从单栈后端转换为双栈后端

本部分介绍了如何将使用仅 IPv4(单栈)地址的负载均衡器资源和后端转换为 IPv4 和 IPv6(双栈)地址。

更新子网

只有自定义模式 VPC 网络支持双栈子网。自动模式 VPC 网络及旧版网络均不支持双栈子网。 虽然自动模式网络可用于早期探索,但是对于大多数生产环境,更适合使用自定义模式 VPC。我们建议您使用自定义模式的 VPC。

如需将 VPC 更新为双栈设置,请按照以下步骤操作:

  1. 如果您使用的是自动模式 VPC 网络,则必须先将自动模式 VPC 网络转换为自定义模式

    如果您使用的是 default 网络,则必须将其转换为自定义模式 VPC 网络。

  2. 如需启用 IPv6,请参阅将子网的栈类型更改为双栈

    确保将子网的 IPv6 访问权限类型设置为 External

  3. 可选:如果您要在此网络中的子网上配置内部 IPv6 地址范围,请完成以下步骤:

    1. 对于 VPC 网络 ULA 内部 IPv6 范围,选择已启用
    2. 分配内部 IPv6 范围字段中,选择自动手动

      如果您选择手动,请输入 fd20::/20 范围内的 /48 范围。如果此范围正在使用中,系统会提示您提供其他范围。

更新代理专用子网

如果您使用的是基于 Envoy 的负载均衡器,我们建议您将代理专用子网栈类型更改为双栈。如需了解支持代理专用子网的负载均衡器,请参阅支持的负载均衡器

如需将代理专用子网的栈类型更改为双栈,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,进入 VPC 网络页面。

    进入 VPC 网络页面

  2. 如需查看 VPC 网络详细信息页面,请点击网络的名称。

  3. 点击子网标签页。

  4. 为负载均衡预留的代理专用子网部分中,点击要修改的代理专用子网的名称。

  5. 子网详情页面上,点击修改

  6. 对于 IP 栈类型,请选择 IPv4 和 IPv6(双栈)。 将 IPv6 访问权限类型设置为内部

  7. 点击保存

gcloud

使用 subnets update 命令

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=REGION

替换以下内容:

  • PROXY_ONLY_SUBNET:代理专用子网的名称。
  • REGION:子网的区域。
  • IPv6_ACCESS_TYPE:子网的 IPv6 访问权限类型为 INTERNAL

更新虚拟机实例或模板

如果虚拟机实例连接到的子网配置了 IPv6 范围,则您可以在虚拟机实例上配置 IPv6 地址。只有以下后端才能支持 IPv6 地址:

  • 实例组后端:一个或多个托管式实例组后端、非托管式实例组后端,或托管式实例组后端与非托管式实例组后端的组合。
  • 可用区级 NEG:一个或多个 GCE_VM_IP_PORT 类型可用区级 NEG。

更新虚拟机实例

您无法修改属于托管式实例组或非托管式实例组的虚拟机实例。如需将虚拟机实例更新为双栈,请按照以下步骤操作:

  1. 从组中删除特定实例
  2. 创建双栈虚拟机
  3. 在 MIG 中创建具有特定名称的实例

更新虚拟机实例模板

您无法更新现有实例模板。如果您需要进行更改,可以创建另一个具有类似属性的模板。如需将虚拟机实例模板更新为双栈,请按照以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,转到实例模板页面。

    转到“实例模板”

    1. 点击您要复制和更新的实例模板。
    2. 点击创建类似模板
    3. 展开高级选项部分。
    4. 对于网络标记,请输入 allow-health-check-ipv6
    5. 网络接口部分中,点击添加网络接口
    6. 网络列表中,选择自定义模式 VPC 网络。
    7. 子网列表中,选择 SUBNET
    8. 对于 IP 栈类型,请选择 IPv4 和 IPv6(双栈)
    9. 点击创建
  2. 对与负载均衡器关联的托管式实例组 MIG 开始基本滚动更新

更新可用区级 NEG

可用区级 NEG 端点无法修改。您必须删除 IPv4 端点并创建一个同时具有 IPv4 和 IPv6 地址的新双栈端点。

如需在 REGION_A 区域中设置可用区级 NEG(具有 GCE_VM_IP_PORT 类型的端点),请先在 GCP_NEG_ZONE 可用区中创建虚拟机。然后,将虚拟机网络端点添加到可用区级 NEG。

创建虚拟机

控制台

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到虚拟机实例

  2. 点击创建实例

  3. 名称设置为 vm-a1

  4. 区域字段中,选择 REGION_A,然后在可用区字段中选择任意值。在此过程中,此可用区称为 GCP_NEG_ZONE

  5. 启动磁盘部分中,确保为启动磁盘选项选择了 Debian GNU/Linux 12 (bookworm)。如有必要,请点击选择以更改映像。

  6. 展开高级选项部分,然后进行以下更改:

    • 展开网络部分。
    • 网络标记字段中,输入 allow-health-check
    • 网络接口部分中,进行以下更改:
      • 网络NETWORK
      • 子网SUBNET
      • IP 栈类型IPv4 和 IPv6(双栈)
    • 点击完成
    • 点击管理。在启动脚本字段中,复制并粘贴以下脚本内容。

      #! /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
      
  7. 点击创建

  8. 重复执行下列步骤,使用以下名称和可用区组合创建第二个虚拟机:

    • 名称:vm-a2,可用区:GCP_NEG_ZONE

gcloud

使用虚拟机名称及其可用区的这些组合运行以下命令两次来创建虚拟机。两个虚拟机的脚本内容相同。

  • VM_NAMEvm-a1 和您选择的任何 GCP_NEG_ZONE 可用区
  • VM_NAMEvm-a2 和同一 GCP_NEG_ZONE 可用区

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --stack-type=IPV4_IPV6 \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-health-check \
        --subnet=SUBNET \
        --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'
    

将端点添加到可用区级 NEG

控制台

如需将端点添加到可用区级 NEG,请执行以下操作:

  1. 在 Google Cloud 控制台中,进入网络端点组页面。

    进入“网络端点组”

  2. 名称列表中,点击网络端点组的名称 (ZONAL_NEG)。系统会显示网络端点组详情页面。

  3. 此组中的网络端点部分,选择之前创建的 NEG 端点。点击移除端点

  4. 此组中的网络端点部分,点击添加网络端点

  5. 选择虚拟机实例

  6. 网络接口部分会显示虚拟机的名称、可用区和子网。

  7. IPv4 地址字段中,输入新网络端点的 IPv4 地址。

  8. IPv6 地址字段中,输入新网络端点的 IPv6 地址。

  9. 选择端口类型

    1. 如果您选择默认,端点会使用网络端点组中所有端点的默认端口 80。这足以满足我们的示例需求,因为 Apache 服务器在端口 80 处理请求。
    2. 如果您选择自定义,请输入要供端点使用的端口号
  10. 如需添加更多端点,请点击添加网络端点,并重复上述步骤。

  11. 添加所有端点后,点击创建

gcloud

  1. 将端点(GCE_VM_IP_PORT 端点)添加到 ZONAL_NEG

    gcloud compute network-endpoint-groups update ZONAL_NEG \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80' \
        --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80'
    

请替换以下内容:

IPv4_ADDRESS:网络端点的 IPv4 地址。该 IPv4 必须属于 Compute Engine 中的虚拟机(主要 IP 或作为别名 IP 范围的一部分)。如果未指定 IP 地址,则系统会使用网络端点组所属网络中的虚拟机实例的主要 IP 地址。

IPv6_ADDRESS:网络端点的 IPv6 地址。该 IPv6 地址必须属于网络端点组所属网络中的虚拟机实例(外部 IPv6 地址)。

为 IPv6 健康检查探测创建防火墙规则

您必须创建防火墙规则,以允许从 Google Cloud 探测系统的 IP 地址范围进行健康检查。如需了解详情,请参阅探测 IP 地址范围

确保入站流量规则适用于负载均衡实例,并且允许来自 Google Cloud 健康检查系统的流量。此示例使用目标标记 allow-health-check-ipv6 来标识应应用该规则的虚拟机实例。

如果不使用此防火墙规则,则默认拒绝入站流量规则会阻止传入后端实例的 IPv6 流量。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 如需允许 IPv6 子网流量,请再次点击创建防火墙规则,然后输入以下信息:

    • 名称fw-allow-lb-access-ipv6
    • 网络NETWORK
    • 优先级1000
    • 流量方向入站
    • 目标指定的目标标记
    • 目标标记allow-health-check-ipv6
    • 来源过滤条件IPv6 范围
    • 来源 IPv6 范围

      • 对于全球外部应用负载均衡器和全球外部代理网络负载均衡器,请输入 2600:2d00:1:b029::/642600:2d00:1:1::/64

      • 对于跨区域内部应用负载均衡器、区域级外部应用负载均衡器、区域级内部应用负载均衡器、跨区域内部代理网络负载均衡器、区域级外部代理网络负载均衡器和区域级内部代理网络负载均衡器,请输入 2600:2d00:1:b029::/64

    • 协议和端口允许全部

  3. 点击创建

gcloud

  1. 创建 fw-allow-lb-access-ipv6 防火墙规则以允许与子网通信。

    对于全球外部应用负载均衡器和全球外部代理网络负载均衡器,请使用以下命令:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
        --rules=all
    

    对于跨区域内部应用负载均衡器、区域级外部应用负载均衡器、区域级内部应用负载均衡器、跨区域内部代理网络负载均衡器、区域级外部代理网络负载均衡器和区域级内部代理网络负载均衡器,请使用以下命令:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64 \
        --rules=all
    

为代理专用子网创建防火墙规则

如果您使用的是区域级外部代理网络负载平衡器或内部代理网络负载平衡器,则必须更新入站流量防火墙规则 fw-allow-lb-access-ipv6,以允许流量从代理专用子网流向后端。

如需获取代理专用子网的 IPv6 地址范围,请运行以下命令:

gcloud compute networks subnets describe PROXY_ONLY_SUBNET \
    --region=REGION \
    --format="value(internalIpv6Prefix)"

请记下内部 IPv6 地址范围;此范围在后面称为 IPV6_PROXY_ONLY_SUBNET_RANGE

如需更新代理专用子网的防火墙规则 fw-allow-lb-access-ipv6,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. VPC 防火墙规则面板中,点击 fw-allow-lb-access-ipv6

    • 来源 IPv6 范围2600:2d00:1:b029::/64IPV6_PROXY_ONLY_SUBNET_RANGE
  3. 点击保存

gcloud

  1. 更新 fw-allow-lb-access-ipv6 防火墙规则以允许与代理专用子网通信:

    gcloud compute firewall-rules update fw-allow-lb-access-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,IPV6_PROXY_ONLY_SUBNET_RANGE
    

更新后端服务并创建 IPv6 转发规则

本部分介绍了如何使用双栈后端更新后端服务并创建 IPv6 转发规则。

请注意,只能为全球外部代理网络负载平衡器创建 IPv6 转发规则。跨区域内部代理网络负载平衡器、区域级外部代理网络负载平衡器和区域级内部代理网络负载平衡器不支持 IPv6 转发规则。

控制台

  1. 在 Google Cloud 控制台中,转到负载均衡页面。

    转到“负载均衡”

  2. 点击负载均衡器的名称。

  3. 点击修改

为 IPv6 配置后端服务

  1. 点击后端配置
  2. 对于后端类型,选择可用区级网络端点组
  3. IP 地址选择政策列表中,选择首选 IPv6
  4. 协议字段中:
    • 对于 TCP 代理,选择 TCP
    • 对于 SSL 代理,选择 SSL
  5. 对于可用区级 NEG
    1. 后端部分中,点击添加后端
    2. 新建后端面板中,执行以下操作:
      • 网络端点组列表中,选择 ZONAL_NEG
      • 连接数上限字段中,输入 10
  6. 对于实例组:如果您已将虚拟机实例或模板更新为双栈,则无需进行更新。
  7. 点击完成
  8. 健康检查列表中,选择 HTTP 健康检查。

配置 IPv6 转发规则

跨区域内部代理网络负载平衡器、区域级外部代理网络负载平衡器和区域级内部代理网络负载平衡器不支持 IPv6 转发规则。

  1. 点击前端配置
  2. 点击添加前端 IP 和端口
  3. 名称字段中,输入转发规则的名称。
  4. 协议字段中:
    • 对于 TCP 代理,选择 TCP
    • 对于 SSL 代理,选择 SSL
  5. IP 版本设置为 IPv6
  6. 对于 SSL 代理,在证书列表中,选择相应证书。
  7. 点击完成
  8. 点击更新

gcloud

  1. 将双栈区级 NEG 作为后端添加到后端服务。

    全局

    对于全球外部代理网络负载平衡器,请使用以下命令:

     gcloud compute backend-services add-backend BACKEND_SERVICE \
         --network-endpoint-group=ZONAL_NEG \
         --max-rate-per-endpoint=10 \
         --global
    

    跨区域

    对于跨区域内部代理网络负载平衡器,请使用以下命令:

     gcloud compute backend-services add-backend BACKEND_SERVICE \
         --network-endpoint-group=ZONAL_NEG \
         --max-rate-per-endpoint=10 \
         --global
    

    区域级

    对于区域级外部代理网络负载平衡器和区域级内部代理网络负载平衡器,请使用以下命令:

     gcloud compute backend-services add-backend BACKEND_SERVICE \
         --network-endpoint-group=ZONAL_NEG \
         --max-rate-per-endpoint=10 \
         --region=REGION
    
  2. 将双栈实例组作为后端添加到后端服务。 由于您已将虚拟机实例或模板更新为双栈,因此无需采取进一步行动

  3. 仅适用于全球外部代理网络负载平衡器。如需为具有目标 SSL 代理的全局外部代理网络负载平衡器创建 IPv6 转发规则,请使用以下命令:

    gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --address=lb-ipv6-1 \
       --global \
       --target-ssl-proxy=TARGET_PROXY \
       --ports=80
    

    如需为全球外部代理网络负载平衡器使用目标 TCP 代理创建 IPv6 转发规则,请使用以下命令:

    gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --global \
       --target-tcp-proxy=TARGET_PROXY \
       --ports=80
    

配置 IP 地址选择政策

这是可选步骤。将资源和后端转换为双栈后,您可以使用 IP 地址选择政策指定从后端服务发送到后端的流量类型。

IP_ADDRESS_SELECTION_POLICY 替换为以下任意值:

IP 地址选择政策 说明
仅 IPv4 仅将 IPv4 流量发送到后端服务的后端,无论从客户端到 GFE 的流量如何。仅使用 IPv4 健康检查来检查后端的健康状况。
首选 IPv6

优先考虑后端的 IPv6 连接,而不是 IPv4 连接(前提是存在具有 IPv6 地址且健康状况良好的后端)。

健康检查会定期监控后端的 IPv6 和 IPv4 连接。GFE 会先尝试 IPv6 连接;如果 IPv6 连接中断或速度较慢,则 GFE 会使用 happy eyeballs 回退并连接到 IPv4。

即使其中一个 IPv6 或 IPv4 连接健康状况不佳,后端仍会被视为健康状况良好,并且这两个连接都可以由 GFE 尝试,并通过 happy eyeballs 最终选择使用哪个连接。

仅 IPv6

仅将 IPv6 流量发送到后端服务的后端,无论从客户端到代理的流量如何。仅使用 IPv6 健康检查来检查后端的健康状况。

系统不会执行验证来检查后端流量类型是否与 IP 地址选择政策匹配。例如,如果您使用仅限 IPv4 的后端并选择 Only IPv6 作为 IP 地址选择政策,则配置会导致后端不健康,因为流量无法到达这些后端,并且会向客户端返回 HTTP 503 响应代码。

控制台

  1. 在 Google Cloud 控制台中,转到负载均衡页面。

    转到“负载均衡”

  2. 点击负载均衡器的名称。

  3. 点击修改

  4. 点击后端配置

  5. 后端服务字段中,选择 BACKEND_SERVICE

  6. 后端类型必须是可用区级网络端点组实例组

  7. IP 地址选择政策列表中,选择 IP_ADDRESS_SELECTION_POLICY

  8. 点击完成

gcloud

更新后端服务的 IP 地址选择政策:

全局

对于全球外部代理网络负载平衡器,请使用以下命令:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=SSL | TCP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --global

跨区域

对于跨区域内部代理网络负载平衡器,请使用以下命令:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=TCP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --global

区域级

对于区域级外部代理网络负载平衡器,请使用以下命令:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=TCP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --region=REGION

对于区域级内部代理网络负载平衡器,请使用以下命令:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=TCP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --region=REGION

测试负载均衡器

您必须验证所有必需的资源是否都已更新为双栈。更新所有资源后,流量必须自动流向后端。您可以查看日志并验证转换是否已完成。

测试负载均衡器,以确认转换是否成功,以及传入流量是否按预期到达后端。

查询负载均衡器 IP 地址

控制台

  1. 在 Google Cloud 控制台中,转到负载均衡页面。

    转到“负载均衡”

  2. 点击负载均衡器的名称。

  3. 前端部分中,系统会显示两个负载均衡器 IP 地址。在此过程中,IPv4 地址称为 IP_ADDRESS_IPV4,IPv6 地址称为 IP_ADDRESS_IPV6

  4. 后端部分中,如果 IP 地址选择政策为 Prefer IPv6,则系统会为后端显示两种健康检查状态。

将流量发送到负载均衡器

在此示例中,来自 curl 命令的请求会随机分配到后端。

对于外部负载平衡器

  1. 重复以下命令几次,直到您看到所有后端虚拟机都做出响应:

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    例如,如果 IPv6 地址为 [fd20:1db0:b882:802:0:46:0:0]:80,则该命令类似于以下内容:

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

对于内部负载平衡器

  1. 在负载均衡器所在的 VPC 网络和区域中创建测试客户端虚拟机。它无需位于同一子网或可用区中。

    gcloud compute instances create client-vm \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh \
        --subnet=SUBNET
    
  2. 使用 SSH 连接到客户端实例。

    gcloud compute ssh client-vm \
       --zone=ZONE
    
  3. 重复以下命令几次,直到您看到所有后端虚拟机都做出响应:

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    例如,如果 IPv6 地址为 [fd20:1db0:b882:802:0:46:0:0]:80,则该命令类似于以下内容:

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

查看日志

每个日志条目都会捕获后端的目标 IPv4 和 IPv6 地址。由于我们支持双栈,因此请务必观察后端使用的 IP 地址。

您可以通过查看日志来检查流量是流向 IPv6 还是回退到 IPv4。

日志包含与后端关联的 backend_ip 地址。通过检查日志并比较 backend_ip 的目标 IPv4 或 IPv6 地址,您可以确认使用哪个 IP 地址。