**发布时间:** 2025-09-04
**厂商:** GCP
**类型:** BLOG
**原始链接:** https://cloud.google.com/blog/products/networking/connect-ipv6-only-workloads-to-ipv4-with-dns64-and-nat64
---
<!-- AI_TASK_START: AI标题翻译 -->
[新产品/新功能] Cross-Cloud Network 推出 DNS64 与 NAT64,加速 IPv6 转型
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 产品功能分析
## 新功能/新产品概述
GCP 在其 **Cross-Cloud Network** 解决方案中正式推出 **DNS64** 和 **NAT64** 功能。这是一个网络地址与协议的转换服务组合,旨在解决从IPv4向IPv6过渡期间的网络互通性问题。
其核心目标是使部署在Google Cloud中的仅支持IPv6(**IPv6-only**)的工作负载,能够无缝地访问和通信仍然托管在传统IPv4网络上的服务与内容,特别是公网上的IPv4应用。
技术原理如下:
1. 一个 **IPv6-only** 客户端为目标服务发起DNS查询。
2. 如果该服务有IPv6地址(**AAAA记录**),DNS服务器直接返回该地址,客户端通过原生IPv6进行通信。
3. 如果服务只有IPv4地址(**A记录**),启用了 **DNS64** 的Cloud DNS服务会获取该 **A记录**。
4. **DNS64** 会使用一个公认的特定前缀 **well-known 64:ff9b::/96 prefix**,将获取到的IPv4地址嵌入其中,从而“合成”一个临时的IPv6地址,并将其返回给客户端。
5. 客户端使用这个合成的IPv6地址发起连接。
6. 流量被路由到 **NAT64** 网关(作为 **Cloud NAT** 的一部分实现)。
7. **NAT64** 网关识别出 `64:ff9b::/96` 前缀,从中提取出原始的目标IPv4地址。
8. 网关以自己的IPv4地址为源地址,代表客户端向目标IPv4服务发起一个新的IPv4连接。
9. 当收到响应时,网关执行反向转换,将响应包的源IPv4地址重新封装成合成的IPv6地址,并将其发回给原始的 **IPv6-only** 客户端,从而完成整个通信链路。
该功能主要面向正在进行IPv6转型、面临私有IPv4地址耗尽或有IPv6合规性要求的大型企业客户。它被定位为平滑迁移至IPv6的关键基础设施,使用户无需对所有遗留IPv4应用进行成本高昂的改造。
## 关键客户价值
- **构建面向未来的纯IPv6网络**
- 随着公网IPv4地址资源日益稀缺和昂贵,企业可以优先构建成本更低、地址空间更充裕的 **IPv6-only** 环境。**DNS64** 与 **NAT64** 提供了向后兼容的能力,确保这些现代化的网络环境依然能够访问庞大的存量IPv4互联网资源,消除了采纳纯IPv6架构的核心障碍。
- GCP将其作为一项托管服务,与 **Cloud NAT** 和 **Cloud DNS** 深度集成,提供了比自建开源方案(如BIND + Tayga)更高的可靠性、可扩展性和更简化的管理体验。
- **支持渐进式、低风险的IPv6迁移**
- 企业无需进行“一刀切”式的颠覆性迁移。可以先在新业务或新环境中部署 **IPv6-only** 的工作负载,同时通过该服务确保新旧系统间的互操作性。这种渐进式的方法显著降低了迁移项目的风险、复杂性和对现有业务的冲击。
- **保障对遗留关键应用的持续访问**
- 许多企业的核心业务应用仍强依赖于IPv4,对其进行IPv6改造不仅成本高昂,且风险巨大。该功能确保了在网络基础设施向IPv6演进的过程中,这些关键的遗留应用对于新的 **IPv6-only** 客户端依然完全可达,有效保护了企业的现有IT投资,并保障了业务的连续性。
## 关键技术洞察
- _基于标准化的无状态地址转换机制_,技术实现遵循了业界广泛采纳的RFC规范。
- **DNS64** (RFC 6147) 的实现利用了 `64:ff9b::/96` 这个公认前缀进行地址合成。这是一种无状态的转换,DNS服务器本身无需维护客户端与IPv4地址之间的状态映射,极大地简化了系统设计并提升了可扩展性与性能。
- **NAT64** (RFC 6146) 负责有状态的协议转换,处理TCP/UDP/ICMP流量在IPv6和IPv4之间的转换,确保端到端的会话得以维持。
- **与原生云网络服务的深度集成**
- **NAT64** 功能并非一个独立的产品,而是作为 **Cloud NAT** 网关的一项新能力提供。这意味着它天然继承了 **Cloud NAT** 的高可用、自动扩缩容、集中化管理和监控等优势。
- 整个配置流程与GCP现有的网络管理范式保持一致,通过 **Cloud Router** 进行NAT网关的创建和配置,通过 **Cloud DNS** 策略来启用DNS64,降低了用户的学习成本和运维复杂度。
- **配置流程高度自动化和简化**
- 文档中提供的`gcloud`命令行工具示例表明,整个设置过程可以被轻松地脚本化和自动化。启用 **DNS64** 仅需一条命令创建DNS策略,而启用 **NAT64** 也只是在创建NAT网关时增加一个参数标志。这种高度简化的配置体验是公有云托管服务相比于自建方案的核心优势之一。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 加速您的 IPv6 进程:为跨云网络引入 DNS64 和 NAT64
**原始链接:** [https://cloud.google.com/blog/products/networking/connect-ipv6-only-workloads-to-ipv4-with-dns64-and-nat64](https://cloud.google.com/blog/products/networking/connect-ipv6-only-workloads-to-ipv4-with-dns64-and-nat64)
**发布时间:** 2025-09-04
**厂商:** GCP
**类型:** BLOG
---
网络
#
加速您的 IPv6 进程:为跨云网络引入 DNS64 和 NAT64
2025 年 9 月 4 日

##### Rohit Dalal
Google 产品经理
##### Muhammad Farrukh Munir
Google 技术解决方案专家
##### 试用 Gemini 2.5
我们最智能的模型现已在 Vertex AI 上提供
[立即试用](https://console.cloud.google.com/vertex-ai/studio/freeform)
我们推出了 [跨云网络 (Cross-Cloud Network)](https://cloud.google.com/solutions/cross-cloud-network?hl=en) 来帮助企业转变混合云和多云连接。如今,许多客户正使用它在多个云、本地网络和互联网上构建分布式应用程序。这一演进的一个关键方面是能够通过 IPv6 寻址进行扩展。然而,从 IPv4 到 IPv6 的过渡是一个渐进的过程,这带来了一个共存挑战:纯 IPv6 (IPv6-only) 设备如何访问仍驻留在 IPv4 网络上的服务和内容?
为了确保向 IPv6 的平稳过渡,我们正在扩展我们的工具集。在推出了连接到 IPv4 发布服务的 [IPv6 Private Service Connect 端点](https://cloud.google.com/vpc/docs/release-notes#September_27_2024) 之后,我们现在正式推出 [DNS64 和 NAT64](https://cloud.google.com/vpc/docs/ipv6-to-ipv4-overview) 。DNS64 和 NAT64 共同构成了一个强大的机制,能够智能地翻译通信,允许 Google Cloud 中的纯 IPv6 环境与互联网上遗留的 IPv4 应用程序进行交互。在这篇文章中,我们将探讨 DNS64 和 NAT64 在使 IPv6 采用变得实用和高效方面所起的关键作用,消除了将遗留 IPv4 服务迁移到 IPv6 的依赖。
### **DNS64 和 NAT64 的重要性**
虽然双栈网络 (dual-stack networking) 会为网络接口同时分配 IPv4 和 IPv6 地址,但这并不能解决私有 IPv4 地址枯竭或日益增长的 IPv6 原生合规性需求等紧迫问题。对于大型企业而言,实现云工作负载广泛采用 IPv6 的路径,涉及到创建新的单栈 IPv6 (single-stack IPv6) 工作负载,而无需将遗留的 IPv4 应用程序和服务迁移到 IPv6。DNS64 和 NAT64 共同直接满足了这一需求,促进了 IPv6 到 IPv4 的通信,同时保持了对现有 IPv4 基础设施的访问。
这种 IPv6 到 IPv4 的翻译机制支持几个关键用例。
- **启用纯 IPv6 网络:** 随着 IPv4 地址变得日益稀缺和昂贵,企业可以构建面向未来的纯 IPv6 环境,而 DNS64 和 NAT64 则提供必要的翻译来访问互联网上剩余的 IPv4 服务。
- **逐步迁移到 IPv6:** 这使得企业可以逐步淘汰 IPv4,同时保证其纯 IPv6 客户端仍能访问关键的纯 IPv4 服务。
- **支持遗留应用程序:** 许多关键业务应用程序仍然完全依赖 IPv4;这些新服务确保了纯 IPv6 客户端可以访问它们,从而在过渡期间保障业务的持续运营。
### 它是如何工作的?
一个纯 IPv6 工作负载通过对特定服务 URL 执行 DNS 查询来开始通信。如果存在 [AAAA 记录](https://simple.wikipedia.org/wiki/AAAA_record) ,则会返回一个 IPv6 地址,连接将直接使用 IPv6 进行。
然而,如果启用了 DNS64 但找不到 AAAA 记录,系统会转而查询 [A 记录](https://simple.wikipedia.org/wiki/A_record) 。一旦找到 A 记录,DNS64 会通过将**众所周知的 64:ff9b::/96 前缀**与从 A 记录中获取的 IPv4 地址相结合,构建一个唯一的合成 IPv6 地址。
NAT64 网关会识别出目标地址是 64:ff9b::/96 范围的一部分。它从 IPv6 地址的后半部分提取原始的 IPv4 地址,并使用 NAT64 网关自身的 IPv4 地址作为源地址,向目标发起一个新的 IPv4 连接。在收到响应后,NAT64 网关会将 64:ff9b::/96 前缀添加到响应数据包的源 IP 地址上,从而实现与纯 IPv6 客户端的通信。
**下图展示了上述场景:**

### **开始使用 DNS64 和 NAT64**
您可以按照以下步骤为纯 IPv6 虚拟机 (VM) 简单地设置 DNS64 和 NAT64:
1. 创建 VPC、子网、虚拟机和防火墙规则
2. 创建一个 DNS64 服务器策略
3. 创建一个 NAT64 网关
**步骤 1: 创建 VPC、子网、虚拟机和防火墙规则**
**1.1** 创建一个 VPC:
```
gcloud compute networks create test-vpc \--project=dns64-and-nat64-testing \--subnet-mode=custom \--mtu=1500 \--bgp-routing-mode=global \--bgp-best-path-selection-mode=legacy
```
**1.2** 创建一个纯 IPv6 子网和虚拟机
- 创建一个纯 IPv6 子网:
```
gcloud compute networks subnets create public-v6-only-subnet \ \--network=test-vpc \ \--project=dns64-and-nat64-testing \ \--stack-type=IPV6_ONLY \ \--ipv6-access-type=external \ \--region=us-east1
```
- 创建一个纯 IPv6 实例:
```
gcloud compute instances create v6-only-vm-in-public-v6-only-subnet \ \--subnet public-v6-only-subnet \ \--stack-type IPV6_ONLY \ \--zone us-east1 \ \--project=dns64-and-nat64-testing
```
**1.3** 创建防火墙规则以允许从您的环境 SSH 访问这两台虚拟机:
```
gcloud compute firewall-rules create allow-v6-ssh \ \--network test-vpc \ \--priority 300 \ \--direction ingress \ \--action allow \ \--source-ranges ::/0[0.0.0.0/0] \ \--destination-ranges ::/0[0.0.0.0/0] \ \--rules (tcp:22)
```
注意:您可能需要根据您的环境创建更多或不同的规则以允许连接。
### 步骤 2: 创建一个 DNS64 服务器策略
启用 DNS64 策略:
```
gcloud dns policies create allow-dns64 \ \--networks=test-vpc \ \--enable_dns64_all_queries\ \--project=dns64-and-nat64-testing
```
这将创建一个 DNS64 策略,如下所示:

### **步骤 3: 创建一个 NAT64 网关**
**3.1** 创建一个 Cloud Router:
```
gcloud compute routers create nat64-router \ \--network=test-vpc \ \--region=us-east1\ \--project=dns64-and-nat64-testing
```
上述命令会创建一个 Cloud Router,如下所示:

**3.2** 使用上一步创建的 Cloud Router 创建一个 NAT64 网关:
```
gcloud beta compute routers nats create nat64-natgw \ \--router=nat64-router \ \--region=us-east1 \ \--auto-allocate-nat-external-ips \ \--nat64-all-v6-subnet-ip-ranges \ \--project=dns64-and-nat64-testing
```
这将创建一个 Cloud NAT 网关,如下所示:

这样就完成了!
### **DNS64 与 NAT64 的完美结合**
至此,我们希望您已经了解如何使用 DNS64 和 NAT64 将您的**纯 IPv6 工作负载**连接到 **IPv4 目的地**。要了解更多关于为纯 IPv6 工作负载启用 DNS64 和 NAT64 的信息,请查阅 [相关文档](https://cloud.google.com/vpc/docs/connect-ipv6-to-ipv4) 。
发布于
- [网络](https://cloud.google.com/blog/products/networking)
<!-- AI_TASK_END: AI全文翻译 -->