公式与反推
可用主机数 = 2 的主机位次方减 2,两个被减掉的地址是网络地址与广播地址。反推时找最小的 k 使 2^k - 2 ≥ 需求,答案掩码就是 32 减 k。这组换算在容量规划与考试中出现的频率最高,也是所有「选掩码」类问题的统一解法。
门槛数字要记住
记住几个门槛就够了:2 台对应 /30(或 /31)、6 台 /29、14 台 /28、30 台 /27、62 台 /26、126 台 /25、254 台 /24、510 台 /23、1022 台 /22、4094 台 /20。每个数字都是 2 的幂减 2,相邻档位大约差一倍,需求落在哪两个数字之间就取较大的一档。
容易漏算的部分
公式给的是「理论上可分配给主机的地址数」,实际还要扣除网关、交换机与 AP 的管理地址、IPMI 之类的带外接口、预留的静态设备地址,以及云平台上默认保留的若干地址。工程经验是按公式结果的八成估算可实配终端数,剩下的留给设备与临时需求。
基本信息
| 通用公式 | 可用主机 = 2^(32-n) - 2 |
|---|---|
| 反推公式 | k 最小且 2^k - 2 ≥ 需求 → 掩码 = 32 - k |
| 特例 | /31 两个地址都可用、/32 单主机 |
| 工程口径 | 按公式结果乘 0.8 估算可实配终端 |
需求到掩码速查
| 需要主机数 | 主机位 | 掩码 | 可用主机 |
|---|---|---|---|
| ≤2 | 2 | /30(或 /31) | 2 |
| ≤6 | 3 | /29 | 6 |
| ≤14 | 4 | /28 | 14 |
| ≤30 | 5 | /27 | 30 |
| ≤62 | 6 | /26 | 62 |
| ≤126 | 7 | /25 | 126 |
| ≤254 | 8 | /24 | 254 |
| ≤510 | 9 | /23 | 510 |
| ≤1022 | 10 | /22 | 1022 |
| ≤4094 | 12 | /20 | 4094 |
反推函数(Python)
反推函数(Python)
def mask_for(hosts):
h = 2
while 2 ** h - 2 < hosts:
h += 1
return 32 - h, 2 ** h - 2
print(mask_for(50)) # (26, 62)
print(mask_for(126)) # (25, 126)
print(mask_for(130)) # (24, 254)
print(mask_for(64)) # (25, 126) ← 64 台不能用 /26典型使用场景
- 部门网段选型:按终端数快速定掩码
- DHCP 池容量核算:确认池大小够用且不越界
- 服务器区规划:按未来规模一次性选定掩码
- 点对点链路选 /30 还是 /31
- 考试题中由需求反推掩码与可用主机数
用 2^k ≥ 需求 直接判断掩码是错误的:64 台必须用 /25 而不是 /26,因为 /26 只有 62 台可用。把「减 2」这一步固化进判断逻辑,就能避免这类系统性偏差。
同一张表也能反向使用:已知掩码就想知道能装多少台,直接把主机位代进公式即可。双向都熟练后,需求与掩码之间的换算就不再需要查表,现场讨论时可以即时回应。
别忘网关也要占一个地址:一个只配了一个可用地址需求的 /30 段,实际上网关就吃掉一半容量。互联链路与小型管理段在容量核算里要单独对待。