CIDR IP 分配

5

从198.16.0.0开始,有大量连续的IP地址可用。假设四个组织A、B、C和D按顺序请求4000、2000、4000和8000个地址。对于每个组织,我需要提供分配的第一个IP地址、最后一个IP地址和掩码的w.x.y.z/s表示法。请解释每个组织的情况。

组织A:分配的第一个IP地址为198.16.0.0,最后一个IP地址为198.16.15.255,掩码为255.255.240.0。
组织B:分配的第一个IP地址为198.16.16.0,最后一个IP地址为198.16.23.255,掩码为255.255.248.0。
组织C:分配的第一个IP地址为198.16.24.0,最后一个IP地址为198.16.39.255,掩码为255.255.240.0。
组织D:分配的第一个IP地址为198.16.40.0,最后一个IP地址为198.16.79.255,掩码为255.255.224.0。

我猜你的子网掩码是255.255.0.0? - CustomX
子网掩码就像CIDR中的/20或/21等。 - Chandra Prakash
没有/20和/21可能是用于子网。我在谈论198.16.0.0网络。它是198.16.0.0/16吗? - CustomX
似乎这是一份作业,它不应该出现在这里。至少要包装起来,以免被识别出来。 - Horizon1710
3个回答

12
现在,几年后,我也遇到了同样的问题。实际上,这是来自Andrew Tanenbaum计算机网络书中的一个问题,你不能对这些东西进行排序 :)
要解决这个问题,你需要按照以下步骤进行:
你从198.16.0.0开始。 现在公司A请求4000个IP地址。你必须将这个数字(以及以后的任何请求)舍入为2的幂 - 4096。
现在让我们想一想:一个IP地址由32位组成。其中一些是网络位,另一些是主机位(如果您是第一次了解,请阅读this)。你需要多少主机位,才能让公司A获得4096个主机?正确的答案是:log²(4096) = 12。因此,剩下的20位(32-12)被保留给网络。现在,我们已经有了公司A的起始IP地址和子网掩码:198.16.0.0/20(如果这使您感到困惑,请阅读上面的链接)。 现在,我们需要确定公司A的最后一个IP地址。 为了做到这一点,我们查看我们的IP地址和子网掩码的二进制表示(认为"|"是ip地址的网络部分和主机部分之间的边界):
Start-IP (A):
11000110.00010000.0000|0000.00000000
Subnet-Mask(/20):
11111111.11111111.1111|0000.00000000

如您所见,现在您有12位用于主机,它们都可以自由更改,因此您总共有2^12种可能性= 4096。最后一个可用的IP将是所有主机均等于1的IP:

结束IP: 11000110.00010000.0000 | 1111.11111111 在十进制中,它看起来像: 198.16.15.255

现在让我们看看B公司: 它请求2000-我们将其舍入到2的幂:2048

log²(2048)= 11个主机位= 21个网络位= /21

现在请记住我们分配给A的最后一个IP:

End-IP: 11000110.00010000.00001111.11111111

那么下一个可用的IP地址应该至少比当前IP大1,对吗?

11000110.00010000.00001111.11111111 +1 = 11000110.00010000.00010000.00000000 = 198.16.16.0 我们可以将这个IP作为公司B的起始IP。

现在让我们使用/21的子网掩码来尝试一下:

Start-IP (B):
11000110.00010000.00010|000.00000000
Subnet-Mask(/21):
11111111.11111111.11111|000.00000000

看起来工作正常!我们有11个主机位,因此可以连接2^11台主机=2048台。然而,最后一个可用的IP地址将是所有主机位都等于1的那个:

11000110.00010000.00010|111.11111111 = 198.16.23.255

现在随着公司C的加入,情况开始变得复杂,请耐心听我解释: 问题在于,他们需要比前任更多的IP地址。但是我们仍将处理它 :)

公司C想要4000个IP地址,我们将其四舍五入为4096,并像以前一样计算主机位数:hosts=20。

现在我们将尝试与以前相同的方法,以便您可以看到问题:

我们取上一个分配的IP地址并将其增加一:

11000110.00010000.00010111.11111111 + 1=

11000110.00010000.00011000.00000000

现在让我们将/20的网络掩码应用于这个IP:

Start-IP (B):
11000110.00010000.0001|1000.00000000
Subnet-Mask(/21):
11111111.11111111.1111|0000.00000000

现在你应该看到问题所在:
我们的主机位部分有一个1。因此,我们不能使用所有12位,而只能使用11位,这将给我们只有2^11 = 2018个主机。
所以你可能会想:如果我们把主机部分的1变成0会怎样?那么,在这种情况下,您将完全与提供给公司B的IP地址发生冲突。所以这不是一个选项。唯一的方法是通过仅对网络部分应用增量来将1“推入”网络位部分,以便代替:

11000110.00010000.0001|1000.00000000

你得到的是(仅递增网络部分:11000110.00010000.0001 + 1)

11000110.00010000.0010|0000.00000000

这相当于198.16.32.0。

最后一个IP将再次出现,其中所有主机位均等于1,因此

198.16.47.255

现在您可以使用公司D完成同样的事情 :)
结果应该是:
A: 198.16.0.0198.16.15.255 written as 198.16.0.0/20
B: 198.16.16.0198.16.23.255 written as 198.16.16.0/21
C: 198.16.32.0198.16.47.255 written as 198.16.32.0/20
D: 198.16.64.0198.16.95.255 written as 198.16.64.0/19

4
这确实应该成为被接受的答案。它非常明确和详尽。 - LabGecko

9
我会简单明了地介绍。您可以通过谷歌搜索了解子网划分的基础知识,我建议使用思科公司提供的优秀学习资料。您的网络地址是198.16.0.0 /16,其中有16位可用于子网/主机位。整个网络能提供超过65,000台主机。 步骤 1 - 对子网进行分类,从需要最多主机的子网开始。8000、4000、4000、2000。 步骤 2 - 您需要多少主机位才能容纳8000个可用主机?13个主机位:2^13 = 8192个主机 - 2 = 8190个可用主机。 步骤 3 - 我们知道需要3个子网位,因此我们可以将3加到16中。这个子网的新子网掩码为/19。现在,我们需要使用二进制来计算第一个子网的完整信息。主机部分所有的零代表网络 ID,所有的一代表广播 ID。
198.16.000|00000.00000000 = 198.16.0.0
198.16.000|11111.11111111 = 198.16.31.255

第四步 - 您的组织使用可用主机数为8000的子网是198.16.0.0/19。

Network ID: 198.16.0.0 
First usable host: 198.16.0.1 
Last usable host: 198.16.31.254 
Broadcast ID: 198.16.31.255

现在我们重复以上步骤,对剩下的三个组织进行操作。

步骤1 - 我们知道下一个子网需要支持4000个可用的主机。

步骤2 - 为了支持4000个可用的主机,你需要多少个主机位?需要12个主机位:2^12 = 4096个主机 - 2 = 4094个可用的主机。

步骤3 - 我们知道需要4个子网位,因此我们可以将4个子网位添加到原来的16位中。这个子网的新子网掩码为/20。 现在我们需要使用二进制来计算出第一个子网的完整信息。主机部分的所有零表示网络ID,所有的一表示广播ID。 因为我们已经对网络进行了子网划分,所以我们从上次结束的地方开始。

198.16.0010|0000.00000000 = 198.16.32.0
198.16.0010|1111.11111111 = 198.16.47.255

第四步 - 您的组织需要4000个可用主机的子网是198.16.32.0/20。

Network ID: 198.16.32.0
First usable host: 198.16.32.1
Last usable host: 198.16.47.254
Broadcast ID: 198.16.47.255

我已经为前两个展示了方法。你可以把最后两个当做练习自己完成。记得先找出有4000个主机的子网,然后再找出有2000个主机的子网。如果你有任何问题,请毫不犹豫地询问。


198.16.0001|0000.00000000 = 198.16.32.0 是错误的,正确应该是 198.16.0010|0000.00000000。 - Soumya Kanti Naskar
@SoumyaKantiNaskar,请指导一下为什么它会是198.16.0010|0000.00000000。最好的做法是先从最高要求开始(这是CCNA课程教授的方式,我一直都是这样做的)。 - CustomX
1
@CustomX 如果你不能排序怎么办?如果最初组织只需要一个4000个主机的网络,然后一段时间后需要一个2000个主机的网络等等,你会如何解决? - mightyWOZ
@Balraj,您只需要添加一个尚未使用的新网络即可。 - CustomX
2
@CustomX 我的意思是排序不是必须的。可以在不排序的情况下完成。 - mightyWOZ
显示剩余3条评论

1
首先,所有的请求都会被舍入为2的幂次方。起始地址、结束地址和掩码如下1:
A: 198.16.0.0 – 198.16.15.255 写作 198.16.0.0/20
B: 198.16.16.0 – 198.16.23.255 写作 198.16.16.0/21
C: 198.16.32.0 – 198.16.47.255 写作 198.16.32.0/20
D: 198.16.64.0 – 198.16.95.255 写作 198.16.64.0/19

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接