如何进行子网的划分
Posted on Wed, 25 Dec 2024 14:00:08 +0800 by LiangMingJian
什么是子网
把单一网络划分为多个物理网络,并使用路由器将其互联,这里的多个网络就是子网。
通过划分子网可以提高 IP 地址使用率,隔离广播域带来的影响,提高一个网络的灵活性。如果不划分子网,那么每个路由器中路由表的信息量将会非常大,影响网络的速度与性能。划分子网后,将减少广播所带来的负面影响,提高整体的性能。
虽然划分子网没有增加可用 IP 地址,而且减少了可用 IP 地址(因为每个子网中的全 0 网络地址和全 1 广播地址均不能作为主机 IP 来使用)。但通过对一个网络进行子网划分,将一个大网络分成多个小的网络的操作,可以更好的进行管理,按需分配 IP 地址,避免自动分配时遗漏浪费。比如,当一组 IP 地址指定给一个公司时,公司可以将该网络分割成多个小网络,分配给每个部门使用,由每个部部门自主控制 IP 分配,避免浪费。
如何划分子网
要划分子网,我们首先要了解 IP 地址的真实格式和组成。
首先,IP 地址其实是一个 38 位的二进制数,IP 地址 4 个数字中的每一个数都是一个 8 位二进制,比如,0.0.0.0 实际是 00000000.00000000.00000000.00000000,255.255.255.255 实际是 11111111.11111111.11111111.11111111。
然后,在这些二进制数中,通常我们会将从开头开始的一定数位的数作为网络位,标志拥有相同网络位的 IP 地址是同一个网络,可以互通。然后剩下的数位就作为主机位,让主机设备选择使用。比如,我们可以将 00000000 第一个部分作为网络位,剩余的 00000000.00000000.00000000 作为主机位,换算下,可以得出下面的网络:
- 0.0.0.0 - 0.255.255.255 是一个网络,网络为 0,主机位 0.0.0 - 255.255.255
- 1.0.0.0 - 1.255.255.255 是一个网络,网络为 1,主机位 0.0.0 - 255.255.255
- ……………..
显然,上面就是在划分子网,因为网络位 00000000(0) - 11111111(255) 一共 256 个,所以可以划分 256 个子网。
每个子网中,一共可以分配 0.0.0 - 255.255.255 共 255 x 255 x 255 个 IP 地址。
特别注意,每个网络(子网)中,都应当要用 3 种地址,网络地址,主机地址,广播地址。
- 网络地址是网络的起始地址,是这个网络的标志,通常会使用网络段的第一个 IP 地址,比如 0.0.0.0,1.0.0.0。
- 主机地址是设备可以使用的地址,这个部分的地址才能被主机使用。
- 广播地址是网络的结束地址,标识这个网络的结束,通常会使用网络段的最后一个 IP 地址,比如 0.255.255.255,1.255.255.255。
所以,在分配的子网中,实际能使用的主机地址,是子网地址数量减 2。
综上所述,要划分子网,其实就是要确认网络位占用的数量和主机位占用的数量。
划分一个子网
将 0.0.0.0 - 255.255.255.255 划分为每个都有 256 个地址的子网。
首先,确认网络位,因为每个子网都要有 256 个地址,所以有主机位 $2^8 = 256$,主机位 8,所以网络位有 $32-8=24$,网络位 24。
如果提问的是划分 256 个子网,那么网络位可以通过公式 $2^n > 256$ 计算,换算有 n = 8,即 IP 地址中要拿出 8 位充当网络位。
如果划分时是从已有的子网划分,比如 /16 划分到 /24,那么这里的 n 就是网络位需要想主机位借用的数据。因为 /16 自己网络位 16,要扩展到 /24,还需要 8 位的网络位,所以还需要在 /16 的主机位拿 8 位作为新的网络位。所以,最后划分的子网是在 /16 的基础上,再划分的 /24,因此数量只有 $2^8 = 256$ 个。
因为网络位 24,主机位 8,所以对于一个 32 位 IP 地址,即 0.0.0 - 255.255.255 这部分是网络位,0 - 255 是主机位。
- 0.0.0.0 - 0.0.0.255 是一个子网。
- 0.0.1.0 - 0.0.1.255 是一个子网。
- ……..
- 192.168.1.0 - 192.168.1.255 是一个子网。
- 192.168.2.0 - 192.168.2.255 是一个子网。
- ……..
- 255.255.255.0 - 255.255.255.255 是一个子网。
以上便是子网划分的流程和结果。正常来说,我们通常可以使用 192.168.1.0/24,192.168.2.0/24,192.168.3.0/24 的格式来表示这个子网段内的 256 个地址。这里的 /24 我们称之为子网掩码。
子网掩码的定义
首先需要知道,子网掩码不等于子网 ,子网掩码只是用来标注两个 IP 地址是否同属一个子网的标志。
从上面的子网划分流程不难看出,子网掩码其实就是网络位的十进制表示。
以 IP 段 192.168.1.0 - 192.168.1.255 为例,其二进制表示为:
- 11000000.10101000.00000001.00000000(192.168.1.0)
- 11000000.10101000.00000001.00111111(192.168.1.255)
可以看到,在这个 IP 段中,首尾地址完全相同的是 11000000.10101000.00000001,这 24 位。
这 24 位就是网络号,用来标识这一个子网,简记为 /24。
当我们将这个 24 位全部置 1,然后补 0 到其他位直到满足 32 位,可以得到 11111111.11111111.11111111.00000000,即 255.255.255.0,这样就得到子网掩码的简单表示。
所以,IP 段 192.168.1.0 至 192.168.1.255 的掩码为 255.255.255.0 /24。
子网的计算公式
子网数 = $2^n$
这里的 n 是网络位向主机位借位的数量。比如,从全网段划分子网掩码 /24,因为全网段所有位都是主机位,而划分后需要网络位 24,所以借用主机位 24,因此子网数= $2^24$。
又比如,从一个大的网络 /16 划分到一个更小 /24 子网。因为 /16 自己网络位 16,要扩展到 /24,还需要 8 位的网络位,所以还需要在 /16 的主机位拿 8 位作为新的网络位。所以,最后划分的子网是在 /16 的基础上,再划分的 /24,因此数量只有 $2^8 = 256$ 个。
/16 划分 /24,就比如是将 192.168.0.0 - 192.168.255.255 这部分 IP 段划分到 192.168.1.0/24,192.168.2.0/24 这样更小的子网。
可用主机数 = $2^n - 2$
在子网中,全 0 和全 1 的地址将作为网关和广播地址,无法被主机使用,所以要减 2。
示例练习
问题一:存在子网 192.168.10.1/27,请计算这个网络有多少个子网?
假设该 /27 的子网是从 /24 的网络中划分的,那么 /27 就需要向 /24 的主机位借位,需要借 27 - 24 = 3,所以子网数 = 2^3 = 8 个。
假设该 /27 的子网是从 /16 的网络中划分的,那么 /27 就需要向 /16 的主机位借位,需要借 27 - 16 = 11,所以子网数 = 2^11 = 2048 个。
问题二:存在子网 192.168.10.1/27,请计算子网中的 IP 数?和可用主机数?
由 /27 可知该子网的网络号为 27,所以主机号为 32 - 27 = 5
所以,可用的 IP 数等于 = 2^5 = 32,因为 IP 段开头和结尾的 IP 地址(全 0 和全 1 的 IP 地址)无法使用,因此,可用主机数 = 32 - 2 = 30。