NAT64前缀选择指南:知名前缀与网络特定前缀的深度对比

本文深入探讨了NAT64技术中知名前缀(WKP)和网络特定前缀(NSP)的区别,详细分析了两者的优缺点、适用场景及配置考量,为企业在IPv6过渡过程中选择合适的前缀方案提供实用指导。

NAT64知名前缀与网络特定前缀

NAT是邪恶的……而NAT转换是不好的……对吗?这是我们从"IPv6学校"一开始就被教导的观念。但是,如果有一种NAT可能是必要的邪恶,并且可能帮助您的企业部署IPv6呢?这就是NAT64的用武之地。

在从IPv4过渡到IPv6的漫长演变过程中,经历了众多哲学(和实践)上的曲折。从隧道技术到双栈,再到IPv6主导,所有这些都朝着我们最终目标——纯IPv6世界迈进。行业目前的普遍立场是推荐IPv6主导。这是双栈和纯IPv6之间的中间立场。现实情况是,IPv4仍然存在于公共互联网上,而且肯定也存在于您的企业中。IPv6主导是一个框架,其中纯IPv6端点和IPv4端点共存于同一网络上。IPv6是主要协议,而IPv4仍然可按需使用。

由于IPv6和IPv4无法直接通信,因此需要转换技术才能使两个端点进行对话。多年来已经开发了多种过渡技术,但如今与企业相关的最常见技术是服务器负载均衡(SLB64和SLB46),通常用于前端企业控制下的内部服务器,以及NAT64,被纯IPv6端点用于访问未知/非托管的IPv4主机——无论是在组织内部还是在更广泛的互联网上。本文将重点关注后者——具体来说,在设计NAT64部署时选择哪种类型的前缀:知名前缀(WKP)还是网络特定前缀(NSP)。

什么是NAT64?

NAT64(RFC 6146)是DNS64/NAT64和464XLAT(RFC 6877)的组成部分,是一种有状态转换技术,允许纯IPv6客户端与纯IPv4设备通信。通信可以通过传输控制协议(TCP)、单播用户数据报协议(UDP)或互联网控制消息协议(ICMP)进行。NAT64转换设备在一侧使用IPv6,并在后端利用一个或多个源NAT IPv4地址与使用传统互联网协议的设备通信。

如上所述,DNS64/NAT64和464XLAT都使用NAT64转换器。对于DNS64/NAT64,DNS64服务器将从纯IPv4 DNS记录(即A记录)合成(基本上是欺骗)IPv6记录。当纯IPv6设备发送对仅具有A记录的服务器的AAAA记录查询时,DNS64服务器将使用NAT64前缀(也称为PREF64)合成AAAA记录。这个NAT64前缀可以是WKP(64:ff9b::/96)或NSP,与IPv4地址结合生成IPv6地址。该地址随后被路由到NAT64网关。

示例合成的AAAA记录:

  • NAT64前缀:64:ff9b::/96
  • DNS A记录IPv4地址:203.0.113.12
  • IPv4地址十六进制:cb00:710c
  • 合成的IPv6 AAAA记录:64:ff9b::cb00:710c

对于464XLAT,会发生类似的过程,但不使用DNS64。纯IPv6设备上的客户端侧转换器(CLAT)(例如Windows 11(预计2025年秋季支持)、iOS、Android、MacOS、Linux)向应用程序呈现IPv4堆栈,并使用NAT64前缀(WKP或NSP)在本地将任何IPv4数据包转换为IPv6。这些IPv6数据包随后被转发到提供商侧转换器(PLAT),它只是一个NAT64设备。由于464XLAT不使用DNS64,NAT64前缀(无论是WKP还是NSP)通常由CLAT通过路由器通告PREF64(RFC 8781)学习。

提供NAT64转换的设备种类繁多,包括企业级路由器、防火墙、负载均衡器(ADC)以及可以在各种平台上安装的软件应用程序,如Jool、Tayga和OpenWRT。

NAT64前缀选项

无论您计划部署464XLAT还是DNS64/NAT64(或两者都部署,采用"腰带和背带"方法),对于NAT64前缀,您有两个基本选择:(1)WKP(64:ff9b::/96),或(2)NSP。

WKP,即64::ff9b::/96,在RFC 6052中定义和保留。使用WKP的好处是简单性和标准化。在操作上,它很容易被识别为NAT64前缀。并且一些CLAT部署将简单地默认使用WKP,无需任何进一步的发现或配置。这使得WKP成为小型或基本实现的理想选择。然而,WKP伴随一些限制。WKP对于更大、更复杂的部署来说不太灵活和可扩展,可能使得NSP在这些情况下成为更好的选择。此外,WKP仅用于公共IPv4地址,不用于非全局IPv4地址,例如RFC 1918地址(RFC 6052第3.1节)。

图1. 示例:使用WKP的NAT64

使用NSP进行NAT64提供了WKP不可能实现的灵活性和高级路由功能。虽然WKP是简单部署的理想选择,但NSP允许网络运营商在更复杂、大规模环境中更好地控制和管理流量。例如,它支持多个NAT64网关。组织可以部署多个NAT64网关,每个使用不同的NSP。这允许负载均衡和更精细的流量管理,其中特定前缀可以将流量引导到特定的NAT64网关。这样做的好处包括可扩展性、使用路由协议进行流量工程的能力、提供冗余或促进优雅维护。如果NAT64网关需要停机维护,新连接可以路由到具有不同NSP的网关。与旧前缀关联的现有连接可以继续服务,直到它们自然超时,确保最终用户的服务连续性。

图2. 示例:使用NSP的NAT64

NSP还允许外部可达性。与WKP不同,NSP可以在互联网上全局路由。这使得外部用户和网络能够访问您的NAT64网关后面的IPv4资源。然而,伴随着可扩展性和灵活性好处的同时,也存在一些潜在的缺点。选择NSP而不是WKP会带来额外的管理开销,并需要在环境中进行更复杂的配置。此外,一些CLAT部署可能不支持NSP。因此,需要结合上述权衡来权衡您特定IPv6过渡目标的要求。下表从高层次总结了这些权衡。

NAT64前缀选项 优点 缺点
WKP 适合基本实现
简单性
标准化前缀在操作上可识别
许多CLAT无需任何配置即可使用
不太适合更复杂的部署
缺乏灵活性
可扩展性较差
不能用于私有IPv4地址,如RFC 1918
NSP 更适合复杂部署
可扩展性——允许多个网关
路由协议流量工程
外部可路由
支持RFC 1918和保留的IPv4地址
额外配置
管理开销
可能不被某些CLAT部署支持

其他考虑因素

如果组织为其NAT64部署实施了NSP,他们可能仍希望将WKP流量路由到日志记录设备——即使转换器未使用WKP。某些设备,无论是IoT还是其他设备,可能不遵循PREF64,尽管被指示使用其他前缀,但仍简单地使用64::ff9b::/96。使用设备捕获此流量并记录它可以帮助修复损坏的实现。如果涉及供应商,可以引起他们注意问题,以便他们修复错误行为。

另一个需要意识到的事实是,NAT64仍然是NAT,而NAT并不完美。应用程序在转换过程中可能会中断。因此,使用您的NAT64部署测试所有关键服务并识别可能需要更新的应用程序非常重要——例如包含嵌入式IPv4地址的程序。这些需要纠正,或者可能需要变通方法。在某些情况下,您的NAT64网关平台可能支持应用层网关(ALG)来处理和纠正一些众所周知的违规者,例如文件传输协议(FTP)、会话发起协议(SIP)和点对点隧道协议(PPTP)。

尽管NAT64不完美,但该技术相当成熟且经过充分测试,即使在非常大规模的部署中也是如此。许多移动运营商,由于早已耗尽公共和私有IPv4地址空间,部署纯IPv6网络,并已使用464XLAT(NAT64)多年。很可能您一直在手机上使用它而不知情(这是成功的最终指标)。关键是,NAT64是一种成熟且经过验证的IPv6过渡技术。

结论

在部署IPv6的旅程中,可能会部署多种过渡技术。这些工具之一,无论是DNS64/NAT64还是464XLAT(或两者),都可能依赖NAT64转换器。在实施NAT64时,决定是使用WKP还是NSP存在权衡。前者更适合较小、简单的部署,而后者允许更大的灵活性和更好的可扩展性,尽管以额外配置和管理开销为代价。希望上述概述将帮助您评估组织的需求并权衡每个选项的好处,以找到最佳匹配。无论您选择哪种前缀路径,NAT64都是一种在行业中经过充分测试和验证的成熟技术。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计