题干与答案
题目:192.168.5.0/24 要分给三个部门,分别需要 100 台、50 台、20 台。答案是把大块放低位:100 台用 /25(192.168.5.0/25,可用 .1–.126)、50 台用 /26(192.168.5.128/26,可用 .129–.190)、20 台用 /27(192.168.5.192/27,可用 .193–.222),剩余 .224–.255 一个 /27 留作扩展。
解题步骤
第一步降序排序:100 > 50 > 20。第二步逐项定掩码:2^7-2=126 ≥ 100 用 /25;2^6-2=62 ≥ 50 用 /26;2^5-2=30 ≥ 20 用 /27。第三步从池首地址依次落位,每块起点必须是块大小的整数倍:/25 从 .0 起、/26 从 .128 起、/27 从 .192 起。第四步写出可用范围并统计剩余。
为什么不能先放小块
如果把 20 台的 /27 放在 .0 开始,剩下 .32 到 .255 都是 32 的倍数起点,100 台需要的 /25 要求起点是 128 的倍数,.32、.96 都不满足,只能挤到 .128,于是 50 台的 /26 又要找 64 的倍数起点,空间被切得七零八落,很容易出现某段放不下。先大后小不是为了好看,而是 VLSM 能成立的硬性要求。
基本信息
| 地址池 | 192.168.5.0/24(256 个地址) |
|---|---|
| 需求 | 100、50、20 台三个部门 |
| 分配顺序 | 100 → 50 → 20(降序) |
| 结果 | /25、/26、/27 各一块,剩余一块 /27 |
分配结果明细
- 100 台:192.168.5.0/25,可用 .1 – .126,126 个地址
- 50 台:192.168.5.128/26,可用 .129 – .190,62 个地址
- 20 台:192.168.5.192/27,可用 .193 – .222,30 个地址
- 剩余:192.168.5.224/27,可用 .225 – .254,留作扩展
- 三个部门各配一个网关(惯例取各段第一个可用地址)
解题步骤速记
解题步骤速记
① 排序:100 > 50 > 20,大块放低位
② 100 台 → /25(126 可用)→ 192.168.5.0/25
③ 50 台 → /26(62 可用)→ 192.168.5.128/26
④ 20 台 → /27(30 可用)→ 192.168.5.192/27
⑤ 剩余 .224–.255(/27)留作扩展Python 验算不重叠
Python 验算不重叠
python -c "import ipaddress as ip; nets=[ip.ip_network(x) for x in ['192.168.5.0/25','192.168.5.128/26','192.168.5.192/27']]; print(all(not a.overlaps(b) for i,a in enumerate(nets) for b in nets[i+1:])); print(sum(n.num_addresses for n in nets))"
# True
# 224(剩余 32 个地址)方案一览
| 部门需求 | 掩码 | 网段 | 可用范围 | 可用量 |
|---|---|---|---|---|
| 100 台 | /25 | 192.168.5.0/25 | .1 – .126 | 126 |
| 50 台 | /26 | 192.168.5.128/26 | .129 – .190 | 62 |
| 20 台 | /27 | 192.168.5.192/27 | .193 – .222 | 30 |
| 剩余 | /27 | 192.168.5.224/27 | .225 – .254 | 30 |
剩余空间恰好是一整块 /27,这在小网段规划里很典型:VLSM 的块大小都是 2 的幂,加起来无法正好填满,总会有若干可用的连续空闲块,把它们登记为预留是最省心的做法。
如果题目把 20 台改成 35 台,用 /27 就不够了(只有 30 台),需要升到 /26;此时剩余空间会被压缩,方案必须重排。这类小改动最能检验是否真的掌握了「需求定掩码」这一步。
每个子网都要配网关并占用一个可用地址,做容量核算时要把网关、交换机管理地址与监控设备一起算进去;100 台的段虽然理论上能装 126 台,但实际可上的终端要略少。