本文档简要介绍了虚拟机 (VM) 实例的网络功能。它提供了有关您的虚拟机 (VM) 实例如何与虚拟私有云 (VPC) 网络进行交互的基本基础知识。如需详细了解 VPC 网络和相关功能,请参阅 VPC 网络概览。
网络和子网
每个虚拟机都是 VPC 网络的一部分。VPC 网络可为您的虚拟机实例提供与其他 Google Cloud 产品和互联网的连接。VPC 网络可以采用自动模式或自定义模式。
- 自动模式 VPC 网络在每个区域中都有一个子网。所有子网都包含在此 IP 地址范围内:
10.128.0.0/9
。自动模式 VPC 网络仅支持 IPv4 子网范围。 - 自定义模式网络没有指定的子网配置;您可以使用您指定的 IP 地址范围决定在所选区域中创建哪些子网。自定义模式网络还支持 IPv6 子网范围。
除非您选择停用默认网络,否则每个项目都有一个 default
网络,这是一个自动模式 VPC 网络。您可以通过创建组织政策来禁止创建默认网络。
VPC 网络中的每个子网都与一个区域相关联,并包含一个或多个 IP 地址范围。您可以为每个区域创建多个子网。虚拟机的每个网络接口都必须连接到子网。
创建虚拟机时,您可以指定 VPC 网络和子网。如果省略此配置,则系统会使用 default
网络和子网。Google Cloud 会从所选子网的主要 IPv4 地址范围向新虚拟机分配内部 IPv4 地址。如果子网还具有 IPv6 地址范围(称为双栈),或者您创建了仅 IPv6 子网(预览版),则可以为虚拟机分配 IPv6 地址。
如需详细了解 VPC 网络,请参阅 VPC 网络概览。如需查看在两个区域中使用具有三个子网的 VPC 网络的虚拟机示例,请参阅 VPC 网络示例。
网络接口控制器 (NIC)
VPC 网络中的每个计算实例都有默认网络接口。您只能在创建计算实例时定义网络接口。配置网络接口时,您需要选择 VPC 网络以及该 VPC 网络中的子网,以便将该接口连接到这些网络。您可以为实例创建更多网络接口,但每个接口都必须连接到不同的 VPC 网络。
您可通过多个网络接口创建配置,使其中的实例直接与多个 VPC 网络连接。如果在实例中运行的应用需要进行流量分离(例如分离数据平面流量和管理平面流量),多个网络接口非常有用。如需详细了解如何使用多个 NIC,请参阅多个网络接口概览。
为计算实例配置网络接口时,您可以指定要与接口搭配使用的网络驱动程序类型,即 VirtIO 或 Google 虚拟 NIC (gVNIC)。对于第一代和第二代机器系列,默认值为 VirtIO。第三代及更新型号的机器默认配置为使用 gVNIC,不支持网络接口的 VirtIO。裸金属实例使用 IDPF。
此外,您还可以选择将每个虚拟机的 Tier_1 网络性能与使用 gVNIC 或 IPDF 的计算实例搭配使用。Tier_1 网络可为入站和出站数据传输提供更高的网络吞吐量限制。
网络带宽
Google Cloud 按每个虚拟机实例(而不是按网络接口 [NIC] 或 IP 地址)考虑带宽。带宽是使用两个维度测量的:流量方向(入站和出站)和目标 IP 地址的类型。可能的最大出站流量速率取决于用于创建实例的机器类型;但是,您只能在特定情况下达到此最大出站流量速率。如需了解详情,请参阅网络带宽。
如需支持更高的网络带宽(例如,第三代及更新型机器系列的 200 Gbps),则必须使用 Google 虚拟 NIC (gVNIC)。
- 标准出站流量带宽上限范围在 1 Gbps 到 100 Gbps 之间。
- 每个虚拟机的 Tier_1 网络性能可将出站流量带宽上限提高到 200 Gbps,具体取决于计算实例的大小和机器类型。
某些机器系列具有不同的限制,如带宽摘要表中所述。
IP 地址
系统会为每个虚拟机分配与网络接口关联的子网中的 IP 地址。以下列表提供了有关配置 IP 地址要求的更多信息。
- 对于仅限 IPv4 的子网,IP 地址是内部 IPv4 地址。您可以选择为虚拟机配置外部 IPv4 地址。
- 如果网络接口连接到具有 IPv6 地址范围的双栈子网,您必须使用自定义模式 VPC 网络。虚拟机具有以下 IP 地址:
- 内部 IPv4 地址。您可以选择为虚拟机配置外部 IPv4 地址。
- 内部或外部 IPv6 地址,具体取决于子网的访问类型。
- 对于仅限 IPv6 的子网(预览版),您必须使用自定义模式 VPC 网络。虚拟机具有内部或外部 IPv6 地址,具体取决于子网的访问权限类型。
- 如需创建同时具有内部和外部 IPv6 地址的仅 IPv6 实例(预览版),您必须在创建虚拟机时指定两个网络接口。您无法向现有实例添加网络接口。
外部和内部 IP 地址可以是临时或静态 IP 地址。
内部 IP 地址是以下某个位置的本地地址:
- VPC 网络
- 使用 VPC 网络对等互连连接的 VPC 网络
- 使用 Cloud VPN、Cloud Interconnect 或路由器设备连接到 VPC 网络的本地网络
一个实例可以使用虚拟机的内部 IPv4 地址与同一 VPC 网络或上述列表中指定的已连接网络上的实例进行通信。如果虚拟机网络接口连接到双栈子网或仅限 IPv6 的子网,您可以使用虚拟机的内部或外部 IPv6 地址与同一网络上的其他实例进行通信。最佳实践是使用内部 IPv6 地址进行内部通信。如需详细了解 IP 地址,请参阅 Compute Engine 的 IP 地址概览。
如需与互联网或外部系统进行通信,请使用虚拟机实例上配置的外部 IPv4 地址或外部 IPv6 地址。外部 IP 地址是可公开路由的 IP 地址。如果实例没有外部 IP 地址,您可以使用 Cloud NAT 来处理 IPv4 流量。
如果在单个虚拟机实例上运行多个服务,则可以使用别名 IP 范围,为每个服务提供不同的内部 IPv4 地址。VPC 网络会将前往特定服务的数据包转发到相应的虚拟机。 如需了解详情,请参阅别名 IP 地址范围。
Network Service Tiers
通过 Network Service Tiers,您可以优化互联网上的系统和 Compute Engine 实例之间的连接。优质层级通过 Google 的优质骨干网提供流量,而标准层级则使用常规 ISP 网络。高级层级适用于优化性能,而标准层级适用于优化费用。
由于网络层级是在资源级(例如虚拟机的外部 IP 地址)选择的,因此您可以对一些资源使用标准层级,而对其他资源使用高级层级。如果您未指定层级,系统会使用高级层级。
在 VPC 网络中使用内部 IP 地址进行通信的计算实例始终使用高级层级网络基础架构。
无论您使用的是高级层级还是标准版,入站数据传输都不会产生费用。出站数据传输价格按传送的 GiB 数计算,各 Network Service Tiers 层级的价格不同。如需了解价格,请参阅 Network Service Tiers 价格。
Network Service Tiers 不同于每个虚拟机的 Tier_1 网络性能,后者是一种可供您选择用于计算实例的配置选项。使用 Tier_1 网络会产生额外费用,如 Tier_1 较高带宽网络价格中所述。如需详细了解 Tier_1 网络,请参阅配置每个虚拟机的 Tier_1 网络性能。
高级层级
高级层级利用 Google 高度可靠的低延迟全球网络,将来自外部系统的流量传输到 Google Cloud资源。此网络经过专门设计,可承受多处故障和中断,同时仍能传输流量。对于用户遍布于全球多个位置的客户,如果需要出色的网络性能和可靠性,则非常适合使用高级层级。
优质层级网络由一个大型专用光纤网络组成,在全球有 100 多个接入点 (PoP)。在 Google 的网络中,流量会从该 PoP 路由到 VPC 网络中的计算实例。出站流量会经由 Google 的网络从距离目的地最近的入网点传出。这种路由方式可减少最终用户与距离最终用户最近的入网点之间的跃点数,从而最大限度地降低网络拥塞程度并提高性能。
标准层级
标准层级网络采用通过互联网路由的方式将来自外部系统的流量传输到Google Cloud 资源。离开 Google 网络的数据包通过公共互联网递送,并受中转传输提供商和 ISP 的可靠性影响。标准层级所提供的网络质量和可靠性与其他云服务商相当。
标准层级的价格低于高级层级,因为来自互联网上系统的流量会先通过中转 (ISP) 网络路由,然后再发送到 VPC 网络内部的计算实例。标准层级的出站流量通常从发送计算实例使用的相同区域传出 Google 的网络,无论目的地在什么地方。
标准层级包含每个区域 200 GB 的免费用量,按资源每月在所有项目中使用。
内部域名系统 (DNS) 名称
创建虚拟机 (VM) 实例时, Google Cloud会根据虚拟机名称创建内部 DNS 名称。除非您指定自定义主机名,否则Google Cloud 会使用自动创建的内部 DNS 名称作为其提供给虚拟机的主机名。
对于同一 VPC 网络中虚拟机之间的通信,您可以指定目标实例的完全限定 DNS 名称 (FQDN),而不是使用其内部 IP 地址。 Google Cloud 会自动将 FQDN 解析为实例的内部 IP 地址。
如需详细了解完全限定域名 (FQDN),请参阅可用区和全局内部 DNS 名称。
路由
Google Cloud 路由定义了网络流量从虚拟机实例到其他目标所采用的路径。这些目标可以位于您的 VPC 网络之内(例如,在另一个虚拟机中),也可以位于它之外。VPC 网络的路由表是在 VPC 网络级层定义的。每个虚拟机实例都有一个控制器,可以从网络路由表中获知所有适用的路由。离开虚拟机的每个数据包都将按照某种路由顺序传递到适用的路由的下一个合适跃点。
子网路由定义了 VPC 网络中指向虚拟机和内部负载均衡器等资源的路径。每个子网至少有一个子网路由,其目的地与子网的主要 IP 范围一致。子网路由始终具有最具体的目的地。即使其他路由具有更高的优先级,子网路由也无法被其他路由替换。这是因为 Google Cloud在选择路由时会先考虑目的地具体程度,再考虑优先级。如需详细了解子网 IP 范围,请参阅子网概览。
转发规则
路由控制离开实例的流量,而转发规则基于 IP 地址、协议和端口将流量定向到 VPC 网络中的 Google Cloud 资源。某些转发规则会将来自 Google Cloud 外部的流量定向到网络内的目的地;其他一些规则会定向来自网络内部的流量。
您可以为实例配置转发规则,以通过 IP、Cloud VPN、专用虚拟 IP (VIP) 和负载均衡来实现虚拟托管。如需详细了解转发规则,请参阅使用协议转发。
防火墙规则
通过 VPC 防火墙规则,您可以根据自己指定的配置允许或拒绝传入或传出虚拟机的连接。 Google Cloud 始终强制执行已启用的 VPC 防火墙规则,以保护您的虚拟机,无论其配置和操作系统如何,即使虚拟机尚未启动。
默认情况下,每个 VPC 网络都具有传入(入站)和传出(出站)防火墙规则,可阻止所有传入连接并允许所有传出连接。default
网络具有额外的防火墙规则(包括 default-allow-internal
规则),用于允许在网络中的实例之间进行通信。如果您未使用 default
网络,则必须明确创建更高优先级的入站防火墙规则,以允许实例相互通信。
每个 VPC 网络均发挥分布式防火墙的作用。防火墙规则是在 VPC 级层定义的,可以应用于网络中的所有实例,您也可以使用目标标记或目标服务账号将规则应用于特定实例。您可以认为,VPC 防火墙规则不仅存在于您的实例与其他网络之间,也存在于同一 VPC 网络内的各个实例之间。
分层防火墙政策可让您在组织中创建和实施一致的防火墙政策。您可以将分层防火墙政策分配给整个组织或各个文件夹。这些政策包含可以明确拒绝或允许连接的规则,与 VPC 防火墙规则相同。此外,分层防火墙政策还可以通过 goto_next
操作将评估委托给较低级层的政策或 VPC 防火墙规则。较低级层的规则无法替换资源层次结构中较高级别的规则。这样,组织范围的管理员就可以集中管理关键的防火墙规则。
代管实例组和网络配置
如果您使用代管式实例组 (MIG),在实例模板中指定的网络配置适用于使用该模板创建的所有虚拟机。如果在自动模式 VPC 网络中创建实例模板, Google Cloud 会自动选择您创建代管式实例组的区域的子网。
后续步骤
- 了解如何创建和管理 VPC 网络。
- 了解如何为 VPC 网络创建和管理路由。
- 了解如何创建和启动 Compute Engine 实例。
- 了解如何创建代管式实例组 (MIG) 。
- 了解如何扩缩虚拟机以及通过负载均衡优化应用延迟。