概述

大背景:随着移动端的快速扩张,互联网的规模越来越广阔,早于2011年耗尽的IPV4地址越来越无法满足互联网的网络地址需求,IPV6地址推广进入快车道。实际情况:近期公司应上级部门邀请对公司的主域名升级改造以支持IPV6地址。事情趟过了本文就简单介绍验证支持方案的一些思考。

网络切换方案

1. 服务架构示意图

公司整体环境服务部署在阿里云上,并接入阿里云的DDOS高防服务,所有业务请求流量均通过高防进入,所以运维方案均围绕着DDOS服务做IPV6地址支持。

服务架构图表示如下

网络支持IPV6地址测试校验与思考-LMLPHP

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 校验点

  1. 在测试机浏览器中输入 "http://test-ipv6.com/index.html.zh_CN" 确认当前使用网络环境支持IPV6协议

  2. 验证客户端APP的DNS解析是否支持V6地址

  3. APP上点击任意页面后,在网关日志中确认x-forward-for字段为V6地址

  4. 验证开发给定的IP使用场景

  5. 确认数据库中存储的IP与x-forward-for传入值一致

  6. 确认调用下游服务需传递的IP地址与x-forward-for传入值一致

  7. 确认使用IPV6运算结果与原V4运算结果一致

  8. 确认使用V4地址验证业务场景与原逻辑一致

  9. 验证DDOS添加V6支持后整体的服务性能是否损耗

2. 正式环境校验

主要校验线上支持V6切换后业务核心功能的可用性

2.1 测试范围

各业务域验证使用V6地址访问服务核心case正常及下游服务协助校验IP地址传递正常

2.2 校验点

  1. 校验APP主流程无阻塞功能正常

  2. 各业务域校验核心回归case结果符合预期

  3. 下游业务服务确认传递的IP地址为V6地址无误

注意点

  1. 在网关支持IPV6协议后并有相关转换或赋值操作,一定要验证性能的影响,及时做好扩容避免服务TPS下降。

  2. 客户端DNS解析要注意校验是否支持IPV6地址,当前我们使用的是阿里云的HttpDNS服务,需要做一定的改造才可以支持V6。

  3. 一定要根据场景做好项目计划和相关风险点管理,这种切换场景一般都涉及到整个后端服务,跨多级部门和跨多层业务,需要组织协调多个相关人员,一定要做好资源协调和目标明确。

  4. 明确不同时间节点需要完成的目标,并做好相关文档整理,不仅是操作总结,更多的是给后续参与进来的人员提供了解相关背景的渠道

01-24 01:01