📜  固定长度和可变长度子网掩码数值

📅  最后修改于: 2021-09-28 09:57:36             🧑  作者: Mango

在开始阅读本文之前,请确保您了解子网划分和无类寻址的基础知识。

1. 定长子网掩码:
当一个地址块被划分为所有具有相同地址数量的子网时,子网划分的类型称为固定长度子网划分。此处使用的子网掩码对于所有子网都相同,因为每个子网的地址数量相同。

例子 –
考虑地址块 121.37.10.64 /26。
查找每个子网的第一个和最后一个地址,如果所需的相同大小的子网数量与输入中给定的一样。

输入 :

Number of subnets required = 4 

输出 :

Subnet-1:
First Address: 121.37.10.64 /28
Last Address: 121.37.10.79 /28

Subnet-2:
First Address: 121.37.10.80 /28
Last Address: 121.37.10.95 /28

Subnet-3:
First Address: 121.37.10.96 /28
Last Address: 121.37.10.111 /28

Subnet-4:
First Address: 121.37.10.112 /28
Last Address: 121.37.10.127 /28 

由于需要 4 个子网,我们需要 2 位来标识每个子网。因此子网掩码现在变为 (/28)..
剩余的可变位数 = 32 -28 = 4 位。因此,每个子网中的地址总数 = 2 4 = 16。

图 –地址空间划分为 4 个相同大小的子网

有两种方法可以接近解决方案:
方法一:

  1. 要找到第一个地址,请了解前 26 位将与给定的地址相同,因为它们是固定的。如上所述,接下来的 2 位也将是固定的。
  2. 在子网拥有的 16 个地址中,为了指向它的第一个地址,要求所有 4 个(非固定)位都为 0。
  3. 因此,1的首地址子网=
    121.37.10. 01  00  0  0  0  0 /28 = 121.37.10.64/28.

    对于第二个子网 =

    121.37.10. 01  01  0  0  0  0 /28 = 121.37.10.80/28

    等等。

  4. 要查找最后一个地址,请将(子网中的地址数 -1)添加到该子网的第一个地址。在这种情况下,将 (16-1) 添加到每个子网的第一个地址。所以第1个子网的最后一个地址是
    121.37.10.79/28.

方法-2(快捷方式):

  1. 为了找到给出的地址和第1个子网的子网掩码之间的1子网,结转库存和操作的第一个地址。
    执行与操作:
    01111001   00100101   00001010   01000000/26
    AND 11111111   11111111   11111111   11110000/28
    -------------------------------------------------------------------------
        01111001   00100101   00001010   01000000 /28 

    因此,在1的第一子网地址

    = 01111001  00100101  00001010  01000000  /28 = 121.37.10.64 /28 
  2. 要查找子网的最后一个地址,请在子网的第一个地址和子网掩码的补码之间执行 OR 运算。
    1子网的第一个地址,

    = 01111001 00100101 00001010 01000000 /28  

    子网掩码的补码,

    = 00000000 00000000 0000000 00001111 / 28 

    执行或运算,我们得到第1个子网的最后一个地址

    = 01111001  00100101  00001010  00001111  / 28 = 121.37.10.79 /28 
  3. 在上一个子网的最后一个地址上加 1 以找到下一个子网的第一个地址。

笔记 –
当无法以 2 的幂计算所需的子网数量时,请以子网数量最接近只能表示为 2 的幂的数字的方式划分地址空间。

例如,如果我们需要 14 个子网,那么由于 14 不能仅用 2 的幂来表示,因此我们将地址空间划分为 16 个相等的子网。现在可以使用上述方法找到相应的地址。

2. 可变长度子网掩码:
当一个地址块被划分为包含不同地址数量的子网时,子网划分的类型称为可变长度子网划分。
对于不同的子网,此处使用的子网掩码可能不同。

例子:
考虑一个起始地址为 112.78.0.0/16 的地址块。查找每个组的第一个和最后一个地址,如果它们所需的子网的数量和大小在输入中给出。

输入:

Group-1:
256 subnets, each needs 128 addresses

Group-2:
1024 subnets, each requiring 4 addresses

Group-1:
128 subnets, each consisting of 16 addresses 

输出:

Group-1:
First Address : 112.78.0.0 /17
Last Address : 112.78.127.255 /17 

Group-2:
First Address : 112.78.128.0 /20
Last Address : 112.78.143.255 / 20 

Group-3:
First Address : 112.78.144.0 /21
Last Address : 112.78.151.255 /21 

要了解此类问题,重要的是了解修复子网 ID 中的位并找到每组子网的子网掩码的过程。

给定地址块中的总地址,

= 232-16 = 65,536 

理解地址空间的划分,

Group-1:
Number of addresses = 256 x 128 =  32, 768  

因此,组 1 占据块中地址的 1/2。因此,固定 1 位来标识这一半,子网掩码变为 /17。

同样对于Group-2 ,总共 4 位是固定的,子网掩码变为 /20。

并且,对于Group-3 ,总共 5 位是固定的,子网掩码变为 /21。

然后使用上面提到的方法2,可以找到各自的起始地址和结束地址。

为了便于理解问题,让地址块用一个大方块表示,该方块可以进一步划分为所需的子网。由于块中的地址总数 = 65, 536,因此可以推断出该正方形由 256 x 256 个地址组成。仔细观察地址空间的划分和地址空间子网ID起始位的固定。空格与另外 8 个空格一起将是主机 ID。

一旦正确划分了地址空间并找到了相应的子网掩码,就可以使用上述方法找到所需的地址。