跳转到正文

给你一个 192.168.1.0/24,怎么切成 4 个互不干扰的独立子网? ​

阶段 3 · 网络层 · 第 15 课

在第 14 课中,我们看到传统的固定分类非常浪费:如果你有一家 50 人的创业公司,买一个 C 类地址段(容纳 254 台)白白浪费了 200 个 IP;如果是一家 300 人的中型企业,买两个 C 类网络不好管理,买一个 B 类却空置了 6 万多个 IP。

1993 年,互联网全面告别有类划分,迎来了 无类域间路由(CIDR)(Classless Inter-Domain Routing,无类域间路由) 时代。通过引入 子网掩码,我们可以随心所欲地把一个大网段“切蛋糕”切成若干个小网段,也可以把多个零散的小网段“聚拢合并”成一个大路由!

学完本课后,你将能够:

  1. 写出任意斜杠前缀(如 /26、/28、/30)对应的点分十进制子网掩码。
  2. 运用二进制按位与(AND)运算,在 10 秒内算出一个 IP 所属的网络地址与广播地址。
  3. 完成华为 ICT 大赛与工程现场必备技能:根据主机数量需求,反推最紧凑的子网掩码前缀。

子网掩码与按位与推导:主机IP 192.168.1.130 与子网掩码 255.255.255.192 (/26) 做 AND 操作,得出网络地址 192.168.1.128,广播地址 192.168.1.191,可用主机范围 129~190。

1. 什么是子网掩码?掩码是怎么“遮挡”的? ​

子网掩码(Subnet Mask) 也是一个 32 比特的二进制数。它的结构极其单纯:左边是一连串连续的 1,右边是一连串连续的 0,中间绝对不允许 1 和 0 交错出现!

  • 掩码中 值为 1 的比特位:表示 IP 地址中对应的位置是网络号(网络前缀);
  • 掩码中 值为 0 的比特位:表示 IP 地址中对应的位置是主机号。

CIDR 斜杠表示法(Prefix Length) ​

由于子网掩码一定是连续的 1,我们根本不需要每次都打又长又臭的 255.255.255.0。工程师直接在 IP 后面加一个斜杠 /,写上连续的 1 的个数:

  • /24 ⟹ 连续 24 个 1 ⟹ 255.255.255.0
  • /26 ⟹ 连续 26 个 1 ⟹ 255.255.255.192(前三个字节各 8 个 1,第四字节有 2 个 1:128+64=192)
  • /30 ⟹ 连续 30 个 1 ⟹ 255.255.255.252(第四字节有 6 个 1:256−22=252)

2. 核心数学:二进制按位与(AND)运算 ​

电脑或路由器拿到一个 IP 和一个子网掩码,它是怎样算出“这台电脑属于哪个网段”的? 它执行的是布尔代数里的 按位与(AND) 运算。

按位与的口诀是:全 1 出 1,有 0 出 0(只有两个位都是 1 结果才为 1,只要有一位是 0 结果就是 0)。

如上图所示,当主机 IP 为 192.168.1.130,子网掩码为 /26(255.255.255.192)时:

text
IP 地址:   192.168.1.130  -->  11000000.10101000.00000001.10000010
子网掩码:  /26 (255...192) -->  11111111.11111111.11111111.11000000
----------------------------------------------------------------------
按位与结果: 192.168.1.128  -->  11000000.10101000.00000001.10000000

你看!经过按位与运算后,主机号对应的最后 6 位被掩码的 0 全部“抹零”了,留下来的纯净数字就是这台电脑所在的——网络地址(192.168.1.128)!

3. 子网划分四步极速心算法(无需写二进制) ​

在考试和工程现场,我们如果每道题都把 32 位二进制写满草稿纸,不仅效率低下还容易数错。请牢记工程师常用的四步心算法:

假设题目给出:网段 192.168.1.0/24,要求切分为 /26 的子网。

第一步:算借位与切成几块 ​

  • 原始掩码是 /24,新掩码是 /26。
  • 网络位向主机位借了 26−24=2 位。
  • 借了 2 位,就能切成 22=4 个子网!

第二步:算“块大小(步长)” ​

  • 掩码第四字节是 26 位(即 2 个 1),第四字节十进制是 128+64=192。
  • 块大小(步长)=256−该字节掩码值=256−192=64。
  • 这意味着:每个子网的跨度恰好是 64!

第三步:列出 4 个子网的起止边界(直接累加 64) ​

每个子网的第一个 IP(主机位全 0)是网络地址,最后一个 IP(主机位全 1)是广播地址:

子网编号网络地址(不可分配给单机)可分配给主机的有效可用 IP 范围广播地址(不可分配给单机)
子网 1192.168.1.0192.168.1.1 ∼ 192.168.1.62192.168.1.63
子网 2192.168.1.64192.168.1.65 ∼ 192.168.1.126192.168.1.127
子网 3192.168.1.128192.168.1.129 ∼ 192.168.1.190192.168.1.191
子网 4192.168.1.192192.168.1.193 ∼ 192.168.1.254192.168.1.255

第四步:算可用主机容量 ​

  • 每个子网留给主机位的位数 h=32−26=6 位。
  • 每个子网可容纳的可用主机数 =2h−2=26−2=64−2=62 台。
  • 为什么要“减 2”?因为每个子网的网络地址(代表全村)和广播地址(全村广播)被协议保留,绝对不能配在单台网卡上!

课后巩固 · 练习 · 单选

某主机分配到的 IP 地址为 192.168.1.130,子网掩码为 255.255.255.192(即 /26)。该主机所在的子网网络地址和广播地址分别是什么?

4. 工程特例:两台路由器点对点互联用什么掩码? ​

两个路由器之间用一根光纤直连,整条链路上永远只有 2 个接口,分配一个 /24(254 台主机)会浪费 252 个地址。

  • 最常用方案:/30 掩码(255.255.255.252)
    • 主机位剩余 h=32−30=2 位。
    • 总地址数 22=4 个。减去网络地址和广播地址后,4−2=2 个可用 IP!恰好一人一个,一个不浪,是全球数通工程最经典的互联配置。
  • 进阶 RFC 3021 方案:/31 掩码
    • 在支持 RFC 3021 的现代路由器点对点链路上,允许借用全 0 和全 1 作为单播地址,直接用 2 个地址互联,效率达到 100%。

课后巩固 · 练习 · 单选

某企业计划为新研发实验室划分一个专属子网,要求该子网至少能够容纳 28 台主机,为了最大限度节约 IP 地址,最合适的子网掩码前缀长度是哪一个?

5. 小结与下一步 ​

  • 掩码本质:连续的 1 界定网络号,连续的 0 界定主机号;通过按位与(AND)快速提取网络地址。
  • 计算核心:块大小 =256−掩码值;可用主机数 =2h−2。
  • 无类时代:CIDR 斜杠打破了固定 ABC 类枷锁,实现了 IP 资源的精准规划。

子网划分解决了地址的切分,但真正承载数据的 IP 数据包在网线上飞驰时,它的首部到底包含哪些关键控制字段?为什么会有标识符、分片偏移和 TTL?下一课我们拆开 IPv4 地址 报文的每一行比特。