使用自备 IP 地址

您可以在 Google Cloud 中使用自备 IP 地址 (BYOIP)。在我们验证您拥有该 IP 范围并将 IP 地址导入 Google Cloud 之后,您可以将这些地址分配给支持的资源

通过实时迁移,您可以控制 Google 何时为您的前缀启动通告路由。默认情况下,实时迁移不可用。如需申请访问权限,请与您的 Google Cloud 客户工程师联系。

须知事项

  • 将自备 IP 地址接入 Google Cloud 需要仔细规划。 请参阅自备 IP 以获取规划指导。

  • 考虑使用组织,并创建一个管理 BYOIP 地址的专用项目。如需了解详情,请参阅项目架构

  • 验证您要导入的前缀的任何部分是否均未公开通告。如果是,则必须使用实时迁移

角色

如需获得完成本指南中的任务所需的权限,请让您的管理员为您授予项目的 Compute Public IP Admin (roles/compute.publicIpAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

限制

  • 预配公开通告前缀最多需要四周时间。预配无法加速。

  • 如果前缀带有公开通告前缀的父级,则预配公开委派前缀最多需要四周时间。预配无法加速。

    等待不适用于子前缀,即公开委派前缀且带有公开委派前缀父级。

  • 创建全球公开委派前缀受到限制。如需了解详情,请参阅全球公开委派前缀

  • 公开通告前缀的大小可介于 /16/24 之间。

  • 公开委派前缀的大小为 /17/28

  • 创建公开委派前缀时,您不能配置前缀大小与父级公开通告前缀相同的前缀。例如,如果公开通告的前缀为 /24,则公开委托的前缀必须为 /25 或更小。

  • 公开委托的前缀最多可从公开通告的前缀中子委托三次。如需了解详情,请参阅创建子前缀

  • 通过公开委派前缀创建地址时,地址组的大小可介于 /28/17 之间。您不能创建更小的地址组,例如单个 /32 地址。

  • 如果您在 VPC 网络中使用以不公开方式使用的公共 IP 地址,则导入的前缀不能与这些 IP 地址重叠。请勿将导入的前缀用作以不公开方式使用的公共 IP 地址。

  • 不支持导入 IPv6 地址。

  • 具有全局范围的公开委派前缀不支持实时迁移。如需了解详情,请参阅实时迁移

支持 BYOIP 地址

BYOIP 地址是静态外部 IP 地址,并且可用于支持静态外部 IP 地址的大多数资源。不过,也有一些例外情况:

  • Cloud VPN 支持将 BYOIP 地址用作传统 VPN 网关隧道的对等 IP 地址。但是,您不能将 BYOIP 地址用作高可用性 VPN 网关隧道的对等 IP 地址。

  • Cloud VPN 不支持将 BYOIP 地址用作传统 VPN 或高可用性 VPN 网关隧道的外部 IP 地址。

  • 您可以在共享 VPC 宿主项目中创建 BYOIP 地址,并且可以在服务项目中使用宿主项目 IP 地址。但是,共享 VPC 不支持在服务项目中创建 BYOIP 地址。

  • 您可以使用 BYOIP 地址创建与适用于外部 HTTP(S) 负载均衡器的 GKE Ingress 搭配使用的外部转发规则。但是,Google Kubernetes Engine 节点和 Pod 不支持 BYOIP 地址。

  • 有状态代管式实例组 (MIG) 支持使用 BYOIP 地址在 MIG 中创建虚拟机时配置静态 IP 地址。但是,自动将 IP 地址分配给虚拟机的 MIG 不支持 BYOIP。

验证前缀的所有权

创建公开通告前缀时,您需要完成两个任务,让 Google 验证您是否验证此前缀:

  • 为您的前缀创建路由来源授权 (ROA)。
  • 为前缀中的 IP 地址创建 PTR 记录。

以下部分概述了这些验证任务的详细信息。

验证完成后,公开通告前缀配置最多需要四周才能完成。

创建 ROA 请求

如需证明您对某个前缀的所有权,请创建路由来源授权 (ROA) 请求。

提交带有区域注册表的 ROA 请求,以获取您希望 Google 通告的前缀。请求包含前缀、前缀长度和 Google 的 ASN:396982

创建公开通告的前缀时,此前缀的 ROA 必须存在并指向 Google 的 ASN,并且在您删除公开通告的前缀后的一段时间内仍然有效。如需了解详情,请参阅移除 ROA

我们建议您提交具有相同前缀和前缀长度的另一个 ROA 请求,但使用您自己的 ASN 作为来源。如果您需要通告此前缀,则带有 ASN 的 ROA 可防止使用资源公钥基础架构 (RPKI) 的网络将前缀视为无效,因为它也会通过 Google 的来源 ASN 通告。

您的本地区域互联网注册表处理 ROA 请求。如需了解详情,请参阅您的位置链接:

  • AFRINIC(非洲)
  • APNIC(亚洲和大洋洲部分地区)
  • ARIN(北美和部分加勒比群岛)
  • LACNIC(拉丁美洲)
  • RIPE NCC(欧洲、中亚、中东)

创建公开通告前缀

您可以为要在 Google 中使用的前缀创建公开通告前缀

除非删除和重新创建资源,则无法更改公开通告前缀名称。因此,我们建议您创建不需要更改的通用名称,例如 pap-203-0-113-0-24,其中 pap 表示资源类型,203-0-113-0-24 表示特定前缀和前缀长度。

如果您要使用公开通告前缀来创建全球公开委派前缀,请参阅全球公开委派前缀

选择未使用的 IP 地址进行 DNS 验证。验证要求您为此 IP 地址配置新的 PTR 记录,并且您在创建公开通告前缀之前不知道主机名。

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 点击添加 PAP

  3. 名称部分,输入公开通告前缀的名称。

  4. 说明部分,输入公开通告前缀的可选说明。

  5. 前缀部分,输入要导入的前缀。

  6. 点击下一步

  7. 检查您输入的信息。如需确认您拥有此前缀,请点击确认

  8. IP 地址部分,输入要添加的前缀中未使用的 IP 地址。此地址用于 DNS 验证,在后续步骤中,您必须为它创建一个使用 Google 提供的主机名的 PTR 记录。

  9. 点击创建验证页面会显示此请求的验证状态。

gcloud

使用 public-advertised-prefixes create 命令

gcloud compute public-advertised-prefixes create PAP_NAME \
    --range=PAP_IP_RANGE] \
    --dns-verification-ip=VERIFICATION_IP_ADDRESS

替换以下内容:

  • PAP_NAME:您正在创建的公开通告前缀的名称。

  • PAP_IP_RANGE:公开通告前缀的 IP 范围。

  • VERIFICATION_IP_ADDRESS:从 PAP_IP_RANGE 中选择的未使用的 IP 地址。此地址用于 DNS 验证,在后续步骤中,您必须为它创建一个使用 Google 提供的主机名的 PTR 记录。

如需了解详情,请参阅 gcloud compute public-advertised-prefixes create 参考文档。

查找用于 PTR 记录的名称

当您创建公开通告前缀时,Google 会为您生成一个名称,以用作 PTR 验证步骤的主机名。

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 点击您要更新的前缀的检查状态

  3. 用于 PTR 验证的名称和 IP 地址会在 DNS 验证部分显示。

gcloud

  1. 如需从 sharedSecret 字段获取名称,请使用 public-advertised-prefixes describe 命令

    gcloud compute public-advertised-prefixes describe \
        PAP_NAME --format='value(sharedSecret)'
    
  2. 如果需要,您可以检索为 DNS 验证提供的 IP 地址。

    gcloud compute public-advertised-prefixes describe \
        PAP_NAME --format='value(dnsVerificationIp)'
    

在这两个命令中,将 PAP_NAME 替换为公开通告的前缀的名称。

创建 PTR 记录

  • 主机名:Google 提供的名称 (sharedSecret)
  • IP 地址:您在创建公开通告的前缀时使用的验证 IP 地址

例如,如果您导入前缀 203.0.113.0/24,验证 IP 地址为 203.0.113.144,Google 提供的名称为 55kk88tt00,则所需的 PTR 记录将如下所示:

$ dig +noall +answer -x 203.0.113.144

144.113.0.203.in-addr.arpa. 21599 IN PTR 55kk88tt99.example.net

如果您对此 IP 地址使用 Cloud DNS,请参阅添加记录

验证 PTR 记录

创建 PTR 记录后,更新公开通告前缀以触发 PTR 记录验证。

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 点击您要更新的前缀的检查状态

  3. DNS 验证部分,选中我已创建此 PTR 记录复选框,然后点击验证

gcloud

如需将公开通告的前缀的状态更改为 PTR-CONFIGURED,请使用 public-advertised-prefixes update 命令

状态更改会触发 PTR 记录的验证。如果成功,状态将变为 VALIDATED。如果失败,状态会变为 REVERSE_DNS_LOOKUP_FAILED

gcloud compute public-advertised-prefixes update PAP_NAME --status=PTR-CONFIGURED

PAP_NAME 替换为您为其创建 PTR 记录的公开通告的前缀。

检查公开通告前缀的状态

Google 最长可能需要四周时间才能预配公开通告前缀。您可以检查状态以查看配置是否已完成。

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 点击您要检查的前缀的检查状态

  3. 查看验证部分。

gcloud

如需描述公开通告的前缀并获取其状态,请使用 public-advertised-prefixes describe 命令

验证前缀后,状态字段会从 VALIDATED 更改为 PREFIX_CONFIGURATION_COMPLETE

gcloud compute public-advertised-prefixes describe PAP_NAME --format='value(status)'

PAP_NAME 替换为您要获取状态信息的公开通告前缀。

创建公开委派前缀

您可以在公开通告前缀创建完成之前创建公开委派前缀。公开通告前缀和公开委派前缀预配过程最多可能需要四周。

如果不删除并重新创建资源,公开委托的前缀名称就无法更改。因此,我们建议您创建不需要更改的通用名称,例如 pdp-203-0-113-0-25,其中 pdp 表示资源类型,203-0-113-0-25 表示特定前缀和前缀长度。

如需创建全球公开委托的前缀,您必须使用仅用于全球公开委托的前缀且位于已添加到全球前缀许可名单的项目中的公开通告前缀。如需了解详情,请参阅全球公开委派前缀

如果您使用的是实时迁移,则必须在启用实时迁移的情况下在给定公开通告前缀中创建所有公共委派前缀,以防止公共通告前缀被通告。如需了解详情,请参阅实时迁移。 您必须创建包含区域范围的公开委派前缀。如需了解详情,请参阅实时迁移建议。在创建公开委派前缀之前,确保您的项目已启用实时迁移。

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 点击要委派的公开通告前缀。

  3. 点击创建 PDP

  4. 名称部分,输入公开委派前缀的名称。

  5. 说明部分,输入公开委托的前缀的说明(可选)。

  6. 为公开委派的前缀选择前缀长度

  7. 为公开委派的前缀选择 IP 地址

  8. 为公开委派的前缀选择一个范围

  9. 为公开委派的前缀选择一个项目

  10. 点击创建

gcloud

如需创建公开委托的前缀,请使用 public-delegated-prefixes create 命令

以下示例演示了如何创建公开委托的前缀:

  • 如需创建停用了实时迁移的公开委托的前缀,请运行以下命令:

    gcloud compute public-delegated-prefixes create PDP_NAME \
        --public-advertised-prefix=PAP_NAME \
        --range=PDP_IP_RANGE \
        --region=PDP_REGION
    
  • 如需创建启用了实时迁移的公开委托的前缀,请运行以下命令:

    gcloud compute public-delegated-prefixes create PDP_NAME \
        --public-advertised-prefix=PAP_NAME \
        --range=PDP_IP_RANGE \
        --enable-live-migration \
        --region=PDP_REGION
    

替换以下内容:

  • PDP_NAME:您正在创建的公开委派前缀的名称。

  • PAP_NAME:用于创建公开委派前缀的名称。

  • PDP_IP_RANGE:用于创建公开委托的前缀的 IP 范围。

  • PDP_DESCRIPTION:(可选)公开委托的前缀的说明。

  • PDP_REGION:您要在其中使用公开委托的前缀地址的区域。如果您要改为使用全球公开委托的前缀,请将 --region=PDP_REGION 替换为 --global

检查公开委派前缀的状态

Google 最多需要四周时间才会通告前缀。在首次创建公开委派的前缀时,状态为 INITIALIZING

配置完成后,公开委派的前缀的状态会更改为 ANNOUNCED

如果创建了公开的委托前缀并启用实时迁移,则配置完成后,状态会更改为 READY_TO_ANNOUNCE。使用实时迁移时,在启动前缀通告之前,系统不会公布前缀。

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 状态列显示所有公开委托的前缀的状态。

gcloud

如需描述公开委托的前缀并获取其状态,请使用 public-delegated-prefixes describe 命令

gcloud compute public-delegated-prefixes describe PDP_NAME \
    --region=PDP_REGION \
    --format='value(status)'

替换以下内容:

  • PDP_NAME:您要获取其信息的公开委派前缀或子前缀。

  • PDP_REGION:公开委托的前缀或子前缀的区域。

  • PDP_REGION:您要在其中使用公开委托的前缀地址的区域。如果您要改为使用全球公开委托的前缀,请将 --region=PDP_REGION 替换为 --global

创建子前缀

您可以创建子前缀,将公开委托的前缀划分为较小的 IP 地址范围。子前缀是具有公开委托前缀父级的公开委托前缀。

如果不删除并重新创建资源,则无法更改子前缀名称。因此,我们建议您创建不需要更改的通用名称,例如 sub-203-0-113-0-28,其中 sub 表示资源类型,203-0-113-0-28 表示特定前缀和前缀长度。

公开委托前缀最多可从公开通告前缀中委托三次。例如,如果您有一个 IP 地址范围为 203.0.113.0/24 的公开通告的前缀,则可以执行以下操作:

  • 从公开通告前缀中创建具有 IP 地址范围 203.0.113.0/25 的公开委托前缀。
  • 创建一个 IP 地址范围为 203.0.113.0/26 的子前缀,它以上一个公开委托前缀为父级。
  • 创建一个 IP 地址范围为 203.0.113.0/27 的子前缀,它以上一个子前缀为父级。

目前,您无法创建以 203.0.113.0/27 子前缀为父级的更多子前缀。

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 点击您要细分的公开委派前缀。

  3. 点击创建子前缀

  4. 为子前缀输入名称说明(可选)。

  5. 选择子前缀的前缀长度

  6. 为子前缀选择 IP 地址

  7. 为子前缀选择一个项目。这些 IP 地址仅在此项目中可用。

  8. 点击创建

gcloud

如需通过公开委托的前缀创建子前缀,请使用 public-delegated-prefixes delegated-sub-prefixes create 命令

gcloud compute public-delegated-prefixes \
    delegated-sub-prefixes \
    create SUB_PREFIX_NAME \
    --range=SUB_PREFIX_RANGE \
    --public-delegated-prefix=PDP_NAME \
    --public-delegated-prefix-region=PDP_REGION \
    --delegatee-project=PROJECT_NAME

替换以下内容:

  • SUB_PREFIX_NAME:您要创建的子前缀的名称。

  • SUB_PREFIX_RANGE:您要创建的子前缀的 IP 地址范围。

  • PDP_NAME:包含您要创建的子前缀的父级公开委派前缀或子前缀。

  • PDP_REGION:包含您要创建的子前缀的公开委托前缀或子前缀的区域。

  • PROJECT_NAME:(可选)子前缀的项目名称。下面介绍了此值的行为:

    • 如果您指定了值,则这些 IP 地址只能在指定的项目中使用。

    • 如果不使用 --delegatee-project,则这些 IP 地址在子前缀的父级公开委托的前缀或子前缀所在的项目中可用。

创建 IP 地址

根据公开委派前缀或子前缀创建地址时,无法进一步细分该前缀。

您通过公开委派前缀或子前缀创建的 IP 地址是静态外部 IP 地址,可以是区域或全局地址。公开委派前缀或子前缀中的所有 IP 地址都可用;没有预留的网络地址或广播地址。例如,如果您从 /28 公开委派前缀或子前缀创建 IP 地址,系统会创建 16 个 IP 地址资源。

您可以列出所有静态外部 IP 地址。此列表包括您已转到 Google Cloud 的 IP 地址和 Google 提供的 IP 地址。

创建 BYOIP 地址时,其名称采用一致的格式。例如,203.0.113.144 命名为 address-203-0-113-144

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 点击您要在其中创建 IP 地址的公开委托的前缀或子前缀。

  3. 点击创建地址

  4. 选择前缀长度

  5. 选择您想要创建的 IP 地址

  6. 点击创建地址

gcloud

如需通过公开委托的前缀或子前缀创建 IP 地址,请使用 public-delegated-prefixes delegated-sub-prefixes create 命令

gcloud compute public-delegated-prefixes \
    delegated-sub-prefixes \
    create ADDRESSES_NAME \
    --create-addresses \
    --public-delegated-prefix=PDP_NAME \
    --public-delegated-prefix-region=PDP_REGION

替换以下内容:

  • ADDRESSES_NAME:您正在创建的一组地址的名称。

  • PDP_NAME:要为其创建 IP 地址的公开委派前缀或子前缀。

  • PDP_REGION:您要为其创建 IP 地址的公开委托的前缀或子前缀的区域。

列出前缀

您可以列出项目中的所有公开通告前缀和公开委派前缀(包括子前缀)。

控制台

  1. 在 Google Cloud 控制台中,转到自备 IP

    转到自备 IP 地址

  2. 系统会显示所有公开通告的前缀、公开委托的前缀和子前缀。

gcloud

  • 如需列出公开通告的前缀,请使用 public-advertised-prefixes list 命令

    gcloud compute public-advertised-prefixes list
    

    输出类似于以下内容:

    NAME                RANGE           DNS_VERIFICATION_IP  STATUS
    pap-203-0-113-0-24  203.0.113.0/24  203.0.113.0          PTR_CONFIGURED
    
  • 如需列出公开委托的前缀(包括子前缀),请使用 public-delegated-prefixes list 命令

    gcloud compute public-delegated-prefixes list
    

    输出类似于以下内容:

    NAME                   LOCATION     PARENT_PREFIX         RANGE            STATUS
    pdp-203-0-113-0-25     global       pap-203-0-113-0-24    203.0.113.0/25   ANNOUNCED
    sub-203-0-113-0-26     global       pdp-203-0-113-0-25    203.0.113.0/26   ANNOUNCED
    

取消预配 BYOIP 地址

取消预配 BYOIP 地址时,请按顺序完成以下部分中的步骤。

删除公开委派前缀或子前缀

如果前缀中的所有 IP 地址未分配给资源,您可以删除公开委派前缀或子前缀;也就是说,IP 地址未分配。删除前缀时,所有关联的 IP 地址都会被删除。

如果父级前缀是公开通告前缀,则最长可能需要 4 周时间才能完成删除操作。删除过程开始后,您便无法更改公开委派前缀。

如果父前缀是公开委派前缀(即如果前缀是子前缀),则系统会立即进行删除。

删除完成后,已删除的公开委派前缀中的 IP 地址范围将采用公开通告前缀,并且可以委派给新的公开委派前缀。

控制台

  1. 在 Google Cloud 控制台中,进入自备 IP 页面。

    转到自备 IP 地址

  2. 点击您要删除的公开委托的前缀,然后点击删除

gcloud

如需删除公开委托的前缀或子前缀,请使用 public-delegated-prefixes delete 命令

gcloud compute public-delegated-prefixes delete PDP_NAME \
    --region=PDP_REGION

如需删除全球公开委托的前缀或子前缀,请将 --region=PDP_REGION 替换为 --global

如果前缀是从此项目委托给另一个项目的,请结合使用 --project=PROJECT_NAME 标志和 public-delegated-prefixes delete 命令来指定前缀所在的项目。

或者,您可以使用以下命令删除委托给另一个项目的子前缀,而无需在该命令中包含该项目。

gcloud compute public-delegated-prefixes \
    delegated-sub-prefixes \
    delete SUB_PREFIX_NAME \
    --public-delegated-prefix=PARENT_PDP_NAME \
    --public-delegated-prefix-region=PDP_REGION

如需删除全球公开委托的前缀或子前缀,请将 --public-delegated-prefix-region=PDP_REGION 替换为 --global-public-delegated-prefix

删除公开通告前缀

如果公开通告前缀未使用,您可以将其删除。删除操作最长可能需要四周时间。删除过程开始后,您便无法更改公开通告前缀。

控制台

  1. 在 Google Cloud 控制台中,进入自备 IP 页面。

    转到自备 IP 地址

  2. 选择您要删除的公开通告的前缀,然后点击删除前缀

gcloud

如需删除公开通告的前缀,请使用 public-advertised-prefixes delete 命令

gcloud compute public-advertised-prefixes delete PAP_NAME \

您可以通过检查公开通告前缀的状态来验证移除操作处于待处理状态。状态为 PREFIX_REMOVAL_IN_PROGRESS,直到公开通告前缀被删除。

移除 ROA

成功删除公开通告的前缀后,您无需移除指向 Google 的 ASN 的 ROA。如果您要移除此 ROA,则必须在删除公开通告的前缀后先等待 14 天,然后再移除 ROA。等待期让 Google Cloud 有时间更新配置,以便停止通告您的 IP 地址范围。

使用实时迁移

请务必仔细规划实时迁移。如需了解详情,请参阅实时迁移

开始前缀通告

如果您已创建启用了实时迁移的所有公开委派前缀,则可以选择何时开始公布父级公开通告前缀。

当您准备好让 Google 公布公开通告前缀时,请进行以下某个配置更改。任一更改都会导致向互联网通告公开通告前缀:

  • 使用 BYOIP 地址配置资源。例如,创建计算实例、Cloud NAT 或 Cloud Load Balancing 转发规则。

  • 在公开通告前缀中创建一个公开委派前缀,而无需启用实时迁移。

如果进行了以上任一更改,则相应的公开委派前缀会立即在 Google 网络上投放广告,并且整个公开通告前缀将推广给互联网上的对等体。

实时迁移完成后,请与您的 Google Cloud 客户工程师联系,以便他们为您的前缀停用实时迁移。默认情况下,实时迁移会在您开始通告公开通告的前缀后 30 天停用。如果您需要将实时迁移选项保留 30 天以上,请与您的客户工程师联系。

撤销前缀通告

如果您需要撤销通告,请重新配置资源,以便所有资源均不使用公开通告前缀 IP 范围内的 IP 地址。将所有 IP 地址从资源中取消分配后,公开委派前缀会从 Google 网络中撤消,而公开通告前缀会从互联网中撤消。

如要撤消公开通告前缀的广告,您必须确保:

  • 公开通告前缀中的所有公开委派前缀均创建并启用实时迁移。

  • 系统不会将公开通告前缀范围内的 IP 地址分配给资源。

后续步骤