2.4 VLSM设计

VLSM 是一种产生不同大小子网的网络分配机制,指一个网络可以配置不同的掩码。开发可变长度子网掩码的想法就是在每个子网上保留足够的主机数的同时,把一个子网进一步分成多个小子网时有更大的灵活性。如果没有 VLSM,一个子网掩码只能提供给一个网络,这样就限制了要求的子网数上的主机数。下面从一个具体案例来看看什么是VLSM,如图2.6所示。

图2.6 VLSM案例1

图中有两台路由器,每台路由器连接了两个 LAN,而两台路由器通过 WAN 串行链路相连。我们使用分类网络设计进行子网划分:

网络地址=192.168.10.0

子网掩码=255.255.255.240

这样的子网划分,使得该网络最多包含16个子网(在配置ip subnet-zero命令后第一个子网和最后一个子网可以合法使用),每个子网最多包含14台主机。例如,子网192.168.10.0/28需要25个IP地址,那么这就意味着不能满足该网段的要求。点到点WAN链路也有14个合法主机地址,但两个路由器端口只需要两个IP地址,多余的IP地址不能挪用给需要的网段,造成了IP地址的浪费。如果采用无类网络设计则不会出现这样的问题,具体如下。

IP地址需求如下:5个子网(不要忘记两台路由器之间也是一个网段)所需的主机地址数分别是(习惯从地址数由多到少):

25台 12台 10台 6台 2台

因此需借用的主机位作为网络位的位数分别是:

3位 4位 4位 5位 6位

25>25 24>12 24>10 23>6 22>2

因此,第1个子网最后一个字节是0 0 0 0 0 0 0 0~0 0 0 1 1 1 1 1,即子网192.168.10.0/27,此子网的主机IP地址范围是192.168.10.1~192.168.10.30,共30个,广播地址是192.168.10.31(主机位全为1时为广播地址,全为0时为子网号)。同理,第2个子网最后一个字节是:

0 0 1 0 0 0 0 0~0 0 1 0 1 1 1 1

即子网192.168.10.32/28,此子网的主机IP地址范围是192.168.10.33~192.168.10.46,共14个,广播地址是 192.168.10.47。同理,第 3个子网即子网 192.168.10.48/28,此子网的主机 IP 地址范围是192.168.10.49~192.168.10.62,共14个,广播地址是192.168.10.63。第4个子网即子网192.168.10.64/29,此子网的主机IP地址范围是192.168.10.65~192.168.10.70,共6个,广播地址是192.168.10.71。第5个子网即子网 192.168.10.72/30,此子网的主机 IP 地址范围是 192.168.10.73~192.168.10.74,共 2个,广播地址是192.168.10.75。采用VLSM设计后的网络IP地址规划如图2.7所示。

图2.7 VLSM案例1

在实际工程实践中,VLSM 能够进一步将网络划分成三级或更多级子网。同时,能够考虑使用全0网和全1子网以节省网络地址空间。例如,某局域网上使用了27位的掩码,则每个子网可以支持30台主机(25-2=30);而对于WAN连接而言,每个连接只需要2个地址,理想的方案是使用30位掩码(22-2=2),然而因同主类别网络相同掩码的约束,WAN之间也必须使用27位掩码,这样就浪费了28个地址。

再来看一个案例。一家集团公司有 12 家子公司,每家子公司又有 4个部门。上级给出一个172.16.0.0/16的网段,让给每家子公司以及子公司的部门分配网段,如图2.8所示。

图2.8 VLSM案例2

具体思路如下:既然有12家子公司,那么就要划分12个子网段,但是每家子公司又有4个部门,因此又要在每家子公司所属的网段中划分4个子网分配给各部门。具体步骤如下。

1.先划分各子公司的所属网段

有12家子公司,那么就有2n≥12,n的最小值为4。因此,网络位需要向主机位借4位。那么就可以从172.16.0.0/16这个大网段中划出24(即16)个子网。

详细过程如下。

先将172.16.0.0/16的第3、4个字节用二进制表示为172.16.00000000.00000000/16。主机位借4位之后可以划分16个子网,具体如下。

(1)172.16.00000000.00000000/20(172.16.0.0/20)。

(2)172.16.00010000.00000000/20(172.16.16.0/20)。

(3)172.16.00100000.00000000/20(172.16.32.0/20)。

(4)172.16.00110000.00000000/20(172.16.48.0/20)。

(5)172.16.01000000.00000000/20(172.16.64.0/20)。

(6)172.16.01010000.00000000/20(172.16.80.0/20)。

(7)172.16.01100000.00000000/20(172.16.96.0/20)。

(8)172.16.01110000.00000000/20(172.16.112.0/20)。

(9)172.16.10000000.00000000/20(172.16.128.0/20)。

(10)172.16.10010000.00000000/20(172.16.144.0/20)。

(11)172.16.10100000.00000000/20(172.16.160.0/20)。

(12)172.16.10110000.00000000/20(172.16.176.0/20)。

(13)172.16.11000000.00000000/20(172.16.192.0/20)。

(14)172.16.11010000.00000000/20(172.16.208.0/20)。

(15)172.16.11100000.00000000/20(172.16.224.0/20)。

(16)172.16.11110000.00000000/20(172.16.240.0/20)。

从这16个子网中选择12个即可,就将前12个分给下面的各子公司。每个子公司最多容纳主机数目为212-2=4094。

2.再划分子公司各部门的所属网段

以甲公司获得172.16.0.0/20 为例,其他子公司的部门网段划分同甲公司。甲公司有4个部门,那么就有2n≥4,n的最小值为2。因此,网络位需要向主机位借2位。那么就可以从172.16.0.0/20这个网段中再划出22(即4)个子网,正符合要求。

详细过程如下。

先将172.16.0.0/20的第3、4字节用二进制表示为172.16.00000000.00000000/20。借2位后可划分出4个子网,具体如下。

(1)172.16.00000000.00000000/22(172.16.0.0/22)。

(2)172.16.00000100.00000000/22(172.16.4.0/22)。

(3)172.16.00001000.00000000/22(172.16.8.0/22)。

(4)172.16.00001100.00000000/22(172.16.12.0/22)。

将这4个网段分给甲公司的4个部门即可。每个部门最多容纳主机数目为210-2=1022。