原文:

https://blog.csdn.net/zhangjie1989/article/details/51464251

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网络中的资源。

ipv6转ipv4 NAT64与DNS64基本原理概述的更多相关文章

  1. NAT64与DNS64基本原理概述

    NAT64与DNS64基本原理概述 1.NAT64与DNS64背景     在IPv6网络的发展过程中,面临最大的问题应该是IPv6与IPv4的不兼容性,因此无法实现二种不兼容网络之间的互访.为了实现 ...

  2. 城域网IPv6过渡技术—NAT64+DNS64 Test for IPv6 DNS64/NAT64 Compatibility Regularly

    城域网IPv6过渡技术—NAT64+DNS64 - 51CTO.COM http://network.51cto.com/art/201311/419623.htm Supporting IPv6 D ...

  3. IPv6 与 IPv4现状

    IPv6 与 IPv4现状 一.概述 (1) IPv4可提供bai4,294,967,296个地址,IPv6将原来的32位地址空间增大du到128位,数目是zhi2的128次方.能够对地球上每平方米d ...

  4. [转帖]IPV6取代IPV4之路 为何道阻且长?

    IPV6取代IPV4之路 为何道阻且长? 经济学人公众号 IPV6作为IPV4的续命神术,从被提出到现今,逾26年之久.而IPV6在中国更是犹抱琵琶半遮面,千呼万唤难出来,IPV6取代IPV4之路,为 ...

  5. IPv6 VS IPv4,谈谈升级 IPv6 的必要性

    11月26日,中办.国办印发了<推进互联网协议第六版(IPv6)规模部署行动计划>,提出国内要在 5~10 年的时间形成下一代互联网自主技术体系和产业生态,建成全球最大规模的 IPv6 商 ...

  6. keepalive配置支持ipv6、ipv4双棧支持

    因公司业务需要,keepalived需要同时支持ipv6和ipv4 keepalived版本1.2.23. keepalived 配置: 重点:ipv6的虚IP配置在 virtual_ipaddres ...

  7. 第11章 拾遗5:IPv6和IPv4共存技术(3)_NAT-PT技术【全书完】

    6.4 NAT-PT (1)NAT-PT和NAT的差别 ①NAT-PT(附带协议转换的网络地址转换)技术秉承NAT技术的思想,但在原理方面大有不同. ②NAT-PT和NAT本质的区别在于应用场合的不同 ...

  8. 第11章 拾遗5:IPv6和IPv4共存技术(1)_双栈技术和6to4隧道技术

    6. IPv6和IPv4共存技术 6.1 双栈技术 (1)双协议主机的协议结构 (2)双协议栈示意图 ①双协议主机在通信时首先通过支持双协议的DNS服务器查询与目的主机名对应的IP地址. ②再根据指定 ...

  9. IPv6 优于 IPv4 的十大功能

    现在是 9102 年,有一个严重的问题,困扰着资深宅男二狗子.那就是偶像团体没新名了.今年开始,偶像团体 XKB48 已经在无法取更多的新名字了,排列组合的所有方式都已经经过了历史长河的洗礼,除非偶像 ...

随机推荐

  1. JavaIO学习:字符流

    JavaIO流之字符流 字符流 Reader InputStreamReader FileReader:专门用于处理文件的字符读取流对象. Writer OutputStreamWriter File ...

  2. jquery动画控制非css属性

    JQuery的animate()方法可以通过渐变的更改CSS属性来实现简单的动画效果, 比如 $("#box").animate({height:"300px" ...

  3. 自回归(auto-regression)机制

    在每个新单词产生后,该单词就被添加在之前生成的单词序列后面,这个序列会成为模型下一步的新输入.这种机制叫做自回归(auto-regression),同时也是令 RNN 模型效果拔群的重要思想. GPT ...

  4. MySQL——python交互

    与python交互之前我们需要安装一个MySQL的驱动模块Connector,这个驱动模块直接在cmd命令行输入 pip install mysql.connector 安装是否成功可以接着输入 py ...

  5. 浅谈Vue.js2.0核心思想

    Vue.js是一个提供MVVM数据双向绑定的库,专注于UI层面,核心思想是:数据驱动.组件系统. 数据驱动: Vue.js数据观测原理在技术实现上,利用的是ES5Object.defineProper ...

  6. 关于Git的用法

    关于Git Git 是一个分布式版本控制软件,与CVS.Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其 ...

  7. Spring Cloud 微服务实战笔记

    Spring Cloud 微服务实战笔记 微服务知识 传统开发所有业务逻辑都在一个应用中, 开发,测试,部署随着需求增加会不断为单个项目增加不同业务模块:前端展现也不局限于html视图模板的形式,后端 ...

  8. 05. redis事务

    目录 Redis 事务 事务 1. 命令有序 2. 始终原子 开启使用事务 Redis事务中出现错误 1. EXEC前的错误 2. EXEC后的错误 为什么出错了不支持roll backs? Redi ...

  9. Leetcode——2. 两数相加

    难度: 中等 题目 You are given two non-empty linked lists representing two non-negative integers. The digit ...

  10. matplotlib 绘制正余弦曲线图

    1.普通风格 代码 import numpy as npimport matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 50)y1 = np.s ...