如何找到所需的最少主机位?

网络工程 子网
2021-07-18 15:17:36

假设我有 200.35.1.0/24 网络块。我需要在每个子网上寻址 20 台主机。如何指定所需的最小主机位数?

3个回答

首先,您必须将 2 个地址添加到您想要的主机数量上。这些用于网络和广播地址(因此,对于 20 台主机,您得到 20+2=22)

其次,将此数字转换为二进制(22d = 10110b)

现在,数一数您使用了多少位,这就是您的答案(在这种情况下,它将是 5 位,因此网络为 32-5=27 位)您的子网将是 200.35.1.0/27、200.35.1.32/27, 200.35.1.64/27 等等..

或者,您可以使用一些网络子网计算器,其中大多数允许您选择或输入每个子网的主机数(始终选择最接近的至少 2 个主机的更大数字,正如我在第一步中所说的那样)。这种计算器的例子是http://www.subnet-calculator.com/

我认为每个人都知道如何在给定特定大小的前缀长度的情况下获取可用主机的数量,例如使用 /24 IPv4 前缀,主机有 32-24 = 8 位,给出 2^8 = 256 个主机或 254 个“可用”的。这通常在任何网络课程或子网划分的解释中讲授。

2^x 的倒数是 log(x)/log(2) 所以要获得 22 个地址的位数,你只需:

log(22)/log(2) = 4.459

显然你不能做十进制前缀长度,所以你必须把它四舍五入到最接近的整数,也就是 5。你需要 5 位,或者 32-5 = 27,即一个 /27 网络!

使用 C 类来获取主机,我从 128 倒数计算,每一步将其减半。所以是 128、64、32。它必须是 32 台主机,因为 32 的一半是 16,对于 20 来说还不够。那是借用了 3 位。即从标准的 /24 到 /27。通过从 2 开始并将它们加倍来添加网络,因此 2, 4, 8 为您提供了 8 个借用 3 位的网络。我为我的班级制作了一个视频,向您展示如何制作易于记忆的备忘单,帮助您理解划分 C 类网络的基本概念。https://www.youtube.com/watch?v=zqH0COM81Qc