IPv6 浪潮来临
随着移动互联网, 物联网, 工业 4.0 等新兴产业迅速发展, 接入网络的终端数量呈指数级增长, 从传统的 PC, 手机, 到未来无处不在的物联网终端, 都需要通过 IP 地址接入互联网, 预计 2020 年, 全球将有 500 亿设备在线, 地址需求数量是 IPv4 地址总数的十倍以上. 目前 IPv4 地址已经全部分配完毕, 地址紧缺的问题十分严峻.
经过二十多年的发展, IPv6 已经是一个非常成熟的技术. IPv6 具有更多地址数量, 更小路由表, 更好安全性等优点, 可以有效解决当前 IPv4 面临的问题.
2017 年 11 月 26, 中共中央办公厅, 国务院办公厅联合印发了《推进互联网协议第六版 (IPv6) 规模部署的行动计划》(下称《行动计划》).《行动计划》要求, 用 5 到 10 年时间, 形成下一代互联网自主技术体系和产业生态, 建成全球最大规模的 IPv6 商业应用网络, 实现下一代互联网在经济社会各领域深度融合应用, 成为全球下一代互联网发展的重要主导力量, IPv6 的浪潮真正来临了.
IPv6 过渡技术介绍
由于 IPv6 本身不兼容 IPv4, 大规模部署 IPv6 还面临不少挑战. 目前可行的办法是使用过渡技术, 将 IPv4 逐渐演进到 IPv6, 当前主要有三种主流的过渡技术:
1. 双线技术
双栈示意图
双栈技术, 是指在终端各类应用系统, 运营支撑系统和各网络节点之间同时运行 IPv4 和 IPv6 协议栈(两者具有相同的硬件平台), 从而实现分别与 IPv4 或 IPv6 节点间的信息互通.
具有 IPv4/IPv6 双协议栈的结点称为双栈节点, 这些结点既可以收发 IPv4 报文, 也可以收发 IPv6 报文. 它们可以使用 IPv4 与 IPv4 结点互通, 也可以直接使用 IPv6 与 IPv6 结点互通. 双栈节点同时包含 IPv4 和 IPv6 的网络层, 但传输层协议 (如 TCP 和 UDP) 的使用仍然是单一的.
双栈协议模型
双栈节点可以运行以下三种模式, 灵活启用 / 关闭 IPv4/IPv6 功能:
使能它们的 IPv4 栈并关闭它们的 IPv6 栈, 表现为 IPv4 节点.
使能它们的 IPv6 栈并关闭它们的 IPv4 栈, 表现为 IPv6 节点.
使能双栈, 同时开启 IPv4 和 IPv6 协议.
双栈模式的工作原理可以简单描述为:
若目的地址是一个 IPv4 地址, 则使用 IPv4 地址;
若目的地址是一个 IPv6 地址, 则使用 IPv6 地址. 使用 IPv6 地址时有可能要进行封装.
双栈技术是所有过渡技术的基础, 支持灵活地启用或关闭节点的 IPv4/IPv6 功能, 可以很好地过渡到纯 IPv6 的环境. 但同时, 要求所有节点都支持双栈, 增加了改造和部署难度.
2. 隧道技术
隧道技术示意图
基于 IPv4 隧道来传送 IPv6 数据报文的隧道技术, 是将 IPv6 报文封装在 IPv4 报文中, 这样 IPv6 协议包就可以穿越 IPv4 网络进行通信. 因此被孤立的 IPv6 网络之间可以通过 IPv6 的隧道技术利用现有的 IPv4 网络互相通信而无需对现有的 IPv4 网络做任何修改和升级. IPv6 隧道可以配置在边界路由器之间也可以配置在边界路由器和主机之间, 但是隧道两端的节点都必须既支持 IPv4 协议栈又支持 IPv6 协议栈.
IPv6 数据报在 IPv4 中的封装
IPv4/IPv6 隧道技术的实现机制:
隧道入口节点 (封装路由器) 创立一个用于封装的 IPv4 报文头, 并传送此被封装的分组.
隧道出口节点 (解封装路由器) 接收此被封装的分组, 如果需要重新组装此分组, 移去 IPv4 报文头, 并处理收到的 IPv6 分组.
封装路由器或许需要为每个隧道记录维持软状态信息, 这类参数诸如隧道 MTU, 以便处理转发的 IPv6 分组进隧道.
隧道技术封装示意图
IPv6 隧道技术分为手动隧道和自动隧道:
(1) 手动隧道: 即边界设备不能自动获得隧道终点的 IPv4 地址, 需要手工配置隧道终点的 IPv4 地址, 报文才能正确发送至隧道终点, 通常用于路由器到路由器之间的隧道, 常用的手动隧道技术如下:
IPv6 over IPv4 手动隧道
GRE 隧道
(2) 自动隧道: 即边界设备可以自动获得隧道终点的 IPv4 地址, 所以不需要手工配置终点的 IPv4 地址, 一般的做法是隧道的两个接口的 IPv6 地址采用内嵌 IPv4 地址的特殊 IPv6 地址形式, 这样路由设备可以从 IPv6 报文中的目的 IPv6 地址中提取出 IPv4 地址, 自动隧道可用于主机到主机, 或者主机到路由器之间, 常用的自动隧道技术如下:
6to4
ISATAP
6RD
通过隧道技术, 依靠现有 IPv4 设施, 只要求隧道两端设备支持双栈, 即可实现多个孤立 IPv6 网络的的互通, 但是隧道实施配置比较复杂, 也不支持 IPv4 主机和 IPv6 主机直接通信.
地址协议转换技术
地址转换技术示意图
1. NAT-PT 转换技术
NAT-PT(Network Address Translation-Protocol Translation, 网络地址转换 - 协议转换): 由 SIIT(Stateless IP/ICMP Translation, 无状态翻译技术)协议转换技术和动态地址翻译 (NAT) 技术结合和演进而来, SIIT 提供 IPv4 和 IPv6 一对一的映射转换, NAT-PT 支持在 SIIT 基础上实现多对一或多对多的地址转换.
NAT-PT 分为静态和动态两种形式:
(1) 静态 NAT-PT:
静态模式提供一对一的 IPv6 地址和 IPv4 地址的映射. IPv6 单协议网络域内的节点要访问 IPv4 单协议网络域内的每一个 IPv4 地址, 都必须在 NAT-PT 网关中配置. 每一个目的 IPv4 在 NAT-PT 网关中被映射成一个具有预定义 NAT-PT 前缀的 IPv6 地址. 在这种模式下, 每一个 IPv6 映射到 IPv4 地址需要一个源 IPv4 地址. 静态配置适合经常在线, 或者需要提供稳定连接的主机.
(2) 动态 NAT-PT:
在动态 NAT-PT 中, NAT-PT 网关向 IPv6 网络通告一个 96 位的地址前缀, 并结合主机 32 位 IPv4 地址作为对 IPv4 网络中主机的标识. 从 IPv6 网络中的主机向 IPv4 网络发送的报文, 其目的地址前缀与 NAT-PT 发布的地址前缀相同, 这些报文都被路由到 NAT-PT 网关, 由 NAT-PT 网关对报文头进行修改, 取出其中的 IPv4 地址信息, 替换目的地址. 同时, NAT-PT 网关定义了 IPv4 地址池, 它从地址池中取出一个地址来替换 IPv6 报文的源地址, 从而完成从 IPv6 地址到 IPv4 地址的转换. 动态 NAT-PT 支持多个 IPv6 地址映射为一个 IPv4 地址, 节省了 IPv4 地址空间.
NAT-PT 支持 IPv4 和 IPv6 两种协议的相互翻译和转换, 但是存在如下问题:
属于同一会话的请求和响应都必须通过同一 NAT-PT 设备才能进行转换, 比较适合单一出口设备的环境;
不能转换 IPv4 报文头的可选项部分;
缺少端到端的安全性.
因此, NAT-PT 逐渐被废弃, 不推荐使用, 最新的地址协议转换技术是 NAT64.
2. NAT64 转换技术
NAT64 是一种有状态的网络地址与协议转换技术, 一般只支持通过 IPv6 网络侧用户发起连接访问 IPv4 侧网络资源. 但 NAT64 也支持通过手工配置静态映射关系, 实现 IPv4 网络主动发起连接访问 IPv6 网络. 其中, NAT64 执行 IPv4-IPv6 有状态的地址和协议转换, DNS64 实现域名地址解析, 两者配合工作, 不需要在 IPv6 客户端或 IPv4 服务器端做任何修改.
DNS64 主要是将 DNS 查询信息中的 A 记录 (IPv4 地址) 合成到 AAAA 记录 (IPv6 地址) 中, 返回合成的 AAAA 记录用户给 IPv6 侧用户. DNS64 也解决了 NAT-PT 中的 DNS-ALG 存在的缺陷.
NAT64 和 DNS64 流程图
NAT64 和 DNS64 的流程如下:
IPv6 主机发起到 DNS64 server 的 IPv6 域名解析请求(主机配置的 DNS 地址是 DNS64), 解析域名为 www.abc.com;
DNS64 触发到 DNS server 中查询 IPv6 地址;
若能查询到则返回域名对应的 IPv6 地址, 若查询不到, 则返回空;
DNS64 再次触发到 DNS server 中查询 IPv4 地址;
DNS server 返回 www.abc.com 的 IPv4 记录(192.168.1.1);
DNS64 合成 IPv6 地址(64::FF9B::192.168.1.1), 并返回给 IPv6 主机;
IPv6 主机发起目的地址为 64::FF9B::192.168.1.1 的 IPv6 数据包; 由于 NAT64 在 IPv6 域内通告配置的 IPv6 Prefix, 因此这个数据包转发到 NAT64 设备上;
NAT64 执行地址转换和协议转换, 目的地址转换为 192.168.1.1, 源地址根据地址状态转换(3ffe:100:200:1::1)->(172.16.1.1); 在 IPv4 域内路由到 IPv4 server;
IPv4 数据包返回, 目的地址为 172.16.1.1;
NAT64 根据已有记录进行转换, 目的地址转换为 3ffe:100:200:1::1, 源地址为加了 IPv6 前缀的 IPv4 server 地址 64::FF9B::192.168.1.1, 发送到 IPv6 主机, 流程结束.
地址协议转换技术对现有 IPv4 环境做少量改造(通常是更换出口网关), 即可实现对外支持 IPv6 访问, 部署简单便捷.
3. 如何选择?
业务系统对稳定性有很高的要求, 任何改造都不能影响现有业务的运行. 当我们做 IPv6 升级改造的时候, 面对众多技术方案如何选择, 需要考虑到诸多情况:
实施部署的便捷性, 周期不能太长, 如何保证在国家或监管机构的规定时间内完成全部业务平台的改造, 并对外提供 IPv6 服务;
方案须支持双栈, 对后续的演进发展到纯 IPv6 没有障碍;
要考虑投资成本和影响面, 分步进行, 优先完成对外系统改造(如门户网站), 再进行内网系统改造;
对现有业务的影响最小, 已有的 IPv4 访问不受影响;
技术的通用性, 不同厂商产品能够实现对接支持;
不增加过多的运维负担, 对 IPv6 网络的维护工作可以平稳过渡.
4. 三种技术对比
每种过渡技术都有各自的优点和缺点, 结合金融行业的应用场景和需求, 在不同的场景下我们需要选择不同的过渡技术以实现 IPv6 改造:
对于新建业务系统的场景, 推荐采用双栈技术, 同时支持 IPv4 和 IPv6, 一步到位实现最优改造;
对于多个孤立 IPv6 网络互通的场景, 如多个 IPv6 的数据中心区域互联, 可以采用隧道技术, 让 IPv6 数据封装到 IPv4 网络上传输, 减少部署的成本和压力;
对于已经上线的业务系统, 建议采用地址协议转换技术, 对现网的改动最小, 可以快速部署, 投资成本最低, 可支持后期逐渐演进到纯 IPv6 环境.
来源: http://network.51cto.com/art/201811/586281.htm