NAT64与DNS64基本原理概述
来源:互联网 发布:carplay支持哪些软件 编辑:程序博客网 时间:2024/06/07 12:45
1.NAT64与 DNS64背景
在 IPv6网络的发展过程中,面临最大的问题应该是 IPv6与 IPv4的不兼容性,因此无法实现二种不兼容网络之间的互访。为了实现 IPv6与 IPv4的互访,IETF(互联网工程任务组)在早期设计了 NAT-PT的解决方案:RFC2766,NAT-PT通过 IPv6与 IPv4的网络地址与协议转换,实现了 IPv6网络与 IPv4网络的双向互访。但 NAT-PT在实际网络应用中面临各种缺陷, IETF推荐不再使用,因此已被 RFC4966所废除。
为了解决 NAT-PT中的各种缺陷,同时实现 IPv6与 IPv4之间的网络地址与协议转换技术, IETF(互联网工程任务组)重新设计一项新的解决方案: NAT64与 DNS64技术。
NAT64 是一种有状态的网络地址与协议转换技术,一般只支持通过 IPv6网络侧用户发起连接访问 IPv4侧网络资源。但 NAT64也支持通过手工配置静态映射关系,实现 IPv4网络主动发起连接访问 IPv6网络。NAT64可实现 TCP、UDP、ICMP协议下的 IPv6与 IPv4网络地址和协议转换。
DNS64 则主要是配合 NAT64工作,主要是将 DNS查询信息中的 A记录(IPv4地址)合成到 AAAA记录(IPv6地址)中,返回合成的 AAAA记录用户给 IPv6侧用户。DNS64也解决了 NAT-PT中的 DNS-ALG存在的缺陷。
NAT64 一般与 DNS64协同工作,而不需要在 IPv6客户端或 IPv4服务器端做任何修改。 NAT64解决了 NAT-PT中的大部分缺陷,同时配合 DNS64的协同工作,无需像 NAT-PT中的 DNS-ALG等。
目前 NAT64与 DNS64均处于 IETF的草案阶段,尚未形成正式的 RFC文档。但由于 IPv6的快速发展、应用场景的需求、IPv6侧网络用户的强烈需求,处于草案阶段的 NAT64与 DNS64已经正式开始在互联网中部署应用了。NAT64也只是 IPv6网络发展初期的一种过渡解决方案,在 IPv6发展前期会被广泛部署应用,而后期则会随着 IPv6网络的发展壮大,逐步退出历史舞台。
本文主要讨论 DNS64与 NAT64的基本原理与应用场景,不涉及 DNS64与 NAT64协议的具体实现、协议规范及数据处理细节,希望深入了解 NAT64及 DNS64的网络技术人员或 IPv6网络开发人员可直接参考本文后面的 IETF草案链接。
2. NAT64与 DNS64的网络部署场景 NAT64与 DNS64的常见应用场景组网如下图所示:
在上图中,、DNS64Server与NAT64Router是完全独立的部分。其中64:FF9B::/96为DNS64的知名前缀,DNS64一般默认使用此前缀进行IPv4地址到IPv6地址的合成,同时该前缀也作为NAT64的转换前缀,实现匹配该前缀的流量才做NAT64转换。一般在DNS64与NAT64中该前缀被表示为pref64::/n,该前缀可根据实际网络部署进行配置。在NAT-PT中,转换的前缀只支持固定96位长度,而NAT64中则可使用:32,40,48,56,64或96等范围,每种长度的前缀转换规则也不完全相同。
当IPv6OnlyUser发起连接访问普通IPv6网站,流量将会匹配IPv6默认路由而直接转发至IPv6Router处理。而访问的是IPv4单协议栈的服务器时,将经DNS64Server进行前缀合成,Pref64::/n网段的流量将被路由转发至NAT64Router上,从而实现IPv6与IPv4地址和协议的转换,访问IPv4网络中的资源。
3.NAT64与DNS64的报文交互
DNS64与NAT64的报文交互过程如下图所示
在上图中,、DNS64Server与NAT64Router是完全独立的部分。其中64:FF9B::/96为DNS64的知名前缀,DNS64一般默认使用此前缀进行IPv4地址到IPv6地址的合成,同时该前缀也作为NAT64的转换前缀,实现匹配该前缀的流量才做NAT64转换。一般在DNS64与NAT64中该前缀被表示为pref64::/n,该前缀可根据实际网络部署进行配置。在NAT-PT中,转换的前缀只支持固定96位长度,而NAT64中则可使用:32,40,48,56,64或96等范围,每种长度的前缀转换规则也不完全相同。
当IPv6OnlyUser发起连接访问普通IPv6网站,流量将会匹配IPv6默认路由而直接转发至IPv6Router处理。而访问的是IPv4单协议栈的服务器时,将经DNS64Server进行前缀合成,Pref64::/n网段的流量将被路由转发至NAT64Router上,从而实现IPv6与IPv4地址和协议的转换,访问IPv4网络中的资源。
- NAT64与DNS64基本原理概述
- NAT64与DNS64基本原理概述
- NAT64与DNS64基本原理概述
- NAT64与DNS64
- 支持IPv6 DNS64 / NAT64网络
- IOS支持IPv6 DNS64/NAT64网络
- 【自由谈】城域网IPv6过渡技术——NAT64+DNS64
- 苹果文档“支持IPv6 DNS64/NAT64网络”的翻译(1)
- RTOS基本原理概述
- Boost.Aiso概述 基本原理
- Virtio概述和基本原理
- NAT64: well-Known Prefix
- Java学习笔记(2) java基本原理概述
- ACL基本原理与配置
- 指针与C++ 基本原理
- MRP历程与基本原理
- Git 基本原理与使用指南
- Git 基本原理与常用命令
- Android之ListView内容数据刷新
- 实习入职第二天:maxMemory()--totalMemory()--freeMemory()
- 初次写博客
- Java 设计模式 -- 享元模式
- ExpandableListView(可展开的列表组件)的说明以及其用法
- NAT64与DNS64基本原理概述
- Python中pydoc命令在windows下不能使用的解决办法
- 【学习心得】分块
- Xposed源码阅读小结
- 【Java基础】关键字
- app上线前需要提前干的事
- Effective cpp 读书笔记9
- jni里报05-20 11:56:40.106: A/libc(6175): Fatal signal 7 (SIGBUS) at 0x00000000 (code=128)错误-jni数组报错
- MySQL入门--AUTO_INCREMENT自增约束