创建和使用 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
公开委派前缀

(顶级,非子前缀)

大小可以等于或小于(前缀长度更长)父级公开通告前缀

有效长度:/32/40/48/56

顶级公开委派前缀的前缀长度与其父级公开通告前缀之间的差值不得超过 24

子前缀

大小可以等于或小于(前缀长度更长)父级公开委派的前缀

有效长度:

  • 委派或转发规则创建模式:/32/40/48/56/64/72
  • 子网创建模式:/32/40/48/56
  • 子网创建模式子前缀的父级:/32/40/48/56

子前缀的前缀长度与其父级公开委派前缀之间的差值不得超过 24

转发规则的可分配的前缀长度

确定转发规则使用的 IPv6 地址范围的前缀长度

在为转发规则创建 IPv6 子前缀时,由可分配的前缀长度字段指定

必须小于关联的子前缀;可分配的前缀长度与子前缀长度之间的差值必须至少为 8,且不能超过 32

有效长度:/48/56/64/72/80/88/96

默认长度:

  • 如果父级子前缀的长度为 /64/72,则默认可分配的前缀长度为 /96
  • 否则,默认可分配前缀长度为 /64

准备工作

  1. 创建 IPv6 公开通告的前缀
  2. 创建 IPv6 公开委派的前缀

角色

如需获得完成本指南中的任务所需的权限,请让您的管理员为您授予项目的 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 子前缀为父级的更多子前缀。

委派模式子前缀的前缀长度决定子级子前缀的可能模式

控制台

  1. 在 Google Cloud 控制台中,前往自备 IP

    转到自备 IP 地址

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

  3. 点击创建子前缀

  4. 为子前缀输入名称和可选的说明。

  5. 前缀长度列表中,为子前缀选择前缀长度。

  6. 输入要分配给子前缀的 IPv6 地址范围。

  7. 该 PDP 将如何使用部分中,选择拆分为较小的 PDP

  8. 项目菜单中,选择要在其中使用子前缀的项目。

  9. 点击创建

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 子前缀时,无法进一步拆分该前缀。

控制台

  1. 在 Google Cloud 控制台中,前往自备 IP

    转到自备 IP 地址

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

  3. 点击创建子前缀

  4. 为子前缀输入名称和可选的说明。

  5. 前缀长度列表中,为子前缀选择前缀长度

  6. 输入要分配给子前缀的 IPv6 地址范围。

  7. 该 PDP 将如何使用部分中,选择分配 IPv6 地址范围以供使用

  8. 分配给列表中,选择网络负载均衡器转发规则

  9. 可分配的前缀长度列表中,为通过此子前缀创建的转发规则的 IPv6 地址范围选择前缀长度。

  10. 项目列表中,选择要在其中使用子前缀的项目。

  11. 点击创建

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 地址范围的转发规则,请执行以下任一操作:

使用 IPv6 子前缀创建和更新子网

如需创建或更新具有通过 IPv6 子前缀分配的外部 IPv6 地址范围的子网,请执行以下操作。通过 IPv6 子前缀分配的子网外部地址范围只能用于托管虚拟机实例或预留静态区域级外部 IPv6 地址(具有虚拟机端点类型)。

为子网创建 IPv6 子前缀

在子网创建模式下创建一个子前缀,该子前缀使用您要用于子网的 IP 地址范围。为子网创建 IPv6 子前缀时,无法进一步拆分该前缀。

控制台

  1. 在 Google Cloud 控制台中,前往自备 IP

    转到自备 IP 地址

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

  3. 点击创建子前缀

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

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

  6. IPv6 范围中,输入要分配给子前缀的 IPv6 地址范围。

  7. 该 PDP 将如何使用部分中,选择分配 IPv6 地址范围以供使用

  8. 分配给列表中,选择虚拟机的外部子网范围

  9. 项目中,选择要在其中使用子前缀的项目。

  10. 点击创建

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 地址(具有虚拟机端点类型)。

控制台

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

    进入 VPC 网络页面

  2. 如需查看 VPC 网络详情页面,请点击 VPC 网络的名称。

  3. 子网标签页中,点击 添加子网。在显示的面板中:

    1. 提供名称。
    2. 选择区域。
    3. 对于 IP 栈类型,请选择 IPv4 和 IPv6(双栈)IPv6(单栈)
    4. 如果您要创建双栈子网,请输入 IPv4 范围。
    5. IPv6 访问权限类型菜单中,选择外部
    6. 选中来自 PDP 复选框。
    7. PDP 列表中,选择要用于向子网分配 IP 地址的子前缀。
    8. 点击添加

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_IPV6IPV6_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 地址(具有虚拟机端点类型)。

控制台

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

    进入 VPC 网络页面

  2. 点击包含要更新的子网的 VPC 网络的名称。

  3. 点击子网,然后点击要更新的子网的名称。

  4. 点击修改

  5. IP 栈类型部分中,选择 IPv4 和 IPv6(双栈)

  6. IPv6 访问权限类型部分中,选择外部

  7. 点击来自 PDP 复选框。

  8. PDP 列表中,选择要用于向子网分配 IP 地址的子前缀。

  9. 点击保存

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 范围。

列出前缀

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

控制台

  1. 在 Google Cloud 控制台中,前往自备 IP

    转到自备 IP 地址

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

gcloud

如需列出公开委托的前缀(包括子前缀),请使用 public-delegated-prefixes list 命令

gcloud compute public-delegated-prefixes list

使用 BYOIP 提供的外部 IPv6 地址范围创建虚拟机

创建使用 BYOIP 提供的 IPv6 范围的子网后,您可以执行以下操作:

后续步骤