CIDR 细述无类别域间路由技术

早在业界还在兴建因特网的时候,技术人员专注于理解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 。

推荐阅读