APP轻松通过苹果IPv6审核——阿里云网络产品级解决方案
背景
2016年初起,苹果要求上架iOS App Store的应用要兼容IPv6。这个决定虐惨了中国大陆的App开发者。随便打开一个开发者论坛,都可以看到各种关于App如何通过苹果IPv6审核的求助贴。
针对这一问题,下面将为大家推荐阿里云产品级的解决方案,希望可以助力开发者快速完成苹果AppStore审核。
苹果Store的APP IPv6审核机制
在开始产品级的解决方案前,再老生常谈的介绍一下苹果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审核机制如下图所示:
注:图片来自苹果官网
作为中国大陆的开发者,APP服务器几乎都只有IPv4地址,因此在提交APP到苹果进行审核时都需要走DNS64/NAT64这条路径。但遗憾的是,DNS64/NAT64这条路径经常会因跨国网络问题和不可描述的屏蔽等原因,国内APP服务器的IPv4地址无法通过DNS64合成IPv6地址,即使成功合成IPv6地址,苹果AppStore也有可能无法成功访问位于国内的IPv4 APP服务器。
因此,这里建议App开发者提交APP审核时,应避免美国苹果IPv6-only的访问流量走DNS64/NAT64这条路径。
阿里云产品级解决方案
方案概述
阿里云负载均衡IPv6实例或者IPv6转换服挂载IPv4 APP服务器,这样当苹果AppStore发起审核时,来自美国苹果公司IPv6-only客户端的IPv6流量先访问阿里云负载均衡IPv6实例或者IPv6转换服务,然后阿里云负载均衡IPv6实例或者IPv6转换服务完成IPv6到IPv4的转换,将转换后的数据包转发至IPv4 APP服务器上。
机制图如下图所示:
推荐产品1:负载均衡IPv6实例
适用场景:
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(北京),其他区域也即将支持,请关注阿里云官网。
推荐产品2:IPv6转换服务
适用场景:
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,具体可参考苹果官网。
作者:一弹就飞