要明白 VLSM 与 CIDR 是什么,首先要清楚 IP 地址的格式与结构组成。
IP 地址格式
IP 地址由 32 位组成,每一个 IP 地址都是由网络号跟主机号组成的。网络号就好像是每台设备所在区域的一个标识,网络号相同的设备位于同一个子网中。主机号就是在本网段中不同设备的不同标识。
国际组织把IP地址划分成五类,如下图所示:
A 类地址:0.0.0.0~127.255.255.255,前 8 位为网络号,后 24 位为主机号,主要用于大型网络(127.0.0.0 也属于 A 类地址,不过它被用于 LOOP BACK 回环路径,用作测试用的,所以不能分配给主机)。Internet 有 126 个 A 类地址,其中每个地址能容纳 16777214 个主机。
B 类地址:128.0.0.0~191.255.255.255,前 16 位为网络号,后 16 位为主机号,主要用于中型网络。Internet 有 16382 个 B 类地址,其中每个地址能容纳 64534 个主机。
C 类地址:192.0.0.0~223.255.255.255,前 24 位为网络号,后 8 位为主机号,主要用于小型网络。Internet 有 2097150 个 C 类地址,其中每个地址能容纳 254 个主机。
D 类地址:224.0.0.0~239.255.255.255,D 类地址没有反映网络大小,他只是用于组播,用来指定接收组播信号的设备的 IP 地址。
E 类地址:240.0.0.0~255.255.255.254,用作试验。
但是,这个 IP 的制定方式是及其不合理的。假设一家企业拥有 20000 台电脑,需要申请一个 B 类地址。但是 B 类地址最多是能容纳 64534 个主机的,因此就会出现 40000 多个 IP 地址空余出来,没有分配到任何一台主机上面,造成 IP 地址的严重浪费。
当初在制定 IP 地址规格的时候,是没有考虑过互联网会发展到今天如此大的规模,结果造成 IP 地址资源的严重不够,每个 IP 地址没有充分利用。在当时 IPV6(128 位地址,号称地球每粒沙子都能分配一个 IPv6 地址)还没出现的时候,为了能够最大限度地利用 IP 地址,VLSM 出现了。
VLSM(可变长子网掩码)
VLSM(可变长子网掩码)是一种划分子网的技术,它可以对 A、B、C 类地址再进行子网划分,以达到充分利用 IP 地址的目的。
假设一家企业有 100 台电脑,按照以前的办法,只能分配一个 C 类地址给它。但 VLSM 可以在一个 C 类地址上划分出多个子网地址,再分配其中一个容纳主机数量与稍大于企业需求数量的 IP 地址给企业。这样做可以实现 IP 地址的不浪费。
划分子网,一句话,其实就是网络号向主机号借位。例如:
在 208.208.208.0 这个 C 类地址中,需要划分出一个容纳 100 台电脑的子网。2 的 7 次方是 128,可以计算出能容纳 100 台电脑的子网主机号最少需要 7 位,因此网络号长度为 32-7=25 位。网络位向主机位借 1 位,子网掩码为 255.255.255.128。
208.208.208.0=11010000.11010000.11010000.00000000
255.255.255.128=11111111.11111111.11111111.10000000
以上二进制地址做与运算,可以得出新的子网地址为 208.208.208.0/25。
因此 208.208.208.0/24 可以划分成 208.208.208.0/25 和 208.208.208.128/25 两个子网地址,每个子网地址可以容纳 126 台主机。公司只需要其中一个子网地址就能达到需求,另外一个地址可以留作其他公司使用,达到充分利用 IP 地址的,不浪费地址资源的目的。
CIDR(无类别域间路由)
CIDR主要有两个作用:
- 把多个地址块聚合到一起,生成一个能容纳更多主机的网络。
- 汇总路由表IP地址,分担路由表压力。
VLSM 是网络号向主机号借位,目的是把一个标准的网络划分成几个子网,减少子网主机数量。
CIDR 是主机号向网络号借位,目的是把几个网络汇总成一个大的网络,增加子网主机数量。
就像 208.208.208.0/25 和 208.208.208.128/25 两个子网地址,可以汇总成 208.208.208.0/24,而 208.208.208.0/24 也可以与 208.208.208.1/24 汇总成 208.208.208.2/23。CIDR 汇聚网络的方法跟 VLSM 划分子网的方法相类似。
CIDR 也可以用来做 IP 地址汇总(超网)。由于在 Internet 环境中,运营商的路由器所拥有的路由条目是异常庞大的。但在采用 CIDR 后,就可以将连续的地址空间总结成一条路由条目,路由表不再需要对外宣称所有网段的信息,这样做可以大大地减少路由表中的条目数量。
参考
https://blog.51cto.com/hollyorange/1414838