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

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 稳定平滑进行云上业务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

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
28天前
|
Web App开发 监控 JavaScript
【Node系列】创建第一个服务器应用
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序。它采用事件驱动、非阻塞I/O模型,使得程序可以以高效地方式处理并发请求。
23 4
|
22小时前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
5 0
|
5天前
|
开发框架 Java .NET
什么是JavaWeb(概念|应用|服务器)?
什么是JavaWeb(概念|应用|服务器)?
5 1
|
12天前
|
弹性计算 运维 Java
Serverless 应用引擎产品使用之在Serverless 应用引擎中,将 Java 应用从 ECS 迁移到 SAE如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
40 2
|
12天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
40 4
|
12天前
|
运维 Serverless 文件存储
Serverless 应用引擎产品使用之阿里函数计算中stable. diffusion应用的服务器可以使用那种99元100G一年的道用型nas如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
23 0
|
13天前
|
网络协议 Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之在阿里云函数计算中,服务器调用FC函数时出现 "[Errno -3] Temporary failure in name resolution)" 错误如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
162 4
|
21天前
|
安全 Java Linux
如何实现无公网IP及服务器实现公网环境企业微信网页应用开发调试
如何实现无公网IP及服务器实现公网环境企业微信网页应用开发调试
|
1月前
|
消息中间件 弹性计算 人工智能
ECS可以哪些搭建好玩的应用?
【4月更文挑战第6天】ECS可以哪些搭建好玩的应用?
|
2月前
|
弹性计算 人工智能 物联网
挖掘阿里云ECS的潜力:创意应用和未来可能性
在云厂商中,我觉得开发者更信赖阿里云的云产品,而且随着阿里云最近宣布云产品降价的消息,会有更多的开发者和企业选择阿里云的云产品。这里拿阿里云的云服务器来做说明,阿里云的云服务器ECS为用户提供了强大的计算资源和灵活的扩展性,使其成为搭建各种有趣和创意应用的理想平台。除了已知的小游戏、小程序和个人网盘等应用案例之外,本文还会进一步探讨ECS在特定场景下的实践经验,并挖掘其在其他领域的潜力,为大家带来更多创意和启发。
563 3
挖掘阿里云ECS的潜力:创意应用和未来可能性