iOS ipv6

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS ipv6相关的知识,希望对你有一定的参考价值。

这当中最重要的两个概念是DNS64和NAT64。

技术分享

 

DNS64

DNS64说白了是用来帮助host获取IPv6地址的,传统的DNS服务器可以把域名转换成IPv4地址,但我们的iPhone设备如果处于IPv6环境下,只能去获取IPv6的地址。DNS64就像一个中间代理,把传统服务器返回的IPv4地址通过特殊的映射方式转换成一个看着像IPv6地址的地址(IPv4的核,IPv6的壳),转换其实很简单,用公式可以这样表达:

64:ff9b::IPv4 = IPv6

NAT64

DNS64帮助拿到IPv6的地址后,接下来就是NAT64登场,帮助IPv6的Packet顺利接入IPv4的公网当中。IPv4的公网环境路由器只认识IPv4的地址,所有这里当然也需要一个中间设备来做协议转换。NAT64就扮演这个角色。

 
我在上面的流程图当中已经比较清晰的画出了NAT64的工作方式。其实就是内部同时有IPv4和IPv6的网卡,IPv4的网卡配了一个IPv4的地址池子,再通过端口映射的方式将IPv4地址和IPv6地址对应,同时再做一些协议的转换,毕竟IPv4和IPv6的header完全不同。说白了就是一个内部路由的功能,将奔向IPv4公网的包做了地址和协议的转换。
 

也可以跳过DNS查询,直接自己将IPv4的地址转化成IPv6的地址。类似这样:

const char* ipv4mapped_str ="64:ff9b::121.43.xx.xxx";

 

以上是关于iOS ipv6的主要内容,如果未能解决你的问题,请参考以下文章

IOS - 上APPSTORE为何因IPv6被拒?

IOS - 上APPSTORE为何因IPv6被拒?

iOS 应用中支持 IPV6 的 pjsip 2.5.5

使用 ipv6 调用 CoCreateInstanceEx

iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6

为 IPv6 兼容性配置服务器(用于被拒绝的 iOS 应用程序使用的 API)