概述

大背景:随着移动端的快速扩张,互联网的规模越来越广阔,早于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 校验点

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

网络支持IPV6地址测试校验与思考的更多相关文章

  1. IPv6地址测试宏

  2. 检查电脑链接的网络是否支持ipv6

    测试方法一:在浏览器地址栏输入网址“http://test-ipv6.com/”,在页面会给出您的ipv6网络测试结果 测试方法二:在浏览器地址栏输入网址“http://ipv6.jmu.edu.cn ...

  3. iOS应用支持IPV6,就那点事儿

    原文连接   果然是苹果打个哈欠,iOS行业内就得起一次风暴呀.自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IPV6-Only的网络,大家便开始热火朝天的研究如何支持IPV6 ...

  4. iOS应用支持IPV6

    一.IPV6-Only支持是啥? 首先IPV6,是对IPV4地址空间的扩充.目前当我们用iOS设备连接上Wifi.4G.3G等网络时,设备被分配的地址均是IPV4地址,但是随着运营商和企业逐渐部署IP ...

  5. 用尽洪荒之力解决Apple Store ipv6审核通关---linux服务器支持ipv6

         强势的库克时代到来,苹果开启了强制IPV6审核,大家也知道中国现在的情况,除了教育网实验性的支持IPV6,ISP运营商还不支持,想必大家都陆陆续续的遭受到了苹果无情的拒绝,以前开个加急,审核 ...

  6. 在 Linux 平台及 IPv4 环境中构建 IPv6局域网 测试环境

    在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境 1 IPv6简介 IPv6(Internet Protocol Version 6)作为 IPv4 的升级版本,它是作为一共软件升级安 ...

  7. 浏览器访问IPv6地址

    http://[IPv6]:port/index.html http://[3ffe:3201:1200:1::91]:8080/index.html 目前现在的网络运营商基本都不支持基于IPv6地址 ...

  8. docker支持ipv6

    方法 方法一.Pv6地址 不为容器中的服务特别分配IPv6地址. 只要Docker把外部的IPv6地址端口映射到容器的IPv4端口上,随后访问主机的IPv6相应端口即可. 方法二.为Docker网络分 ...

  9. IPv6地址的ping、telnet等操作

    最近在研究https协议是如何传输数据的,用wireshark抓包分析,发现客户机和google网站在传输数据时使用了IPv6地址,于是相对ipv6地址测试下基本的功能. ping功能,直接使用pin ...

随机推荐

  1. vscode 快速入门

    vscode 快速入门 本篇主要讲解 vscode 使用中的一些经验: 配置 vue 开发环境 - Vetur+ESLint+Prettier 代码片段的使用 常用插件 如何完全卸载 vscode 通 ...

  2. C++常用工具库(C语言文件读写,日志库,格式化字符串, 获取可执行文件所在绝对路径等)

    前言 自己常用的工具库, C++ 和C语言实现 使用cmake维护的项目 持续更新..... 提供使用范例, 详见example文件夹 windows使用的VS通过了的编译. Linux(Ubuntu ...

  3. 【LeetCode】504. Base 7 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 内建库 BigInteger类 逐位计算 倍数相加 ...

  4. 【LeetCode】337. House Robber III 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  5. 【剑指Offer】二叉树的下一个结点 解题报告(Python)

    [剑指Offer]二叉树的下一个结点 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews ...

  6. 【剑指Offer】数组中重复的数字 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 Set 快慢指针 日期 题目地址:https://leetcod ...

  7. C1. 组队活动 Small(BNUOJ)

    C1. 组队活动 Small Time Limit: 1000ms Memory Limit: 131072KB 64-bit integer IO format: %lld      Java cl ...

  8. C++中常用的数学函数总结

    我们在C++程序设计的过程中往往会使用到一些数学函数,那么不同的数学运算要用到什么函数哪?大家可以参考我的总结如下: 首先引用到数学函数时一定要记得加函数头文件 #include<cmath&g ...

  9. BAIRE ONE FUNCTIONS (Baire第一类函数)

    目录 定义 导函数 一致收敛性质 的连续点 JOHNNY HU, BAIRE ONE FUNCTIONS. 一些基本的定义(诸如逐点收敛, 一致收敛\(F_{\sigma}\)集合等)就不叙述了. 定 ...

  10. 后缀数组【原理+python代码】

    后缀数组 参考:https://blog.csdn.net/a1035719430/article/details/80217267 https://blog.csdn.net/YxuanwKeith ...