VLSM 是什么
VLSM(可变长子网掩码)指在同一个主网段内使用不同长度的前缀:给 100 台的部门一个 /25、给 50 台的一个 /26、给点对点链路一个 /30。它让地址利用率远高于等长划分,是现代 IP 规划的基本方法,规范依据是 RFC 1878 与 CIDR 的位运算规则。
三条纪律
降序分配:需求从大到小排,大块必须落在低位且对齐的边界上,否则空间会被切碎。块对齐:每块起点必须是块大小的整数倍,例如 /26 的起点只能是 64 的倍数。剩余可追踪:每分配一块就记录剩余空间清单,随时能看到还能放什么,而不是事后重算。
基本信息
| 步骤 1 | 按主机需求降序排序,点对点链路按 2 个地址参与 |
|---|---|
| 步骤 2 | 逐项求最小掩码:2^k - 2 ≥ 需求的 k |
| 步骤 3 | 从池首地址按块大小递推分配,停在 2 的幂边界 |
| 步骤 4 | 记录剩余空间并验算无重叠 |
| 与等长划分的区别 | 前缀不同,利用率更高,可读性依赖命名与登记 |
典型使用场景
- 企业园区规划:各部门人数差异大,等长划分会浪费大量地址
- 新建园区或楼层:按房间/部门实际端口数逐项分配
- 服务器区规划:按业务重要性给不同规模,核心业务给更大段
- 多站点汇总:VLSM 与汇总结合,站点内细分、站点间只通告一条路由
- 改造旧网络:在不改变主网段的前提下重新划分子网
需求到掩码与块大小
需求到掩码与块大小
100 台 → /25 块 128
50 台 → /26 块 64
25 台 → /27 块 32
10 台 → /28 块 16
链路 → /30 块 4
# 分配顺序固定:从大到小,依次落在对齐的边界上剩余空间自动追踪
剩余空间自动追踪
import ipaddress as ip
base = ip.ip_network('192.168.100.0/24')
used = [ip.ip_network(x) for x in ['192.168.100.0/25','192.168.100.128/26']]
free = [base]
for u in used:
for f in list(free):
if u.subnet_of(f):
free.remove(f); free.extend(f.address_exclude(u))
print(free) # 剩余可分配块的清单VLSM 与等长划分对比
| 维度 | 等长划分 | VLSM |
|---|---|---|
| 掩码 | 所有子网相同 | 按需求各自不同 |
| 利用率 | 低,小需求也占大块 | 高,块大小贴合需求 |
| 分配顺序 | 任意,但必须统一对齐 | 必须先降序 |
| 管理成本 | 低,规则简单 | 较高,依赖登记表 |
| 适用规模 | 教学与简单分层 | 真实企业网络规划 |
VLSM 与 CIDR 是同一套位运算:在私有地址空间里做规划不受「有类别」约束,主网段可以是任意前缀。教材里常从 /24 讲起只是便于教学,实际规划常在 /16 或 /12 内进行。
VLSM 方案一旦落地很难回头改:子网长度不一是靠登记表维系的,表丢了就没人知道哪块给谁。规划表必须纳入版本管理,变更时同步更新,否则半年后的扩容只能靠抓包猜。