将 IPv6 照进现实,我们需要做些什么?

  • 时间:
  • 浏览:1
  • 来源:uu快3新平台_uu快3诀窍_讨论群

Server start at:2200:3200:2000:xx:::200

wait for connection...

在手机上执行busybox telnet 2200:3200:2000:xx:: 200 命令

这是服务端打出的日志

Connected by('2409:8928:84e:995:xxxx:xxxx:xxxx:xxxx', 34102, 0, 0)

苹果4 6手机手机苹果4 6手机手机 iOS:在 v4 和 v6 双协议栈的情况报告下,从 ios9 时候 开始英语 苹果4 6手机手机苹果4 6手机手机会发出 A 和 AAAA 记录的 DNS 请求,否则首先收到了 DNS 的 AAAA 记录返回,这么 苹果4 6手机手机苹果4 6手机手机会马上发出v6 的 syn,否则首先收到了 A 记录的返回,会一另1个 25ms 的定时器,否则超时了就会发送 v4 syn,否则在这一 定时器内收到 AAAA 就会发送 v6 的 syn。这一 机制和 Happy Eyeball 基本一致,否则等待时间时长不同,苹果4 6手机手机苹果4 6手机手机会不用修改到 RFC 建议值未知。

下面看下在某运营商网络下终端拿到的地址信息:

首先是苹果4 6手机手机苹果4 6手机手机 苹果4 6手机手机苹果4 6手机手机,对于 v6 苹果4 6手机手机苹果4 6手机手机早在几年前就强推 APP 对于 IPv6 only 的支持,否则不通过这一 功能审核是不到上架 App Store 的。但当时对于 APP 开发者来说最为郁闷的是在国内很难找到一另1个商用的 IPv6 Only 环境进行测试,更多是 Mac 热点否则 WiFi APP 来模拟进行网络库的逻辑测试,在移动网下是这么 措施做测试的。而否则的问题报告 在目前 IPv6 改造期间一样面临,即在国内苹果4 6手机手机苹果4 6手机手机 苹果4 6手机手机苹果4 6手机手机 在移动网下不到获得 v4 地址,这么 v6 地址。为哪些地方呢,否则 苹果4 6手机手机苹果4 6手机手机 上边的 APN 设置是不到修改的,而内置 APN 中对于地址请求所携带的字段仅仅是 IPv4 类型,否则即使网络支持双栈,苹果4 6手机手机苹果4 6手机手机 还是不到获得v4地址,下图否则一另1个苹果4 6手机手机苹果4 6手机手机苹果4 6手机手机在移动网内的信令请求:

The algorithm proceeds as follows: if a positive AAAA response (a responsewith at least one valid AAAA record) is received first, the first IPv6connection attempt is immediately started. If a positive A response is receivedfirst due to reordering, the client SHOULD wait a short time for the AAAAresponse to ensure that preference is given to IPv6 (it is common for the AAAAresponse to follow the A response by a few milliseconds). This delay will bereferred to as the "Resolution Delay". The recommended value for theResolution Delay is 200 milliseconds. If a positive AAAA response is receivedwithin the Resolution Delay period, the client immediately starts the IPv6connection attempt.

碎片化的安卓带来了碎片化的双栈支持,这对客户端进行当前网络环境判断带来了很大挑战。

在手机,网络和服务端全链路支持双栈的场景下,手机首很难面对的否则一另1个取舍 问题报告 ,即一另1个域名会解挥发掉来 A 和 AAAA 记录,复杂化来说否则一另1个地址,一起去返回一另1个地址,缘何取舍 ?一另1个快,一另1个慢缘何取舍 ?一另1个出问题报告 缘何取舍 ?地址取舍 好了不时候 有后续的建连,才会有业务位于,就说 这一 取舍 策略有点痛 要。否则从体验深度1出发,谁快连谁这是最简单的逻辑,但在当前 v4 网络好于 v6 的大环境下否则的逻辑只会让 v6 的普及变得更为艰难,否则针对这一 问题报告 ,IET F先起了一另1个名字叫 Happy Eyeball,接着发布了两份 RFC 来描述推荐的解决逻辑,最新的是 RFC82005 Happy Eyeballs Version 2: Better Connectivity Using Concurrency,有兴趣的时候 去阅读下,这里只摘抄出最重要的一段:

从协议头来看 v4 和 v6 一另1个比较重要的差异否则 Don’t Fragment bit 这一 位一另1个劲开的,也否则否则一另1个劲是开的就说 在 IPv6 的头上边就这么 明示这一 字段,否则有fragment 就会增加一另1个 Fragemention Header。否则网络上边支持 v6 的路由器不用对对 IPv6 包进行分片,就说 否则一另1个包过大这么 路由器会产生 ICMP6 Type2 数据包,内含 Packet Too Big (PTB) 和 MTU 信息返回给发送方,否则机制看上去比较好,否则否则上边设备否则会过滤掉 PTB 数据包造成否则的通知发送方收不到影响正常传输,否则发送方最好在时候 开始英语 的时候 就何必 发送过大的数据包,目前一另1个建议参考值 MTU 是12200字节。

IPv6 在相当长一段时间内没不用时候 在公众网中普及,有点痛 要的一另1个导致 否则各方的动力缺陷,我其实一另1个劲在宣传 IPv4 地址缺陷用了,但缝缝补补还是让互联网走了这么 多年。否则抛开动力缺陷来看,IPv6 的普及我我其实是一另1个系统工程,须要的是端、管、云,三方的协同支持,这么 大家 先看下端,也否则手机的支持情况报告。

说完了端,下一步就须要看看管,即运营商到底对于 v6支持的现状怎么还可以,策略怎么还可以?如开篇所说抛开固网不谈,在移动网的场景下,三大运营商都否则开通了IPv4IPv6 的双栈支持。不过须要说明的是,这里的双栈支持管道特指下图中从空口到移动核心网这里,至于骨干网和阿里网络的双栈支持要根据各个运营商的互联情况报告来看。



一般用户回拿到 IPv4v6 双栈地址,v6地址的 DNS 都是须要的这一 省份否则这么 ,但在双栈情况报告下否则 DNS 能支持 AAAA 记录的解析查询即可。

PDN Type 字段需否则 IPv4/IPv6, PDN Address and Prefix(IPv6) 是全零。

Create Session Response 是核心网对手机的响应。

IPv6这一 否则以解决地址短缺问题报告 而出现的技术位于了时候,但否则种种导致 没在世界范围内普及,尤其是没在中国普及。今天的文章都是 IPv6 科普文章,也这么 太满的涉及到网络怎么还可以改造,业务怎么还可以适配,更多的是从用的深度1来看现状。另外从我这一 人深度1,移动网 IPv6 化会走在固网 IPv6 的前面,移动网应该是双栈的策略,就说 文章的分析都是以移动网为前提,固网暂不涉及。

否则的机制从理论上就会出现否则这一 等待时间时长造成业务体验的下降。

上边蕴含 了累似 PDN AddressPrefix 和 DNS Server 的信息,但你否则会很奇怪发现这一 Prefix 都是一另1个真正的 Prefix,也和手机获得到的地址格式有就说 差异。

国内三大运营商都基于此技术要求做了进一步的细化,这里不再描述细节,但从地址大段上来看中国移动使用的2409:20000::/20IPv6地址,中国联通使用的2408:20000::/20 IPv6地址,中国电信则有240E::/24、240E::/20、2001:0C68 ::/32、2001:07FA:0010::/48、2402:82000::/32 五块地址。

否则系统的限制,否则取舍 逻辑的落地是客户端网络库无关的,基于网络材料来看目前各系统的具体实现:

但在这里还有几个坑须要告知:

odin:/ $ busyboxnetstat

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 10.84.66.147:43623 111.13.134.131:443 CLOSE_WAIT

tcp 0 0 10.84.66.147:420051 140.205.34.21:443 ESTABLISHED

tcp 0 0 ::ffff:10.84.66.147:49856 ::ffff:112.13.64.13:5333 ESTABLISHED

tcp 0 0 ::ffff:10.84.66.147:37201 ::ffff:39.106.239.196:443 ESTABLISHED

tcp 0 0 ::ffff:10.84.66.147:55440 ::ffff:118.194.55.183:5223 ESTABLISHED

tcp 0 0 2409:8928:84e:995:3b4a:38ce:8ead:1972:34102 2200:3200:2000:xxxx:::200ESTABLISHED



IPv6 的序幕时候 拉开,这篇文章也仅是粗浅的初步分析,抛砖引玉。随着时间的推移,文中的这一 举例也否则随着网络演进否则策略更改而变化,就说 若有不对的地方还请见谅,希望在上边的过程中不用时候 积累沉淀出更多的实践和思考,提升 IPv6 下的业务体验。

下面否则要进入重要的 IPv6 地址获得环节了,即以上的2409开头的 v6地址客户端是缘何获得到呢,这一 地址哪些地方地方玄机吗?移动网内手机和网络通讯有一另1个面,一另1个是控制面也否则俗称的信令面,这一 层面 APP 是感知不到的,否则是用户面,即APP 正常的业务数据流都走在这里。在 IPv4 only 的场景下,手机地址的获得单纯通过控制面的信令交互即可,但在 IPv4 IPv6 双栈场景下,流程就位于了这一 变化。先来看信令面:

这时候 就须要再看一下用户面的消息:

Android:优选 v6,但等待时间时长未知。

原文发布时间为:2019-07-29

本文作者:南书

本文来自云栖社区合作者协议伙伴“阿里技术”,了解相关信息时候 关注“阿里技术”。

根据 IPv6 地址分配规则,FE200开头的是链路单播地址,FF02::1是所有开启了 IPv6组播的主机,再来看下 Router Advertisement 消息:

上边标黄的地方显示 PDN type 为 IPv4。否则双栈语句,这里的 type 类型是IPv4IPv6。在国家机构,运营商的联合推动下,苹果4 6手机手机苹果4 6手机手机苹果4 6手机手机从 iOS12.1 时候 开始英语 否则开启了默认双栈的支持。

其中 Connected by ('2409:8928:84e:995:xxxx:xxxx:xxxx:xxxx 为服务端看完的手机地址,34102为对应的端口号,这么 这一 地址和端口号是都是手机自身的呢,去手机上看一下:

Create Session Request 是手机发给核心网的,上边携带了几个重要的信息:

根据工信部2014年发布的《YD/T 2682-2014 IPv6接入地址编址编码技术要求》,其中对用户设备接入地址型态的指导性意见为:

在移动网不到 IPv4 的场景下,手机用户访问服务端的整个链路中必不可少的一另1个上边设备否则运营商的防火墙,一方面为了应对 v4 地址稀缺的问题报告 ,设备会做公私网的地址翻译,为了更进一步的复用地址,时候 做端口翻译,这一 人面为了安全性考虑,设备会做这一 累似 ACL 的安全策略,通常只会允许出方向的访问,一起去为了降低对于设备的负荷,时候 做这一 超时的设置,断开哪些地方地方空闲较长的连接。而否则的限制对于服务端这一 过度依赖地址的应用,对于端口转换不友好的应用,对于须要长期保活的应用时候 产生一定的影响,这么 在 IPv4v6 双栈的场景下怎么还可以呢,我做了如下的测试:在一台有公网 IPv6 地址的服务器上简单用 python 写了一另1个开启200端口的服务端:

这一 消息就蕴含 了重要的 Prefix 字段,这是基于 IPv6 stateless Autonomous Address-Configuration(SLACC) 的实现,从后续的数据流时候 看完,手机收到了这一 64位的前缀后补充了上边的64位组合成删剪的128位IPv6地址作为源地址进行正常的业务访问。不过稍微有这一 问题报告 的是这上边的64位地址是缘何生成的,从多次测试来看每次后64位都是变化的,否则在手机上构造包须要 root,所时候 续条件具备情况报告下会进行通过构造不同后64位的数据报文来进行测试,看看网络是都是仅靠前64位来识别用户的。

下面该谈到 Android 了,安卓相对来说开放这一 的,大多数的手机都时候 支持 APN协议编辑,否则每项手机否则缺省设置变成了 IPv4IPv6 双栈协议支持,如下截图:

简单来说否则 RFC 建议优选 IPv6,且给 AAAA 记录的返回留200毫秒的容忍期。

从上边输出来看,运营商的上边设备这么 做 NAT,也这么 做 PAT,服务端看完了手机发出的原始的源地址和源端口,当然防火墙还是有的,主动从服务端还是不到访问手机。

阿里妹导读:随着中共中央办公厅、国务院办公厅印发了《推进互联网协议第六版(IPv6)规模部署行动计划》后,整个 IPv6 产业链时候 开始英语 活跃起来。我其实目前大家 距离世界上每一粒沙子都一另1个地址的梦想还有点痛 远,但加速推进的大趋势应该是不争的事实。否则大家 在仰望星空的一起去还须要脚踏实地,这么 IPv6 的现实是怎么还可以的呢,大家 还须要准备哪些地方呢,这否则这篇文章让你表达的。

接着就面临到了最后一另1个问题报告 ,即这一 地址有玄机吗?128位的地址一方面否则你很难记,这一 人面也给地址扫描造成了巨大的难度,否则哪些地方地方地址都是删剪随机的,这么 对于哪些地方地方依赖地址信息的后端业务来说将是巨大的灾难。不过运营商帮大家 在一定程度上解决了这一 问题报告 ,但大家 的出发点是为了更好的监管,也否则在文章片头的那句世界上的每一粒沙子都一另1个地址上边要加进去去世界上每一粒沙子都是可被追踪的。

不过这里须要说明的是目前双栈仅在 4G 下开启,也否则说回到 2G 会变成 IPv4 only,这又该客户端对于当前网络环境判断增加了变数;还有否则否则目前地址具有了一定的位置属性,这么 跨区县移动场景下的地址分配缘何解决还暂不明确。

其中: