高级 VPC 概念
本页面介绍了有关使用 Virtual Private Cloud (VPC) 网络的其他详细信息。在阅读本页内容之前,请先查看 VPC 网络。如果您对对等互连的 VPC 网络感兴趣,请参阅 VPC 网络对等互连。
深层 VPC 网络详细信息
此部分介绍了一些深层 VPC 网络详细信息。如果您要了解典型的使用情景,则无需阅读此内容,但这些信息可让您更深入地了解 VPC 网络的工作原理。下图展示了这些深层详细信息,更多信息见相应部分。
系统组件和功能
不同的 VPC 网络功能由系统的不同部分处理。其中一些是标准网络功能,有详尽的文档记录,还有一些功能专门针对 VPC 网络。其中的部分功能可由您配置,也有一些功能不能由您配置。VPC 网络使用 Linux 的 VIRTIO 网络模块来模拟以太网卡和路由器功能,但较高层次的网络堆栈(例如 ARP 查询)则使用标准网络软件进行处理。
- ARP 查询
- 实例内核发出 ARP 请求,VPC 网络发出 ARP 回复。MAC 地址与 IP 地址之间的映射由实例内核处理。
- MAC 对照表、IP 对照表、活动连接表
- 这些表托管在底层 VPC 网络中,用户无法检查或配置。
- DNS 服务器
各实例的元数据服务器充当 DNS 服务器。它将所有 VPC 网络 IP 地址的 DNS 条目存储在本地 VPC 网络中,并调用 Google 的公开 DNS 服务器处理 VPC 网络以外的条目。您不能配置此 DNS 服务器。每个实例上的 DHCP 客户端均配置为管理实例的
/etc/resolv.conf
文件。您可以通过修改 DHCP 政策将自己的搜索域名或域名服务器添加到实例的
/etc/resolv.conf
。许多 Linux 发行版允许通过/etc/dhcp/dhclient.conf
持久保留这些修改。如需了解详情,请参阅内部 DNS 文档。- VPC 网络与外部之间的数据包处理
进出 VPC 网络的数据包由网络代码进行处理,网络代码会根据防火墙规则、外部 IP 对照表和活动连接表检查数据包。VPC 网络还对进出 VPC 网络的数据包执行 NAT。
- 实例接收数据包
实例内核以标准方式接收数据包,并将其转换为流。
- 实例发送数据包
实例内核以标准方式发送数据包,并将其转换为流。接口和网络功能使用 VIRTIO 网络模块进行建模。
详细的连接演示
下面进一步详细介绍了在实例发起 VPC 网络调用时发生的情况。
实例发起调用:
- 如果目标地址是实例名称或诸如 www.google.com 之类的网址,则此实例将调用其元数据服务器上的 DNS 服务并获取匹配的 IP 地址。您可以对实例进行配置以查询另一项 DNS 服务,但您无法解析实例名称。
目标 IP 地址根据子网的 IP 地址范围进行检查,而每个实例都了解此范围。
如果 IP 地址不在当前 VPC 网络中,或者在使用 VPC 网络对等互连来对等互连的 VPC 网络中:
实例将数据包发送到子网的网关 MAC 地址,并将目的地设置为数据包的最终目的地。实例可能需要发出 ARP 请求来解析网关的 MAC 地址。
VPC 网络重写 IP 标头,以将实例的外部 IP 地址声明为来源。如果该实例没有外部 IP 地址,则不允许该调用,并且 VPC 网络会在不通知发送方的情况下丢弃该数据包。
VPC 网络记录传出数据包,并将来源和目的地添加到活动连接表。
VPC 网络将数据包发送到其目的地。
目的地获取数据包并作出响应(如果它选择这样做)。
VPC 网络接收到响应,查询活动连接表,在确定此连接属于活动连接后允许此连接。VPC 网络查询其网络/外部 IP 对照表,并将实例的外部 IP 地址替换为匹配的网络地址,再将数据包发送到来源实例。
实例接收数据包。
如果目的地 IP 地址在 VPC 网络中或在使用 VPC 网络对等互连来对等互连的 VPC 网络中:
该实例配置了使用 255.255.255.255 掩码的 IP 地址,因此实例会将该数据包发送到子网的网关 MAC 地址。实例可能需要首先发出 ARP 请求来解析网关的 MAC 地址。
Google Cloud 会将数据包转发到当前或对等互连的 VPC 网络中的目的地 IP 地址。
目标实例接收数据包。目标实例检查入站防火墙,确定是否允许数据包。如果不允许,系统会静默地丢弃数据包。否则,实例会处理数据包。
外部实例或计算机调用实例:
外部调用方将数据包发送到 VPC 网络拥有的实例外部 IP 地址。
VPC 网络将数据包与活动连接表进行对照,确定此连接是否属于现有连接:
- 如果此连接不是现有连接,则 VPC 网络会查找允许此连接的防火墙规则。
- 如果没有相应的防火墙规则,VPC 网络会在不通知发送方的情况下丢弃数据包。
如果存在现有连接或有效的防火墙规则,VPC 网络将检查其对照表,将外部 IP 替换为数据包中相应的内部 IP,将传入数据包记录在活动连接表中,并将数据包发送到目标实例。
实例接收数据包,并且在将数据包发送到网络范围以外时,会按照 IP 地址位于 VPC 网络 IP 范围以外的情况中的说明进行响应。
VPC 网络接收回复,在活动连接表中查找匹配的传入请求,并允许数据包通过。在发送之前,它会将实例的内部 IP 替换为其查找表中对应的外部 IP,以修改来源 IP 地址。
衡量 VPC 网络吞吐量
如需了解相关说明,请参阅计算网络吞吐量。
后续步骤
- 如需了解 VPC 网络,请参阅 VPC 网络。
- 如需创建、修改和删除 VPC 网络,请参阅创建和管理 VPC 网络。