早在业界还在兴建因特网的时候,技术人员专注于理解IP寻址方法的重要性。人们研究的是A类、B类和C地址、子网掩码以及如何计算这些掩码。人们对分类方案非常熟悉,以至经常把街道地址同IP地址混为一谈。现在有些人仍在这么做。
然而如今,网络界很少采用所谓的传统IP寻址方法。更为常见的是,ISP采用无类别域间路由(CIDR)。
分类方案的问题
起初,视网络规模而定,包括IPv4地址的32位地址空间被分成了五类(见图表一)。每类地址包括两个部分:第一个部分识别网络,第二个部分用来识别该网络上某个机器的地址。它们采用点分十进制记法表示,有四组数字,每组代表八位,中间用句点隔开。譬如说xxx.xxx.xxx.yyy,其中x表示网络地址,y表示该站的号码。分配用来识别网络的比特越多,该网络所能支持的站数就越少,反之亦然。
处在最上端的是A类网络,这专门留给那些节点数最多的网络――准确地说,是16277214个节点。A类网络只有126个。B类网络则针对中等规模的网络,但照今天的标准来看,规模仍然相当大:拥有65534个节点。B类网络有65000个。然而,大多数分配的地址属于C类地址空间,它最多可以包括254个主机。C类网络超过200万个。
最后两类地址:D类和E类有着特别用途。D类网络用于多播应用;E类网络留给将来使用。
地址分类法带来了两个问题,最大一个问题就是这些类别无法体现顾客的需求。A类地址实在过大,以至浪费了大部分空间。另一方面,C类网络对大多数组织来说实在太小,这意味着大多数组织会请求B类地址,但又没有足够的B类地址可以满足需求。
随着网络地址数量不断增加,ISP和运营商面临的棘手问题也在随之增多。90年代初促使因特网流量猛增的主角:主干网路由器必须跟踪每一个A类、B类和C类网络,有时建立的路由表长达1万个条目。从理论上来说,路由表大小最多可以设成6万个条目。如果当初网络界不是迅速采取行动的话,估计因特网到1994年就到达极限了。
第二个问题就是浪费了地址空间。小规模独立网络(譬如20个节点)获得C类地址后,剩余的234个地址却闲置不用。此外,大组织会想方设法采用子网化技术(subnetting),把自己的A类或B类地址分成更小、更容易管理的地址群。子网能够建立一群群通常与单一网络段相关的网络站,而不是让100万个站连接在一条线路或一个集线器上。更确切地说,子网重新分配了原先用于表示主机地址的部分比特,改而用来表示子网。
假设把一个C类网络当作64个拥有两个节点的网络。头24位则表示C类网络地址,随后6位表示子网,最后2位就表示某机器的号码。因特网上其余设备只会注意C类网络,让内部网络跟踪子网及该站地址。
这办法相当巧妙,但存在一个问题:子网也会导致站地址减少。在每个子网内,两个地址用于广播流量。视结构配置而定,地址数量最多有可能会减少一半。举例说,一个C类网络通常支持254个末端主机。然而,把C类网络分成64个子网会把可能的地址数量减少到128个末端主机――大约只有可能的地址总数的3%。
淘汰分类方案
解决这些寻址问题的办法就是丢弃分类地址概念。CIDR利用表示用来识别网络的比特数量的“网络前缀”,取代了A类、B类和C地址。前缀长度不一,从13到27位不等,而不是分类地址的8位、16位或24位。这意味着地址块可以成群分配,主机数量既可以少到32个,也可以多到50万个以上(见图表二)。
下面介绍一下工作原理:CIDR地址包括标准的32位IP地址和用正斜线标记的前缀。因而,地址66.77.24.3/24表示头24位识别网络地址(这里是66.77.24),剩余的8位识别某个站的地址:号码3。
因为各类地址在CIDR中有着类似的地址群,两者之间的转移就相当简单。所有A类网络可以转换成/8 CIDR表项目。B类网络可以转换成/16,C类网络可以转换成/24。
CIDR的优点解决了困扰传统IP寻址方法的两个问题。因为以较小增量单位分配地址,这就减少了浪费的地址空间,还具有可伸缩性优点。路由器能够有效地聚合CIDR地址。所以,路由器用不着为八个C类网络广播地址,改而只要广播带有/21网络前缀的地址――这相当于八个C类网络,从而大大缩减了路由器的路由表大小。
这办法可行的唯一前提是地址是连续的。不然,就不可能设计出包含所需地址、但排除不需要地址的前缀。为了达到这个目的,超网块(supernet block)即大块的连续地址就分配给ISP,然后ISP负责在用户当中划分这些地址,从而减轻了ISP自有路由器的负担。
对企业的网络管理人员来说,这意味着他们要证明自己的IP地址分配方案是可行的。在CIDR出现之前,获得网络地址相当容易。但随着可用地址的数量不断减少,顾客只好详细记载预计需求,这过程通常长达3个月。此外,如果是分类地址方法,公司要向因特网注册机构购买地址。然而有了CIDR,就可以向服务提供商租用地址。这就是为什么更换ISP需要给网络设备重新编号,不然就要使用新老地址之间进行转换的代理服务器――这又会严重制约可伸缩性。
地址分类方法
图表一:原始的IP寻址方法主要基于三类地址:A类、B类和C类地址。
前缀等同比较
图表二:图表比较了CIDR和非CIDR寻址方法的对应。