《IPv6技术精要》一1.7 IPv4地址耗尽

1.7 IPv4地址耗尽

IPv6技术精要
如果IPv4网络运行状况良好,为什么还需要开始考虑迁移到IPv6呢?这就如同在旧汽车状况良好的情况下为何要考虑购置新汽车一样。虽然没有任一种杀手级应用需要用户迁移到IPv6,但依然有一些不可抗拒的理由(如前所述)驱使网络管理员至少应该为向IPv6的迁移做好准备。最明显的理由就是IPv4地址已经耗尽,因此可以说,IPv6的杀手级应用就是保护了互联网,允许互联网继续前进。

虽然IPv4在理论上最多可拥有43亿个地址,但在实际的地址分配过程中存在很多低效的情况。即便能够以更高效的方式重新分配整个IPv4地址空间,也只是短期应对之策,更何况这种做法根本就不切实际。

IPv6拥护者一直在寻找各种方法,在不迁移到IPv6的情况下,尽可能延长IPv4的使用时间。这就像重新安排泰坦尼克号上的甲板座椅一样,可能会让大家感到一时的舒适,但大家迟早会意识到,自己已身处麻烦之中。

当Bob Kahn和Vint Cerf首次开发TCP/IP协议集以及IPv4及其32比特地址时,根本没有预料到互联网会发展到如今的状态。如今,即便70多岁的人每天也都会在互联网上使用几个小时的Facebook,表明如今的互联网已不再是年轻人的专利了。

人们从20世纪90年代就已经意识到IPv4地址空间的耗尽问题。随着WWW的出现,互联网用户的数量和多样化都呈现出爆炸式增长,使用互联网的群体不再局限于相对小规模的能够使用较为复杂和较不直观的网络工具(如FTP、新闻组以及UUCP[Unix-to-Unix Copy,UNIX至UNIX的复制]等)享用全球网络的电脑高手。随着Tim Berners-Lee在日内瓦的CERN开发出HTTP(Hypertext Transfer Protocol,超文本传输协议),以及由Marc Andreessen及其研究团队在伊利诺伊大学香槟分校的国家超级计算应用中心开发出第一款Web浏览器Mosaic,那些从没拥有电脑的人们都纷纷开始接入互联网,这使得43亿个地址变得越来越无法满足人们的长期需求。

因此,在20世纪90年代早期,IETF开始研究被称为IPng(下一代IP)的新IP版本,后来成为IPv6。不过这是解决IP地址不足的长期解决方案,人们仍然需要马上能用的短期解决方案,因而NAT、私有地址空间以及CIDR(Classless InterDomain Routing,无类别域间路由)等技术应运而生。

1.7.1 CIDR

早期的IPv4网络地址按照A类、B类、C类地址进行分配(如表1-1所示)。

IPv4地址一共分为5类。

  • A类:子网掩码是255.0.0.0或/8。
  • B类:子网掩码是255.255.0.0或/16。
  • C类:子网掩码是255.255.255.0或/24。
  • D类:多播地址。
  • E类:保留作为试验地址。

每个子网掩码为/8的A类网络可以拥有16 777 214台主机(减去2个地址,分别是网络地址和广播地址)。126个A类网络以及每个A类网络中的大量主机数占去了IPv4地址空间的一半(如图1-2所示)。

B类网络的子网掩码是/16,表示每个B类网络可拥有65 534台主机。而16 384个B类网络占去了IPv4地址空间的25%。

C类网络的子网掩码是/24,表示每个C类网络最多可拥有254台主机。虽然可用的C类网络有2 097 152个,但仅占IPv4地址空间的12.5%。

由于网络管理员只能得到这三类地址中的一个网络地址,因而造成了地址分配方法的低效化。绝大多数A类和B类网络都存在大量未用地址,而绝大多数C类网络都很少有未用地址。

1992年,IETF改变了这种地址分配方法,转而采用CIDR(读成cider)。有关CIDR的信息定义在RFC 1338中,后来被RFC 1519所废除。此时的网络地址不再基于这三类地址进行分配,而是可以按照任意大小的子网掩码进行分配,如图1-3所示(图1-3给出了全部可能的主机地址数,而没有减去网络地址和广播地址)。这使得RIR和ISP能够更灵活地为用户分配IP地址,从而极大地提高了有限的IPv4地址空间的分配效率。

1.7.2 NAT和私有地址

NAT允许多台主机共享一个或多个保留地址或公有IPv4地址。结合私有IP地址,NAT成为一种非常有用的节约IPv4地址空间的方法。IANA(Internet Assigned Numbers Authority,互联网号码分配机构)在RFC 1918中分配了三段地址作为私有IPv4地址,这三段私有网络地址可用于私有网络内部,但不允许被路由到全球互联网上。因此,在面向互联网的路由器转发这些分组时,必须首先将这些私有IPv4地址转换成公有IPv4地址。

注:

虽然这是NAT最常用的使用方式,但NAT不仅仅可以在私有IP地址与公有IP地址之间进行转换,而是可以应用于任何一对地址的转换场景中。
RFC 1918定义的定义私有IPv4地址如下:

10.0.0.0~10.255.255.255 (10.0.0.0/8)

172.16.0.0~172.31.255.255 (172.16.0.0/12)

192.168.0.0~192.168.255.255 (192.168.0.0/16)

大家可能会发现,绝大多数家庭路由器都使用192.168.0.0地址进行NAT操作。

注意:

新的RFC 6598“IANA-Reserved IPv4 Prefix for Shared Address Space”中分配了另一个共享地址空间100.64.0.0/10。共享地址空间与RFC 1918中定义的私有地址空间不同,共享地址空间主要是留给服务提供商的网络使用的,不过,也可以按照RFC 1918私有地址空间的使用方式来使用这些共享地址空间。
PAT是动态NAT的一种形式,利用不同的TCP/UDP端口号将多个IP地址映射成单个IP地址。PAT也被称为超量NAT(NAT overloading)、单地址NAT(single address NAT)或端口级多路复用NAT(port-level multiplexed NAT)。对PAT来说,可以将私有网络中的每台计算机都转换成同一个公有IP地址,但需要分配不同的源端口号。有时也将NAT/PAT简称为NAT,对于本书来说,术语NAT始终包含PAT。

图1-4给出了一个使用NAT的网络示例。XYZ公司拥有公有IP地址209.165.200.248/29,因而只有6个可用的主机地址:209.165.200.249~209.165.200.254。但是XYZ公司拥有几百台主机,而且所有主机都希望能够随时访问互联网。由于该公司仅有6个公有IP地址,因而需要使用私有IP地址空间和NAT机制来满足其互联网接入需求。

XYZ公司的网络管理员选用了私有地址空间10.0.0.0/8。该地址空间提供了足够多的主机IP地址,完全能够满足公司的需要。路由器A是XYZ公司的路由器,负责将数据包转发给ISP路由器,从而将公司的私有网络连接到互联网上。图1-4中的步骤显示了NAT在私有IP地址与公有IP地址之间的转换操作,为了简化起见,本案例没有演示PAT的端口转换操作。

第1步:XYZ公司网络中的主机A向Web服务器www.example.com发送数据包,源IP地址为10.0.0.100,目的IP地址为209.165.202.158。

第2步:路由器A收到该数据包后,在转发给ISP路由器之前执行NAT/PAT操作。路由器A将该数据包的私有源IP地址10.0.0.100转换成为公有IP地址209.165.200.249。对于PAT来说,路由器A还会更改该数据包的源TCP/UDP端口号。为了简化起见,本案例没有演示PAT的端口转换操作。路由器A会维护一张NAT表以记录所有的地址与端口号分配情况,从而能够在第4步将返程流量正确定位到原始的地址和端口号。

第3步:Web服务器www.example.com向主机A返回数据包,源IP地址为209.165.202.158,目的IP地址为209.165.200.249。

第4步:路由器A收到发送给主机A的流量后,使用NAT表,即可识别正确的目的IP地址和目的端口号,从而以原始地址10.0.0.100和原始端口号进行修改。

虽然利用NAT与RFC 1918私有地址可以减缓IPv4地址的耗尽速度,但是NAT也存在许多限制条件。由于实际目的IPv4地址的不确定性以及单个公有地址可以被多个用户共享,因而极大地限制了P2P应用。以两台均位于NAT之后的设备为例,如果这两台设备需要进行相互通信,那么它们应该将数据包发送给哪个公有地址呢?纯粹的P2P通信仅包含两台相互通信的设备,但NAT的使用使得这两台设备之间的通信变得难以实现。因此,像Skype等许多服务都使用公共可访问的服务器在用户之间充当中继点。

如果大家对IPSec(Internet Protocol Security,互联网协议安全)有所了解,那么就会知道NAT会给传输模式下的IPSec应用带来混乱。因为在使用了IPSec AH(Authentication Header,认证头)的情况下,由于NAT转换会在数据包传输过程中修改数据包,因而会破坏完整性检查。NAT会修改TCP/UDP校验和,使得对端的完整性检查失败。因此,不能在传输模式下的IPSec中使用NAT。虽然NAT可以工作于隧道模式下的IPSec,但也同样存在一些问题。

对大多数用户来说,NAT不是问题,因为互联网主要是由大量客户端/服务器网络组成。一般来说,大部分用户使用互联网的目的是下载各种内容,如网页、电子邮件以及音乐等。

在2000年代的第一个10年里,互联网更多地被用作双向介质。随着大量社交网站(如Myspace和Facebook)的出现,人们越来越多地开始利用互联网进行协作和交互。用户不再仅仅是信息的消费者,而是越来越多地成为内容参与网站(如You Tube和博客)的内容制造者,并利用P2P应用(如Napster和BitTorrent)分享各自的内容。

所有的一切都表明,与几年前相比,用户使用互联网的方式发生了翻天覆地的变化。未来的互联网仍然会出现各种现在不可知的新应用和新需求。互联网将更多地承载双向通信,任何设备都可能是一台客户终端或者是一台服务器,甚至是两者兼而有之。在很多情况下,这都需要通信双方拥有公有地址,而NAT则无法支撑这些应用。

1.7.3 IPv4地址空间耗尽

由于互联网用户数一直都在快速增长,因此即使部署了NAT等短期解决方案,人们仍然不得不面对可用公有IPv4地址的最后阶段。表2-1给出了世界互联网使用情况及人口统计情况。从中可以看出一些有趣的IPv4地址分配情况。北美的互联网渗透率大约为78%。互联网渗透率(Internet Penetration Rate)指的是给定国家或地区的互联网用户数占总人口数的百分比。这意味着北美的大部分人都在使用互联网。而在亚洲等其他地区,它们的互联网渗透率大约只有29%。如果进一步对比这两个地区的互联网用户数,大家一定会更加吃惊。北美的互联网用户数是2720万,而亚洲的互联网用户数是9220万。可以看出,随着亚洲、非洲及其他地区越来越多的用户开始访问互联网,即便拥有NAT,IPv4地址也绝对无法满足互联网用户数快速增长的需求。

表1-2中的信息来自www.internetworldstats.com,Copyright2001–2011,Miniwatts Marketing Group

随着无线产业的飞速发展,WLAN、3G、4G、WiMax和MBWA(Mobile Wireless,移动无线)等蜂窝网络和无线网络增加了大量需要访问互联网的设备。一位美国大学的网络工程师曾经分析过,每年学生放假返校后的无线网络利用率都会增加25%,因为学生们返校时都带着大量的笔记本电脑、蜂窝手机、iPad以及其他各类无线设备。

那么IPv4地址会在什么时候被耗尽呢?IANA负责为5个RIR分配/8地址块。利用这些地址空间,RIR再将这些网络地址分配给ISP及其他终端用户,5个RIR的管理范围如下。

AfriNIC(African Network Information Centre,非洲网络信息中心):非洲。
ARIN(American Registry for Internet Numbers,美国互联网号码注册中心):美国、加拿大以及部分加勒比海地区和南极洲。
APNIC(Asia-Pacific Network Information Centre,亚太地区网络信息中心):亚洲、澳大利亚、新西兰以及相邻国际。
LACNIC(Latin America and Caribbean Network Information Centre,拉美及加勒比海地区网络信息中心):中美洲、南美洲以及加勒比海大部分地区。
RIPE(Réseaux IP Européens Network Coordination Centre,欧洲IP资源网络协调中心):欧洲、中东和中亚。
2011年1月31日星期一,IANA将最后两块IPv4地址空间39.0.0.0/8和106.0.0.0/8分配给了APNIC(亚太地区的RIR),并触发了一项IANA政策:今后将剩余的/8地址段平均分配给5个RIR。至此,IANA已经分配完了所有IPv4地址。

这是否意味着终端用户无法再得到IPv4地址了呢?答案为否,因为ISP及其他用户仍然可以从RIR获取IPv4地址,反过来绝大多数终端用户也就可以从ISP处获取IPv4地址。目前业界有多个预测项目分析这些RIR何时将耗尽其IPv4地址空间,其中一个预测项目就是RIR IPv6地址耗尽模型(RIR IPv6 Address Run-Down Model)。大家还可以从Hurricane Electric(http://ipv6.he.net/statistics)下载适用不同系统平台的IPv4地址耗尽计数器,该计数器可以显示RIR可用的/24地址空间。随着IPv4地址的耗尽,从事IPv4地址交易的“黑市”也应运而生。很多网站都为希望出售或租借IPv4地址空间的组织机构充当代理商角色。ISOC告诫IPv4地址的买卖方,要求地址转让一定要经过恰当的RIR程序,从而避免对网络的正常运行或安全性造成影响。

在IPv4地址空间具有43亿的固有限制、互联网用户数不断增长、用户使用互联网的方式发生变更,以及NAT存在各种各样问题的情况下,向IPv6迁移已经迫在眉睫,至少应该开始关注并了解IPv6。

时间: 2024-10-27 14:53:39

《IPv6技术精要》一1.7 IPv4地址耗尽的相关文章

《IPv6技术精要》一第2章 IPv6协议2.1 IPv4报头

第2章 IPv6协议 IPv6技术精要 本章将详细描述IPv6协议的相关内容.首先分析IPv4和IPv6报头的各个字段,并分析两者的异同点,然后解释为什么IPv6所提供的不仅仅是更大的地址空间,而是一种更灵活.更有效的新协议. 有关IPv6报头结构的信息定义在RFC 2460"Internet Protocol, Version 6 (IPv6) Specification"中.本章除了介绍IPv6的基本报头之外,还将介绍IPv6的扩展报头,并在本章小结中归纳了IPv4与IPv6报头的

《IPv6技术精要》一第1章 IPv6概述1.1 IPv4

第1章 IPv6概述 IPv6技术精要IPv6(Internet Protocol version 6,因特网协议版本6)是IPv4的后续版本,本章将分析当今互联网为何需要一套新的网络层协议来满足其用户的需求,在分析IPv4局限性的基础上,将讨论IPv6如何解决这些局限性并提供了许多其他优势. 1.1 IPv4 IPv6技术精要IPv4(Internet Protocol version 4,互联网协议版本4)是目前互联网以及绝大多数网络正在使用的三层协议,至今已经应用了30多年,早已成为互联网

《IPv6技术精要》一2.5 IPv4与IPv6对比

2.5 IPv4与IPv6对比 IPv6技术精要了解了IPv4与IPv6报头细节之后,很自然就会想到两者之间到底有何重要区别,由于有很多知识需要我们消化,因而以图2-1和图2-2为参考进行简要归纳. 2.5.1 IPv4与IPv6报头对比以下IPv4报头字段的名称与IPv6报头保持一致. 版本(IPv4和IPv6):这是最简单的一个字段,在IPv4中值为4,在IPv6中值为6.源地址和目的地址(Pv4和IPv6):最大的差别就是IPv4的源地址和目的地址是32比特,而IPv6的源地址和目的地址为

《IPv6技术精要》一导读

前 言 IPv6技术精要 本书主要讨论IPv6的基础知识.IPv6需要学习的东西很多,而不仅仅是拥有更大的地址空间. 写作本书时,我尽量以一种简单的.步骤式的方法来解释每一个概念,同时将关键细节包含在其中.既要向读者展示尽可能多的信息,又不至于让读者迎难而下,这是写作本书时的一大挑战.虽然IPv6并不难学,但毕竟包含了很多新协议和新进程. 大家不要被本书的细节信息所迷惑.例如,虽然我在本书中概要列出了各类协议的所有字段信息,但并不需要大家完全理解并掌握所有细节信息,这一点我已经在书中时时提到.我

《IPv6技术精要》一1.4 IPv6的历史

1.4 IPv6的历史 IPv6技术精要 IETF(Internet Engineering Task Force,互联网工程任务组)自1990年代早期就开始研究制定IPv4的后续版本,并于1994年成立了IPng(IP Next Generation,下一代IP)工作组,以制定IPv6的相关标准: 地址架构与分配方案: 支持大尺寸数据包: 通过IPv4网络隧道化IPv6报文: 安全与自动配置. 随着互联网路由表的快速增长以及互联网用户数的急剧增大,大家一致认为有必要开始设计和测试一种新的网络层

《IPv6技术精要》一2.6 本章小结

2.6 本章小结 IPv6技术精要本章详细分析了IPv4报头与IPv6报头,对比了这两种协议之间的异同点.IPv6报头的字段较少,在很多方面都是一个较为简单的协议.某些字段从IPv4直接迁移到IPv6中保持不变,某些字段则更改了名称,并存在一定的功能差异,还有一些字段则完全被IPv6所取消,同时还增加了一个新的流标签字段. IPv6引入了扩展报头,提升了IPv6的灵活性和效率.本章还解释了IPv6对UDP和MTU所带来的影响. 第3章将详细讨论IPv6地址的表示方式以及IPv6单播地址的通用结构

《IPv6技术精要》一2.3 Wireshark报文分析

2.3 Wireshark报文分析 IPv6技术精要下面将利用报文分析工具(如Wireshark)来查看一下IPv6包的情况.以图2-5所示网络为例,从PC1向PC2发起简单的ping操作. 从输出结果可以看出,地址中的某些0被省略了,有关IPv6地址及其精简格式将在第3章进行讨论,此处大家只要知道这些都是同一个地址的不同表示方式即可. IPv6地址是128比特地址,以十六进制数字表示,虽然现在看见来有点陌生,不过不要紧,从第3章开始,大家就会慢慢熟悉这些地址了.图2-6显示了Wireshark

《IPv6技术精要》一1.2 早期的互联网

1.2 早期的互联网 IPv6技术精要虽然早期被称为ARPANET的互联网起源于1969年,但当前互联网中使用的大量协议和技术都是最近的产物.RFC 2235(Hobbes Internet Timeline)对互联网在1957年至1997年之间的早期发展情况作了总结. 1957年:USSR发射了Sputnik(第一颗人造地球卫星).作为回应,美国DoD(国防部)发起了ARPA(Advanced Research Projects Agency,高级研究计划署)计划,以便在科技领域建立美国的领先

《IPv6技术精要》一2.4 扩展报头

2.4 扩展报头 IPv6技术精要理解扩展报头相对较为困难,所以本节将采取步步深入的方式进行介绍.有些扩展报头很简单,而有些扩展报头则比较复杂,因此,即便有些内容理解起来有些含糊,也不必太在意,本节的目的是让大家熟悉扩展报头的概念以及相应的使用方式. 扩展报头是可选项,位于IPv6基本报头之后,如前所述,IPv6报头包含下一报头字段,该字段的作用有两个: 一是标识IPv6包数据部分所承载的协议:二是指示扩展报头的存在.在前面已经说过,下一报头字段能够标识IPv6包数据部分所承载的协议,这一点与I