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,具體可參考蘋果官網。
本文做者:一彈就飛
本文爲雲棲社區原創內容,未經容許不得轉載。