使用自备 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
之间。公开委派前缀的大小为
/17
到/28
。创建公开委派前缀时,您不能配置前缀大小与父级公开通告前缀相同的前缀。例如,如果公开通告前缀为
/24
,则公开委派前缀必须为/25
或更小。公开委托前缀最多可从公开通告前缀中委托三次。如需了解详情,请参阅创建子前缀。
通过公开委派前缀创建地址时,地址组的大小可介于
/28
到/17
之间。您不能创建较小的地址组,例如单个/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 地址。但是,自动向虚拟机分配 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 请求。如需了解详情,请参阅您的位置链接:
创建公开通告前缀
您可以为您要在 Google 中使用的前缀创建公开通告前缀。
除非删除和重新创建资源,则无法更改公开通告前缀名称。因此,我们建议您创建易于管理的名称,例如 pap-203-0-113-0-24
,其中 pap
表示资源类型,203-0-113-0-24
表示特定的前缀和前缀长度。
如果您计划同时委托全球和区域公开委托前缀,我们建议您为每种类型使用单独的公开通告前缀。
选择未使用的 IP 地址进行 DNS 验证。验证要求您为此 IP 地址配置新的 PTR 记录,并且您在创建公开通告前缀之前不知道主机名。
控制台
在 Google Cloud Console 中,转到自备 IP。
点击添加 PAP。
在名称部分,输入公开通告前缀的名称。
在说明部分,输入公开通告前缀的可选说明。
在前缀部分,输入要导入的前缀。
点击下一步。
检查您输入的信息。如需确认您拥有此前缀,请点击确认。
在 IP 地址部分,输入要添加的前缀中未使用的 IP 地址。此地址用于 DNS 验证,在后续步骤中,您必须为它创建一个使用 Google 提供的主机名的 PTR 记录。
点击创建。验证页面会显示此请求的验证状态。
gcloud
使用 public-advertised-prefixes create
命令。
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 验证,在后续步骤中,您必须为它创建一个使用 Google 提供的主机名的 PTR 记录。PAP_DESCRIPTION
:公开通告前缀的可选说明。
如需了解详情,请参阅 gcloud compute public-advertised-prefixes
create
参考文档。
查找用于 PTR 记录的名称
当您创建公开通告前缀时,Google 会为您生成一个名称,以用作 PTR 验证步骤的主机名。
控制台
在 Google Cloud Console 中,转到自备 IP。
点击您要更新的前缀的检查状态。
用于 PTR 验证的名称和 IP 地址会在 DNS 验证部分显示。
gcloud
如需从
sharedSecret
字段获取名称,请使用public-advertised-prefixes describe
命令。gcloud compute public-advertised-prefixes describe \ PAP_NAME --format='value(sharedSecret)'
如果需要,您可以检索为 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 记录验证。
控制台
在 Google Cloud Console 中,转到自备 IP。
点击您要更新的前缀的检查状态。
在 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 最长可能需要四周时间才能预配公开通告前缀。您可以检查状态以查看配置是否已完成。
控制台
在 Google Cloud Console 中,转到自备 IP。
点击您要检查的前缀的检查状态。
查看验证部分。
gcloud
如需描述公开通告前缀并获取其状态,请使用 public-advertised-prefixes describe
命令。
验证前缀后,状态字段会从 VALIDATED
更改为 PREFIX_CONFIGURATION_COMPLETE
。
gcloud compute public-advertised-prefixes describe PAP_NAME --format='value(status)'
将 PAP_NAME
替换为您要获取状态信息的公开通告前缀。
创建公开委派前缀
您可以在公开通告前缀创建之前委派前缀。公开通告前缀和公开委派前缀配置过程最多可能需要 4 周。
如果不删除并重新创建资源,公开委托的前缀名称就无法更改。因此,我们建议您创建易于管理的名称,例如 pdp-203-0-113-0-25
,其中 pdp
表示资源类型,203-0-113-0-25
表示特定的前缀和前缀长度。
如果您使用的是实时迁移,则必须在启用实时迁移的情况下在给定公开通告前缀中创建所有公共委派前缀,以防止公共通告前缀被通告。如需了解详情,请参阅实时迁移。 您必须创建包含区域范围的公开委派前缀。如需了解详情,请参阅实时迁移建议。在创建公开委派前缀之前,确保您的项目已启用实时迁移。
控制台
在 Google Cloud Console 中,转到自备 IP。
点击要委派的公开通告前缀。
点击创建 PDP。
在名称部分,输入公开委派前缀的名称。
在说明部分,输入公开委派前缀的可选说明。
为公开委派的前缀选择前缀长度。
为公开委派的前缀选择 IP 地址。
为公开委派的前缀选择一个范围。
为公开委派的前缀选择一个项目。
点击创建。
gcloud
如需创建公开委派前缀,请使用 public-delegated-prefixes create
命令。
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
:要在其中使用公开委派前缀地址的区域。
检查公开委派前缀的状态
Google 最多需要四周时间才会通告前缀。在首次创建公开委派的前缀时,状态为 INITIALIZING
。
配置完成后,公开委派的前缀的状态会更改为 ANNOUNCED
。
如果创建了公开的委托前缀并启用实时迁移,则配置完成后,状态会更改为 READY_TO_ANNOUNCE
。使用实时迁移时,在启动前缀通告之前,系统不会公布前缀。
控制台
在 Google Cloud Console 中,转到自备 IP。
状态列显示所有公开委派前缀的状态。
gcloud
如需描述公开委派前缀并获取其状态,请使用 public-delegated-prefixes describe
命令。
gcloud compute public-delegated-prefixes describe PDP_NAME \ [--global | --region=PDP_REGION] \ --format='value(status)'
请替换以下内容:
PDP_NAME
:您要获取其信息的公开委派前缀或子前缀。PDP_REGION
:公开委派前缀或子前缀的区域。
创建子前缀
您可以创建子前缀,将公开委托的前缀划分为较小的 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
子前缀为父级的更多子前缀。
控制台
在 Google Cloud Console 中,转到自备 IP。
点击您要细分的公开委派前缀。
点击创建子前缀。
为子前缀输入名称和说明(可选)。
选择子前缀的前缀长度。
为子前缀选择 IP 地址。
为子前缀选择一个项目。这些 IP 地址仅在此项目中可用。
点击创建。
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 地址仅在指定的项目中可用。如果为空,则 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
。
控制台
在 Google Cloud Console 中,转到自备 IP。
点击您要在其中创建 IP 地址的公共委派前缀或子前缀。
点击创建地址。
选择前缀长度。
选择您想要创建的 IP 地址。
点击创建地址。
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 地址的公开委派前缀或子前缀的区域。
列出前缀
您可以列出项目中的所有公开通告前缀和公开委派前缀(包括子前缀)。
控制台
在 Google Cloud Console 中,转到自备 IP。
系统会显示所有公开通告前缀、公开委派前缀和子前缀。
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 地址范围将采用公开通告前缀,并且可以委派给新的公开委派前缀。
控制台
在 Google Cloud 控制台中,转到自备 IP 页面。
点击要删除的公开委派前缀,然后点击删除。
gcloud
如需删除公开委派前缀或子前缀,请使用 public-delegated-prefixes delete
命令。
gcloud compute public-delegated-prefixes delete PDP_NAME \ [--global | --region=PDP_REGION] \ [--project=PROJECT_NAME ]
如果前缀是为此项目委派给另一个项目的,请使用 --project
标志和 public-delegated-prefixes delete
命令来指定前缀所在的项目。
或者,您可以使用以下命令删除委托给另一个项目的子前缀,而无需在该命令中包含该项目。
gcloud compute public-delegated-prefixes \ delegated-sub-prefixes \ delete SUB_PREFIX_NAME \ --public-delegated-prefix=PARENT_PDP_NAME \ [--global-public-delegated-prefix | --public-delegated-prefix-region=PDP_REGION]
删除公开通告前缀
如果公开通告前缀未使用,您可以将其删除。删除操作最长可能需要四周时间。删除过程开始后,您便无法更改公开通告前缀。
控制台
在 Google Cloud 控制台中,转到自备 IP 页面。
选择您要删除的公开通告前缀,然后点击删除前缀。
gcloud
如需删除公开通告前缀,请使用 public-advertised-prefixes delete
命令。
gcloud compute public-advertised-prefixes delete PAP_NAME \ [--global]
您可以通过检查公开通告前缀的状态来验证移除操作处于待处理状态。状态为 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 天以上,请联系您的 Google Cloud 代表。
撤销前缀通告
如果您需要撤销通告,请重新配置资源,以便所有资源均不使用公开通告前缀 IP 范围内的 IP 地址。将所有 IP 地址从资源中取消分配后,公开委派前缀会从 Google 网络中撤消,而公开通告前缀会从互联网中撤消。
如要撤消公开通告前缀的广告,您必须确保:
公开通告前缀中的所有公开委派前缀均创建并启用实时迁移。
系统不会将公开通告前缀范围内的 IP 地址分配给资源。
后续步骤
- 详细了解 IP 地址。