创建和管理 VPC 网络

本文档介绍如何创建、修改和删除 Virtual Private Cloud (VPC) 网络和子网。在阅读本文档之前,请确保您熟悉 VPC 网络中所述的 VPC 网络的特性。网络和子网在 Google Cloud中是不同的资源

如果您计划在子网上启用 IPv6 范围,请参阅 IPv6 子网范围

亲自尝试

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

免费试用 VPC

创建网络

您可以选择创建自动模式 VPC 网络或自定义模式 VPC 网络。 您创建的每个新网络在同一项目内必须具有唯一的名称。

您可以选择使用Google Cloud 针对特定应用场景提供的网络配置文件来创建网络。仅当您要运行需要 RDMA NIC 的 AI Hypercomputer 工作负载时,才需要配置网络配置文件。如需了解详情,请参阅 RDMA 网络配置文件

创建自动模式 VPC 网络

当您创建自动模式 VPC 网络时,系统会在每个 Google Cloud区域中创建一个子网。在新区域可用后,这些区域中的新子网将自动添加到自动模式 VPC 网络中。自动创建的子网的 IPv4 范围来自预定范围集。所有自动模式 VPC 网络都使用同一组 IPv4 地址范围。

自动模式 VPC 网络不支持具有 IPv6 地址范围的子网。如果您想创建包含 IPv6 地址范围的子网,请创建自定义模式 VPC 网络

如需创建自动模式 VPC 网络,请按照以下步骤操作。

控制台

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

    进入 VPC 网络页面

  2. 点击创建 VPC 网络

  3. 输入网络的名称

  4. 最大传输单元 (MTU):选择网络的 MTU 是 1460(默认值)、1500 还是 8896。在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

  5. 子网创建模式选择自动

  6. 防火墙规则部分中,选择零条或更多预定义防火墙规则。这些规则适用于实例连接的常见使用场景。

    无论您是否选择预定义的规则,都可以在创建网络之后创建自己的防火墙规则

    每个预定义的规则名称都以您创建的 VPC 网络的名称 NETWORK 开头。在 IPv4 防火墙规则标签页中,可修改名为 NETWORK-allow-custom 的预定义入站防火墙规则。默认情况下,该规则指定来源范围 10.128.0.0/9,其中包含自动模式网络中子网的当前和未来 IPv4 范围。在包含该规则的行的右侧,点击修改以选择子网,添加其他 IPv4 范围并指定协议和端口。

  7. 为 VPC 网络选择动态路由模式

    如需了解详情,请参阅动态路由模式。稍后,您可以更改动态路由模式

  8. 点击创建

gcloud

使用 networks create 命令

gcloud compute networks create NETWORK \
    --subnet-mode=auto \
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE \
    --mtu=MTU

请替换以下内容:

  • NETWORK:VPC 网络的名称。
  • DYNAMIC_ROUTING_MODE:控制网络中 Cloud Router 路由器的行为。可以是 globalregional。默认值为 regional。 如需了解详情,请参阅动态路由模式
  • MTU:最大传输单元 (MTU) 是该网络的最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

Terraform

使用 google_compute_network Terraform 资源

MTU 是网络的最大传输单元或最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

resource "google_compute_network" "vpc_network" {
  project                 = var.project_id # Replace this with your project ID in quotes
  name                    = "my-auto-mode-network"
  auto_create_subnetworks = true
  mtu                     = 1460
}

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

API

networks.insert 方法发出 POST 请求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
  "autoCreateSubnetworks": true,
  "name": "auto-network1",
  "mtu": MTU
}

请替换以下内容:

  • PROJECT_ID:在其中创建 VPC 网络的项目的 ID。
  • MTU:最大传输单元 (MTU) 是该网络的最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

如需指定 VPC 网络的动态路由模式,请包括 routingConfig 字段:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
  "routingConfig": {
    "routingMode": "DYNAMIC_ROUTING_MODE"
  },
  "autoCreateSubnetworks": true,
  "name": "NETWORK",
  "mtu": MTU
}

请替换以下内容:

  • PROJECT_ID:在其中创建 VPC 网络的项目的 ID。
  • NETWORK:VPC 网络的名称。
  • DYNAMIC_ROUTING_MODE:控制网络中 Cloud Router 路由器的行为。可以是 GLOBALREGIONAL。默认值为 REGIONAL。 如需了解详情,请参阅动态路由模式
  • MTU:最大传输单元 (MTU) 是该网络的最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

创建具有仅限 IPv4 的子网的自定义模式 VPC 网络

对于自定义模式的 VPC 网络,创建一个网络,随后在区域内创建所需子网。您不必立即为所有区域指定子网,甚至根本不必指定子网,但不能在没有定义子网的区域中创建实例。 最后,为您的网络定义防火墙规则。

VPC 网络中的每个子网都可以有不同的配置;例如,您无需将它们全部配置为仅限 IPv4。您也可以在以后将仅限 IPv4 的子网更改为双栈子网

如需创建具有仅限 IPv4 的子网的自定义模式 VPC 网络,请按照以下步骤操作。

控制台

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

    进入 VPC 网络页面

  2. 点击创建 VPC 网络

  3. 输入网络的名称

  4. 最大传输单元 (MTU):选择网络的 MTU 是 1460(默认值)、1500 还是 8896。在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

  5. 子网创建模式选择自定义

  6. 新子网部分,为子网指定以下配置参数:

    1. 为子网提供名称
    2. 选择区域
    3. 输入 IP 地址范围。这是子网的主要 IPv4 范围

      如果您选择的范围不是 RFC 1918 地址,请确认该范围与现有配置不冲突。如需了解详情,请参阅 IPv4 子网范围

    4. 要为子网定义次要范围,请点击创建次要 IP 范围

      如果您选择的范围不是 RFC 1918 地址,请确认该范围与现有配置不冲突。如需了解详情,请参阅 IPv4 子网范围

    5. 专用 Google 访问通道:选择是在创建子网时为它启用专用 Google 访问通道,还是稍后通过修改来启用。

    6. 流日志:选择是在创建子网时为它启用 VPC 流日志,还是稍后通过修改来启用。

    7. 点击完成

  7. 如需添加更多子网,请点击添加子网,然后重复上述步骤。此外,您还可以在创建网络后向网络添加更多子网

  8. 防火墙规则部分中,选择 IPv4 防火墙规则中的零条或更多预定义防火墙规则。这些规则适用于实例连接的常见使用场景。

    如果您不选择任何预定义规则,则可以在创建网络之后创建自己的防火墙规则

    每个预定义的规则名称都以您创建的 VPC 网络的名称 NETWORK 开头。在 IPv4 防火墙规则标签页中,可修改名为 NETWORK-allow-custom 的预定义入站防火墙规则。在包含规则的行的右侧,点击修改以选择子网,添加其他 IPv4 范围并指定协议和端口。

    如果您以后添加其他子网,则 NETWORK-allow-custom 防火墙规则不会自动更新。如果需要将防火墙规则用于新子网,则必须更新防火墙配置以添加规则。

  9. 为 VPC 网络选择动态路由模式

    如需了解详情,请参阅动态路由模式。稍后,您可以更改动态路由模式

  10. 点击创建

gcloud

使用 networks create 命令

gcloud compute networks create NETWORK \
    --subnet-mode=custom \
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE \
    --mtu=MTU

请替换以下内容:

  • NETWORK:VPC 网络的名称。
  • DYNAMIC_ROUTING_MODE:控制网络中 Cloud Router 路由器的行为。可以是 globalregional。默认值为 regional。 如需了解详情,请参阅动态路由模式
  • MTU:最大传输单元 (MTU) 是该网络的最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

接下来,向网络添加子网

Terraform

使用 google_compute_network Terraform 资源

MTU 是网络的最大传输单元或最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

resource "google_compute_network" "vpc_network" {
  project                 = var.project_id # Replace this with your project ID in quotes
  name                    = "my-custom-mode-network"
  auto_create_subnetworks = false
  mtu                     = 1460
}

接下来,向网络添加子网

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

API

networks.insert 方法发出 POST 请求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
  "autoCreateSubnetworks": false,
  "name": "NETWORK",
  "mtu": MTU,
  "routingConfig": {
    "routingMode": "DYNAMIC_ROUTING_MODE"
  }
}

请替换以下内容:

  • PROJECT_ID:在其中创建 VPC 网络的项目的 ID。
  • NETWORK:VPC 网络的名称。
  • DYNAMIC_ROUTING_MODE:控制网络中 Cloud Router 路由器的行为。可以是 GLOBALREGIONAL。默认值为 REGIONAL。 如需了解详情,请参阅动态路由模式
  • MTU:最大传输单元 (MTU) 是该网络的最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

接下来,向网络添加子网

创建具有双栈子网的自定义模式 VPC 网络

您可以在创建网络时创建子网,也可以稍后添加子网。

双栈子网可以将以下配置之一用于其主要 IP 地址范围:

  • 内部 IPv4 范围和内部 IPv6 范围
  • 内部 IPv4 范围和外部 IPv6 范围

因此,VPC 网络中的每个子网都可以有不同的配置;例如,您无需将它们全部配置为双栈。如果子网的 IPv6 访问权限类型为外部,您也可以稍后将双栈子网更改为仅限 IPv4

如需配置具有内部 IPv6 范围的子网,请启用 VPC 网络唯一本地地址 (ULA) 内部 IPv6 范围。内部 IPv6 子网范围是从此范围分配的。

如需创建具有双栈子网的自定义模式 VPC 网络,请按照以下步骤操作。

控制台

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

    进入 VPC 网络页面

  2. 点击创建 VPC 网络

  3. 输入网络的名称

  4. 最大传输单元 (MTU):选择网络的 MTU 是 1460(默认值)、1500 还是 8896。在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

  5. 对于子网创建模式,选择自定义

  6. 如果您要在此网络中的子网上配置内部 IPv6 地址范围,请完成以下步骤:

    1. 专用 IPv6 地址设置部分,选择为此 VPC 网络配置 ULA 内部 IPv6 范围
    2. 对于分配内部 IPv6 范围,选择自动手动

      如果您选择手动,请在 fd20::/20 范围内输入 /48 范围。如果此范围正在使用中,系统会提示您提供其他范围。

  7. 新子网部分,为子网指定以下配置参数:

    1. 为子网提供名称
    2. 选择区域
    3. 如需创建双栈子网,对于 IP 栈类型,请选择 IPv4 和 IPv6(双栈)
    4. 输入 IPv4 范围。这是子网的主要 IPv4 范围

      如果您选择的范围不是 RFC 1918 地址,请确认该范围与现有配置不冲突。如需了解详情,请参阅 IPv4 子网范围

    5. 选择 IPv6 访问权限类型外部内部

    6. 点击完成

  8. 要添加更多子网,请点击添加子网,然后重复上述步骤。

    VPC 网络中的每个子网可以具有不同的栈类型和 IPv6 访问权限类型配置。您无需将给定网络中的所有子网都配置为双栈子网。

    您还可以在创建网络后向网络添加具有任何栈类型的更多子网

  9. IPv4 防火墙规则IPv6 防火墙规则标签页的防火墙规则部分,选择零条或更多预定义防火墙规则。这些规则适用于实例连接的常见使用场景。

    如果您不选择任何预定义规则,则可以在创建网络之后创建自己的防火墙规则

    每个预定义的规则名称都以您创建的 VPC 网络的名称 NETWORK 开头。IPv4 防火墙规则标签页和 IPv6 防火墙规则标签页中都有可修改的预定义入站防火墙规则;IPv4 规则名为 NETWORK-allow-custom,IPv6 规则名为 NETWORK-allow-ipv6-custom。在包含规则的行的右侧,点击修改以选择子网,添加其他 IP 范围并指定协议和端口。

    如果您以后添加其他子网,NETWORK-allow-customNETWORK-allow-ipv6-custom 防火墙规则不会自动更新。如果需要将防火墙规则用于新子网,则必须更新防火墙配置以添加规则。

  10. 为 VPC 网络选择动态路由模式

    如需了解详情,请参阅动态路由模式。稍后,您可以更改动态路由模式

  11. 点击创建

gcloud

使用 networks create 命令。创建网络后,您可以向其添加子网

如果您要在此网络的任何子网上配置内部 IPv6 范围,请使用 --enable-ula-internal-ipv6 标志。此选项会分配 Google 用于内部 IPv6 子网范围的 fd20::/20 范围内的/48 ULA 前缀。如果您要选择分配的 /48 IPv6 范围,请使用 --internal-ipv6-range 标志指定范围。

如果您只想在此 VPC 网络中的子网上配置外部 IPv6,则可以省略这两个标志。

gcloud compute networks create NETWORK \
    --subnet-mode=custom \
    [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE \
    --mtu=MTU

请替换以下内容:

  • NETWORK:VPC 网络的名称。

  • ULA_IPV6_RANGE:Google 用于内部 IPv6 子网范围的 fd20::/20 范围内的 /48 前缀。如果您不使用 --internal-ipv6-range 标志,则 Google 会为该网络选择 /48 前缀。

  • DYNAMIC_ROUTING_MODE:控制网络中 Cloud Router 路由器的行为。可以是 globalregional。默认值为 regional。 如需了解详情,请参阅动态路由模式

  • MTU:最大传输单元 (MTU) 是该网络的最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

Terraform

使用 google_compute_network Terraform 资源

如果您要在此网络的任何子网上配置内部 IPv6 范围,请使用 enable_ula_internal_ipv6 参数。

请参阅以下示例:

resource "google_compute_network" "default" {
  name                     = "vpc-network-ipv6"
  auto_create_subnetworks  = false
  enable_ula_internal_ipv6 = true
}

接下来,向网络添加子网

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

API

networks.insert 方法发出 POST 请求。创建网络后,您可以向其添加子网

如果您要在此网络中的任何子网上配置内部 IPv6 范围,请将 enableUlaInternalIpv6 设置为 true。此选项会分配 Google 用于内部 IPv6 子网范围的 fd20::/20 范围内的 /48 范围。如果您要选择分配的 /48 IPv6 范围,还请在指定范围时使用 internalIpv6Range 字段。

如需在此 VPC 网络中的子网上仅配置外部 IPv6,请省略这两个字段。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
  "autoCreateSubnetworks": false,
  "name": "NETWORK",
  "mtu": MTU,
  "enableUlaInternalIpv6": true,
  "internalIpv6Range": "ULA_IPV6_RANGE",
  "routingConfig": {
    "routingMode": "DYNAMIC_ROUTING_MODE"
  }
}

替换以下内容:

  • PROJECT_ID:在其中创建 VPC 网络的项目的 ID。
  • NETWORK:VPC 网络的名称。
  • MTU:最大传输单元 (MTU) 是该网络的最大数据包大小。可以将 MTU 设置为 13008896 之间的任何值。默认值为 1460。 在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元
  • ULA_IPV6_RANGE:Google 用于内部 IPv6 子网范围的 fd20::/20 范围内的 /48 前缀。如果您没有为 internalIpv6Range 提供值,Google 会为该网络选择 /48 前缀。
  • DYNAMIC_ROUTING_MODE:控制网络中 Cloud Router 路由器的行为。可以是 GLOBALREGIONAL。默认值为 REGIONAL。 如需了解详情,请参阅动态路由模式

创建具有仅限 IPv6 的子网的自定义模式 VPC 网络

您可以在创建网络时创建子网,也可以稍后添加子网。

仅 IPv6 子网可以具有内部 IPv6 范围或外部 IPv6 范围。如需配置具有内部 IPv6 范围的子网,请启用 VPC 网络 ULA 内部 IPv6 范围。内部 IPv6 子网范围是从此范围分配的。

VPC 网络中的每个子网都可以有不同的配置;例如,您无需将它们全部配置为仅限 IPv6。

您无法将双栈子网或仅限 IPv4 的子网更改为仅限 IPv6 的子网。反过来,您也无法将仅限 IPv6 的子网更改为仅限 IPv4 的子网或双栈子网。

如需创建具有仅限 IPv6 的子网的自定义模式 VPC 网络,请按照以下步骤操作。

控制台

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

    进入 VPC 网络页面

  2. 点击创建 VPC 网络

  3. 输入网络的名称

  4. 最大传输单元 (MTU):选择网络的 MTU 是 1460(默认值)、1500 还是 8896。在将 MTU 设置为高于 1460 的值之前,请查看最大传输单元

  5. 对于子网创建模式,选择自定义

  6. 如需在此网络中的子网上配置内部 IPv6 地址范围,请完成以下步骤:

    1. 专用 IPv6 地址设置部分,选择为此 VPC 网络配置 ULA 内部 IPv6 范围
    2. 对于分配内部 IPv6 范围,选择自动手动

      如果您选择手动,请在 fd20::/20 范围内输入 /48 范围。如果此范围正在使用中,系统会提示您提供其他范围。

  7. 新子网部分,为子网指定以下配置参数:

    1. 为子网提供名称
    2. 选择区域
    3. 如需创建仅限 IPv6 的子网,请对 IP 栈类型选择 IPv6(单栈)
    4. 选择 IPv6 访问权限类型:外部