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字节,而IPv6地址长度为128字节。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改造可以总体分为三个方面:
腾讯云在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改造优化方案,可以关注「云加社区」。)
领取专属 10元无门槛券
私享最新 技术干货