一、场景提要

当我们在实际工作中,由现行的IPV4网络想IPv6过渡时,不可能完全抛弃IPv4,因IPv6虽然已经发展多年,但并未大范围在全球应用,很多实际应用还是用了诸如NAT等技术来使用IPv4网络,且目前很多IPv6的通信不得不在IPv4网路上传输,故此IPv4到IPv6的过渡机制就变得非常重要,如何针对各企业的实际网络选择一个合适的平稳过度方案,是能否实现安全成功过度到IPv6网络实践的关键。
另外一定要清楚认识,IPv4向IPv6过渡的过程是渐进的,可控制的,过渡时期会相当长,而且网络/终端设备需要同时支持IPv4和IPv6,最终的目标是使所有的业务功能都运行在IPv6的平台上。

二、过渡方法

2.1、IPv4到IPv6的较成熟过渡方法

从IPv4到IPv6的过渡方法有三种:

1)IPv40IPv6双协议栈(Dual-stack)
2)网络中的隧道技术(Tunnelling)
3)翻译机制(Translation Mechanism )

其中双协议栈和隧道技术是主要的方法,而翻译机制由于效率较低,只在不同IP版本的网络之间进行通信时才采用。

2.2、 三种方法的比较

1)网络设备和移动终端上的IPv4/IPv6双协议栈是很重要的过渡机制,从网络方面来看,网络设备(如GGSN)实现双协议栈对于实现IPv4和IPv6的接入点并完成IPv6-in-IPv4的隧道都是至关重要的,另外运营商IP网络和公众因特网边缘的边际路由器也应该是双栈路由器。从移动终端来看,需要通过双协议栈来访问IPv4和IPv6的业务而不需要网络上的翻译机制。下图为DS的原理图:

直接地址转化:

以上全面使用IPv6直接丢弃ipv4,全面实现IPv6/IPv4的方式,地址变长后,手动配置方式易出现配置错误,可考虑采用自动化配置软件实现应用快速上线。改造完成后,试运行分析IPv6/IPv4流量对比,优化现有网络架构。

2)隧道技术

将IPv6的数据包封装在IPv4的数据包中并在隧道的另一端解除封装的解决方案;隧道技术要求在封装和解除封装的节点上都有IPv4/IPv6双协议栈的功能。隧道技术又分为自动和人工配置两种,人工配置的隧道技术是在隧道的终点人工配置到某个特定的IPv4地址;对于自动隧道技术来说,封装是自动在进行封装的路由器/主机上完成的,隧道终点的IPv4地址被包含在目的地址为IPv6地址的数据包中,如“6to4”隧道技术。

原理示意图:

IPv6基于IPv4隧道的封装原理示意图:


如上图示,新建IPv6区域部署,该安全域所有网络设备支持IPv6,并建立IPv6应用测试区,测试应用程序IPv6部署。业务系统从IPv4单栈到IPv4与IPv6可互相访问到IPv6单栈过渡。注意:新建区域确保应用程序过渡顺利;不影响原有IPv4网络安全防护;应充分测试纯IPv6环境应用可行性及安全性。

3)网络上的IPv4-IPv6协议翻译器:

翻译器是纯IPv4主机和纯IPv6主机之间的----->【中间件】,使两种主机不需要修改任何配置就可以实现彼此之间的直接通信,翻译器的使用对于移动终端来说是透明的,标头转换是一种重要的翻译机制,通过这种方法IPv6数据包的头标被转换为IPv4数据包的头标,或者反过来,IPv4转换为IPv6,有必要的时候对校验进行调整或重新计算,NAT/PT就是采用这种机制的一种方法。

采用地址/协议翻译器需要转换IP数据包的头标,带来的问题是破坏了端到端的服务(如端到端的IPSec),而且NAT/PT可能成为网络性能的瓶颈,有可能限制业务提供平台容量扩展性。使用网络中的地址/协议翻译器还是采用其它过渡方法主要由网络运营商决定,一般来说,只有当两个通信节点的IP版本不同时才建议采用翻译器。

不同层次的协议翻译如下图所示:



如上图示,只在网络出口部署NAT64设备,实现IPv6到IPv4的转换,只需要出口设备和NAT设备支持双栈协议即可。增加AAAA记录,增加IPv6解析服务器,及在相关硬件完整IPv6 GLSB智能引导。这种方式是通过互联网接入区改造实现IPv6;对目前已有的IPv4网络和应用无需任何改动;迁移过程平滑,无需断网。但安全部署依赖于原有IPv4安全架构。

注:应分析各类终端访问IPv4/IPv6同时存在的网络如何动态切换优先级并完成相关测试。

2.3、 IPv4过渡到IPv6阶段性案例参考(图片来自网络)

下图所示为一个IPv4的网络通信结构图:

改造IPv6第一步可以如下操作:


正如图中所示:网络中有着一个个单独的IPv6孤岛,这些IPv6孤岛之间的连接是通过在IPv4网络上自动或人工配置“IPv6 in IPv4”的隧道来实现的。该阶段,向移动用户提供的IPv6业务绝大多数还是由运营商的内部网络(Intranet)来提供的,其它的一些IPv6业务通过在IPv4网络上的配置/自动隧道来实现,传统的IPv4业务可以使用有IPv4或者双协议栈的终端来使用。在运营商的网络上仍然有NAT来支撑现有IPv4网,当然还可以安装翻译器(如NAT-PT)来完成IPv4与IPv6协议之间的翻译转换。

第二步:


这一阶段IPv6已经广泛部署并且有了大量在IPv6平台上实现的业务,但是由于IPv6网络还不能达到完全连接,有时仍然需要IPv4网上的隧道技术来与IPv6节点连接通信。     
这个阶段由于所有新业务都在IPv6平台上实现,从而加速了IPv6的部署。从IPv6的发展趋势来看,移动网络将率先进入这一发展阶段。这时大量传统的IPv4业务仍然存在,很多移动节点上都安装了IPv4/IPv6双协议栈。

第三阶段:


第4阶段也是IPv6的设计目的:IPv6已经获得主导地位,IPv6网络已经实现了全球连接而且所有的业务都在IPv6平台上运行,这时候将不再需要双协议栈功能或者地址/协议的翻译机制,这使得网络结构更加简单,网络维护也更加容易。IPv6使得网络中的每个节点都有一个独一无二的、全球可路由到的地址。

2.4、IPv4向IPv6过渡的网络模型(来源网路)

1)网络模型1:

上图网络架构中显示出移动终端与GPRS核心网络的连接,移动终端与GGSN接入点(AP)之间所建立的连接称为**分组数据协议(PDP)**上下文,移动终端通过激活PDP上下文来获取其IP地址,图中显示了两种不同的移动终端连接到GGSN的两个不同的接入点上的情况。GGSN中的AP1是原生的IPv6,始终连接到IPv6环境中。AP2提供通过IPv4网络隧道的IPv6连接,这一连接可以是“6to4”的、也可以是“4to6”的。AP3是原生的IPv4,提供到纯IPv4服务/主机的连接。

2)过渡期网络模型:

 图中所示,在运营商网络之外,用户通过IPv4网络来连接某个IPv6主机时需要采用隧道技术,隧道的起点可以是GGSN、边缘路由器、或者移动终端,隧道的终点可以是主机或者IPv6网络边缘的路由器(如图3中的路由器1),如果隧道在主机之前终结则由该路由器解开封装。

三、IPv6与IPv4过渡方式之----翻译(地址转化):

【IPv4<—>IPv6翻译技术】

网络的过渡时期不可能要求所有的主机或终端都升级支持双栈,网络中必然存在纯IPv4主机和纯IPv6主机之间进行通信的需求,但由于协议栈的不同,那么就需要对这些协议进行---->翻译转换。对于协议的翻译涉及两个方面:
一方面是:IPv4与IPv6协议层的翻译
一方面是:IPv4应用与IPv6协议栈的应用之间的翻译。
常用的翻译技术主要有以下几种技术来实现:

1)NAT-PT:(Network Address Translator/Protocol Translator)

这是一种协议翻译技术,主要应用于网络汇聚层;NAT-PT是用于实现IPv4 向IPv6 平滑过渡的协议转换技术。NAT-PT 由网络地址翻译技术(Network Address Translation,NAT)和协议翻译技术(Protocol Translation, PT)2 个部分组成。
NAT-PT网关能够实现IPv4和IPv6协议栈的互相转换,包括网络层协议、传输层协议以及一些应用层协议之间的互相转换;NAT-PT翻译技术包括两方面,一方面是IPv4与IPv6协议层的翻译,另一方面是IPv4应用与IPv6应用之间的翻译。前者是通过NAT-PT技术实现的,后者则通过应用代理网关ALG来实现。NAT-PT是一种纯IPv6节点和IPv4节点间的互通方式,所有转换工作都由网络设备来完成。支持NAT-PT的网关路由器应该具有一个IPv4地址池,当IPv6的网络向IPv4的网络通讯时,用以对应IPv6地址翻译成ipv4,实现地址间的翻译等等;
NAT-PT不必修改已经存在的IPv4网络,原有的各种协议可以不加改动就能与新的协议互通,可以实现内部网络的IPv4主机对外部网络IPv6主机的访问,且通过上层协议映射使大量的IPv6主机使用同一个IPv4地址,节省了IPv4地址资源。但该技术在应用上有一些限制:

1.1 首先,拓扑结构上要求一次会话中双向数据包的转换都在同一个路由器上完成,因此地址/协议转换方法较适用于:只有一个路由器出口的网络;

1.2 一些协议字段在转换时不能完全保持原有的含义。

工作原理如下:


NAT-PT修改协议报头来转换网络地址,使IPv4节点和IPv6节点互通。与一些隧道技术不同,NAT-PT只要求在IPv4和IPv6之间互联的网络转换设备上启用,这样其他网络设备的压力就会变小很多。
转换过程:NAT 技术是IPv4 和IPv6 间的网络地址转换技术,一般需要设置一个IPv4 地址池,当IPv6 地址转换成IPv4 地址时,从地址池中获取一个IPv4 地址,并把IPv6 源地址转换成该IPv4 地址,提取IPv6 目的地址中的主机地址部分作为IPv4目的地址,并重新计算包头的校验和。把该地址转换记录在地址映射表中。将IPv4 地址转换成IPv6 地址时,可以根据地址映射表中的地址转换记录来实现。

3.1、 应用层网关(ALG) 原理

NAT-PT只能提供从IPv6到IPv4的单向连接,要实现从IPv4外网到IPv6网络的访问,这就必须结合DNS-ALG进行域名支持。 
工作过程主要有以下几点: 
(1)IPv4主机要与IPv6主机通信,首先向IPv6网络的DNS发出请求; 
(2)请求到达NAT-PT网关后,NAT-PT网关对报文的头部进行转换; 
(3)IPv6内的DNS服务器收到报文后,查询自己的记录表; 
(4)报文到达NAT-PT网关后, NAT-PT对其头部进行转换; 
(5)IPv4主机在收到此DNS应答后,就知道IPv6主机的IPv4地址,IPv4主机就可以发起到IPv6主机的连接。 
(6)报文到达NAT-PT网关后,由于它已经记录了IPv4地址与IPv6地址之间的映射,就可以对地址进行转换; 
(7)报文到达IPv6主机后,IPv6主机对此报文回复; 
(8)NAT-PT网关再按照原有记录的信息对此报文进行地址转换。

原理举例:  IPv6网络中主机和IPv4中主机通讯寻址比较简单,就是说IPv4地址可以直接加上NAT-PT前缀成为IPv6地址,如:IPv4主机地址为10.18.34.1,NAT-PT设备设定的前缀为2222::/64,则IPv4主机对应的IPv6地址就是2222::10.18.34.1。   反过来,IPv4网络中主机不能这样和IPv6网络中主机通讯,这就需要DNS-ALG的帮助,通过IPv6主机对应的域名访问。如下图所示:

在上图中,IPv4主机10.18.34.117需要访问IPv6主机2000::1,IPv4主机域名为www.IPv4.com.cn,IPv6主机域名为www.IPv6.com.cn。

两个不同网络中的连接主要有以下4步:

(1)DNS请求。IPv4主机发送DNS请求给IPv4网络中的DNS服务器,此DNS服务器无IPv6网络的资源记录。现在IPv4网络中的DNS服务器替IPv4主机发送DNS请求给IPv6网络的DNS服务器。由于NAT-PT设备上有两个DNS服务器的地址对应关系,因而NAT-PT再次发送经过转换的DNS请求给IPv6的DNS服务器。 
(2)返回DNS请求。IPv6中的DNS服务器接收到NAT-PT转换过的DNS请求后,发送DNS应答给IPv4中的DNS服务器。期间经过NAT-PT的转换。 
(3)NAT-PT设备发送经过转换之后的DNS应答报文给IPv4的DNS服务器。 
(4)IPv4的DNS服务器收到应答报文之后在它的DNS缓存中增加一条记录,表明www.IPv6.com.cn这个域名所对应的IPv4地址为10.18.34.11。在此之后,IPv4主机要和IPv6主机进行通信,只需要访问IPv6主机的域名即可。

2)TRT
主要应用于网络汇聚层;TRT(Transport Relay Translator)即传输中继转换器,适用于纯IPv6网络与纯IPv4网络通信的环境。TRT系统位于纯IPv6主机和纯IPv4主机之间,可以实现(TCP, UDP)/IPv6与(TCP,UDP)/IPv4的数据的对译。传输中继可以分为TCP中继和UDP中继两类。
TRT与NAT-PT的最大区别是,TRT做为中继,在TCP/UDP层面以代理的身份来沟通双方,例如TCP中继分别与TCP通信的双方建立TCP连接,双方的所有TCP通信均由TCP中继来中转,而NAT-PT则只起翻译作用,并不代理通信。

3)BIS:主要是针对主机终端

BIS技术是在【双栈主机】中添加---->若干个模块(翻译器、扩展域名解析器、地址映射器),用于监测TCP/IP模块与{网卡驱动程序}之间的数据流,并进行相应IPv4与IPv6协议栈的数据包之间的相互翻译。当与其他IPv6主机进行通信时,在这台主机内部给对应IPv6主机分配一些IPv4地址,这些地址只在这台主机内部使用。而且,这种分配过程是通过DNS协议自动来完成的。主机可以使用现有的IPv4应用和其他IPv6主机进行通信,使其成为能够既支持IPv4应用又同时支持IPv6应用的双栈主机,从而扩大了双栈主机的应用领域。此外,BIS机制还可以和其他的转换机制共存。

4)BIA:主要针对主机终端,应用与Socket接口

BIA技术在双栈主机的Socket API模块与TCP/IP模块之间加入一个【API翻译器】,它能够在IPv4的Socket API函数和IPv6的Socket API函数间进行互译,这种机制简化了IPv4和IPv6间的转换,无需进行IP头的翻译。    
采用BIA的双栈主机假定在本地节点上同时存在TCP/IPv4和TCP/IPv6两种协议栈。当双栈主机上的IPv4应用程序与其他IPv6 主机通信时,API翻译器检测到IPv4应用程序中的Socket API函数,并调用IPv6协议栈的Socket API函数与IPv6主机通信,反之亦然。

3.2、 NAT-PT分类

NAT-PT是一种纯IPv6节点和IPv4节点间的互通方式,所有包括地址、协议在内的转换工作都由网络设备来完成。支持NAT-PT的网关路由器应具有IPv4 地址池,在从IPv6向IPv4域中转发包时使用,地址池中的地址是用来转换IPv6 报文中的源地址的。  NAT-PT 协议转换网关又称为NAT-PT翻译网关,一般被配置在边界路由器上,用来连接IPv4 网络和IPv6 网络,负责IPv4 和IPv6 网络地址和协议的翻译工作,实现纯IPv4节点和纯IPv6 节点之间的网络通信。

NAT-PT有可以细分为以下3种:

1)静态NAT-PT: 静态NAT-PT原理简单明了,但由于网关上的配置的IPv6地址与IPv4地址一一对应、一一对应的处理方式,故配置复杂,维护量大,而且需要消耗大量的IPv4地址,类似于IPv4 中的静态NAT。

2)动态NAT-PT: 在动态NAT-PT中,NAT-PT网关向IPv6网络通告一个96位的地址前缀,并结合主机32位IPv4地址作为对IPv4网络中的主机的标识。它使用一个IPv4地址池,然后再IPv6网络中动态的将预定义的NAT-PT前缀加到目前的IPv4地址。这种模式需要一个IPv4 地址池来执行,类似于IPv4 的动态NAT。

3.3、 NAPT-PT(来源网路)

NAT 技术存在局限性,当IPv4 地址池的地址使用完后,其他IPv6 节点不能与网络外部的IPv4 节点建立会话连接。因此,提出NAPT(Network Address Port Translation)技术,它允许多个IPv6 节点通过一个IPv4 地址和IPv4 节点进行通信,IPv6 节点的TCP/UDP 端口被转换为合法IPv4 地址的TCP/UDP 端口。NAPT 解决了NAT 无法解决的问题,但该方法只适用于有端口号的协议类型(如TCP,UDP 协议)。它使用多个有NAT-PT前缀的IPv6地址和一个源IPv4地址之间多对一的动态映射,转换同时在3层和UDP/TCP层上进行,和IPv4中的PAT类似。 
在具体实现过程中,在边界转换网关上,维护一个存放可分配的IPv4地址、端口对的地址池和一个源IPv6地址、端口与分配的IPv4地址、端口的对应状态表。收到的IPv6数据报,首先检查其目的地址是否为兼容IPv4的IPv6地址,否则丢弃报文。地址映射状态如表1示:

转化示意图:

IPv4过渡到IPv6的方案选择相关推荐

  1. IPv4如何向IPv6过渡?IPv6改造方案有哪些?

    IPv6是下一代互联网协议,相比IPv4其拥有更大的地址空间和更高的安全性,可以满足大数据.物联网等新型网络技术的需要.从IPv4向IPv6过渡,需要解决IPv4网络和IPv6网络之间的互联互通问题. ...

  2. 【学习笔记】网络层——IPv6:地址表示、IPv4的对比、IPv4过渡到IPv6、基本地址类型等

    文章目录 一. 1) 为什么要有IPv6 2)数据报格式 3)IPv4和IPv6的区别 4)IPv6地址表示形式 5)IPv6基本地址类型 6)IPv4到IPv6的过渡方法 一. 1) 为什么要有IP ...

  3. 怎样解决IPv4网络和IPv6网络的共存互通?

    现在,业界一致认为IPv6技术是解决IP地址短缺问题的唯一可行的根本办法.但由于IPv6与IPv4技术不兼容,且现有的IPv4设备和用户数量庞大,在网络演进过程中,需要解决异构网络的共存互通问题. 解 ...

  4. 独特的IPv4迁移至IPv6的测试网站

    A10 Networks™(A10网络)应用交付解决方案的技术领导公司,积极推动门户网站,大型媒体网站,Web 2.0公司和网络服务供应商准备迎接2011年6月8日"全球IPv6日" ...

  5. Linux防火墙屏蔽ip6,观点|Linux 发行版们应该禁用 IPv4 映射的 IPv6 地址吗?

    从各方面来看,互联网向 IPv6 的过渡是件很缓慢的事情.不过在最近几年,可能是由于 IPv4 地址资源的枯竭,IPv6 的使用处于上升态势.相应的,开发者也有兴趣确保软件能在 IPv4 和 IPv6 ...

  6. OpenWrt路由器设置IPv6域名动态解析,同时实现IPv4设备访问IPv6节点

    文章目录 0.前言 1.准备工作 2.详细步骤 2.1.OpenWrt路由器软件包安装 2.2.防火墙放行入站数据(修改为"接受"并保存应用) 2.3.路由器做好ipv6设置(略) ...

  7. Linux防火墙屏蔽ip6,Linux 发行版们应该禁用 IPv4 映射的 IPv6 地址吗?

    原标题:Linux 发行版们应该禁用 IPv4 映射的 IPv6 地址吗? 本文导航 -地址映射 -安全担忧 -Linux 上的地址映射 从各方面来看,互联网向 IPv6 的过渡是件很缓慢的事情.不过 ...

  8. 实战案例丨小型企业如何从IPv4迁移至IPv6

    学习目标 · 掌握基本IPv6地址的配置方法 · 掌握OSPFv3路由协议的配置方法 · 掌握DHCPv6服务器功能的配置方法 · 掌握IPv6 display命令的使用 拓扑图 图8.1 部署IPv ...

  9. C++在windows下获取本地主机ipv4地址和ipv6地址的代码

    把内容过程中经常用的内容段记录起来,下面内容段是关于C++在windows下获取本地主机ipv4地址和ipv6地址的内容,应该是对码农有所用处. #include <Winsock2.h> ...

  10. Redis高可用详解:持久化技术及方案选择

    文章摘自:https://www.cnblogs.com/kismetv/p/9137897.html 前言 在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关 ...

最新文章

  1. 通过define _CRTDBG_MAP_ALLOC宏来检测windows上的code是否有内存泄露
  2. java学习笔记2022.2.11
  3. J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式[申明:来源于网络]...
  4. 越来越觉得现在的工作很枯燥
  5. magento去除子分类的url地址中带有父分类的url key
  6. axios中出现两次请求,OPTIONS请求和GET请求
  7. Android官方开发文档Training系列课程中文版:通知用户之创建不同导航方式的Activity
  8. animition动画的加入
  9. Linux常用命令笔记2---文件管理2
  10. 宏基因组应用_宏基因组及宏转录组测序揭示极端环境微生物的生态学作用
  11. Mac系统设置系统搜索范围的方法
  12. 解决Linux Fedora 虚拟机root用户登录提示鉴定故障的问题
  13. Python 基础起步 (三) 基础的数据类型,简单运算
  14. 修改整合的Jfinal的Model自动绑定表插件 AutoTableBindPlugin
  15. 淘宝店铺链接获取seller id,拿到店铺所有商品接口,接口接入技术解决方案
  16. OWASP Top 10 简单介绍
  17. java中List 的Stream常用的几种用法
  18. Linux 邮件服务
  19. Flask-APScheduler使用教程 1
  20. C++ primer(第五版)简单读书笔记

热门文章

  1. Windows 使用winPe装机详细教程(图片来来源网络,仅为交流学习之用,谢谢)
  2. 微信小程序获取手机号
  3. 树莓派开机自动运行python程序的两种方式
  4. html半透明遮罩,div半透明遮罩效果
  5. amd显卡风扇调节_AMD Crimson驱动程序导致显卡风扇速度过低,官方: 请尽快修复...
  6. 校园网自动登录Python版
  7. 阿拉伯数字转换成人民币大写金额的方法
  8. RouterOS(ROS)软路由端口映射转发回流
  9. 绕过图片打印成PDF时出现锯齿的问题
  10. 游戏版Linux :Ubuntu GamePack