CIDR prefix 计算, IPv4
CIDR prefix
CIDR prefix是子网掩码(subnet mask)中bit 是1 的个数
例如: 255.255.255.0 的CIDR prefix是/24
255.255.255.0 => 11111111.11111111.11111111.0
一个IPv4地址(32 bits)中,包含了两部分的内容:网络(network)和主机(host)bit是1的个数也就代表了网络部分的长度。
在下图中,network长度为16 btis ,说明有16个比特是1, 所以 CIDR prefix = 16, 子网掩码为255.255.0.0
这个子网可以表示为172.16.0.0/16
例1
第一行:
/27表示CIDR prefix = 27,子网掩码中有27 个bit是1,即255.255.255.224 (224 => 11100000).
IPv4总长为32位,减去网络部分的27位,留给主机host部分的还有5位,2^5=32, 所以这个子网包含32个不同的IP地址。
第二行:
/26表示CIDR prefix = 26,子网掩码中有26 个bit是1,即255.255.255.192 (192 => 11000000).
IPv4总长为32位,减去网络部分的26位,留给主机host部分的还有6位,2^6=64, 所以这个子网包含64个不同的IP地址。
第三行:
/25表示CIDR prefix = 25,子网掩码中有25 个bit是1,即255.255.255.128 (192 => 10000000).
IPv4总长为32位,减去网络部分的25位,留给主机host部分的还有7位,2^7=128, 所以这个子网包含128个不同的IP地址。
第四行:
/24表示CIDR prefix = 24,子网掩码中有24 个bit是1,即255.255.255.0, 是一个标准的子网掩码。
IPv4总长为32位,减去网络部分的24位,留给主机host部分的还有8位,2^8=256, 所以这个子网包含256个不同的IP地址。
例2
给定一个IP地址为192.168.32.55,子网掩码为255.255.252.0,计算CIDR前缀、子网地址和广播地址
(Given an IP address of 192.168.32.55 with a subnet mask of 255.255.252.0, calculate the CIDR prefix, subnet address and broadcasting address)
Step1:计算CIDR前缀
把子网掩码转成二进制形式,计算有多少个bit是1,即可得到 CIDR prefix=22
step2:计算网络地址
网络地址是这个子网中最低的地址,将IP地址192.168.32.55与子网掩码255.255.252.0做逻辑与运算(&)(相同为1,不同为0),即可得到网络地址。
step3:计算广播地址
广播地址是子网中最高的地址,首先根据刚才得到的网络地址和CIDR前缀得到用于主机部分的bit是多少位 (32-22=10)。然后让所有主机位都为1,即可得到广播地址。
例3
IP地址为192.168.32.55 /26,计算子网掩码、子网地址和广播地址。
Given an IP address of 192.168.32.55 /26, calculate the subnet mask, subnet address and broadcasting address