19_划分_IP_地址范 ## 网络协议那些事儿

78 阅读10分钟

19_划分_IP_地址范

网络协议那些事儿

内容简介


  1. 前言

上一课,我们开始了划分 IP 地址范围的学习。我们用一个公司的例子来做练习,成功地从公司的网络中划分出了三个子网,分别是技术人员、商务人员和经理的网络。

我们继续学习 “用基本方法来划分” 的后续内容。

  1. 用基本方法来划分

复杂版的划分

如果你觉得上一课的内容很难,那请你再花更多的时间去消化一下上一课,然后再学习这一部分。

我们将在本部分的最后看到,所有(或几乎所有)的地址范围划分都可以使用先前的方法或稍后将介绍的神奇方法来解决。

那么这部分 “复杂版的划分” 是什么呢?除了自寻烦恼,难道我们真的无事可做了吗?

是的,为了理解某些细节,有时我们必须给自己找一些麻烦。正所谓 “天将降大任于斯人也…”,像我们这样的“斯文人士”,也可谓是“斯人” 也。

这个练习的背景将与上一个练习一样。我们回顾一下上一个例子:

“假设有一个公司,它的网络为 10.0.0.0/16。该公司拥有 1000 名技术人员,200 名商务人员和 20 名经理。我们需要在这个网络中划分出三个子网。”

只不过这次 “复杂版的划分” 要求你先从经理的网络开始划分,然后是商务人员的网络,最后是技术人员的网络。之前我们是从地址范围最大的子网(技术人员的网络)到最小的子网(经理的网络),这次反过来。

那么我们重新开始吧。

对于经理的网络,我们可以让其地址范围从 10.0.0.0 开始。经理的人数还是 20,因此网络的子网掩码不会更改,还是 255.255.255.224。经过计算,网络的最后一个地址是 10.0.0.31。

接着,我们来看商务人员的网络。

我们试着遵循和之前相同的逻辑,让商务人员的网络的地址范围紧跟在经理的网络地址范围后面,从 10.0.0.32 开始。商务人员的人数还是 200,因此网络的子网掩码仍然是 255.255.255.0。经过计算,地址范围的最后一个地址是 10.0.0.255。

但是,请注意,我们刚犯了一个巨大的错误!

如果你计算商务人员的网络的第一个地址,你将意识到这个问题。由于划分是在两个字节之间,因此很容易计算:商务人员的网络的第一个地址是 10.0.0.0 !

商务人员的网络的第一个地址竟然与经理的网络的第一个地址相同… 这意味着通过遵循与以前相同的方法,我们确定了两个地址范围,但是它们却是相互重叠的。因此,这样是行不通的。

为什么会这样呢?

因为我们在一个不能作为网络本身的地址(也就是网络的第一个地址)的地址上开始了商务人员的地址范围。

如果我们以二进制形式写出商务人员的网络的子网掩码(255.255.255.0),就是 11111111.11111111.11111111.0000000,可以看到只有 IP 地址的最后 8 位(即最后一个字节)对于属于同一网络的主机可以更改。

要知道网络的第一个地址,需要将最后一个字节的所有二进制位都置为 0,因此网络本身的地址的最后一个字节的十进制值就是 0。

但是,我们之前选择了 10.0.0.32 作为第一个地址(最后一个字节的十进制值是 32,不是 0),因此是行不通的。

请记住:子网掩码决定了网络的地址范围不可以从随便什么地址处开始。

好的,知道了这个原则,我们重新开始计算吧。

经理的网络我们刚才已经计算好了,是 10.0.0.0/27。

对于商务人员的网络,它的第一个地址的最后一个字节必须是 0,所以我们选择 10.0.0.31 之后的第一个可能的地址,就是 10.0.1.0。因此商务人员的网络是 10.0.1.0/24,网络的最后一个地址是 10.0.1.255。

根据同样的原则,我们无法以 10.0.2.0 作为技术人员的网络的第一个地址,可以选择 10.0.4.0 作为第一个地址。因此技术人员的网络是 10.0.4.0/22,网络的最后一个地址是 10.0.7.255。

三个子网如下:

  • 经理的网络:10.0.0.0/27 -> 从 10.0.0.0 到 10.0.0.31;

  • 商务人员的网络:10.0.1.0/24 -> 从 10.0.1.0 到 10.0.1.255;

  • 技术人员的网络:10.0.4.0/22 -> 从 10.0.4.0 到 10.0.7.255。

我们再来看一个问题。

略有挑战性的问题

假设,你以系统和网络管理员的身份进了一家公司。该公司的网络是 192.168.47.0/24。

根据子网掩码,我们可以很快知道这个网络有 2 的 8 次方(也就是 256)个地址。

但是,随着公司业务的增长,网络的 256 个地址不够用了。首席管理员要求你将网络范围扩大为两倍,也就是增加到 512 个地址。

对此,你的基本反应很可能是:“这还不简单,只要添加一个地址范围,就是紧跟在 192.168.47.0/24 之后的同样具有 256 个地址的地址范围,也就是 192.168.48.0/24。256 + 256 = 512,问题解决了。”

但这么草率可行不通哦!

其实,要使网络的大小增加一倍,只需在子网掩码中多把一位置为 0 即可。这样,地址数目就从 2 的 8 次方(256)变为了 2 的 9 次方(512)个。子网掩码就变为 255.255.254.0 了,也可以写成 /23。

但要小心,因为我们刚刚更改了子网掩码,而子网掩码决定了网络的地址范围不可以从随便什么地址处开始。

如果你要让 192.168.47.X 开头的公司的当前网络(也就是 192.168.47.0/24)的地址范围包含在新的网络的地址范围内,可以用新的子网掩码配合这些地址之一,来计算出新的网络的第一个和最后一个地址。

根据上一课我们所用的 “偷懒” 的计算方法,我们只需计算 1 和 0 出现划分的那个字节,也就是新的子网掩码 255.255.254.0 的第 3 个字节:254。

  • 子网掩码:254 - > 11111110

  • IP 地址:47 -> 00101111

通过将地址的主机部分设置为 0,我们得到 00101110,转成十进制是 46。

通过将地址的主机部分设置为 1,我们得到 00101111,转成十进制是 47。

因此,我们的新地址范围将从 192.168.46.0 到 192.168.47.255。这样,新的网络就是 192.168.46.0/23。

如果你感到有点头痛,那是正常的,这几课确实比较费脑子。

接下来,我们将看到一种非常简单易用的方法,不需要进行复杂的计算,可以很容易地解决划分地址范围的难题!

  1. 用神奇方法来划分

什么是神奇方法?

神奇方法是一种使我们能够轻松计算网络的地址范围的方法!

神奇数字

要使用神奇方法,我们还得使用神奇数字…

什么是神奇数字呢?

神奇数字是根据子网掩码的有效字节计算出来的,等于 256 - 有效字节的十进制的值

有效字节(或者说有意义的那个字节)就是我们所说的子网掩码中 1 和 0 出现划分的那个字节。如果子网掩码是 255.224.0.0,有效字节就是 224。256 - 224 = 32,神奇数字就是 32。

如何使用神奇数字?

有了神奇数字,我们就能立即计算出地址范围的第一个和最后一个地址。为此,我们首先得写出神奇数字的所有倍数(当然了,这些倍数最多直到 256 为止)。

例如,我们上面的例子中,子网掩码是 255.224.0.0,神奇数字是 32。 32 的倍数是:0、32、64、96、128、160、192、224、256(记得不能超过 256 哦)。

现在,我们只需要应用以下两个规则:

  1. 网络的第一个地址可以这么计算得到:神奇数字的倍数中,小于或等于对应有效字节的那个 IP 地址的字节的最大的那个值(相当拗口…);

  2. 网络的最后一个地址可以这么计算得到:神奇数字的下一个倍数,再减 1。

看上面这两个规则你会一头雾水,但其实是很简单的,只要举个例子你就知道怎么计算了。比如我们将 IP 地址 192.168.0.1 和子网掩码 255.224.0.0 关联起来。

在我们的子网掩码(255.224.0.0)中,有效字节是第二个字节,十进制的值就是 224。

因此,我们将使用给定的 IP 地址(192.168.0.1)的第二个字节,即 168。

网络的第一个地址将是神奇数字的倍数中,小于或等于 168 的最大的那个值。

在 32 的倍数列表(0、32、64、96、128、160、192、224、256)中,我们很快找到了 160

网络的最后一个地址为下一个倍数减 1。32 的倍数列表(0、32、64、96、128、160、192、224、256)中,排在 160 之后的下一个倍数为 192,192 - 1 = 191

因此,网络的第一个地址是 192.160.0.0(跟在第二个字节后面的字节的二进制位都置为 0),最后一个地址是 192.191.255.255(跟在第二个字节后面的字节的二进制位都置为 1)。

神奇方法使我们无需进行二进制计算就可以得出网络的地址范围!

很酷,不是吗?

其实,神奇方法的使用还可以再简化,我们将在下一课中看到。

我们下一课继续学习划分 IP 地址,也会进行一些巩固练习。

  1. 总结

  1. 子网掩码决定了网络的地址范围不可以从随便什么地址处开始;

  2. 神奇方法使我们无需进行二进制计算就可以得出网络的地址范围。要使用这种方法,首先需要计算出神奇数字,神奇数字 = 256 - 有效字节的十进制的值

  3. 有效字节就是子网掩码中 1 和 0 出现划分的那个字节。

一起加油吧~

}如果您想了解更多技术资源,欢迎加入点击这里钉钉群交流IT技术资源查看“IT技术交流群一”群的钉钉群号: 129605002953