《Internet 路由结构(第2版•修订版)》一3.2 IP地址空间耗尽问题

  1. 云栖社区>
  2. 博客>
  3. 正文

《Internet 路由结构(第2版•修订版)》一3.2 IP地址空间耗尽问题

异步社区 2017-05-02 13:35:00 浏览1125
展开阅读全文

本节书摘来自异步社区《Internet 路由结构(第2版•修订版)》一书中的第3章,第3.2节,作者【美】Sam Halabi,更多章节内容可以访问云栖社区“异步社区”公众号查看

3.2 IP地址空间耗尽问题

Internet 路由结构(第2版•修订版)
人们对IP地址需求的持续增长,给有类编址模型带来了沉重压力。大多数公司之所以申请B类地址,是由于其在网络数和主机数之间较为均衡,能够最大限度地满足需求。A类地址则太过“慷慨”,一个网络便可容纳1 600万台主机;而C类地址又太过“吝啬”,每个网络所能容纳的主机数太少。时至1991年,事态已然明朗,B类地址消耗并无减缓迹象,必须采取措施来阻止其消耗。

这些措施包括采用创造性的IP地址分配技术,并鼓励那些无需具备全球Internet连通性的公司使用私有地址。其他措施则催生了像ROAD(路由和编址工作组)及IPng(下一代IP委员会)这样的工作组和委员会。1992年,ROAD工作组提出,采用无类别域间路由(CIDR),以摆脱有类IP编址技术。与此同时,IPng 委员会正在致力开发一种新的改进型IP编址方案——使用IP版本6来最终解决IPv4编址所面临的地址使用问题。

应对IP地址空间耗尽问题的措施可分为下列4类。

  • 创造性的IP地址分配技术。
  • 无类别域间路由(CIDR)。
  • 私有IP地址和网络地址转换(NAT)。
  • IP版本6(IPv6)。

IP地址需求量的增长,伴随人们对IP地址空间耗尽问题的关注,需要转变只由一个中心注册机构来分配IP地址的流程。最初,IANA和IR(Internet注册机构)完全控制了IP地址的分配。IP地址开始是按序分配给各个组织,并未考虑各个组织的地理分布,以及这些组织与Internet的对接方式和地点。这种地址分配方法的效果无异于老鼠打洞——零散的或小规模地址块将IP地址空间弄的“千疮百孔”,也毁掉了大量连续的网络地址块。

后来,在分配IP地址时就另辟蹊径,先将大量的连续地址块分配给各个管理机构(比如服务提供商),这些服务提供商再从自己的地址块中依次为客户分配地址。一般来说,这种沙漏式的(funnel-down)地址分配方法,也预示着该地址分配方案在可控性和层次化上都更进一步。在某种程度上,这类似于电话号码的分配方案——区号与地区级电信分公司关联(提供商网络),局向号与电信分公司支局关联(小型提供商网络),电话号码尾数则与客户关联(主机)。

3.2.1 IP地址分配

A类网络号属稀缺资源,对A类网络号的分配是严格受限的。尽管还会继续分配A类地址空间,但是目前都是基于子网来分配的,不会再以整个有类边界来分配了。B类地址在分配方面也同样受到了严格限制,也要基于子网来分配。而C类地址则往往是由上级提供商直接分配。表3-4总结了当前C类地址空间的分配情况。


d3fb10c988dd2c4eb2a703528691ca187650318d

某些地区性的Internet地址分配机构,例如,美国Internet编号注册中心(ARIN),已开始考虑是否直接将公网IP地址直接分配给终端用户网络。要从ARIN直接获得IP地址空间,网络至少要拥有16个C类地址,或4 096台主机,用户还须说明其正当理由。即便理由正当,仍然鼓励网络管理员向自己的服务提供商申请此类规模的地址空间。

在ARIN Web站点(http://www.arin.net/)可以找到用户申请IP地址的指南、现行地址分配策略、申请模板以及其他相关信息。

现在来说一下地址空间在地理上的分配,全球分为4大区域:欧洲、北美和非洲撒哈拉以南地区、环太平洋地区,中/南美洲地区。表3-5总结了为这几大区域预留的IP地址空间。分配区域跨地区则表示有网络号在实施该方案前已被分配出去。


ee94ab0eedb61530f596091761c92a0f9c8898c0


6220f0265703fa214811c074ce543c2ec3d37615

3.2.2 无类别域间路由(CIDR)

近年来,全球IP路由表规模不断增长,导致路由器的处理能力和内存分配趋于饱和。增长率预测和统计数据表明,在1991年~1995年期间,每隔10个月路由表的规模就会翻一翻;自1998年后,增长更趋显著。图3-9所示为路由表规模的增长情况。

如果没有任何规划,在1995年路由表的规模就会增长到近80000条路由。而2 000年初的实际数据表明,路由表规模仅为76000条左右。路由表规模增速放缓要归功于上节探讨的IP地址分配方案,以及CIDR技术的运用。

CIDR迈出了发展性的一步,摆脱了传统的有类IP地址(即A、B、C类网络)。对CIDR来说,IP网络的表示形式是:一个前缀——即网络的IP地址,紧跟一个“/”,最后再紧跟一个数字,该数字与“/”前网络地址的网络掩码相对应,用来表征最左侧的连续有效(置1)位数。例如,带有/16的网络198.32.0.0,记为198.32.0.0/16。/16表示从最左侧开始计数的掩码位数为16。这等同于网络掩码为255.255.0.0的IP网络198.32.0.0。


807f0f83589d7ea5633253847f3230d3aecf1d58

当某个前缀掩码边界所含位数少于该网络原配掩码位数时,就称其为超网(supernet)。例如,C类网络192.32.1.0原配子网掩码为255.255.255.0,与CIDR标记/24相对应。而192.32.0.0和255.255.0.0的表示方法同样可以记做198.32.0.0/16,两者的掩码位数都小于其原配掩码(16<24);因而将这样的网络称为超网。图3-10描绘了这一地址方案。

这一表示方法提供了一种机制,可以轻易将198.32.0.0/16旗下所有的明细路由(比如198.32.0.0、198.32.1.0、198.32.2.0等)归并为一条路由通告,人们称之为聚合路由(aggregate)。

以上提及的术语很容易引起混淆,尤其是聚合路由、CIDR以及超网之类的术语经常交替使用。一般来说,上述术语都可用来表示:将一组相邻IP网络汇聚为一条路由通告。确切地说,CIDR由<前缀/长度>标记来表示,超网的前缀长度总是短于原配掩码,而聚合路由则表示汇聚到一起的路由。


3ea6a4f2d88b329ee92c06ce2b3c1236d68c92bb

通常,将作为聚合路由或CIDR地址块子集的所有网络称为明细路由,因为这样的路由为网络定位提供了更详细的信息。与聚合路由相比,多数明细路由的前缀长度要更长一些。

198.213.0.0/16 是一条长度为16的聚合路由。
198.213.1.0/20 是一条长度20的路由前缀,更为精确。
相对于传统的有类路由进程域,支持CIDR的路由进程域被称为无类路由进程域(classless)。CIDR描绘了一具崭新而更具层次化的Internet架构,其中各域的IP地址都取自于其直接上级。在路由传播方面,极大地节省了网络资源,尤其是在靠近叶或末梢(stub)网络的位置执行路由聚合时。叶或末梢网络是全球性网络的末端,因而也不会再向其他网络提供Internet接入。支持众多末梢网络的ISP会将自身子网进一步细分为更小的地址块,再提供给客户。路由聚合允许ISP通告一个IP网络,通常以超网的形式,而非单独通告多个零碎的子网,从而使得路由的传播和路由策略更为高效,也保障了路由通告的稳定。图3-11所示为路由汇聚的功效。

本例中,分配给ISP3的公网地址块为198.0.0.0~198.1.255.255(192.168.0.0/15)。ISP3随之从该地址块中为ISP1和ISP2分配了2小块地址。ISP1的地址范围为198.1.0.0~198.1.127.255(198.1.0.0/17),ISP2的地址范围为198.1.128.0~198.1.255.255(198.1.128.0.0/17)。采用同样的方式,ISP1和ISP2在各自的地址范围中为各自的客户分配地址块。图3-11左例所示为不使用CIDR的情形:ISP1和ISP2通告所有来自客户的子网,ISP3则会将所有路由通告给外部世界。这导致了全球IP路由表规模的急速增长。

图3-11右例所示为应用了CIDR的同一场景。ISP1和ISP2针对各自的客户子网执行路由聚合,ISP1通告聚合路由198.1.0.0/17,ISP2通告聚合路由198.1.128.0/17。ISP3以同样的方式对自己的客户子网(ISP1和ISP2)执行路由汇聚,并且只向其对等网络通告聚合路由198.0.0.0/15。这会极大地降低全球IP路由表规模的增长速度。


4220e755c6b5b66c99cf21d0b408a112669ad3b8

正如读者所见,路由聚合的执行位置越靠近网络叶节点,成效就越显著,这是由于聚合子网中的大多数都部署于客户网络。在网络架构的更高层再执行路由聚合,比如在ISP3,会进一步提高效率,因为AS3学自下游客户的网络数减少了,需要处理的也就少了。

如果每个客户只通过单条链路接入提供商——这也被称为单宿主连接方式(single-homing),并且假设客户的IP地址取自于提供商的CIDR地址块,那么执行路由聚合的效果最佳。不幸的是,现实并非总是如此。例如,如果客户的IP地址并非来自于其提供商的地址空间,这就出问题了。此外,一些客户(可能自己就是提供商)需要同时连接到多个提供商,即所谓多宿主(multihoming)场景。以上情形都会使聚合更趋复杂,灵活度降低。

路由选择的最长匹配原则
路由设备将数据包路由至任何目的地时,总是遵循最长匹配这一基本原则:为转发数据包,路由器在面对两条通往同一网络但长度不同的前缀(路由)时,总会选择掩码位数较长的那条前缀。让我们举例说明,假定一台路由器的路由表中有以下两条路由。

198.32.1.0/24 via path1(路径1)

198.32.0.0/16 via path2(路径2)

在本例中,当路由器试图将流量交付给主机192.32.1.1时,会设法匹配拥有最长前缀的那条路由,即选择路径1来交付流量。图3-12描述了路由选择的最长匹配原则。网域C收到了2条路由更新198.32.1.0/24和198.32.0.0/16,并选择路径1来转发目的地址为198.32.1.1的流量。

若路径1因某种原因而不能使用,网域C会利用路由表中下一条与目的地址最为匹配的路由来转发流量,在本例中会选择路径2来交付流量。若网域C从网域A和B分别收到等长掩码的相同路由更新时,网域C会任选其一,或者同时选择两条路径,这取决于网域中运行的具体路由实现所提供的负载均衡技术。

最长匹配原则意味着:对于连接到多个网域的目的网络,必须总是由这些网域明确宣告其路由,也就是说,以最为具体的非聚合形式来通告。如图3-12所示,因为网域B没有显式通告路由198.32.1.0/24,由客户发往该主机(198.32.1.1)的流量必定遵循最长匹配原则,一直优选路径1,即与网域A互连的路径。这一路由配置必然会令网域A不堪重负。


7782cc666b0bd2f66134d0599d76f83e709543cb

本地网络聚合路由中的非明细路由
为了防止路由环路,路由选择规则特别规定:当数据包的目的地址匹配本地生成的聚合路由时,该网络绝不能遵循非明细路由转发该目的地址的数据包。当流量在网元(网络设备)之间“打转”时,便会发生路由环路,流量也绝不会抵达其最终目的地。该规则的一个特例是默认路由0.0.0.0/0。当目的地址落在自己所通告的聚合前缀范围内时,该网络就不应该遵循默认路由去转发相应的流量。正因如此,对于处理聚合路由的路由协议来说,应该总是为聚合路由本身保留位桶(bit bucket)(按Cisco的说法,这叫Null0路由)。发送到位桶的流量将会被丢弃,从而预防潜在的路由环路。

提示:
在配置默认路由的同时,利用位桶来避免路由环路。
图3-13所示为ISP1将本网域中的路由聚合为单条路由198.32.0.0/13。


ca5694f7aa73aed7dc3d3da858456356cb7d204b

现假定ISP1与其客户Foonet(网络198.32.1.0/24所在地)之间的链路发生故障。此外,还假定ISP1设有一条指向ISP2的默认路由0.0.0.0/0,用来转发目的地址不为ISP1所知的流量。目的地地址为198.32.1.1的流量(由ISP2所发)遵循ISP1通告的聚合路由送达ISP1,此时,(因ISP1与Fonnet之间的链路故障)而遵循默认路由原路返回ISP2。这样,流量就会在ISP1和ISP2之间来回打转。为了防止这样的路由环路,需要在ISP1的路由器上安装一条聚合路由192.168.0.0/13的空条目(null entry)。这条null路由条目会令路由器丢弃所有目的地址匹配聚合路由的数据包,避免因目的网络不可达转而去匹配非明细路由1。

一旦使用不当,路由聚合会导致路由环路或路由黑洞(black holes)。当流量抵达并停留于非既定目的地,且无法被继续转发时,就会产生路由黑洞。随着读者学习了多种地址分配方案,并了解了这些方案如何与路由聚合交互之后,这样或那样的路由选择难题才会愈发突出。

单宿主场景——地址取自提供商地址空间之外
一个网络能否聚合路由,如何聚合路由?前面讨论了选路原则,再结合网络地址空间性质以及网络的连接方式(单宿主或多宿主连接),答案已经依稀可见了。以下几节会讨论几种具体场景。

在这一单宿主场景中,客户连接到单个提供商,且IP地址与提供商完全不同。当客户更换了提供商并保留了先前提供商的IP地址时,就会发生这样的情况。在这种情况下,提供商通常会鼓励或迫使客户启用新的网络地址空间。若客户拒绝重新编址,新提供商则无法聚合客户的IP地址。此外,原提供商也无法像以前那样进行有效的地址聚合,因为自己的地址空间被“钻了个洞”。客户使用原提供商地址空间的后果是,需要在全球Internet路由表中安装更多的路由。

以后的章节中会对本场景做深入讨论,但目前,网络管理员一定要有这样的认识:只要是以单宿主方式连接到提供商,路由选择方案越简单越好。在单宿主的情况下,设置一条指向提供商的默认路由,再让提供商回指一条静态路由(目的网络为本方地址空间),往往是手边最省事的办法。只有在拥有了到提供商的多条连接,出现链路冗余问题时,才应该考虑更加复杂的解决方案。

KISS(Keep It Simple,Stupid[尽量简单])原则是每个网络架构师、设计师、工程师以及管理员都应该奉行的原则,最简单的解决方案通常也是最佳解决方案。

多宿主场景——地址取自某一提供商地址空间
在本场景中(如图3-14所描绘的情形),客户连接多个提供商。客户的网络规模不大,只需从其中一个提供商获取IP地址,或客户仍在使用单宿主连接时所配置的IP地址。请仔细观察图中那2个ISP(ISP1和ISP2))及它们各自的客户:Onenet、Twonet、Stubnet。表3-6列出了与每个网域(包括提供商)相对应的聚合路由的IP地址范围。


641006f64c9639a22847ea383ca13b1db126874d

通告聚合路由可不能有丝毫大意。客户和ISP都必须关注聚合路由所覆盖的IP地址范围。除非路由的聚合方通告的网络是被聚合方网络的超网,或双方达成了协定,否则任何一方都不得聚合他方路由。接下来,读者会看见由于聚合了Onenet和Twonet的路由,ISP2是如何导致路由黑洞的。

提示:
路由黑洞是错误地聚合了他人路由而导致的。
如图3-14所示,只要ISP2通告一条汇聚了Onenet和Twonet网络的路由更新(198.24.0.0/18),就会形成路由黑洞。例如,对于作为ISP1客户的Stubnet而言,其IP地址空间被包括在了这条聚合路由198.24.0.0/18中。假如ISP2通告了这条聚合路由,发往Stubnet的流量便会遵循最长匹配原则而选用聚合路由198.24.0.0/1,并最终流入ISP2,形成路由黑洞。正因如此,ISP2必须明确通告其每个下游客户网络的地址范围,这些网络并不属于ISP2自身的地址空间,却是ISP1地址空间的子集(在本例中,ISP1和ISP2都要明确通告Onenet的网络198.24.0.0/20,以及Twonet的网络198.24.56.0/21)。除此以外,ISP2还必须通告其自身的地址空间198.32.0.0/13。

图3-15所示为正确通告聚合路由的方式。现在,ISP2已显式通告了Onenet和Twonet的聚合路由。这样,发往Stubnet的流量就绝不会误入ISP2了。

请注意,图3-15中ISP1也显式通告了Onenet和Twonet的聚合路由。假如ISP1只通告非明细聚合路由198.24.0.0/13,那么发往Onenet和Twonet的所有流量会遵循最长匹配原则,而优选更为精确的聚合路由(198.24.0.0/20和198.24.56.0/21),这样的流量也就只能由ISP2来单独承载了。

多宿主场景——地址取自不同提供商地址空间
对大型网域而言,很有可能会根据地理位置,从不同的提供商获取地址。以图3-16为例,Largenet分别从ISP1和ISP2获取地址。对于这一设计,每个提供商都可以聚合自己的地址空间,不必列出另一提供商地址的精确范围。ISP1会通告聚合路由198.24.0.0/13,ISP2会通告聚合路由198.32.0.0/13。以上两者都是分配给Largenet IP地址块的超网。


2def846c7681fd5b39fa4467ffa2f8575d617a15

图3-16所示设计的主要缺点是,无法维护通往多宿主网域的备用路由。ISP2只通告属于自己的地址块,不会通告Largenet取自ISP1的地址块。只要ISP1出现问题,聚合路由198.24.0.0/13丢失,发往Largenet 198.24.0.0/20的流量就会受到影响,原因是ISP2没有通告198.24.0.0/20。这一推理同样适用于Largenet取自ISP2的地址198.32.0.0/20。如果通往ISP2的链路中断,发往198.32.0.0/20的流量必然会受到影响。想弥补这一缺憾,ISP1和ISP2必须分别通告198.32.0.0/20和198.24.0.0/20。


e109c7b2f7325e8fa66505d8f613943112d6fece

多宿主场景——地址不从提供商地址获取
在如图3-17所示的场景中,客户采用了与提供商ISP1和ISP2完全不同的地址范围。在此情形,ISP1和ISP2除了通告各自的地址范围(198.24.0.0/13和198.32.0.0/13)之外,还要通告精确的聚合路由(202.24.0.0/20)。这一设计的缺点是,Internet上的所有路由器都必须针对新引入的地址范围设置明细路由。如果这样的设计出现的太多,全球Internet路由表的规模也就可想而知了。


16c2200be14988d36e5a58da4fd729ab8868c40a

路由聚合的建议
总而言之,每个获取了地址范围的网域都有独有的权利(和义务)来聚合自己的地址。执行路由聚合时,网域应该在精确的基础上尽可能地聚合自己的路由(即便在多宿主环境下也是可行的)。

场景不同,设计也就不同。对路由聚合而言,没有“万能钥匙”。建议单宿主客户从自己的直连提供商处获取单块连续的地址空间,并且尽可能地配置指向提供商的默认静态路由,从而避免由复杂而又多余的配置所带来的潜在问题。若单宿主客户执意更换提供商,就应该规划向新提供商地址空间迁移。对于多宿主客户,服务商在为其分配地址时,应以聚合尽量最大化作为指导原则。一旦聚合影响了冗余,即便要付出通告明细路由的代价,也应首先确保冗余。

在过去几年中,CIDR的引入对抑制全球Internet路由表规模的迅猛增长帮助极大。边界网关协议版本4(BGP-4)成为Internet上域间路由的首选协议,这很大程度上要归功于其在应对路由聚合和域间路由传播上的高效表现。继续阅读本书,更多示例会揭示CIDR在控制流量行为和稳定性方面的重要作用。

关于CIDR、Internet路由表规模的当前和历史情况,以及其他趣闻的更多信息请参考附录A。

3.2.3 私有地址和网络地址转换

要想放慢IP地址的分配速度,就要识别不同的连通性需求,并据此分配IP地址,这是重中之重。

绝大多数组织的连通性需求不外乎以下两种。

公网连通性。
私网连通性。
公网连通性
公网连通性是指组织内部的主机能够同时访问Internet和internal(内联网)主机。在此情形,主机就必须配置对组织内外都具有全局唯一性的IP地址。要求公网连通性的组织必须向其提供商申请IP地址。

私网连通性
私网连通性是指组织内部的主机只需访问internal主机,无需访问Internet主机。只需私网连通性的主机示例包括银行ATM机、零售店收银机以及任何其他无需连接公司之外主机的机器。私网主机的IP地址需在组织内唯一。为满足这种连通性需求,IANA专门预留了以下三块IP地址空间,并将其称为“私有互联网地址(private internets)”。

10.0.0.0~10.255.255.255(单个A类网络号)。
172.16.0.0~172.31.255.255(16个连续的B类网络号)。
192.168.0.0~192.168.255.255(256个连续的C类网络号)。
与上述地址用途以及其他预留网络号有关的其他信息,可参阅RFC 1918。

任何企业都可以从上述地址范围中挑选地址,无需获得IANA或Internet注册机构的准许。配置了私有地址的主机可以与组织内的任何其他主机通信,但是如果没有网关代理设备的“帮助”,这样的主机就无法访问组织之外的网络。原因是,从内向外发送的数据包所携带的源IP地址对组织以外的网络来说不具备唯一性,因此外部世界的网络无法将回程流量送回内部网络。因为公司只要构建私有网络,大都会启用相同的私网IP地址,故而可以减少对全球唯一的公网IP地址的需求。

配置了私网地址的主机可以和配置了公网地址的主机共存。图3-18显示了这样一个环境。


138ccd759d434b17abdae97e654d4dfad681f8f3

公司可以选择为绝大多数主机配置私有地址,并仍然为某些特定网段上的主机配置公网地址。配置了公网地址的主机可以照常访问Internet。对于那些使用私有地址但仍要访问Internet的公司来说,他们有义务去执行路由过滤,以阻止将私有地址泄露到Internet。无论如何,服务提供商都应该对来自客户的入站路由施以策略——只接受来自公网地址空间的路由。

上述做法的缺点是,如果有一天公司决定让所有主机访问Internet,那么就必须对网络重新编址——使用新的公网地址替代私网地址。随着引入像DHCP(动态主机配置协议)这样的新型协议,这项任务也变得颇为简单。DHCP提供了一种向使用TCP/IP协议簇的主机传输配置参数的机制(包括IP地址)。只要支持DHCP,主机就能够从中央服务器动态获取新IP地址。

另一种方案是:安装一台堡垒(bastion)主机,在公网和私网之间担当网关。如图3-19所示,主机A配置了私网地址。若主机A想要对公司外部网络执行Telnet操作,该主机可以首先登陆主机B,然后再从主机B上执行对外的Telnet操作。现在,发往公司外部世界的Telnet数据包的源地址是主机B的IP地址,这个地址是全球唯一的公网地址。第三种方案是启用网络地址转换器。


1113200bd2695e94e1d039e66abc940823c09b47

网络地址转换
借助于网络地址转换技术(NAT),公司就可以从私有地址空间过渡到公网地址空间。NAT技术能够在IP地址无须重新编址的情况下让私有网络连接到Internet。当内部主机需要与Internet上的目的网络通信时,可在网域边界放置NAT路由器,该路由器会将私网地址和公网地址相互转换。

如图3-20所示,主机A和B分别配置了私网地址10.1.1.1和10.1.1.2。


d15a1b22a4ec184236bed6030062f92ad523ca87

若主机A和B想要访问公司以外的网络,NAT设备会根据自身NAT表中预定义(或动态)的映射来转换数据包的源IP地址。由主机A所发的数据包抵达外部目的网络时,数据包的源地址已被替换为128.213.x.y。外部主机对数据包中地址的转换一无所知,并以128.213.x.y这一公网地址为目的地来发送回程流量。NAT设备会将外部主机所发回程数据包的目的地址(128.213.x.y)再转换回内部主机的私网地址。

对NAT设备的深入讨论超出了本书的范围,这主要是因为NAT设备处理的情况许多属于极端情况(corner case),或是非常复杂。胡乱使用公网地址作为私网地址的企业就是其中一例。在这种情况下,地址注册机构可能已将该公司所滥用的公网地址分配给了其他公司。分配给公司的公网地址数量少于内部主机实际数量是另外一例。在这种情况下,就必须使用NAT将私网地址映射为一小块公网地址。

并不总是需要部署专用设备来行使NAT功能,网络中的路由器软件一般都支持NAT功能。Cisco公司早已将NAT功能集成进了Cisco互联网络操作系统(IOS)。

3.2.4 IP版本6

IP版本6(Ipv6)亦称为下一代IP(Ipng),是对现有Ipv4实现的重大改进。

IPng提案于1992年7月在波士顿举行的IETF(Internet工程任务组)会议上发布,随后成立了若干专门的工作小组。IPv6旨在解决诸多问题,主要包括IP地址耗尽、服务质量能力、节点自动配置以及认证和安全性能等。

IPv6尚处于实验阶段。对于那些在IPv4架构中投入颇多的公司和管理员来说,迁移到一个崭新的架构绝非易事。针对IPv6刻意去攻克的所有主要问题,只要IPv4的实现还能不断地提供工具和技术(尽管看似笨拙)加以应付,对许多公司来说,采用IPv6的愿望就不会那么强烈。何时会迁移到IPv6还尚未可知。本书只是略微提及IPv6编址方案的部分内容,并与IPv4进行比较。

相较于IPv4的32位,IPv6的长度为128位。这应该能够提供充足的地址空间,以应对Internet的地址耗尽和扩展性问题。128位的地址转换为2的128次方,地址数量可谓是无穷无尽。

IPv6地址类型由一个名为格式前缀(Format Prefix(FP))的可变长度字段来表示,该字段起始于地址的最左边一位(见图3-21)。


fe99ecee4bb16ce1f877bb3bf05b5e3a7c98afde

表3-7罗列了最初对IPv6前缀的分配方案。IPv6定义了多种地址类型。这里只讨论基于提供商的单播地址,以及用于公司的与IPv4一起使用的本地地址。


e643f4a73c6bdb6e603eaa52f50c386b1a514638


589ef1f64c8cde35908525028dea8ce28eae786c

基于提供商的单播地址
基于提供商的单播地址与IPv4公网地址类似。其格式如图3-22所示2。


aac9ed2a3d1e3300bfd8a1fb1b36e3429847ba73

对基于提供商的单播地址各字段的描述如下所示。

格式前缀——地址的前3位为010,用来表示基于提供商的单播地址。
注册机构ID——标识分配了提供商ID的注册机构。
提供商ID——标识管理地址的提供商。
用户ID——标识了连接到提供商的用户。
子网ID——标识了地址所属的物理链路。
接口ID——标识了属于子网ID的具体接口。例如,该字段可以是传统的48位IEEE-802介质访问控制(MAC)地址。
IPv6公网地址融入了IPv4编址方案的CIDR功能。IPv6地址按照分层体系结构定义,如图3-23所示,每个实体都从上一层实体获取自己的地址块。

本地使用的地址
本地使用的地址与在RFC 1918中定义的IPv4私有地址类似,分为以下两种类型。

本地链路地址(前缀FE80::/10)3——特定物理网段所使用的私有地址。


3105bfc9353c460a8f284e56557d79f75872a0cb

本地站点地址(前缀FEC0::/10)——特定站点所使用的私有地址。
图3-24描述了上述两种本地使用地址的格式。


bf74247414e11563e353e1a8557a1a3b9f24f0b4

本地使用的地址只具有本地意义。这也就是说,本地链路地址只作用于特定的网段,本地站点地址只作用于特定的站点。

没有连接到Internet的公司可以轻易分配属于自己的地址,而无需从公网地址空间中申请前缀。若该公司稍后决定连接到全球Internet,那么该公司在获取了注册机构ID、提供商ID、用户ID之后,再加上自己早已分配好的本地地址,就可以访问Internet了。较之于IPv4编址方案中以公网地址替换所有私网地址,或者使用NAT表来完成地址转换,这是一个重大改进。

1本例中的默认路由0/0。——译者注
2这种地址类型如今已不复存在,此类地址如今已更名为Global unicast(全球单播)地址,以“001”打头,记为2000::/3。——译者注
3但该地址块目前已被重新预留,当然,这遭到了多方反对。——

网友评论

登录后评论
0/500
评论
异步社区
+ 关注