**发布时间:** 2025-11-19
**厂商:** GCP
**类型:** BLOG
**原始链接:** https://cloud.google.com/blog/products/networking/using-private-nat-for-networks-with-overlapping-ip-spaces
---
<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] 解决 IP 地址稀缺问题:深入解析 Google Cloud Private NAT
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 解决方案分析
## 解决方案概述
该解决方案的核心是 **Google Cloud Private NAT**,作为 **Cloud NAT** 服务的一项关键功能,旨在解决企业在构建混合云和多云环境时面临的 **IPv4地址耗尽** 和 **子网地址重叠** 的普遍性难题。当企业通过 **Cloud WAN** 等技术整合其本地数据中心和云上VPC时,不同网络环境间IP地址的冲突成为一个严峻的运维挑战。Private NAT提供了一种全托管的网络地址转换服务,允许IP地址空间重叠或使用非标准私有地址(Non-RFC 1918)的网络之间进行无缝通信,而无需部署和管理复杂的虚拟NAT设备或进行大规模的网络地址重构。其技术原理在于,对从源网络发出的流量进行源IP地址转换(SNAT),将其映射到一个独立的、不冲突的NAT IP地址池中,从而对目标网络隐藏原始IP,解决地址冲突问题。
## 方案客户价值
- **全托管服务,降低运维开销**: 作为一项完全由Google Cloud管理的分布式服务,客户无需关心底层基础设施的部署、扩展、高可用和维护工作,可以专注于应用开发,显著降低了管理自有NAT网关的*运营负担*。
- **简化网络架构**: 提供了一个集中且直观的方式来管理私有网络间的通信。面对IP重叠问题,企业不再需要进行复杂的路由策略设计或网络地址重新规划,从而简化了整体网络拓扑。
- **原生高可用与高性能**: Private NAT是一个分布式服务,具备固有的高可用性和弹性。它能提供虚拟机到虚拟机的*线速性能*,避免了传统主备模式NAT设备可能出现的性能瓶瓶颈和单点故障风险,且无需为冗余而过度配置基础设施。
- **按需自动扩展**: 服务能够根据流量负载自动扩展,支持大量的NAT IP地址和并发连接,可以轻松应对GKE、Cloud Run等动态、IP密集型工作负载的需求。
## 核心应用场景
1. **通过Network Connectivity Center (NCC) 统一全球网络**
- **VPC Spoke-to-Spoke**: 在中心辐射型网络拓扑中,允许两个具有重叠子网的VPC Spoke网络之间进行私密通信。
- **VPC-to-Hybrid-Spoke**: 支持云上VPC与通过Cloud Interconnect或Cloud VPN连接的本地数据中心(作为Hybrid Spoke)进行通信,即使双方网络存在IP地址重叠。
2. **在共享VPC (Shared VPC) 中实现本地混合连接**
- 允许共享VPC中的工作负载(即使位于非路由或重叠的子网内)访问本地的Cloud Interconnect或Cloud VPN隧道。单个Private NAT网关即可为整个VPC内的所有项目提供地址转换服务。
3. **支持GKE和Cloud Run等现代化工作负载**
- **背景**: GKE和Cloud Run等服务为应对IPv4地址枯竭,常使用E类地址等非RFC 1918地址范围。
- **挑战**: 大多数企业本地网络不接受或无法路由这些非标准地址。
- **解决方案**: Private NAT可以将源自这些工作负载的出向流量的IP地址,转换为企业网络可接受的标准私有地址,从而打通与本地资源或合作伙伴VPC的连接。
## 实施步骤示例
**场景:连接一个IP地址重叠的合作伙伴网络**
假设 `production-vpc` 中的应用子网 `app-subnet-prod` (`10.20.0.0/24`) 需要通过Cloud VPN访问合作伙伴网络,但对方也使用了 `10.20.0.0/24` 网段。
1. **创建专用于NAT IP的子网**
- 该子网的地址范围 (`192.168.1.0/24`) 将用作转换后的源IP地址池,且必须与源、目标网络均不重叠。
- ```gcloud
gcloud compute networks subnets create pnat-subnet-prod \
--network=production-vpc \
--range=192.168.1.0/24 \
--region=us-central1 \
--purpose=PRIVATE_NAT
```
2. **创建Cloud Router**
- Private NAT网关需要附加到Cloud Router上才能生效。
- ```gcloud
gcloud compute routers create prod-router \
--network=production-vpc \
--region=us-central1
```
3. **创建并配置Private NAT网关**
- 创建NAT网关,并定义规则:仅当流量源自 `app-subnet-prod` 且目的地为混合连接(`nexthop.is_hybrid`)时,才使用 `pnat-subnet-prod` 子网的IP进行地址转换。
- ```gcloud
gcloud compute routers nats create pnat-to-partner \
--router=prod-router \
--region=us-central1 \
--type=PRIVATE \
--nat-custom-subnet-ip-ranges=app-subnet-prod:ALL
gcloud compute routers nats rules create 1 \
--router=prod-router \
--region=us-central1 \
--nat=pnat-to-partner \
--match='nexthop.is_hybrid' \
--source-nat-active-ranges=pnat-subnet-prod
```
## 涉及的相关产品
- **Cloud NAT**: Private NAT是其核心功能之一,该服务还包括Public NAT。
- **Network Connectivity Center (NCC)**: 用于构建中心辐射型(Hub-and-Spoke)全球网络,是Private NAT的关键应用场景之一。
- **Cloud VPN / Cloud Interconnect**: 提供混合云连接的物理或逻辑通道,Private NAT处理通过这些通道传输的流量。
- **VPC 网络 & 共享VPC**: Private NAT作用的基础网络环境。
- **Cloud Router**: Private NAT网关的配置和管理载体。
- **Google Kubernetes Engine (GKE) & Cloud Run**: 典型的现代化、IP密集型工作负载,常因使用非标准IP地址而需要Private NAT来与外部网络通信。
## 技术评估
- **技术先进性**: 采用**全托管、分布式**的软件定义网络(SDN)实现,与传统的基于虚拟机的NAT设备(Virtual Appliance)方案相比,在可扩展性、性能和可用性方面具有明显优势,避免了手动管理和扩展NAT实例的复杂性。
- **方案可行性**: 该方案直接解决了企业混合云部署中的一个核心痛点,尤其是在企业并购、多伙伴合作、多部门并存等导致IP地址规划混乱的复杂场景下,提供了非常实用且易于实施的解决方案。
- **集成与生态**: 与GCP网络体系(如VPC、NCC、Cloud Router)深度集成,为GKE、Cloud Run等云原生服务提供了原生的网络连通性解决方案,体现了平台一体化的优势。
- **潜在局限性**: 虽然解决方案强大,但NAT技术本身会增加网络故障排查的复杂度,因为需要额外关注地址转换的映射关系。此外,尽管文档强调其可扩展性,但在超大规模部署中,可能存在的会话数、吞吐量等具体限制需要通过官方文档进一步确认。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 攻克 IP 地址稀缺难题:深入解析 Google Cloud 的私有 NAT (private NAT)
**原始链接:** [https://cloud.google.com/blog/products/networking/using-private-nat-for-networks-with-overlapping-ip-spaces](https://cloud.google.com/blog/products/networking/using-private-nat-for-networks-with-overlapping-ip-spaces)
**发布时间:** 2025-11-19
**厂商:** GCP
**类型:** BLOG
---
网络
#
攻克 IP 地址稀缺难题:深入解析 Google Cloud 的私有 NAT (private NAT)
2025 年 11 月 19 日
##### Udit Bhatia
Google Cloud 产品经理
##### 试用 Gemini 3
我们最智能的模型现已在 Vertex AI 和 Gemini Enterprise 上提供
[立即试用](https://console.cloud.google.com/vertex-ai/studio/multimodal)
以混合模式 (在您的数据中心和云端) 运行 AI 工作负载,需要复杂且全球化的网络来统一云端和本地资源。虽然 Google 的 Cloud WAN 提供了连接 VPC、数据中心和专用硬件所需的统一网络结构,但这种互联性也暴露了一个关键的基础性挑战:IP 地址稀缺和子网重叠 (overlapping subnets)。随着企业统一其私有环境和云环境,手动解决这些普遍存在的地址冲突可能会成为一项巨大的运营负担。
解决 IPv4 地址冲突一直是网络领域一个长期存在的挑战。如今,随着越来越多 IP 密集型工作负载和应用的出现,客户面临着一个关键问题:如何确保其部署拥有充足的 IP 地址。
Google Cloud 提供了多种解决方案来应对私有 IP 地址挑战,并促进不可路由网络之间的通信,包括 Private Service Connect (PSC)、IPv6 寻址 (IPv6 addressing) 和网络地址转换 (Network Address Translation, NAT) 设备。在本文中,我们将重点介绍 [Cloud NAT](https://cloud.google.com/nat) 服务的一项功能——私有 NAT (private NAT)。这项托管服务 (managed service) 简化了私有网络间的通信,允许具有 IP 空间重叠的网络进行连接,而无需复杂的路由或管理专有的 NAT 基础设施。
### **了解私有 NAT (private NAT)**
私有 NAT (private NAT) 允许您的 Google Cloud 资源连接到其他具有重叠和/或不可路由子网的 VPC 网络或本地网络,而无需您管理任何虚拟机或设备。
以下是私有 NAT (private NAT) 的一些主要优势:
- **托管服务 (managed service):** 作为一项完全托管的服务,私有 NAT (private NAT) 最大限度地减少了管理和扩展您自己的 NAT 网关 (NAT gateways) 的运营负担。Google Cloud 会处理底层基础设施,因此您可以专注于您的应用程序。
- **简化管理:** 私有 NAT (private NAT) 通过提供一种集中且直接的方式来管理跨工作负载和流量路径的私有网络间通信,从而简化了网络架构。
- **高可用性:** 作为一项分布式服务,私有 NAT (private NAT) 提供高可用性、虚拟机到虚拟机的线速性能和弹性,所有这些都无需过度配置昂贵的冗余基础设施。
- **可扩展性:** 私有 NAT (private NAT) 旨在根据您的需求自动扩展,支持大量的 NAT IP 地址和并发连接。

图 1: Cloud NAT 选项
### **常见用例**
私有 NAT (private NAT) 为最复杂的混合和多 VPC 网络挑战提供了关键的地址转换。
**使用 Network Connectivity Center 统一全球网络**
对于使用 Network Connectivity Center 建立中央连接枢纽的组织,私有 NAT (private NAT) 提供了连接具有重叠“不可路由” IP 地址范围网络的基本机制。该解决方案支持两种主要场景:
- **VPC spoke-to-spoke:** 促进具有重叠子网的不同 VPC 网络 (spokes) 之间无缝的私有网络间通信。
- **VPC-to-hybrid-spoke:** 实现云 VPC 与通过 Cloud Interconnect 或 Cloud VPN 连接的本地网络 (混合 spoke (hybrid spoke)) 之间的连接。[在此处了解更多信息](https://cloud.google.com/nat/docs/about-private-nat-for-ncc)。

图 2: 使用 Network Connectivity Center 的私有 NAT (private NAT)
**在共享 VPC (shared VPC) 中实现本地混合连接**
拥有共享 VPC (shared VPC) 架构的组织可以建立从不可路由或重叠网络子网到其本地 Cloud Interconnect 或 Cloud VPN 隧道的连接。单个私有 NAT (private NAT) 网关可以管理 VPC 内所有工作负载的目标路由。
> “得益于私有 NAT (private NAT),我们轻松地将 Orange 的本地数据中心与 Masmovil 的 GCP 环境连接起来,即使在我们合资后出现了 IP 地址重叠。这对业务连续性至关重要,因为它使我们能够在不改变现有环境的情况下实现通信。” – Pedro Sanz Martínez, MasOrange 云平台工程主管

图 3: 使用私有 NAT (private NAT) 实现本地混合连接
**适配 Cloud Run 和 GKE 工作负载**
动态的、IP 密集型的工作负载,例如 [Google Kubernetes Engine](https://cloud.google.com/blog/products/containers-kubernetes/how-class-e-addresses-solve-for-ip-address-exhaustion-in-gke?e=13802955) (GKE) 和 [Cloud Run](https://cloud.google.com/run/docs/configuring/networking-best-practices#non-rfc-1918),通常使用非 RFC 1918 范围 (Non-RFC 1918 ranges) (例如 E 类 (Class E)) 来解决 IPv4 地址耗尽 (IPv4 exhaustion) 问题。这些工作负载通常需要访问本地网络或合作伙伴 VPC 中的资源,因此本地网络接受非 RFC 1918 范围的能力至关重要。在大多数情况下,中央网络团队不接受非 RFC 1918 地址范围。
您可以通过将私有 NAT (private NAT) 配置应用于非 RFC 1918 子网来解决此问题。通过私有 NAT (private NAT),来自您的 Cloud Run 服务或 GKE 工作负载的所有出站流量 (egress traffic) 都会被转换,使其能够安全地与目标网络通信,尽管它们位于不可路由的子网上。在此处了解私有 NAT (private NAT) 如何与不同工作负载协同工作 [here](https://cloud.google.com/nat/docs/nat-product-interactions)。
### **配置实战:示例设置**
让我们看看如何使用 `gcloud` 命令为其中一个用例配置私有 NAT (private NAT)。
**示例:连接到具有重叠 IP 的合作伙伴网络**
**场景:** 您的 `production-vpc` 包含一个应用子网 (`app-subnet-prod`, `10.20.0.0/24`)。您需要通过 Cloud VPN 连接到合作伙伴的网络,但合作伙伴也使用 `10.20.0.0/24` 范围来提供您需要访问的资源。
**解决方案:** 配置一个私有 NAT (private NAT) 网关,在流量通过 VPN 隧道之前转换来自 `app-subnet-prod` 的流量。
1. **为 NAT IP 创建一个专用子网。** 此子网的范围用于转换,并且不得与源或目标重叠。
```
gcloud compute networks subnets create pnat-subnet-prod \
--network=production-vpc \
--range=192.168.1.0/24 \
--region=us-central1 \
--purpose=PRIVATE_NAT
```
2. **创建一个 Cloud Router**
```
gcloud compute routers create prod-router \
--network=production-vpc \
--region=us-central1
```
3. **创建一个私有 NAT (private NAT) 网关。** 此配置指定只有从 `app-subnet-prod` 到本地动态 (匹配 is_hybrid) 目的地的流量才应使用来自 `pnat-subnet-prod` 子网的 IP 进行转换。
```
gcloud compute routers nats create pnat-to-partner \
--router=prod-router \
--region=us-central1 \
--type=PRIVATE --region=us-central1 \
--nat-custom-subnet-ip-ranges=app-subnet-prod:ALL
gcloud compute routers nats rules create 1 \
--router=prod-router --region=us-central1 \
--nat= pnat-to-partner \
--match='nexthop.is_hybrid' \
--source-nat-active-ranges= pnat-subnet-prod
```
现在,`app-subnet-prod` 中任何向合作伙伴的重叠网络发送流量的虚拟机,其源 IP 都将被转换为 `192.168.1.0/24` 范围内的地址,从而解决冲突。
Google Cloud 的私有 NAT (private NAT) 优雅地解决了连接具有重叠 IP 地址空间网络的常见而复杂的问题。作为一项完全托管、可扩展且高可用的服务,它简化了网络架构,减少了运营开销,并使您能够轻松构建和连接复杂的混合云和多云环境。
### **了解更多**
准备好开始使用私有 NAT (private NAT) 了吗?查看官方 [私有 NAT (private NAT) 文档](https://cloud.google.com/nat/docs/private-nat) 和教程以了解更多信息,并立即开始构建您自己的解决方案。
发布于
- [网络](https://cloud.google.com/blog/products/networking)
- [开发者与实践者](https://cloud.google.com/blog/topics/developers-practitioners)
<!-- AI_TASK_END: AI全文翻译 -->