外观
给你一个 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,无类域间路由) 时代。通过引入 子网掩码,我们可以随心所欲地把一个大网段“切蛋糕”切成若干个小网段,也可以把多个零散的小网段“聚拢合并”成一个大路由!
学完本课后,你将能够:
- 写出任意斜杠前缀(如
/26、/28、/30)对应的点分十进制子网掩码。 - 运用二进制按位与(AND)运算,在 10 秒内算出一个 IP 所属的网络地址与广播地址。
- 完成华为 ICT 大赛与工程现场必备技能:根据主机数量需求,反推最紧凑的子网掩码前缀。
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:) /30连续 30 个 1 255.255.255.252(第四字节有 6 个 1:)
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。 - 网络位向主机位借了
。 - 借了 2 位,就能切成
!
第二步:算“块大小(步长)”
- 掩码第四字节是 26 位(即 2 个 1),第四字节十进制是
。 - 块大小(步长)
。 - 这意味着:每个子网的跨度恰好是 64!
第三步:列出 4 个子网的起止边界(直接累加 64)
每个子网的第一个 IP(主机位全 0)是网络地址,最后一个 IP(主机位全 1)是广播地址:
| 子网编号 | 网络地址(不可分配给单机) | 可分配给主机的有效可用 IP 范围 | 广播地址(不可分配给单机) |
|---|---|---|---|
| 子网 1 | 192.168.1.0 | 192.168.1.1 192.168.1.62 | 192.168.1.63 |
| 子网 2 | 192.168.1.64 | 192.168.1.65 192.168.1.126 | 192.168.1.127 |
| 子网 3 | 192.168.1.128 | 192.168.1.129 192.168.1.190 | 192.168.1.191 |
| 子网 4 | 192.168.1.192 | 192.168.1.193 192.168.1.254 | 192.168.1.255 |
第四步:算可用主机容量
- 每个子网留给主机位的位数
。 - 每个子网可容纳的可用主机数
。 - 为什么要“减 2”?因为每个子网的网络地址(代表全村)和广播地址(全村广播)被协议保留,绝对不能配在单台网卡上!
4. 工程特例:两台路由器点对点互联用什么掩码?
两个路由器之间用一根光纤直连,整条链路上永远只有 2 个接口,分配一个 /24(254 台主机)会浪费 252 个地址。
- 最常用方案:
/30掩码(255.255.255.252)- 主机位剩余
。 - 总地址数
个。减去网络地址和广播地址后, !恰好一人一个,一个不浪,是全球数通工程最经典的互联配置。
- 主机位剩余
- 进阶 RFC 3021 方案:
/31掩码- 在支持 RFC 3021 的现代路由器点对点链路上,允许借用全 0 和全 1 作为单播地址,直接用 2 个地址互联,效率达到 100%。
5. 小结与下一步
- 掩码本质:连续的 1 界定网络号,连续的 0 界定主机号;通过按位与(AND)快速提取网络地址。
- 计算核心:块大小
;可用主机数 。 - 无类时代:CIDR 斜杠打破了固定 ABC 类枷锁,实现了 IP 资源的精准规划。
子网划分解决了地址的切分,但真正承载数据的 IP 数据包在网线上飞驰时,它的首部到底包含哪些关键控制字段?为什么会有标识符、分片偏移和 TTL?下一课我们拆开 IPv4 地址 报文的每一行比特。