子网
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 访问权限类型 |
|
系统会自动为子网分配
|
子网的用途
子网可用于不同目的:
- 常规子网:这是默认子网类型。常规子网由用户创建,或者在自动模式 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 地址范围。以下资源的主要内部地址来自子网的主要范围:虚拟机实例、内部负载均衡器和内部协议转发。您可以选择将次要 IP 地址范围添加到仅由别名 IP 地址范围使用的子网。但是,您可以为子网的主要或次要范围中的实例配置别名 IP 地址范围。
您的 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 范围。
如果您已通过 Cloud VPN、专用互连或合作伙伴互连将 VPC 网络连接到其他网络,请确保主要和次要范围不与本地 IP 范围冲突。如需了解详情,请参阅检查重叠子网范围。
子网 IPv4 范围不得与静态路由的目的地发生冲突。
避免将
10.128.0.0/9
块中的 IPv4 地址用于子网的主要或次要 IPv4 范围。在自动模式 VPC 网络中自动创建的子网会使用此地址块中的 IPv4 地址。如果您使用10.128.0.0/9
块中的 IP 地址,则无法使用 VPC 网络对等互连或通过 Cloud VPN 隧道将网络连接到自动模式 VPC 网络。
子网范围不能与受限范围匹配,也不 能比受限范围更小或更大。例如,
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 如需了解如何使用 |
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 5735 和 RFC 1112 中所述,预留以供将来使用(E 类) 某些操作系统不支持使用此范围,因此请确认您的操作系统支持此范围,然后再创建使用此范围的子网。 |
以不公开方式使用的公共 IP 地址范围 | |
以非公开方式使用的公共 IPv4 地址 |
以非公开方式使用的公共 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 8190 和 RFC 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 子网范围适用于所有区域。
系统会自动为 IPv6 子网范围分配
/64
范围。您无法更改子网的 IPv6 访问权限类型(内部或外部)。
如果 IPv6 访问权限类型为内部,则无法将双栈子网更改为单栈子网。
内部 IPv6 规范
内部 IPv6 范围使用唯一的本地地址 (ULA)。
适用于 IPv6 的 ULA 类似于适用于 IPv4 的 RFC 1918 地址。ULA 无法通过互联网访问,并且不能公开路由。
如需创建具有内部 IPv6 范围的子网,请先将内部 IPv6 范围分配给 VPC 网络。系统会分配
/48
IPv6 范围。在创建具有内部 IPv6 范围的子网时,系统会从 VPC 网络的范围分配该子网的/64
范围。VPC 网络的内部 IPv6 范围在 Google Cloud 中是唯一的。
您可以让 Google 为您分配 VPC 网络的内部 IPv6 范围,也可以自行选择特定范围。如果您的 VPC 网络连接到 Google Cloud 外部的网络,则可以选择与这些环境中使用的范围不重叠的范围。
为 VPC 网络分配的
/48
内部 IPv6 范围是永久性的。这意味着,您无法将其停用,也无法稍后进行更改。
其他 VPC 网络不能使用同一范围,从而在使用 VPC 网络对等互连时不会出现 IPv6 子网范围重叠情况。
外部 IPv6 规范
外部 IPv6 地址范围使用全球单播地址 (GUA)。
外部 IPv6 地址可用于 VPC 网络内虚拟机之间的通信,也可以在互联网上路由。如需控制进出互联网的流量,请配置防火墙规则或分层防火墙政策。如需完全停用到互联网的 IPv6 路由,请删除 VPC 网络中的 IPv6 默认路由。
外部 IPv6 地址仅在高级层级中提供。
IPv6 范围分配
IPv6 范围可以分配给网络、子网和虚拟机实例 (VM)。
资源类型 | 范围大小 | 详细信息 |
---|---|---|
VPC 网络 | /48 |
如需在子网上启用内部 IPv6,您必须先在 VPC 网络上分配内部 IPv6 范围。 系统会将
|
子网 | /64 |
IPv6 访问权限类型设置用于控制 IPv6 地址是内部的还是外部的。 子网可以具有内部或外部 IPv6 地址,但不能同时具有这两种 IPv6 地址。
在启用 IPv6 时,会发生以下情况:
|
虚拟机实例 (VM) | /96 |
在虚拟机上启用 IPv6 时,系统会从虚拟机所连接的子网中为虚拟机分配 您未配置虚拟机获取内部还是外部 IPv6 地址。虚拟机会从其连接的子网继承 IPv6 访问权限类型。 |
后续步骤
自行试用
如果您刚开始接触 Google Cloud,请创建一个账号来评估 Cloud NAT 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
免费试用 Cloud NAT