2018年8月10日星期五

腾讯云如何快速从IPv4向IPv6演进?

IPv6技术在国内沉寂数十年后,在国家推进下重新登上重要舞台。2018年工业和信息化部发布了关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》的通知。不但展示国家推动IPv6的决心,更对各大运营商和公有云厂商提出了IPv6的改造目标:到2018年末,腾讯云、金山云、网宿科技、蓝汛、帝联科技完成内容分发网络(CDN)IPv6改造;云服务平台企业完成50%云产品IPv6改造。到2020年末,上述企业完成全部云产品IPv6改造。
腾讯已经具备多年的IPv6技术积累,早在2013年就针对教育网的IPv6用户对部分腾讯业务应用访问,进行了底层网络架构的改造;近几年也是投入到IPv6和SDN、Segment Routing等新网络技术综合应用的研究。腾讯云由于受到用户需求的推动,早已开始云上业务IPv6改造的方案研究,现在则已经全面启动IPv6的支持计划。
腾讯云全面启动IPv6支持计划

向IPv6过渡:全部切换需要5-10年

IPv6在中国可以说一直不温不火,目前仅有校园网和三大运营商试点网络全面支持IPv6。在国内IPv6发展滞后的因素很多,但主要原因还是改造难度太大。互联网所有的通信都依赖于网络基础设施,但是庞大的网络基础设施改造是个非常巨大的工程,即使基础设施在理论上都能支持IPv6,但是改造并不能够一蹴而就,因为改造过程中要求不能够影响正在运行中的千百万IPv4业务。预计从IPv4全部切换到IPv6,需要5-10年的时间。
在未来过渡的数十年间,将会有多种网络形态存在。在过渡初期阶段,IPv4网络已经大量部署,而IPv6网络只是散落在各地的孤岛;然后逐步是IPv4和IPv6网络重叠;最后阶段,会以IPv4孤岛为主,直至IPv4全部消失。
在我们看来,不管是运营商还是公有云厂商,都会技术先行,实际改造部署的步骤,则遵循IPv4向IPv6的整体演进规律。
从下图来看,公有云厂商要实现IPv6的全面落地,需要完成四个层面的改造:
从改造周期来看,互联网接入区域和IDC数据中心基础设施IPv6的改造周期最长:因为它们和第三方(运营商、设备厂商等)相互依赖,网络架构复杂,设备众多。从技术难度来看,互联网接入区域的公网接入网关和云IaaS产品的VPC改造难度最大。
因为为了能够实现公有云千万级云主机的多租户能力,公有云普遍都采用的SDN+Overlay技术,这就要求SDN在协议层面全面支持IPv6,同时要求Overlay技术在封装层面中全面纳入IPv6;当SDN和Overlay在叠加多种IPv6的过渡方案,复杂程度就可想而知了。

IPv6三种典型过渡技术剖析

针对不用的网络互通场景,IPv6过渡技术按照技术原理可以分成三类:

翻译技术

通过翻译技术实现纯IPv4网络和纯IPv6网络之间的互通,类似于IPv4通信的NAT技术。网络边界设备将利用翻译技术,根据IP报文头的地址和协议进行相应的翻译。其中,NAT64是最为常用的翻译技术之一,解决了NAT-PT翻译技术存在的各种缺陷。
NAT64采用IPv6过渡技术中的地址转换技术,直接更改报文的头部信息,来实现IPv6和IPv4网络的互通。动态NAT64使用地址池方式,可以让大量的IPv6地址转化为很少的IPv4地址,通常用于IPv6网络发起连接到IPv4网络。如果手工配置静态映射,设备会根据绑定的映射关系进行一对一转换,从而保证任何一方均可以主动发起连接。

双栈技术

双栈协议:服务器、存储、交换设备、路由设备、安全设备等同时运行IPv4和IPv6两套协议栈,同时支持两套协议。目前大部分的网络设备和主机操作系统都已经支持双栈协议。
  • 链路协议支持双协议栈:链路层协议包括以太网协议、PPP等,他们都能够很好的支持IPv6/IPv4双协议栈。拿以太网网协议为例:在以太帧中,如果协议ID字段的值为0x0800,则表示网络层协议采用的是IPv4;如果协议ID字段的值为0x86DD,则表示网络层协议为IPv6。
  • 应用支持双协议栈:DNS、FTP等应用层协议都同时支持IPv6/IPv4双协议栈:DNS会优先选择IPv6协议栈,而不是IPv4协议栈作为网络层协议。

隧道技术

需要通过IPv4骨干网络连接两端的IPv6孤岛,或者通过IPv6骨干网络连接两端的IPv4孤岛,都可以采用隧道技术。以前者为例,隧道技术通过在网络边界设备将IPv6源封装到IPv4的报文中经过IPv4骨干网传递到另一边的网络边界设备进行IPv6报文的还原,最后送到IPv6目的端。隧道技术有手工隧道和自动隧道两种方式,其中GRE、ISATAP、6to4是最为主要的几种隧道技术。
IPv6 over IPv4 GRE隧道使用标准的GRE隧道技术提供了点到点连接服务,需要手工指定隧道的端点地址。GRE隧道本身并不限制被封装的协议和传输协议,一个GRE隧道中被封装的协议可以是协议中允许的任意协议。

腾讯云IaaS产品的IPv6演进方案

腾讯云IaaS产品在不同演进阶段,会搭配多种过渡技术实现整体公有云业务向IPv6的平滑演进。在云上业务未向IPv6迁移时,通过翻译技术帮助互联网的IPv6用户访问云上的IPv4主机;然后将云上的VPC和CVM、CBS等产品逐步支持双栈,通过双栈技术和隧道技术实现互联网IPv6用户和IPv6云主机的通信;最后当所有IDC和骨干网的双栈能力全部上线后,则通过双栈技术即可灵活的实现云上云下的互访互通。
需要重点强调的是: 相对于underlay的IPv6演进,公有云为了实现VPC能力都采用了SDN和Overlay技术,所以采用何种过渡技术时,需要结合自身的Overlay技术进行综合考虑。在运维层面,也需要考虑Overlay封装和IPv6 over IPv4隧道封装对报文长度和转发的影响。

NAT64公网网关和NAT64过渡技术

在VPC和云主机启用双栈能力之前,VPC和云主机继续运行IPv4协议栈, 腾讯云将为IPv6用户访问IPv4云主机部署独立的公网网关集群,公网网关通过NAT64的过渡技术实现IPv6和IPv4网络的互通。
NAT64过渡技术的应用
NAT64 是一种有状态的网络地址与协议转换技术,主要用于支持通过 IPv6网络侧用户发起连接访问 IPv4侧网络资源,但也可以通过手工配置静态映射关系,来实现 IPv4网络主动发起连接访问 IPv6网络。NAT64可实现 TCP、UDP、ICMP协议下的 IPv6与 IPv4网络地址和协议转换。
具体实现方案为: 在NAT64公网网关上配置一个IPv4的地址池,使用有状态的NAT64方案。公网IPv6用户请求中的地址{IPv6 A, IPv6 B}在公网网关上转为{IPv4 A,IPv4 B},被转换后的报文在云IDC内部按照IPv4协议转发流程在underlay网络以及宿主机上进行处理。

VPC双栈能力和GRE隧道技术

IDC网络部署了大量的网络和安全设备,虽然大部分设备理论上已具备IPv6/IPv4双栈能力,但是基础网络改造的周期跨度一定会很长。所以在IDC基础网络改造完成之前,VPC和CVM、容器、存储等IAAS层的IPv6功能会先上线,此时CVM和外网接入网关都将具备双栈的能力。那么如何帮助互联网IPv6用户和IPv6云主机穿越IPv4网络?
借助IPv6 Over IPv4隧道技术,可在CVM宿主机和公网网关之间搭起一座桥梁。具体实现为:当宿主机收到从CVM发出的IPv6报文后,会封装一个GRE头部,并在外层封装IPv4报文头,封装IPv4报文头时根据隧道接口配置的隧道源端和目的端的IPv4地址进行封装。封装后的报文变成一个IPv4报文,交给IPv4协议栈处理;报文经过IPV4 IDC基础网络传递到底IPv6公网网关后,公网网关会解掉GRE头部以及外层的IPv4报文头,并进入运营商的IPv6网络,最终到达IPv6用户。
从IPv6用户访问IPv6云主机时,当报文到达IPv6公网网关时,公网网关封装GRE头部以及外层IPv4报文头,封装后的报文经过IPv4 IDC基础网络后,在CVM宿主机进行GRE的解封装,然后再将报文传递到IPv6 CVM。
双栈和隧道过渡技术的应用
当IPv6 CVM访问外部WEB应用服务器时,需要Local DNS服务器返回AAAA记录;但如果访问的是IPv4 WEB服务器,只local DNS服务器只能够获得一条A记录。如果local DNS服务器将A记录返回给IPv6 CVM时,CVM是无法识别的。
为了解决这个问题,腾讯云将会在local DNS启用DNS64技术。DNS64的原理比较简单,主要原理是将DNS查询信息中的 A记录的IPv4地址合成到 AAAA记录的IPv6地址中,并将合成的 AAAA记录返回给 IPv6侧用户。DNS64主要用于配合NAT64,实现IPv6访问IPv4的应用场景。
DNS64的应用

全双栈能力

随着运营商网络的逐步改造,原来的IPv4运营商网络会演变为IPv6/IPv4双栈网络,这时腾讯云的公网网关也会支持双栈能力。当IDC基础网络各个节点都逐步支持双栈能力时,在云端将不再需要翻译和隧道这两种技术,不管是IPv6报文还是IPv4报文,都能够在所有节点被智能的识别和区分,然后根据不同的目的路由信息,发往下一个节点进行处理。
IPv6/IPv4全双栈的应用

腾讯云PaaS和SaaS的IPv6演进方案

物联网可以说是IPv6最强的推动剂,当物联网技术和IPv6技术叠加,万物互联和智能连接才能够真正实现;地球上任何一台电视、冰箱、空调或者汽车,都将获得一个IPv6地址,IPv6将作为各自在互联网的身份ID,快速地被识别。
当腾讯云的IaaS逐步支持IPv6后,对于其他采用腾讯云IaaS产品为互联网用户提供PaaS和SaaS服务的供应商,也可以搭乘腾讯云IPv6的快车,更快的将自己的应用方案向IPv6过渡。同时,腾讯云自身PaaS产品和SaaS产品的IPv6改造也会水到渠成;腾讯云将陆续推出视频直播、大数据套件、机器学习平台、舆情分析、物联网等成熟的IPv6产品。
全面的IPv6边缘接入能力
不管是在智慧零售还是智能车联网等应用场景,腾讯云都可以提供非常强大的云端互联的网络支撑以及云端大数据分析。同时,腾讯云还将陆续在各个地域提供全面的IPv6边缘接入能力,以便最快的帮助用户打通云下和云上的IPv6互通,助力用户构建广泛而强大的IPv6互联网络。
IPv6不仅仅是一种协议,它更像一条连接万物的纽带,当IPv6遇上物联网,它终于焕发出了春意盎然的生机。当腾讯云IPv6的全面落地,腾讯连接一切的愿景,也就能更快的实现了。
作者介绍:秦振华,腾讯云高级产品经理,具有十年以上网络架构设计、网络运维、云计算和SDN网络产品策划的经验。目前正致力于腾讯云网络相关的产品化工作,不断探索和推动SDNIPv6、Segment Routing等网络新技术在云上的落地。
地点: 中国四川省成都市