IPv6 的发展形势
近日,中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》(以下简称《计划》),加快推进基于 IPv6 的下一代互联网规模部署,计划指出到 2018 年末国内 IPv6 活跃用户数要达到2亿,2020年末达到5亿,2025年末中国 IPv6 规模要达到世界第一。
随着移动互联网、智能设备、车联网、智慧城市等新一代信息技术产业的蓬勃发展使得对 IP 地址的需求量大大增加,根据预测未来 5年 中国的 IP 地址需求总量将高达 345 亿。在 IPv4 地址告罄的情况下目前运营商通过 NAT 技术勉强支撑但是却极大的降低了租户的可用性,IPv6 的商用价值和战略意义正在凸显,而《计划》的发布更标志着中国的 IPV6 正式进入部署阶段,对世界 IPV6 的发展也将有着不小的意义。
在IPv6方面,中国可谓是 “起了大早赶了晚集”,到2016年底,中国拥有IPv6地址申请总量超过2万块,数量为美国的一半,全球排名仅次于美国。但被路由器宣告的IPv6地址仅占中国已申请获得的IPv6地址总量的7.5%,承载真实流量的IPv6地址路由器数量仅有3%。中国2016年IPv6用户占比在全球排名66位,排在印度、越南等国之后。不过不要泄气,要知道 2025 年我国 IPv6 网络规模将居世界第一位,估计会是其他国家难以超越的存在。
IPV6 带来的极大改变
不再被内网
《计划》中明确有提到 “新增网络地址不再使用私有IPv4地址” ,的确近年来很多人都再抱怨自己 “被内网” 了,因为亚洲的 IPV4 资源其实很早就已经枯竭了,但是互联网却一直在发展,因此只有通过 NAT 方式来续命了。而 IPV6 拥有给每粒沙子赋予一条 IP 的 IP 数量,所以我们根本不用担心 IP 不够了!
为物联网的爆发做铺垫
在未来万物互联,我们的每台电脑、每台手机、每台插线板、每件衣服甚至每粒纽扣都可能被赋予 IP 地址以连接网络。但是仅仅42亿个地址的 IPV6 到每台手机这里就已经十分勉强了,更别说每粒纽扣了。因此未来的物联网大爆发必定需要 IPV6。
更高效的信息传输
依旧是前面提到的 NAT, IPV4 由于使用大量 NAT 来连接设备,这让网络模型变得越来越复杂。
可以看到 IPV6 相比 IPV4 的包头精简了很多因此也会获得性能上的提升,极大的提高了信息的传输效率,简单的归纳就是:1.简化头,少处理;2.不分片,无重组;3.去校验,省资源
更安全互联网
在 IPv6 的部署中是可以配置 IPSec 的,这意味着在IPv6地址之间传输数据往往是经由加密的,信息不再会被轻易窃听、劫持。在 IPv4 体系中,大量信息采用明文传输,DNS污染、HTTP劫持等现象层出不穷,相比你也是忍了手机看网页的时候下边那个查流量的按钮很久了吧。如果部署了 IPSec,互联网理论上更加安全、畅通。
不过在云栖社区的聚能聊里,很多网友还是对 IPV6 表示了一定的担忧:
比如说:
ipv6地址难记是真的,但是换成ipv6地址能大大简化网络行为。
其一,大家都有固定ip地址了,寻址更容易,如果玩局域网游戏就可以直接输入ipv6进入,不需要查询动态ipv4地址。
其二,作为网络交换器再也不需要让路由器24小时开启维持ip地址不变了。
其三,网络犯罪更容易抓获。因为ipv6地址是固定的,就相当于网络身份证,你犯罪了可以直接用过ip地址定位,而变动的ipv4地址却无法做到这一点。
还有:
IPv6说了多少年了,有多少部署,有多大的产业?个人感觉,再有20年,IPv6也不会大范围推开。现在IPv4+NAT方式会一直使用下去(好处也很多啊),既得利益者不会轻易让它消失。我预测,在未来10年内,会有一项新的基础技术产生,从而彻底取代IP (v6 and v4)。
不知道大家怎么看待 IPV6 呢?大家可以在 《厉害了我的网 中国计划部署推进IPv6》 参与话题拿大奖。
IPV6 的实现形势
阿里云在 《计划》 公布后就第一时间宣布了 将全面提供IPv6服务 但是距离正式提供 IPV6 还有一段时间,那么在这以前我们应该如何曲线实现 IPV6 呢?
在《计划》发布前最让站长心急的时候,苹果的 “IPv6审核机制” 真正让 IPV6 狠刷了一波存在感,所有提交到 AppStore 的应用必须通过苹果 AppStore 审核人员在美国的 IPv6-Only 环境下对应用进行访问。一些因为无法过审的应用才开始意识到要对 IPV6 支持。
一般来说大家为了获得 IPV6 主要是为了通过苹果的 AppStore 的 IPV6-Only 审核,但其实果 AppStore 在做 IPv6 审核的时候,并不需要DNS或者服务器支持IPv6接入。IPv4环境下的DNS或者服务器地址会由苹果 AppStore 审核时的 DNS64+NAT64 转换为IPv6地址进行通信。
如果,应用在苹果进行 IPv6 审核时不通过,可能原因主要有两方面:
- 应用本身不兼容 IPv6。此时,最好的办法是让应用本身兼容 IPv6;
- 跨国网络问题导致苹果 AppStore 所在的网络在审核时连接不通国内的服务器。
此时推荐使用云解析付费版(具有海外DNS BGP节点)以及阿里云海外地域的ECS;
什么是 “DNS64+NAT64访问机制” 呢?
DNS64:苹果AppStore审核的时候,要去 DNS 服务器查询AppServer的服务器的 IPv6 地址,然后进行访问。如果查询不到 IPv6 地址,会进而询问 IPv4 地址,然后苹果的网络会将查询到IPv4地址转换成IPv6的地址,返回给App客户端使用。如下图所示:
NAT64:苹果AppStore审核的时候,通过上一步获得IPv6的地址后,客户端App会直接访问IPv6 服务端的内容,或者通过NAT64的网关访问IPv4服务端的内容。如下图所示:
如果有强制的 IPV6 需求需要一个 IPV6 地址的话,那么就必须使用前文提到的曲线实现了。目前有三种可行的 IPV6 支持方案:
- 服务器在第三层(网络层)使用隧道传输来曲线支持 IPV6
- HTTP Proxy ,让支持 IPV6 的服务器做反向代理,将 AAAA 记录解析到代理服务器上
- 使用 CDN 缓存,像 CloudFlare 这样的 CDN 只要使用就可以支持 IPV6
不过,上述的三种,都有一定缺陷,其中第一种即隧道传输缺陷最少,几乎原生;而反代受限于反代服务器的延时,而且建设成本也挺高的;CDN 缓存么,像 Cloudflare 在国内速度并不理想。
那么如何再阿里云的 ECS 上实现 IPV6 的隧道传输呢?阿里云有如下教程:
Windows 设置:
为阿里云ECS(Windows 2012)创建IPv6隧道地址
类 Unix 通用设置:
https://bbs.aliyun.com/read/302778.html
检测网站和访问者是否已经支持 IPV6:
http://ipv6-test.com/validate.php
IPV6 的原生展望
像云数据库 for MySQL、OSS、CDN 这样的 PaaS 产品其实是不需要我们进行过多的设置的,自动就会支持 IPV6,这就是 PaaS 最能令运维人员感受到幸福感的地方了。
而 ECS 上就会是 IPV6 攻坚的重点了,ECS 需要有支持了 IPV6 后需要我们额外的设置网卡以及想 Nginx、Apache Httpd、Tomcat 这样的 Web 服务器软件也需要进行 IPV6 的设置。
例如低版本的 Nginx 如果编译时不带 –with-ipv6
参数就不会支持 IPV6 环境,同时还要在虚拟主机的配置文件中加入 listen [::]:80;
来支持监听 IPV4 和 IPV6 的 80 端口,对的,只需要 这一个参数就可以两种网络的监听。
有些教程和环境一键包盲目的追求所谓的性能,会在内核配置文件中将 IPV6 给禁用了,这就导致了分配了 IPV6 地址也依旧无法使用。
修改 /etc/sysctl.conf
文件将一下部分改为 0
:
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
然后执行 sysctl -p
以生效。
总而言之,当分配了 IPV6 后,各位运维人员以及个人站长还需要进行一定的调试才能更好的支持 IPV6,而云栖社区也一定会提供更多 IPV6 有关的教程来帮助大家解决问题。