騰訊雲DNSPod域名解析全面支援IPv6-only
自2016年6月1日起,蘋果要求所有提交App Store的iOS應用必須支援IPv6-only環境,根據蘋果開發者網站的宣告,大部分現有應用程式已經通過NSURLSession和CFNetwork APIs相容該協議。依然使用IPv4 APIs的或者硬體編碼IP地址的開發者將需要手工調整應用程式碼來適應蘋果的最新策略。隨著IPv4地址用完,轉移到地址更豐富的IPv6協議正在變得越來越重要。
經過全面的測試和灰度釋出,騰訊雲DNSPod域名解析已全面支援App Store IPv6-only網路環境,已有成功通過稽核案例,並且在境內外均驗證解析成功。
小編請來騰訊雲解析的產品經理,為我們詳細講解在App Store稽核時被拒該如何處理,以及IPv6-only環境、DNS64和NAT64相關原理,乾貨滿滿,歡迎轉發收藏。
在對IPv6進行相容適配過程中,很多開發者在本地環境測試通過,卻在App Store稽核時被拒,這種情況下可以首先排查是否由DNS解析失敗引起,那麼如何驗證DNS伺服器是否正確響應了IPv6地址的解析請求呢?
搭建好DNS64環境後,可以通過以下命令查詢:$ dig dnspod.cn aaaa
App訪問網路的第一步就是進行DNS解析,App Store稽核時會先訪問DNS伺服器,獲得iOS應用伺服器的IPv6地址,再進行訪問,如果這時DNS伺服器無法成功解析到IPv6地址,即使在本地搭建的IPv6-only環境中測試成功,仍然會出現在提交App Store稽核時被拒的情況,所以選擇一個穩定性、相容性俱佳的域名解析服務至關重要!
IPv6-only環境的原理
首先需要明確一點,在App Store稽核APP的IPv6-only的環境下也是可以正常訪問IPv4的服務的,只是首先由DNS64將解析出來的IPv4地址轉成相容的IPv6地址,然後訪問IPv4服務時通過NAT64閘道器對IPv4和IPv6進行NAT,並不需要客戶有實際的IPv6服務。如下圖所示:
DNS64原理
客戶端在想DNS64請求一個域名的IPv6地址時,DNS64會向域名的授權DNS請求IPv6地址,如果存在IPv6地址,則直接給客戶端返回IPv6地址,如果不存在IPv6地址,則向授權請求IPv4地址,並將返回的IPv4地址轉換為相容的IPv6地址。
以Google DNS64為例說明轉換規則,分別請求dnspod.cn的A記錄(IPv4地址)和AAAA記錄(IPv6地址):
從解析結果可以看出IPv4地址對應的IPv6地址,後32位的3b25:7465實際上就是IPv4地址的16進製表示39=0x3b,37=0x25,116=0x74,101=0x65,明白該規則後也可以自己進行IPv4向相容的IPv6地址的轉換,如119.29.29.29的相容IPv6地址為64:ff9b::771d:1d1d,其中::表示為全0。
DNS64解析流程如下圖所示:
NAT64原理
在IPv6-only環境中訪問IPv4服務是需要通過NAT64進行網路地址轉換,如下圖所示:
更多內容,請參考官方文件: