概述

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

    官网:https://www.openoffice.org/download/index.html 下载完成后 直接点击安装即可

  2. 【LeetCode】1465. 切割后面积最大的蛋糕 Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 找最大间隔之积 日期 题目地址:https://lee ...

  3. java源码——两种格式日期的转换

    这里要实现1981.07.30 格式和July 30.1981格式的日期的转换. 在输入时进行日期格式的识别,并且对字符串进行操作并且输出. 难点在于字符串格式的识别和月份的转换,我用了正则表达式匹配 ...

  4. 【LeetCode】845. Longest Mountain in Array 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双数组 参考资料 日期 题目地址:https://l ...

  5. 【LeetCode】503. Next Greater Element II 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力解法 单调递减栈 日期 题目地址:https:/ ...

  6. 「THUSCH 2017」大魔法师

    Description 大魔法师小 L 制作了 \(n\) 个魔力水晶球,每个水晶球有水.火.土三个属性的能量值.小 L 把这 \(n\) 个水晶球在地上从前向后排成一行,然后开始今天的魔法表演. 我 ...

  7. MySQL高级查询与编程作业目录 (作业笔记)

    MySQL高级查询与编程笔记 • [目录] 第1章 数据库设计原理与实战 >>> 第2章 数据定义和操作 >>> 2.1.4 使用 DDL 语句分别创建仓库表.供应 ...

  8. css中cursor(光标类型)

    值 描述 url 需使用的自定义光标的 URL. 注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标. default 默认光标(通常是一个箭头) auto 默认.浏览器 ...

  9. pod存在,但是deployment和statefulset不存在

    pod存在,但是deployment和statefulset不存在 这样的话,可以看一下是不是ReplicaSet, kubectl get ReplicaSet  -n iot

  10. Spring @Valid 和 @Validated 的区别和使用

    两者区别 @Valid @Validated 标准 标准JSR-303规范 增强JSR-303规范 包 javax.validation org.springframework.validation ...