本文档简要介绍了虚拟机 (VM) 实例的网络功能。它提供了有关您的虚拟机如何与 Google Cloud Virtual Private Cloud (VPC) 网络进行交互的基本基础知识。如需详细了解 VPC 网络和相关功能,请参阅 VPC 网络概览。
网络和子网
每个虚拟机都是 VPC 网络的一部分。VPC 网络为您的虚拟机实例提供与其他 Google Cloud 产品和互联网的连接。VPC 网络可以采用自动模式或自定义模式。
- 自动模式网络在每个区域中都有一个子网。所有子网都包含在此 IP 地址范围内:
10.128.0.0/9
。自动模式网络仅支持 IPv4 子网范围。 - 自定义模式网络没有指定的子网配置;您可以使用您指定的 IPv4 范围决定在所选区域中创建哪些子网。自定义模式网络还支持 IPv6 子网范围。
除非您选择停用默认网络,否则每个项目都有一个 default
网络,这是一个自动模式网络。
VPC 网络中的每个子网都与一个区域相关联,并包含一个或多个 IP 地址范围。您可以为每个区域创建多个子网。虚拟机的每个网络接口都必须连接到子网。
创建虚拟机时,您可以指定 VPC 网络和子网。如果省略此配置,则系统会使用 default
网络和子网。Google Cloud 从所选子网的主要 IPv4 地址范围向新虚拟机分配内部 IPv4 地址。如果子网还具有 IPv6 地址范围,则可以选择分配 IPv6 地址。
如需详细了解 VPC 网络,请参阅 VPC 网络概览。如需查看在两个区域中使用具有三个子网的 VPC 网络的虚拟机示例,请参阅 VPC 网络示例。
网络接口控制器 (NIC)
VPC 网络中的每个虚拟机都有默认网络接口。您可以为虚拟机创建更多网络接口,但每个接口都必须连接到不同的 VPC 网络。您可通过多个网络接口创建配置,使其中的实例直接与多个 VPC 网络连接。如需详细了解如何使用多个 NIC,请参阅多个网络接口概览。
IP 地址
每个虚拟机接口都有一个内部 IPv4 地址,该地址从子网分配。您可以选择性地配置外部 IPv4 地址。如果接口连接到具有 IPv6 范围的子网,则可以选择配置 IPv6 地址。虚拟机使用这些 IP 地址与其他 Google Cloud 资源和外部系统进行通信。外部 IP 地址是可与互联网通信的可公开路由 IP 地址。外部和内部 IP 地址可以是临时或静态 IP 地址。
内部 IP 地址是以下其中一项的本地 IP 地址:
- VPC 网络
- 使用 VPC 网络对等互连连接的 VPC 网络
- 使用 Cloud VPN、Cloud Interconnect 或路由器设备连接到 VPC 网络的本地网络
一个实例可以使用虚拟机的内部 IPv4 地址与同一 VPC 网络或上述列表中指定的已连接网络上的实例进行通信。如果虚拟机已配置 IPv6,您还可以使用虚拟机的内部或外部 IPv6 地址。最佳实践是使用内部 IPv6 地址进行内部通信。如需详细了解 IP 地址,请参阅 Compute Engine 的 IP 地址概览。
如需与互联网进行通信,您可以使用实例上配置的外部 IPv4 地址或外部 IPv6 地址。如果实例没有外部地址,您可以使用 Cloud NAT 来处理 IPv4 流量。
如果在单个虚拟机实例上运行多个服务,则可以使用别名 IP 范围,为每个服务提供不同的内部 IPv4 地址。VPC 网络会将前往特定服务的数据包转发到相应的虚拟机。 如需了解详情,请参阅别名 IP 地址范围。
内部域名系统 (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 防火墙规则。较低级层的规则无法替换资源层次结构中较高级别的规则。这样,组织范围的管理员就可以集中管理关键的防火墙规则。
网络带宽
Google Cloud 按每个虚拟机器 (VM) 实例(而不是按网络接口 (NIC) 或 IP 地址)考虑带宽。带宽是使用两个维度测量的:流量方向(入站和出站)和目标 IP 地址的类型。虚拟机的机器类型定义了其可能的最大出站流量速率;但是,您只能在特定情况下达到此最大出站流量速率。如需了解详情,请参阅网络带宽。
Google 虚拟 NIC (gVNIC) 是专为 Compute Engine 设计的虚拟网络接口。gVNIC 是基于 virtIO 的以太网驱动程序的替代方案。gVNIC 需要支持较高的网络带宽,例如 50 Gbps 到 100 Gbps 的速度,可用于挂接了 GPU 的虚拟机上的分布式工作负载。此外,使用某些旨在实现最佳性能的机器类型时,需要使用 gVNIC。如需了解详情,请参阅使用 Google 虚拟 NIC。
代管实例组和网络配置
如果您使用代管式实例组 (MIG),在实例模板中指定的网络配置适用于使用该模板创建的所有虚拟机。如果在自动模式 VPC 网络中创建实例模板,Google Cloud 会自动选择您创建代管式实例组的区域的子网。
后续步骤
- 了解如何创建和修改 Virtual Private Cloud (VPC) 网络。
- 了解如何创建虚拟机。
- 了解如何创建 MIG。
- 了解如何为 Google Cloud 中的虚拟机创建和管理路由。
- 了解如何进行虚拟机的负载均衡和扩缩。