阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 14873阅读
  • 16回复

[解决方案]2017年 为你的 网站/APP 做好 ipv6 Only 准备

级别: 论坛版主
发帖
9349
云币
14165
— 本帖被 不靠谱贝贝 设置为精华(2016-12-22) —
前言 y6IXdW  
尽管在 2010 左右 IPV6 就开始刷存在感了,但是知直到美帝把 IPV4 的资源都分配完了,IPV6 依旧没有获得很好的支持。 e|p$d:#!  
;IVDr:  
E 2"q3_,,  
但是最近在开发者的圈子里,IPV6 开始怒刷存在感,因为苹果现在开始需要每一个 APP 都支持 IPV6-Only 环境下的使用。我觉得这是一件好事,如果不好好推动一把, IPV6 的体验始终不会跟上去。所以,如果苹果不推,那么迟早谷歌也会强推 IPV6。 PB/IFsJ  
Wo7F  
IPv6-Only OnF3lCmu  
0qo)."V{  
IPv6-Only 意味着网络下只能连接上 IPv6 地址,没有 IPV4 的存在,这也就意味着 DNS 缓存服务也必须是 IPv6 地址,只能连接上支持 IPv6 的服务器。如果要解析一个域名,域名本身及其所属的根域名的 DNS 服务器也必须统统支持 IPv6。
  1. 域名所属的根域名的 DNS 服务器 支持 IPv6
  2. 域名使用的 DNS 解析和 DNS 服务器 支持 IPv6
  3. 服务器 支持 IPV6,并拥有 IPV6 ip 资源
  4. 服务器系统和 Web 软件 支持 IPV6
AjT%]9 V?  
域名和 DNS 服务 BwBm[jtP  
cu%C"  
在 顶级域名的 IPV6 支持报告 中,我们可以看到截止本文发布,仅 98.1% 的顶级域名都已经支持 IPV6 的解析了。像:com、net、biz、cloud、top 都是支持的。 @*qz(h]\  
然后是 DNS 服务器了,国外的例如 CloudFlare、NS1、Rage53、DNSimple、Rage4 等,国内的 DnsPod、百度云加速、sDNS 都已经支持了。 不过截止本文发布,阿里 DNS、Cloudxns 还不支持 IPV6-Only。 qnoNT%xazo  
DNS 解析 IPV6,对应的是 AAAA 记录。 IPV4 对应的是 A 记录。 E/09hD Q  
Z7_ zMM  
EC\yz H*X  
服务器支持 IPV6 F@*+{1R  
rN%F) q#  
g+ MdHn[  
目前,国外的 DigitalOcean、Vultr、Linode 都是默认分配 IPV6 IP 的,很多一些 VPS 品牌甚至会赠送一个段的 IPV6 资源。而在国内目前看来,无论是 阿里云、青云、腾讯云 还是其他,都并没有很好的 IPV6 支持。 qWx][D"  
如果我们的网站或应用托管在阿里云或者其他云上,那么要让其支持 IPV6-Only,那么目前有两种可行的方案就是:
  1. 服务器在第三层(网络层)使用隧道传输来曲线支持 IPV6
  2. HTTP Proxy ,让支持 IPV6 的服务器做反向代理,将 AAAA 记录解析到代理服务器上
  3. 使用 CDN 缓存,像 CloudFlare 这样的 CDN 只要使用就可以支持 IPV6
&3$z4df  
不过,上述的三种,都有一定缺陷,其中第一种缺陷最少,几乎原生;而反代受限于反代服务器的延时,而且建设成本也挺高的;CDN 缓存么,像 Cloudflare 在国内速度并不理想。 E6,4RuCK  
x,otFp  
隧道传输支持 IPV6 {O,{c\  
K\$J4~EtG  
这里介绍使用 Hurricane Electric Free IPv6 Tunnel Broker 来拓展服务器支持 IPV6.Tunnel Broker 相当于建立在网络层(第三层)上的代理,需要你的服务器的操作系统支持,而且服务器必须要有一个固定的 IPv4 地址。 V h k _  
\N4 y<  
Z-U-N  
一、注册,www.tunnelbroker.net 记得,别忘了验证邮箱 S3@ |Q\*r  
7yz4'L  
二、创建隧道,www.tunnelbroker.net/new_tunnel.php 4mHvgnT!WA  
pFm=y#!t  
三、IPv4 Endpoint (Your side): 输入服务器的 IP ; Available Tunnel Servers: 这里选择一个延时最低的地域。经过测试亚洲的 香港、新加坡、日本 国内访问还都挺糟糕的。 推荐 Fremont。 Cxcr/9  
Xu>r~^w=S  
四、点击 Create Tunnel 就创建好了, OZIW_'Wm/  
Rt{B(L.?<  
|0\0a&tkPl  
五、修改网络参数,使系统支持 IPV6。编辑 /etc/sysctl.conf
  1. net.ipv6.conf.all.disable_ipv6 = 1
  2. net.ipv6.conf.default.disable_ipv6 = 1
  3. net.ipv6.conf.lo.disable_ipv6 = 1
=e}H'5?!  
g(Io/hyj  
修改为 js8{]04y  
#_|sgS?1  
  1. net.ipv6.conf.all.disable_ipv6 = 0
  2. net.ipv6.conf.default.disable_ipv6 = 0
  3. net.ipv6.conf.lo.disable_ipv6 = 0
rC7``#5  
]/!<PF  
e+]6OV&+  
再运行 sysctl -p 的命令,启用IPv6 +4,2<\fX  
JGFt0He]  
  1. [email]root@MF8.BIZ[/email]:~# sysctl -p
  2. net.ipv6.conf.all.disable_ipv6 = 0
  3. net.ipv6.conf.default.disable_ipv6 = 0
  4. net.ipv6.conf.lo.disable_ipv6 = 0
  5. vm.swappiness = 0
  6. net.ipv4.neigh.default.gc_stale_time = 120
  7. net.ipv4.conf.all.rp_filter = 0
  8. net.ipv4.conf.default.rp_filter = 0
  9. net.ipv4.conf.default.arp_announce = 2
  10. net.ipv4.conf.all.arp_announce = 2
  11. net.ipv4.tcp_max_tw_buckets = 5000
  12. net.ipv4.tcp_syncookies = 1
  13. net.ipv4.tcp_max_syn_backlog = 1024
  14. net.ipv4.tcp_synack_retries = 2
  15. net.ipv4.conf.lo.arp_announce = 2
  16. net.ipv4.conf.lo.arp_announce = 2
PT^c^{V  
I0'[!kBF|  
&tZG @  
六、在 HE 哪里,点击 Example Configurations,然后选择己的系统,这里以 Debian 8.5 为例。 /c$\X<b);  
$&=p+  
修改 /etc/network/interfaces 文件,在下面加上,如图片中列出的代码 3G meD/6  
qU,c~C=Qf  
O$g_@B0E1  
* FeQ*`r  
/{{UP-  
IF +i3#$  
保存,然后重启系统。 @<@SMK)  
|T4kqW{  
七、确认开启。 v6GsoQmA   
执行 ifup he-ipv6 确认 IPv6 已启用 EQe5JFR  
  1. root@MF8.BIZ:~# ifup he-ipv6
  2. ifup: interface he-ipv6 already configured
  3. ifup: interface he-ipv6 already configured
GI7=x h  
&6j<ca  
八、DNS 添加 AAAA 记录到分配的 IP 上。 ya -i^i\  
L!'k ! k  
Web 服务器软件确认开启 $ C0TD7=  
8CC/BOe  
0fs$#j  
并不是服务器开启 IPV6,就一切 OK 了。在 Apache 、Nginx 这样的 WEb 服务器软件上依旧要进行相关设置。 I<=Df5M  
U{ ;l0 2S  
Nginx MDRe(rF=  
  1. server {
  2.   listen 80; // 监听 IPv4 的 80 端口
  3.   listen [::]:80; // 监听 IPv6 的 80 端口
  4. }
  5. server {
  6.   listen 443 ssl http2; // 监听 IPv4 的 443 端口
  7.   listen [::]:443 ssl http2; // 监听 IPv6 的 443 端口
  8. }
{S<>&?XB  
XTeb9h)3  
Apache HTTPD *zWWmxcJa  
  1. Listen 服务器 IPV4 IP:8080
  2. Listen [分配的 IPV6 IP]:8080
DXQi-+?  
~/IexQB&  
p{=QGrxB*  
都别忘记重启! n(lk dw  
(shK  
~SjZk|  
Ze!92g  
[ 此帖被ivmmff在2016-12-22 14:37重新编辑 ]
级别: 论坛版主
发帖
1784
云币
3327

只看该作者 沙发  发表于: 2016-12-23
没准备好,大环境不是特别友好啊
本人不是云栖社区工作人员。
无论您在使用中遇到什么问题,不要出言不逊!谢谢合作!
级别: 论坛版主
发帖
9349
云币
14165
只看该作者 板凳  发表于: 2016-12-24
回 1楼(鬼才神兵) 的帖子
这个还是需要阿里云在物理环境上做好准备
级别: 技术砖家
发帖
1002
云币
2975
只看该作者 地板  发表于: 2016-12-31
阿里云ECS已经可以用ipv6了……
级别: 新人
发帖
1
云币
2
只看该作者 4楼 发表于: 2017-01-03
很好很好
很好很好
级别: 论坛版主
发帖
9349
云币
14165
只看该作者 5楼 发表于: 2017-01-03
回 4楼(go696) 的帖子
有么,我没在我的列表发现有 ipv6 地址分配啊
级别: 技术砖家
发帖
1002
云币
2975
只看该作者 6楼 发表于: 2017-01-07
回 5楼(ivmmff) 的帖子
windows 2003那种老操作系统没有
级别: 论坛版主
发帖
9349
云币
14165
只看该作者 7楼 发表于: 2017-01-07
回 6楼(go696) 的帖子
这种已经不能更新漏洞的系统,支持的意义并不是很大
级别: 论坛版主
发帖
3414
云币
8980

只看该作者 8楼 发表于: 2017-01-11
我也没准备好 感觉好难适应了感觉 毕竟变长了
级别: 论坛版主
发帖
9349
云币
14165
只看该作者 9楼 发表于: 2017-01-12
回 8楼(小柒2012) 的帖子
本来还能背一背,现在不行了
级别: 论坛版主
发帖
3414
云币
8980

只看该作者 10楼 发表于: 2017-01-12
回 9楼(ivmmff) 的帖子
咋不行了?
级别: 论坛版主
发帖
9349
云币
14165
只看该作者 11楼 发表于: 2017-01-13
回 10楼(小柒2012) 的帖子
ipv4 常用的ip还可以背一背。 Gee~>:_Q{J  
ipv6 我是吃不消背
级别: 新人
发帖
3
云币
6
只看该作者 12楼 发表于: 2017-01-20
Re2017年 为你的 网站/APP 做好 ipv6 Only 准备
你好,你有支持IPV6的Apache 吗?我的不支持,邮箱:534624000@qq.com;谢谢
级别: 新人
发帖
2
云币
3
只看该作者 13楼 发表于: 2017-01-20
回 5楼ivmmff的帖子
IPv6普及时就是老美说了不算的时候到了。
级别: 论坛版主
发帖
9349
云币
14165
只看该作者 14楼 发表于: 2017-01-20
回 12楼(vinny1024) 的帖子
估计是编译的时候没加参数
发表主题 回复主题
« 返回列表
«12»
共2页
上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 57 - 46 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)