一 IPv6的地址空间
IPv6协议最大的优势就是在于巨大地址空间,这也是IPv6协议设计的初衷。套用比较流行的比喻,地球上的每一粒沙子都能够分配到一个公有的IPv6地址。从数字上看,IPv6具有2 128个地址,估算大约是3.4×1029亿个IPv6地址,这确实是一个天文数字。然而,我们必须理性的看待IPv6的地址问题。
1 NAT设备的影响
NAT设备的广泛使用的确减缓了IPv4地址耗尽的速度,它提供了把IPv4的32位地址空间增加到48位地址空间的方法,而代价就是破坏了TCP/IP网络的可扩展性,并且给用户带来一种错误的安全感。
NAT设备破坏IP网络的可扩展性表现在它打破了互联网的端到端特性,并且使得一些端到端的应用(例如IPsec协议,一些P2P应用)变得非常困难。并且,四种类型的NAT设备,Cone NAT,Restricted NAT,Port-Restricted NAT和Symmetric NAT,并不能提供用户所想象的安全性。外部的恶意主机仍然可以通过NAT设备的公有地址和端口号到达使用私有地址的“受到保护”的主机。另外,NAT设备增加了网络的复杂性,增加网络的运营维护负担,并使得Internet的可扩展性大打折扣。
2 IPv6地址的分配原则
在对用户进行IPv6地址分配时,根据RFC3177以及APNIC的建议,运营商向客户分配IPv6地址块时需要遵循以下的原则:
1)一般情况下分配/48的IPv6地址块,除非用户是一个非常大的企业;
2)只有在非常明确用户只需要一个子网时,分配/64的IPv6地址块;
3)只有在非常明确用户只有一个主机(设备)时,分配/128的地址。
上述策略的目的在于保证用户在目前可以预见的时间段内得到足够多的IPv6地址,这种策略可以避免IPv6路由表中出现零碎的路由条目,保证路由的效率。
但是,由于IPv6协议采用了邻居自动发现以及无状态自动配置的机制,IPv6的最小子网应该是/64。也就是说,IPv6的地址利用率要明显小于IPv4。从酝酿一个可管理、可运营网络方面来看,IPv6的地址空间需要运营商进行精细规划。
3 公有地址带来的安全问题
IPv6终端具有全局的公有地址使得IPv6网络不再需要穿越NAT设备。这为保证Internet端到端的特性提供最基本的支持。然而,我们必须要考虑IPv6的公有地址所带来的隐私以及安全问题。
IPv6地址由2部分组成,前64位是网络前缀,分配给ISP;后64位是根据终端的链路层地址生成的EUI-64的地址。这种机制提供了一种根据IPv6地址获知用户身份的方法:通过后64位的EUI-64地址可以获知是哪个用户,而通过IPv6地址前缀可以获知用户处在哪个网络(位置)。
具有公有IPv6地址的用户同时也意味着完全暴露在不安全的IPv6互联网中。IPv6面临着和IPv4同样的终端安全性。IPv6协议的扩展报头,例如路由扩展报头、目的地报头,也为对IPv6终端的攻击提供了一些可能的方法。所以一个完备的IPv6终端防火墙将会是IPv6网络上非常重要的元素,它能够抵御一些IPv4网络上常见的重播、拒绝服务等攻击。而更深层次的对IPv6终端支持的业务而言,终端防火墙和IPv6高层业务之间的联动关系是IPv6协议需要研究的另外一项重要内容。
二 IPv6的自动配置特性
1 无状态和有状态配置
IPv6网络的配置可以分为有状态(Stateful)和无状态(Stateless)2种类型。无状态是指IPv6的邻居发现和无状态自动配置协议,由RFC2461和RFC2462定义。通过IPv6节点之间交互邻居请求/邻居宣告消息,IPv6路由器与IPv6终端之间交互路由器请求/路由器宣告消息实现IPv6网络的无状态自动配置,从而取代了在IPv4使用的ARP协议,省去了在IPv6网络种为每个终端配置IPv6地址以及默认网关的繁琐工作。有状态配置和IPv4协议保持一致,由DHCPv6协议来完成。
但是在IPv6的无状态自动配置机制中,IPv6终端并不能得到DNS服务器的配置。这对于IPv6协议的设计者来说是合理的:终端的IPv6地址前缀和默认网关是由路由器宣告的,而通常路由器并不知道也不需要知道终端需要使用哪个DNS服务器的信息。DHCPv6协议能够给终端分配IPv6地址和DNS服务器的地址,而为了网络可靠性的考虑并不能分配给终端有关默认网关的信息。
所以在一个完整的IPv6网络中,为了让主机同时得到IP地址、默认网关和DNS服务器信息,需要IPv6邻居发现机制和DHCPv6同时使用。换而言之,IPv6网络还不能达到完整意义上的无状态自动配置。
2 对终端移动性的支持
尽管如此,IPv6的邻居发现和无状态自动配置协议为IPv6终端的移动性提供了良好的支持。
首选,用户从一个网络漫游到另一个网络时,它可以通过这种机制自动得到访问网络的IPv6地址。而IPv6主机可以支持多个IPv6地址的特性使得移动终端可以保持多个Internet的连接,有利于网络间的无缝的、平滑的切换。
其次,Mobile IPv6技术利用了IPv6的扩展报头特性(Routing Header和Destination Header)消除了Mobile IPv4网络中的三角路由问题,提供了IPv6的移动终端在IP层的移动性对高层协议透明。另外,Mobile IPv6协议去除了Mobile IPv4中的外部代理设备,部署起来将更为简单。
三 IPv6的安全性
IPv6的设计者有一个很好的初衷,就是把未来的IP网络设计成一个具有安全保证的网络。所以,IPv6强制实施IPsec协议。
IPv6强制实施IPsec协议为部署端到端的安全性虚拟专用网络提供良好的支持。由于IPsec协议和IPv4是2套协议栈,并且NAT设备已经在现网上广泛部署的现实,现在的IPv4 IPsec VPN多应用于站点到站点之间,由IPv4的安全网关实现。而IPv6终端就可以利用自带的IPsec协议进行端到端的安全通信,而不需要考虑穿越NAT的问题。经过良好的规划和管理之后,安全的IPv6业务将成为IPv6网络的重要属性之一。
应用层安全协议(例如SSL)由于运行于IP协议之上,本身与IPv4、IPv6协议无关,所以在应用层协议方面,IPv4和IPv6协议没有本质区别。应用层安全协议比较适用于某些特定的应用(例如Web),而IPsec协议更为灵活,一旦建立了一个IPsec的安全通道,通信对端之间所有的流量都可以被IPsec保护。
目前Windows XP+SP2和Windows Server 2003操作系统已经支持IPv6的IPsec协议,但是不支持IPv6的IKE。Linux的内核2.6以上版本也支持IPv6的IPsec协议,并有第三方软件提供IKE协议支持。一些底端的路由器和防火墙产品也已经支持IPv6 IPsec协议。
四 IPv6的服务质量保证
IPv4报头中8比特的“业务类型”字段用来区分服务来保证不同级别的业务获得不同的服务质量,IPv6报头中,使用了8比特“流量类型(Traffic Class)”和20比特的“流标记(Flow Label)”字段以期待为IPv6业务提供更好的服务质量选项。
IPv6的“流量类型”字段用于源节点和中间路由器标识和区分不同IPv6数据包的类别或优先级,这一点与IPv4协议的“业务类型”字段的作用相似:为IP包提供不同形式的区分服务,而不用建立显式的数据流。
IPv6的“流标记”规范由新近的RFC3697定义。RFC3697在源节点与中继路由器之间根据三元组(流标记字段,源地址字段和目的地址字段)定义一个IPv6的数据流,以及中间路由器对IPv6 数据流的处理能力的最低要求。这个流标记规范提出了在数据流的源端主机应该为每一次独立的传输层连接,或者应用数据流指定一个新的IPv6数据流,并要求在数据流从源端到目的端的路径上所有的IPv6路由器都要根据这个IPv6 Flow采取拟定的策略。这就为在IPv6网络上每一跳路由器根据数据流的定义采取不同的PHB(Per-Hop Behavior)奠定了基础,也使得IPv6网络在采用DiffServ的同时,能够根据IPv6数据流提供颗粒度更细的服务质量保证。
但是RFC3697提出的IPv6流标记规范并没有指定如何在源端指定IPv6 数据流的值,以及每一跳路由器如何根据三元组对数据流进行处理。所以,本规范还需要进一步的完善和细化,并有待于在现实网络上部署的检验。
五 IPv6的网络和业务
1 IPv6的骨干路由表数目
由于IPv6地址采用了分级的结构,在恰当的地址分配策略下,IPv6的骨干路由表数目可以期待为远远低于IPv4的骨干路由表数目。
然后考虑到IPv6 Multi-Homing的影响,客户可以选择连接到不同的ISP并得到不同前缀的IPv6地址。例如客户同时连接到ISP A和ISP B,并分别从A和B获得一块IPv6地址。为了保证客户网络的连通性,运营商A必须要向外广播客户从运营商B处获得的IPv6地址块,同样运营商B必须要向外广播客户从运营商A处获得的IPv6地址块。这种Multi-Homing的情况会给IPv6的骨干路由表带来大量/48甚至/64的路由条目。这种如果不妥善解决,IPv6路由表可能超过IPv4中由于CIDR而产生的路由表爆炸的情况,甚至更糟。
2 IPv6数据包的处理和传输
IPv6的数据报头长为40个字节,相比IPv4的最小20个字节,表面看来路由器处理起来会更加复杂。实际上,由于IPv6的报头中去除了IPv4报头中的校验和、选项以及分段字段,使得IPv6报头更加简单,更有利用ASIC芯片的硬件处理。如果厂商对IPv6扩展报头也使用硬件处理的话,路由器对IPv6数据包的处理速度不会低于IPv4数据包。事实上,根据LightReading以及一些公开的测试结果表明,基于硬件转发的路由器在处理IPv6和IPv4无论是大数据包还是小数据包的情况,性能非常接近。
而IPv6的40个字节的数据报头长度的数据包,在链路上传输时的传输效率会略微低于IPv4数据包。例如在MTU为1500 Bytes的Ethernet链路上,IPv6的传输效率可以表示为(1500-40)/1500= 97.3%;而IPv4的传输效率可以表示为(1500-20)/1500 = 98.7%。对于MTU越大的传输链路,例如POS链路,这种传输效率的差别就越小。在硬件处理和传输带宽越来越进步的今天,这种差别对协议性能的影响几乎可以忽略不计。
3 IPv6的“杀手级应用”
目前IPv6的发展遇到的另一个非常重要的问题就是IPv6的业务。
电信产业已经从技术驱动的时代过渡到市场驱动的时代,IPv6也不例外。现在IPv6产业界研究和探讨的热点已经开始从单纯的IPv6技术和设备逐渐过渡到寻找IPv6的“杀手级的应用”。
诚然,IPv6具备一些“杀手级的属性”,正如前述的广阔的地址空间、对移动性以及安全性嵌入的支持等,而目前为止IPv6还没有产生属于自己的杀手级应用。不过下述的方面已经成为IPv6业务研究的热点:
1)IPv6的IPsec VPN业务。IPsec VPN作为一个安全的业务平台,可以为各种高层应用(例如机密的电子商务信息、VoIP和视频)提供数据完整性和机密性的保护。利用IPv6嵌入支持IPsec协议的优势,端到端的IPsec VPN业务将成为IPv6业务发展的重要推动力。
2)IPv6的P2P应用。IPv6的端到端特性为P2P应用提供了最基础的网络支持。Skype、BT等点到点通信软件的流行几乎是未来网络上典型应用模式的预演。而可控的、可运营的P2P应用模式与经营模式仍然是运营商需要研究的课题。
六 结论
IPv4地址在短期内不会被耗尽并不是说明IPv6协议没有很重要的研究、试验与部署的价值。相反,IPv4的继续健康的发展为IPv6协议的充分成熟,以及运营商积累更多的IPv6部署与运营的经验争取了宝贵的时间。毕竟,没有人会在IPv4地址完全耗尽的时候才开始研究下一代的IP协议。参与IPv4地址耗尽时间预测的APNIC的主席Paul Wilson本人也是IPv6协议的坚决拥护者,而被称为“Intenet之父”的科学家Vin Cerf的一个关于IP网的遗憾就是没有把IPv4的地址空间设计为128位。
显然的是,IPv4网络在继续修修补补的情况下,仍然可以渡过一个相当长的时间。但是大量的NAT设备破坏了Internet的可扩展性,带来了性能瓶颈,也增加了网络的复杂度。这样违背了互联网的最基本理念:简单。
IPv6并不能解决目前IPv4网络上面临的所有的问题。IPv6网络的服务质量仍然要寄希望于IPv4网络上已经在使用的差分服务或者MPLS TE、RSVP来保证,或者新生的还没有被详细定义的流标记使用规范;IPv6网络的安全问题仍然需要终端厂商、设备厂商以至软件开发人员定义详细的接口和规范。同时,现在的网络运营商还没有积累许多的运行大规模IPv6网络的经验。尤其重要的是,IPv6还没有一个完整的商业模型,来促使运营商对网络设备进行升级,对用户推广IPv6的新型业务。
幸好,IPv6已经成为未来安全的、有服务质量保证的全新IP网络的基本协议,并且它还有足够的时间来成熟和完善。
作者:张浩锋 解冲锋 来源:中国联通网站