子网

Virtual Private Cloud (VPC) 网络属于全球性资源。每个 VPC 网络均由一个或多个 IP 地址范围(即“子网”)组成。子网属于区域级资源,并且具有与之关联的 IP 地址范围。

在 Google Cloud 中,术语“subnet”(子网)和“subnetwork”(子网)是同义词。这两个词在 Google Cloud 控制台、Google Cloud CLI 命令和 API 文档中可以互换使用。

网络和子网

网络必须至少先具有一个子网,然后才能使用。自动模式 VPC 网络会自动在每个地区中创建子网。自定义模式 VPC 网络最初没有子网,让您可以完全控制子网创建。您可以为每个区域创建多个子网。如需了解自动模式和自定义模式 VPC 网络之间的差异,请参阅 VPC 网络的类型

在 Google Cloud 中创建资源时,您需要选择网络和子网。对于实例模板以外的其他资源,您还需要选择区域或地区。选择一个区域时,会隐式选择其父地区。由于子网是地区性对象,因此您为资源选择的地区决定了它可以使用的子网:

  • 创建实例时,您需要为该实例选择一个可用区。如果您没有为虚拟机选择网络,则系统会使用默认 VPC 网络,该网络在每个区域中都有一个子网。如果您为虚拟机选择了网络,则必须选择在所选可用区的父区域中具有子网的网络。

  • 创建代管式实例组时,您需要选择区域或可用区,具体取决于组类型和实例模板。实例模板定义要使用的 VPC 网络。因此,在创建托管式实例组时,您必须选择具有适当配置的实例模板:该模板必须指定在所选可用区或区域中具有子网的 VPC 网络。自动模式 VPC 网络始终在每个区域中都有一个子网。

  • 创建 Kubernetes 容器集群的流程涉及到选择区域或地区(具体取决于集群类型)、网络和子网。您必须选择在所选可用区或区域中可用的子网。

子网类型

VPC 网络支持以下子网类型:

  • 仅 IPv4(单栈)子网,仅具有 IPv4 子网范围

  • IPv4 和 IPv6(双栈)子网,同时具有 IPv4 和 IPv6 子网范围

单个 VPC 网络可以包含这些子网类型的任意组合。

在创建子网时,您需要指定要使用的栈类型。您还可以更新现有的仅限 IPv4 子网,将其配置为双栈子网。

只有自定义模式 VPC 网络支持双栈子网。自动模式 VPC 网络及旧版网络均不支持双栈子网。

在创建 IPv4 子网范围时,您需要提供以下信息:

子网设置 有效值 详细信息
IPv4 范围 您选择的有效范围 必需
次要 IPv4 范围 您选择的有效范围 可选

在创建 IPv6 子网范围时,您需要提供以下信息:

子网设置 有效值 详细信息
IPv6 访问权限类型

  • 内部
  • 外部

系统会自动为子网分配 /64 IPv6 地址范围。

子网的用途

子网可用于不同目的:

  • 常规子网:这是默认子网类型。常规子网由用户创建,或者在自动模式 VPC 网络中自动创建,可用于虚拟机实例。在 gcloud CLI 或 API 中,常规子网的用途为 PRIVATE。在 Google Cloud 控制台,用途为
  • Private Service Connect 子网:用于通过 Private Service Connect 发布托管式服务的子网。
  • 代理专用子网:用于基于 Envoy 的区域级负载均衡器的代理专用子网
  • Private NAT 子网:预留用作 Private NAT 的来源范围的子网。此子网设置为 --purpose=PRIVATE_NAT

在大多数情况下,子网一经创建,便无法更改其用途。如需了解详情,请参阅 gcloud compute networks subnets update 命令参考。

子网命名的限制

子网名称具有以下限制:

  • 在 Google Cloud 项目中,子网不能与 VPC 网络同名,除非它是该网络的成员。在一个项目中,同一区域中的子网必须具有唯一名称。例如,名为 production 的网络可以具有多个同样名为 production 的子网,前提是每个子网都位于唯一区域中。

  • 子网创建后,无法更改子网的名称或区域。 不过,只要没有任何资源在使用子网,您就可以删除和替换它。

IPv4 子网范围

子网必须具有主要 IPv4 地址范围。如果子网的用途PRIVATENONE,则主要 IPv4 范围可供以下各项使用:

子网可以选择具有一个或多个次要 IPv4 地址范围,这些范围只能由别名 IP 范围使用。别名 IP 范围可以来自子网的主要 IPv4 范围或次要 IPv4 范围。

您的 IPv4 子网不需要形成预定义的连续 CIDR 块,但您可以视需要执行此操作。例如,自动模式 VPC 网络会创建适合预定义自动模式 IP 范围的子网。 但是,一个子网的主要范围可以是 10.0.0.0/24,而同一网络中另一子网的主要范围可以是 192.168.0.0/16

IPv4 子网范围的限制

IPv4 子网范围具有以下限制:

  • VPC 网络中所有子网的每个主要或次要 IPv4 地址范围都必须是唯一的有效 CIDR 块

  • 每个网络的限制中介绍了您可以定义的次要 IP 地址范围的数量。

  • 创建子网后,子网的主要 IPv4 范围可以扩大,但不可替换或缩小。

  • 只有在没有任何实例使用子网的次要 IPv4 地址范围时,您才可以移除和替换该地址范围。

  • 最小主要或次要范围大小是八个 IPv4 地址。换句话说,您可以使用的最长子网掩码是 /29

  • 您可以使用的最短子网掩码是 /4。但是,对于大多数 /4 IP 地址范围,额外的验证会阻止您创建这么大的子网。例如,子网范围不能与专用 IPv4 范围或其他预留范围重叠。为了尽量降低选择无效子网范围的可能性,我们建议您将最大子网大小限制为 /8

  • 您不能为与任何分配的范围、同一网络中其他子网的任何主要或次要范围或是对等互连网络中子网的任何 IPv4 范围重叠的子网创建主要和次要范围。在这些情况下,Google Cloud 会阻止创建重叠的子网范围。

  • Google Cloud 会为主要和次要 IP 范围创建相应的子网路由。根据定义,子网路由以及子网 IP 范围必须具有最具体的 IP 范围。

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

  • 子网范围不能跨越 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 地址范围是区域内部 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 地址
  • 不能属于被禁的子网范围

如果使用这些地址作为子网范围,则 Google Cloud 不会以公开方式将流量路由到互联网,也不会将来自互联网的流量路由到这些地址。

如果您已使用自备 IP (BYOIP) 将公共 IP 地址导入 Google,则同一 VPC 网络中的 BYOIP 范围和以非公开方式使用的公共 IP 地址范围不得重叠。

对于 VPC 网络对等互连,公共 IP 地址的子网路由不会自动交换。默认情况下,子网路由会自动导出,但对等互连网络必须明确配置为导入才能使用这些路由。

禁止的 IPv4 子网范围

禁止的子网范围包括 Google 公共 IP 地址和通常预留的 RFC 范围,如下表所述。这些范围不能用于子网范围。

范围 说明
Google API 和服务的公共 IP 地址,包括 Google Cloud 网络块。 您可以在 https://gstatic.com/ipranges/goog.txt 找到这些 IP 地址。
199.36.153.4/30

199.36.153.8/30
特定于专用 Google 访问通道的虚拟 IP 地址
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 子网范围内不可用的地址

Google Cloud 使用每个子网主要 IPv4 地址范围内的前两个和最后两个 IPv4 地址来托管子网。Google Cloud 让您可以使用次要 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

自动模式 IPv4 范围

下表列出了自动模式 VPC 网络中自动创建的子网的 IPv4 范围。这些子网的 IP 范围处于 10.128.0.0/9 CIDR 块内。在创建时,自动模式 VPC 网络会为每个地区构建一个子网,并自动接收新地区中的新子网。10.128.0.0/9 中未使用的部分会预留,以供 Google Cloud 将来使用。

区域 IP 范围 (CIDR) 默认网关 可用地址(含边界值)
africa-south1 10.218.0.0/20 10.218.0.1 10.218.0.2 至 10.218.15.253
asia-east1 10.140.0.0/20 10.140.0.1 10.140.0.2 至 10.140.15.253
asia-east2 10.170.0.0/20 10.170.0.1 10.170.0.2 至 10.170.15.253
asia-northeast1 10.146.0.0/20 10.146.0.1 10.146.0.2 至 10.146.15.253
asia-northeast2 10.174.0.0/20 10.174.0.1 10.174.0.2 至 10.174.15.253
asia-northeast3 10.178.0.0/20 10.178.0.1 10.178.0.2 至 10.178.15.253
asia-south1 10.160.0.0/20 10.160.0.1 10.160.0.2 至 10.160.15.253
asia-south2 10.190.0.0/20 10.190.0.1 10.190.0.2 至 10.190.15.253
asia-southeast1 10.148.0.0/20 10.148.0.1 10.148.0.2 至 10.148.15.253
asia-southeast2 10.184.0.0/20 10.184.0.1 10.184.0.2 至 10.184.15.253
australia-southeast1 10.152.0.0/20 10.152.0.1 10.152.0.2 至 10.152.15.253
australia-southeast2 10.192.0.0/20 10.192.0.1 10.192.0.2 至 10.192.15.253
europe-central2 10.186.0.0/20 10.186.0.1 10.186.0.2 至 10.186.15.253
europe-north1 10.166.0.0/20 10.166.0.1 10.166.0.2 至 10.166.15.253
europe-west1 10.132.0.0/20 10.132.0.1 10.132.0.2 至 10.132.15.253
europe-west2 10.154.0.0/20 10.154.0.1 10.154.0.2 至 10.154.15.253
europe-west3 10.156.0.0/20 10.156.0.1 10.156.0.2 至 10.156.15.253
europe-west4 10.164.0.0/20 10.164.0.1 10.164.0.2 至 10.164.15.253
europe-west6 10.172.0.0/20 10.172.0.1 10.172.0.2 至 10.172.15.253
europe-west8 10.198.0.0/20 10.198.0.1 10.198.0.2 至 10.198.15.253
europe-west9 10.200.0.0/20 10.200.0.1 10.200.0.2 至 10.200.15.253
europe-west10 10.214.0.0/20 10.214.0.1 10.214.0.2 至 10.214.15.253
europe-west12 10.210.0.0/20 10.210.0.1 10.210.0.2 至 10.210.15.253
europe-southwest1 10.204.0.0/20 10.204.0.1 10.204.0.2 至 10.204.15.253
me-central1 10.212.0.0/20 10.212.0.1 10.212.0.2 到 10.212.15.253
me-central2 10.216.0.0/20 10.216.0.1 10.216.0.2 至 10.216.15.253
me-west1 10.208.0.0/20 10.208.0.1 10.208.0.2 至 10.208.15.253
northamerica-northeast1 10.162.0.0/20 10.162.0.1 10.162.0.2 至 10.162.15.253
northamerica-northeast2 10.188.0.0/20 10.188.0.1 10.188.0.2 至 10.188.15.253
southamerica-east1 10.158.0.0/20 10.158.0.1 10.158.0.2 至 10.158.15.253
southamerica-west1 10.194.0.0/20 10.194.0.1 10.194.0.2 至 10.194.15.253
us-central1 10.128.0.0/20 10.128.0.1 10.128.0.2 至 10.128.15.253
us-east1 10.142.0.0/20 10.142.0.1 10.142.0.2 至 10.142.15.253
us-east4 10.150.0.0/20 10.150.0.1 10.150.0.2 至 10.150.15.253
us-east5 10.202.0.0/20 10.202.0.1 10.202.0.2 至 10.202.15.253
us-south1 10.206.0.0/20 10.206.0.1 10.206.0.2 至 10.206.15.253
us-west1 10.138.0.0/20 10.138.0.1 10.138.0.2 至 10.138.15.253
us-west2 10.168.0.0/20 10.168.0.1 10.168.0.2 至 10.168.15.253
us-west3 10.180.0.0/20 10.180.0.1 10.180.0.2 至 10.180.15.253
us-west4 10.182.0.0/20 10.182.0.1 10.182.0.2 至 10.182.15.253

其他注意事项

确保所有子网主要和次要 IPv4 地址范围与虚拟机中运行的软件需要使用的 IPv4 地址范围不冲突。某些 Google 和第三方产品使用 172.17.0.0/16 在客机操作系统中进行路由。例如,默认 Docker 网桥网络会使用此范围。如果您依赖的产品使用 172.17.0.0/16,请勿将其用作任何子网主要和次要 IPv4 地址范围。

IPv6 子网范围

在 VPC 网络中的子网上启用 IPv6 时,您可以为该子网选择 IPv6 访问权限类型。IPv6 访问权限类型决定了子网配置有内部 IPv6 地址还是外部 IPv6 地址。 该子网会成为双栈子网。

  • 内部 IPv6 地址用于 VPC 网络内虚拟机之间的通信。只能在 VPC 网络范围内路由这些地址,不能将它们路由到互联网。

  • 外部 IPv6 地址可用于 VPC 网络内虚拟机之间的通信,也可以在互联网上路由。

如果虚拟机接口连接到具有 IPv6 子网范围的子网,则您可以在虚拟机上配置 IPv6 地址。子网的 IPv6 访问权限类型决定了虚拟机是获得内部 IPv6 地址还是外部 IPv6 地址。

IPv6 规范

双栈子网适用于所有区域,同时支持内部和外部 IPv6 子网范围:

  • IPv6 子网范围始终由 Google Cloud 自动分配。
  • IPv6 子网范围始终是 /64 范围。

双栈子网具有以下限制:

  • 您无法更改子网的 IPv6 访问权限类型(内部或外部)。
  • 如果 IPv6 访问权限类型为内部,则无法将双栈子网更改为单栈子网。

内部 IPv6 规范

内部 IPv6 范围是唯一的本地地址 (ULA)。适用于 IPv6 的 ULA 类似于适用于 IPv4 的 RFC 1918 地址。ULA 无法通过互联网访问,并且不能公开路由。

您需要先/48 ULA IPv6 范围分配给 VPC 网络,然后才能创建具有内部 IPv6 范围的子网。将 /48 ULA IPv6 范围分配给 VPC 网络时,请注意以下事项:

  • 每个 VPC 网络的 /48 ULA IPv6 范围在 Google Cloud 中必须是唯一的。这样一来,在使用 VPC 网络对等互连时,就不会出现 IPv6 子网范围重叠的情况。

  • 您可以让 Google Cloud 自动为 VPC 网络分配 /48 ULA IPv6 范围,您也可以提供要使用的 /48 ULA IPv6 范围。如果您提供的 /48 ULA IPv6 范围已被其他 Google Cloud VPC 网络使用,您会收到错误消息。

  • 提供 /48 ULA IPv6 范围的选项有助于避免 VPC 网络与连接的本地网络或其他云服务提供商的网络之间发生冲突。

  • 为 VPC 网络分配 /48 ULA IPv6 范围后,您将无法移除或更改 /48 ULA IPv6 范围。

在创建具有内部 IPv6 范围的子网时,Google Cloud 会自动从 VPC 网络的 /48 ULA IPv6 范围中选择一个未使用的 /64 IPv6 范围。子网内部 /64 IPv6 范围可供以下各项使用:

您还可以预留静态区域级内部 IPv6 /96 地址范围

外部 IPv6 规范

外部 IPv6 地址范围是全球单播地址 (GUA)。外部 IPv6 地址仅在高级层级中提供。

当您创建具有外部 IPv6 地址范围的子网时,Google Cloud 会自动选择未使用的 /64 IPv6 范围。子网外部 /64 IPv6 地址范围可供以下各项使用:

您还可以预留静态区域级外部 IPv6 /96 地址范围

IPv6 范围分配

IPv6 地址范围会分配给网络、子网、虚拟机实例 (VM) 和转发规则。

资源类型 范围大小 详细信息
VPC 网络 /48

如需在子网上启用内部 IPv6,您必须先在 VPC 网络上分配内部 IPv6 范围

系统会将 fd20::/20 内的 /48 ULA 范围分配给该网络。该网络中的所有内部 IPv6 子网范围都是从此 /48 范围分配的。

/48 范围可以自动分配,您也可以从 fd20::/20 中选择特定范围。

子网 /64

IPv6 访问权限类型设置用于控制 IPv6 地址是内部的还是外部的。

子网可以具有内部或外部 IPv6 地址,但不能同时具有这两种 IPv6 地址。

在启用 IPv6 时,会发生以下情况:

  • 如果您在子网上启用内部 IPv6,则系统会从您的 VPC 网络的 /48 范围分配内部 ULA 的 /64 范围。

  • 如果您在子网上启用外部 IPv6,则系统会分配外部 GUA 的 /64 范围。
虚拟机实例 (VM) 或转发规则 /96

在虚拟机上启用 IPv6 时,系统会从虚拟机所连接的子网中为虚拟机分配 /96 范围。该范围内的第一个 IP 地址会分配给使用 DHCPv6 的主要接口。

您未配置虚拟机获取内部还是外部 IPv6 地址。虚拟机会从其连接的子网继承 IPv6 访问权限类型。

后续步骤

自行试用

如果您刚开始接触 Google Cloud,请创建一个账号来评估 Cloud NAT 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费试用 Cloud NAT