作者:吴灵晓 (盖优)
演进路线
阶段一(2020 年末)
本阶段实现线上所有服务的 IPv6 革新,全面反对 IPv6 双栈的拜访反对;融入阿里云的 IPv6 生态体系,内网环境全面反对 IPv4/IPv6 双栈;晋升用户端侧 IPv6 流量占比,IPv6 流量占比不低于总量的 40%。
- 管:全面完成优酷主站广域网、团体级数据中心外围网络、互联网进口 IPv6 网络革新,IPv6 在多地区多运营商开明。汰换无奈通过降级反对 IPv6 的外围路由器,交换机。建设 CDN 专属资源池,全副选用反对 IPv4/IPv6 的 CDN 节点。引入 IPv6-only 的专线链路,适时升高 IPv6 接入老本;
- 云:全面完成企业互联网域名服务器 IPv6 革新,反对 AAAA 记录和 IPv6 域名解析申请,次要外围业务域名全副配置 A 及 AAAA 记录。应用阿里云 HTTPDNS 服务,反对挪动端的 IPv4/IPv6 双栈及 IPv6-only 环境下的域名解析能力。优酷相干的服务及接口全面上云,新增的 ECS,CDN 等资源全副选用反对 IPv6 区域的资源产品;
- 端:各手机端利用 APP 以及 web 浏览器端全副反对 IPv4/IPv6 双栈及 IPv6-only 环境下的网络通信能力。尝试引入用户性能体验疏导计划,让用户能够直观地体验到 IPv6 带来的收益。端侧测试 IPv6 流量占比不低于总量的 40%;
- 平安:全面完成优酷互联网进口平安防护系统的 IPv6 革新,利用内的平安防护插件全面反对 IPv6 环境,确保整体平安防护能力不降落。建设 IPv6 下独立的监控体系,笼罩根底监控及利用监控,具备和 IPv4 雷同的监控能力。
阶段二(2021-2022 年)
本阶段全面反对 IPv6-only 的拜访反对;全副融入阿里云的 IPv6-only 生态体系,内网环境全面反对 IPv6-only 双栈;IPv6 双栈 +only 比例不低于 80%,IPv6 流量占比不低于总量的 60%。
- 管:全面完成主站机房及 CDN 节点机房的 IPv6 进口革新,包含所有边疆以及热门海内节点。IPv6 流量全面跑在专用链路上,全面实现 IPv6 下的流量收益能力;
- 云:全面完成企业互联网域名服务器 IPv6 革新,反对 AAAA 记录和 IPv6 域名解析申请,所有业务域名全副配置 A 及 AAAA 记录。优酷相干的服务及接口全副应用 IPv6 环境的资源产品,外部网络环境全副切换到 IPv4/IPv6 双栈模式;
- 端:全端全站反对 IPv6-only 拜访,用于体验无差异化。用户产品体验设计上全面偏向 IPv6,疏导用户汰换老设施老终端。IPv6 双栈用户比例不低于 80%,并逐渐疏导 IPv6-only 模式;
- 平安:进一步强化 IPv6 的网络安全能力,全面晋升防护等级,及时发现并解决 IPv6 环境下衍生出的新业务状态的平安挑战。对边缘计算、物联网、车联网、云游戏等新畛域,具备全网同等级别的平安保障能力。
阶段三(2023-2025 年)
本阶段全面完成所有机房及 CDN 节点的革新,全副反对 IPv6-only 的拜访;IPv6-only 比例不低于 80%,IPv6 流量占比不低于总量的 80%。
- 管:全面完成 IPv6-only 革新;
- 云:全副应用云上产品,所有产品都反对 IPv6-only;
- 端:IPv6-only 比例不低于 80%,淘汰双栈模式。对有余 20% 的 IPv4 用户提供最小功能集的降级服务,激励降级到 IPv6-only;
- 平安:进一步强化 IPv6-only 场景下的平安防护、安全监管、劫难备份与复原等能力,晋升 IPv6 环境下娱乐网、物联网、车联网、云计算、云游戏、VR/AI 智能等畛域平安保障能力。
施行指南
网络
机房互联网进口
建设革新核心机房 IPv6 互联网进口
追随阿里团体整体节奏,外围服务所在的核心机房全副实现互联网出的革新,反对 IPv6。在五大城网进口所在地的核心机房,全副齐全 IPv6 革新。优先选用 BGP 对接形式,不便互联网进口域内域外路由协定的统一规划。提前做好 IPv6 降费提速筹备,优先调度 IPv6 流量,进步 IPv6 流量令牌优先级,在等同环境下优先路由。
建设革新 CDN 节点机房 IPv6 互联网进口
由阿里云进行兼顾平安革新地区与工夫节点,业务同步做好按地区引流工作。
革新降级骨干网 VIP+LVS
替换不反对通过降级反对 IPv6 的老旧设施,包含大量的外围路由器,交换机及负载平衡设施。对互联网进口局部的硬件防火墙、入侵检测设施等平安防护设施进行更新,不反对更新进行替换。优化路由配置,路由配置及缓存应用配比,使革新后的 IPv4 网络性能不降落的同时,IPv6 网络性能略优于 IPv4。各平安防护能力达到与 IPv4 进口等同或者优于 IPv4 环境下的防护能力。
革新降级应用服务测试环境
通过隧道形式买通生产机房与测试机房之间的 IPv6 链路,降级企业跳板机代理服务器反对 IPv6,反对 IPv6 环境下登录测试环境满足业务需要。
革新企业园区网络 VPN 零碎
携同阿里企业智能网团队进行 IT 办公网络的革新,接入 IPv6 互联网进口,降级园区内路由器交换机以及 VPN 设施。降级 VPN 客户端,反对 IPv6 环境下的用户近程登录,欠缺近程接入环境 IPv6 平安防护策略,强化 IPv6 平安防护能力。
域名解析 DNS/HTTPDNS 及回落
业务域名网络双栈设计及开启
DNS 外围降级:对业务域名开启多 CNAME 能力。业务域名别离配置 IPv4-only 及 IPv6 双栈的 CNAME 域名,具备权重调节能力。能够按地区按运营商自在地管制 IPv4 及 IPv6 双栈折解析比例。对走 localdns 的 PC/H5 端进行 IPv6 的灰度流量管制,实现 IPv4 协定和 IPv6 协定共存。IPv6->IPv4 的回落能力由浏览器提供,局部过旧的浏览器不反对疾速回落能力。
HTTPDNS 外围降级:HTTPDNS 服务自身部署在 IPv6 环境,具备 IPv6 互联网进口,提供 IPv6 VIP 及域名 AAAA 解析保障。同时,降级 HTTPDNS 服务自身,能够依据申请客户端的网络状态,以及用户申请参数,对申请的域名下发 AAAA 解析记录,确保客户端运行在 IPv6 环境中,能够失常解析到业务域名的 AAAA 记录。
HTTPDNS 的疾速回落:HTTPDNS 在获取到客户端反对 IPv6 时,会把域名的 AAAA 记录及 A 记录同时下发给客户端。当客户端建联 IPv6 不胜利时,会同时开始建设 IPv4 连贯,以确保用户体验无影响。
同时,针对一些非凡的业务域名,例如:没有实现 PC 端降级以及对降级产生的提早无奈容忍。能够去掉权威 DNS 中业务域名的 AAAA 记录,将 AAAA 记录只配置在 HTTPDNS 中,能够满足客户端走 IPv6,PC 端走 IPv4,既满足了 IPv6 的需要又能够让 PC 业务无损。
动静 IPv6 比例控制能力
IPv6 建设初期,建连成功率低于 IPv4,RT 也高于 IPv4,导致业务无奈整体切换到 IPv6。同时,曾经切过去的局部,也可能因为网络变更影响网络品质,须要长期敞开 IPv6。这些切换操作,如果都由运维同学手动操作的话,那么像优酷这样有几十上百个域名的,实现一次操作须要花上 1 - 2 天的工夫,时率上不可承受。因为须要建设一套蕴含 DNS 以及 HTTPDNS 的域名切换零碎,能够批量切换域名及 HTTPDNS 的配置,做到 PC 和挪动端的业务同步。同时,切换时要具备弹性能力,IPv6 从 100% 降到 0%,不能一下子切掉,须要 90%-80%-70%—-0% 执行,确保不会给网络设备和服务器以及网络进口带来跳变。同时,须要获取业务成功率的监控数据,如果切换过程中,成功率呈现上涨的话,零碎可能停止切换或者主动回滚到上一级比例,发出报警让运维同学染指排查。
网络品质数据获取设计
客户端埋点上报反对 IPv6
在手机客户端以及 PC 端中,通常会应用埋点技术将端侧运行数据及谬误状况,上报至采集服务器。大部分的数据上报中,并不会被动将客户端的 IPv4 及 IPv6 都带上,导致服务端并没有牢靠的数据起源去剖析 IPv6 下的业务状况。所以,须要革新采集服务端,反对和客户端进行 IPv6 建连,确保在 IPv6 双栈及 IPv6-only 环境下埋点数据能够失常上报。同时,在 app 启动,用户鉴权,网络变动等场景产生时,被动从服务端的应答后果中取到客户端的进口 IP,并把这些信息存储在本地缓存中,在埋点上报时带上 IP 地址。这样采集端就能够收集到客户端的实在进口 IP,如果的双栈的话,还能够同时收集到 IPv4,IPv6 地址并主动关联。从根本上解决了双栈环境时,服务端无奈同时获取 IPv4,IPv6 的问题,有助于网络品质数据分析。
资源管理、运维零碎革新
实现 IPv4,IPv6 资源辨别治理能力
随着 IPv6 深刻革新及政策反对,对应用 IPv6 环境的资源设施,流量带宽,调度引流等,将呈现区别于 IPv4 环境的应用场景和计量计费规定。缓缓地 IPv6 将会在某些利用场景上呈现老本上的劣势,而现有的资源管理零碎上新建网络管理、利用性能治理、认证服务器、DNS/DHCP 等撑持零碎举荐采纳 IPv6 单栈建设,存量撑持零碎举荐进行双栈化革新,具备对 IPv6 设施、利用或用户的基于机器学习、常识图谱、神经网络等 AI 加持的智能运维、终端辨认、利用辨认、智能调优、智能漫游、大数据安全剖析等治理能力,待网元设施、利用或用户实现 IPv6 单栈革新后,撑持零碎需同步实现 IPv6 单栈切换。
实现 IPv6 环境独立运维能力
革新并开启运维零碎双栈协定,使零碎具备在 IPv6 网络环境下对双栈服务器、网络设备、利用容器、监控采集、数据库缓存中间件、配置近程推送及用户数据的治理能力。对于临时不反对 IPv6 的零碎及设施,提供 NAT 地址转换、降级 IPv4 等形式,来进行治理,待革新实现上线后,逐渐开启 IPv6 能力。
利用与服务
接口服务及 PC 端页面
新建利用
新建利用的部署,选用反对 IPv6 的主站机房资源或者阿里云地区,机房进口到负载平衡应用双栈规范。
- Web 容器环境:选用反对 IPv6 协定的最新版本 Tengine,装置 toa 模块,反对透传 IPv6 头信息至应用服务。
- 开发环境及 OS 零碎:利用的开发编译选用反对 IPv6 协定的操作系统,如 Windows server 2003 以上版本、MAC OS 10 当前,以及 Linux 零碎的 CentOS 7 或者 Alios 7U 等。
- 测试环境:办公网环境与测试机房通过 IPv6 专线买通,办公网提供 IPv6 的无线 / 有线接入点,同时保留了原来的 IPv4 接入点。开发同学能够接入 IPv6 接入点进行日常开发和办公事务处理,须要拜访不反对 IPv6 的公网服务时,能够切换到 IPv4 网络环境。
- 业务场景 1 IP 地址库:应用 IP 地址库服务对用户归属地进行定位判断解决的,须要降级到最新版本的 IP 地址库数据服务,并具备定期降级能力。确保 IPv6 地区归属判断的准确性。
- 业务场景 2 IP 地址格局对立:因为 IPv6 地址能够略写的起因,导致间接按字符串进行判断的话,会把有略写和无略写的 IPv6 判断成不是一个 IP 地址,从而导致业务解决呈现偏差。同时,局部浏览器申请会主动略写 IPv6 地址,JAVA 网络包,CURL 等,不会被动略写 IPv6 地址,这会增长服务端解决的复杂性,所以须要前置一个公共解决,将所有的 IPv6 地址都通过公共解决进行标准化,对立业务解决逻辑,缩小业务间不统一问题。
- 业务场景 3 IP 地址保留:个别服务端日志落库,用户信息落库等惯例解决中,会把用户 IP 保留到数据库等存储中,对于严格限度数据类型和长度的数据库,须要根据存储型号进行定义,原来的 IPv4 只须要 32 位字符串或者长整型数据就能够保留,而 IPv6 须要扩充到 128 位,同时长整型也存不下,须要高 64 位和低 64 位拆分存储等形式进行解决。
- 业务场景 3 接口传递:某些应用 http get 形式将多个用户 IP 通过参数模式传递时,须要留神 get 的 1024B 的下限,原来传递 IPv6 时 10 个用户一起传递没有问题,但当初改用 IPv6 时 10 个用户的 IP 长度就会超过 get 下限,须要改用 post 或者调低下限。
- 业务场景 4 存在 IP 地址的 hardcopy:不能把上下游调用接口的 IP 地址间接写在代码中或者配置文件中,因为上下游实现 IPv6 革新的工夫并不完全一致,上线工夫也不统一,会导致呈现线上故障。须要全副改为域名形式调用。
- 客户端 IP 进口地址的获得形式:在双栈环境中,同一申请,你只能从申请头部中获取到 IPv4 IPv6 地址中的一个,不可能两个都获取。如果心愿同时获取 IPv4 或者 IPv6 地址,那么只能抉择反复申请,或者是通过参数将客户端地址传上来。须要扩大申请字段,将 v4,v6 分成两个字段提交,同时服务端也须要做接管革新解决。
- 日志剖析逻辑:家喻户晓,为了不便日志剖析和拆解,所有的业务日志都会定义一个对立的格局,日志输了的各个字段之间对立应用 || 等分隔符分隔或者按字段长度固定。应用分隔符的,须要思考到不能再应用: 了,因为 IPv6 中带了这个符号。应用固定长度分隔的,也须要思考到对 IP 地址不能再固定 32 位长度了,要调整到 128 位,同时要向下兼容 IPv4,IPv4 也要补齐到 128 位。
- 第三方库的更新:选用反对 IPv6 协定的第三方 SDK 版本,如果三方库不再更新反对 IPv6,那就须要寻找置换计划。
- 平安部署环境:接入层平安控件,限流插件,ACL 白名单插件等利用平安服务应反对 IPv6 协定。
- 降级能力:须要从业务逻辑上原生思考 IPv6 网络不可用时,如何降级至 IPv4 来持续提供服务。
存量利用革新
存量利用可进行代码 IPv6 重构开发或双栈反对接口开发。对于不反对 IPv6 革新或者临时无奈革新的,须要独自划定小集群区域,来提供 IPv4-only 的服务能力。
- 接入层革新:制订 IPv6 降级打算,申请 IPv6 的 VIP,将负载平衡的 RS 指向新的 IPv6 接入层,确保 IPv4 与 IPv6 的流量隔离。
- 根底镜像降级:原业务应用过旧,版本过低的 OS 镜像打包时,须要降级到最新反对 IPv6 的根底镜像,并用最新的 OS 进行编辑打包。
- 业务零碎革新:根据上述新建利用的业务场景梳理内容,对存量业务逻辑进行排查,存在上述场景的须要进行业务代码的重构,业务逻辑的批改,使存量业务满足 IPv6 环境下运行需要。
- 替换 Web 容器环境:降级最新版本 Tengine,降级最新 toa 模块,反对透传 IPv6 头信息至应用服务。
- 降级开发环境及 OS 零碎:利用的开发编译选用反对 IPv6 协定的操作系统,如 Windows server 2003 以上版本、MAC OS 10 当前,以及 Linux 零碎的 CentOS 7 或者 Alios 7U 等。
进行 IPv6 测试环境下的回归测试
存量利用个别都通过严格的 IPv4 环境下测试,但不能保障在 IPv6 下肯定是没有问题。所以须要在 IPv6 的测试环境下,对存量利用以及新建利用进行回归测试。包含对所有有改变性能点的全量测试,以及没有改变但属于外围性能点的覆盖性测试。
验收
利用革新实现后,进行线上灰度验收,依照国家网站 / 利用 IPv6 降级革新验收督查指标相干要求进行测试验证,在域名 IPv6 反对度、页面 IPv6 可达性、业务 IPv6 反对度、利用服务质量、IPv6 平安防护等方面发展测试。
挪动终端及 APP
Windows/mac 端 IKU 利用
接入 HTTPDNS 服务,在客户端集成 HTTPDNS 服务 SDK 包,IKU 利用具备手机挪动客户端雷同的 IPv6 引流灰度能力。替换 IKU 利用端中的网络包,具备 IPv6 的网络通信能力。开发在 IPv6 弱网条件下的降级能力,在用户能够承受的延迟时间内,切换到 IPv4 通信,保障用户体验无损。逐渐敞开低 OS 版本的应用许可,敞开低版本利用的上线应用,推动用户端进行 OS 或者设施的降级,进步 IPv6 使用率。
安卓 /Iphone/Ipad 手机客户端
这块占比最大,同时用户设施类型也是最丰盛的,须要通过一直的版本更新,来升高旧版本的占有率,达到晋升 IPv6 使用率的指标。
- 终端 IPv6 反对度评估:将装置优酷 APP 的终端依照机型,OS 版本,性能,IPv6 下通信能力分类。对新上市机型进行逐台验证,别离进行 IPv6 反对度评估。
- 客户端 APP 根底套件降级:根底网络包 NetworkSDK 等团体二方包进行降级,实现反对 IPv6 的协定栈解析以及根底降级能力。应用第三方网络库的,例如:libcurl,须要降级到最新版本,同时通过业务逻辑补救上缺失的主动降级能力。
- 降级 IP 地址:局部 APP 中集成有小型的 IP 地址库,因为数据包大小的问题,基本上小型 IP 库都没有蕴含 IPv6 的数据。须要从新评估 IP 库数据包大小与 APP 整体包大小的关系,如果集成反对 IPv6 IP 库数据包过大的话,那须要通过服务端判断的形式来代替本地的 IP 库。
- 端侧埋点服务的革新:埋点的失常上报,是整体评估 IPv6 下业务可用性和用户体验一致性保障的前提。特地是在弱网、断网、降级回落的状况下,数据能够失常上报。IPv6 下埋点是否正确检测出网络环境的变动,网络切换导致的 RT 变动等,须要依据业务逻辑和用户操作场景,进行埋点的革新。
大屏 OTT 端
大屏端的硬件汰换率低于手机端,大量不反对 IPv6 的老设施还在持续应用着。大屏端 APP 应用的基础架构须要和安卓手机端进行对立,在 APP 层面上反对 IPv6 网络环境下的失常应用,参考上述安卓手机端进行革新。对于硬件局部,能通过降级 OS 固件形式来反对 IPv6 的,要踊跃推动硬件厂商进行并推送更新。无奈通过降级形式来反对,思考到硬件的整体应用周期及寿命,逐渐揭示更新。
云及 CDN
云产品的选型
新建场景
跟据阿里云的 IPv6 革新打算,选用曾经实现改区域的云产品,应用业务原生反对 IPv6 环境。
存量场景
因为云产品反对 IPv6 后须要对原产品进行降级或者置换后,能力开启 IPv6 反对,所以对于存量应用的云产品,有一个迁徙的过程。须要把流量迁到曾经革新实现的地区后,对原有地区的云平台进行双栈化革新,包含 ECS,ENV 容器集群控制中心、容器编排零碎、VPC/ 虚构网关、负载平衡等进行 IPv6 反对革新,开释原有资源从新申请新的 IPv6 资源,来疾速获取 IPv6 反对能力。革新实现后再把流量逐渐切回,开释掉长期资源。
CDN 的 IPv6 反对
一般减速域名
根据阿里云 CDN 革新打算,将各地区各运营商曾经革新实现的 IPv6 CDN 节点退出到调度域。调度算法须要反对 IPv6 VIP,当区域内 IPv6 节点资源有余或者没有 IPv6 节点时,是进行跨省跨区域调度,还是降级 IPv4。从用户体验角度来说,IPv6 资源有余时降级 IPv4 是对用户没什么影响的。也能够通过计算反对 IPv6 的 CDN 带宽与总带宽的比例,并确定各地区的 IPv6 引流比例。阿里云控制台开启 IPv6 性能,并配置图片域名的灰度比例。从流量入口上就管制处 IPv6 的灰度总量,确保不会呈现 IPv6 资源有余或者无资源可调度的问题。
302 调度域名
302 域名跳转时,会有前述 IPv6 地址缩写的问题,浏览器拜访时会主动用缩写后的 IPv6 地址跳转,APP 内应用 libcurl 等网络库时,并不会触发主动缩写,以获取到的 IPv6 地址原样进行申请。须要 302 节点配置缩写前和缩写后两套 IPv6 的 VIP,确保任何场景下都能够跳转。在 HTTPS 的 VIP 证书中,须要加签 IPv6 的 VIP,确保 https 下也能够失常跳转。
免流域名
免流调度域须要调配 IPv6 的 VIP 组,将须要向运营商报备的免流节点 IP 都划入进去,并且具备 IPv6 性能的开启和敞开能力,确保在运营商报备实现前不启用 IPv6 节点,运营商报务实现后又能及时启用节点,避免出现免流生效或者免流调度域水位过高的问题。
平安
IPv6 网络安全整体准则:配合 IPv6 演进的不同阶段,明确网络、服务、利用 app 以及新业务场景下,IPv6 网络安全的能力范畴和保障计划,强化 IPv6 平安防护能力以及多端共享、边缘计算、云游戏、物联网等新型业务场景下的平安防护能力。
限流能力
限流能力须要具备 IPv4/IPv6 双栈场景下的利用能力,可能对总流量进行限度,也能够别离对 IPv4,IPv6 进行限度。具备在零碎能力饱和的状况下,怎么样优先让 IPv6 的申请能力尽快失去解决并响应,保障 IPv6 优先的用户体验。
ACL 黑白名单及安全策略
确保 IPv6 平安体系防护的完整性与高效性,对防火墙、入侵检测、行为审计、流量荡涤等网络安全设施,进行对立降级以反对 IPv6 环境下的失常工作。随着 IPv6 的倒退,IPv6 的地址数量将远远超过 IPv4,现有的 ACL 黑白名单容量将无奈满足,须要提前进行扩容革新。对于 IPv6 平安防护能力存在危险的节点,应进行网络安全设施降级或替换。从利用业务层面以及平安治理层面进行 IPv6 安全策略制订与配置,保障 IPv6 的安全策略蕴含了所有的 IPv4 策略。
IPv6+ 翻新
IPv6+5G
随着挪动互联网的倒退,越来越多的设施接入到挪动网络中,从某种程度上来讲,5G 和 IPv6 是相辅相成的,指标是统一的,都是尽可能将更多的设施互联,达到万物互联的境界。IPv6 解决了万物互联上设施数量受限的问题,因为地址数量有余,IPv4 可能无奈满足每一个人都接入 10 设施。接入 IPv6 的话,别说每个人 10 个设施,10 亿个也没有问题。同时,5G 是解决了万物互联品质上的问题,高速率低提早是 5G 网络的外围劣势。量和质的问题,被 IPv6+5G 一起给解决了,挪动设施的需要爆炸式增长的时代还会不到来吗?5G 的技术利用失去了极大的满足,当老本降至适合水平时,IPv6+5G 能够代替 wifi,不再须要 NAT 地址转换,不须要切换流量。只有平安能力满足,你和世界都是实时联通的。
IPv6+P2P 分享
能够设想,今后家中每个带电的设施都会成为计算中心,娱乐中心,看优酷将不再受限于客户端设施,走到哪里看到哪里,每个人都会是内容的消费者同时也会是内容的生产者,片段化的工夫可能最正当的利用,最大水平解放双手,随时随地享受娱乐盛宴。
那么这就代表着一个终端既是服务提供方,又是服务生产方,既要为其它设施提供申请入口,又要被动申请其它服务。现有 IPv4+NAT 计划,限定了 P2P 分享的范畴,最终能共享到的资源及数据很少,IPv6 下现实状态是全网都不再须要 NAT,任何设施不须要做地址转换都能够间接申请到网内的所有设施。这样就极大的推展了 P2P 可达范畴,资源及数据简直能够全笼罩。我为人人,人人为我,全面合乎咱们的政治近景。
关注【阿里巴巴挪动技术】微信公众号,每周 3 篇挪动技术实际 & 干货给你思考!