一、CIDR基础知识
CIDR,即Classless Inter-Domain Routing(无类域间路由选择),是一种用于路由选择的IP地址编址方法。与传统的IP地址划分方案(基于网络分类A、B、C)不同,在CIDR中,IP地址不在以网络类别划分,而是采用“子网掩码+网络地址”的方式,来表示IP地址所在的网络。 CIDR使用一个32位掩码(通常表示成一个“斜线”后面跟着一个数字),来表示一个IP地址中网络部分和主机部分的划分。例如:255.255.255.0的掩码就表示地址后24位是主机地址,剩下8位是网络地址。CIDR表达式的格式为:IP地址/网络前缀长度,例如10.0.0.0/24表示网络号为10.0.0.0,子网掩码为255.255.255.0的网络。
二、CIDR计算公式
对于一个CIDR格式的IP地址:xxx.xxx.xxx.xxx/n,其主机数量(Hosts)和子网掩码(Netmask)可以通过下列公式计算得出:
Hosts = 2^(32-n)-2 Netmask = 2^32-2^(32-n)
其中n为网络前缀的位数,^表示次方操作。例如,对于CIDR地址“192.168.1.0/24”,其主机数量为2^(32-24)-2=254,子网掩码为255.255.255.0。
三、CIDR计算实例
下面通过实例演示如何进行CIDR计算:
例1:计算CIDR地址包含的主机数量和子网掩码
对于CIDR地址:192.168.0.0/16,计算其主机数量和子网掩码。
解题步骤如下:
第一步,找到网络地址,即第一个被掩码覆盖的地址,其二进制为:11000000 10101000 00000000 00000000。
第二步,确定子网掩码。由于CIDR地址中网络前缀的长度为16,剩下的主机部分长度为16位,因此子网掩码为:11111111 11111111 00000000 00000000,即255.255.0.0。
第三步,计算主机数量。由于剩下的主机部分长度为16位,主机数量为:2^(16)-2=65534。
因此,CIDR地址192.168.0.0/16的子网掩码为255.255.0.0,可用主机数量为65534。
例2:计算给定主机数量最小的CIDR地址和子网掩码
假设要将某个地址段划分给255个子网使用,求最小的CIDR地址和子网掩码。
解题步骤如下:
第一步,计算主机数量。由于划分给每个子网调用128个IP地址(含网关和广播地址),因此每个子网的主机数量为:128-2=126。
第二步,确定子网掩码长度。最小掩码长度满足2^n > 126,n为最小掩码长度,即2^7=128 > 126。因此,最小的CIDR地址需要至少使用7位二进制位。
第三步,确定CIDR地址。由于CIDR地址需要至少使用7位二进制位,显然无法使用Class A或Class B的地址,应使用Class C地址。假设使用192.168.0.0作为网络地址,第3个二进制位开始作为网络前缀,则CIDR地址为:192.168.4.0/25。
第四步,确定子网掩码。CIDR地址的网络前缀长度为25位,因此子网掩码为:11111111 11111111 11111111 10000000,即255.255.255.128。
因此,最小的CIDR地址为192.168.4.0/25,子网掩码为255.255.255.128。