使用自备 IP

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

通过实时迁移,您可以控制 Google 何时为您的前缀启动通告路由。默认情况下,实时迁移不可用。如要请求访问权限,请联系您的 Google Cloud 代表。

角色

Compute Public IP Admin (roles/compute.publicIpAdmin) 提供执行本指南中的任务所需的权限。

准备工作

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

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

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

限制

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

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

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

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

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

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

  • 公开委派前缀最多可从公开通告前缀中移除三次。

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

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

  • 不支持导入 IPv6 地址。

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

支持 BYOIP 地址

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

  • Cloud VPN 不支持使用 BYOIP 地址。

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

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

  • 代管式实例组 (MIG) 不支持 BYOIP 地址,因为系统会自动分配 MIG 虚拟机 IP 地址。

验证前缀的所有权

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

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

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

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

创建 ROA 请求

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

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

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

此前缀的 ROA 必须存在,然后再在您创建公开通告前缀时指向 Google 的 ASN,直到您不再希望 Google 通告此前缀为止。

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

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

创建公开通告前缀

为您要加入 Google 的前缀创建公开通告前缀。

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

  2. 点击添加 PAP

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

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

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

  6. 点击下一步

  7. 查看您已输入的信息。点击确认以确认您是此前缀的所有者。

  8. IP 地址,输入要添加的前缀的 IP 地址。 此 IP 地址将用于 DNS 验证。

  9. 点击创建

  10. 验证页面会显示此请求的验证状态。

gcloud

创建一个公开通告前缀。

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

请替换以下内容:

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

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

  • VERIFICATION_IP_ADDRESS:从 PAP_IP_RANGE 中选择的 IP 地址,用于 DNS 验证。

  • PAP_DESCRIPTION:公开通告前缀的可选说明。

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

查找用于 PTR 记录的名称

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

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

gcloud

  1. sharedSecret 字段中获取名称。

    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 记录

在 DNS 服务器中,使用 Google 提供的作为主机名的名称添加 PTR 记录。如果您对此 IP 地址使用 Cloud DNS,请参阅添加记录

例如,如果您导入前缀 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

验证 PTR 记录

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

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

gcloud

将公开通告前缀的状态更改为 PTR-CONFIGURED

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

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

请替换以下内容:

  • PAP_NAME:您已为其创建 PTR 记录的公开通告前缀。

检查公开通告前缀的状态

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

  3. 查看验证部分。

gcloud

描述公开通告前缀,以获取状态。

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

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

请替换以下内容:

  • PAP_NAME:您要获取状态信息的公开通告前缀。

创建公开委派前缀

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

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

  3. 点击创建 PDP

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

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

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

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

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

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

  10. 点击创建

gcloud

创建公开委派前缀。

gcloud compute public-delegated-prefixes create PDP_NAME \
    --public-advertised-prefix=PAP_NAME \
    --range=PDP_IP_RANGE \
    [--description=PDP_DESCRIPTION] \
    [--enable-live-migration]
    [--global | --region=PDP_REGION]

请替换以下内容:

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

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

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

  • PDP_DESCRIPTION:公开委派前缀的可选说明。

  • PDP_REGION:要在其中使用公开委派前缀地址的区域。

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

检查公开委派前缀的状态

Google 最多需要四周时间才会通告前缀。在首次创建公开委派前缀时,状态为 INITIALIZING。配置完成后,状态会更改为 ANNOUNCED

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

gcloud

描述公开委派前缀以获取状态。

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

请替换以下内容:

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

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

创建子前缀

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

  3. 点击创建子前缀

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

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

  6. 为子前缀选择 IP 地址

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

  8. 点击创建

gcloud

根据公开委派前缀创建子前缀。

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

请替换以下内容:

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

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

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

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

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

创建 IP 地址

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

您通过公开委派前缀或子前缀创建的 IP 地址是静态外部 IP 地址,可以是区域或全局地址。

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

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

  3. 点击创建地址

  4. 选择前缀长度

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

  6. 点击创建地址

gcloud

根据公开委派前缀或子前缀创建 IP 地址。

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

请替换以下内容:

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

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

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

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

列出前缀

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

gcloud

  • 要列出公开通告前缀,请使用以下命令:

    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
    
  • 如需列出公开委派前缀(包括子前缀),请使用以下命令。

    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

删除公开通告前缀

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

gcloud

删除公开通告前缀。

gcloud compute public-advertised-prefixes delete PAP_NAME \
    [--global]

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

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

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

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

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

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

控制台

  1. 在 Google Cloud Console 中,转到自备 IP

    转到自备 IP 地址

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

gcloud

使用 gcloud compute public-delegated-prefixes delete 命令删除公开委派前缀或子前缀。

gcloud compute public-delegated-prefixes delete PDP_NAME \
    [--global | --region=PDP_REGION] \
    [--project=PROJECT_NAME ]

如果前缀是为此项目委派给另一个项目的,请使用 --project 标志和 gcloud compute public-delegated-prefixes delete 命令来指定前缀所在的项目。

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

gcloud compute public-delegated-prefixes \
    delegate-sub-prefixes \
    delete PDP_NAME \
    --public-delegated-prefix=PARENT_PDP_NAME \
    [--global-public-delegated-prefix | --public-delegated-prefix-region=PDP_REGION]

使用实时迁移

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

启动前缀广告

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

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

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

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

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

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

撤消前缀通告

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

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

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

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

后续步骤