题干与方案
题目:把 10.10.0.0/16 中一段分给一栋四层办公楼,每层不超过 500 台主机。思路是先满足单层容量:2^8 − 2 = 254 不够,2^9 − 2 = 510 够用,说明主机位需要 9 位,掩码长度为 32 − 9 = 23,每层一个 /23。再从低位开始连续分配四块,第三段的步长是 2,因此四层的网络地址分别是 10.10.0.0、10.10.2.0、10.10.4.0、10.10.6.0。
基本信息
| 需求 | 4 层,每层不超过 500 台 |
|---|---|
| 容量试算 | 2^8 − 2 = 254 不够,2^9 − 2 = 510 满足 |
| 主机位 | 9 位,掩码长度 32 − 9 = 23 |
| 每层掩码 | /23,即 255.255.254.0 |
| 父块 | 10.10.0.0/16,第三段步长 2 |
| 占用总量 | 4 个 /23,共 2048 个地址,用掉 /16 的一小部分 |
| 剩余空间 | 从 10.10.8.0/23 起可继续分配给后续楼层 |
方案与验算
方案与验算
1F 10.10.0.0/23 可用 10.10.0.1 - 10.10.1.254 广播 10.10.1.255
2F 10.10.2.0/23 可用 10.10.2.1 - 10.10.3.254 广播 10.10.3.255
3F 10.10.4.0/23 可用 10.10.4.1 - 10.10.5.254 广播 10.10.5.255
4F 10.10.6.0/23 可用 10.10.6.1 - 10.10.7.254 广播 10.10.7.255
# 相邻两块之间:上一块广播 +1 恰好等于下一块网络地址程序复核
程序复核
python -c "import ipaddress as ip; print([str(n) for n in list(ip.ip_network('10.10.0.0/16').subnets(new_prefix=23))[:4]])"
# ['10.10.0.0/23', '10.10.2.0/23', '10.10.4.0/23', '10.10.6.0/23']
python -c "import ipaddress as ip; print(ip.ip_network('10.10.0.0/23').num_addresses - 2)"
# 510掩码选型对比
| 候选掩码 | 可用主机 | 能否满足 500 台 |
|---|---|---|
| /24 | 254 | 不够 |
| /23 | 510 | 刚好够,余量 10 台 |
| /22 | 1022 | 够用但两层共用一个段会扩大广播域 |
落地建议
- 每层一个 /23 而不是共用一个 /22:控制广播域规模,同时保留整栋楼可汇总为 10.10.0.0/21 的空间
- 四层的网关仍统一取每段第一个可用地址,例如 2F 的网关是 10.10.2.1,DHCP 作用域需逐层配置
- 余量只有 10 台,若某层还要放会议室与访客终端,应提前把其中一层升到 /22 或另开新段
- 整栋楼的四段合起来是 10.10.0.0/21,对外通告一条汇总路由即可,无需四条明细
- 规划表里同时记录每层的 VLAN 号、网关与地址池范围,后续上下线核对更快
同类题变形
- 若每层不超过 800 台:2^10 − 2 = 1022 才是最小满足,掩码为 22,四层需占四个 /22
- 若改为 6 层楼:继续从 10.10.8.0/23 往后接力,第三段步长始终为 2
- 若要求整栋楼汇总为一条路由:四层共 4 个 /23 恰好可汇总为 10.10.0.0/21
题目里的“不超过 500 台”包含网关与网络设备:510 个可用地址减去网关占用的 1 个,实际留给终端的不到 510 个,按 500 台规划余量已经很小。