iOS 應用如何完全支持 IPv6-ONLY 網絡?


iOS 應用如何完全支持 IPv6-ONLY 網絡?

警告

您當前查看的頁面是未經授權的轉載!
如果當前版本排版錯誤,請前往查看最新版本:http://www.cnblogs.com/qin-nz/p/ipv6-only-ios-application.html

提示

更新時間:2016年05月07日。

最近一條新聞引起了我的注意:

注解

5月5日消息,蘋果昨日向開發者發出提醒,App Store將於今年6月1日實施全新策略,屆時所有提交至蘋果App Store的iOS應用申請必須要兼容面向硬件識別和網絡路由的最新互聯網協議–IPv6-only標准。

什么是 IPv6-ONLY ?

以前,大家都在用 IPv4,就是地址看起來是 114.255.40.66 的樣子。然而,這樣的地址已經不夠用了,就有了類似 2001:da8:215:4009:250:56ff:fe97:40c7 這樣的 IP 地址。

目前,一個網卡會同時使用這兩張地址;在未來,一個網卡將僅有后面這樣的 IPv6 地址。 使用這兩種地址的設備是不能互相訪問的,后來有了一些過渡技術讓他們在某些情況下可以互相訪問了。(如 DNS64/NAT64)

如何滿足蘋果要求?

?蘋果公司為什么要這么做?

現在有極小一部分用戶處在IPv6-ONLY的環境中,未來這個比例會擴大。

蘋果這樣要求,對於大多數開發者而言,並不困難。目前大多數應用無需任何操作即可滿足要求。

?我不太懂這些,我該怎么做呢?

在你的應用中使用域名(如 www.bupt.edu.cn),不要在任何地方使用 IPv4地址(114.255.40.66)。

?我的服務器必須有 IPv6 地址么?

不是的,服務器只需要有公網 IPv4 地址即可,但要求必須使用域名(FQDN)來表示服務器。

如何創造 IPv6-ONLY 測試環境

MacOS 提供了這個功能。 使用 Mac 把有線網絡共享到 WiFi,中間勾選 創建NAT64網絡 即可。

https://qinblog.blob.core.windows.net/images/create-nat64-network.png

詳情可參看 Apple Support

IPv6客戶端訪問IPv4服務器原理

首先,這個是無法直接訪問的,必須網絡的提供商支持過渡技術。

  • 第一步:DNS 污染

    例如我們想要訪問 example.com ,假設這個網站只有 IPv4 地址(93.184.216.34,用16進制表示為 5d b8 d8 22) 那么,被“污染”的DNS返回的 IP 地址是 64:ff9b::5db8:d822。 其中 `64:ff9b::/96`是IANA分配用於DNS64的前綴。

  • 第二步:IPv6 轉 IPv4

    訪問 64:ff9b::5db8:d822 時,IPv6 包頭被替換為 IPv4 包頭,繼續訪問。 同時回來的數據包會被做反向處理。

詳情可參看 RFC6146RFC6147

現有應用的支持情況

  • QQ 【支持】
  • 淘寶 【支持】
  • 高德地圖 【支持】
  • Worktile 【不支持】
  • Wechat 【不支持】

我本人不用微信很久了,但我知道,微信的DNS查詢,使用的 HTTP 協議自己封裝的,這樣在 IPv4 網絡下可以避免相當多的問題。 如圖,微信直接查詢 A 記錄,即使我的設備在 IPv6-ONLY 的網絡環境下。 因此,微信就跪掉了……

../_images/ipv6-only-wechat-dns.png
../_images/wechat.jpg

聲明 知識共享許可協議

【微信要跪】 iOS 應用如何完全支持 IPv6-ONLY 網絡? 勤奮的小孩 創作,采用 知識共享 署名-非商業性使用-禁止演繹 4.0 國際 許可協議進行許可。
本許可協議授權之外的使用權限可以從 http://space.cnblogs.com/msg/send/qin-nz 處獲得。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM