首页 / 内容指南 / 当前文章

NAT44、CGNAT、NAT64、DNS64、464XLAT和NPTv6有什么区别?

发布于 2026-08-26 · routecfg.com 编辑部

NAT44在IPv4私网与IPv4公网之间转换地址,家庭路由器通常还会转换TCP/UDP端口;CGNAT把类似的IPv4地址和端口转换放到运营商网络,让多个用户共享公网IPv4;NAT64在IPv6客户端与IPv4服务器之间转换IP协议和地址;DNS64为只有A记录的IPv4服务合成带NAT64前缀的AAAA记录;464XLAT组合客户端侧无状态转换和运营商侧有状态NAT64,让仅支持IPv4的应用也能经过IPv6接入网访问IPv4;NPTv6则在两个IPv6前缀之间进行无状态、一对一的前缀转换。

本文目录(19 节)

直接答案

NAT44在IPv4私网与IPv4公网之间转换地址,家庭路由器通常还会转换TCP/UDP端口;CGNAT把类似的IPv4地址和端口转换放到运营商网络,让多个用户共享公网IPv4;NAT64在IPv6客户端与IPv4服务器之间转换IP协议和地址;DNS64为只有A记录的IPv4服务合成带NAT64前缀的AAAA记录;464XLAT组合客户端侧无状态转换和运营商侧有状态NAT64,让仅支持IPv4的应用也能经过IPv6接入网访问IPv4;NPTv6则在两个IPv6前缀之间进行无状态、一对一的前缀转换。

它们不能互换。NAT44和CGNAT处理IPv4到IPv4,NAT64与464XLAT处理IPv6/IPv4共存,DNS64只修改DNS答案而不转发业务数据,NPTv6始终是IPv6到IPv6且不做端口复用。排障时应先识别转换发生在哪一层、由谁维护状态、客户端和服务器各自使用哪种地址族。

一、核心对比

↔ 表格可左右滑动查看完整内容
机制输入侧输出侧是否有状态是否改端口常见部署位置
NAT44/NAPTIPv4IPv4通常有通常会家庭/企业边界路由器
CGNAT用户IPv4公网IPv4有会运营商网络
NAT64IPv6IPv4RFC 6146方案有状态会IPv6-only网络边界
DNS64DNS A记录合成AAAA记录DNS缓存状态另论不适用递归DNS服务器
464XLATIPv4应用经IPv6网络IPv4服务器CLAT无状态、PLAT有状态PLAT侧会移动/IPv6-only接入网
NPTv6IPv6前缀AIPv6前缀B无状态不会IPv6站点边界

“NAT”这个词同时出现在多项技术中,却可能表示地址族转换、端口复用或仅替换网络前缀。只看设备界面上的“NAT已启用”无法判断实际路径。

二、NAT44与NAPT是什么

传统NAT把一组IPv4地址映射到另一组IPv4地址。RFC 3022区分Basic NAT和NAPT:Basic NAT只变换IP地址;NAPT还把内部IP与TCP/UDP端口映射到外部地址和端口,使多个内网主机可以共享一个公网地址。

家庭路由器常见配置本质上是NAPT,但日常仍简称NAT。内网设备发起连接后,网关建立状态表:

192.168.1.20:53124
→ 203.0.113.10:42001

返回数据必须经过拥有这条映射的网关,才能还原给内网设备。未经端口转发或已有状态的公网入站连接通常无法直接找到内网主机。NAT因此产生了入站障碍,但NAT本身不是完整防火墙;允许、拒绝和记录连接仍应由安全策略控制。

三、CGNAT是什么

CGNAT(Carrier-Grade NAT)把地址共享从用户家中的路由器再向上扩展到运营商网络。用户WAN口可能得到共享地址空间中的地址,运营商设备再将大量用户的地址和端口映射到较少的公网IPv4。

RFC 6598为运营商共享地址空间保留100.64.0.0/10。看到WAN地址在这个范围内,是CGNAT的重要线索,但运营商也可能使用其他内部规划;最终应比较路由器WAN地址与公网观测地址并向运营商确认。

CGNAT常形成“双重NAT”:家庭NAT一层,运营商NAT再一层。用户只能控制家庭网关的端口转发,不能自行添加运营商侧映射,所以公网IPv4入站、部分P2P、游戏主机和自建服务可能受限。

四、CGNAT与家庭双路由NAT有什么区别

两者都可能经历两次IPv4地址/端口转换,但控制边界不同。家庭双路由通常两台设备都在用户现场,理论上可改桥接、DMZ或逐级端口转发;CGNAT第二层由运营商管理,用户没有配置权限。

排查方法:记录终端地址、内层路由WAN地址、外层或运营商分配地址,以及公网回显地址。若路由器WAN是RFC 1918私网或100.64.0.0/10,且与公网回显不同,就存在上游转换。不要只凭Traceroute某一跳地址下结论,因为中间设备的ICMP源地址不等于业务NAT配置。

五、NAT64是什么

有状态NAT64让IPv6-only客户端访问IPv4服务器。客户端向一个包含IPv4目标信息的IPv6地址发包,NAT64设备将IPv6包头转换为IPv4,并从IPv4地址/端口池建立映射;返回包按状态表转换回IPv6。

RFC 6146描述的方案主要支持单播TCP、UDP和ICMP。多个IPv6客户端可共享少量公网IPv4。没有预先状态或静态映射时,通常由IPv6侧客户端发起连接,这一点与常见NAPT的入站边界相似。

NAT64不仅替换地址长度,还跨越IPv6与IPv4协议头,因此ICMP、分片、MTU和校验和处理比NAT44更复杂。不能把普通IPv4端口转发教程直接套到NAT64上。

六、DNS64做什么

DNS64发现目标域名没有可用AAAA记录但有A记录时,可用NAT64前缀与IPv4地址合成AAAA答案。IPv6-only客户端把这个合成地址当作IPv6目标,路由将数据送到使用同一前缀的NAT64转换器。

A: 192.0.2.33
Pref64: 64:ff9b::/96
合成AAAA: 64:ff9b::c000:221

DNS64不承载业务流量,也不负责地址/端口状态。它只是帮助只会查询域名的客户端发现NAT64路径。如果客户端直接使用IPv4字面量、应用自带DNS、使用不兼容的DNSSEC验证,或DNS64与NAT64前缀不一致,单纯开启NAT64仍可能无法访问。

七、NAT64与DNS64为什么经常一起出现

NAT64需要客户端把IPv4服务器表示成带转换前缀的IPv6目标。DNS64自动从A记录合成这个目标,因此普通基于域名的IPv6应用通常无需修改。

但两者是独立组件,必须分别验证:

  1. DNS查询是否返回合成AAAA;
  2. 合成地址使用的Pref64是否与转换器一致;
  3. 到Pref64的IPv6路由是否指向NAT64;
  4. NAT64是否有IPv4出口和可用端口池;
  5. 返回流量是否经过同一状态设备。

只看到AAAA答案不能证明数据面可用;只看到NAT64路由也不能证明应用查询到了正确地址。

八、464XLAT是什么

464XLAT为IPv6-only接入网提供IPv4服务兼容。客户端或靠近客户端的位置运行CLAT,把应用产生的IPv4包无状态转换成IPv6;网络侧PLAT通常是有状态NAT64,再把IPv6转换为公网IPv4。RFC 6877将其称为无状态与有状态转换的组合。

路径可简化为:

IPv4-only应用
→ CLAT:IPv4转IPv6(无状态)
→ IPv6接入网
→ PLAT/NAT64:IPv6转IPv4(有状态)
→ IPv4服务器

它解决了“应用只会使用IPv4或IPv4字面量”的问题,因此在移动网络和IPv6-only客户端环境中很重要。464XLAT不等于双栈:接入网可以只承载IPv6,IPv4兼容由转换链提供。

九、NAT64与464XLAT有什么区别

标准NAT64配合DNS64最适合能使用IPv6套接字并通过域名访问的应用。464XLAT多了客户端侧CLAT,让IPv4-only应用也能进入同一IPv6-only网络。

如果域名访问成功、IPv4字面量失败,可能是DNS64/NAT64可用但没有CLAT或应用绕过了它。如果两类访问都失败,应分别检查客户端路由、CLAT、Pref64、PLAT状态和IPv4出口。不要把所有失败都归因于DNS64。

十、NPTv6是什么

NPTv6(IPv6-to-IPv6 Network Prefix Translation)把一个IPv6前缀无状态映射为另一个等长IPv6前缀,保留地址的主机部分。RFC 6296定义了校验和中立的算法,使传输层校验和通常无需逐流维护转换状态。

例如内部使用一个稳定前缀,出口根据运营商前缀替换网络部分。它不把多个节点压缩到一个地址,也不依赖端口复用;每个内部地址仍对应一个外部IPv6地址。

NPTv6不是NAT66的所有可能形式,也不是IPv6部署的默认要求。IPv6原生路由通常无需地址转换。使用NPTv6会改变端到端地址可见性,并要求DNS、访问控制、日志和故障定位理解内外两套前缀。

十一、NPTv6与NAT44有什么区别

传统NAPT依靠地址和端口复用缓解IPv4地址不足,并维护逐流状态。NPTv6只做前缀一对一映射,不靠端口共享节省地址,也无需为每个流创建映射。

因此,NPTv6不能用来“让一万个IPv6设备共享一个IPv6地址”,端口转发概念也不能原样照搬。安全边界仍由IPv6防火墙决定;前缀转换并不会自动阻止公网入站访问。

十二、如何判断当前网络用了哪一种

判断NAT44

终端使用RFC 1918地址,路由器WAN拥有公网IPv4,公网回显与WAN一致,通常是单层家庭NAT44/NAPT。

判断CGNAT

路由器WAN为100.64.0.0/10或其他非公网地址,且公网回显不同;端口转发只配置本地仍无法公网入站,需向运营商确认。

判断NAT64/DNS64

在IPv6-only网络查询只有A记录的测试域名,观察是否出现带Pref64的合成AAAA;再Traceroute或抓包确认该前缀流量进入转换器,并实际连接IPv4目标。

判断464XLAT

IPv6-only接入中,IPv4-only应用或IPv4字面量仍能访问;操作系统接口、路由表或抓包可看到CLAT相关转换路径。具体接口名称由平台实现决定。

判断NPTv6

对比内网接口IPv6源地址与公网看到的IPv6地址,主机部分保持、前缀发生固定映射;同时检查边界路由器配置,而不是只看外部回显。

十三、常见故障对应哪一层

  • 公网端口转发始终失败:检查CGNAT或双重NAT;
  • IPv6网站正常、IPv4-only域名失败:检查DNS64和NAT64;
  • 域名能访问、IPv4字面量失败:检查CLAT/464XLAT;
  • NAT64合成AAAA存在但连接超时:检查Pref64路由、转换状态、IPv4出口与回程;
  • IPv6出站正常但入站ACL对象不匹配:检查NPTv6内外前缀与防火墙引用;
  • 部分协议失败:核对转换机制支持的传输协议、ALG、分片与PMTUD;
  • 日志无法关联用户:CGNAT需要精确保存公网地址、端口和时间,只有公网IP不足以定位会话。

十四、常见误区

有NAT就一定更安全

地址转换与防火墙是不同功能。状态行为可能顺带阻挡未知入站,但安全策略必须显式定义和验证。

IPv6不需要任何边界控制

IPv6不依赖地址匮乏型NAPT,但仍需要状态防火墙、分区和最小权限。

DNS64就是NAT64

DNS64合成DNS记录,NAT64转换数据包。两者之一正常不能证明另一方正常。

100.64地址是普通家庭私网

它是IANA为服务提供商共享地址空间保留的范围,与RFC 1918私网用途和治理边界不同。

NPTv6会节省IPv6地址

NPTv6是一对一前缀转换,不做端口复用,也不是因为IPv6地址不足。

十五、上线与排障检查清单

  • 画出客户端、家庭网关、运营商转换器、DNS和目标服务器;
  • 标明每一段使用IPv4还是IPv6;
  • 记录每个转换点的内外地址与端口;
  • 确认转换是无状态还是有状态;
  • 分别测试域名、IPv4字面量、IPv6字面量;
  • 核对DNS64合成前缀与NAT64路由一致;
  • 检查端口池、会话表和超时;
  • 检查回程是否经过同一有状态设备;
  • 验证ICMP/ICMPv6与PMTUD未被错误阻断;
  • 对CGNAT记录地址、端口、协议和精确时间;
  • 对NPTv6同步更新DNS、防火墙与日志解释;
  • 改动前保存配置与抓包基线,确保可回滚。

十六、FAQ

1. 路由器WAN是100.64开头就一定有CGNAT吗?

这是强线索,因为100.64.0.0/10是运营商共享地址空间,但仍应比较公网回显地址并向运营商确认实际架构。

2. NAT64没有DNS64能用吗?

可以由应用直接构造或获得带Pref64的IPv6目标,但普通依赖域名的应用通常需要DNS64自动合成地址。

3. 464XLAT等于NAT64加DNS64吗?

不等于。464XLAT关键在客户端侧CLAT与网络侧PLAT组合,使IPv4-only应用也能工作;DNS64不是其唯一入口。

4. NPTv6会修改端口吗?

不会。它无状态地转换IPv6前缀,保持主机部分,不进行NAPT式端口复用。

5. CGNAT下还能获得公网入站吗?

普通本地端口转发通常不够。可向运营商申请公网IPv4、使用原生IPv6并配置防火墙,或采用经过授权的反向连接方案。

十七、结论

NAT44/NAPT在IPv4内部与外部之间转换地址和端口,CGNAT把这种共享扩大到运营商层;NAT64把IPv6客户端连接转换到IPv4服务器,DNS64负责合成可达目标;464XLAT进一步兼容IPv4-only应用;NPTv6只在IPv6前缀之间做无状态一对一转换。确定地址族、状态位置和DNS角色后,才能选对排障工具和修复入口。

核验来源

  1. RFC 3022, Traditional IP Network Address Translator:https://www.rfc-editor.org/info/rfc3022/
  2. RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space:https://www.rfc-editor.org/info/rfc6598/
  3. RFC 6146, Stateful NAT64:https://www.rfc-editor.org/info/rfc6146/
  4. RFC 6147, DNS64:https://www.rfc-editor.org/info/rfc6147/
  5. RFC 6877, 464XLAT:https://www.rfc-editor.org/info/rfc6877/
  6. RFC 6296, IPv6-to-IPv6 Network Prefix Translation:https://www.rfc-editor.org/info/rfc6296/

来源核验日期:2026-08-26。