子网划分的最初目的是把基于类的网络划分为几个规模相同的子网。其实,创建不同规模的子网可避免IP地址的浪费。对于不同规模子网的划分,称为变长子网划分。
变长子网划分是一种用不同长度的子网掩码来分配子网号字段的技术。它是对已划分好的子网使用不同的子网掩码做进一步划分形成不同规模的网络,从而提高IP地址资源的利用率。
变长子网划分举例
一个B类IP地址为136.48.0.0的网络,需配置为1个能容纳32000台主机的子网,15个能容纳2000台主机的子网和8个能容纳254台主机的子网。
划分子网的概念缓解了当初IP地址设计不够合理所引起的矛盾,而变长子网的概念也符合用户对IP地址实际使用的需要。但这些措施并未从根本上缓解因特网在发展过程中所遇到的困难。
在1992年,因特网面临着三个急需解决的问题:①B类地址在1992年已分配过半。②因特网主干网上的路由表中的项目数急剧增长。③2011年2月,IANA宣布IPv4地址已经耗尽。
IETF在VLSM的基础上,又研究出采用无分类编址方法来解决上述问题。无分类编址方法的正式名字无分类域间路由选择CIDR(Classless Inter-Domain Routing),其新文档是RFC 4632
CIDR的主要设计思想
CIDR取消了以往对IP地址进行分类以及划分子网的概念,利用各种长度的“网络前缀 (network-pfefix) ”来代替分类地址中的网络号和子网号。
IP地址∷={<网络前缀>,<主机号>}
CIDR把网络前缀相同的连续的IP地址块组成“CIDR地址块”。一个CIDR地址块可用它的起始地址和块中地址数来表示。如136.48.32.8/20表示某CIDR地址块中的一个地址。
无分类编址的表示
CDIR使用网络前缀标记法(或斜线记法),即在IP地址后面加一斜线“/”再加一数字,此数字是网络前缀的位数,如136.48.52.36,表示该IP地址的前20位是网络前缀。
CIDR还使用其他几种表示形式。一种是把点分十进制中的低位连续的“0”省去,如20.0.0.0/10,可表示为20/10。另一种是在网络前缀后面加一个星号“*”,如00010100 00*,其中星号前是网络前缀,星号表示IP地址中的主机号
CIDR地址块举例
136.48.32.8/20地址块含有212个地址
路由聚合(route aggregation)
一个CIDR地址块可以包含很多地址,路由表的表项也可改用地址块来表示。这种地址聚合称为路由聚合。路由聚合既利于缩短路由表,又可减少查找路由表的时间,从而提高了因特网的性能。路由聚合也称为构建超网(supernetting)。
CIDR 虽然不使用子网概念,但仍然使用“掩码”这一名词(只是不叫子网掩码而已)。如对 /20 地址块,它的掩码是20个连续的1。斜线记法中的数字就是掩码中 1 的个数。
构建超网
在“包含的地址数中”,包含了全0和全1地址。表中K表示210(即1024)。网络前缀小于13或大于27的地址较少使用。 CIDR地址块中的地址数一定是2的整数次幂。
使用CIDR地址块的最大好处