CIDR 和子网划分怎么算?/24、/26 能容纳多少主机?
简化版
CIDR 用 /n 表示前 n 位是网络位,剩下 32-n 位是主机位。一个 IPv4 子网总地址数是 2^(32-n),常规可用主机数是 2^(32-n)-2,因为要扣掉网络地址和广播地址。例如 /24 有 256 个地址,可用 254 个;/26 有 64 个地址,可用 62 个。子网块大小可以看最后一个非 255 掩码字节,例如 /26 = 255.255.255.192,块大小是 256-192=64。
详细版
CIDR 的关键是前缀长度。前缀越长,网络位越多,子网越小;前缀越短,主机位越多,子网越大。
| CIDR | 掩码 | 总地址数 | 常规可用主机数 |
|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
判断某个 IP 属于哪个子网,可以用块大小法。比如 192.168.1.130/26,块大小是 64,子网段为 0-63、64-127、128-191、192-255,所以它属于 192.168.1.128/26,广播地址是 192.168.1.191,可用地址是 192.168.1.129 到 192.168.1.190。
完整版教学
一、CIDR 的本质:前缀长度决定网络边界
CIDR 写法如 192.168.1.0/24,斜杠后的 24 表示 IPv4 32 位里前 24 位是网络位,后 8 位是主机位。
/24: 网络位 24 位,主机位 8 位
/26: 网络位 26 位,主机位 6 位
/28: 网络位 28 位,主机位 4 位
前缀越长,网络划分越细,单个子网能放的主机越少。前缀越短,网络范围越大,单个子网能放的主机越多。
二、主机数公式:先看主机位,再扣两个地址
如果前缀长度是 /n,主机位就是 32-n 位。总地址数:
总地址数 = 2^(32-n)
常规可用主机数 = 2^(32-n) - 2
为什么减 2?因为普通 IPv4 子网里:
- 主机位全 0 是网络地址,用来表示整个子网;
- 主机位全 1 是广播地址,用来发往该子网所有主机。
例如 /26:
主机位 = 32 - 26 = 6
总地址数 = 2^6 = 64
常规可用主机数 = 64 - 2 = 62
面试算子网时先别急着背表,先算主机位。主机位一出来,容量基本就出来了。
三、掩码怎么从 CIDR 推出来
子网掩码就是网络位全 1、主机位全 0 的 32 位数。常见换算:
| CIDR | 二进制尾字节 | 十进制掩码 |
|---|---|---|
| /24 | 00000000 | 255.255.255.0 |
| /25 | 10000000 | 255.255.255.128 |
| /26 | 11000000 | 255.255.255.192 |
| /27 | 11100000 | 255.255.255.224 |
| /28 | 11110000 | 255.255.255.240 |
比如 /26 表示前三个字节全是网络位,第四个字节前 2 位也是网络位:
11111111.11111111.11111111.11000000
255 .255 .255 .192
四、块大小法:快速判断 IP 属于哪个网段
块大小法非常适合面试口算。步骤:
- 找到掩码里最后一个不是 255 的字节;
- 用
256 - 该字节得到块大小; - 按块大小切段,看目标 IP 落在哪一段。
例如 192.168.1.130/26:
/26 掩码 = 255.255.255.192
块大小 = 256 - 192 = 64
子网段 = 0-63, 64-127, 128-191, 192-255
130 落在 128-191
所以:
网络地址: 192.168.1.128
广播地址: 192.168.1.191
可用地址: 192.168.1.129 - 192.168.1.190
可用主机: 62
五、从需求反推前缀长度
面试也常问:“如果一个子网需要容纳 50 台主机,至少要用多大的子网?”这时反过来算。
需要可用主机数至少 50:
2^主机位 - 2 >= 50
主机位 = 5 时,30 不够
主机位 = 6 时,62 够
前缀 = 32 - 6 = /26
所以最小应选 /26。如果选 /25 也能放下,但浪费更多地址;如果选 /27,只有 30 个可用地址,不够。
六、为什么子网划分不仅是数学题
子网划分的工程意义包括:
- 限制广播范围,减少 ARP 等广播对网络的影响;
- 按部门、环境或安全域隔离,例如办公网、服务器网、管理网;
- 便于路由聚合,例如多个小网段可以汇总成更大的前缀;
- 控制地址利用率,避免过大子网浪费地址。
所以回答时不要只停留在“/24 是 254 个地址”,还要说清楚它用于网络规划、隔离和路由聚合。
七、常见误区与追问
- 误区:/26 比 /24 能容纳更多主机。 前缀越长,网络位越多,主机位越少,单个子网容量越小。
- 误区:总地址数就是可用主机数。 常规 IPv4 子网要扣掉网络地址和广播地址,所以可用主机数通常是总数减 2。
- 误区:子网掩码只能是 255.255.255.0。 CIDR 可以灵活划分,/25、/26、/27、/28 都很常见。
- 误区:块大小等于掩码值。 块大小是
256 - 最后一个非 255 掩码字节,例如 192 对应块大小 64。 - 追问:192.168.1.130/26 的网络地址是多少? /26 块大小 64,130 落在 128-191,所以网络地址是 192.168.1.128。
- 追问:需要 100 台主机至少用多大前缀?
2^7-2=126够,主机位 7 位,所以前缀是 /25。
八、加强记忆
CIDR 题的核心公式是:主机位 = 32 - 前缀长度,可用主机数 = 2^主机位 - 2。块大小法用来快速定位网段:块大小 = 256 - 掩码最后一个非 255 字节。例如 /26 是 64 个地址一段,可用 62 个;192.168.1.130/26 落在 128-191 段,所以网络地址是 192.168.1.128,广播地址是 192.168.1.191。面试时先算主机位,再算块大小,最后补一句子网划分用于隔离广播域、规划地址和路由聚合。