|
作者:中国电信数据事业部 IP网络产品处 沈 军
IPv6(Internet Protocol version 6)作为下一代互联网(IPng)的基础,是目前互联网领域替代IPV4的主流技术。目前IETF已经制定了大量的IPv6相关标准,包括地址结构、域名解析、自动配置、邻居发现、路由协议等方面,其他诸如安全、流量工程及服务质量等方面还在制定之中。IETF还于1996年建立了全球范围的试验床6Bone。目前世界各国的研究机构及运营商都在积极进行有关IPV6技术的研究和实验,以便为IPV6时代的来临积累足够的经验。
一、为什么要IPv6?
IPV6协议的出现是互联网的快速发展以及IPV4协议本身的不足的必然产物。IPV4地址空间严重不足,IPV4定义的IP地址长度为32bit。根据所支持的网络数和主机数的不同,又将地址分为A,B,C三类。由于对互联网发展的速度估计不足,在互联网的初期,人们认为地址空间非常宽裕,因此往往一个公司就能获得一个A类或B类地址。但是随着互联网的发展和移动上网和信息家电等新应用的出现,对IP地址的需求也呈指数级的增长。虽然人们认识到IPV4地址资源有可能不足之后,采取了CIDR及地址翻译(NAT)等补救措施,但终究无法根本解决IPV4地址匮乏的问题。
根据APNIC的统计亚太地区最近六个月的地址消耗率为34.3个B类地址/月,且这个数字呈逐月上升的趋势。目前全球可用地址已经不足半数,据专家估计,按现在的消耗速度,预计2005年IPV4地址将全部耗尽。因此现在IANA、APNIC等地址管理机构对地址申请的审批越来越严格。现在总部要为某省申请地址,往往需要提供地址使用情况、网络规划、设备订单等一系列材料,历时1-2月的时间才能完成。
由于中国电信Chinanet近几年网络规模和用户数量都在飞速发展,对地址的需求也随之大大增加。虽然经过各方的努力,Chinanet拥有的地址量有了成倍地增加,但我们也深刻地感觉到IP地址空间不足及网络迅速发展之间的矛盾给地址申请工作及网络的持续发展带来的巨大压力。
IPV4地址空间的不足已经成为采用IPV6的最直接原因。
路由表的膨胀
由于IPV4的地址分级结构不完善,以及由于地址紧缺而导致的地址分配机构分配的地址比较分散,使得各级路由器的路由表难以很好地聚合,路由表的路由条数在不断的增长。现在全球路由表有10.5万条,比三年前几乎翻了一倍。庞大的路由表使得路由器在寻路时的负载和工作效率大大降低。IPV6虽然没有根本解决路由数量的问题,但其良好的分级结构将有利于提高路由器的工作效率。
网络管理变得越来越复杂
随着互联网的不断扩张,越来越多的主机接入互联网,而IPV4难以实现自动发现和地址自动配置等功能,给网络管理带来了巨大的压力。IPV6中由于地址结构的改善,可以使得主机自动配置本机地址,从而简化了配置过程。
新的应用的出现对IP网络提出了新的要求
由于视频服务等新的应用的出现,客户对互联网的服务质量和安全性等有了更高的要求,而IPV4在设计时并没有考虑这些因素。同时IPV4对移动设备访问互联网也没有提供很好的支持。
虽然以上问题,在IPV4中已经采取了一些技术加以解决,如DHCP、VPN等,但采用IPV6后效率将变得更高,功能也会更加完善。
二、IPV6数据包结构
IPV6数据包由一个固定大小的基本包头和零个或多个扩展包头及数据段组成,如下图:
基本包头
扩展包头1
………
扩展包头N
数据
图1 IPV6数据包结构
这种结构的使用使得IPV6数据包变得功能强大,灵活,且便于处理。
IPV6基本包头
基本包头是IPV6包头的核心。首先看一下IPV4和IPV6包头的结构,如下图:
图2 IPV4包头
图3 IPV6包头
从IPV4和IPV6包头的比较可以看出,IPV6包头比IPV4的包头简单了很多,这样有利于提高路由器等的工作效率。另外两者的区别还在于:在IPV4和IPV6包头中都保留了版本号,但数值分别为4和6。
由于IPV4包头的长度是不固定的,因此有一个头长度字段,而IPV6基本包头的长度是固定的40个字节,因此取消了这一字段。同时,IPV4中数据包总长度字段被IPV6中的负载长度所替代。固定长度的包头也有利于提高软件处理包头的效率。
IPV4包头中的业务类型在IPV6包头中更名为流量类型。利用这一字段可以将IP包分为若干个级别,当网络发生拥塞时,可根据IP包优先级的高,采取丢弃或保留等不同手段实现QOS。
IPV4包头中的TTL在IPV6包头中更名为跳数限制。该字段是为了防止路由循环设置的,更名后使其名称和作用更加相符。
IPV6包头中删除了IPV4包头中分段偏移量,标识符,flags等字段,而将他们移到扩展包头中去了。
由于坏包将在链路层或传输层的校验下被丢弃,因此在网络层就没有必要再进行校验。因此IPV6包头中取消了IPV4包头中的校验项。
IPV4包头中的选项是为了提供安全、源路由等信息而设的。而在IPV6中这些功能都将在扩展包头中实现,因此在基本包头中删除了此字段。
IPV6中的数据流标记是用于为不同的数据流预留资源而设的,目前RSVP协议就已经定义了该字段的使用。
IPV6的下一包头字段用于说明下一扩展包头的类型。
IPV6中的源和目的地址不同于IPV4的32bits,是128bits。
IPV6扩展包头
扩展报头IPV6的扩展包头实现了IPV4包头中选项字段的功能,并进行了扩展。每一个扩展包头都有一个next header 字段,用于指明下一个扩展包头的类型。如下图:
基本包头
next header=routing
路由包头
next header=AH
认证包头
next header=TCP
TCP数据段
图4 扩展包头示例
目前IPV6定义的扩展包头有:逐跳选项报头、路由包头、分段包头、目的地选项包头、认证包头、负载安全封装包头等等。
三、IPV6地址
IPV6协议中最重要的就是对地址的扩充。IPV6地址为128比特,是IPV4地址长度的4倍。
IPV6地址的表示方法
IPV6地址的表示采用16进制的表示方法。将128bit分为8组,每组16比特,用4个16进制数表示,各组之间用“:”隔开,每组中最前面的0可以省略,但每组必须得有一个数,如:
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
1080:0:0:0:8:800:200C:417A
在IPV6地址段中有时会出现连续的几组0,这时这些0可以用“::”代替,但一个地址中只能出现一次“::”。如:
1080:0:0:0:8:800:200C:417A =1080::8:800:200C:417A
FF01:0:0:0:0:0:0:101=FF01::101
0:0:0:0:0:0:0:1=::1
某些情况下,IPV4地址需要包含在IPV6地址中,这时,最后两组用现在习惯使用的IPV4的十进制表示方法,前六组表示方法同上,如:
0:0:0:0:0:0:61.1.133.1 或::61.1.133.1
IPV6地址的类型
同IPV4地址一样,IPV6也被划分为若干种类型,主要有:
单播地址(unicast)
该地址标识某一单个接口。发往单播地址的包将被传送到该地址指向的接口。
任播地址(anycast)
该地址标识属于不同节点的一组接口。发往任播地址的包将被传送到该地址标识的某一个接口,通常是路由协议计算出的最近的那个接口。
组播地址(multicast)
同样该地址标识属于不同节点的一组接口。但发往组播地址的包将被传送到该地址标识的所有接口。
可聚类单播地址
单播地址分为若干种,可聚类单播地址是其中最重要和最常用的一种。其前缀为2000::/3。
有人计算,地球上每平方公里可分配4个IPV4地址,而每平方米就可以分配6*10^23个地址面对如此巨大的地址空间,如何进行合理的分配,成为一个重要问题。一种合理的分配地址的方法就是将地址的分级结构与网络的分级结构联系起来。
为此可聚类单播地址被划分以下结构:
3
13
8
24
16
64bit
FP
TLA ID
RES
NLA ID
SLA ID
Inerface ID
图5 单播地址结构
FP:格式前缀,为001;
TLA ID :Top-Level Aggregation Identifier,标识该地址处于路由分级结构的顶级。
RES:8bit。预留,需设置为0。当TLA ID或NLA ID不够用时,可向RES扩展。
NLA ID:Next-Level Aggregation Identifier用于拥有TLA ID的网络标识其下一级的各个网络。
SLA ID:Site-Level Aggregation Identifier用于标识某一网络其内部的分级结构。
Inerface ID:64bit,为符合EUI-64格式的接口地址,用于标识某条链路上的接口。大多数情况下为接口的链路层地址。
各种网络协议对IPV6的支持
目前,IETF已经制定了一系列RFC,以支持IPV6网络的运行,主要有:
RFC2545 Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain
Routing
RFC2740 OSPF for IPv6
RFC2461 Neighbor Discovery for IP Version 6
RFC2463 ICMP for IP Version 6
RFC2464 Transmission of IPv6 Packets over Ethernet Networks
RFC2472 IP Version 6 over PPP
RFC1886 DNS Extensions to support IP version 6
四、IPv4向IPv6的过渡
尽管IPv6比IPv4具有明显的先进性,但要想在短时间内将Internet和各个企业网络中的所有系统全部从IPv4升级到IPv6是不可能的,IPv6与IPv4系统在互联网中长期共存是不争的现实。人们将IPV6和IPV4之间的关系比喻为岛与海洋的关系。IPV6网络从最初开始发展到目前为止,就象一个个孤岛被IPV4网络的海洋所包围,但是随着IPV6的发展,最终IPV6网络将变成一片汪洋大海,而IPV4网络则缩小为一座座孤岛,直至消失。为此,
IETF制定了IPv4向IPv6过渡的方案,其中主要有三个机制:兼容IPv4的IPv6地址、双IP协议栈和基于IPv4的隧道(Tunnel)技术。
兼容IPv4的IPv6地址
兼容IPv4的IPv6地址是一种特殊的IPv6单点广播地址,一个 IPv6节点与一个IPv4节点可以使用这种地址在IPv4网络中互通。这种地址是由96个0位加上32位IPv4地址组成的,例如,假设某节点的IPv4地址是192.56.1.1,那么兼容IPv4的IPv6地址就是0:
0:0:0:0:0:C038:101。但是这种方式并没有节省IPV4地址资源,因此很少采用。
双IP协议栈
双IP协议栈是在一个系统(如一个主机或一个路由器)中同时使用IPv4和IPv6两个协议栈。这类系统既拥有IPv4地址,也拥有IPv6地址,因而可以同时访问IPv4和IPv6两个网络。
基于IPv4的隧道(Tunnel)
基于IPv4隧道技术是将整个IPv6据报封装在IPv4数据报中,以实现两个IPv6节点通过IPv4骨干网络进行互通。它为三个步骤:封装、解封和隧道管理。封装,是指由隧道起始点创建一个IPv4包头,将
IPv6数据包封装在IPv4数据包的数据段进行传输。解封,是指由隧道终结点移去IPv4包头,还原原始的IPv6数据包。隧道管理,是指由隧道起始点维护隧道的配置信息,如隧道支持的最大传输单元(MTU)的尺寸。
五.国际国内IPV6发展现状及中国电信对IPV6应采取的策略
IPv6作为下一代互联网协议,其先进性和灵活性正在得到越来越多人的认可。
硬件设备方面,大多数的主流设备提供商,如Cisco,Juniper等都已经发布了支持IPV6的产品。许多新兴的网络公司也在着手开发支持IPv6的网络设备。
软件方面,如Microsoft、SUN等软件开发商,也都实现了对IPV6的支持,基于IPV6的各种系统软件和应用软件越来越丰富。
在网络方面,IETF在1996年就建立了名为6BONE的世界范围的实验网络,现在该网络已经有遍布世界50个国家和地区的近900个成员。日本等各个国家也纷纷建立了自己的IPV6实验网络。现在IPV6网络正逐渐从实验性走向商用化,例如NTT、IIJ等ISP都纷纷推出了商用IPV6网络。
地址方面,ICANN于199年正式授权APNIC等地址管理机构开始分配IPV6地址,目前全球共分配出去90个/35地址块。
众所周知,日本、韩国在推动IPV6技术发展方面最为积极,他们投入了大量的财力和人力开发研究IPV6技术。这一方面是由于亚太地区互联网正处于蓬勃发展的阶段,对IPV4地址资源的匮乏感受最深。另一方面是由于日本、韩国希望借IPV6技术之机,打破美国在互联网领域的绝对优势地位。
在国内Cernet也建立了自己的IPV6实验网,并于1998年6月加入了6BONE,于同年11月成为其骨干网成员,于2000年从APNIC获得了2001:250::/35的IPV6地址。通过该实验网他们在隧道管理、地址分配、IPV6应用等方面积累很多经验。
Chinanet作为国内最大的商业互联网,其IPV4网络的发展与日本、韩国基本处于同一水平,但目前我们的IPV6网络还是一片空白,已经大大落后于他们。因此,中国电信应该积极关注和参与国际IPV6的研究和合作,建立自己的实验网络,在IPV6地址的申请、规划和使用;与其它IPV6网络互连;IPV6的路由;IPV6和IPV4的互通;
IPV6域名;各种IPV6的应用服务等方面展开积极地探索,积累足够的经验以备将来顺利地从IPV4过渡到IPV6。
六.APNIC的IPV6地址政策
APNIC是由ICANN授权的亚太地区的地址管理机构。它于1999年开始受理IPV6地址申请。目前APNIC拥有的IPV6地址范围为:2001:0200::/29
- 2001:03F8::/29。
ICANN经过讨论,针对首次IPV6地址分配,对可聚类全球IPV6地址分配的结构进行了修改,如下图:
3
13
13
6
13
16
64bit
FP
TLA ID
Sub-TLA ID
RES
NLA ID
SLA ID
Inerface ID
35 48
图6 APNIC地址结构
因此某个会员首次申请地址,将获得一个/35的地址块,并且APNIC会预留6个bit的地址给该会员,即该会员随着网络的发展,最终将获得一个连续的/29地址块。APNIC建议分配给某个用户的最小地址块为/48。到目前为止APNIC已经分配出去43个/35。
IPV6地址申请的规则分为一般规则和初始阶段(bootstrap period)规则.
一般规则规定申请IPV6地址的组织必须具备的首要条件是它已经与另外三个组织的IPV6网络建立了peer关系。
由于在IPV6地址开始正式分配的初期,以上条件很难满足,于是ICANN又定义了一个初始阶段。在初始阶段,申请IPV6地址的组织只要已经与至少三个具有公有AS号的组织互连,有在12个月内提供IPV6服务的计划等就可以申请IPV6地址。当全球的IPV6地址分配超过100个则初始阶段结束,或者某个地区(如亚太区)的IPV6地址分配超过60个,则该地区的初始阶段也结束。
目前全球已经分配了90个IPV6地址块。但是IPV6网络还没有大家预期的那么成熟,因此ICANN决定延长初始阶段至全球200个IPV6地址分配和120个地区分配。
中国电信应该利用初始阶段比较宽松的条件,申请自己的IPV6地址。
七.关于6BONE
中国电信要进行IPV6的实验,就必须和国际上现有的IPV6网络互连,尤其是6BONE,因为APNIC是不给实验网络分配地址的,因此Chinanet实验网只能通过与6BONE互连获得6BONE地址。因此我们有必要清楚地了解6BONE的政策
1.6BONE的构架
1996年6BONE由IETF建立,现在已经发展成为一个覆盖到全球近50个国家和地区的分级架构的IPV6实验网络,它为IPV6各种协议和相关产品的研究和开发,为IPV4到IPV6的过渡及IPV6网络的运营提供了一个良好的实验环境,成为IPv6研究者、开发者和实践者的主要平台。6Bone是一个虚拟的网络,它建立在IPV4架构上,以隧道(tunnel)的方式通过基于IPv4的互联网实现互联。
6BONE的网络分三层,分别是:骨干节点、转接节点和叶子节点(如下图)。骨干节点之间的路由是基于BGP4+的,转接节点和一个或多个骨干节点相连,并为叶子节点提供转接服务。骨干网之外多采用静态路由,但使用IPV6的RIPng和BGP+路由协议的也越来越多。
6BONE使用的地址是基于rfc2471的实验用IPV6地址,其地址前缀为3FFE::/16。地址的分级和网络拓扑的分级完全吻合。骨干节点实验性地扮演TLA(Top
Level Aggregators)的角色,他们负责给非骨干网的节点分配地址,这样可以加强了地址聚合的有效性。每个骨干节点拥有一段/24或/28的地址。6BONE现拥有67个骨干节点,包括CERNET,WIDE,NTT,CISCO等。
2.加入6BONE的步骤:
因为6BONE是一个实验网,是由很多个网互连组成的,因此管理上比较松散。加入6BONE的步骤如下:
先加入6BONE的mail-list,以便及时地了解6BONE的最新政策和现状。
设计实验网的结构,选择合适的设备。
从6BONE的骨干节点或转接节点中寻找一个接入点。为此必须和选定的接入节点进行协商,达成协议。一般选择的接入点应和本网络有直接的IPV4连接,因为两点之间将通过IPV4的隧道进行连接。
在6BONE数据库中进行注册。注册的项目包括:PERSON、MNTNER等。只有完成了这些注册项,才能上联,才能获得地址,才能让其他的IPV6网络知道你。
配置IPV6网络的路由器和服务器等设备。
向与本网络互连的上级网络索取IPV6地址。同时对方网络还将在6BONE数据库中为你生成一个针对这段地址的inet6num管理对象。一般分配的地址段大小为/48。
和对端网络建立隧道,实现互通。然后再6BONE数据库中的ipv6-site对象中加入这个隧道的信息。
配置IPV6域名服务器。
3.6BONE的路由政策
6BONE的路由政策都是从实际运营的经验中总结出来的,包括路由的广播、特殊地址的处理及路由的聚合。
1).6BONE的一般规则如下:
link-local地址前缀
link-local地址前缀(FE80::/10)不能通过IGP或EGP广播,在任何情况下,在骨干网路由表中都不应该出现这种前缀。
Site-local地址前缀
Site-local地址前缀(FEC0::/10)只能在一个site的范围内通过IGP或EGP广播。它不能在转接NLA、TLA及叶子节点间广播。
Loopback和未定义的地址前缀
Loopback地址(::1/128)和未定义的地址前缀(::0/128)不能通过任何路由协议广播。
组播地址
组播地址(FF00::/8)一定不能通过单播路由协议广播。全球范围的组播地址可以通过转接NLA和TLA进行路由。组织级的组播地址可以从NLA向它的叶子节点路由。节点级(Site-local)的组播地址不能通过转接NLA或TLA路由。而link-local或node-local的组播地址在任何情况下都不能路由。
与IPv4适配的地址
与IPv4适配的地址(::a.b.c.d)不能再6BONE中路由,它可以通过IGP广播,但不能通过EGP向转接NLA或TLA广播。
缺省路由
6BONE的骨干网不能用缺省路由。仍未定义的单播地址一定不能再6BONE中广播site间链路的地址,必须用统一单播地址。
2).6BONE的路由政策:
叶子节点或NLA只能向上游广播它分配给本网络的地址。尤其是当该叶子节点有多个上游网络时,也应遵守这个规则。除非是基于实验目的。
叶子节点的边缘节点一定不能向上游网络广播比被分配的地址更小的地址块。
所有的TLA也不能向其他TLA广播比其TLA地址(/24 or /28)更小的地址块。
3).如果发现有违反上述原则的情况,无论是广播方还是接受方都有义务及时更正。
4.成为6BONE的TLA的条件
申请成为TLA的网络必须有至少3个月的作为6BONE的site或NLA的合格经验。
所谓合格经验是指:
及时准确的管理好在数据库中的ipv6-site inet6num, mntner,和 person 等对象,以及隧道。
和互连网络之间的联接及BGP4+路由稳定可靠,路由器可ping通。
服务器的域名解析及路由器的地址反向解析准确无误。
有能通过IPV6访问的系统,至少要有一个网页介绍本网提供的服务,该服务器应能ping通。
2).申请者必须有能力提供产品级的6BONE骨干网服务,至少应该:
至少有两名支持人员,并在数据库中注册。
提供一个信箱,以便与其它管理员之间的联系。
3).申请者应该具有潜在的用户群,并提供相应证据。
4).申请者应承诺遵守6BONE的相关政策。
|