由表及里,业务系统从IPv4演进IPv6之路
导语
不知道大家有没有注意到,越来越多的APP启动时,底部显示支持IPv6网络。对不关心技术的同学来说,这可能只是简单的小变动,但是对当今的互联网行业来讲,却是一件大事。支持IPv6网络,从最基础的互通互联层面进行了变革,如同电话号码簿升级一般,互联网"门牌"也实现了从12位数到128位数的升级,全世界可以使用的“IPv6地址空间扩大到2的128次方。这个空间大到无法想象,也就是说,地球上每一平方米,都可以有10的26次方的地址,甚至可以分配地址到空中的尘埃”。
那么IPv6到底是什么,怎么知道用的系统支持IPv6呢?
我们就来介绍一下
一、IPv6简介
网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网的网络层协议。用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对于IPv4有许多改进。IPv6的设计目的是取代IPv4,然而长期以来IPv4在互联网流量中仍占据主要地位,IPv6的使用增长缓慢。在2019年12月,通过IPv6使用Google服务的用户百分率首次超过30%。
二、国内IPv6现状
2017年11月,中共中央办公厅、国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》(以下简称《行动计划》),明确提出未来五到十年我国基于IPv6的下一代互联网发展的总体目标、路线图、时间表和重点任务等。
截至2019年6月,我国IPv6活跃用户数达1.3亿,基础电信企业已分配IPv6地址用户数12.07亿。
全国91家省部级政府门户网站中主页可通过IPv6访问的网站共有83家,占比为91.2%;全国96家中央企业门户网站中主页可通过IPv6访问的网站有77家,占比为80.2%。
典型商业网站也在积极推进IPv6升级。截至2019年6月,国内用户量排名前50的商业网站及移动应用可通过IPv6访问的达40家,覆盖门户/新闻、社交、视频、电商、搜索、游戏、浏览器、电子邮件、文件下载、移动应用商店、生活服务、出行等主流互联网应用。
之所以如此紧迫的推进支持IPv6,主要还是由于IPv4地址的匮乏。2011年11 月 25 日,全球五大区域互联网注册管理机构之一的欧洲网络协调中心(RIPE NCC)宣布 IPv4 地址已全部用完,该机构负责欧洲、中东和部分中亚的 IP 地址分配和注册,其声明中写道:
我们从可用池中仅剩的地址里分配了最后的 /22 IPv4。
前不久一则消息披露,日本一家组织公开出售43.0.0.0/8的绝大部分地址,合计有1470万IPv4地址,引来众多国际大公司的觊觎。虽然互联网数字分配机构不出售IPv4地址,但是支持地址的转移,也为各方出售地址获利创造了空间。据了解,当前每个IPv4地址的单价为20~30美元,由此估计上述交易的总金额高达3亿美元以上!
各国已获得的IPv4数目严重不均衡,中国以占全球20%的人口,仅获得3亿余IPv4地址。
介绍完现状,提供互联网服务的开发者们,又该如何让IPv6用户访问到自己的网站呢?
三、网站如何支持IPv6访问
目前越来越多的网站使用云服务,利用云平台提供的开箱即用产品满足业务需求,本文以云平台为底层基础设施举例说明
- 渐进式
【方案介绍】
以一个典型的网站系统为例,其访问路径示意图如下:
用户访问网站时,经由域名解析商获取服务端IP地址,经过网站入口-负载均衡获得服务。
为了让网站最快速的支持IPv6,可以在负载均衡前面增加一个IPv6转换实例,同时域名配置IPv6解析地址,即可满足要求。示意如下:
也可以这样:
【适用场景】
此方案适用于时间要求紧,不希望对后端服务和当前网站架构进行大规模改造的网站,首先支持IPv6用户接入后,可以有充足的时间评估网站整体支持IPv6的改造方案。
【改造步骤】
- 创建IPv6转换实例或负载均衡Nat64实例;
- 配置实例关联关系;
- 客户端指定host验证ipv6访问能力;
- 域名解析处增加ipv6解析记录;
【注意事项】
- 使用转换实例将ipv6地址转换为ipv4地址回源后,后端服务器无法获取用户的真实来源IP;
- 转换实例性能有上限,容易成为单点,建议过渡阶段使用;
- 兼容式
【方案介绍】
同样以一个典型的网站系统为例,其访问路径示意图如下:
用户访问网站时,经由域名解析商获取服务端IP地址,经过网站入口-负载均衡获得服务。
兼容性改造方案支持将真实的IPv6用户透传到服务器,需要在渐进式基础上考虑服务器对IPv6的兼容能力。示意如下:
【适用场景】
此方案要求构建IPv4/IPv6双栈环境,允许双栈流量访问,前端业务程序支持IPv6访问,向后端/第三方调用时依然可以使用IPv4,适用于IPv6访问量小,架构简单,有获取客户端真实来源IP需求的场景。
【改造步骤】
- 前端服务器进行IPv6双栈改造;
- 业务程序进行IPv6双栈改造,支持IPv6访问;
- 创建负载均衡IPv6实例,并配置关联关系;
- 客户端指定host验证ipv6访问能力;
- 域名解析处增加ipv6解析记录;
【注意事项】
- 受操作系统和平台限制,部分版本OS可能需要手动开启IPv6地址;
- 除服务器开启IPv6地址之外,还需要向云服务平台购买IPv6公网带宽;
- 革新式
【方案介绍】
革新式改造方案则是建立完全独立的IPv6环境,避免改造IPv4系统的混乱,也便于问题的排查和整体切换。示意如下:
【适用场景】
此方案要求构建独立的IPv6环境,通过域名解析到不同类型的负载均衡,将流量分别传送到不同网络环境,公共服务则可以共用,适用于访问量大,业务架构复杂,改造困难的网站。
【改造步骤】
- 创建IPv6 Only的服务器环境,并部署支持IPv6的应用程序;
1.nginx在编译时加入ipv6模块:--with-ipv6
2.配置IPv6端口监听:listen :::80 ipv6only=on;
- 创建负载均衡IPv6实例,并配置关联关系;
- 客户端指定host验证ipv6访问能力;
- 域名解析处增加ipv6解析记录;
【注意事项】
- 受操作系统和平台限制,部分版本OS可能需要手动开启IPv6地址;
- 除服务器开启IPv6地址之外,还需要向云服务平台购买IPv6公网带宽;
四、加速+安全防护场景的网站IPv6改造
前面介绍了典型架构下的网站系统IPv6改造,但对于中大型网站来说,考虑静态加速和安全防护是必备要求,针对此类场景又如何改造呢
- 全站加速场景(安全防护)
【适用场景】此方案仅需要在CDN开启IPv6支持,之后的流量均以IPv4形式,改造简单;
【改造步骤】联系云服务平台开启CDNIPv6支持即可;
【注意事项】
- 源站服务器如需获得访问真实来源IP,需配置x-forwarded-for参数;
- CDN平台支持IPv6的节点资源有所不同,大流量接入需事先评估;
- 静态加速场景(安全防护)
【适用场景】此方案对网站支持IPv6的改造幅度最大,适合深入支持IPv6的场景,IPv6流量与IPv4流量均可以透传到源站,便于后端获取到真实的访问数据。
【改造步骤】
- 前端服务器进行IPv6双栈改造;
- 业务程序进行IPv6双栈改造,支持IPv6访问;
- 创建负载均衡IPv6实例,并配置关联关系;
- 为负载均衡绑定WAF旁路和DDoS防护;
- 网站静态资源加速CDN开启IPv6支持;
- 客户端指定host验证ipv6访问能力;
- 域名解析处增加ipv6解析记录;
【注意事项】
- 步骤3-5开启时,建议每步进行验证,避免问题;
- CDN平台支持IPv6的节点资源有所不同,大流量接入需事先评估;
五、APP客户端改造建议
APP客户端优先支持IPv6地址访问,当IPv6访问异常时,需要有降级方案,自动切换为IPv4地址访问;
六、IPv6检测方法
《网站及移动应用IPv6支持度考核指标和评测方法》定义的所有指标均适用于单IPv6网络环境以及IPv6/IPv4共存网络环境下的网站和移动应用IPv6支持度评价。
另外推荐三个检测网站:
- 国家IPv6发展检测平台: https://www.china-ipv6.cn/
- 金融行业IPv6发展监测平台(试用版) : http://finance.china-ipv6.cn/
- Test Your IPv6: https://ipv6-test.com/
七、写在后面
IPv4演进IPv6之路不是一蹴而就的,必然会经历一段比较长的时间,乐观估计需要5-10年,因此考虑同时兼容IPv4和IPv6访问是必要的。但是要看到未来趋势是IPv6,及早改造,会为将来建立良好的储备。