概述
大背景:随着移动端的快速扩张,互联网的规模越来越广阔,早于2011年耗尽的IPV4地址越来越无法满足互联网的网络地址需求,IPV6地址推广进入快车道。实际情况:近期公司应上级部门邀请对公司的主域名升级改造以支持IPV6地址。事情趟过了本文就简单介绍验证支持方案的一些思考。
网络切换方案
1. 服务架构示意图
公司整体环境服务部署在阿里云上,并接入阿里云的DDOS高防服务,所有业务请求流量均通过高防进入,所以运维方案均围绕着DDOS服务做IPV6地址支持。
服务架构图表示如下
2. 网络切换执行方案
2.1 方案制定
主要思路:
a. 需要同时支持IPV4和IPV6双协议
b. 梳理业务逻辑中使用IP的场景是否存在上下游传递或规则运算
c. 数据库存储字段长度是否支持128位
d. 客户端DNS解析支持IPV6地址
方案:
a. 运维打开DDOS层的IPV6协议支持开关,并保证将解析后的V6地址放入指定的“x-forward-for”字段中
b. 各业务开发梳理使用IP的场景,并确认存储IP的数据库字段长度是否需要扩容
c. DBA根据梳理结果扩容存储字段
d. 测试回归相关场景,确认是否满足需求
测试校验
1. 镜像环境校验
主要校验切换方案的可行性、业务改造点的正确性、业务流程的通畅性、服务性能的稳定性
1.1 测试范围
验证涉及使用IP的场景、数据库IP地址是否存储正常、下游传递的IP是否正确
1.2 校验点
在测试机浏览器中输入 "http://test-ipv6.com/index.html.zh_CN" 确认当前使用网络环境支持IPV6协议
验证客户端APP的DNS解析是否支持V6地址
APP上点击任意页面后,在网关日志中确认x-forward-for字段为V6地址
验证开发给定的IP使用场景
确认数据库中存储的IP与x-forward-for传入值一致
确认调用下游服务需传递的IP地址与x-forward-for传入值一致
确认使用IPV6运算结果与原V4运算结果一致
确认使用V4地址验证业务场景与原逻辑一致
验证DDOS添加V6支持后整体的服务性能是否损耗
2. 正式环境校验
主要校验线上支持V6切换后业务核心功能的可用性
2.1 测试范围
各业务域验证使用V6地址访问服务核心case正常及下游服务协助校验IP地址传递正常
2.2 校验点
校验APP主流程无阻塞功能正常
各业务域校验核心回归case结果符合预期
下游业务服务确认传递的IP地址为V6地址无误
注意点
在网关支持IPV6协议后并有相关转换或赋值操作,一定要验证性能的影响,及时做好扩容避免服务TPS下降。
客户端DNS解析要注意校验是否支持IPV6地址,当前我们使用的是阿里云的HttpDNS服务,需要做一定的改造才可以支持V6。
一定要根据场景做好项目计划和相关风险点管理,这种切换场景一般都涉及到整个后端服务,跨多级部门和跨多层业务,需要组织协调多个相关人员,一定要做好资源协调和目标明确。
明确不同时间节点需要完成的目标,并做好相关文档整理,不仅是操作总结,更多的是给后续参与进来的人员提供了解相关背景的渠道