摘要:IPv6是下一代互联网采用的核心协议。本文介绍了IPv6技术发展背景、新特性、地址空间、地址格式、地址表示方法、地址类型、地址范围、IPv4到IPv6的过渡技术,以及在国土资源部的具体应用。
关键词:IPv6 路由 无状态的地址配置 双协议栈技术 隧道技术
1 IPv6诞生的发展背景
Internet协议的第4版(IPv4)为TCR/IP族和Internet提供了基本的通信机制。IP技术已经广泛应用了10多年,互联网的影响已经渗透到社会的各个方面,同时,互联网的发展也成为国家信息化和现代化建设的重要部分,并产生了重大的经济效益和社会效益。随着Internet的指数增长,互联网的体系结构由NSFNET核心网络演变为由ISP(Internet Service,Provider互联网络提供商)运营的分散的体系结构。当前互联网面临的一个严峻问题是地址消耗严重,即没有足够的地址来满足全球的需要。IPv4的问题逐渐显露出来,32位的IP地址空间枯竭、路由表急剧膨胀、路由选择效率不高、对网络安全和多媒体应用的支持不够,配置复杂,对移动性支持不好,很难开展端到端的业务等,这些问题已经成为制约互联网发展的重要障碍,而IETF开发的IPv6下一代网络彻底、有效地解决了目前IPv4所存在的上述问题。
2 IPv6的新特性
(1)巨大的地址空间
IPv6的源地址和目标地址都是128位的(16字节),几乎可以不受限制地提供IP地址。128位可以表达超过3.4×1038种可能的组合,也就是说整个地球的每平方米面积上可以分配6.65×1023个IP地址,设计这种巨大的地址空间的目的是为了能更好的把路由器域名划分出层次结构,并更好地反映出现代Internet的拓扑结构,使寻址和路由层次的设计更具灵活性,允许使用多级的子网划分和地址分配,涵盖范围从Internet骨干直到机构组织内部的各个子网,这些正是基于IPv4的Internet所缺乏的。即便是算上目前已为主机分配的所有IP地址,IPv6仍然还有充足的地址可供今后使用。由于有绝对更多地可用地址,就不再需要一些节约地址的技术,比如NAT转换,这样就可以全面建立端到端的连接了。
(2)新的协议头格式
IPv6的协议头采用一种新的格式,可最大程度地减少协议头开销。IPv6的报头有一个基本包头和多个扩展包头构成,基本包头具有40字节的固定长度,放置所有路由器都需要处理的信息。由于Internet上的绝大部分包都只是被路由器简单地转发,因此固定的包头长度有助于加快路由速度。为实现这个目标,IPv6包头中字段的数量从IPv4中的12(包括选项)个,降到了8个;中间路由器必须处理的字段从6个降到了4个,这样网络中的中间路由器在处理这种简化的IPv6协议头时,效率就更高;很少使用的字段,如支持拆分的字段,以及IPv4包头中的选项,被移到了IPv6包头的扩展包头中。IPv6定义了多种扩展包头,能提供对多种应用的强力支持,同时又为以后支持新的应用提供了可能。IPv4头和IPv6头不具有互操作性。IPv6从功能上说,并不是IPv4的超集,也就是说它并不向下兼容IPv4。因此每台主机或路由器都必须既实现IPv4,又实现IPv6协议,以便识别和处理两种不同的协议头。虽然新IPv6中的地址位数是IPv4地址位数的4倍,但是,新IPv6协议头的长度仅是IPv4协议头的2倍。
(3)有效地、分级的寻址和路由结构
与IPv4地址空间的划分准则相似,IPv6地址空间也是基于地址中高位的值来进行划分的。高位和它们的固定值称为格式前缀(FP)。根据格式前缀位的多少划分IPv6地址空间,目前已分配的有为网络服务接入点(NSAP)、可集聚全球单播地址、链路本地单播地址、站点本地单播地址和多播地址,当前可被IPv6节点使用的单播地址集合由可集聚全球单播地址、链路本地单播地址和站点本地地址组成。IPv6中的全球地址中的字段创建了一个3层的拓扑结构。
IPv6使用全球地址的设计意图是创建一个有效地、分层次的并且可以概括的路由结构,这种路由结构是基于当前存在的多级ISP体系而设计的。公共拓扑是提供接人服务的大大小小的ISP的集合。站点拓扑是一个机构站点的内部子网的集合。接口标识符惟一地标识了一个机构站点的内部子网上的一个接口。在采用IPv6的Internet中,骨干路由器具有更小的路由表,这种路由表对应着全球ISP的路由结构。
(4)有状态和无状态的地址配置
为简化主机配置,IPv6既支持有状态的地址配置(例如,在有DHCPv6服务器时的地址配置),也支持无状态的地址配置(例如,在没有DHCPv6服务器)。在无状态的地址配置中,链路上的主机会自动地为自己配置适合于这条链路的IPv6地址(称为链路本地地址),或者适合于IPv4和IPv6共存的IP地址,或者由本地路由器加上了前缀的IP地址。甚至在没有路由器的情况下,同一链路上的所有主机,也可以自动配置它们的链路本地地址,这样不用手工配置也可以进行通信。链路本地地址在一秒钟之内就能自动配置完成,因此同一链路上的节点的通信几乎是立即进行的。相比之下,一个使用DHCP的IPv4主机则要等上整整1分钟:先放弃DHCP的配置,然后自己配置一个IPv4地址。
(5)内置的安全性
IPv6协议支持IPSec,这就为网络安全性提供了一种基于标准的解决方案,并且提高了不同IPv6实现方案之间的互操作性。IPSec由两种不同类型的扩展头和一个用于处理安全设置的协议所组成。验证头(AH)为整个IPv6数据包(除了在传输过程中IPv6头必须改变的字段)提供了数据完整性、数据验证和重放保护。封装安全报文(ESP)的头和尾也为ESP封装报文提供了数据完整性、数据验证、数据机密性和重放保护。在单播通信中用于处理IPSec的安全设置的协议通常是Internet密钥交换协议(IKE)。
(6)更好的支持Qos
在多媒体应用日益广泛的今天,因特网提供对多媒体的支持将有重大意义。多媒体的一般特点是带宽要求高、持续时间长。为此引人流的概念简化因特网对多媒体的处理。流是特定源和目的地间的报文序列,源要求中间路由器对这些报文进行特殊处理。一般来说,路由器收到流中报文后,根据流标识符查找路由器中保存的流上下文,对流中的报文进行同样的处理,加快了报文处理速度。IPv4补充了对流的处理,例如使用资源预留协议(RSVP)预留资源进行因特网上的音频、视频传播。但是IPv4对流的处理有天生的缺陷,因为在IPv4定义之初就没有流的概念。IPv4定义的流包括源和目的IP地址、传输控制协议(TCP)或用户数据报协议(UDP)的端口号,路由器为了判断一个报文是否属于一个流,不但要看IP头中的IP地址,还要分析TCP头就UDP头中的端口号,这不但违背了网络分层的原则,而且加大了路由器的处理工作量。IPv6在设计之初就考虑了对流的支持。IP头的格式里,有专门的20bit流标签域。主机发送报文时,如果需要把报文放到流中传输,只需在流标签里填人相应的流编号,否则在流标签里填零就作为一般的报文处理。路由器收到流的第一个报文时,以流编号为索引建立处理上下文,流中的后续报文都按上下文处理。由于通信流是在IPv6协议头中标识的,因此,即使数据包有效载荷已经用IPSec和ESP进行了加密,仍然可以实现对Qos的支持。
(7)用新协议处理邻节点的交互
IPv6中的邻节点发现(Neighbor Discovery)协议是一系列的IPv6网络控制报文协议(ICMPv6)报文,用来管理相邻节点(在同一链路上的节点)的交互。邻节点发现协议用更加有效地多播和单播邻节点发现报文,取代了地址解析协议(ARP)(基于广播的)、ICMPv4路由器发现,以及ICMPv4重定向报文。
(8)可扩展性
IPv6可以很方便地实现功能地扩展,这主要通过在IPv6协议头之后添加新的扩展协议头方式来实现。IPv4协议头中的选项最多可以支持40个字节的选项,而IPv6扩展协议头的长度只受到IPv6数据包长度的限制。
3 IPv6的地址空间
IPv6最明显的特征是它使用更大的地址。IPv6使用128位地址,IPv4使用32位地址。32位地址空间允许4,294,967,296个可能的地址。128位地址空间允许340,282,366,920,938,463,463, 374,607,431, 768, 211, 456(3.4×1038)个可能的地址。
值得注意的是,使IPv6地址在长度上达到128位并不是说地球的每平方米能有6.5×1023个地址。更确切地说,将IPv6地址设计成较大尺寸,旨在进一步细分成反映现代Internet拓扑结构的分层路由域。使用128位地址空间,在设计分层寻址和路由时能提供多个等级的层次和灵活性,而这一点恰恰是目前基于IPv4的Internet所缺乏的。
4 IPv6的地址格式
IPv6的地址由全局路由前缀、子网ID、接口ID三部分组成。其中全局路由前缀用于指定某一站点,子网lD用于指定该站点内的一条链路,接口ID用于指定链路上的某一接口。
5 IPv6地址表示方法
(1)冒号十六进制形式
这是首选形式n:n:n:n:n:n:n:n。每个n都表示八个16位地址元素之一的十六进制值。例如:
3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562.
(2)压缩形式
由于地址长度要求,地址包含由零组成的长字符串的情况十分常见。为了简化对这些地址的写人,可以使用压缩形式,在这一压缩形式中,多个0块的单个连续序列由双冒号符号(::)表示。此符号只能在地址中出现一次。例如,多路广播地址FFED:0:0:0:0:BA98:3210:4562的压缩形式为FFED::BA98:3210:4562。单播地址3FFE:FFFF:0:0:8:800:20C4:0的压缩形式3FFE:FFFF: :8: 800:20C4:0。环回地址0:0:0:0:0:0:0:1的压缩形式为:∷1。未指定的地址0:0:0:0:0:0:0:0的压缩形式为∷。
(3)混合形式
此形式组合IPv4和IPv6地址。在此情况下,地址格式为n:n:n:n:n:n:d.d.d.d,其中每个n都表示六个IPv6高序位16位地址元素之一的十六进制值,每个都表示IPv4地址的十进制值。
6 IPv6地址类型
(1)单播地址
用于单个接口的标识符。发送到此地址的数据包被传递给标识的接口。通过高序位八位字节的值来将单播地址与多路广播地址区分开来。多路广播地址的高序列八位字节具有十六进制值FF。此八位字节的任何其他值都标识单播地址。
发送到单播地址的数据包被传输到这个地址识别出的接口。
(2)多播地址
一组接口的标识符(通常属于不同的节点)。发送到此地址的数据包被传递给该地址标识的所有接口。多路广播地址类型代替IPv4广播地址。
发送到组播地址的数据包被传输到这个地址识别出的所有接口。
(3)IPv6不带有广播地址
IPv6使用“所有节点”组播。
7 IPv6单播地址类型
(1)链路–本地(link local)
这些地址用于单个链路并且具有以下形式:FE80::InterfaceID。链路–本地地址用在链路上的各节点之间,用于自动地址配置、邻居发现或未提供路由器的情况。链路–本地地址主要用于启动时以及系统尚未获取较大范围的地址之时。
带有链路–本地源或目的地址的数据包不转发到其它链路
(2)站点–本地(site local)
这些地址用于单个站点并具有以下格式:FECO::SuhnetID:InterfaceID。站点-本地地址用于不需要全局前缀的站点内的寻址。
带有站点–本地源或目的地址的数据包不转发到其它站点。目前已被废除,不再使用!
(3)全球IPv6单播地址
这些地址可用在Internet上并具有以下格式:010(FP,3位)TLA ID(13位) Reserved(8位)NLA ID(24位)SLA ID(16位)InterfaceID(64位)。
带有全球地址的数据包可被转发到全球网络的任何部分。
8 从iPv4到IPv6的过渡
(1)双协议栈技术
双协议栈技术是一个节点,既有IPv4栈又有IPv6栈,这种运行双协议栈的节点就是IPv6/IPv4节点。
当这种节点和IPv6节点进行通信时,它就像一个纯IPv6节点,而当它与一个IPv4节点或者兼容IPv4的IPv6节点通信时,它就像一个纯IPv4节点。
(2)隧道技术
随着IPv6网络的发展,将会出现许多局部的IPv6网络,但是这些IPv6网络要通过IPv4骨干网相连。要将这些孤立的IPv6局部网络相互连通,就需要使用隧道技术。隧道技术是指用IPv4报文来封装IPv6数据包,以使IPv6数据包可以穿越IPv4的网络。
9 IPv6在国土资源部的具体应用
中科院IPv6网络专线已经接人国土资源部信息中心机房,并已经安装支持IPv6的路由器。
下一步需按照相应的IP地址规划完善网络,开发不同的网络应用,如:网站、DNS等服务。在丰富应用的基础上做好网络管理及安全管理工作。
10 结语
IPv6技术的发展已经比较成熟,但由于IPv4的不断改进以及NAT技术的应用,缓和了IPv4地址匮乏及安全性差等问题。另外,IPv6在美国应用已经比 较广泛,相信在国内的实际应用也会进一步增加。
参考文献:
[1]Joseph Davies TCP/IP Fundamentals for Microsoft Windows 2008/2/6
[2]CISCO IPv6基础培训
原创文章,作者:满天星,如若转载,请注明出处:https://www.ipv6s.com/basis/20100813148.html