创建具有多个网络接口的虚拟机


默认情况下,每个计算实例至少有一个网络接口 (vNIC),用于确定实例使用的虚拟私有云网络。您可以创建具有多个网络接口的实例。除了使用 RDMA 网络配置文件创建的 VPC 网络,每个网络接口都必须分配到唯一 VPC 网络中的子网。网络接口的堆栈类型和子网的堆栈类型协同工作,如堆栈类型和 IP 地址中所述

每个计算实例都使用 DHCP 选项 121(如 RFC 3442 中所定义)接收默认路由。默认路由与 nic0 相关联。除非手动配置,否则从某个实例流向任何目的地(直接关联的子网除外)的所有流量都将使用 nic0 上的默认路由离开该实例。

在 Linux 系统上,您可以使用 /etc/iproute2/rt_tables 文件以及 ip ruleip route 命令在客户机操作系统中配置自定义规则和路由。如需了解详情,请参阅客户机操作系统文档。如需查看示例,请参阅以下教程:为其他接口配置路由

如果您不需要多个网络接口,请按照创建和启动实例的过程创建具有默认网络配置的实例。

准备工作

所需的角色

如需获得使用特定子网创建实例所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含使用特定子网创建实例所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

您需要具备以下权限才能使用特定子网创建实例:

  • 针对项目的 compute.instances.create 权限
  • 为实例指定子网:针对项目或所选子网的 compute.subnetworks.use 权限
  • 在使用 VPC 网络时为实例分配外部 IP 地址:针对项目或所选子网的 compute.subnetworks.useExternalIp 权限

您也可以使用自定义角色或其他预定义角色来获取这些权限。

要求

在创建具有多个网络接口的实例之前,请先查看以下要求:

  • 除了使用 RDMA 网络配置文件创建的 VPC 网络之外,还适用以下限制:如果您创建具有多个网络接口的实例,则每个接口都必须连接到不同的 VPC 网络。这些网络可以是独立的 VPC 网络,也可以是共享 VPC 网络
  • 每个网络接口都必须使用唯一的子网 IP 地址范围。
  • 对于独立项目中的多 NIC 计算实例,每个网络接口都必须使用与实例位于同一项目中的子网。对于共享 VPC 宿主项目或服务项目中的实例,请参阅 Virtual Private Cloud 文档中的共享 VPC Private Service Connect 接口可让多 NIC 实例在不同项目的子网中拥有网络接口。如需了解详情,请参阅网络连接简介

创建具有多个网络接口的虚拟机实例

大多数 Compute Engine 实例允许您在创建实例时配置多个 vNIC。

如需了解如何创建具有多个网络接口的计算实例,请参阅创建具有多个网络接口的虚拟机实例

向现有实例添加网络接口

您只能在创建实例时为实例配置虚拟 NIC (vNIC)。不过,您可以向现有实例添加或移除动态网卡,而无需重启实例。

Dynamic NIC 是父级 vNIC 的子接口。配置动态网卡时,您需要指定一个 VLAN ID,用于为动态网卡标记网络流量:

  • 动态网卡的 VLAN ID 必须是介于 2 到 255 之间的整数。
  • 动态网卡的 VLAN ID 在父级 vNIC 中必须是唯一的。不过,属于不同父级 vNIC 的动态网卡可以使用相同的 VLAN ID。

Google Cloud 使用以下格式来命名动态网卡:PARENT_NIC_NUMBER.VLAN_ID

PARENT_NIC_NUMBER 是父 vNIC 的名称,例如 nic0VLAN_ID 是您在配置动态网卡时指定的数字。动态网卡名称示例为 nic0.4

如需了解如何向实例添加动态网卡,请参阅向实例添加动态网卡

后续步骤