一、案例概述

1.1背景

2017年11月,中办、国办印发了《推进互联网协议第六版(IPv6)规模部署行动计划》,明确了未来五到十年的总体目标、路线、时间以及重点任务,在当前国际竞争的大环境下,深入推进IPv6规模部署是提升我国信息化水平、互联网安全、产品创新发展的重要举措之一。作为国内跨境电商行业的应用,提升IPv6的用户占比和网络流量占比,积极响应网络强国战略,做到技术适度超前,对于考拉海购(以下简称”考拉“)来说,具有重要的意义。

1.2目标

考拉整体IPv6项目分成三步走,包括用户端IPv4/IPv6双栈支持,用户端IPv6-only升级,机房内IPv6-only改造。

用户端IPv4/IPv6双栈改造:实现应用快速对外服务,以web/App请求服务为核心,实现App端到服务端的IPv6支持,并且以此推进接入层、图片、客户端网络库、CDN等核心服务产品优先完成IPv6支持改造,为将来的全网IPv6支持打好基础。

用户端IPv6-only支持:当核心链路全部改造完成,对剩余所有的服务都进行IPv6支持改造。所有的用户域名都配置AAAA记录,优先IPv6解析。新服务默认采用v6开发上线。

内部IPv6支持:IDC内部全部实现IPv6支持,不再新增内网IPv4地址,全面使用IPv6原生服务,实现从用户端到内部服务端全链路的IPv6。

二、做法与经验

2.1基于云产品的v6架构总体规划

图2-1考拉IPv6双栈网络示意图

从网络架构示意图看,考拉IPv6双栈改造的工作主要分为两部分:端到端(阿里云SLB和阿里云CDN)的IPv6能力支持;应用集群侧的改造工作。

端到端的改造工作包括:客户端HTTPDNS支持IPv6和IPv4的双栈能力;localdns核心域名配置AAAA解析;阿里云CDN全量启用IPv6支持。

应用集群侧的主要改造工作包括:IPv6地址的识别;IPv6测试环境的搭建;应用集群的IPv6存储应急安全防护。

根据上面的整体架构设计,考拉制定了如图2-2的改造计划。

图2-2IPv6改造计划

2.2客户端改造

第一,App端IOS和安卓,集成阿里云的HTTPDNS产品,使得底层网络库具备可控的DNS解析能力。并且在端上实现了网络链路的检测能力,优先使用IPv6地址与服务端连接,在网络不稳定的情况下,可以降级到IPv4网络。可在确保IPv6流量的前提下,同时保障整体App的网络连通能力。

第二,阿里云CDN域名,全量开启IPv6支持。阿里云的CDN产品经过比较长期的发展,在业界已经率先支持了IPv6接入的能力,并且经过了比较长时间的公有云用户的验证。因此考拉在CDN部分的改造比较快速。先梳理出考拉所有的CDN域名,大约20多个域名。然后通过阿里云控制台的流量分析,从小流量域名到大流量域名分批进行灰度测试。最终结合端上的连接成功率和CDN控制台的访问量监控,在2个月不到的时间中,完成全部20多个CDN域名的灰度工作。流量占比迅速增长到了50%以上。图2-3就是阿里云CDN控制台的流量统计能力。

图2-3阿里云CDN流量统计

第三,核心业务域名配置AAAA记录。根据线上各个域名的访问量监控,我们梳理出考拉20个核心域名和50个非核心域名。分为3个批次,进行AAAA记录的配置。编制了专门的配置操作手册,成立了专门的域名配置小组,来提高AAAA记录配置的准确性和安全性。

2.3服务侧改造

第一,IPv6地址库。地址库对互联网应用来说是比较关键的一块,包括我们各个地区的流量统计,广告投放效果评估等等场景,都需要依赖准确的IP地址库。IPv4经过长期的发展,已经有一套非常成熟的IP地址库。但是IPv6由于IP地址的剧增,对地址库识别带来了很大的挑战。我们依托阿里集团的地址库团队,通过不断校准和纠正,细化数据精度,从省级到市级到区级,最后达到了比较高的准确率。

第二,IPv6的开发测试环境。要测试IPv6环境下各个应用是否能完美支持IPv6,那么IPv6的测试环境必不可少。通过集团IT部门的大力支持,在考拉的办公区域内部署了IPv6的双栈WIFI接入点,将通过WIFI接入的业务测试环境、预发环境进行打通,实现了本地调度以及远程调试能力。保证考拉办公区域的测试可以正常顺利进行。

第三,应用集群的IPv6存储应急安全防护。在服务端场景,会有很多存储IP地址的场景,比如记录用户下单的IP地址等。以前IPv4只有32位,因此数据库存储的长度设置较短,无法存储IPv6的地址。因此服务端要做的第一件事情,就是梳理所有存储IP地址的场景,增加对应的存储长度。同时也有很多利用IP地址进行计算的场景,比如安全防控的业务,需要根据IP地址进行计算,我们依托阿里集团的安全防控团队,推进集团的安全防控产品提升支持基于IPv6的计算能力。

通过上面基础方案的实施,我们从技术层面上完成了考拉从IPv4单栈向IPv4/IPv6双栈过渡的工作,但是如何在升级过程中,保障用户体验的一致性,也给我们带来了挑战。为此,我们增加了对IPv6建连的监控能力,实现数据监控上报及自动化测试保障。支持IPv4/IPv6网络环境下,App的数据日志上报,包括连接失败的用户IP及服务侧域名IP。图2-4就是我们监控IPv6建连成功率的监控。

图2-4IPv6监控

三、成效与亮点

通过CDN的接入,快速提升端侧的流量占比。在2021年4月份开启大部分CDN域名IPv6功能的情况下,流量占比迅速提升到50%以上。