创建和使用 IPv6 子前缀
本页面介绍如何将 IPv6 公开委派前缀拆分为子前缀,以便您可以将其分配给特定项目中的资源。您可以使用来自 IPv6 子前缀的 IP 地址为外部直通式网络负载均衡器或只能托管虚拟机 (VM) 实例的子网创建转发规则。
子前缀有三种类型或模式。子前缀的模式决定了您可以如何使用其 IP 地址范围:
用于进一步委派:您可以进一步拆分为较小子前缀的子前缀 (
--mode=DELEGATION
)。用于转发规则:您可以用作转发规则的区域级外部 IPv6 地址来源的子前缀 (
--mode=EXTERNAL_IPV6_FORWARDING_RULE_CREATION
)。在创建子前缀时,您可选择 IPv6 地址的前缀长度。转发规则只能用于外部直通式网络负载均衡器和外部协议转发。用于子网:您可以用作子网的区域级外部 IPv6 地址范围来源的子前缀 (
--mode=EXTERNAL_IPV6_SUBNETWORK_CREATION
)。您使用这些子前缀创建的子网中的 IP 地址只能由虚拟机实例使用。
IPv6 子前缀规范
子前缀是具有公开委派前缀父级的公开委派前缀。
您无法更改子前缀的模式。如果需要,您可以删除子前缀,然后重新创建。删除子前缀之前,相应子前缀必须未被任何资源使用。
公开委派前缀最多可从公开通告前缀进行三次二次委派。
子前缀中的所有 IP 地址都可用;没有预留的网络地址或广播地址。
您无法修改子前缀以更改其名称。作为最佳实践,请选择不需要更改的通用名称,例如 sub-2001-db8-0-0-0-0-0-0-40
,其中 sub
表示资源类型,2001-db8-0-0-0-0-0-0-40
表示特定前缀和前缀长度。
下表介绍了有关创建 IPv6 子前缀的其他规范。
配置 | 区域级 (v2) |
---|---|
公开通告前缀 | 最小大小(最大前缀长度)为 /48 |
公开委派前缀 (顶级,非子前缀) |
大小可以等于或小于(前缀长度更长)父级公开通告前缀 有效长度: 顶级公开委派前缀的前缀长度与其父级公开通告前缀之间的差值不得超过 24 |
子前缀 |
大小可以等于或小于(前缀长度更长)父级公开委派的前缀 有效长度:
子前缀的前缀长度与其父级公开委派前缀之间的差值不得超过 24 |
转发规则的可分配的前缀长度 |
确定转发规则使用的 IPv6 地址范围的前缀长度 在为转发规则创建 IPv6 子前缀时,由可分配的前缀长度字段指定 必须小于关联的子前缀;可分配的前缀长度与子前缀长度之间的差值必须至少为 8,且不能超过 32 有效长度: 默认长度:
|
准备工作
角色
如需获得完成本指南中的任务所需的权限,请让您的管理员为您授予项目的 Compute Public IP Admin (roles/compute.publicIpAdmin
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
创建 IPv6 子前缀以进行进一步委派
处于委派模式的 IPv6 子前缀可进一步二次委派为较小的子前缀。其他模式下的 IPv6 子前缀无法进一步拆分。
公开委派前缀最多可从公开通告前缀进行三次二次委派。例如,如果您有一个 IP 地址范围为 2001:db8::/32
的公开通告前缀,则可以执行以下操作:
- 在委派模式下创建一个 IP 地址范围为
2001:db8::/40
的公开委派前缀,并将公开通告前缀作为父级。 - 在委派模式下创建一个 IP 地址范围为
2001:db8::/48
的子前缀,并将之前的公开委派前缀作为父级。 在转发规则或子网创建模式下创建一个 IP 地址范围为
2001:db8::/56
的子前缀,并将之前的子前缀作为父级。目前,您无法创建以
2001:db8::/56
子前缀为父级的更多子前缀。
委派模式子前缀的前缀长度决定子级子前缀的可能模式。
控制台
在 Google Cloud 控制台中,前往自备 IP。
点击您要细分的公开委派前缀。
点击创建子前缀。
为子前缀输入名称和可选的说明。
在前缀长度列表中,为子前缀选择前缀长度。
输入要分配给子前缀的 IPv6 地址范围。
在该 PDP 将如何使用部分中,选择拆分为较小的 PDP。
在项目菜单中,选择要在其中使用子前缀的项目。
点击创建。
gcloud
如需创建子前缀以进行进一步委派,请使用 gcloud compute public-delegated-prefixes create
命令。
gcloud compute public-delegated-prefixes create SUB_PREFIX_NAME \ --range=SUB_PREFIX_RANGE \ --mode=DELEGATION \ --public-delegated-prefix=PDP_NAME \ --region=PDP_REGION \ --project=PROJECT_ID
替换以下内容:
SUB_PREFIX_NAME
:此子前缀的名称SUB_PREFIX_RANGE
:此子前缀的 IP 地址范围PDP_NAME
:此子前缀的父级公开委派前缀PDP_REGION
:此子前缀的区域PROJECT_ID
:要将子前缀委派给的项目如果省略
--delegatee-project
标志,则子前缀将在与父级公开委派前缀相同的项目中创建。
使用 IPv6 子前缀创建转发规则
如需创建使用通过 IPv6 子前缀分配的区域级外部 IPv6 地址范围的转发规则,请执行以下操作。转发规则只能用于外部直通式网络负载均衡器和外部协议转发。
为转发规则创建 IPv6 子前缀
在转发规则创建模式下创建一个子前缀,该子前缀使用您要用于转发规则的 IP 地址范围。为转发规则创建 IPv6 子前缀时,无法进一步拆分该前缀。
控制台
在 Google Cloud 控制台中,前往自备 IP。
点击您要细分的公开委派前缀。
点击创建子前缀。
为子前缀输入名称和可选的说明。
在前缀长度列表中,为子前缀选择前缀长度。
输入要分配给子前缀的 IPv6 地址范围。
在该 PDP 将如何使用部分中,选择分配 IPv6 地址范围以供使用。
在分配给列表中,选择网络负载均衡器转发规则。
在可分配的前缀长度列表中,为通过此子前缀创建的转发规则的 IPv6 地址范围选择前缀长度。
在项目列表中,选择要在其中使用子前缀的项目。
点击创建。
gcloud
如需创建用于创建转发规则的子前缀,请使用 gcloud compute public-delegated-prefixes create
命令。
gcloud compute public-delegated-prefixes create SUB_PREFIX_NAME \ --range=SUB_PREFIX_RANGE \ --mode=EXTERNAL_IPV6_FORWARDING_RULE_CREATION \ --allocatable-prefix-length=PREFIX_LENGTH \ --public-delegated-prefix=PDP_NAME \ --region=PDP_REGION \ --project=PROJECT_ID
替换以下内容:
SUB_PREFIX_NAME
:此子前缀的名称SUB_PREFIX_RANGE
:此子前缀的 IP 地址范围PREFIX_LENGTH
:转发规则使用的 IPv6 地址范围的前缀长度默认值和可能的值取决于
SUB_PREFIX_RANGE
的前缀长度。如需了解详情,请参阅转发规则的可分配的前缀长度。PDP_NAME
:此子前缀的父级公开委派前缀PDP_REGION
:此子前缀的区域PROJECT_ID
:要将子前缀委派给的项目如果省略
--delegatee-project
标志,则子前缀将在与父级公开委派前缀相同的项目中创建。
为外部直通式网络负载均衡器创建转发规则
如需创建使用来自子前缀的 IPv6 地址范围的转发规则,请执行以下任一操作:
- 为具有后端服务的外部直通式网络负载均衡器创建 BYOIP 转发规则
- 为外部直通式网络负载均衡器创建适用于多种 IP 协议的 BYOIP 转发规则
- 为具有可用区级 NEG 的外部直通式网络负载均衡器创建 BYOIP 转发规则
使用 IPv6 子前缀创建和更新子网
如需创建或更新具有通过 IPv6 子前缀分配的外部 IPv6 地址范围的子网,请执行以下操作。通过 IPv6 子前缀分配的子网外部地址范围只能用于托管虚拟机实例或预留静态区域级外部 IPv6 地址(具有虚拟机端点类型)。
为子网创建 IPv6 子前缀
在子网创建模式下创建一个子前缀,该子前缀使用您要用于子网的 IP 地址范围。为子网创建 IPv6 子前缀时,无法进一步拆分该前缀。
控制台
在 Google Cloud 控制台中,前往自备 IP。
点击您要细分的公开委派前缀。
点击创建子前缀。
为子前缀输入名称和说明(可选)。
选择子前缀的前缀长度。
在 IPv6 范围中,输入要分配给子前缀的 IPv6 地址范围。
在该 PDP 将如何使用部分中,选择分配 IPv6 地址范围以供使用。
在分配给列表中,选择虚拟机的外部子网范围。
在项目中,选择要在其中使用子前缀的项目。
点击创建。
gcloud
如需创建用于创建子网的子前缀,请使用 gcloud compute public-delegated-prefixes create
命令。
gcloud compute public-delegated-prefixes create SUB_PREFIX_NAME \ --range=SUB_PREFIX_RANGE \ --mode=EXTERNAL_IPV6_SUBNETWORK_CREATION \ --public-delegated-prefix=PDP_NAME \ --region=PDP_REGION \ --project=PROJECT_ID
替换以下内容:
SUB_PREFIX_NAME
:此子前缀的名称SUB_PREFIX_RANGE
:此子前缀的 IP 地址范围PDP_NAME
:此子前缀的父级公开委派前缀PDP_REGION
:此子前缀的区域PROJECT_ID
:要将子前缀委派给的项目如果省略
--delegatee-project
标志,则子前缀将在与父级公开委派前缀相同的项目中创建。
为虚拟机实例创建子网
创建使用来自 IPv6 子前缀的 IP 地址范围的双栈子网或仅限 IPv6 的子网。通过 IPv6 子前缀分配的子网外部地址范围只能用于托管虚拟机实例或预留静态区域级外部 IPv6 地址(具有虚拟机端点类型)。
控制台
在 Google Cloud 控制台中,前往 VPC 网络页面。
如需查看 VPC 网络详情页面,请点击 VPC 网络的名称。
在子网标签页中,点击
添加子网。在显示的面板中:- 提供名称。
- 选择区域。
- 对于 IP 栈类型,请选择 IPv4 和 IPv6(双栈)或 IPv6(单栈)。
- 如果您要创建双栈子网,请输入 IPv4 范围。
- 在 IPv6 访问权限类型菜单中,选择外部。
- 选中来自 PDP 复选框。
- 在 PDP 列表中,选择要用于向子网分配 IP 地址的子前缀。
- 点击添加。
gcloud
如需使用 IPv6 子前缀创建双栈子网或仅限 IPv6 的子网,请使用 gcloud compute networks subnets create
命令。
gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --stack-type=STACK_TYPE \ --ipv6-access-type=EXTERNAL \ --region=REGION \ --ip-collection=PDP_NAME \ [--external-ipv6-prefix=IPV6_CIDR_RANGE] \ [--range=PRIMARY_IPv4_RANGE]
替换以下内容:
SUBNET
:新子网的名称NETWORK
:将包含新子网的 VPC 网络的名称STACK_TYPE
:子网的栈类型栈类型可以是
IPV4_IPV6
或IPV6_ONLY
。如果您使用IPV4_IPV6
,则必须使用--range
标志指定主要 IPv4 范围。REGION
:将在其中创建新子网的 Google Cloud 区域,该区域必须与此子网的子前缀相同PDP_NAME
:要用于向此子网分配 IP 地址的EXTERNAL_IPV6_SUBNETWORK_CREATION
模式下的 IPv6 子前缀的名称IPV6_CIDR_RANGE
:要分配给此子网的可选 /64 外部 IPv6 CIDR 范围此范围必须与子网的子前缀相关联。如果为空, Google Cloud 会从关联子前缀的 CIDR 地址块中为子网分配随机的 /64 范围。
PRIMARY_IPv4_RANGE
:对于双栈子网,这是新子网的主要 IPv4 地址范围(采用 CIDR 表示法)
将仅限 IPv4 的子网更改为双栈子网以用于虚拟机实例
您可以将仅限 IPv4 的子网更改为使用来自子前缀的外部 IPv6 地址范围的双栈子网。通过 IPv6 子前缀分配的子网外部地址范围只能用于托管虚拟机实例或预留静态区域级外部 IPv6 地址(具有虚拟机端点类型)。
控制台
在 Google Cloud 控制台中,前往 VPC 网络页面。
点击包含要更新的子网的 VPC 网络的名称。
点击子网,然后点击要更新的子网的名称。
点击修改。
在 IP 栈类型部分中,选择 IPv4 和 IPv6(双栈)。
在 IPv6 访问权限类型部分中,选择外部。
点击来自 PDP 复选框。
在 PDP 列表中,选择要用于向子网分配 IP 地址的子前缀。
点击保存。
gcloud
如需将仅限 IPv4 的子网更改为使用来自子前缀的外部 IPv6 地址范围的双栈子网,请使用 gcloud compute networks subnets update
命令。
gcloud compute networks subnets update SUBNET \ --ipv6-access-type=EXTERNAL \ --stack-type=IPV4_IPV6 \ --ip-collection=PDP_NAME \ --region=REGION \ [--external-ipv6-prefix=IPV6_CIDR_RANGE]
替换以下内容:
SUBNET
:新子网的名称PDP_NAME
:要用于向此子网分配 IP 地址的EXTERNAL_IPV6_SUBNETWORK_CREATION
模式下的 IPv6 子前缀的名称REGION
:将在其中创建新子网的 Google Cloud 区域,该区域必须与此子网的子前缀相同IPV6_CIDR_RANGE
:要分配给此子网的可选 /64 外部 IPv6 CIDR 范围此范围必须与子网的子前缀相关联。如果为空, Google Cloud 会从关联子前缀的 CIDR 地址块中为子网分配随机的 /64 范围。
列出前缀
您可以列出项目中的所有公开通告前缀和公开委派前缀(包括子前缀)。
控制台
在 Google Cloud 控制台中,前往自备 IP。
系统会显示所有公开通告的前缀、公开委托的前缀和子前缀。
gcloud
如需列出公开委托的前缀(包括子前缀),请使用 public-delegated-prefixes list
命令。
gcloud compute public-delegated-prefixes list
使用 BYOIP 提供的外部 IPv6 地址范围创建虚拟机
创建使用 BYOIP 提供的 IPv6 范围的子网后,您可以执行以下操作:
- 预留静态外部 IPv6 地址(为端点类型指定
VM
) - 创建使用 IPv6 地址的实例(为栈类型指定
EXTERNAL
) - 为虚拟机分配静态外部 IPv6 地址