前言

如果没有明确的迁移方法的话,将无法实施一种新的路由协议,迁移过程越简单,就越可能实施新协议。IPv6 与 IPv4 之间的互动操作性是势在必行的,IPv6 节点需要与 IPv4 节点进行通信,至少在初始阶段是这样的,而且在互通时间上还可能非常不确定。NGTRANS IETF 工作制定了多种迁移方法来推动从 IPv4 向 ipv6 的迁移工作,并确保 IPv4 与 IPv6 之间的兼容性。

文章目录

  • 前言
  • 概述
    • 双栈
    • DNS
    • 在 IPv4 中隧道化 IPv6
    • NAT-PT

概述

与IPv4 保持兼容的方式有多种,运行双栈的节点能够完全支持 IPv4 和 IPv6,可以使用 IPv4 和 IPv6 进行通信。这样的节点可以将 IPv6 包封装到 IPv 头部中,从而在现有的 IPv4 网络中创建一条隧道,使得两个 IPv6 节点可以经 IPv4 网络进行通信。目前定义了以下两种隧道机制。

  • 自动隧道 (Automatic Tunnels)
  • 配置隧道 (COnfigured tunnels)

IPv6 中定义了与 IPv4 兼容的 IPv6地址,该IPv6 地址的前 96 个 bit 为全 0,剩余的32bit 构成一个 IPv4 地址,如::172.69.1.1 就是一个与 IPv4 兼容的IPv6 地址。如果节点配置了与 IPv4 兼容的地址,那么就可以使用自动隧道机制。

如果 IPv4 和 IPv6 共存于同一个网络之中,你们就必须规定相应的机制来正确解决名字与 IP 地址的解析问题。为了确保 DNS 服务器能够正确返回 IPv4 地址、IPv6 地址或 IPv 和 IPv6 地址,对 DNS 做了一定修改,这也是协议共存的一个关键能力要求。

也可以在 IPv6 网络和 IPv4 网络之间部署 NAT-PT (Network address Translation Portocol Translation,网络地址转换——协议转换)设备。下面将首选讨论双栈机制。

双栈

对一个节点来说,如果希望即实现 IPv6,又能与 IPv4 节点保持兼容,可以采取的一种方法就是在该节点上同时实现 IPv4/IPv6 节点可以使用 IPv6 数据包与 IPv6 节点进行通信,并使用 IPv4 数据包与 IPv4 节点进行通信。

每个 IPv6/IPv4 节点都必须同时配置IPv6 地址和 IPv4 地址,这两种地址可能相关也可能毫无关系。可以将与 IPv4 兼容的 IPv6 地址视为单个地址,其即可以被用作 IPv6 地址,也可以被用作 IPv4 地址, 完整的 128bit 就代表 IPv6 地址,低于 32 bit 则代表 IPv4 地址。

可以采取以下方式来配置地址。

  • 使用无状态或状态化 (IPv6 DHCP)自动配置方式来配置 IPv6 地址,该地址即可以是与 IPv4 兼容的地址,也可以是一个单纯的 IPv6 地址。
  • 采用任何 IPv4 机制来分配节点的IPv4地址。
  • 在配置与IPv4 兼容的IPv6 地址时,使用IPv4地址配置机制来分配该地址的IPv4部分,通过在IPv4地址前附加96bit前缀0:0:0:0:0:0, 节点即可将IPv4地址映射到与IPv4兼容的IPv6地址。如果网络中存在IPv6/IPv4节点,但暂时没有IPv6路由器或地址配置服务器时,这种地址配置方法特别有用。

同时配置了IPv4地址和IPv6地址的节点必须拥有相应的机制来确定应该使用哪个地址,这样的工作就由DNS来完成。

DNS

在DNS中为IPv6定义了一种新的资源记录类型——AAAA 记录,该记录可以提供名字到 IPv6 地址的映射关系。IPv6/IPv4 节点上的 DNS 解析器必须能够同时处理 IPv4 的 A 资源记录和 IPv6 的 AAAA 资源记录,当节点向 DNS 服务器查询某个地址时,DNS 就可以返回一条 A 记录或一条 AAAA 记录。返回的地址类型决定了所使用的协议类型,如果返回的是 A 记录,则该节点应该使用 IPv4 地址和 IPv4 协议来与所请求的目的地进行通信;如果返回的是 AAAA 记录,则应该使用 IPv6。

为 IPv6/IPv4 主机分配了与 IPv4 兼容的 IPv6 地址之后,就在 DNS 中定义了 AAAA 记录和 A 记录,AAAA 记录列出了完整的 128bit IPv6 地址,A 记录则列出 32bit 的 IPv4 地址。由于列出了两种类型的 IP 地址,因而纯 IPv6 (IPv6-only) 节点可以查询服务器并接收 IPv6 地址,而纯 IPv4 (IPv4-only) 节点则可以接收 IPv4 地址。

如果 AAAA 记录和A记录中都列出了与 IPv4 兼容的地址,那么 DNS 解析器在返回哪种地址以及返回哪种地址会影响通信中所使用的协议类型上存在以下选择。

  • 仅向应用返回IPv6地址;
  • 仅向应用返回IPv4地址;
  • 同时向应用返回IPv4和IPv6地址
    DNS服务器返回的地址类型或地址返回的顺序将影响所生成的IP流量的类型。

在 IPv4 中隧道化 IPv6

大多数IPv6实现都要沿着IPv4网络进行建设,IPv6主机可能主要通过IPv4网络进行通信,将IPv6包封装到IPv4包中即可支持该功能。目前可以创建以下4类隧道。

  • 路由器到路由器;
  • 主机到路由器;
  • 主机到主机;
  • 路由器到主机。

IPv6/IPv4 路由器可以封装 IPv6 流量以通过 IPv4 网络基础设施进行传送,该方法既适用于位于路由器任一侧的纯 IPv6 节点,也适用于端到端的 IPv6 路径穿越 IPv4 网络进行通信的应用场合。源节点向 IPv6 路由器发送 IPv6 包后,该路由器充当隧道的源点,负责将 IPv6 包封装到 IPv4 包中,并将 IPv4 发送到隧道端点,由隧道远端的路由器负责解封装数据包并将其转发至 IPv6 目的地。

IPv6/IPv4 节点可以发起一条去往IPv6/Pv4路由器的隧道,从而为IPv6路径的第一个网段创建隧道。隧道发起节点负责将IPv6包封装到IPv4包中,并将IPv4包发送到隧道端点路由器,由端点路由器解封装数据包,并将IPv6包转发到最终目的地。

IPv6/IPv4 主机可以创建去往其他 IPv6/IPv4 主机的隧道,这完全是一条 端到端的隧道。IPv6/IPv4 源节点将 IPv6 包封装到 IPv4 包中,并通过纯 IPv4 网络将 IPv4 包发送到目的地,由目的主机负责解封装该数据包并处理 IPv6 包。

路由器到主机隧道创建在 IPv6 路径的最后一个网段,路由器接收到 IPv6 包之后就创建一个隧道,以便通过其所连接的 IPv4 网络将该数据包转发给目的主机,目的主机接收到该 IPv4 包之后,负责解封装该数据包并处理 IPv6 包。

路由器到路由器隧道以及主机到路由器隧道这两种方法并没有将隧道建立到最终的目的地,远端隧道端点与数据包的最终目的地是不同的,也与最终目的地址不同。虽然需要知道隧远端的 IPv4 地址,但无法从真实的 IPv6 目的地址中得到该信息。这两种方法需要使用配置隧道。

对其余两种隧道方法(主机到主机隧道和路由器到主机隧道)来说,远端隧道端点与数据包的最终目的地相同,因而可以从与 IPv4 兼容的 IPv6 目的地址的低 32bit 中获得远端隧道端点的 IPv4 地址,从而可以为这两种隧道方法创建自动隧道。

  • 自动隧道
    配置了自动隧道的封装主机可以从目的地的与 IPv4 兼容的 IPv6 地址中提取出 IPv4 地址,而封装主机必须拥有去往该 IPv4 地址的 IPv4 连接。源主机将数据包封装到 IPv4 头部中,将提取出来的 IPv4 地址作为目的地址,并将从自身 IPv4 兼容地址中提取出来的 IPv4 地址作为源地址,而主机间的路由器则根本不知道 IPv6 净荷的存在。

NAT-PT

另一种允许 IPv6 与 IPv4 网络及主机共存的方法是使用 NAT-PT ( Network AddressTranslation - Protocol Translation, 网络地址转换一协议转换)。IPv6/IPv4 路由器为纯 IPv6 和纯 IPv4 主机进行地址和协议转换,当这些主机进行通信时,都不需要知道它们正在运行的是不同版本的 IP 协议,完全由 NAT-PT 路由器来完成所有的转换工作,包括源地址和目的地址的 IPv6 与 IPv4 转换。

IPv4 NAT 中存在的问题也依然存在于 IPv6-to-IPv4 NAT-PAT 中,被转换的入站流量和出站流量都必须穿越同一台地址转换器,地址转换器维护了被转换会话的状态信息。请注意,端到端的安全性是不可能的,这是因为 IPSec 无法穿越 NAT 设备。除非在转换路由器上运行应用转换网关,否则在 IP 头部之外任何位置携带 IP 地址的应用程序都将无法正常工作。穿越协议域的 DNS 查询消息中必须要在被转换的 DNS 包(在 IPv4 与 IPv6 之间进行转换)中包含请求和响应信息。

除了地址之外,IPv4 与IPv6之间的转换存在的另一个特殊问题就是头部信息。IPv6 头部与IPv4 头部字段是不同的,在选项的处理上也完全不同,因而除非迫不得已,不要使用这种共存方式。

从 IPv4 向 IPv6 的迁移相关推荐

  1. IP地址,IPV4与IPV6

    目录 1.IP地址 2.IPV4 2.1.IPv4数据报格式 2.2.网络号和主机号 2.3.IP地址的分类 2.4.子网划分与子网掩码 2.4.1.子网划分 2.4.2子网掩码 2.5.网络地址转换 ...

  2. IPv4 与 IPv6 是什么?它们之间有何区别?

    网络之间互联的协议(IP)是Internet Protocol的外语缩写, 中文缩写为"网协". 网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议.在因特网中,它是 ...

  3. 厚积薄发,看腾讯云如何快速从IPv4向IPv6演进?

    IPv6技术在国内沉寂数十年后,在国家推进下重新登上重要舞台.2018年工业和信息化部发布了关于贯彻落实<推进互联网协议第六版(IPv6)规模部署行动计划>的通知.不但展示国家推动IPv6 ...

  4. 从 IPv4 到 IPv6,阿里踩过哪些坑?

    阿里妹导读:在IPv6的概念出现后多年,市场反应不瘟不火.如今,随着万物互联和云计算的爆发式增长,下一代互联网IPv6时代真的已经到来了.6月20日,阿里云在北京召开了阿里云全面支持IPv6发布会,中 ...

  5. 当P4遇见NAT64,UCloud如何快速从IPv4向IPv6演进?

    IPv4发展到今天已存在着诸多缺陷,比如地址枯竭.安全和服务质量难以保证.路由膨胀等,这些问题将极大制约云计算等相关IT行业的发展.IPv6以其更大的地址空间.更高的安全性等特点,能够很好的解决IPv ...

  6. 从IPv4到IPv6为什么这么久?IPv5哪里去了?

    IPv6自1998年以来一直在努力解决IPv4中可用IP地址的短缺问题,但尽管它具有效率和安全优势,数据分析表明,企业采用它的速度比预期的要慢. 关于互联网地址耗尽的可怕(和可怕)警告几乎已经完全停止 ...

  7. IPv4与IPv6有什么不同,如何升级到IPv6

    自1981年Jon Postel 在RFC791中定义了IPv4到现在,IPv4在IP领域称王已有30余年,并一度成为IP的代名词,但是IPv4面临枯竭的危机,已经失去了实用价值.到1998年,互联网 ...

  8. IPv4与IPv6数据包格式

    https://blog.csdn.net/frank_jb/article/details/45093615 本文给出IPv4与IPv6数据报格式示意图,并整理了各个字段含义,最后对比IPv4与IP ...

  9. 记录一次nginx升级,支持ipv4和ipv6访问https

    项目要求,需要让现有网站项目支持https,并同时支持ipv6访问,经过分析,现在nginx版本较老,所以决定升级nignx,并且同步配置https和ipv6. 升级准备 服务器网络环境需要支持ipv ...

  10. 漫话:全球 IPv4 地址正式耗尽?是时候说说到底什么是IPv4和IPv6了!

    2019年11月25日,负责英国.欧洲.中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,其最后的 IPv4 地址空间储备池在 11 月 25 日 UTC + 1 15:35 ...

最新文章

  1. 汉字验证码和算式验证码
  2. MAC 重置MySQL root 密码
  3. oracle去掉blob的黑边,oracle Blob处理
  4. 关于Git和Github你不知道的十件事
  5. Teamviewer连接服务器显示不能够全屏 或 向日葵连接服务器不能够全屏 或 Teamviewer只显示一个640x480的分辨率选项
  6. php : RBAC 基于角色的用户权限控制-表参考
  7. oracle数据泵还原命令,Oracle Linux环境中使用数据泵的形式还原Oracle数据库
  8. 介绍一个统计键盘和鼠标输入情况的工具软件
  9. .net aspose.words 域加载图片_使用Python批量替换csdn文章的图片链接
  10. 纪中C组模拟赛总结(2019.7.9)
  11. javascript关键字_让我们揭开JavaScript的“ new”关键字的神秘面纱
  12. 重启报错_Win10蓝屏,提示收集错误信息,反复重启报错
  13. 【视频编解码-软件】之FFMPEG交叉编译
  14. 动态引入js文件和css样式表文件
  15. 阳明心学解析——心学本质关系连接
  16. bzoj 3717 [PA2014]Pakowanie
  17. 真正决定人生高度的,是你做事的速度
  18. GIS行业地图绘制的基本要求
  19. 正心,修身,方能齐家,治国,平天下
  20. Cannot find current proxy: Set 'exposeProxy' property on Advised to 'true' to make it available

热门文章

  1. 博主力推!!NRF52832 BLE 抓包sniffer来了!附带安装使用说明
  2. 支付宝小程序获取手机号授权
  3. gre填空高频词汇整理
  4. 人工智能在围棋程序中的应用
  5. 计算机组装与维护重点难点,计算机组装与维修复习重难点.doc
  6. Windows问题记录之任务栏图标透明
  7. DOS windows PE三者有什么区别
  8. android view 3d,Android 使用ViewPager打造3D画廊效果
  9. python泰坦尼克号数据预测_Python机器学习预测泰坦尼克号乘客生存率(kaggle项目)...
  10. SQL Server 2008 下载地址