IPV6
IPV6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。目前IP协议的版本号是4(简称为IPV4),它的下一个版本就是IPv6。IPv6正处在不断发展和完善的过程中,它在不久的将来将取代目前被广泛使用的IPv4。每个人将拥有更多IP地址。
2012年6月6日,新一代因特网协议IPv6将在今天正式上线。根据IPv6LaunchDay官网的统计,截至4日为止美国参加IPv6Launch的网站已有71%可在IPv6上存取,中国则为65%左右。
背景与目标[ ]
促使IPv6形成的主要原因是网络空间的匮乏。从1990年开始,网际网路工程任务小组(Internet Engineering Task Force,简称IETF)开始规划IPv4的下一代协定,除要解决即将遇到的IP位址短缺问题外,还要发展更多的扩充功能,为此IETF小组创建IPng,以让后续工作顺利进行。1994年,各IPng领域的代表们于多伦多举办的IETF会议中正式提议IPv6发展计划,该提议直到同年的11月17日才被认可,并于1998年8月10日成为IETF的草案标准。
IPv6的计划是建立未来互联网扩充的基础,其目标是取代IPv4,预计在2025年以前IPv4仍会被支持,以便给新协议的修正留下足够的时间。
虽然IPv6在1994年就已被IETF指定作为IPv4的下一代标准,然而在世界范围内使用IPv6部署的公众网与IPv4相比还非常的少。
IPv6所能够解决的核心问题与互联网目前所面临的关键问题之间出现了明显的偏差,难以给互联网的发展带来革命性的影响。与IPv4的各种地址复用解决方案相比,IPv6能够降低复杂性和成本,但却是只有制造商目前才能够感受到,用户和运营商不能直接感受到,结果导致整个产业链缺乏推动IPv6的动力。
IPV6的特点[ ]
- IPV6地址长度为128比特,地址窨增大了296倍;
- 灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPV4中可变长度的选项字段。IPV6中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度。
- IPV6简化了报文头部格式,字段只有7个,加快报文转发,提高了吞吐量;
- 提高安全性。身份认证和隐私权是IPV6的关键特性。
- 支持更多的服务类型;
- 允许协议继续演变,增加新的功能,使之适应未来技术的发展。
IPV6的优势[ ]
与IPV4相比,IPV6具有以下几个优势:
- IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
- IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
- IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
- IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
- IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。
IPV6 封包[ ]
IPv6封包由两个主要部分组成:头部和负载。
包头是包的前40字节并且包含有源和目的地址,协议版本,通信类别(8位元,包优先级),流标记(20位元,QoS服务质量控制),负载长度(16位),下一个头部(用于向后兼容性),和跳段数限制(8位元,生存时间,相当于IPv4中的TTL)。后面是负载,至少1280字节长,或者在可变MTU(最大传输单元)大小环境中这个值为1500字节。负载在标准模式下最大可为65535字节,或者在扩展包头的"jumbo payload"选项进行设置。
IPv6曾有两个有着细微差别的版本;在RFC 1883中定义的原始版本(现在废弃)和RFC 2460中描述的现在提议的标准版本。两者主要在通信类别这个选项上有所不同,它的位数由4位变为了8位。其他的区别都是微不足道的。
分段(Fragmentation)只在IPv6的主机中被处理。在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类似于IPv4的协议字段功能。
IPV6和域名系统[ ]
IPv6地址在域名系统中为执行正向解析表示为AAAA记录(所谓4A记录)(类似的IPv4表示为A记录A records);反向解析在ip6.arpa(原先ip6.int)下进行,在这里地址空间为半字节16进制数字格式。这种模式在RFC 3596给与了定义。
AAAA模式是IPv6结构设计时的两种提议之一。另外一种正向解析为A6记录并且有一些其他的创新像二进制串标签和DNAME记录等。RFC 2874和它的一些引用中定义了这种模式。
AAAA模式只是IPv6域名系统的简单概括,A6模式使域名系统中检查更全面,也因此更复杂:
- 6记录允许一个IPv6地址在分散于多个记录中,或许在不同的区域;举例来说,这就在原则上允许网络的快速重编号。
- 使用域名系统记录委派地址被DNAME记录(类似于现有的CNAME,不过是重命名整棵树)所取代。
- 一种新的叫做比特标签的类型被引入,主要用于反向解析。
2002年8月的RFC 3363中对AAAA模式给与了有效的标准化(在RFC 3364有着对于两种模式优缺点的更深入的讨论)。
IPV6部署与应用[ ]
2004年七月的ICANN声称互联网的根域名服务器已经经过改进同时支持IPv6和IPv4。
缺点:
- 需要在整个互联网和它所连接到的设备上建立对IPv6的支持
- 从IPv4访问时的转换过程中,在网关路由器(IPv6<-->IPv4)还是需要一个IPv4地址和一些NAT(共享的IP地址),增加了它的复杂性,还意味着IPv6许诺的巨大的空间地址不能够立刻被有效的使用。
- 遗留的结构问题,例如在对IPv6 multihoming支持上一致性的匮乏。
工作:
- 6bone
- ICMPv6
- IPv6 multihoming
转换机制[ ]
双堆叠[ ]
将 IPv6 视为一种 IPv4 的延伸,以共享程式码的方式去实作网路堆叠,其可以同时支援 IPv4 和 IPv6 ,如此是相对较为容易的。如此的实作称为双堆叠,并且,一个实作双堆叠的主机称为双堆叠主机。这步骤描述于 RFC 4213 。
目前大部分 IPv6 的实现使用双堆叠。一些早期实验性实作使用独立的 IPv4 和 IPv6 堆叠。
穿隧[ ]
为了连通 IPv6 网际网路,一个孤立主机或网路需要使用现存 IPv4 的基础设施来携带 IPv6 封包。这可由将 IPv6 封包装入 IPv4 封包的穿隧协议来完成,实际上就是将 IPv4 当成 IPv6 的连结层。
IP 协议号码的 41 号用来标示将 IPv6 资料讯框直接装入 IPv4 封包。IPv6 亦能将入 UDP 封包,如为了跨过一些会阻挡协议 41 交通的路由器或 NAT 设备。其它流行的封装机制则有AYIYA和GRE。
自动穿隧[ ]
自动穿隧指路由设施自动决定隧道端点的技术。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[8] 借由将 IPv4 位址对应到 IPv6 的 link-local 位址,从而将 IPv4 网路视为一种虚拟的 IPv6 区域连线。不像 6to4 和 Teredo 是站点间的穿隧机制, ISATAP 是一种站点内机制,意味着它是用来设计提供在一个组织内节点之间的 IPv6 连接性。
组态穿隧 (6in4)[ ]
在组态穿隧中,如6in4穿隧,隧道端点是要明确组态过的,可以是借由管理员手动或作业系统的组态机制,或者借由如 tunnel broker 等的自动服务。组态穿隧通常比自动穿隧更容易去除错,故建议用于大型且良好管理的网路。
组态穿隧在 IPv4 隧道上,使用网际协议中号码的 41 号。
只支持IPv6主机的代理和转译[ ]
在区域网际网路注册管理机构耗尽所有可使用的 IPv4 位址后,非常有可能新加入网际网路的主机只具有 IPv6 连接能力。对这些须要向后相容以能存取 IPv4 资源的客户端,须要布署合适的转换机制。
一种转换技术是使用双堆叠的应用层代理,如网页代理服务器。
一些对于应用程式无法得知但在其低层使用类 NAT 转换技术也曾被提出。但因为一般应用层协议所要求的能力其应用太广,其中大部分都被认定在实际上太不可靠,并且被认为应删除。