场景与目标
场景:一家约 100 人的公司需要为管理网、办公、无线、服务器、DMZ、VPN 接入与设备互联七类网段做整网规划。目标是一次性把地址结构定下来:主池取 10.0.0.0/16,按功能给每个 /24,DMZ 与互联这类设备很少的段用更小的前缀,最终形成一张可执行的规划表。
为什么这样分
按功能分段而不是按楼层分段,是因为策略比位置更稳定:办公网、无线网、服务器区与 DMZ 的安全策略完全不同,靠网段就能一次性表达。管理网单独一段可以限制谁能访问设备管理面;VPN 接入段与内网分开便于区分远程与本地流量;互联段用 /30 是因为只需要两个地址。
落地的检查点
七段之间不能重叠,起点要按各自的块大小对齐(/24 任意、/28 起点是 16 的倍数、/30 起点是 4 的倍数)。DMZ 的 /28 提供 14 个可用地址,要核对对外服务数量不超过这个上限;DHCP 池必须避开网关与静态地址;剩余空间统一登记为预留,避免后续随手占用打断汇总规划。
基本信息
| 主池 | 10.0.0.0/16 |
|---|---|
| 分段粒度 | 功能明确且设备多的用 /24,设备少的用 /28 或 /30 |
| DMZ 容量 | /28 提供 14 个可用地址 |
| 互联段 | /30(或 /31,视平台支持) |
| 预留 | 未分配部分登记为预留池 |
规划表(方案)
| 区域 | 网段 | 网关 | 说明 |
|---|---|---|---|
| 管理/网管 | 10.0.10.0/24 | .1 | 交换机、AP、IPMI 带外 |
| 办公 | 10.0.20.0/24 | .1 | 有线终端,DHCP 池 .100–.200 |
| 无线 | 10.0.30.0/24 | .1 | 员工 Wi-Fi 与访客 |
| 服务器 | 10.0.40.0/24 | .1 | 静态分配 |
| DMZ | 10.0.50.0/28 | .1 | 对外服务 10 台以内 |
| VPN 接入 | 10.0.60.0/24 | .1 | 远程用户地址池 |
| 设备互联 | 10.0.255.0/30 | — | 核心-防火墙-出口 |
验算与自查
验算与自查
□ 七段互不重叠、起点按块大小对齐
□ DMZ /28 可用 14 个 ≥ 对外服务数量
□ DHCP 池避开网关、静态设备与保留段
□ 设备互联段只放两个地址并登记两端设备
□ /16 其余空间登记为预留,避免随手占用重叠校验(Python)
重叠校验(Python)
import ipaddress as ip
nets = [ip.ip_network(x) for x in ['10.0.10.0/24','10.0.20.0/24','10.0.30.0/24','10.0.40.0/24','10.0.50.0/28','10.0.60.0/24','10.0.255.0/30']]
print('overlap:', any(a.overlaps(b) for i, a in enumerate(nets) for b in nets[i+1:])) # False
print('all in /16:', all(n.subnet_of(ip.ip_network('10.0.0.0/16')) for n in nets)) # True从 10.0.0.0/16 起步是常见保守方案:空间充足、分块清晰,扩容按 16 的倍数继续切即可。若公司会扩张到多站点,建议把 /16 的第三段留给功能编号、把第二段留给站点编号,避免将来跨站点汇总困难。
DMZ 不要随手给 /24:一方面浪费地址,另一方面扩大了对外暴露网段的广播域。按实际对外服务数量取 /28 或 /27 更合适,同时要在防火墙上明确 DMZ 到内网的访问控制。