如何计算 IP 地址子网范围?

如何计算 IP 地址子网范围?

如果你得到:

Number of needed subnets: 2   
Network Address: 195.223.50.0 

我可以回答以下问题:

Address Class: C 
Default Subnet Mask: 255.255.255.0 
Custom Subnet Mask: 255.255.255.192 
Total number of subnets: 2^2 = 4 
Total number of host addresses: 2^6 (8-2 = 6) 
Number of usable addresses: 2^6 -2 
Number of bits borrowed: 2 

但是....如果有人问我....

What is the 3rd subnet range? 
What is the subnet number for the 2nd subnet? 
What is the subnet broadcast address for the 1st subnet? 
What are the assignable addresses for the 3rd subnet? 

我该如何回答这些问题……我只记得,程序中要查看自定义子网掩码中的最后一个数字(192),然后计算 256 - 192 得到 64,然后使用 64 来增加某个值。但我不确定每个问题都在问什么。请帮忙,并逐步解释每个问题。

此外,如果我在这种情况下面对的是地址类 B,会有什么不同?

答案1

TOOGAM 对此给出了很好的答案。

不过,我要提出我的看法,这是我用来简化它以便让我理解子网划分的方法:

查看二进制的 IP 地址。IP 地址的每个部分由 8 位或八位字节组成,这意味着您的工作范围是 0-255,因为这是 8 位可以表示的数字范围。以下是几个示例:

0.0.0.0 is 0000 0000.0000 0000.0000 0000.0000 0000  

192.168.1.0 is 1100 0000.1010 1000.0000 0001.0000 0000

您知道 192.168.1.0 是 C 类地址,对吧?在 CIDR 表示法中,这意味着它是一个 /24 网络,掩码为 255.255.255.0。这是什么意思?让我们再看一下二进制文件 - 二进制中的网络掩码如下所示:

1111 1111.1111 1111.1111 1111.0000 0000

所有 1 都是实际地址的位,用于标识网络,而所有 0 则用于标识网络上的特定主机。/24 表示使用 24 位来标识网络,继续数一数。

请注意,每个网络都有一个网络名字(这是网络的第一个地址,也是你的子网号),以及广播地址(这是网络的最后一个地址)。这两个地址是保留的,不能用于主机。

假设我们想将 192.168.1.0 分成三个子网。我们做不到!为什么?让我们来算一下。如果我们借用一位,我们只能有两个子网,因为一位只能表示数字 0-1。

我的意思是,如果你想借用一位,那么子网掩码就变成

255.255.255.128  

以二进制表示,

1111 1111.1111 1111.1111 1111.1000 0000
                              ^This is your borrowed bit right here

现在您有一个 /25 网络。您使用 25 位来表示您的网络,其余 7 位用于标识您的主机。(注意:进行子网计算时,最好不要考虑 IP 地址中的点,而只需处理二进制。您稍后就会明白我的意思。)

这只会给你两个子网,

         This part tells you which network it is!
                  vvvv vvvv vvvv vvvv vvvv vvvv v
192.168.1.0/25    1100 0000.1010 1000.0000 0001.0000 0000
                                                 ^^^ ^^^^
                   This part tells you which host it is!

          This part tells you which network it is!
                  vvvv vvvv vvvv vvvv vvvv vvvv v
192.168.1.128/25  1100 0000.1010 1000.0000 0001.1000 0000
                                                 ^^^ ^^^^
                   This part tells you which host it is!

剩余的 7 位是保留用于标识主机的,因此您不能使用它们。您必须借用两位,它们可以表示数字 0-3。不管您喜不喜欢,如果您想要三个子网,您至少必须将网络分成四个子网。

现在您有一个包含以下子网的 /26 网络:

192.168.1.0/26      1100 0000.1010 1000.0000 0001.0000 0000
192.168.1.64/26     1100 0000.1010 1000.0000 0001.0100 0000
192.168.1.128/26    1100 0000.1010 1000.0000 0001.1000 0000
192.168.1.192/26    1100 0000.1010 1000.0000 0001.1100 0000
                                                  ^^
        Look at these two bits! Watch how they go from 0 to 3 in binary.

要获得第三个网络,您只需查看借用的位并得出 2,即二进制的“10”。为什么是 2?因为我们从 0 开始计数,而不是从 1 开始。按顺序,您有“0、1、2、3”,因此第三个网络是“2”。

你只需将这个“10”放入借来的位中,就可以得到第三个网络。例如,假设我有一个奇数网络,例如

 10.10.254.0/23 0000 1010.0000 1010.1111 1110.0000 0000

我需要将它分成三个子网并找到第三个子网。换句话说,我需要将它变成一个 /25 网络,因为我至少需要两个借用位。所以现在我有

10.10.254.0/25     0000 1010.0000 1010.1111 1110.0000 0000
10.10.254.128/25   0000 1010.0000 1010.1111 1110.1000 0000
10.10.255.0/25     0000 1010.0000 1010.1111 1111.0000 0000
10.10.255.128/25   0000 1010.0000 1010.1111 1111.1000 0000
                   Your borrowed bits are here ^ ^

如果你看一下十进制 IP 地址,会非常困惑,不是吗?这就是我之前说的用二进制计算子网时忽略 IP 地址中的点的意思。

要获取广播地址,只需在地址的“主机”部分填入 1 即可。例如,192.168.1.128/26 的广播地址为

   Remember, this is the "host" part of your address, the first
                                  26 bits represent the network
                                                   vv vvvv
192.168.1.191/26   1100 0000.1010 1000.0000 0001.1011 1111
       See how the host portion is filled with 1s? ^^ ^^^^

同样,要获取可用范围,只需首先在网络名称的最后一位放置 1 以获取第一个可用地址,然后用 1 填充“主机”部分并在网络名称的最后一位放置 0 以获取最后一个可用地址。

   Remember, this is the "host" part of your address, the first
   26 bits represent the network
                                vv vvvv
1100 0000.1010 1000.0000 0001.1000 0001      192.168.1.129/26
          First address: put a 1 here ^
1100 0000.1010 1000.0000 0001.1011 1110      192.168.1.190/26
                                      ^
Last address: fill the host part with 1s but put a 0 here

当然,最终您应该学会如何按照 TOOGAM 所解释的那样去做,但如果您需要可视化子网,这可能会有所帮助。

答案2

回答这类问题需要正确使用数学技能(除了了解子网之外)。你说的是 2^6(8-2 = 6)。8-2 确实是 6,但 2 的六次方是 64,而不是 8。这是错误的,这可能是你遇到一些问题的原因。

子网掩码 255.255.255.192 有 64 个地址,减去 2 后将有 62 个地址。

对 B 类地址进行子网划分与对 C 类地址进行子网划分完全相同,除了一个微小的差异,即 B 类和 C 类地址具有不同的默认子网掩码。但您可以自定义任一子网掩码,这就是我称这种差异极其微小的原因。

192.168.50.0 的“网络地址”是任何子网的“网络 ID”,其掩码以“255.255.255”开头。如果使用子网掩码 255.255.255.128,则将有两个子网。如何知道这一点:查看显示 /24 到 /30 IPv4 子网大小的 VLSM 子网划分图。您会发现 /25 有两个子网。/24 子网掩码为 255.255.255.0,/25 子网掩码为 255.255.255.128(比 /24 多 128),/26 子网掩码为 255.255.255.192(比 /25 多 64)。如果需要,请遵循该模式:随着您向下移动 VLSM 子网划分图,您添加到子网掩码的数量是上次添加的子网大小所添加数量的一半。因此,/27 子网掩码为 255.255.255.224(因为 .192 + 32 = 224)。

此外,每次在标准/典型子网图上向右移动时,子网数都会翻倍。因此,如果您有 256 个地址(这是 C 类网络上简单问题的常见起点),则 /24 有一个子网。/25 有两个子网,/26 有四个子网,/28 有十六个子网。

如果您需要在 195.223.50.0 范围内工作,并且只需要两个网络地址,那么您可以使用子网掩码 255.255.255.252 来实现。我认为这不是您真正想要的答案,但您没有明确提出问题,所以我不知道您的问题的答案是什么。

如果您的子网掩码为 255.255.255.192(即 /26... 您确实希望在学习子网的同时学习 CIDR 表示法),那么 256 个地址将分为四个子网。因此,取 256 这个数字,并将其分成四个:每个子网有 64 个地址。因此,每个子网中的地址范围为 192.223.50.0 至 192.223.50.63、192.223.50.64 至 192.223.50.127、192.223.50.128 至 192.223.50.192 以及 192.223.50.193 至 192.223.50.255。 (这些包括“不可用”的网络地址、网络 ID 和广播地址。这就是为什么要减去 2 个地址来计算“可用”地址的数量。)网络 ID 为 192.223.50.0 和 192.223.50.64 和 192.223.50.128 和 192.223.50.192。(1/4 乘以 256 = 64,2/4 乘以 256 = 128,3/4 乘以 256 = 192。)

我现在已经为您提供了回答您的问题所需的所有信息。我会给您正确的答案:

第三个子网范围是什么?

192.223.50.128 至 192.223.50.192

第二个子网的子网号是多少?

子网的网络 ID 为 192.223.50.64

第一个子网的子网广播地址是什么?

192.223.50.63

第三个子网的可分配地址是什么?

也称为“可用”地址,即 192.223.50.129 至 192.223.50.190。(即 192.223.50.128 - 192.223.50.191 子网,不包括网络 ID 和广播地址)。

答案3

如果这是用于学校的话,我不想给你“作弊”的方法......但多年来我没有使用“数学”来划分网络子网,因为它只会让一切变得复杂......“而你的方法有点不对劲:(。”

它被称为 CIDR(无类域间路由);

http://www.ipaddressguide.com/cidr

有一个简短的说明和一个 JavaScript 实用程序来演示它是如何工作的。

“您可以为其指定一个 IP 范围 (192.168.0.0 - 192.168.1.1),它会返回 CIDR 简写 (192.168.0.0/23),或者您输入 CIDR 简写 (192.168.0.0/23),它会返回其 IP 范围 (192.168.0.0 - 192.168.1.1)”

另一个可以快速划分子网的好资源是子网掩码备忘单,通常称为 VLSM (可变长度子网掩码) 或 CIDR 备忘单 (VLSM 是完全不同的球类运动 (子网的子网划分));

http://www.oav.net/mirrors/cidr.html

有一个非常简单的“打印友好” CIDR 备忘单。

我要说的是,直接教你如何划分子网/CIDR 超出了本文的范围(仍然会回答你的问题),但请参考发布的两个链接,并随时提出你可能有的任何问题,以澄清他们已经解释的内容。

因此首先,我假设您最初要求的是“前两个”子网 255.255.255.192(从现在开始称为 /26!),因为您已指出总共有四个子网,每个网络总共有 64 个 IP(62 个可用)...

现在来回答问题!

  1. 一枪一杀……

    • 1:195.223.50.0/26(NETID:.0,网络掩码:/26,广播IP:.63)
    • 2:195.223.50.64/26(NETID:.64,网络掩码:/26,广播 IP:.127)
    • 3:195.223.50.128/26(NETID:.128,网络掩码:/26,广播 IP:.191)
    • 4:195.223.50.192/26(NETID:.192,网络掩码:/26,广播 IP:.255)

当“增加 64”时,只需将每个子网添加到最后一个(0+64 得到 .64,64+64 得到 .128,128+64 得到 .192。基本上就是走很长的路才能到达那里。

使用“B 类”或(/16 至 /23)的工作原理与使用 /24+ 的原理相同,但规模更大。

对于 C 类,每个 CIDR 符号表示“主机或节点”(记住每个子网有 64 个 IP 地址)。

另一方面,B 类代表“C 类网络”。

比较;

C 类:/25 等于 128 个 IP 地址。

在哪里...

B 类:/17 等于 128 个 C 类网络 (128 * 254) = 32,512 个 IP 地址。

在哪里...

A 类:/9 等于 128 个 B 类网络 (128 * 32512) = 4,161,536 个 IP 地址。

如果我可以澄清任何事情,请告诉我。

~雪

PS /0 = 4,294,967,296 总 IP,数量越大,需要涉及的数学运算越少......

相关内容