2016年初起,苹果要求上架iOS App Store的应用要兼容IPv6。这个决定虐惨了中国大陆的App开发者。随便打开一个开发者论坛,均可以看到各类关于App如何经过苹果IPv6审核的求助贴。后端
针对这一问题,下面将为你们推荐阿里云产品级的解决方案,但愿能够助力开发者快速完成苹果AppStore审核。服务器
在开始产品级的解决方案前,再老生常谈的介绍一下苹果AppStore的审核机制。网络
苹果AppStore在美国的IPv6-only环境下对APP进行访问。若是APP服务器支持IPv6,则可经过IPv6网络直接访问。若是APP服务器不支持IPv6,则IPv4 APP服务器的IPv4地址将经过DNS64合成为IPv6地址返回给美国的IPv6-only客户端,IPv6-only客户端再经过NAT64网关将访问数据包中的目的IP(即DNS64合成的IPv6地址)转换为IPv4地址,进而对APP服务器进行访问。负载均衡
苹果Store的APP IPv6审核机制以下图所示:阿里云
注:图片来自苹果官网spa
做为中国大陆的开发者,APP服务器几乎都只有IPv4地址,所以在提交APP到苹果进行审核时都须要走DNS64/NAT64这条路径。但遗憾的是,DNS64/NAT64这条路径常常会因跨国网络问题和不可描述的屏蔽等缘由,国内APP服务器的IPv4地址没法经过DNS64合成IPv6地址,即便成功合成IPv6地址,苹果AppStore也有可能没法成功访问位于国内的IPv4 APP服务器。3d
所以,这里建议App开发者提交APP审核时,应避免美国苹果IPv6-only的访问流量走DNS64/NAT64这条路径。blog
方案概述图片
阿里云负载均衡IPv6实例或者IPv6转换服挂载IPv4 APP服务器,这样当苹果AppStore发起审核时,来自美国苹果公司IPv6-only客户端的IPv6流量先访问阿里云负载均衡IPv6实例或者IPv6转换服务,而后阿里云负载均衡IPv6实例或者IPv6转换服务完成IPv6到IPv4的转换,将转换后的数据包转发至IPv4 APP服务器上。ip
机制图以下图所示:
适用场景:
IPv4 APP业务运行在阿里云上,且IPv4 APP服务器和阿里云负载均衡IPv6实例必须位于同一区域。
场景示意图:
场景描述:
如上图所示,苹果发起审核时,阿里云负载均衡IPv6实例未来自苹果IPv6-only的访问流量根据转发策略分发到后端IPv4 App服务器上。
注意:阿里云负载均衡IPv6实例与后端 IPv4 APP服务器经过IPv4私网进行通讯,由于IPv4
APP服务器和阿里云负载均衡IPv6实例需位于同一个区域。完成负载均衡IPv6实例的配置后,建议您为APP的域名添加AAAA记录解析,即将APP域名解析到阿里云负载均衡IPv6实例的IPv6地址上。>>如何设置>>
负载均衡IPv6实例目前支持公共云华东1(杭州)、华北2(北京),其余区域也即将支持,请关注阿里云官网。
适用场景:
IPv4 APP业务能够部署在本地IDC机房、阿里云、或者其余云服务商上,只要APP业务服务器具有公网IPv4地址,均可以使用阿里云IPv6转换服务。
IPv6转换服务和IPv4 APP服务器能够在同一区域,也能够不在同一区域。
场景示意图:
场景描述:
如上图所示,无论IPv4 APP服务器是部署在本地数据中心、阿里云或在其余云上,当苹果AppStore发起审核时,阿里云IPv6转换实例根据用户配置的IPv6到IPv4的转换规则,未来自美国苹果公司IPv6-only客户端的访问流量转发到后端IPv4 App服务器上。
注意:IPv6转换服务与后端挂载的IPv4业务是经过IPv4公网来进行通讯,所以后端的IPv4业务必须具有一个公网IPv4地址。完成IPv6转换服务的配置后,建议您为APP的域名添加AAAA记录解析,即将APP域名解析到IPv6转换服务实例的IPv6地址上。>>如何设置>>若是您的APP域名从未在阿里云进行过备案,那么您还须要为APP域名完成阿里云的接入备案流程。>>进入备案系统>>
IPv6转换服务实例可选择公共云华东1(杭州)、华北2(北京),其余区域也即将支持,请关注阿里云官网。
为避免因跨国网络问题和不可描述的屏蔽缘由致使的DNS没法解析APP域名的IP地址,推荐上述2款产品搭配阿里云云解析企业版共同使用。阿里云云解析具备海外DNS BGP节点,能够确保苹果AppStore在作IPv6审核时,查询DNS时能够正确返回域名的IP地址。
本文只作苹果AppStore审核APP IPv6时候的网络链接方面的产品推荐,若是要APP经过IPv6的审核,还须要APP(代码)自己兼容IPv6,具体可参考苹果官网。
本文做者:一弹就飞
本文为云栖社区原创内容,未经容许不得转载。