什么是 VLSM 计算器?
可变长子网掩码(VLSM,Variable Length Subnet Masking)允许网络工程师把一个 IP 地址块划分成大小不一的子网,让每个子网的容量正好匹配它实际需要的主机数量。相比固定长度子网划分,这种做法能避免大量地址被白白浪费。本计算器接收一个基础网络地址和一组主机数量需求,然后按从大到小的顺序,连续地分配出各个子网。
使用方法
先填入起始网络地址(例如 192.168.1.0),再用英文逗号分隔,列出每个子网需要支持的主机数量(例如 50, 20, 10, 2)。工具会把这些需求从大到小排序,依次为每个需求分配恰好能容纳它的最小子网,并首尾相接地紧凑排列,做到地址空间零浪费。
计算公式详解
对于每个主机数量需求 h,除了要容纳 h 台主机,还得预留一个网络地址和一个广播地址,因此总共需要 \(h + 2\) 个地址。前缀长度为
$$\text{Prefix} = 32 - \left\lceil \log_{2}\!\left( \text{Hosts} + 2 \right) \right\rceil$$地址块大小为
$$\text{Block Size} = 2^{\,32 - \text{Prefix}}$$举例来说,50 台主机需要 52 个地址;\(\lceil \log_{2}(52) \rceil = 6\),所以前缀为 /26,地址块包含 64 个地址,可用主机数为 62。
实例演示
基础网络为 192.168.1.0,需求为 50、20、10、2:容纳 50 台主机的 LAN 分到 /26(64 个地址),起始于 192.168.1.0;容纳 20 台主机的子网分到 /27(32 个地址),起始于 192.168.1.64;容纳 10 台主机的子网分到 /28(16 个地址),起始于 192.168.1.96;用于 2 台主机点对点链路的子网分到 /30(4 个地址),起始于 192.168.1.112。总共占用 116 个地址。
常见问题
为什么要 +2 台主机?每个 IPv4 子网都会保留一个地址作为网络号,另一个作为广播地址,所以可用主机数等于地址块大小减二。
为什么要从大到小排序?先分配最大的子网,可以让各个地址块对齐到它们各自的自然边界,从而避免地址碎片化。
实际中最小的子网是多大?/30 提供 2 个可用主机地址,非常适合路由器之间的互联链路;在不需要广播的点对点场景下,有时也会用到 /31。