浅谈IPv4向IPv6平滑过渡的必然性
2014-08-15郝佳晶
郝佳晶
(山西职业技术学院计算机工程系,山西太原030006)
IPv4协议在因特网中获得了巨大的成功,但是,随着因特网的迅速发展和接入主机数量的急剧膨胀,IP地址也越来越紧张,路由表也变得越来越大,根据2009年的统计,全球只有21%的网民拥有IP地址,接入到Internet中。其他80%的网民只能用其他技术来实现接入因特网,比如私有地址,来减少IPv4地址的消耗。在当前形势下,IPv6最终取代IPv4是大势所趋,几乎无限的地址容量是IPv6发展最直接的理由,我们从下面几个方面来讨论其必然的因素。
1 地址空间比较
1)IPv4:地址空间有限
IPv4采用32位地址长度,只有大约43亿个地址。根据统计,在2010年1月,IPv4的公网地址只有10%没有分配出去,各项资料显示,最迟到2011年这些地址将会被全部消耗掉。
2)IPv6:更大的地址空间
IPv6地址是128位,几乎可以不受限制地提供地址,按保守方法估算IPv6实际可分配的地址,整个地球每平方米面积上可分配1 000多个地址,这样,就有足够的IPv6地址分配超过整个IPv4网络地址空间到地球上每一个人。
2008年北京奥运会的官网使用的全部是IPv6技术,包括路由,包括DNS服务器等等,得到行业里面许多人的关注。
在实施上,IOS支持IPv6,但之所以没有大范围地部署IPv6的原因是:IPv6与IPv4的编址发生变化,导致数据包的格式也发生变化。对网络设备,对传输设备来讲,对IPv4能做到限时转发,对IPv6就不见得能做到这一点。比如交换机在制作芯片的时候,对PDU的处理,肯定是基于IPv4的,而不是基于IPv6的PDU。所以交换机或者三层设备,它要能对IPv6的数据包做限时转发,只有一个前提条件,就是对硬件方面来讲,PDU要基于IPv6制造。这就是全球为什么没有大范围地部署IPv6的原因,只是划片区的,局部的,就是因为考虑到硬件设备的投入。所以除了IPv4和IPv6的兼容性之外,还需要投入大幅度的设备经费。
2 路由聚合性能比较
1)IPv4:路由聚合性能不足
由于接入因特网主机的不断膨胀,主机因特网路由表继续增长,这意味着互联网核心路由器需要更多的处理能力、内存和开销。
全球路由表的膨胀是非常快的,因为它会消耗我们大量的CPU、内存资源。2010年7月统计:大概全球有超过33万条路由表信息,虽然我们有各种各样的路由汇总、路由聚合技术,但也至少消耗300M内存。随着互联网用户的增长,IPv4地址即将消耗殆尽,IPv4的全球路由表也在不断膨胀。好在我们有路由汇总、路由聚合技术,否则,全球路由表至少超过200万条,对于骨干路由器来说,光用于存储这些路由表就需要2G的内存。再言之,全球路由表的交换方式是基于BGP,BGP的交换是消耗BGP表的表项,也就是说不再做汇总和聚合这种背景之下,它所产生的表项都是存储在BGP表里面,BGP表至少需要有2G的内存,然后再写入路由表,还要映射到FIB表,在不考虑邻接关系的数量下,就有6、7百万条。换句话说,一个路由器需要有10G的内存用于存储这些表项,所以说这是非常不现实的!
IPv4的先天不足在于IP编址上做的不是特别好。IPv4是层次化的地址,体现在它分为网络位和主机位。就是由于IPv4的这种结构,所以对路由聚合做不到太大优化,优化效果不很显著,不管如何路由汇总,都汇总不到我们需要的少的路由条数。
2)IPv6:链路聚合能力相当优秀
我们全球IP地址42亿个地址,实际产生大概200多万个子网,经过一些聚合,聚合成30多万条路由条目。IPv6有128位地址,产生的地址更多,子网数也更多,理论上产生的路由条目也更多。因此IPv6编码格式不像我们之前分的A类、B类、C类,所以IPv6的编址层次化结构相当优秀。对于IPv6,我们只把它叫做聚合,不讲汇总。但在IPv4中我们很少讲聚合,都在讲汇总。这在根源上是有区别的。
3 端到端的通信能力以及故障排除能力比较
1)IPv4:缺乏端到端通信以及故障排除的能力
IPv4网络通常使用NAT技术来解决地址耗尽,但是,NAT隐藏了真正的源地址的流量,这可能会导致其他问题。
因为IPv4地址空间不够,所以我们平时在单位上网,是通过NAT技术将内网地址翻译成外网地址,这样可以实现多个内网地址对应一个外网地址,内部通过端口号进行区分,从外部来看,看到的只是一个公网地址。那么在理想的情况下,假设IP地址够用,会不会用这项技术?答案是肯定的。NAT在某些方面来看,它可以隐藏网络的一些细节,但是从故障排除来看,我们没有办法做端到端的故障排除。比如一个用户做一些入侵行为,定位我们只能定位到内部网络,具体是谁,还得用其他技术和手段一台一台做故障排除,只是通过IP编址,我们是没有办法区分的。
再者,由于内网和外网频繁通信,每次通信需要NAT转换地址,做NAT需要创建NAT表项,创建表项的过程中会消耗CPU资源,再加上每次内转外,外转内,这样频繁做计算,流量也会增加,同时也会消耗大量CPU资源。所以,很多时候路由器CPU占用率和内存占用率大幅度提升都是由于NAT造成的。这样只能升级硬件进行解决或者采用IPv6技术。
2)IPv6:支持端到端的通信以及故障排除
端到端通信可追溯性是可能的。由于地址非常多,所以不存在公网地址、私网地址的区分,也不再需要NAT技术,增加了端到端排错的优势。
4 协议安全性比较
1)IPv4:安全性差
IP包头是以明文形式暴露在外的,我们抓包抓下来之后,就可以获得相应的信息。除此之外,IPv4协议中,尤其是单播路由形式,它是基于目标地址路由,不关心从哪里来,只关心去往哪里,这就是为什么单播路由表只记录目标地址,不记录原地址。再加上它不具备一种安全机制,缺乏一种认证。
同时,IP包头明文,缺乏各种各样的加密技术,其中也包括了校验和技术。包头的校验和指的是对包头,如果是对数据本身做一些修改,那它这个包头校验和仅仅是对包头,不能对整个数据进行校验。
2)IPv6:安全性高(集成了IPsec),移动性高,帮助确保符合移动IP和IPsec标准
在对移动IP的性能上,IPv4也支持,但是IPv6支持的更好一些,已经将移动IP做到了集成化,同时,在IPv6中要求更高,如果是一些服务技术,比方说像一些导航系统,它就要求使用到移动IP以及它背后的新对应出的PDU,也就是我们的任意播。
除此之外IPv4中有一个最大的缺点,就是安全性,IPv4包头是以明文形式传输的,后来才提到IPsec安全版的IP,也需要我们做特殊的配置。但是在IPv6中,IPsec是一种强制手段,是一种集成化的,所以它的安全性和移动性比IPv4做的更好。同时,在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPv6中的加密与鉴别选项提供了分组的保密性与完整性,极大地增强了网络的安全性。
5 广播方面比较
1)IPv4:存在广播
IPv4中有单播、组播、广播。其中广播的应用是没有价值的,广播的优势是多点传输,但是它完全可以用组播实现;广播的缺点太多,它可以被各种各样的攻击手段利用(蠕虫就是复制,以广播形式向整个网段扫描,来进行传播的)。如果我们把广播消除掉,采用组播或者多播来代替这种多点传输是完全可以的。
交换机vlan的出现就是由于IPv4会出现广播风暴,通过vlan技术来控制盒隔离广播风暴。
2)IPv6:使用组播代替广播,并增加任意播
IPv6现在包括单播、多播、任意播,所以在IPv6里面,它的PDU类型发生变化,取消了广播,取而代之,多了一种播,叫任意播(anycast)。任意播和广播是绝对不能划等号的,任意播是IPv6单播地址比较特殊的一种类型。
任意播并不是为了取代广播,任意播的应用面很窄,但是一旦要用到任意播的时候,说明对这种特性需要依赖的应用能做一个非常高的支持度,主要体现在移动。也就是说我们做移动IP的话,我们可以使用任意播。今后的哪些应用,如果要在移动性方面做一个体现的话,那么任意播一定是首选。
6 IP包头方面比较
原来IPv4包头只有20位字节,但IPv4中的很多字段是没有用的,比如“选项”字段、“保留”字段,这些字段开发的时候想到今后可能要用,事实上,却没有用到它。
现在IPv6包头有40个字节,比IPv4大了一倍,但是检索起来反而更快了,因为在IPv6中,对IPv4的报文头部格式进行了简化,把一些不必要的字段给去掉了,字段只有8个,加快了报文转发,提高了吞吐量。所以,从路由效率来讲,IPv6的包头更为简化。
7 结束语
IPv6和IPv4比较,它彻底解决了地址空间耗尽和路由表爆炸等问题,而且为IP协议注入了新的内容,使支持安全、主机移动以及多媒体成为IP协议的有机组成部分。协议的设计使路由器处理报文更加简便,扩展性也更好。目前,IPv4的实验网已经遍布全球,IP协议从IPv4过渡到IPv6已经是历史必然。同时,基于IPv4的网络的广泛应用,取代的过程需要一个较长的过渡时期,在这段时间内,IPv6将与IPv4共存。IPv6网络协议是我们下一代互联网的主流协议。随着它的不断推广,我们的网络业也越加复杂和多样化。当然这也就容易产生不少的问题。我们所需要做的是加快IPv6网络建设,不断完善其不足,发掘其新的应用,以逐步替代目前的IPv4网络。