关于VLSM非顺序子网划分产生间隙问题的咨询
关于VLSM非顺序子网划分产生间隙问题的咨询
嘿,这个问题我刚啃VLSM的时候也绕了半天,给你拿个实打实的例子拆解,你一看就明白所谓的「间隙」是什么了!
咱们拿最常用的私网网段 192.168.1.0/24 来举例——这个网段总共有256个可用地址(从192.168.1.0到192.168.1.255)。假设我们有两个子网需求:
- 子网A:需要容纳60台主机 → 得用
/26的掩码(因为2^6-2=62,刚好够60台,对应64个连续地址块) - 子网B:需要容纳10台主机 → 用
/28的掩码就行(2^4-2=14,足够,对应16个连续地址块)
先看正确的从大到小划分顺序
- 先分配最大的子网A:直接用第一个完整的64地址块
192.168.1.0/26,地址范围是192.168.1.0-63 - 再从剩下的地址里分配子网B:剩下的起始地址是64,取16个地址的块
192.168.1.64/28,地址范围192.168.1.64-79 - 剩下的地址是
192.168.1.80-255,还能继续划分成更小的子网,完全没有浪费的间隙
再看乱序划分(先小后大)的情况
- 先分配子网B:随便选第一个16地址块
192.168.1.0/28,地址范围192.168.1.0-15 - 现在要分配子网A(需要64个连续地址):
- 第一个可能的64地址块是
0-63,但0-15已经被子网B占了,剩下的16-63只有48个地址,不够64,没法用来放子网A - 只能跳过这个不完整的块,去用下一个完整的64地址块:
192.168.1.64/26,地址范围64-127
- 第一个可能的64地址块是
- 重点来了!这时候
192.168.1.16-63这段48个地址就成了无法有效利用的间隙:- 它不够大,没法容纳子网A的64地址需求
- 如果后续没有刚好匹配这个大小的需求(比如需要30台主机的
/27子网,只能用16-47,剩下的48-63还是浪费),这段地址就等于被白白闲置了 - 而如果按正确顺序划分,我们本来可以把0-63全用在子网A,完全不会出现这种浪费
为什么会出现这种间隙?
VLSM的核心是按需分配最小的必要地址块,但如果你先占了大地址块里的小部分,就直接破坏了大地址块的完整性——大子网需要的是连续的、完整的大地址块,被小子网占了一部分后,这个大块就废了,只能跳过它去用下一个,中间剩下的部分就成了「食之无味弃之可惜」的间隙,没法被高效利用。
从大到小划分的本质,就是先把最占空间的大子网安排好,剩下的地址都是连续的、可以被拆成更小的块,不会破坏任何大的地址块结构,自然就不会出现间隙。
备注:内容来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

