一、概述

2017年底,中共中央办公厅、国务院办公厅联合印发《推进互联网协议第六版(IPv6)规模部署行动计划》,明确提出“用5到10年时间,形成下一代互联网自主技术体系和产业生态,建成全球最大规模的IPv6商业应用网络,实现下一代互联网在经济社会各领域深度融合应用,成为全球下一代互联网发展的重要主导力量”的目标。随后中央网信办、工业和信息化部连续三年发文推动IPv6改造工作,鼓励和支持国内用户量排名前100位的商业网站及应用支持IPv6接入。

二、案例描述

1、案例介绍

QQ邮箱自2002年上线,其依托于腾讯集团及腾讯云强大的基础网络能力,向用户提供安全、稳定、快速、便捷的电子服务。自推出服务以来,因其简洁易用,良好的用户体验,深受广大用户喜爱,目前已成为中国大陆最受欢迎的免费邮箱服务产品。

2、架构设计

图1 QQ邮箱总体架构图

1)GSLB提供DNS以及httpdns解析,为用户返回最近的接入点。

2)TGW作为统一接入网关,实现多网统一接入以及自动负载均衡。

3)PROXY提供逻辑层的功能路由。

4)LOGIC提供邮箱各项功能及服务。

3、实施方案

QQ邮箱的改造主要包括以下几个部分:支持AAAA记录、双栈改造、客户端改造、PROXY及LOGIC改造,其中GSLB作为最基础的流量调度,是此次改造最基础的部分。

3.1 支持AAAA记录

用户访问互联网的服务一般都是使用域名,在IPv6到来的时代,如何将域名转换成对应的IPv6地址,DNS的AAAA记录发挥着重要作用。

图2 用户请求域名AAAA记录示意图

AAAA解析实际上并不能完全实现IPv6时代业务流量的精准调度,此时的GSLB权威还是只支持IPv4链路的请求,对于用户使用IPv6链路过来的请求到达不了GSLB的权威服务器,那么接下来需要做的就是对GSLB进行双栈改造。

3.2 双栈改造

双栈改造主要涉及到两个部分,一个是GSLB权威双栈的开发,另一个则是GSLB权威双栈的灰度上线。

3.2.1 开发部分

图3 GSLB权威示意图

对于GSLB权威双栈的开发,主要分三步走:数据的同步、双栈协议的实现、域名的解析。

1)地址库同步

在支持双栈链路之后,用户会通过IPv6链路访问权威服务器,那么IPv6地址库也就成了GSLB必不可少的一环。

2)双栈协议的实现

GSLB权威服务基于DPDK实现,摒弃了Linux内核协议栈,那么在处理双栈链路请求的时候,需要自己处理IPv4以及IPv6协议,保证解析的高效和稳定。

3)域名解析

对于用户的域名请求,根据用户请求的IP地址或者携带的IP地址(ECS),判断IP地址的归属,然后根据IP对应的地址库(IPv4查找IPv4的地址库,IPv6则查找IPv6的地址库),查找对应的国家-省份-运营商信息,返回该域名最匹配的RR记录,实现双栈的流量调度。

3.2.2 灰度部分

初版IPv6地址库通过手工方式生成完毕,业务侧需求高涨,在此背景下,灰度上量成了最迫切的需求,如何保证双栈权威的解析系统可以正常使用,同时也保证灰度过程全程可控呢?

此时,通过上线一套独立的双栈权威解析系统,新建testipv6.com域名后缀授权到双栈权威,该后缀域名在控制面可以通过日常域名操作平台进行域名的增删改查操作,解析面通过支持双栈地址库同步的agent同步IPv4和IPv6地址库到权威服务器,对于存量业务,不更改接入域名的前提,建议业务通过小流量地区+运营商cname到双栈权威域名的方式进行域名解析。

3.3 客户端的改造

客户端改造的重点在于,用户双栈环境下,优先使用IPv6链路,当IPv6链路不通或者质量不好的情况下,可以尽快切到IPv4链路,保障客户端使用体验。

1)双栈下IPv6优先

客户端的改造重点在于保障用户接入质量的前提下完成双栈优先IPv6的改造要求,以及在IPv6单栈情况下可以直接访问接入通道。

2)失败回退

当前支持IPv6的用户,基本都为双栈用户,因此可以基于测速逻辑、失败重试、缓存最优接入IP等方式实现出现错误后回退到IPv4。

3)灰度可控

支持基于用户id、省份/运营商的灰度能力,保证质量可控。

3.4 PROXY及逻辑服务改造

邮箱服务历史久远,邮箱服务中,有大量基于IP地址的逻辑,因此改造过程几乎涉及邮箱服务的所有功能模块。

改造的步骤也是先进行后端的逻辑改造,首先完成反垃圾基础频率服务、邮件身份识别等改造。同时反垃圾识别算法进行升级,避免IPv6流量进入后,因IP资源泛滥导致垃圾邮件漏过。

其次完成PROXY的IPv6地址传递,LOGIC层IP的处理以及日志记录等一系列和IP相关的逻辑。

4、安全及可靠性

反垃圾能力,是保证邮件服务基础体验的核心,在改造中,针对IPv6,我们主要做了以下准备:

1)IPv6地址库,用于判断用户登录地、运营商做异常登录判断;

2)IPv6属性库,建议基于IPv6地址的画像,积累IPv6的行为属性特征、邮件行为特征;

3)IPv6聚集算法,在IPv4时代,我们可以通过IPC来进行聚集。IPv6时代,我们根据IPv6的分配原则以及业务上的特征,在不同的场景使用不同的聚类算法。

三、实施效果

经过多方面的改造升级,目前QQ邮箱已全面上线,全部功能支持IPv6协议访问。对所有用户进行了IPv6放量支持,只要用户网络环境及终端设备支持IPv6协议,在使用QQ邮箱时即可通过IPv6协议来访问。在双栈环境下,IPv6流量占比约占87%。