新起点
IPv6
2020-03-28 21:23:20
网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网的网络层协议。用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对于IPv4有许多改进。IPv6的设计目的是取代IPv4,然而长期以来IPv4在互联网流量中仍占据主要地位,IPv6的使用增长缓慢。在2019年12月,通过IPv6使用Google服务的用户百分率首次超过30%。现今的互联网络发展蓬勃,截至2018年1月,全球上网人数已达40.21亿,IPv4仅能提供约42.9亿个IP位置。虽然当前的网络地址转换及无类别域间路由等技术可延缓网络位置匮乏之现象,但为求解决根本问题,从1990年开始,互联网工程工作小组开始规划IPv4的下一代协议,除要解决即将遇到的IP地址短缺问题外,还要发展更多的扩展,为此IETF小组创建IPng,以让后续工作顺利进行。1994年,各IPng领域的代表们于多伦多举办的IETF会议中,正式提议IPv6发展计划,该提议直到同年的11月17日才被认可,并于1996年8月10日成为IETF的草案标准,最终IPv6在1998年12月由互联网工程工作小组以互联网标准规范(RFC 2460)的方式正式公布。IPv6的计划是创建未来互联网扩展的基础,其目标是取代IPv4,虽然IPv6在1994年就已被IETF指定作为IPv4的下一代标准,由于早期的路由器、防火墙、企业的企业资源计划系统及相关应用程序皆须改写,所以在世界范围内使用IPv6部署的公众网与IPv4相比还非常的少,技术上仍以双架构并存居多。预计在2025年以前IPv4仍会被支持,以便给新协议的修正留下足够的时间。IPv6能解决的核心问题与互联网当前所面临的关键问题之间出现了明显的偏差,难以给互联网的发展带来革命性的影响。与IPv4的各种地址复用解决方案相比,IPv6能够降低复杂性和成本,然而当前却只有制造商较能够感受到这个优势,用户和运营商​​无法直接感受到,导致产业链缺乏推动IPv6的动力。在Internet上,数据以分组的形式传输。IPv6定义了一种新的分组格式,目的是为了最小化路由器处理的消息标头。由于IPv4消息和IPv6消息标头有很大不同,因此这两种协议无法互操作。但是在大多数情况下,IPv6仅仅是对IPv4的一种保守扩展。除了嵌入了互联网地址的那些应用协议(如FTP和NTPv3,新地址格式可能会与当前协议的语法冲突)以外,大多数传输层和应用层协议几乎不怎么需要修改就可以在IPv6上运行。当连接到IPv6网络上时,IPv6主机可以使用邻居发现协议对自身进行自动配置。当第一次连接到网络上时,主机发送一个链路本地路由器请求(solicitation)多播请求来获取配置参数。路由器使用包含Internet层配置参数的路由器宣告(advertisement)报文进行回应。在不适合使用IPv6无状态地址自动配置的场景下,网络可以使用有状态配置,如DHCPv6,或者使用静态方法手动配置。IPv6具有比IPv4大得多的编码地址空间。这是因为IPv6采用128位的地址,而IPv4使用的是32位。因此新增的地址空间支持2128(约3.4×1038)个地址,具体数量为340,282,366,920,938,463,463,374,607,431,768,211,456 个,也可以说成1632个,因为32位地址每位可以取16个不同的值。网络地址转换是当前减缓IPv4地址耗尽最有效的方式,而IPv6的地址消除了对它的依赖,被认为足够在可以预测的未来使用。就以地球人口70亿人计算,每人平均可分得约4.86×1028(486117667×1020)个IPv6地址。IPv6从IPv4到IPv6最显著的变化就是网络地址的长度。RFC 2373和RFC 2374定义的IPv6地址有128位长;IPv6地址的表达形式一般采用32个十六进制数。在很多场合,IPv6地址由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)。IPv6二进位制下为128位长度,以16位为一组,每组以冒号“:”隔开,可以分为8组,每组以4位十六进制方式表示。例如:2001:0db8:86a3:08d3:1319:8a2e:0370:7344 是一个合法的IPv6地址。类似于IPv4的点分十进制,同样也存在点分十六进制的写法,将8组4位十六进制地址的冒号去除后,每位以点号“.”分组,例如:2001:0db8:85a3:08d3:1319:8a2e:0370:7344则记为2.0.0.1.0.d.b.8.8.5.a.3.0.8.d.3.1.3.1.9.8.a.2.e.0.3.7.0.7.3.4.4,其倒序写法用于ip6.arpa子域名记录IPv6地址与域名的映射。同时IPv6在某些条件下可以省略:另外,::ffff:1.2.3.4 格式叫做IPv4映射地址。IPv4位址可以很容易的转化为IPv6格式。举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:0000:0000:0000:0000:FFFF:874B:2B34 或者::FFFF:874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为::ffff:135.75.43.52。IPv6地址可分为三种:IANA维护官方的IPv6地址空间列表。全局的单播地址的分配可在各个区域互联网注册管理机构或 GRH DFP 页面找到。IPv6中有些地址是有特殊含义的:IPv6数据包由两个主要部分组成:头部和负载。包头是包的前64比特,并且包含有源和目的地址,协议版本,通信类别(8位,包优先级),流标记(20比特,QoS服务质量控制),分组长度(16位),下一个头部(用于入栈解码,类似IPv4中的协议号),和跳段数限制(8位,生存时间,相当于IPv4中的TTL)。后面是负载。MTU至少1280字节长,在常见的以太网环境中为1500字节。负载在标准模式下最大可为65535字节,如果扩展报头设置了"jumbo payload"选项,则长度值被置为0。IPv6曾有两个有着细微差别的版本;在 RFC 1883 中定义的原始版本(现在废弃)和 RFC 2460 中描述的现在提议的标准版本。两者主要在通信类别这个选项上有所不同,它的位数由4位变为了8位。其他的区别都是微不足道的。由于分片(Fragmentation)只在IPv6的主机中处理,而IPv6也要求实现“MTU路径发现”来避免数据包需要被中间设备分片,所以IPv4头涉及分片的字段从IPv6基本头移出至专用的分片扩展报头中。在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类似于IPv4的协议字段功能。IPv6地址在域名系统中为执行正向解析表示为AAAA记录(所谓4A记录,类似地,IPv4表示为A记录(A record));反向解析在ip6.arpa(原先是ip6.int)下进行,在这里地址空间为半字节16进制数字格式。这种模式在RFC 3596给与了定义。AAAA模式是IPv6结构设计时的两种提议之一。另外一种正向解析为A6记录。也有一些其他的创新像二进制串标签和DNAME记录等。RFC 2874和它的一些引用中定义了这种模式。AAAA模式只是IPv6域名系统的简单概括,A6模式使域名系统中检查更全面,也因此更复杂:2002年8月的RFC 3363中对AAAA模式给与了有效的标准化(在RFC 3364有对于两种模式优缺点的更深入的讨论)。2004年7月时ICANN声称互联网的根域名服务器已经经过改进以同时支持IPv6和IPv4。缺点:工作:部署进度:网际网络安全协议(Internet Protocol Security,即IPsec)原本为IPv6开发,但是在IPv4中已经大量部署。IPsec最初是IPv6协议的强制要求,但后来改为可选项。在IPv6完全取代IPv4前,需要一些转换机制使得只支持IPv6的主机可以联系IPv4服务,并且允许孤立的IPv6主机及网络可以借由IPv4设施联系IPv6互联网。在IPv6主机和路由器与IPv4系统共存的时期时,RFC2893和RFC2185定义了转换机制。这些技术,有时一起称作简单互联网转换(SIT,Simple Internet Transition)。包含:许多转换机制使用隧道来把IPv6交通包封在IPv4网络中。这个解决方案并不完美,可能会增加延时以及引起路径最大传输单元发现(Path MTU Discovery)的问题,它并不总能运行,因为过时的网络设备可能不支持IPv6。有线电视基础上的Internet访问就是一个例子。在现代的有线电视网络中,光纤同轴混合网(HFC)的核心(比如大型核心路由器)是有可能支持IPv6的。然而,其他网络设备(比如一个线缆调制解调器终端系统(CMTS))以及用户设备(如线缆调制解调器)会需要软件更新或硬件更新来支持IPv6。这意味着线缆网络运营商必须调整适应隧道直至主干设备支持内部双堆栈。双堆栈(Dual IP stack implementation)是将IPv6视为一种IPv4的延伸,以共享代码的方式去实现网络堆栈,其可以同时支持IPv4和IPv6,如此是相对较为容易的。如此的实现称为“双堆栈”,并且,一个实现双堆栈的主机称为“双堆栈主机”。这步骤描述于RFC 4213。当前大部分IPv6的实现使用双堆栈。一些早期实验性实现使用独立的IPv4和IPv6堆栈。隧道(Tunneling)是另一个用来链接IPv4与IPv6的机制。为了连通IPv6互联网,一个孤立主机或网络需要使用现存IPv4的基础设施来携带IPv6数据包。这可由将IPv6数据包装入IPv4数据包的隧道协议来完成,实际上就是将IPv4当成IPv6的链接层。IP协议号码的41号用来标示将IPv6数据帧直接装入IPv4数据包。IPv6亦能加入UDP数据包,如为了跨过一些会阻挡协议41流量的路由器或NAT设备。其它流行的封装机制则有AYIYA和GRE。自动隧道(Automatic tunneling)指路由设施自动决定隧道端点的技术。RFC 3056建议使用6to4隧道技术来自动隧道,其会使用41协议来封装。 隧道端点是由远程知名的IPv4任播地址所决定,并在本地端嵌入IPv4位址信息到IPv6中。现今6to4是广泛布署的。Teredo是使用UDP封装的隧道技术,据称可跨越多个NAT设备。Teredo并非广泛用于布署的,但一个实验性版本的Teredo已安装于Windows XP SP2 IPv6堆栈中。IPv6,包含6to4隧道和Teredo隧道,在Windows Vista中默认是引导的。许多Unix系统只支持本地的6to4,但Teredo可由如Miredoo的第三方软件来提供。ISATAP借由将IPv4位址对应到IPv6的链路本地地址,从而将IPv4网络视为一种虚拟的IPv6区域连线。不像6to4和Teredo是站点间的隧道机制,ISATAP是一种站点内机制,意味着它是用来设计提供在一个组织内节点之间的IPv6连接性。在配置隧道中,如6in4隧道隧,隧道端点是要明确配置过的,可以是借由管理员手动或操作系统的配置机制,或者借由如tunnel broker等的自动服务。配置隧道通常比自动隧道更容易去调试,故建议用于大型且良好管理的网络。配置隧道在IPv4隧道上,使用网际协议中号码的41号。在局域网际网络注册管理机构耗尽所有可使用的IPv4位址后,非常有可能使新加入互联网的主机只具有IPv6连接能力。对这些须要向后兼容以能访问IPv4资源的客户端,须要布署合适的转换机制。一种转换技术是使用双堆栈的应用层代理,如网页代理服务器。一些对于应用程序无法得知但在其低层使用类NAT转换技术也曾被提出。但因为一般应用层协议所要求的能力其应用太广,其中大部分都被认定在实际上太不可靠,并且被认为应删除。

相关:

网站公告: