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环境。