跃入下一代互联网-淘宝IPv6实践

今年天猫双11,阿里巴巴向IPv6的全面转型拉开了序幕,目前已有数千万用户通过IPv6网络访问淘宝,用户体验实现了无缝切换。这也是IPv6技术在国内首次大规模应用。这次应用不仅实现了端-管-云-应用的全线贯穿,同时也为中国互联网向IPv6的大规模迁移积累了宝贵的实战经验。本文将详细分享淘宝在IPv6的实践。


  1     双11首秀

2018年的双11,除了购物体验更丝滑,交易额又创新高,还有一个重大变化:双11期间手机淘宝采用IPv6技术支撑核心业务,灰度用户覆盖全国多个省份,系统表现平稳,用户体验更佳。

之后手机淘宝的IPv6放量持续加速,12月6日阿里巴巴宣布已全面应用下一代互联网连接协议(简称IPv6),手机淘宝IPv6月活超2000万。


640?wx_fmt=png

  2     项目背景

1.政策因素:

2017-11-26 中共中央办公厅 国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》。


2018-05-03 工业和信息化部关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》的通知,要求2018年底完成活跃用户规模排名前10位的自营移动互联网应用(APP)及相应系统服务器IPv6升级改造。

2.技术因素:

此前IPv4已经面临全球地址枯竭等问题,加上国家在大力推动运营商快速提升IPv6活跃用户数量,因此淘宝业务在18年自然年底前支持IPv6将变得尤为重要,一方面是响应国家强网战略要求,另一方面是在国内IPv6用户的培育期抢占有力身位,巩固阿里在新技术领域的竞争力。

  3     总体计划

IPv6项目是一项偏技术前瞻性研发项目,业务价值将随着国内IPv6用户群的增加日益凸显。项目包含支持公网v6访问(2018年底)、IDC v4/v6双栈、IDC IPv6-Only三个阶段。

其中第一阶段淘宝时间节奏:

640?wx_fmt=png

项目关联的基础网络改造也是同时进行的,前期实施过程遇到比较尴尬的情况就是某个基础服或者业务系统的代码改造完成了,但是没有IPv6的网络环境可以测试验证,从测试环境到预发环境再到正式环境,对项目进度阻塞比较严重。

  4     改造方案

1.改造方案-移动端

移动端的优势是从网络库、调度系统、到接入层都是我们高度可控的,可以根据项目需求定制功能,总体原则是支持IPv6访问的同时控制风险,一旦v6网络连接失败要能回退到v4。

移动端架构有个风险:为了提升用户体验,充分利用HTTP/2多路复用,手淘后端应用域名是高度收敛的,因此在灰度阶段面临各BU业务必须同时参与的风险。

640?wx_fmt=png

手淘调度:基于一定的策略对支持双栈网络的客户端下发IPv6地址,具体策略在灰度方案部分阐述。

手淘网络库:判断当前客户端是否处于双栈网络,对于v6连接失败的情况要有回退v4的能力。

LVS/SLB:提供IPv6的VIP,NAT64,与后端RS维持v4通信。

2.改造方案-PC端

PC端劣势是浏览器行为完全不可控,并且也没有暴露api给前端获取相关信息。优势是各应用使用不同的域名可以单独进行灰度引流。

640?wx_fmt=png

浏览器:主流浏览器支持双栈,在DNS阶段同时发起A和AAAA请求,如果收到A和AAAA应答则v6优先,在v6连接失败的情况下有回退v4的能力。具体细节参考 Happy Eyeballs https://tools.ietf.org/html/rfc6555

LocalDNS:无需改造。

权威DNS:无需改造,支持配置AAAA记录。

LVS/SLB:提供IPv6的VIP,NAT64,与后端RS维持v4通信。

3.改造方案-业务系统

业务系统使用IP地址的场景归类:

a.各类IPv4地址库

通过IP地址查询地域信息,用于区域限售、区域定投相关业务,需要升级到IPv6地址库。

b.透传IP给下游

推动下游系统改造支持。

c.安全产品

和IP地址相关的各种安全产品改造,业务升级二方包/客户端。

d.IP地址存储

MySQL 建议字段类型 VARBINARY(16)

  5     监控方案

1.监控方案-移动端

a.手淘请求AMDC时上报的各地域分运营商双栈覆盖情况

对于后续灰度具有重要意义,避免选择双栈覆盖率较低的地域运营商,因为存在双栈用户数量跳变的风险。

b.手淘拨测各地域分运营商网络质量分析

对连接成功率低、建连耗时长的case反馈给公司网络同学和运营商排查。对于后续灰度具有重要意义,避免选择网络质量差的地域运营商。

c.实时监控大盘

端侧IPv6监控埋点数据上报,独立于v4采样率(前期灰度量较小,为了获取足够的样本需要设置较高的采样率),实时监控IPv6用户的性能数据。

2.监控方案-接入层

接入层覆盖与IPv4同等粒度的监控维度。

3.监控方案-PC端

当前PC端的性能监控方案主要是基于js采集浏览器performance.timing接口数据上报汇总计算实现的,因为浏览器并没有对js暴露当前是基于v4还是v6建立的连接,所以单纯通过js是无法实现区分v4和v6的性能监控。


640?wx_fmt=png


我们制定了一个通过后端应用tengine配合增加一个不影响页面展示v6访问特征,js通过判断特征实现区分v4和v6访问,并且为v6设置单独的采样率,最终生成v6独立的性能报表。


  6     灰度方案

1.灰度方案-PC端

640?wx_fmt=png方案核心:权威DNS开发一个支持权重的多域名CNAME功能,将特定线路(比如北京教育网)的域名按照一定权重CNAME到双栈域名,其它地域保持CNAME到单栈域名不变。从而实现对某一地域+运营商按照一定概率返回AAAA记录。只要线路对应的LocalDNS数量足够多,理论上最终业务的IPv6流量曲线就基本可以符合权重百分比。

2.灰度方案-移动端

在前面改造方案中已经说明,移动端业务共用同一个域名和连接,因此无法实现PC端那种分业务进行灰度,所以我们从控制灰度用户的角度进行设计。


640?wx_fmt=png



方案核心:移动调度提供两种灰度能力:

1.基于设备id白名单 (用于前期固定设备少量灰度) 2.基于地域+运营商+百分比

挑选灰度设备以及灰度地域运营商时,基于手淘的双栈覆盖率数据和运营商网络质量数据,双栈覆盖率低的地域存在未来流量跳变的风险,网络质量差的地域会影响到用户体验。

  7     主要挑战


1.电信、联通、移动免流卡问题

=> 紧急向电信、联通、移动提交IPv6免流网段,同时根据各运营商的进度调整灰度引流策略。

2.广域网质量问题

=> 基于手淘拨测数据生成全网IPv6质量地图,挑选网络质量较好的地域用户进行灰度引流,同时将网络质量较差的地域通过多种渠道反馈给运营商排查优化。

3.端到端路径MTU偏小导致联通性问题

=>短期解决办调整接入端MTU为最小值1280(IPv6 RFC规范MTU下限值),发现中间网络节点MTU小于1280时,进行网络报障等办法。长远来看需要实现端到端路径MTU探测。

4.IPv6地址库准确率问题

=> 阿里内部有一套系统负责持续收集完善IPv6地址库。

  8     总结



淘宝IPv6项目确定亿级用户支撑目标,整合集团网络、内核、容器、安全、接入、调度等各个团队力量,以及整个电商的业务,完成网络基础设施构建,打通v6到v4的无缝切换;客户端高效的识别与容灾切换;构建强大的调度灰度能力;以及全局的数据化运行体系,挖掘沉淀了全网IPv6网络体验数据;在行业内是率先落地,并把能力输出到优酷、高德,形成IPv6落地规范,促进行业技术升级。国内IPv6应用生态才刚起步,未来几年我们仍将持续投入。


关于作者:

周辉(飘零)淘宝技术部运维专家,主导淘宝IPv6升级项目,关注应用运维、基础架构升级和性能优化领域。

推荐阅读:

阿里巴巴推动中国IPv6技术大规模应用,布局下一代互联网

全面异步化:淘宝反应式架构升级探索

AI挖掘优质淘宝买家秀 再也不用担心辣眼睛了

640?wx_fmt=jpeg

扫描二维码

关注淘宝技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值