iOS的 IPv6-only

来源:互联网 发布:淘宝店铺上传视频软件 编辑:程序博客网 时间:2024/05/17 01:26

https://developer.apple.com/news/?id=05042016a


什么是 IPv6-ONLY ??

以前,大家都在用 IPv4,就是地址看起来是 114.255.40.66 的样子。然而,这样的地址已经不够用了,就有了类似 2001:da8:215:4009:250:56ff:fe97:40c7 这样的 IP 地址。

目前,一个网卡会同时使用这两张地址;在未来,一个网卡将仅有后面这样的 IPv6 地址。 使用这两种地址的设备是不能互相访问的,后来有了一些过渡技术让他们在某些情况下可以互相访问了。(如 DNS64/NAT64)

如何创造 IPv6-ONLY 测试环境?

MacOS 提供了这个功能。 使用 Mac 把有线网络共享到 WiFi,中间勾选 创建NAT64网络 即可。

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 包头,继续访问。 同时回来的数据包会被做反向处理。

    检查不兼容IPv6的代码

    搜一下工程里有没有下面的这些API,这些都是只针对IPv4做处理的,有的话就删了。

    inet_addr()inet_aton()inet_lnaof()inet_makeaddr()inet_netof()inet_network()inet_ntoa()inet_ntoa_r()bindresvport()getipv4sourcefilter()setipv4sourcefilter()
    解决方案http://www.zuimoban.com/jiaocheng/ios/2016/0507/7242.html

0 0
原创粉丝点击