作者 | 秦振华
IPv6 技术在国内沉寂数十年后,在国家推进下重新登上重要舞台。2018 年工业和信息化部发布了关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》的通知。不但展示国家推动 IPv6 的决心,更对各大运营商和公有云厂商提出了 IPv6 的改造目标:到 2018 年末,腾讯云、金山云、网宿科技、蓝汛、帝联科技完成内容分发网络(CDN)IPv6 改造;云服务平台企业完成 50% 云产品 IPv6 改造。到 2020 年末,上述企业完成全部云产品 IPv6 改造。
腾讯已经具备多年的 IPv6 技术积累,早在 2013 年就针对教育网的 IPv6 用户对部分腾讯业务应用访问,进行了底层网络架构的改造;近几年也是投入到 IPv6 和 SDN、Segment Routing 等新网络技术综合应用的研究。腾讯云由于受到用户需求的推动,早已开始云上业务 IPv6 改造的方案研究,现在则已经全面启动 IPv6 的支持计划。
腾讯云全面启动 IPv6 支持计划
1 向 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 的过渡方案,复杂程度就可想而知了。
2 IPv6 三种典型过渡技术剖析
针对不用的网络互通场景,IPv6 过渡技术按照技术原理可以分成三类:
翻译技术
通过翻译技术实现纯 IPv4 网络和纯 IPv6 网络之间的互通,类似于 IPv4 通信的 NAT 技术。网络边界设备将利用翻译技术,根据 IP 报文头的地址和协议进行相应的翻译。其中,NAT64 是最为常用的翻译技术之一,解决了 NAT-PT 翻译技术存在的各种缺陷。
NAT64 采用 IPv6 过渡技术中的地址转换技术,直接更改报文的头部信息,来实现 IPv6 和 IPv4 网络的互通。动态 NAT64 使用地址池方式,可以让大量的 IPv6 地址转化为很少的 IPv4 地址,通常用于 IPv6 网络发起连接到 IPv4 网络。如果手工配置静态映射,设备会根据绑定的映射关系进行一对一转换,从而保证任何一方均可以主动发起连接。
双栈协议:服务器、存储、交换设备、路由设备、安全设备等同时运行 IPv4 和 IPv6 两套协议栈,同时支持两套协议。目前大部分的网络设备和主机操作系统都已经支持双栈协议。
需要通过 IPv4 骨干网络连接两端的 IPv6 孤岛,或者通过 IPv6 骨干网络连接两端的 IPv4 孤岛,都可以采用隧道技术。以前者为例,隧道技术通过在网络边界设备将 IPv6 源封装到 IPv4 的报文中经过 IPv4 骨干网传递到另一边的网络边界设备进行 IPv6 报文的还原,最后送到 IPv6 目的端。隧道技术有手工隧道和自动隧道两种方式,其中 GRE、ISATAP、6to4 是最为主要的几种隧道技术。
IPv6 over IPv4 GRE 隧道使用标准的 GRE 隧道技术提供了点到点连接服务,需要手工指定隧道的端点地址。GRE 隧道本身并不限制被封装的协议和传输协议,一个 GRE 隧道中被封装的协议可以是协议中允许的任意协议。
3 腾讯云 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 的应用
4 全双栈能力
随着运营商网络的逐步改造,原来的 IPv4 运营商网络会演变为 IPv6/IPv4 双栈网络,这时腾讯云的公网网关也会支持双栈能力。当 IDC 基础网络各个节点都逐步支持双栈能力时,在云端将不再需要翻译和隧道这两种技术,不管是 IPv6 报文还是 IPv4 报文,都能够在所有节点被智能的识别和区分,然后根据不同的目的路由信息,发往下一个节点进行处理。
IPv6/IPv4 全双栈的应用
5 腾讯云 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 网络产品策划的经验。目前正致力于腾讯云网络相关的产品化工作,不断探索和推动 SDN、IPv6、Segment Routing 等网络新技术在云上的落地。