Alex_McAvoy

想要成为渔夫的猎手

IPv4 地址与 CIDR

【概述】

连接在 Internet 中的每一台主机或路由器,都会被分配一个 $32bit$ 的全球唯一标识符,即 IPv4 地址,常被称为 IP 地址

IP 地址的发展阶段经历分类 IP子网划分无分类编址三个阶段

本文主要介绍无分类编址

【无分类域间路由选择 CIDR】

概述

无分类域间路由选择(CIDR)是在变长子网掩码的基础上,提出的一种消除传统 A、B、C 类网络划分的方法,并且其可在软件的支持下实现超网构造

举例来说,如果某个单位需要 2000 个地址,那么就分配给它一个 2048 地址的块,即 8 个连续的 C 类网络,而非一个完全的 B 类地址

这样可以极大幅度的提高 IP 地址空间的利用率,减小路由器的路由表大小,提高路由转发能力

基本思想

CIDR 使用网络前缀的概念来代替子网络的概念,这样 IP 地址的无分类两级编址为:

同时,其在点分十进制记法的基础上,使用了斜线记法,即:IP 地址/网络前缀所占比特数,这样一来,网络前缀所占比特数的部分,对应于分类 IP 中的网络号,等效于子网掩码中连续 $1$ 的部分

例如,对于 128.14.32.5/20 这个地址,其掩码是 $20$ 个连续的 $1$ 和后续 $12$ 个连续的 $0$,通过直接截取前 $20$ 位或与子网掩码逐位与的方法,即可得到该地址的网络前缀

CIDR 虽然不适用子网,但仍然使用掩码这一概念,具体来说,是指 CIDR 并没有在 $32$ 位地址中指明若干位作为子网字段,但分配到一个 CIDR 地址块的单位,可在本单位内根据需要来划分一些子网

例如,某单位分配到地址块 /20,可以在其基础上划分 $8$ 个子网,即从主机号中借用 $3$ 位,此时,每个子网的网络前缀就变为 /23

CIDR 地址数

CIDR 地址块中的地址数一定是 $2$ 的整数幂,实际可指派的地址数为

其中,$N$ 代表主机号的位数,减去的 $2$ 分别代表主机号全 $0$ 的网络号和全 $1$ 的广播地址

网络前缀越短,其地址块包含的地址数就越多

【最长前缀匹配】

最长前缀匹配,又称最佳匹配,是使用 CIDR 时查找路由表利用一种方法

在使用 CIDR 时,路由表中的每个条目由网络前缀下一跳地址这两个信息构成

在查找路由表时,可能会得到不止一个匹配结果,而由于网络前缀越长,其地址块就越小,路由就越具体,因此,应该从匹配结果中选择具有最长网络前缀的路由

【超网构造】

超网构造,又称路由聚合,是将网络前缀相同的连续的 IP 地址,组成一个 CIDR 地址块,从而使得一个 CIDR 地址块可以表示很多地址

超网构造可以使路由表中的一个项目表示为很多个原来的分类 IP 地址的路由,有利于减少路由选择信息的交换,从而提高网络性能

如下图所示,若不使用超网构造的方法,R1 的路由表中将需要有到网络 $1$ 和网络 $2$ 的路由表项

但可以发现,两个网络的前 $16$ 位都是相同的,第 $17$ 位分别是 $0$、$1$,且从 R1 到网络 1 和网络 2 的路由的下一跳皆 R2

因此,可以采用超网构造的方法,将网络 1 和网络 2 构成一个更大的地址块 206.1.0.0/16,到网络 1 和网络 2 的路由,聚合层一条到 206.1.0.0/16 的路由

感谢您对我的支持,让我继续努力分享有用的技术与知识点!