稳定平滑进行云上业务IPv6改造——Series2:ECS及业务应用改造

简介: 稳定平滑进行云上业务IPv6改造——Series2:ECS及业务应用改造

上期本文对IPv6化改造思路以及CDN的IPv6化改造进行了介绍,本期将对ECS及业务应用的IPv6化改造进行介绍。

ECS及业务应用IPv6化改造方法

这部分的改造我们可以根据具体情况使用两种方法:

  • 使用IPv6转换服务:通过阿里云的IPv6转换服务进行旁路转换,不改造应用架构,但类似反向代理有一定的局限性,可以作为短期过渡使用。
  • ECS配置IPv6网关:VPC中开启IPv6网关,在每一台ECS中配置IPv6 Interface,并手工配置应用服务使之开启IPv6的服务监听,这种方法会进行一些配置变更和应用变更,虽然操作技术门槛略高一些,但是长期可行的方式。

使用IPv6转换服务

从客户业务应用的角度出发,如果客户对其应用层面并不非常熟悉,对现有业务的不间断运行要求非常高,同时和外部数据交换并不是那么频繁,那么采用“IPv6转换服务”是个不错的选择,具体操作起来也很容易,具体分为三步:
(1)获取应用服务IP和服务端口:这里的IP和服务端口可以是SLB的,也可以是ECS的,主要看现有IPv4应用对外发布时所暴露的IP和服务端口;
(2)评估应用的CPS(Connection Per Second,每秒新建连接数)和带宽:根据现有IPv4应用访问情况和客户规划情况确定IPv6转换服务的实例规格和带宽;
(3)配置IPv6转换服务:根据CPS、带宽、服务IP、服务端口就可以进行IPv6转换服务的配置了,配置对应的映射条目。
下图是为1xx.xx.xx9.129的TCP80进行IPv6转换映射:
图1:添加IPv6转换映射条目.png

图1:添加IPv6转换映射条目

配置好后会获得一个IPv6地址,使用这个IPv6地址即可访问ECS或业务应用了。如上图的配置,我们的IPv6访问地址就为:http://[2::*::2bf]:80。

image.png
图2:访问IPv6地址示例

ECS配置IPv6网关

如果客户对自身的业务应用非常熟悉,且动手能力很强,那么通过支持客户对ECS和应用进行IPv6的改造,使其达到“IPv6+IPv4双栈”模式,是一个一劳永逸的方法,这种方法在变更前要对客户应用架构和具体使用的服务程序很了解,同时变更过程中可能会出现业务闪断,需要格外注意方案的有效性,可以通过灰度的方式分模块进行变更和验证,具体改造需要下面几步。

配置VPC的IPv6功能

这一步需要提前让客户申请“IPv4/IPv6双栈VPC公测资格”,审核通过后点击“开通IPv6”,使VPC和其下的vSwitch支持IPv6。
图3:VPC开通IPv6功能示意图.png

图3:VPC开通IPv6功能示意图

配置成功后如下图所示:
图4:VPC的IPv6配置成功.png

图4:VPC的IPv6配置成功

创建并配置IPv6网关

这一步需要配置IPv6网关的规格和IPv6公网带宽,需要根据客户应用的公网转发吞吐和业务带宽进行规划。
图5:IPv6网关设置.png

图5:IPv6网关设置

为ECS申请IPv6地址

在ECS控制台中,为需要进行IPv6改造的ECS申请“辅助IP”,使其获得公网IPv6地址。
图6:ECS申请“辅助IP”.png

图6:ECS申请“辅助IP”

这一步只是在阿里云的管控层面为所选ECS申请到了对应的IPv6地址,还需要在ECS层面配置才能使ECS中的操作系统获取这个IPv6地址(详见3.5)。同时,需要在“IPv6网关”的“IPv6网关带宽”中为对应的IPv6地址分配带宽,否则此IPv6地址无法对外网提供服务。
图7:为IPv6地址分配带宽.png

图7:为IPv6地址分配带宽

配置安全组

这一步非常重要,很多客户在做了IPv6化后发现依然无法通过IPv6进行通讯,客户在安全组中常常会设置“0.0.0.0/0”这种规则,以为是代表所有,其实0.0.0.0/0”仅是IPv4的“ALL对象“,需要客户再创建对应的IPv6安全组规则,授权对象写成“::/0”即可。

配置ECS内的系统参数

这一步也非常关键,通过修改ECS内sysctl的参数使其Interface支持IPv6协议,并获取3.3中获取的IPv6地址,动手能力强的客户可以通过手工修改sysctl中的net.ipv6.conf.all.disable_ipv6、net.ipv6.conf.default.disable_ipv6、net.ipv6.conf.lo.disable_ipv6三个参数,使其全部为“0”来使能IPv6 Mod,也可通过这里的指引执行自动化脚本开启IPv6 Mod。开启成功后,通过执行:ip a | grep “inet6”即可看到操作系统已经获取到对应的公网IPv6地址:
图8:查看ECS操作系统获取到的公网IPv6地址.png

图8:查看ECS操作系统获取到的公网IPv6地址

验证ECS内操作系统的IPv6连通性

进行过如上五步后,可以在改造后的ECS中执行:ping6 aliyun.com或ping6 ipv6.baidu.com来测试IPv6协议栈和网络是否有效。
图9:验证ECS内操作系统的IPv6连通性.png

图9:验证ECS内操作系统的IPv6连通性

应用IPv6服务监听开启

这一步需要对客户业务应用有很深的理解,并根据具体的应用服务软件特性进行IPv6开启。例如某ERP开发公司的某业务应用依赖nginx系的Web服务程序提供服务,对外服务端口为8080,则我们需要在nginx.conf中添加对应的IPv6监听:

server {
    listen 80;
    listen [::]:80;
    ……
}

然后执行nginx -t测试配置是否正确,确认无误后和客户进行灰度发布(systemctl restart nginx);
然后执行netstat -tunlp看是否出现如下监听服务:

tcp6 0 0 :::80 :::* LISTEN 1053/nginx

如出现以上情况,说明变更成功,同时不必紧张为何没有显示IPv4的80监听,这是正常情况,IPv4和IPv6都可访问。
无论nginx还是tomcat,还是其他C/S或B/S服务,开启IPv6服务监听的方法均大同小异,搜索对应的应用官网或服务商的文档即可获取具体配置方法,这里不再赘述。
下期本文将从“SLB、DNS”几个层面具体讲解IPv6化改造的方法,敬请期待!

作者:成俞晟

阿里云智能GTS-SRE团队技术服务经理

曾就职于联想集团、华为、中化集团,有着丰富的数据中心及云计算经验,现就职于阿里云智能GTS-SRE团队,任北方区SRE架构师。

我们是阿里云智能全球技术服务-SRE团队,我们致力成为一个以技术为基础、面向服务、保障业务系统高可用的工程师团队;提供专业、体系化的SRE服务,帮助广大客户更好地使用云、基于云构建更加稳定可靠的业务系统,提升业务稳定性。我们期望能够分享更多帮助企业客户上云、用好云,让客户云上业务运行更加稳定可靠的技术,您可用钉钉扫描下方二维码,加入阿里云SRE技术学院钉钉圈子,和更多云上人交流关于云平台的那些事。

image.png

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
监控 中间件 Java
后端技术:构建高效、稳定的服务器端应用
【10月更文挑战第5天】后端技术:构建高效、稳定的服务器端应用
70 0
|
19天前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
46 2
|
1月前
|
监控 关系型数据库 Serverless
探索后端技术:构建高效、可靠的服务器端应用
本文将深入探讨后端开发的核心概念和关键技术,从服务器架构到数据库管理,再到安全防护,为读者提供全面的后端技术指南。无论是初学者还是经验丰富的开发者,都能从中汲取灵感,提升自己的技术水平。
|
2天前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
15天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
16天前
|
存储 缓存 前端开发
如何优化 SSR 应用以减少服务器压力?
如何优化 SSR 应用以减少服务器压力?
|
25天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
1月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
43 3
|
19天前
|
机器学习/深度学习 人工智能 边缘计算
高算力服务器的应用场景
【10月更文挑战第18天】高算力服务器作为现代信息社会不可或缺的计算资源,正广泛应用于各行各业。从人工智能到科学研究,从智能交通到数字孪生,它为复杂的计算任务提供了不可替代的支持。
26 0
|
1月前
|
监控 Java 关系型数据库
构建高效可靠的服务器端应用
【10月更文挑战第6天】构建高效可靠的服务器端应用
下一篇
无影云桌面