GDC 中的子网和 IP 地址

子网是 IP 地址网络的逻辑细分,可为您的服务提供可管理的网段。您可以定义具有特定 IP 地址范围的子网,也可以在 Google Distributed Cloud (GDC) 空气隔离环境中将子网配置为动态分配。

本文档适用于平台管理员组中的网络管理员和应用运营商组中的应用开发者,他们负责管理其服务的网络流量。如需了解详情,请参阅 GDC 气隙环境的受众群体文档

GDC 中的网络

在 GDC 组织中,您可以为以下两种不同的网络类型分配 IP 地址:

  • 虚拟私有云 (VPC):一种分配了内部 IP 地址的网络,只有组织内部的工作负载才能访问这些地址。
  • 外部网段:分配了外部 IP 地址的网络,可通过连接到您组织的外部网络访问。

您可以在每种网络类型中分配子网,以实现特定目标。子网是 IP 地址网络的逻辑细分,由无类别域间路由 (CIDR) 范围定义。借助 CIDR 范围,您可以表示 IP 地址及其对应的网络,以供服务使用。这些网络类型中的每个网络都有一个独立的子网树。

VPC 中的子网可从 GDC 网络内部访问,但无法从 GDC 外部访问。VPC 子网可用于在组织内分配内部 IP 地址。网络段子网会向连接到组织的外部网络公开,让您能够提供可供组织外部网络使用的外部 IP 地址

VPC 网络

VPC 网络使用只能在组织内访问的内部 IP 地址,组织外的网络无法访问这些地址。

您的 GDC 宇宙中有两个可用的 VPC 网络:

  • 默认 VPC:一种 VPC,可为多个可用区内和可用区之间的内部工作负载(例如容器和虚拟机 [VM])分配 IP 地址。
  • Infra VPC:由系统管理的 VPC,用于托管第一方 GDC 气隙服务,例如 Vertex AI、Observability API 和 GDC 控制台。您只有在规划组织的 IP 地址架构时,才需要定义此 VPC 内的 IP 地址。

同一组织内默认 VPC 和基础设施 VPC 中的 IP 地址不能相互重叠。如需了解详情,请参阅 IPv4 用量和限制

在 VPC 网络中创建子网,以便为内部工作负载分配额外的 IP 地址。

外部网段

外部网段分配有可供连接到您组织的外部网络访问的外部 IP 地址。GDC 中的网段仅分配外部 IP 地址。

GDC 提供以下在逻辑上隔离的网络段:

  • 管理员网络段:在组织创建期间为管理服务(例如 GDC 控制台和管理 API)分配的外部 IP 地址的网络。您仅在规划组织的 IP 地址架构时定义此网段内的 IP 地址。
  • 数据网段:一种为出站网络地址转换 (NAT)外部负载平衡器等服务分配外部 IP 地址的网络。

您可以使用不同的互联将网络段连接到其他外部网络。网络段中的 IP 地址不能相互重叠。如需了解详情,请参阅 IPv4 用量和限制

在网段中创建子网,以便为必须连接到 GDC 组织外部网络的各项服务分配额外的外部 IP 地址。

子网层次结构

子网按类型分为以下几类:

  • :可从中派生出其他子网的顶级子网。在组织预配期间,系统会在每个网络中创建一个全局根子网。
  • 分支:从根子网或其他分支子网派生的子网,用于进一步细分 IP 地址空间。
  • :最小的细分,通常用于为特定服务或资源分配 IP 地址。

您可以细分子网,以便为网络分配 IP 地址。

此示例图展示了不同子网类型之间的连接方式:

  • 一个 10.0.0.0/16 的根子网,用作主要 IP 地址分配的顶级块。
  • 从根子网派生出两个值分别为 10.0.1.0/2410.0.2.0/24 的分支子网。这些分支子网表示根地址空间的细分,旨在用于更具体的用途。
  • 分支子网进一步细分为叶子子网,其值如 10.0.1.10/3210.0.1.11/3210.0.2.12/24。这些叶子子网通常是最小的细分,通常会为特定服务或资源分配单个 IP 地址。

借助这种子网分层结构,您可以高效地在依赖于网络中 IP 地址的工作负载和服务之间委派和组织网络。

全球子网和可用区级子网

在 GDC 中,您可以在两种不同的范围内预配子网:地区级和全球级。区域子网和全局子网在不同的 API 服务器中定义和运行,并提供不同的功能。

组织完成配置后,每个网络都会有一个全局根子网,该子网托管在组织的全局 API 服务器中。如需从全局根子网预配 IP 地址,您必须在全局 API 服务器中创建一个全局 Subnet 资源,该资源可将 CIDR 块预配给一个地区或多个地区。在全局子网中,您可以定义 propagationStrategy 字段,以指明您希望如何跨可用区分配 CIDR 地址块。此 IP 地址范围会作为可用区级根子网预配到可用区。

在某个可用区拥有自己的可用区级根子网后,您可以在该可用区的管理 API 服务器中创建可用区级 Subnet 资源,以将该子网的 IP 地址范围进一步划分为该可用区内的其他分支子网,或可供该可用区内的各个工作负载和服务使用的叶子子网。

全局子网

您必须创建一个全局子网,才能将托管在全局 API 服务器中的根子网的 IP 地址分配给 GDC 宇宙中的一个或多个地区。

全局子网是在全局 API 服务器中使用 ipam.global.gdc.goog/v1 API 组创建的,并且包含可选字段(例如 zonepropagationStrategy)来定义它们与特定可用区的互动。

全局子网将 CIDR 地址块作为分支子网范围托管,该范围由整个 GDC 宇宙中的可用区使用。如需详细了解在何处创建全球子网,请参阅 GDC 中的网络

可用区级子网

区域子网与特定运营区域相关联,通常包括直接网络配置。可用区级子网严格在单个可用区内运行,主要用于该可用区内的虚拟机和容器工作负载。区域子网进一步分配已为区域预配的 IP 地址,以供全局子网使用。

为了使跨可用区进行 VPC 到 VPC 通信能够正常运行,每个可用区都必须使用不重叠的子网。

区域子网是使用管理 API 服务器中的 ipam.gdc.goog/v1 API 组创建的,并且在其规范中包含可选的 networkSpec 字段,因此您可以定义特定于区域的网络元素,例如网关和 VLAN ID。

子网标签

子网标签分为四种类型:

  • ipam.gdc.goog/vpc:将子网的网络指定为 VPC。
  • ipam.gdc.goog/network-segment:将子网的网络指定为网段。
  • ipam.gdc.goog/usage:指定子网的用途。
  • ipam.gdc.goog/subnet-group:指定子网所属的子网组。如需了解详情,请参阅子网组

下表显示了网络与网络标签之间的映射关系:

网络 标签
默认 VPC ipam.gdc.goog/vpc: default-vpc
基础设施 VPC ipam.gdc.goog/vpc: infra-vpc
管理员网络段 ipam.gdc.goog/network-segment: admin
数据网络细分 ipam.gdc.goog/network-segment: data

这四个网络的 CIDR 范围是在组织中设置的,属于初始启动流程的一部分。这四个对应的全局子网位于全局 API 服务器中。这些全局子网是组织中每个网络在所有可用区中的根级 CIDR 范围。所有根级全局子网都有另一个标签 ipam.gdc.goog/usage: network-root-range

对于每个可用区,区域网络根子网最初在源自组织配置的全局 API 服务器中可用。您可以创建额外的根子网来扩展 IP 地址空间。每个根子网都托管特定可用区中网络的 CIDR 范围,并且在逻辑上充当带有标签 ipam.gdc.goog/usage: zone-network-root-range 的可用区级根子网。 此根子网必须最初在全局 API 服务器中创建,并且会自动传播到指定可用区。如需详细了解子网范围,请参阅全球子网和可用区级子网

创建 Subnet 自定义资源时,您必须使用定义的标签,以便将其应用于相应的 GDC 网络。下图展示了 GDC 全球网络中的全球网络和地区网络:

子网位于可用区和全局 API 服务器中。

在此图中,有两个组织分布在多地区宇宙中。每个组织都会定义 VPC 网络和外部网段。在此示例中,任播 IP 地址用于在可用区外部网段之间路由流量,以便最近或性能最佳的可用区为网络请求提供服务。如需详细了解任播 IP 地址,请参阅 GDC 中的 IP 地址

子网组

子网组是一组具有相同子网组标签(例如 ipam.gdc.goog/subnet-group: subnetgroup1)的子网。将子网整理成组可带来以下优势:

  • 子网组可简化 IP 地址资源的伸缩,这些资源归同一实体所有或用于同一用途。子网本身无法扩大规模,但您可以通过向子网组附加新子网来扩大子网组的规模。用户可以将子网组作为其 IP 地址资源进行引用,并利用其伸缩便利性。
  • 创建子子网时,用户可以引用子网组作为父级,而不是单个子网。通过以这种方式使用子网组,用户无需自行查找具有可用 IP 地址空间的父子网。相反,GDC 会自动在子网组中找到一个具有足够可用 IP 地址空间的子网作为其父子网。
  • 当以子网组为父项的单个用途或实体的 IP 地址资源用尽时,子子网中的错误信息会更加直观,从而减少检查每个子网的麻烦。

所有子网组功能均适用于全球子网和可用区级子网。

子网组创建和伸缩

没有子网组的 API 对象。而是通过标签来标识子网组。如需创建子网组或向子网组添加子网,请向现有子网添加子网组标签,或创建带有子网组标签的新子网。

如果子网组尚不存在,则会创建一个新的子网组。如果同一命名空间中已存在具有相同子网组标签的其他子网,则新子网会添加到现有子网组中。

以下示例展示了附加到名为 default-vpc-us-east67-b-group 的子网组的子网的定义:

apiVersion: ipam.gdc.goog/v1
kind: Subnet
metadata:
  # Several lines of code are omitted here.
  labels:
    ipam.gdc.goog/subnet-group: default-vpc-us-east67-b-group
    ipam.gdc.goog/usage: zone-network-root-range
    ipam.gdc.goog/vpc: default-vpc
  name: default-vpc-us-east67-b-root-cidr
  namespace: platform
  # Several lines of code are omitted here.
spec:
  ipv4Request:
    cidr: 10.99.0.0/16
  parentReference:
    name: default-vpc-root-cidr
    namespace: platform
    type: SingleSubnet
  type: Branch

创建和伸缩子网组的规则

创建子网组时,请注意以下规则:

  • 子网组是按命名空间范围定义的。具有相同子网组标签但位于两个不同命名空间中的子网会被视为属于两个不同的子网组。
  • 子网不能是同一组中另一个子网的后代。
  • 同一组中的子网必须属于同一 VPC 或网段。
  • 一个子网只能附加到一个子网组。

子网组作为父级

创建子网时,除了使用单个子网作为父子网之外,您还可以引用子网组作为父子网。如需将子网组作为父级进行引用,您必须完成以下操作:

  1. spec.parentReference.type 显式设置为 SubnetGroup。如果留空,则默认值为 SingleSubnet
  2. 如果父子网组与子网位于不同的命名空间中,您必须将 spec.parentReference.namespace 字段指定为父子网组的命名空间。

从子网组创建子子网后,GDC 会根据子子网的请求以及父子网组中子网的可用性,从子网组中分配一个 CIDR 块。如果找到合适的父子网,子网会从父子网获取其 CIDR 块,并且子网的状态会更新父子网的引用。

在以下示例中,子网从 default-vpc-zone1-group 子网组请求 CIDR 地址块,并在状态中分配了父 platform/default-vpc-zone1-root-cidr CIDR 地址块:

apiVersion: ipam.gdc.goog/v1
kind: Subnet
metadata:
# Several lines of code are omitted here.
  labels:
    ipam.gdc.goog/vpc: default-vpc
  name: default-vpc-default-node-subnet
  namespace: platform
# Several lines of code are omitted here.
spec:
  ipv4Request:
    prefixLength: 23
  networkSpec:
    enableGateway: true
    enableVLANID: false
  parentReference:
    name: default-vpc-zone1-group
    namespace: platform
    type: SubnetGroup
  type: Branch
status:
  allocatedParent:
    name: default-vpc-zone1-root-cidr
    namespace: platform
    type: SingleSubnet
# Several lines of code are omitted here.

将子网组作为父级进行引用的规则

将子网组作为父级进行引用时,请注意以下规则:

  • 子级子网的创建者必须有权使用子网组中的所有子网。
  • 子子网必须与子网组位于同一 VPC 或网段中。

静态和动态 CIDR 配置

定义子网时,您可以选择使用静态或动态配置来分配 CIDR 块。

借助静态 CIDR 配置,您可以为子网明确指定确切的 CIDR 块。如果您需要精确控制 IP 地址空间,请静态分配 CIDR 地址块。使用 Subnet 自定义资源中的 spec.ipv4Request.cidr 字段指定确切的预定义 IP 地址范围。

动态 CIDR 配置可让系统自动为子网分配 CIDR 地址块,从而提供更高的灵活性。您可以在 spec.ipv4Request.prefixLength 字段中指定所需的前缀长度,而不是提供完整的 CIDR。如果您希望系统自动将 IP 地址委托给子网,从而简化网络规划并降低 IP 地址冲突的风险,请动态分配 CIDR 地址块。系统会从父网络中选择指定大小的可用 CIDR 块。

如需了解详情,请参阅 SubnetRequest API。

GDC 中的 IP 地址

虚拟机和负载平衡器等资源在 GDC 中具有 IP 地址。借助这些 IP 地址,GDC 资源可以与组织内的其他资源进行通信,也可以与连接到组织的外部网络进行通信。GDC 世界中提供以下 IP 地址类型:

外部 IP 地址

外部 IP 地址会通告给与组织关联的外部网络。具有外部 IP 地址的资源(例如负载平衡器和 NAT)可以与外部网络通信。借助 GDC,您可以使用专用或公共 IP 地址作为外部地址。通过以下方式为资源提供外部 IPv4 地址:

  • 自备外部 IP 地址 (BYOIP):您为组织提供这些外部 IP 地址。只要 BYOIP 外部 IP 地址不连接到同一外部网络,就可以与其他组织的外部 IP 地址重叠。
  • IO 提供的外部 IP 地址:组织在连接到外部网络时可以使用基础设施运营商组提供的外部 IP 地址。基础设施运营商组是相应网络的连接提供商。
内部 IP 地址

内部 IP 地址无法直接从 GDC 外部访问,并且不可公开路由。内部 IP 地址是 VPC 网络、使用 VPC 网络对等互连连接的 VPC 网络或使用 Cloud VPN 连接到 VPC 网络的本地网络的本地 IP 地址。具有内部 IP 地址的资源会与其他资源通信,就像它们都位于同一专用网络上一样。

任播 IP 地址

Anycast IP 地址是一种特殊的外部地址,其范围始终限定为整个 GDC 宇宙。 GDC 利用任播 IP 地址和边界网关协议 (BGP) 将流量路由到最近或性能最佳的可用区。在两个或更多可用区中运行的每个全局第 4 层服务都会从任播子网(一个外部子网)接收一个任播 IP 地址。每个可用区都会通告相同的任播 IP 地址,但您的网络会根据其路由规则选择最佳地址。如果某个可用区发生故障,它会撤消其 IP 地址,并且您的网络会自动将流量重新路由到其他可用区。这种自动路由功能即使在服务中断期间也能提供顺畅的连接。

专用 IP 地址

专用 IP 地址是无法在互联网上路由的地址。如需查看专用 IPv4 范围的列表,请参阅有效 IPv4 范围表中的专用 IP 地址范围条目。

公共 IP 地址

公共 IP 地址是可通过互联网路由的地址。在 GDC 中,外部 IP 地址可以是公共 IP 地址,也可以是专用 IP 地址。在 VPC 网络中配置子网的主要 IPv4 地址范围时,您还可以使用公共 IPv4 地址作为内部地址。这些地址称为以非公开方式使用的公共 IP 地址。

IPv4 用量和限制

GDC 环境中的每个网络都有一些 IPv4 地址范围使用限制,您在分配 IP 地址时必须考虑这些限制。默认 VPC 和数据网络段不支持 IPv6 地址范围。请与您的基础设施运营团队联系,了解其他网络中 IPv6 地址范围的可能性。

所有 IPv4 子网的限制

这些限制适用于 VPC 网络子网和外部网段子网。

  • 所有子网都必须是唯一的有效 CIDR 地址段
  • 创建子网后,无法再扩大、替换或缩小子网。
  • GDC 不会强制限制可创建的 CIDR 地址块的大小。不过,对于大多数大于 /8 的 IP 地址范围,额外的验证会阻止您创建这么大的子网。例如,子网不能与被禁的子网重叠。为了尽量降低选择无效子网的可能性,我们建议您将最大子网大小限制为 /8
  • 您无法创建与任何禁止的子网、同一 VPC 网络中的任何其他子网、附加的外部网段中的任何子网或对等互连网络中的任何子网重叠的子网。您必须与基础架构运维者群组协作,确保在这些场景中不会创建重叠的子网。

  • GDC 会为子网创建相应的路由。VPC 网络子网在组织的虚拟网络堆栈中创建了路由,而外部网段子网在外部对等网络的路由表中创建了路由。

  • 如果您已通过托管式 VPN 或共享/专用互连将 VPC 网络连接到其他网络,请验证子网是否与本地 IP 地址冲突。

  • 子网不得与禁止的范围匹配,也不得比禁止的范围更小或更大。例如,169.0.0.0/8 不是有效的子网,因为它与本地链路范围 169.254.0.0/16RFC 3927)重叠,后者属于受限范围。

  • 子网不得跨越 有效的 IPv4 范围中所述的 RFC 范围和以非公开方式使用的公共 IP 地址范围。例如,172.0.0.0/10 不是有效的子网,因为它同时包含 172.16.0.0/12 专用 IP 地址范围和公共 IP 地址。

  • 子网不得跨多个 RFC 范围。例如,192.0.0.0/8 不是有效的子网,因为它同时包含 192.168.0.0/16 (RFC 1918) 和 192.0.0.0/24 (RFC 6890)。不过,您可以创建两个子网,一个子网的主要范围为 192.168.0.0/16,另一个子网的主要范围为 192.0.0.0/24

有效的 IPv4 范围

下表介绍了有效范围。

范围 说明
专用 IPv4 地址范围
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

专用 IP 地址 RFC 1918

如需了解如何使用 172.17.0.0/16,请参阅其他注意事项

100.64.0.0/10 共享地址空间 RFC 6598
192.0.0.0/24 IETF 协议分配 RFC 6890
192.0.2.0/24 (TEST-NET-1)
198.51.100.0/24 (TEST-NET-2)
203.0.113.0/24 (TEST-NET-3)
文档 RFC 5737
192.88.99.0/24 IPv6 到 IPv4 中继(已弃用)RFC 7526
198.18.0.0/15 基准测试 RFC 2544
240.0.0.0/4

RFC 5735RFC 1112 中所述,预留以供将来使用(E 类)

某些操作系统不支持使用此范围,因此请确认您的操作系统支持此范围,然后再创建使用此范围的子网。

以不公开方式使用的公共 IP 地址范围
以非公开方式使用的公共 IPv4 地址 以非公开方式使用的公共 IPv4 地址:
  • 是通常可在互联网上路由但在 VPC 网络中以不公开方式使用的 IPv4 地址。
  • 不得属于被禁的子网范围

经过网闸隔离的 GDC 不会假设连接到互联网。因此,GDC 空气隔离环境会通告任何公共 IP 地址范围,就好像这些范围是您组织的专用范围一样。

如果您导入的自带 IP (BYOIP) 地址是公共 IP 地址范围,则必须验证它们是否会在任何外部网络中导致网络问题。您的自带 IP 地址不得与组织中的其他子网重叠。

禁止的 IPv4 子网

被禁的子网范围包括通常预留的 RFC 范围以及特定 GDC 宇宙中的任何全局预留子网,如下表所述。这些范围不能用于子网。

范围 说明
GDC 基础设施范围 GDC 系统使用的全局预留 CIDR 地址块。如果未针对客户初始调查问卷 (CIQ) 的 zone-infra-cidr 字段指定此范围,GDC 会默认使用 172.16.0.0/12 作为 GDC 基础架构范围。
特定影视内容平台的范围 由基础架构运维者组预留的其他范围。
0.0.0.0/8 当前(本地)网络 RFC 1122
127.0.0.0/8 本地主机 RFC 1122
169.254.0.0/16 本地链路 RFC 3927
224.0.0.0/4 多播(D 类)RFC 5771
255.255.255.255/32 受限广播目标地址 RFC 8190RFC 919

IPv4 子网范围内不可用的地址

GDC 使用每个子网中的前两个和最后两个 IPv4 地址来托管子网。

不可用的 IPv4 地址 说明 示例
网络地址 主要 IPv4 范围内的第一个地址。 10.1.2.0/24 范围内的 10.1.2.0
默认网关地址 主要 IPv4 范围内的第二个地址。 10.1.2.0/24 范围内的 10.1.2.1
倒数第二个地址 主要 IPv4 范围内的倒数第二个地址。

此范围由 Google Cloud 预留,将来可能会使用。

10.1.2.0/24 范围内的 10.1.2.254
广播地址 主要 IPv4 范围内的最后一个地址。 10.1.2.0/24 范围内的 10.1.2.255

其他注意事项

某些 Google 和第三方产品使用 172.17.0.0/16 在客机操作系统中进行路由。例如,默认 Docker 网桥网络会使用此范围。如果您依赖的产品使用 172.17.0.0/16,请勿将其用作任何子网 IPv4 地址范围。

后续步骤