IPv6.docx
《IPv6.docx》由会员分享,可在线阅读,更多相关《IPv6.docx(11页珍藏版)》请在冰点文库上搜索。
IPv6
IPv6跳过字词转换说明
汉漢▼▲
为了阅读方便,本文使用全文手工转换。
转换内容:
本文采用电脑和信息技术组全文转换[查看]•[编辑]•[强制刷新]
显示↓关闭↑说明
字词转换是中文维基的一项自动转换,目的是通过计算机程序自动消除繁简、地区词等不同用字模式的差异,以达到阅读方便。
字词转换包括全局转换和手动转换,本说明所使用的标题转换和全文转换技术,都属于手动转换。
如果您想对我们的字词转换系统提出一些改进建议,或者提交应用面更广的转换(中文维基百科全站乃至MediaWiki软件),或者报告转换系统的错误,请前往Wikipedia:
字词转换请求或候选发表您的意见。
网上协议
应用层
DHCP·DNS·FTP·Gopher·HTTP·IMAP4·IRC·NNTP·XMPP·POP3·SIP·SMTP·SNMP·SSH·TELNET·RPC·RTCP·RTP·RTSP·SDP·SOAP·GTP·STUN·NTP·SSDP·BGP·RIP·更多
传输层
TCP·UDP·TLS·DCCP·SCTP·
RSVP·PPTP·OSPF·更多
网络层
IP(IPv4·IPv6)·ICMP·ICMPv6·IGMP·
IS-IS·IPsec·更多
数据链路层
Wi-Fi(IEEE802.11)·WiMAX(IEEE802.16)·ARP·RARP·
ATM·DTM·令牌环·以太网·FDDI·帧中继·GPRS·EVDO·HSPA·HDLC·PPP·L2TP·ISDN·更多
物理层
以太网·调制解调器·电力线通信(PLC)·SONET/SDH·G.709·光导纤维·同轴电缆·双绞线·更多
本模板:
查看 • 讨论 • 编辑 • 历史
互联网协议版本6(IPv6)是被指定为IPv4继任者的下一代互联网协议版本,互联网中最先出现的应用到现在依然占有优势。
这是个用于分组交换互联网络的网上层协议。
驱使重新设计互联网协议的主要原因是,IPv4地址在可预见的未来中即将被耗尽。
IPv6在1998年12月被互联网工程任务小组(InternetEngineeringTaskForce,简称IETF)通过公布互联网标准规范(RFC2460)的方式定义出台。
IPv6具有比IPv4大得多的地址空间。
这是因为IPv6使用了128比特的地址,而IPv4只用32比特。
因此新增的地址空间支持2128(约3.4×1038)个地址。
这一扩展提供了灵活的地址分配以及路由转发,并消除了对网上地址转换(NAT)的依赖。
NAT是获得了广泛部署的减缓IPv4地址耗尽的最有效的方式。
[隐藏]
∙1背景与目标
∙2IPv6编址
∙3IPv6地址表示
o3.1IPv6地址的分类
o3.2特殊地址
∙4IPv6分组
∙5IPv6和域名系统
∙6IPv6部署与应用
∙7转换机制
o7.1双堆栈
o7.2穿隧
▪7.2.1自动穿隧
▪7.2.2组态穿隧(6in4)
o7.3用于只支持IPv6主机的代理和转译
∙8主要的IPv6公告
∙9参看
∙10相关的IETF工作组
∙11参考资料
∙12外部链接
[编辑]背景与目标
促使IPv6形成的主要原因是网络空间的匮乏。
从1990年开始,互联网工程任务小组(InternetEngineeringTaskForce,简称IETF)开始规划IPv4的下一代协议,除要解决即将遇到的IP地址短缺问题外,还要发展更多的扩展,为此IETF小组创建IPng,以让后续工作顺利进行。
1994年,各IPng领域的代表们于多伦多举办的IETF会议中正式提议IPv6发展计划,该提议直到同年的11月17日才被认可,并于1998年8月10日成为IETF的草案标准。
IPv6的计划是创建未来互联网扩充的基础,其目标是取代IPv4,预计在2025年以前IPv4仍会被支持,以便给新协议的修正留下足够的时间。
虽然IPv6在1994年就已被IETF指定作为IPv4的下一代标准,然而在世界范围内使用IPv6部署的公众网[1]与IPv4相比还非常的少[2]。
IPv6能解决的核心问题与互联网目前所面临的关键问题之间出现了明显的偏差,难以给互联网的发展带来革命性的影响。
与IPv4的各种地址复用解决方案相比,IPv6能够降低复杂性和成本,然而目前却只有制造商较能够感受到这个优势,用户和运营商无法直接感受到,导致产业链缺乏推动IPv6的动力。
[3]
[编辑]IPv6编址
从IPv4到IPv6最显著的变化就是网络地址的长度。
RFC2373和RFC2374定义的IPv6地址,就像下面章节所描述的,有128位长;IPv6地址的表达形式一般采用32个十六进制数。
IPv6中可能的地址有2128≈3.4×1038个。
也可以想象为1632个因为32位地址每位可以取16个不同的值(参考组合数学)。
在很多场合,IPv6地址由两个逻辑部分组成:
一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)
[编辑]IPv6地址表示
IPv6地址为128位长度,但通常写做8组每组四个十六进制的形式。
例如:
2001:
0db8:
85a3:
08d3:
1319:
8a2e:
0370:
7344
是一个合法的IPv6地址。
如果四个数字都是零,可以被省略。
例如:
2001:
0db8:
85a3:
0000:
1319:
8a2e:
0370:
7344
等同于
2001:
0db8:
85a3:
:
1319:
8a2e:
0370:
7344
遵从这些规则,如果因为省略而出现了两个以上的冒号的话,可以压缩为一个,但这种零压缩在地址中只能出现一次。
因此:
2001:
0DB8:
0000:
0000:
0000:
0000:
1428:
57ab
2001:
0DB8:
0000:
0000:
0000:
:
1428:
57ab
2001:
0DB8:
0:
0:
0:
0:
1428:
57ab
2001:
0DB8:
0:
:
0:
1428:
57ab
2001:
0DB8:
:
1428:
57ab
都是合法的地址,并且他们是等价的。
但
2001:
:
25de:
:
cade
是非法的。
(因为这样会使得搞不清楚每个压缩中有几个全零的分组)
同时前导的零可以省略,因此:
2001:
0DB8:
02de:
:
0e13
等于
2001:
DB8:
2de:
:
e13
如果这个地址实际上是IPv4的地址,后32位可以用10进制数表示;因此:
ffff:
192.168.89.9等价于:
:
ffff:
c0a8:
5909,但不等价于:
:
192.168.89.9和:
:
c0a8:
5909。
ffff:
1.2.3.4格式叫做IPv4映射地址,是不建议使用的。
而:
:
1.2.3.4格式叫做IPv4一致地址。
IPv4位址可以很容易的转化为IPv6格式。
举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:
0000:
0000:
0000:
0000:
0000:
874B:
2B34或者:
:
874B:
2B34。
同时,还可以使用混合符号(IPv4-compatibleaddress),则地址可以为:
:
135.75.43.52。
[编辑]IPv6地址的分类
IPv6地址可分为三种:
[1]
∙单播(unicast)地址
单播地址标示一个网上接口。
协议会把送往地址的分组投送给其接口。
IPv6的单播地址可以有一个代表特殊地址名字的范畴,如link-local地址和唯一区域地址(ULA,uniquelocaladdress)。
∙任播(anycast)地址
任播地址用于指定给一群接口,通常这些接口属于不同的节点。
若分组被送到一个任播地址时,则会被转送到成员中的其中之一。
通常会根据路由协议,选择"最近"的成员。
任播地址通常无法轻易分别:
它们拥有和正常单播地址一样的结构,只是会在路由协议中将多个节点加入网上中。
∙多播(multicast)地址
多播地址也被指定到一群不同的接口,送到多播地址的分组会被传送到所有的地址。
多播地址由皆为一的字节起始,亦即:
它们的前置为FF00:
:
/8。
其第二个字节的最后四个位用以标明"范畴"。
一般有node-local(0x1)、link-local(0x2)、site-local(0x5)、organization-local(0x8)和global(0xE)。
多播地址中的最低112位会组成多播组群识别码,不过因为传统方法是从MAC地址产生,故只有组群识别码中的最低32位有使用。
定义过的组群识别码有用于所有节点的多播地址0x1和用于所有路由器的0x2。
另一个多播组群的地址为"solicited-node多播地址",是由前置FF02:
:
1:
FF00:
0/104和剩余的组群识别码(最低24位)所组成。
这些地址允许经由邻居发现协议(NDP,NeighborDiscoveryProtocol)来解译连结层地址,因而不用干扰到在区网内的所有节点。
[编辑]特殊地址
IANA维护官方的(英文)IPv6地址空间列表。
全局的单播地址的指定可在RIR's或中找到(英文)GRHDFPpages。
IPv6中有些地址是有特殊含义的:
未指定地址
∙:
:
/128-所有位皆为零的地址称作未指定地址。
这个地址不可指定给某个网上接口,并且只有在主机尚未知道其来源IP时,才会用于软件中。
路由器不可转送包含未指定地址的分组。
Linklocal地址
∙:
:
1/128-是一种单播绕回地址。
如果一个应用程序将分组送到此地址,IPv6堆栈会转送这些分组绕回到同样的虚拟接口(相当于IPv4中的127.0.0.1)。
∙fe80:
:
/10-这些link-local地址指明,这些地址只在区域连接中是合法的,这有点类似于IPv4中的169.254.0.0/16。
唯一区域位域
∙fc00:
:
/7-唯一区域地址(ULA,uniquelocaladdress)只可在一群网站中绕送。
这定义在RFC4193中,是用来取代site-local位域。
这地址包含一个40位的伪随机数,以减少当网站合并或分组误传到网上时碰撞的风险。
这些地址除了只能用于区域外,还具备全局性的范畴,这点违反了唯一区域位域所取代的site-local地址的定义。
多播地址
∙ff00:
:
/8-这个前置表明定义在"IPVersion6AddressingArchitecture"(RFC4291)中的多播地址[2]。
其中,有些地址已用于指定特殊协议,如ff0X:
:
101将到达所有区域的NTP服务器(RFC2375)。
Solicited-node多播地址
∙ff02:
:
1:
FFXX:
XXXX-XX:
XXXX为相对应的单播或任播地址中的三个最低的字节。
IPv4转译地址
∙:
:
ffff:
0:
0/96-用于IPv4映射地址(参见以下的Transitionmechanisms)。
∙2001:
:
/32-用于Teredotunneling。
∙2002:
:
/16-用于6to4。
ORCHID
∙2001:
10:
:
/28-ORCHID(OverlayRoutableCryptographicHashIdentifiers)(RFC4843)。
这些是不可绕送的IPv6地址,用于加密散列识别。
文件
∙2001:
db8:
:
/32-这前置用于文件(RFC3849)。
这些地址应用于IPV6地址的示例中,或描述网上架构。
遭舍弃或删除的用法
∙:
:
/96-这个前置曾用于IPv4兼容地址,现已删除。
∙fec0:
:
/10-这个site-local前置指明这地址只在组织内合法。
它已在2004年九月的RFC3879中拾,并且新系统不应该支持这类型的地址。
[编辑]IPv6分组
IPv6分组的架构说明。
IPv6分组由两个主要部分组成:
头部和负载。
包头是包的前40字节并且包含有源和目的地址,协议版本,通信类别(8位,包优先级),流标记(20位,QoS服务质量控制),负载长度(16位),下一个头部(用于向后兼容性),和跳段数限制(8位,生存时间,相当于IPv4中的TTL)。
后面是负载,至少1280字节长,或者在可变MTU(最大传输单元)大小环境中这个值为1500字节。
负载在标准模式下最大可为65535字节,或者在扩展包头的"jumbopayload"选项进行设置。
IPv6曾有两个有着细微差别的版本;在RFC1883中定义的原始版本(现在废弃)和RFC2460中描述的现在提议的标准版本。
两者主要在通信类别这个选项上有所不同,它的位数由4位变为了8位。
其他的区别都是微不足道的。
分段(Fragmentation)只在IPv6的主机中被处理。
在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类似于IPv4的协议字段功能。
[编辑]IPv6和域名系统
IPv6地址在域名系统中为执行正向解析表示为AAAA记录(所谓4A记录)(类似的IPv4表示为A记录Arecords);反向解析在ip6.arpa(原先ip6.int)下进行,在这里地址空间为半字节16进制数字格式。
这种模式在RFC3596给与了定义。
AAAA模式是IPv6结构设计时的两种提议之一。
另外一种正向解析为A6记录并且有一些其他的创新像二进制串标签和DNAME记录等。
RFC2874和它的一些引用中定义了这种模式。
AAAA模式只是IPv6域名系统的简单概括,A6模式使域名系统中检查更全面,也因此更复杂:
∙A6记录允许一个IPv6地址在分散于多个记录中,或许在不同的区域;举例来说,这就在原则上允许网络的快速重编号。
∙使用域名系统记录委派地址被DNAME记录(类似于现有的CNAME,不过是重命名整棵树)所取代。
∙一种新的叫做比特标签的类型被引入,主要用于反向解析。
2002年8月的RFC3363中对AAAA模式给与了有效的标准化(在RFC3364有着对于两种模式优缺点的更深入的讨论)。
[编辑]IPv6部署与应用
2004年7月的ICANN声称互联网的根域名服务器已经经过改进同时支持IPv6和IPv4[4]。
缺点:
∙需要在整个互联网和它所连接到的设备上创建对IPv6的支持
∙从IPv4访问时的转换过程中,在网关路由器(IPv6<-->IPv4)还是需要一个IPv4地址和一些NAT(=共享的IP地址),增加了它的复杂性,还意味着IPv6许诺的巨大的空间地址不能够立刻被有效的使用。
∙遗留的结构问题,例如在对IPv6multihoming支持上一致性的匮乏。
工作:
∙6bone
∙ICMPv6
∙IPv6multihoming
[编辑]转换机制
在IPv6完全取代IPv4前,需要一些转换机制[3]使得只支持IPv6的主机可以连络IPv4服务,并且允许孤立的IPv6主机及网上可以借由IPv4设施连络IPv6互联网。
在IPv6主机和路由器与IPv4系统共存的时期时,RFC2893和RFC2185定义了转换机制。
这些技术,有时一起称作简单互联网转换(SIT,SimpleInternetTransition)。
[4]包含:
∙运作于主机和路由器之间的双堆栈IP实现
∙将IPv4嵌入IPv6地址
∙IPv6立于IPv4之上的隧道机制
∙IPv4/IPv6报头转换
[编辑]双堆栈
将IPv6视为一种IPv4的延伸,以共享代码的方式去实现网上堆栈,其可以同时支持IPv4和IPv6,如此是相对较为容易的。
如此的实现称为双堆栈,并且,一个实现双堆栈的主机称为双堆栈主机。
这步骤描述于RFC4213。
目前大部分IPv6的实现使用双堆栈。
一些早期实验性实现使用独立的IPv4和IPv6堆栈。
[编辑]穿隧
为了连通IPv6互联网,一个孤立主机或网上需要使用现存IPv4的基础设施来携带IPv6分组。
这可由将IPv6分组装入IPv4分组的穿隧协议来完成,实际上就是将IPv4当成IPv6的连结层。
IP协议号码的41号用来标示将IPv6数据讯框直接装入IPv4分组。
IPv6亦能将入UDP分组,如为了跨过一些会阻挡协议41交通的路由器或NAT设备。
其它流行的封装机制则有AYIYA和GRE。
[编辑]自动穿隧
自动穿隧指路由设施自动决定隧道端点的技术。
RFC3056建议使用6to4穿隧技术来自动穿隧,其会使用41协议来封装。
[5]隧道端点是由远程知名的IPv4任播地址所决定,并在本地端嵌入IPv4位址信息到IPv6中。
现今6to4是广泛布署的。
Teredo是使用UDP封装的穿隧技术,据称可跨越多个NAT设备。
[6]Teredo并非广泛用于布署的,但一个实验性版本的Teredo已安装于WindowsXPSP2IPv6堆栈中。
IPv6,包含6to4穿隧和Teredo穿隧,在WindowsVista中缺省是启动的。
[7]许多Unix系统只支持本地的6to4,但Teredo可由如Miredoo的第三方软件来提供。
ISATAP[8]借由将IPv4位址对应到IPv6的link-local地址,从而将IPv4网上视为一种虚拟的IPv6区域连接。
不像6to4和Teredo是站点间的穿隧机制,ISATAP是一种站点内机制,意味着它是用来设计提供在一个组织内节点之间的IPv6连接性。
[编辑]组态穿隧(6in4)
在组态穿隧中,如6in4穿隧,隧道端点是要明确组态过的,可以是借由管理员手动或操作系统的组态机制,或者借由如tunnelbroker等的自动服务。
[9]组态穿隧通常比自动穿隧更容易去除错,故建议用于大型且良好管理的网上。
组态穿隧在IPv4隧道上,使用网际协议中号码的41号。
[编辑]用于只支持IPv6主机的代理和转译
在局域网际网上注册管理机构耗尽所有可使用的IPv4位址后,非常有可能新加入互联网的主机只具有IPv6连接能力。
对这些须要向后兼容以能访问IPv4资源的客户端,须要布署合适的转换机制。
一种转换技术是使用双堆栈的应用层代理,如网页代理服务器。
一些对于应用程序无法得知但在其低层使用类NAT转换技术也曾被提出。
但因为一般应用层协议所要求的能力其应用太广,其中大部分都被认定在实际上太不可靠,并且被认为应删除。