等长划分的五步
把一个大网段切成若干等长子网的流程固定为五步:确定每个子网最大主机数 H;找最小 h 使 2^h - 2 ≥ H;新前缀为 32-h;块大小是 2^h;从基网段首地址按块大小递推列举。等长划分规则统一、边界整齐,适合按楼层或按部门均分的场景。
为什么先用主机数定块
等长划分有两种问法:给子网数量、或给每网主机数。给数量时借位数取「数量的上界 2 的幂」;给主机数时先算主机位再推前缀。实践中最省事的做法是统一转成主机数:哪怕题目只给段数,也算出每段能装多少台,这样两种问法用同一套流程。
列举时怎么不出错
列举子网时始终从基网段首地址出发、每次加一个块大小,并检查每一步的起点都能被块大小整除。这样得到的序列是唯一正确的,且不会重叠。最后把首尾两个块单独验算一遍(首块从期望的起点开始、末块的广播地址等于基网段广播),中间按等差序列填充即可。
基本信息
| 步骤 1 | 每子网最大主机数 H(含冗余) |
|---|---|
| 步骤 2 | 最小 h 使 2^h - 2 ≥ H |
| 步骤 3 | 新前缀 = 32 - h |
| 步骤 4 | 块大小 = 2^h |
| 步骤 5 | 从首地址按块大小递推列举 |
典型使用场景
- 一个 /24 均分给 4 个楼层,每层不超过 50 台终端
- 把 /22 切成 4 个 /24,分给同一园区的四个机房
- 为多个相同规模的部门分配地址,规则统一便于运维
- 考试题中按要求段数或每段主机数计算掩码
- 为批量部署的同类环境(分校、分店)分配对齐的网段
例:192.168.1.0/24 均分 4 段(每段 ≤50 台)
例:192.168.1.0/24 均分 4 段(每段 ≤50 台)
H=50 → 2^6 - 2 = 62 ≥ 50 → h=6 → /26,块 64
192.168.1.0/26 可用 .1 - .62
192.168.1.64/26 可用 .65 - .126
192.168.1.128/26 可用 .129 - .190
192.168.1.192/26 可用 .193 - .254批量验算
批量验算
python -c "import ipaddress as ip; [print(n, n.num_addresses - 2) for n in ip.ip_network('192.168.1.0/24').subnets(new_prefix=26)]"
# 192.168.1.0/26 62
# 192.168.1.64/26 62
# 192.168.1.128/26 62
# 192.168.1.192/26 62常见均分方案
| 基网段 | 段数 | 每段前缀 | 每段可用 |
|---|---|---|---|
| /24 | 2 | /25 | 126 |
| /24 | 4 | /26 | 62 |
| /24 | 8 | /27 | 30 |
| /24 | 16 | /28 | 14 |
| /22 | 4 | /24 | 254 |
等长划分的浪费是必然的:如果各段实际需求差异很大,会有一半以上的地址闲置。此时改用 VLSM 更合适,但等长方案胜在规则统一、边界整齐、汇总方便,小规模场景下依然常用。
需求 50 台时选 /27 是错的:/27 只有 30 台可用。正确的判断依据是 2^h-2 ≥ 50,最小 h 是 6,对应 /26,别把段数要求与主机数要求混在一起。