摘要 本文主要描述了IPv4协议与IPv6协议的不同之处。
关键词 IPv4 IPv6协议
1、概述
互联网已经成为现代社会信息基础设施的重要组成部分,在国民经济发展和社会进步中起着举足轻重的作用,同时也成为当今高科技发展的重要支撑环境,互联网的巨大成功有目共睹。
现在被全球广泛使用的互联网协议IPv4是“互联网协议第四版”,已经有30年的历史。从技术上看,尽管IPv4在过去的应用具有辉煌的业绩,但是现在看来已经露出很多弊端。
全球范围内WLAN、2.5G、3G无线移动数据网络的发展加快了以互联网为核心的通信模式的形成,由于移动通信用户的增长要比固定网用户快得多,特别是各种具有联网功能的移动终端的迅猛发展,考虑到随时随地的、任何形式、直接的个人多媒体通信的需要,现有的IPv4已经远远不能满足网络市场对地址空间、端到端的IP连接、服务质量、网络安全和移动性能的要求。因此人们寄希望于新一代的IP协议来解决以上问题。
IPv6协议正是基于这一思想提出的,它是“互联网协议第六版”的缩写。在设计IPv6时不仅仅扩充了IPv4的地址空间,而且对原IPv4协议各方面都进行了重新考虑,做了大量改进。除了提出庞大的地址数量外,IPv6与IPv4相比,还有很多的工作正在进行以期得到更高的安全性、更好的可管理性,对QoS和多播技术的支持也更为良好。下面的章节将从几个主要的方面探讨一下IPv6与IPv4的区别。
2、IPv4与IPv6协议的比较
2.1 报头格式
IPv4报头如表1所示,包含20bit+选项,13个字段,包括3个指针。
表1 IPv4报头
IPv6报头由基本报头+扩展报头链组成,其中基本报头如表2所示,包含40bit,8个字段。
表2 IPv6报头
IPv4和IPv6报头格式主要区别如下。
IPv6报头采用基本报头+扩展报头链组成的形式,这种设计可以更方便地增添选项以达到改善网络性能、增强安全性或添加新功能的目的。
2.1.1 固定的IPv6基本报头
IPv6基本报头被固定为40bit,使路由器可以加快对数据包的处理速度,提高了转发效率,从而提高网络的整体吞吐量,使信息传输更加快速。
2.1.2 简化的IPv6基本报头
IPv6基本报头中去掉了IPv4报头中阴影部分的字段,其中段偏移和选项和填充字段被放到IPv6扩展报头中进行处理。
去掉报头校验(Header Checksum,中间路由器不再进行数据包校验,去掉此字段的原因有三:一是因为大部分二层链路层已经对数据包进行了校验和纠错控制,链路层的可靠保证使得三层网络层不必再进行报头校验;二是端到端的四层传输层协议也有校验功能以发现错包;三是报头校验需随着TTL值的变化在每一跳重新进行计算,增加包传送的时延。
IPv6基本报头中去掉与IP分片相关的域,使得路由器无需再对数据包进行分片,而分片工作由源终端设备根据最大传输单元MTU路径发现来进行。这样IPv6的数据包可以远远超过64kbit/s,应用程序可以利用MTU,获得更快、更可靠的数据传输。
2.1.3 IPv6报头新增流标记宇段
IPv6协议不仅保存了IPv4报头中的业务类别字段,而且新增了流标记字段,使得业务可以根据不同的数据流进行更细的分类,实现优先级控制和QoS保障,极大地改善了IPv6的服务质量。
2.1.4 IPv6报头采用128bit地址长度
这是IPv4与IPv6最主要的区别。IPv4采用32bit长度,理论上可以提供大约43亿个IP地址,这么多的IP地址似乎可以满足网络连接的需要,但事实上网络中任意交换机和交换机任意端口均需一个独立地址,为此网络缺乏足够地址满足各种潜在的用户。
IPv6采用128bit长度,相对IPv4,增加了296倍的地址空间。按保守方法估算IPv6实际可分配的地址,整个地球的每平方米面积上仍可分配1000多个地址。这样几乎可以不受限制地提供IP地址,从而确保了端到端连接的可能性。表3给出IPv4和IPv6的可用地址空间。
表3 IPv4和IPv6的可用地址空间
2.2 IP地址分配
IPv4地址分配初期采用基于类别的方式,有3类主要方式:A、B和C以及2种特殊的网络地址D和E。
*类型A地址:其中前7bit用于网络标识,后24bit用于主机标识,A类地址可容纳128个网络,任意A类网络中可包括16777216个主机。
*类型B地址:其中前14bit用于网络标识,后16bit用于主机标识,B类地址可容纳16384个网络,任意B类网络中可包括16384个主机。
*类型C地址:其中前21bit用于网络标识,后8bit用于主机标识,C类地址可容纳2097152个网络,任意C类网络中可包括256主机。
A、B、C类地址用于标识某一网络节点的接口,称为单播地址,D类地址不是用于标识单一的接口,而是用于标识多个网络节点接口的集合。E类地址是预留地址。
A类网络地址是用于标识世界上最大型的网络,除了其中少量的预留和可重新分配的地址,A类地址目前已经分配完毕。B类地址也将使用殆尽。
IPv4基于上述类别处理的管理方式限制了实际可使用的地址,例如一个拥有300个用户的网络期望采用一个B类地址,然而如果实际分配一个B类地址则用户拥有了65536个地址域,这远远超过用户需要的地址空间,造成地址的大量浪费。
为解决这种地址分配方式的弱点,IETF通过了无类域间路由选择(CIDR,Class Inter-Domain Routin)方案。CIDR方案取消了IPv4协议中地址类别分配方式,可以任意设定网络号和地址号的边界,即根据网络规模的需要重新定义地址掩码,这样可为用户提供聚合多个C类的地址。但是CIDR方案的不足之处是必须在知道网络掩码后才能确定地址中网络编号和主机编号。
IPv6协议可根据用户的需要进行层状地址分配,这和IPv4采用块状地址分配是不同的,后者方式导致某些地址无法使用。在IPv6的分层地址分配方式中,高级网络管理部门可为下级网络管理部门划分地址分配区域,下级网络管理部门则可为更下层的管理部门进一步划分地址分配区域。
IPv6将用户划分成3种类型。
(1)使用企业内部网络和Internet;
(2)目前使用企业内部网络,将来可能会用到Internet:
(3)通过家庭、飞机场、旅馆以及其他地方的电话线和Internet网络互联。
IPv6协议为这些用户提供了不同地址分配方式。
(1)4种类型的点到点通信/单播地址;用于标识单一网络设备接口,单播通信传播的分组可传送到地址标识的接口。
(2)改进的多播地址格式;用于标识归属于不同节点的设备接口集合,多播通信传送的分组可发送到地址标识的所有接口,这种地址方式是非常有用的。例如,可将网络中发送的新消息传送给所有登记的用户。特殊的多播地址可限制在特定网络链路或特定的系统组中进行通信。IPv6协议没有定义广播地址,但可使用多播地址替代。
(3)新的任意播(Anycast)地址格式;IPV6协议中引入了任意播地址,用于标识属于不同节点的设备接口集合,任意播传送的分组可发送到地址标识的某一接口,接收到信息的接口通常是最近距离的网络节点,这种方式可提高路由选择的效率,网络节点可通过地址表示通信过程传输路由可经过的中间跳数,即信息传输路由可不必由路由器决定。
2.3 路由协议
IP网路由协议主要包括域内路由协议和域间路由协议。
2.3.1 域内路由协议
目前IP网域内路由协议主要采用IS-IS和OSPF两种。其中OSPF用来交换IPv4路由信息的版本叫IS-IS用来交换IPv6路由信息的版本叫OSPFv3;IS-IS用来交换IPv4路由协议的版本叫IS-IS,用来交换IPv6路由协议的版本叫IS-ISv6。
(1) OSPFv3与OSPFv2的区别
OSPFv3(RFC 2740)与OSPFv2(RFC 2328)相比在原理上并没有根本的区别,OSPFv3仍采用链路状态LSA数据库,并保持邻接路由器之间的同步。但由于从IPv4到IPv6上地址长度的变化,为了支持IPv6地址格式,OSPFv3对OSPFv2协议进行了许多修改。从路由协议标准化进程看,OSPFv3协议已较为成熟,已有定型的RFC2740协议。OSPFv3 提高了通用性,使网络可以适应不断变化的要求。这使复杂的网络得以简化,并且它采取了一些增强措施以保证升级方便地进行,OSPFv3还进行了优化并且安全性也得到了提高。
OSPFv3的主要目的是“开发一种独立于任何具体网络层的路由协议”。为实现这一目的,C)St’FV3的内部路由器信息被重新进行了设计。与过去的版本不同,()SF·Fv3不向位于数据包和链路状态公告(LSA)起始位置的报头插入基于IP的数据。C)St’Fv3利用独立于网络协议的信息来执行过去需要IP报头数据的关键任务,如识别发布路由数据的LSA。
除了改变报头数据外,OSPFv3 还对LSA所发挥的作用进行了重新定义。在OSPFv3中,公告网络拓扑和IPv6数据的任务被分配到新的和已有的LSA中。
OSPFv3增加了多种可选功能,如多播OSPFv3,以实现通用性。为了达到这一目的,OSPFv3扩展了网络设备用来公告使能的功能选项数据域。多数OSPFv3路由器间信息中都包含选项域,运行OSPFv3的设备可以支持多达24种可选功能,而以前的版本只能支持8种功能。
为了简化复杂的容错网络的建设,OSPFv3引入了Instance ID和R-bit选项。作为每个OSPFv3包头的一个组件,Instance ID不再依赖于过去需要的复杂的认证方案或访问清单,就可以控制共享物理网络和OSPF域的路由器之间的通信。除了Instance ID外,OSPFv3还可以通过R-bit使服务器这类最终系统具有有效的冗余性。
OSPFv3与过去的协议的不同之处在于它通过提供非本身固有的安全性来简化消息的结构。通过利用IPv6包的安全子包头的集成系统,OSPFv3消息可以被认证和加密,而这在以前是需要增加独立复杂的协议才能实现的功能。
OSPFv3提供了更强的功能,并且它具有很大的通用性,从而可以很方便地支持新型网络协议。新的特性简化了网络设备和运行,在使用OSPFv3的情况下,升级将不再那么麻烦。
(2)IS-ISv6与IS—ISv4的区别
另一个被运营商广泛使用的连接状态协议是ISISforIPv6。我们知道ISIS是IS标准路由协议(ISO/IEC10589),最初用于支持CLNS网络的动态协议。由于ISIS的设计非常有利于新功能的扩展,它首先扩展了IPv4路由协议的功能(RFC1195),有人将这种既能为CLNS服务,也能为IP服务的协议叫做Integrated ISIS。
依照类似的方法,ISIS也可以通过简单的扩展来处理IPv6的路由信息。支持IPv6的IS-IS协议标准草案已经经过多次讨论修改,目前,还未正式形成RFC标准,只有draft-ietf-isis-ipv6.txt标准草案。 Draft-ietf-isis-ipv6.txt草案通过在IS-IS数据包(Hello、LSP和SNP)中引入以下可变长度的数据域(TLV),从而使其支持IPV6路由功能,这一设计只需要对IS-IS路由协议进行少量的修改即可使它支持IPv6 odraft-ietf-isis-ipv6.txt只增加了有关IPv6的TLV,在邻居数据库、拓扑数据库的建立和维护上基本保持了ISO10589和RFCl195的模式。因此,CLNS IFV4和IPv6具有相同的拓扑结构。也就是说,draft-ietf-isis-ipv6.txt要求IPv4和IPv6的网络是完全重合的。我们将这种实现称为ISIS for IPv6单一拓扑模式。
很快人们认识到单一拓扑模式对IPv4和IPv6网络完全重合的要求限制了IPv6网络的部署。显然IPv6的规模和覆盖范围都将大于老一代IPv4网络,部分网络将只具有IPv6属性,例如,部分网络只有IPv6地址而没有IPv4地址。这时ISIS for IPv6单一拓扑模式就可能导致一些IPV4的数据报文错误地被转发到这部分IPv6网络,造成路由的混乱和麻烦,无法满足IPv4、IPV6不同扩展范围的需要。ISIS for IPv6多重拓扑模式(draft-ietf-isis-wg-multi-topology)是针对这一问题的解决方案,它通过使用IPv4 IPv6不同的拓扑去除了两个网络必须一致的限制。多重拓扑模式为IPv4和IPV6网络建立不同的拓扑数据库,分别进行spf最短路径优先算法的计算,为IPv4和IPv6提供相互独立的路由子系统,使IPv6网络的建设摆脱IPv4的限制,为IPv6网络的成长打开了发展空间。
2.3.2 域间路由协议
BGP4(RFC1771)是目前被所有IS,运营商广泛使用的IPv4外部路由协议,BGP4是一个路径矢量协议,它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治区域号(AS)序列属性的路由可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的策略。
BGP特点:
*距离矢量协议;
*传输协议:TCP,端口号:17;
*支持CIDR(无类别域间选路);
*路由更新只发送增量路由;
*丰富的路由过滤和路由策略。
支持IPV4的BGP经历了4个版本:RFC 1105(BGPl),RFC 1163(BGP2),RFC 1267(BGP3),和目前广泛使用的RFC1771(BGP4)。支持IPv6的域间路由协议是BGP4+,在BGP4+上支持IPv6的路由器必须符合RFC 2858和RFC2545。利用BGP4+实现ISP网络之间的互通。
在IPV4环境中,BGP4是一种广泛使用的用于自治域之间路由传播的路径矢量路由协议。在随后定义的一系列标准中使得BGP4的功能更加强大,可以用于承载多种协议:MPLS-VPN、Multicast等协议均是通过BGP4进行工作的。在RFC 2545(Use of BGP4 Multiprotocol Extensions for IPv6 Inter-Domain Routing)中描述了如何使用MP_REACH_NLRI来传达IPv6的可达信息。
2.4 域名解析
IPv6网络中的DNS与IPv4的DNS在体系结构上是一致的,都是采用树型结构的域名空间。虽然IPv4协议与IPv6协议是存在着相当大区别的两套协议,但这并不意味着需要单独两套DNS体系,相反在DNS的体系和域名空间上两者必须是一致的,IPv4和IPv6共同拥有统一的域名空间。在IPv4到IPv6的过渡阶段,域名可以同时对应于多个IPv4和IPv6的地址。随着IPv6网络的普及,IPv6地址将逐渐取代IPv4地址。
可聚集全局单播地址是目前主要应用的IPv6地址,因IPv6可聚集全局单播地址是在全局范围内使用的地址,必须进行层次划分及地址聚集。下面就以IPv6 DNS系统对这类地址的解析过程来介绍IPv6 DNS系统的解析原理。
IPv6全局单播地址的分配方式如下:顶级地址聚集机构TLA(即大的ISP或地址管理机构)获得大块地址,负责给次级地址聚集机构NLA(中小规模ISP)分配地址,NLA给站点级地址聚集机构SLA(子网)和网络用户分配地址。IPv6地址的层次性在DNS中通过地址链技术可以得到很好的支持。
2.4.1 正向解析
IPv4的地址正向解析的资源记录是“A”,而IPv6地址的正向解析目前有两种资源记录,即“AAAA”和“A6”记录。其中“AAAA”较早提出,它是对IPv4协议“A”“录的简单扩展,由于IP地址由32bit扩展到128bit扩大了4倍,所以资源记录由“A”扩大成4个“A”。但“AAAA”用来表示域名和IPv6地址的对应关系,并不支持地址的层次性。
AAAA资源记录类型用来将一个合法域名解析为IPv6地址,与IPv4所用的A资源记录类型相兼容。之所以给这新资源记录类型取名为AAAA,是因为128bit的IPv6地址正好是32bit IPv4地址的4倍。
“A6”是在RFC 2874基础上提出,它是把一个IPv6地址与多个“A6”记录建立联系,每个“A6”记录都只包含了IPv6地址的一部分,结合后拼装成一个完整的IPv6地址。“A6”记录支持一些“AAAA”所不具备的新特性,如地址聚集,地址更改(Renumber)等。
“A6”记录根据可聚集全局单播地址中的TLA、NLA和SLA项目的分配层次把128bit的IPv6的地址分解成为若干级的地址前缀和地址后缀,构成了一个地址链。每个地址前缀和地址后缀都是地址链上的一环,一个完整的地址链就组成一个IPv6地址。这种思想符合IPv6地址的层次结构,从而支持地址聚集。
同时,用户在改变ISP时,要随ISP改变而改变其拥有的IPv6地址。如果手工修改用户子网中所有在DNS中注册的地址,是一件非常繁琐的事情。而在用“A6”记录表示的地址链中,只要改变地址前缀对应的ISP名字即可,可以大大减少DNS中资源记录的修改。并且在地址分配层次中越靠近底层,所需要改动的越少。
2.4.2 反向解析
IPv6反向解析的记录和IPv4一样,是“PTR”,但地址表示形式有两种。一种是用“.”分隔的半字节十六进制数字格式(Nibble Format),低位地址在前,高位地址在后,域后缀是“IP6.INT.”。另一种是比特串(Bit--string)格式,以“\[”开头,十六进制地址(无分隔符,高位在前,低位在后)居中,地址后加“]”,域后缀是“IP6.ARPA.”。半字节十六进制数字格式与“AAAA”对应,是对IPv4的简单扩展。二进制串格式与“A6”记录对应,地址也象“A6”一样,可以分成多级地址链表示,每一级的授权用“DNAME”记录。和“A6”一样,二进制串格式也支持地址层次特性。
总之,以地址链形式表示的IPv6地址体现了地址的层次性,支持地址聚合和地址更改。但是,由于一次完整的地址解析分成多个步骤进行,需要按照地址的分配层次关系到不同的DNS服务器进行查询。所有的查询都成功才能得到完整的解析结果。这势必会延长解析时间,出错的机会也增加。因此,需要进一步改进DNS地址链功能,提高域名解析的速度才能为用户提供理想的服务。
2.5 自动配置
IPv6协议中引入了自动配置(“即插即用”)功能,一个主机进行Internet网络登记后,位置或配置发生变化时只需进行很少的改动即可进行工作,这样可大幅度降低网络管理者的配置和地址映射管理,移动工作者也可方便地在任何地方任何时间接入到Internet网络。
IPv6协议中自动配置功能无需采用动态主机配置协议(DHCP,Dynamic Host ConfigurationProtoco1)。IPv6协议可为任意主机生成一个“本地IP地址”,这个地址内嵌一个以太网卡地址,由于MAC地址是全球唯一的,这样IP地址就不会重复,IPv6的自动配置功能正是基于这种唯一IP地址的概念。
2.6 安全
IPv4中存在一系列的安全性漏洞,应用程序只能通过本身的私有性和认证性操作机制完成安全性操作。IPv6协议给出两个备选项用于解决这个问题:一个是“安全性操作”选项,另一个是“IPv6加密安全头部”选项。由于不同的用户或不同应用环境有不同的安全性操作,IPv6协议允许分别或组合使用这两个备选项,以提供不同优先级别的网络服务性能。
IPv6协议明确要求实现IPSec,从而从根本上保证了互联网通信的安全性,有望解决基于IPv4协议的互联网的安全性。IPSec可以在传输模式(Transport Mode)和隧道模式(Tunnel Mode)两种模式下工作,满足不同类型的安全性的需求。它主要包括以下几个组成部分:
*认证报头AH(Authemication Header):只用于认证。
*安全净荷封装ESP(Enleapsulating Security Payload):加密+认证。
*互联网密钥交换IKE(Internet Key Exchange):实现密钥的管理和交换,如ISAKMP和Oakley。
由于IPv6数据包头的扩展包头中提供IPSEC加密功能,因此主机可以进行端到端的加密,以提供端到端的安全性。对于提供虚拟专网服务的运营商来说,可以提供IPSEC数据加密服务,提高数据的安全性。
3、总结
本文主要从IP报头格式、IP地址分配方式、路由协议、域名解析、自动配置和安全等几个主要方面对IPv4和IPv6进行了比较。
综上所述,IPv4地址耗尽并不是部署和升级到IPv6的唯一理由,IPv6协议可满足下一个世纪的高性能、可扩展性的网络互联,并可解决IPv4协议中存在的许多问题。新技术支持新应用,新应用推动新技术的标准化和商业化,IPv6的商业应用将迎来明媚的曙光。