Cloud NAT 概览
Cloud NAT 是项目默认出站流量配置的升级版。 Cloud NAT 是一项项目级范围的区域服务,仅限于 IPv4 流量,并提供以下功能:
- 每个项目可以有多个网关,这些网关可以从不同的端点集出站流量。
- 每个网关配置多个可配置的出站 IP。
- 每个网关有多个可配置的端点标签选择器。
- 每个网关的可配置连接超时。
- 在出站节点发生故障时,可靠性更高,影响范围更小。
下图展示了 Cloud NAT 的示例概览。每个网关都会从具有网关标签选择器中所有标签(AND 匹配)的 pod 或虚拟机(与网关位于同一项目中)的端点传出所有定向到非内部 IP 的流量。不同项目中的端点或与标签选择器不完全匹配的端点无法通过网关传出流量。网关会将其出站 IP 之一静态分配给通过它们发送出站流量的每个端点。来自叶子子网的 IP 用于指定每个 Cloud NAT 网关可使用的出站 IP 集。

例如,如果 project-1 中的某个 Pod(具有标签 app:aa 和 IP 192.168.0.1)发出一个目标 IP 为 22.22.22.22 的数据包,该数据包将被定向到 Cloud NAT 网关。网关会将来源 IP 替换为分配给 Pod 端点 (34.1.22.1) 的出站 IP,然后将其转发到数据 VRF。如果该 VRF 返回了回复,它将执行反向操作,并将生成的数据包转发到 Pod 的端点。相同的机制将应用于相应项目和标签中的虚拟机。

默认情况下,通过 Cloud NAT 网关创建的出站连接将具有以下超时。如有需要,可以手动配置。
超时 |
默认值(秒) |
非 TCP 连接 |
60 |
空闲 TCP 连接 |
8000 |
TCP 连接拆除 |
10 |
TCP 连接建立 |
60 |
限制
- 每个端点只能通过单个 Cloud NAT 网关使用单个出站 IP 地址出站。此 IP 地址由网关自动分配给每个端点。除非端点或网关的配置发生变化,否则此分配不会发生变化。
- 为确保端点与网关之间的路由具有确定性,Cloud NAT 网关不得具有重叠的标签选择器,并且端点不得具有与多个网关匹配的标签。
- 如果端点还具有来自 VPN 网关的路由,则这些路由的优先级将高于来自 Cloud NAT 网关的路由。
扩缩限制
- 每个项目的出站 IP 地址数量上限为 100。如果分配给 Cloud NAT 网关的子网超过 100 个,则网关只会使用前 100 个 IP 地址。
- 每个出站 IP 地址、每个协议到特定目标 IP 地址和端口的并行连接数上限为 32k。超出此限制会导致连接失败。
- 每个 VPC 每个可用区的 NAT 映射数量上限为 1,000。为分配给每个 Cloud NAT 网关的每个端点创建一个映射。由于一个端点只能分配给一个 NAT 网关,因此一个可用区中可以使用 Cloud NAT 的端点数量上限为 1, 000 个。NAT 映射不会随连接数的增加而扩展。
故障切换行为
如果出站流量节点变得不可用,使用该出站流量节点的 Cloud NAT 网关会自动将其外部 IP 从不可用的节点迁移到其他可用的出站流量节点。然后,网关将重新配置系统,以使用其他可用节点发送出站流量。重新配置完成后,之前使用不可用节点的端点将能够重新建立出站连接。