使用后端服务设置外部直通式网络负载均衡器

本指南介绍如何使用区域后端服务创建外部直通网络负载均衡器部署。此示例会创建一个支持 TCP 或 UDP 流量的外部直通式网络负载均衡器。如果您要创建对 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量(不仅仅是 TCP 或 UDP)进行负载均衡的外部直通式网络负载均衡器,请参阅为多个 IP 协议设置外部直通式网络负载均衡器

此示例使用负载均衡器在 us-central1 区域的两个可用区托管式实例组中的后端虚拟机之间分配 TCP 流量。同样有效的方法是为 us-central1 区域使用单个区域级托管式实例组。

具有可用区级实例组的外部直通式网络负载均衡器。
具有可用区级托管式实例组的外部直通式网络负载均衡器(点击可放大)。

此场景会在运行状况良好的实例之间分配 TCP 流量。为了支持此示例,TCP 健康检查配置为有助于确保流量仅发送到健康状况良好的实例。请注意,TCP 健康检查仅支持基于后端服务的负载均衡器。基于目标池的负载均衡器只能使用旧版 HTTP 健康检查。

虽然此示例是对 TCP 流量进行负载均衡,但您可以使用基于后端服务的外部直通式网络负载均衡器 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量进行负载均衡。

外部直通式网络负载均衡器是区域级负载均衡器。所有负载均衡器组件(后端虚拟机、后端服务和转发规则)必须位于同一区域。

准备工作

安装 Google Cloud CLI。如需全面了解此工具,请参阅 gcloud CLI 概览。您可以在 API 和 gcloud 参考文档中找到与负载均衡相关的命令。

如果您之前未运行过 Google Cloud CLI,请先运行 gcloud init 进行身份验证。

本指南假定您熟悉 bash

设置网络和子网

本页面中的示例使用名为 lb-network自定义模式 VPC 网络。如果您只想处理 IPv4 流量,则可以使用自动模式 VPC 网络。 但是,IPv6 流量需要自定义模式子网

IPv6 流量还需要双栈子网(stack-type 设置为 IPV4_IPV6)。在自定义模式 VPC 网络上创建双栈子网时,您可以为子网选择 IPv6 访问类型。在此示例中,我们将子网的 ipv6-access-type 参数设置为 EXTERNAL。这意味着此子网上的新虚拟机可以分配外部 IPv4 地址和外部 IPv6 地址。您还可以为转发规则分配外部 IPv4 地址和外部 IPv6 地址。

用于此示例的后端和负载均衡器组件位于以下区域和子网中:

  • 区域:us-central1
  • 子网:lb-subnet,其主要 IPv4 地址范围为 10.1.2.0/24。虽然您可以选择在子网上配置哪个 IPv4 地址范围,但系统会自动分配 IPv6 地址范围。Google 提供固定大小 (/64) 的 IPv6 CIDR 地址块。

如需创建示例网络和子网,请按照以下步骤操作。

控制台

如需同时支持 IPv4 和 IPv6 流量,请按照以下步骤操作:

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

    进入 VPC 网络页面

  2. 点击创建 VPC 网络

  3. 输入 lb-network 作为名称

  4. 子网部分中执行以下操作:

    • 子网创建模式设置为自定义
    • 新子网部分中,配置以下字段,然后点击完成
      • 名称lb-subnet
      • 区域us-central1
      • IP 栈类型IPv4 和 IPv6(双栈)
      • IPv4 范围10.1.2.0/24
        虽然您可以为子网配置 IPv4 地址范围,但您不能为子网选择 IPv6 地址范围。Google 提供固定大小 (/64) 的 IPv6 CIDR 地址块。
      • IPv6 访问类型外部
  5. 点击创建

如需支持仅限 IPv4 流量,请按以下步骤操作:

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

    进入 VPC 网络页面

  2. 点击创建 VPC 网络

  3. 输入 lb-network 作为名称

  4. 子网部分中执行以下操作:

    • 子网创建模式设置为自定义
    • 新子网部分中,配置以下字段,然后点击完成
      • 名称lb-subnet
      • 区域us-central1
      • IP 栈类型IPv4(单栈)
      • IPv4 范围10.1.2.0/24
  5. 点击创建

gcloud

  1. 创建自定义模式 VPC 网络:

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. lb-network 网络中,为 us-central1 区域中的后端创建子网。

    对于 IPv4 和 IPv6 流量,请使用以下命令创建双栈子网:

    gcloud compute networks subnets create lb-subnet \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=EXTERNAL \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-central1
    

    对于仅限 IPv4 流量,请使用以下命令:

    gcloud compute networks subnets create lb-subnet \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-central1
    

创建可用区代管式实例组

对于此负载均衡场景,您将创建两个 Compute Engine 可用区代管式实例组并在每个实例上安装一个 Apache Web 服务器。

要同时处理 IPv4 和 IPv6 流量,请将后端虚拟机配置为双栈。将虚拟机的 stack-type 设置为 IPV4_IPV6。虚拟机还会从子网继承 ipv6-access-type 设置(在此示例中为 EXTERNAL)。如需详细了解 IPv6 要求,请参阅外部直通式网络负载均衡器概览中的转发规则

如需将现有虚拟机用作后端,请使用 gcloud compute instances network-interfaces update 命令将虚拟机更新为双栈。

作为外部直通式网络负载均衡器的后端虚拟机参与的实例必须运行相应的 Linux 客机环境Windows 客机环境或提供同等功能的其他进程。

设置实例

控制台

Google Cloud 控制台不能用于创建支持 IPv6 连接的双栈实例组。请改用 gcloud CLI 或 REST API。

创建实例模板

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

    转到“实例模板”

  2. 点击创建实例模板

  3. 对于名称,输入 ig-us-template

  4. 启动磁盘部分中,确保将映像设置为 Debian 映像,例如 Debian GNU/Linux 12 (bookworm)。本文中的说明使用仅 Debian 支持的命令,例如 apt-get

  5. 点击高级选项

  6. 点击网络

    1. 对于网络标记,请输入 lb-tag
    2. 对于网络接口,请点击默认接口并配置以下字段:
      • 网络lb-network
      • 子网lb-subnet
    3. 点击完成
  7. 点击管理,并将以下脚本复制到启动脚本字段中。

      #! /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

  8. 点击创建

创建代管式实例组

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

    进入“实例组”

  2. 点击创建实例组

  3. 选择 New managed instance group (stateless)(新的托管式实例组 [无状态])。如需了解详情,请参阅无状态或有状态 MIG

  4. 对于名称,输入 ig-us-1

  5. 对于实例模板,请选择 ig-us-template

  6. 对于位置,选择单个可用区

  7. 对于区域,请选择 us-central1

  8. 对于可用区,请选择 us-central1-a

  9. 指定要在组中创建的实例数。

    对于此示例,请在自动扩缩部分中指定以下选项:

    • 对于自动扩缩模式,请选择 Off:do not autoscale
    • 对于实例数上限,请输入 2
  10. 点击创建

重复上述步骤,在 us-central1-c 可用区中创建第二个托管式实例组,并遵循以下规范: * 名称ig-us-2 * 可用区us-central1-c * 实例模板:使用上一部分中创建的同一 ig-us-template 模板。

gcloud

本指南中的 gcloud 说明假定您使用的是 Cloud Shell 或安装了 bash 的其他环境。

  1. 使用 gcloud compute instance-templates create 命令创建一个具有 HTTP 服务器的虚拟机实例模板。

    如需同时处理 IPv4 和 IPv6 流量,请使用以下命令。

    只有在 ipv6-access-type 设置为 EXTERNAL 的子网中创建虚拟机时,才将 --ipv6-network-tier 设置为 PREMIUM。如果子网的 ipv6-access-typeINTERNAL,则省略该标志。

      gcloud compute instance-templates create ig-us-template \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV4_IPV6 \
          --tags=lb-tag \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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'
    

    要处理仅限 IPv4 流量,请使用以下命令。

      gcloud compute instance-templates create ig-us-template \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --tags=lb-tag \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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 managed create 命令在相应可用区中创建一个托管式实例组。

      gcloud compute instance-groups managed create ig-us-1 \
          --zone us-central1-a \
          --size 2 \
          --template ig-us-template
    
  3. us-central1-c 可用区中创建第二个托管式实例组:

     gcloud compute instance-groups managed create ig-us-2 \
         --zone us-central1-c \
         --size 2 \
         --template ig-us-template
    

配置防火墙规则

创建允许外部流量(包括健康检查探测)到达后端实例的防火墙规则。

此示例会创建一条防火墙规则,以允许来自所有来源范围的 TCP 流量到达端口 80 上的后端实例。如果要专门为健康检查探测创建单独的防火墙规则,请使用健康检查概览的探测 IP 范围和防火墙规则部分中记录的来源 IP 地址范围。

控制台

在 Google Cloud 控制台中,前往防火墙政策页面。

转到“防火墙政策”

如需允许 IPv4 流量,请执行以下步骤:

  1. 点击创建防火墙规则
  2. 对于名称,输入 allow-network-lb-ipv4
  3. 网络列表中,选择 lb-network
  4. 对于目标,选择 Specified target tags
  5. 目标标记字段中,输入 lb-tag
  6. 对于来源过滤条件,选择 IPv4 范围
  7. 来源 IPv4 范围设置为 0.0.0.0/0。这允许来自任何来源的 IPv4 流量。这也允许 Google 的健康检查探测访问后端实例。
  8. 指定的协议和端口部分,选中 TCP 复选框并输入 80
  9. 点击创建。新的防火墙规则可能需要一段时间才能在Google Cloud 控制台中显示,或者您可能需要点击刷新才能看见规则。

如需允许 IPv6 流量,请执行以下步骤:

  1. 再次点击创建防火墙规则
  2. 对于名称,输入 allow-network-lb-ipv6
  3. 网络列表中,选择 lb-network
  4. 对于目标,选择 Specified target tags
  5. 目标标记字段中,输入 lb-tag
  6. 对于来源过滤条件,选择 IPv6 范围
  7. 来源 IPv6 范围设置为 ::/0。这允许来自任何来源的 IPv6 流量。这也允许 Google 的健康检查探测访问后端实例。
  8. 对于指定的协议和端口,选中“TCP” 复选框并输入 80
  9. 点击创建。新的防火墙规则可能需要一段时间才能在控制台中显示,或者您可能需要点击刷新才能看见规则。

gcloud

如需允许 IPv4 流量,请运行以下命令:

  gcloud compute firewall-rules create allow-network-lb-ipv4 \
      --network=lb-network \
      --target-tags=lb-tag \
      --allow=tcp:80 \
      --source-ranges=0.0.0.0/0

如需允许 IPv6 流量,请运行以下命令:

  gcloud compute firewall-rules create allow-network-lb-ipv6 \
      --network=lb-network \
      --target-tags=lb-tag \
      --allow=tcp:80 \
      --source-ranges=::/0

配置负载均衡器

接下来,设置负载均衡器。

配置负载均衡器时,虚拟机实例将接收发往您配置的静态外部 IP 地址的数据包。如果您使用的是 Compute Engine 提供的映像,则系统会自动配置您的实例处理此 IP 地址。如果您使用任何其他映像,则必须将此地址配置为 eth0 上的别名或每个实例上的环回地址。

如需设置负载均衡器,请按照以下说明操作。

控制台

开始配置

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

    转到“负载均衡”

  2. 点击创建负载均衡器
  3. 对于负载均衡器的类型,选择网络负载均衡器 (TCP/UDP/SSL),然后点击下一步
  4. 对于代理或直通,选择直通式负载均衡器,然后点击下一步
  5. 公共或内部字段中,选择公共(外部),然后点击下一步
  6. 点击配置

后端配置

  1. 创建外部直通式网络负载均衡器页面上,输入新负载均衡器的名称 tcp-network-lb
  2. 对于区域,请选择 us-central1
  3. 点击后端配置
  4. 后端配置页面上,进行以下更改:
    1. 对于新建后端,选择 IP 栈类型。如果您创建了双栈后端来处理 IPv4 和 IPv6 流量,请选择 IPv4 和 IPv6(双栈)。如需仅处理 IPv4 流量,请选择 IPv4(单栈)
    2. 实例组列表中,选择 ig-us-1,然后点击完成
    3. 点击添加后端,然后重复此步骤来添加 ig-us-2
    4. 对于健康检查,请点击创建健康检查另创建一项健康检查,然后输入以下信息:
      • 名称tcp-health-check
      • 协议TCP
      • 端口80
    5. 点击保存
  5. 在继续之前,先确认后端配置旁边是否有蓝色对勾标记。

前端配置

  1. 点击前端配置
  2. 对于名称,输入 network-lb-forwarding-rule
  3. 如需处理 IPv4 流量,请按以下步骤操作:
    1. 对于 IP 版本,请选择 IPv4
    2. 内部 IP 用途部分的 IP 地址列表中,选择创建 IP 地址
      1. 保留静态 IP 地址页面上,对于名称,输入 network-lb-ipv4
      2. 点击预留
    3. 对于端口,选择单个。对于端口号,输入 80
    4. 点击完成
  4. 如需处理 IPv6 流量,请按以下步骤操作:

    1. 对于 IP 版本,请选择 IPv6
    2. 对于子网,请选择 lb-subnet
    3. IPv6 范围列表中,选择创建 IP 地址
      1. 保留静态 IP 地址页面上,对于名称,输入 network-lb-ipv6
      2. 点击预留
    4. 对于端口,选择单个。对于端口号,输入 80
    5. 点击完成

    在继续之前,确认前端配置左侧是否有带对勾标记的蓝色圆圈,以验证设置是否成功。

检查配置

  1. 点击检查并最终确定
  2. 查看负载均衡器配置设置。
  3. 可选:点击等效代码以查看用于创建负载均衡器的 REST API 请求。
  4. 点击创建

    在负载均衡页面上,在新负载均衡器的后端列中,确认有一个绿色对勾标记,表明新的负载均衡器运行正常。

gcloud

  1. 预留静态外部 IP 地址。

    对于 IPv4 流量

    为负载均衡器创建静态外部 IP 地址

     gcloud compute addresses create network-lb-ipv4 \
         --region us-central1
    

    对于 IPv6 流量

    为负载均衡器创建静态外部 IPv6 地址范围。使用的子网必须是具有外部 IPv6 范围的双栈子网。

     gcloud compute addresses create network-lb-ipv6 \
         --region us-central1 \
         --subnet lb-subnet \
         --ip-version IPV6 \
         --endpoint-type NETLB
    
  2. 创建 TCP 健康检查。

    gcloud compute health-checks create tcp tcp-health-check \
        --region us-central1 \
        --port 80
    
  3. 创建后端服务

    gcloud compute backend-services create network-lb-backend-service \
        --protocol TCP \
        --health-checks tcp-health-check \
        --health-checks-region us-central1 \
        --region us-central1
    
  4. 将实例组添加到后端服务。

    gcloud compute backend-services add-backend network-lb-backend-service \
        --instance-group ig-us-1 \
        --instance-group-zone us-central1-a \
        --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
        --instance-group ig-us-2 \
        --instance-group-zone us-central1-c \
        --region us-central1
    
  5. 根据您希望处理 IPv4 流量还是 IPv6 流量,创建转发规则。创建两个转发规则来处理这两种流量。

    1. 对于 IPv4 流量

      创建转发规则,将传入的 TCP 流量路由到后端服务。使用第 1 步中预留的 IPv4 地址作为负载均衡器的静态外部 IP 地址。

       gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv4 \
           --load-balancing-scheme EXTERNAL \
           --region us-central1 \
           --ports 80 \
           --address network-lb-ipv4 \
           --backend-service network-lb-backend-service
      
    2. 对于 IPv6 流量

      创建转发规则以处理 IPv6 流量。使用第 1 步中预留的 IPv6 地址范围作为负载均衡器的静态外部 IP 地址。使用的子网必须是具有外部 IPv6 子网范围的双栈子网。

       gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv6 \
           --load-balancing-scheme EXTERNAL \
           --region us-central1 \
           --network-tier PREMIUM \
           --ip-version IPV6 \
           --subnet lb-subnet \
           --address network-lb-ipv6 \
           --ports 80 \
           --backend-service network-lb-backend-service
      

测试负载均衡器

至此您已经配置好了负载均衡服务,接下来可以开始将流量发送到负载均衡器的外部 IP 地址,并观察流量被分发到不同的后端实例。

查询负载均衡器的外部 IP 地址

控制台

  1. 在 Google Cloud 控制台中,前往负载均衡组件负载均衡页面。

    前往“负载均衡组件”

  2. 转发规则标签页上,找到负载均衡器使用的转发规则。

  3. 外部 IP 地址列中,记下列出的外部 IP 地址。

gcloud:IPv4

输入以下命令,查看负载均衡器使用的 network-lb-forwarding-rule 转发规则的外部 IPv4 地址。

gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv4 \
    --region us-central1

gcloud:IPv6

输入以下命令,查看负载均衡器使用的 network-lb-forwarding-rule 转发规则的外部 IPv6 地址。

gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv6 \
    --region us-central1

将流量发送到负载均衡器

使用 curl 连接负载均衡器的 IP 地址,通过这种方式向负载均衡器发送 Web 请求。

  • 从具有 IPv4 连接的客户端,运行以下命令:

    while true; do curl -m1 IPV4_ADDRESS; done
    
  • 从具有 IPv6 连接的客户端,运行以下命令:

    while true; do curl -m1 http://IPV6_ADDRESS; done
    

    例如,如果分配的 IPv6 地址为 [2001:db8:1:1:1:1:1:1/96]:80,则该命令类似于以下内容:

    while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:80; done
    

请注意 curl 命令返回的结果。该结果文本中显示了生成响应的后端虚拟机的名称,例如:Page served from: VM_NAME

来自 curl 命令的响应会在后端实例之间随机交替。如果响应最初不成功,您可能需要等待大约 30 秒,以便完全加载配置并且实例被标记为运行状况良好,然后再次尝试。

其他配置选项

本部分对配置示例进行了扩展,以提供有关进一步自定义外部直通式网络负载均衡器的说明。这些任务是可选的。您可以按任意顺序执行这些任务。

配置会话亲和性

示例配置会创建一个停用了会话亲和性的后端服务(值设置为 NONE)。本部分介绍如何更新后端服务以更改负载均衡器的会话亲和性设置。

如需了解支持的会话亲和性类型,请参阅会话亲和性选项

控制台

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

    转到“负载均衡”

  2. 负载均衡器标签页中,点击后端服务的名称,然后点击修改

  3. 修改外部直通式网络负载均衡器页面上,点击后端配置

  4. 会话亲和性列表中选择一个选项。

  5. 点击更新

gcloud

使用以下 gcloud 命令更新后端服务的会话亲和性:

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --session-affinity=SESSION_AFFINITY_OPTION

请将占位符替换为有效值:

  • BACKEND_SERVICE:您要更新的后端服务
  • SESSION_AFFINITY_OPTION:您要设置的会话亲和性选项

    如需查看外部直通式网络负载均衡器支持的值列表,请参阅会话亲和性选项

配置连接跟踪政策

示例配置会创建具有连接跟踪政策的默认设置的后端服务。本部分介绍如何更新后端服务以更改负载均衡器的默认连接跟踪政策。

连接跟踪政策包括以下设置:

gcloud

使用以下 gcloud compute backend-services 命令更新后端服务的连接跟踪政策:

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --tracking-mode=TRACKING_MODE \
    --connection-persistence-on-unhealthy-backends=CONNECTION_PERSISTENCE_BEHAVIOR

请将占位符替换为有效值:

  • BACKEND_SERVICE:您要更新的后端服务
  • TRACKING_MODE:要用于传入数据包的连接跟踪模式。如需查看受支持值的列表,请参阅跟踪模式
  • CONNECTION_PERSISTENCE_BEHAVIOR:后端运行状况不佳时的连接持久性行为。如需查看受支持值的列表,请参阅运行状况不佳的后端上的连接持久性

配置流量导向

本部分介绍如何更新负载均衡器的前端配置,以设置基于来源 IP 地址的流量导向。如需详细了解流量导向的运作方式,请参阅流量导向

以下说明假定您已创建父级基本转发规则。此示例将创建另一个转发规则,即导向转发规则,该规则将具有与父级规则相同的 IP 地址、IP 协议和端口。此导向转发规则配置有来源 IP 地址范围,您可以自定义来自这些来源 IP 地址范围的数据包的转发方式。

gcloud

使用以下命令创建指向后端服务的导向转发规则:

gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_BS \
    --load-balancing-scheme=EXTERNAL \
    --backend-service=BACKEND_SERVICE \
    --address=LOAD_BALANCER_VIP \
    --ip-protocol=IP_PROTOCOL \
    --ports=PORTS \
    --region=REGION \
    --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES

使用以下命令创建指向目标实例的导向转发规则:

gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_TI \
    --load-balancing-scheme=EXTERNAL \
    --target-instance=TARGET_INSTANCE \
    --address=LOAD_BALANCER_VIP \
    --ip-protocol=IP_PROTOCOL \
    --ports=PORTS \
    --region=REGION \
    --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES

请将占位符替换为有效值:

  • STEERING_FORWARDING_RULE_BSSTEERING_FORWARDING_RULE_TI:要创建的导向转发规则的名称。
  • BACKEND_SERVICETARGET_INSTANCE:此导向转发规则将向其发送流量的后端服务或目标实例的名称。即使父级转发规则指向后端服务,您也可以创建指向目标实例的导向转发规则。
  • LOAD_BALANCER_VIPIP_PROTOCOLPORTS:您要创建的导向转发规则的 IP 地址、IP 协议和端口。这些设置必须与预先存在的基本转发规则匹配。
  • REGION:您正在创建的转发规则的区域。
  • SOURCE_IP_ADDRESS_RANGES:以逗号分隔的 IP 地址或 IP 地址范围的列表。只有在传入数据包的来源 IP 地址属于此处设置的其中一个 IP 地址范围时,此转发规则才会转发流量。

使用以下命令删除导向转发规则。您必须先删除负载均衡器正在使用的所有导向转发规则,然后才能删除负载均衡器本身。

gcloud compute forwarding-rules delete STEERING_FORWARDING_RULE \
    --region=REGION

配置故障切换政策

如需配置故障切换政策,请参阅为外部直通式网络负载均衡器配置故障切换

配置加权负载均衡

如需配置加权负载均衡,请参阅配置加权负载均衡

创建使用 BYOIP 的 IPv6 转发规则

前面步骤中创建的负载均衡器配置了 IP versionIPv4IPv6 的转发规则。本部分介绍了如何创建使用自备 IP (BYOIP) 地址的 IPv6 转发规则。

利用自备 IP 地址,您可以为 Google Cloud 资源预配和使用您自己的公共 IPv6 地址。如需了解详情,请参阅自备 IP 地址

在开始使用 BYOIP 地址配置 IPv6 转发规则之前,您必须完成以下步骤:

  1. 创建公开通告 IPv6 前缀
  2. 创建公开委派前缀
  3. 创建 IPv6 子前缀
  4. 公布前缀

如需创建新的转发规则,请按以下步骤操作:

控制台

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

    转到“负载均衡”

  2. 点击要修改的负载均衡器的名称。
  3. 点击修改
  4. 点击前端配置
  5. 点击添加前端 IP 和端口
  6. 新建前端 IP 和端口部分中,指定以下内容:
    1. 选择所需的协议
    2. IP 版本字段中,选择 IPv6
    3. IPv6 范围的来源字段中,选择 BYOIP
    4. IP 集合列表中,选择在上述步骤中创建的启用了转发规则选项的子前缀。
    5. IPv6 范围字段中,输入 IPv6 地址范围。IPv6 地址范围的前缀必须与关联子前缀指定的可分配前缀长度一致。
    6. 端口字段中,输入端口号。
    7. 点击完成
  7. 点击更新

gcloud

使用 gcloud compute forwarding-rules create 命令创建转发规则:

gcloud compute forwarding-rules create FWD_RULE_NAME \
    --load-balancing-scheme EXTERNAL \
    --ip-protocol PROTOCOL \
    --ports ALL \
    --ip-version IPV6 \
    --region REGION_A \
    --address IPV6_CIDR_RANGE  \
    --backend-service BACKEND_SERVICE \
    --ip-collection PDP_NAME

替换以下内容:

  • FWD_RULE_NAME:转发规则的名称。
  • PROTOCOL:转发规则的 IP 协议。默认值为 TCP。 对于此示例,IP 协议可以是 TCPUDP 之一。
  • REGION_A:转发规则的区域
  • IPV6_CIDR_RANGE:转发规则处理的 IPv6 地址范围。IPv6 地址范围的前缀必须与关联子前缀指定的可分配前缀长度一致。
  • BACKEND_SERVICE:后端服务的名称
  • PDP_NAME:公开委派前缀的名称。PDP 必须是 EXTERNAL_IPV6_FORWARDING_RULE_CREATION 模式下的子前缀

后续步骤