11 月 25 日,负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,其最后的 IPv4 地址空间储备池已经完全耗尽,所有 43 亿个 IPv4 地址已分配完毕。这意味着没有更多的 IPv4 地址可以分配给 ISP 和其他大型网络基础设施提供商。
IPv4 的后继版本为 IPv6,IPv6 的地址长度为 128 位,是 IPv4 地址长度的 4 倍,最大地址个数为 2^128,可以很好的解决 IPv4 地址短缺的问题。从运营商到互联网企业,从手机终端厂商到内容提供商,IPv6 改造和所有企业都休戚相关。同时,开发者在开发 APP、软件开发工具包(SDK)以及服务器端程序时,都需要考虑支持 IPv6 访问,具体改造内容涉及客户端、接入层、存储层等。
从 2011 年起,IPv6 技术在国家推进下全面进行。2018 年工业和信息化部发布了关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》的通知,对各大运营商和公有云厂商提出了 IPv6 的改造目标:到 2018 年末,腾讯云、金山云、网宿科技、蓝汛、帝联科技完成内容分发网络(CDN)IPv6 改造;云服务平台企业完成 50% 云产品 IPv6 改造。到 2020 年末,上述企业完成全部云产品 IPv6 改造。今年 11 月 19 日,中国通信学会在其官网上公布了 2019 年中国通信学会科学技术奖的评选结果,腾讯云和中国移动通信集团,中国信息通信研究院、以及华为联合申报的“移动互联网 IPv6 技术攻关及规模应用”项目荣获今年科学技术一等奖。
InfoQ 采访了腾讯云资深产品经理、腾讯云 IPv6 改造项目组成员秦振华,了解在 IPv6 改造中,腾讯云遇到的问题和挑战,希望他们的经验能给大家带来借鉴作用。
InfoQ:IPv4 耗尽的事情,从 10 年前就开始说了,但通过哪些方法,延续到现在才正式耗尽?
秦振华:从 2011 年起 IPv4 地址就一直处于即将告罄状态,互联网地址管理机制只好采取限制申请数量、调配零散地址等方法帮助 IPv4 延续到现在。企业也只能通过 NAT、LB 等方式减少 IPv4 公网地址的使用。
InfoQ:IPv6 改造,涉及到哪些类型的企业?(哪些企业必须面临改造的问题?)对软件的哪些层级会有影响?(应用层软件是否有影响,普通程序员是否有感知?)
秦振华:IP 通信协议是互联网的大动脉,IP 通信协议的升级牵一发而全身。从运营商到互联网企业,从手机终端厂商到内容提供商,IPv6 改造和所有企业都休戚相关。
工业和信息化部在今年 4 月份《关于开展 2019 年 IPv6 网络就绪专项行动的通知》中对于首批应该完成改造的企业已经做出了明确的指示,其中就包括:电信运营商、基础电信企业数据中心、公有云厂商、CDN 厂商、手机终端厂商、政府单位、高校、国有企业、网络及安全设备厂商等。需要改造的内容覆盖电信骨干网络、城域网、接入网、基础电信企业数据中心网络、公有云基础网络、CDN 网络、公有云所有产品、安全防护设备、手机终端、家庭路由器、官网、APP 应用。
开发者在开发 APP、软件开发工具包(SDK)以及服务器端程序时,都需要考虑支持 IPv6 访问,具体改造内容涉及客户端、接入层、存储层等。
InfoQ:相对 IPv4 来说,IPv6 有哪些优点?IPv6 又会带来哪些挑战?
秦振华:相比 IPv4,IPv6 提供更广阔的地址空间、更高效的转发效率、更安全的通信机制以及更灵活的移动性等,而这些优势正是支撑大数据和物联网等下一代互联网通信的必要条件。
1、IPv6 解决地址空间问题:
IPv4 的地址长度为 32 位(4 字节),而 IPv6 地址长度为 128 位(16 字节)。IPv6 的最大地址个数为 2^128,可以很好的解决 IPv4 地址短缺的问题,支撑物联网海量终端的互联需求。腾讯云为每个 VPC(为云上用户分配的私有数据中心)分配一个/56 的 IPv6 CIDR,所以每个 VPC 下理论可以支撑 2^72 个网元节点。
2、IPv6 提升转发效率
IPv6 地址充足,网络传输的中间设备不再需要进行 NAT(网络地址转换)处理,可以提升转发性能和转发效率。另一方面,IPv6 取消了校验,可以节省大量的计算开销,也能进一步提升了转发效率。
3、IPv6 提升安全性
相比于 IPv4,IPv6 直接在报文头中集成了 IPsec 安全加密机制,而 IPSec 可以保护所有运行于 IP 层上的所有协议在主机间进行安全传输,提升了网络通信的安全性,同时也提升了网络中间设备的转发效率。
4、IPv6 提升网络可扩展性
IPv6 还有一个杀手锏,那就是 IPv6 路由扩展头,天然为移动互联网而生。应用层的通信比如 HTTP/HTTPS,是依赖 TCP 连接,而 TCP 连接又是依赖 IP 连接。如果 IP 地址改变,则应用层的连接很可能就中断了。而 IPv6 可以通过把 IP 地址变更的信息(包括原来的 IP 地址) 携带到路由扩展头传递到目的节点,这样即使 IP 地址改变也可以实现应用层的连接不中断。
IPv6 有非常多的好处,但是同时也对技术上提出了更多的挑战,尤其是 IPv6 地址长度更长,在报文封装、转发、存储方面都会带来难度。比如在 SDN 和 Overlay 网络,云服务器地址信息往往需要携带在 Vxlan、GRE 等包头中,但是 Vxlan、GRE 的自身长度都小于 128 字节,无法再携带云服务器的 IPv6 地址。而对于运维和安全管理来说,海量的 IPv6 地址存储和查询对系统性能都提出了更高的要求;以往在运维和安全管理,会提前录入网段并进行裂解,但是发现 IPv6 很难对一个地址段进行裂解,比如一个/56 的地址段,包含了海量的 IPv6 地址。
InfoQ:在腾讯的哪些地方,涉及到 IPv6 改造?腾讯组织了什么样的力量去做这个事情?
秦振华:大型云计算平台的 IPv6 改造是一个系统而复杂的工程:腾讯云提供计算、存储、私有网络、数据库、中间件、域名解析等上百种种产品,产品之间之间会有耦合依赖,我们 IPv6 改造可以总体分为三个方面:
基础设施的改造:包括了全球25个地域的公网出口、核心网络设备、服务器、安全防护设备等。
基础网管系统的改造:包括了IP地址管理系统、CMDB资产管理系统、网络自动化配置系统、设备监控系统等10个大型网管系统改造。
云产品的改造:计算、存储、网络、数据库等100个子产品以及整体云系统支撑的改造。
腾讯云在 18 年年初成立了公司级的重大项目组,并从各个部门抽调项目经理和技术骨干参与 IPv6 的改造,到目前参与 IPv6 改造的人员超过 1000 人。
InfoQ:腾讯云的 IPv6 改造中,遇到过哪些问题和挑战?
秦振华:IPv6 改造最大的挑战就是如何保证升级过程中做到客户业务无感知。因为 IPv6 升级不但要完成新建机房和线路的改造,更多的还是在存量机房和线路上改造。原系统和设备上已经承载了大量的应用和流量,升级过程中出现了任何的疏漏都可能影响客户的业务。同时大型云网系统,控制器系统管理着数百万的云主机,一旦控制面出现异常,那将会影响到所有腾讯云客户。
在实际升级过程中,我们也遇到了一些比较具体的问题:部分网络设备在 IPv6 路由策略、奇偶路由、路由规格支持得不好,需要升级版本解决;而操作系统的 IPv6 功能仍需完善,比如所有的 linux 镜像默认都没有打开 IPv6,有些镜像开启 IPv6 需要重启网络服务,而另一些镜像开启 IPv6 还需要重启机器; 比如当下流行的 Docker 对 IPv6 的支持不完善. 另外,IPv6 公网(包括运营商网络、公有云网络、CDN 网络)的覆盖区域、路由策略仍在不断的调整和优化。
InfoQ:目前腾讯云 IPv6 改造的整体进展如何?有了什么样的一些关键成果?有什么样的突破?
秦振华:前几天,中国通信学会公布 2019 年“中国通信学会科学技术奖”评选结果,腾讯云和中国移动、中国信通院、华为的联合项目《移动互联网 IPv6 技术攻关及规模应用》荣获一等奖大奖。我们在 IPv6 的技术创新和规模应用得到了认可,对我们整个 IPv6 改造团队都是极大的激励。
腾讯云在 18 年初就启动了 All in IPv6 的战略,即全线产品启动 IPv6 的改造,经过 2 年多的努力,目前已经完成了 40 多款基础产品的 IPv6 改造,已正式上线的产品类型就包括云服务器、私有网络、子网、弹性网卡、负载均衡、内容分发、DDoS 防护、域名解析、HTTPDNS 等,已经完全可以支撑云上应用实现端到端的 IPv6 通信。
另外,我们已经完成了北京、上海、广州、成都、重庆等国内 BGP 出口的改造,完成了全球多个机房的 IPv6 改造。海外的 BGP 出口也在陆续改造中,争取年底前开放海外的部分地域,助力出海用户尽快接入 IPv6 用户。
借助于这次 IPv6 改造的契机,我们也对升级了我们的分布式 SDN 网络,基于 IPv6 开发了下一代 SDN 控制器,不但解决了 IPv4/IPv6 双栈网络的多场景通信以及双栈环境下的子机迁移、Fallback 机制等,同时也面向 IPv6 的下一代支撑网络提供更加强大的管控能力,支撑千万级的用户 VPC。面向 IPv6 的 DDOS 攻击、CC 攻击和 DNS 劫持等安全问题,构建四维一体的双栈智能防御体系,自主研发支持 IPv6 的宙斯盾安全系统。通过云平台统一的 API,将 DDOS 防护检测、网络虚拟防火墙、网关应用层安全代理、云主机 IPv6 协议层安全进行统一联动,构建四维一体的智能防御系统,实现自动检测、预警、隔离等全方位的安全防护。
在 IPv6 改造过程中,面对 IPv6 带来的诸多挑战,我们也积累了丰富的经验。比如在 Overlay 网络封装支持 IPv6 方面,Overlay(比如 Vxlan,GRE)等都无法封装具有 128bytes 的 IPv6 地址,我们也通过映射技术很好的解决这个问题,并通过大规模分布式的 SDN 控制器完美的解决了路由表和映射表的规格和性能问题。
InfoQ:未来还要重点解决哪些问题?
秦振华:虽然 IPv6 改造已经进入中场,但对于腾讯云来说,这仅仅是一个开始,因为我们即将迎来更大规模的 IPv6 用户和 IPv6 流量的考验。未来的重点工作之一是完善 IPv6 的自动化流程,这里就包括两个方面:一方面是底层能力的自动化,比如缩短新地域的 IPv6 上线交付时间,这里就依赖运维管理系统的优化;另一方面是产品能力的自动化,比如镜像全部默认开启 IPv6,比如完善 DHCP 等功能等等,来实现 IPv6 地址分配、修改、释放的流程自动化闭环,降低云上用户的学习成本,增强用户的使用体验。让复杂的 IT 系统变成像水和电一样简单易用,这也是公有云平台的初心。另外还有一个重点工作是,打造 IPv6 生态,和客户、合作伙伴、开发者一起推动 IPv6 应用到更多的领域和场景。腾讯云已经通过 IPv6 为赛事直播、智慧零售、在线游戏、网络购物等场景提供了服务,但是还有更多的领域需要我们去探索,尤其是物联网场景。
InfoQ:对于其他要进行改造的企业,您有什么建议吗?
秦振华:为了支撑我们云上的用户平滑升级,我们提供了 NAT64 负载均衡的过渡方案。用户 IPv4 业务无需做任何改造,即可快速提供 IPv6 服务。但 NAT64 也存在一些局限,比如只能升级被动访问的业务,无法直接获取到客户端真实源 IP 等。
我们建议企业尽早投入双栈 IPv6 的应用改造,尽早享受技术红利给业务带来的高效和便捷。随着国家的大力推动,IPv6 用户和流量将会有爆发式的增长,如果不在平稳过渡期切入,后面流量上来了改造挑战会更大。
在应用改造方面,腾讯自研业务(比如视频、游戏、新闻等)已经积累了比较丰富的经验。我们建议可以分成 3 个阶段分步实施:
第一阶段可以先升级业务接入层(如 nginx、socket)和 APP 客户端支持 IPv6/IPv4 双栈,后台服务和周边组件做少量的逻辑修改(如用户 IP 地址存储/IP 地址库调用等),业务接入层和后台服务仍然通过 IPv4 通信,以便减少整体 IPv6 改造的工作量。在对外发布时,首先在测试环境充分验证,然后通过 Cname(AAAA+A 记录)的方式按省份按运营商逐步灰度和放量。
第二个阶段逐步放量,灰度更多的省份和运营商直至全量,接入更多的 IPv6 用户。
第三个阶段,改造后台服务和周边组件,业务接入层和后台服务通过 IPv6/IPv4 双栈通信。
在 APP 客户端改造方面可以参考 Happy Eyeballs 的机制进行修改(RFC8305 Happy Eyeballs Version 2: Better Connectivity Using Concurrency),即要保证 IPv6 优先 IPv4 连接,又要确保 IPv6 连接失败的时候迅速切换到 IPv4 通信。另外,如果一些周边组件平台(比如广告平台)还未改造完,但有依赖客户端地址,则可以通过旁路系统将 ipv4 地址也传给服务器端。
2 年前,国家和政府再次吹响 IPv6 的号角。这一次电信运营商、公有云厂商、CDN 厂商、硬件设备商、内容提供商不再观望和犹豫,大家携手前行,守望相助,使得 IPv6 加速落地。我们也倡议更多的企业尽快加入进来,一起构建 IPv6 的生态,推动 IPv6 应用创新。如果企业在 IPv6 改造过程中遇到任何的问题,随时欢迎来和我们交流切磋。
腾讯云目前已经提供从云服务器、负载均衡、内容分发到域名解析、DDoS 防护的一站式 IPv6 解决方案,欢迎大家登录腾讯云官网体验和使用。
嘉宾简介:
秦振华,腾讯云资深产品经理,腾讯云 IPv6 改造项目组成员。目前负责腾讯云网络产品的策划工作,致力于推动 IPv6、DPDK、智能网卡、100G 等下一代网络新技术的落地。(感谢「云加社区」对本次采访的支持,更多腾讯云 IPv6 改造优化方案,可以关注「云加社区」。)
评论 1 条评论