无分类编址CIDR(构成超网)
本文内容
1 无分类编址
划分子网虽然在一定程度上提高了IP地址空间的利用,但是在2011年,整个IPv4的地址空间最终被消耗殆尽。为了解决这个问题,提出了无分类编址的方法。
划分子网在一个局域网中它的子网号的长度是固定的,即所有的子网的掩码都是相同的,之后提出变长的子网掩码进一步提高IP地址资源利用率,无分类编址就是在变长子网掩码的基础上研究出的方法。
无分类编址又称无分类域间路由选择CIDR(读音“sider”),CIDR将32位IP地址划分为前后两个部分,前面的部分称为网络前缀或简称为前缀,用来指明网络,后面的部分则用来指明主机。
IP地址:{<前缀部分>,<主机号>}
下图表示三种编址方式的图示
(1) CIDR消除了传统的A类、B类和C类地址以及划分子网的概念。
CIDR不再规定使用固定的多少位来指定网络号和主机号,更加有效率的分配了IPv4的地址空间。
(2) CIDR还使用“斜线记法”,或称为CIDR记法,即在IP地址后面加上“/”,然后写上网络前缀所占的位数。如128.14.35.7/20。
(3) CIDR把网络前缀相同的连续的IP地址组成一个CIDR地址块。只需要知道CDIR地址块中的任意一个地址,就可以知道这个CIDR地址块的起始地址(最小地址)和最大地址,以及CIDR地址块中的地址数。
例如,已知IP地址128.14.35.7/20是某个CIDR地址块中的一个地址,那么最小地址、最大地址计算如下
(4) 为了方便路由选择,CIDR使用32位地址掩码。地址掩码由一串1和一串0组成,而1的个数就是网络前缀的长度。如上图所示,斜线记法中,斜线后的数字就是地址掩码中1的个数。
所以CIDR融合了子网地址和子网掩码,方便子网的划分。
虽然CIDR不使用子网,但是还有一些网络还使用子网划分和子网掩码,因此CIDR使用的地址掩码也可以继续称为子网掩码。
2 构成超网
将多个子网聚合成一个较大子网,叫做构成超网,或路由聚合。
方法:将网络前缀缩短。
例如网络1:203.1.0.0/17和网络2:206.1.128.0/17,可以将这两个子网聚合成一个更大的子网206.1.0.0/16,如下图所示。
路由聚合最大的优点就是大大提高路由效率。
如下图所示,如果要发送数据报给网络1和网络2,通过路由器R1,需要查看路由器转发表,判断网络前缀,但是无论是网络1还是网络2,其下一跳(即写一个要转发的路由器)都是R2。
如果一个路由器连接网络特别多时(如主干路由器),这就会使得路由转发表表项特别多,可以通过路由聚合,可以将多个子网聚合成一个大的子网,当有数据报要发送时,如果目的地址IP前缀满足聚合的子网前缀,就直接转发到下一个路由器的接口即可,这样可以大大减少路由器转发表的大小。如下图所示,当有数据报发送到R1时,不管它具体发送到哪个网络,只要前置满足超网的前缀,直接就转发到R2即可。
可以将图中的子网络看成一个个体,这些个体都在同一个区域(如一个大学,或一个公司),R2看做一个快递站,R1快递员不用将快递一个个送到个体手中,只要将快递送到这个区域的收发室就可以了,至于收发室怎么将这些快递送到个体手中就不归它管了,这就大大提高了快递员的效率。
3 最长前缀匹配
考虑上图这种情况,如果网络3同样满足上面的超网前缀,但是它不再R2所连接的网络内,如果此时一个数据报的地址为206.1.1.1/17,可以知道这个数据报是要发送给网络3的某台主机,如果仅仅使用图中的路由表会导致数据报送错了地方,所以,需要为路由转发表中添加网络3的网络地址。
添加了网络3的IP地址后,在路由转发表中这两个表项都满足目的地址的前缀,这时路由器该如何选择呢?路由器会从匹配结果中选择具有最长的网络前缀的路由——最长前缀匹配。这是因为前缀越长,地址块越小,路由越具体。如上图中,206.1.1.0./17网络前缀有17位,并且都能够匹配17位,另一个网络前缀只有16位,只能匹配前16位,所以会选择下一跳地址为R3。
路由器R0的路由表见下表:若进入路由器R0的分组的目的地址为132.19.237.5,那么该分组应该被转发到哪一个下一跳路由器()
从上图可以看出,第一个选项前缀匹配8位,第二个选项前缀匹配11位,第三个选项前缀只能匹配21位,第22位和目的地址二进制不同,所以根据最长前缀匹配,选择下一跳的地址为R2。0.0.0.0/0是默认路由,后面再说。